Solarenergie
Aus Wiki1
(Die Seite wurde neu angelegt: „mit dem folgenden Tool kann man für einen definierten Breitengrad und eine angenommene Reduzierung der Einstrahlung durch die Athmosphäre die verfügbare Leistu…“) |
|||
| (Der Versionsvergleich bezieht 11 dazwischenliegende Versionen mit ein.) | |||
| Zeile 1: | Zeile 1: | ||
| - | mit dem folgenden Tool kann man für einen definierten Breitengrad und eine angenommene Reduzierung der Einstrahlung durch die Athmosphäre die verfügbare | + | mit dem folgenden Tool kann man für einen definierten Breitengrad und eine angenommene durchschnittliche Reduzierung der Einstrahlung durch die Athmosphäre (Streuung, Wolken, Schatten), die verfügbare Nutzleistung und Jahresarbeit ermitteln, die man theoretisch mit PV-Modulen oder thermischen Kollektoren gewinnen könnte. Darin enthalten sind auch die Wirkungsgradverluste durch Module, Batterien und Wechselrichter. |
| - | Die Ausreichtung der Solarpanels nach Himmelsrichtung und der Winkel können | + | Die Ausreichtung der Solarpanels nach Himmelsrichtung und der Winkel können variiert werden. |
| - | Die Berechnung berücksichtigt die verfügbaren Sonnenstunden und die sich daraus ergebende Einstrahlleistung auf eine Fläche | + | Die Berechnung berücksichtigt die verfügbaren Sonnenstunden und die sich daraus ergebende Einstrahlleistung auf eine Fläche in m². |
| - | <jsxgraph box="box" width=" | + | Für die Energieumwandlung der nutzbaren Solareinstrahlung können thermische Solarkollektoren mit Wirkungsgraden zwischen 60-70 %, Röhrenkollektoren mit ca. 80% und PV-Module mit ca. 20% verwendet werden. |
| + | |||
| + | Die Voreinstellung gilt für den Standort Köln, eine Fläche von 1 m², einen Wirkungsgrad von 20% (PV-Modul), eine Flächenneigung von 35 ° und eine Ausrichtung nach Süden. | ||
| + | |||
| + | Mit den Schiebereglern können die Werte angepasst werden. Mit einem Kurvenpunkt (rot) können die Werte über die Kurve abgelesen werden. | ||
| + | |||
| + | Die Leistung wird als geordnete Jahresdauerlinie dargestellt. D.h. man kann an der Kurve ablesen, wieviele Stunden eine Leistung max. zur Verfügung steht. | ||
| + | |||
| + | |||
| + | |||
| + | <jsxgraph box="box" width="800" height="500"> | ||
// 1. Board initialisieren | // 1. Board initialisieren | ||
| Zeile 25: | Zeile 35: | ||
function rad(deg) { return deg * Math.PI / 180; } | function rad(deg) { return deg * Math.PI / 180; } | ||
| - | var phi = board.create('slider', [[ | + | var phi = board.create('slider', [[3000, 80], [6000, 80], [20, phi0, 70]], { |
name: 'Breitengrad (20-70°)', | name: 'Breitengrad (20-70°)', | ||
snapWidth: 0.1 | snapWidth: 0.1 | ||
| Zeile 32: | Zeile 42: | ||
// 2. Eingaberegler mit korrekten Start-, Default- und Endwerten erstellen | // 2. Eingaberegler mit korrekten Start-, Default- und Endwerten erstellen | ||
// Syntax: [x_start, y_start], [x_end, y_end], [min_wert, default_wert, max_wert] | // Syntax: [x_start, y_start], [x_end, y_end], [min_wert, default_wert, max_wert] | ||
| - | var sAzimut = board.create('slider', [[ | + | var sAzimut = board.create('slider', [[3000, 110], [6000, 110], [0, 90, 360]], { |
name: 'Ausrichtung (0°=O, 90°=S, 270°=N)', | name: 'Ausrichtung (0°=O, 90°=S, 270°=N)', | ||
snapWidth: 1 | snapWidth: 1 | ||
}); | }); | ||
| - | var sNeigung = board.create('slider', [[ | + | var sNeigung = board.create('slider', [[3000, 100], [6000, 100], [0, 65, 90]], { |
name: 'Neigung (0°=flach, 90°=senkrecht)', | name: 'Neigung (0°=flach, 90°=senkrecht)', | ||
snapWidth: 1 | snapWidth: 1 | ||
}); | }); | ||
| - | var sReduzierung = board.create('slider', [[ | + | var sReduzierung = board.create('slider', [[3000, 90], [6000, 90], [0, 33, 99]], { |
name: 'Reduzierung Einstrahlleistung (0 bis 99%)', | name: 'Reduzierung Einstrahlleistung (0 bis 99%)', | ||
snapWidth: 1 | snapWidth: 1 | ||
}); | }); | ||
| + | |||
| + | |||
| + | |||
| + | var sWG = board.create('slider', [[3000, 20], [6000, 20], [10, 20, 90]], { | ||
| + | name: 'Modulwirkungsgrad (10-90%)', | ||
| + | snapWidth: 2 | ||
| + | }); | ||
| + | |||
| + | var sFlaeche = board.create('slider', [[3000, 10], [6000, 10], [1, 2.5, 30]], { | ||
| + | name: 'Fläche (1-30 m²)', | ||
| + | snapWidth: 0.5 | ||
| + | }); | ||
| + | |||
| + | |||
function updateCurve() { | function updateCurve() { | ||
var data = getCurvePoints(); | var data = getCurvePoints(); | ||
| Zeile 145: | Zeile 169: | ||
function energy_kWh(){ | function energy_kWh(){ | ||
| - | var gesamtEnergiekWh = int.Value()*I_MAX_REF/100*(1-sReduzierung.Value()/100)/1000; | + | var gesamtEnergiekWh = sFlaeche.Value()*sWG.Value()/100*int.Value()*I_MAX_REF/100*(1-sReduzierung.Value()/100)/1000; |
return gesamtEnergiekWh; | return gesamtEnergiekWh; | ||
} | } | ||
| Zeile 154: | Zeile 178: | ||
var stunde = Math.round(glider.X()); | var stunde = Math.round(glider.X()); | ||
var prozent = glider.Y(); | var prozent = glider.Y(); | ||
| - | var watt = Math.round(100*(prozent * (I_MAX_REF / 100)*(1-sReduzierung.Value()/100)))/100; | + | var watt = Math.round(100*(sWG.Value()/100*sFlaeche.Value()*prozent * (I_MAX_REF / 100)*(1-sReduzierung.Value()/100)))/100; |
var EnergiekWh = Math.round(100*energy_kWh())/100; | var EnergiekWh = Math.round(100*energy_kWh())/100; | ||
return '<b>Aktuelle Position:</b><br>' + | return '<b>Aktuelle Position:</b><br>' + | ||
'Sortierte Stunde: ' + stunde + ' h<br>' + | 'Sortierte Stunde: ' + stunde + ' h<br>' + | ||
'Leistung % von Max: ' + prozent.toFixed(2) + ' %<br>' + | 'Leistung % von Max: ' + prozent.toFixed(2) + ' %<br>' + | ||
| - | 'Leistung : ' + watt + ' W | + | 'Leistung : ' + watt + ' W<br>' + |
'Jahresarbeit: ' + EnergiekWh + ' kWh/a<br>' | 'Jahresarbeit: ' + EnergiekWh + ' kWh/a<br>' | ||
}], {fontSize: 14}); | }], {fontSize: 14}); | ||
| Zeile 173: | Zeile 197: | ||
</jsxgraph> | </jsxgraph> | ||
| + | |||
| + | {{ChatGPT|5}} | ||
| + | |||
| + | Die Programmierung habe ich mit Hilfe von Gemini und ChatGPT ersttellt. Die Bearbeitung des Scripts in JSXGraph-Code war etwas mühsam, da die KI-Vorschläge häufig kleine Fehler enthielten. Allerdings hätte ich es ohne Unterstützung vermutlich erst nach intensiver Einarbeitung und mathematischer Aufbereitung geschafft, einen entsprechenden Code zu erstellen. | ||
[[Kategorie:Technik]] | [[Kategorie:Technik]] | ||
Aktuelle Version vom 09:38, 4. Jun. 2026
mit dem folgenden Tool kann man für einen definierten Breitengrad und eine angenommene durchschnittliche Reduzierung der Einstrahlung durch die Athmosphäre (Streuung, Wolken, Schatten), die verfügbare Nutzleistung und Jahresarbeit ermitteln, die man theoretisch mit PV-Modulen oder thermischen Kollektoren gewinnen könnte. Darin enthalten sind auch die Wirkungsgradverluste durch Module, Batterien und Wechselrichter.
Die Ausreichtung der Solarpanels nach Himmelsrichtung und der Winkel können variiert werden.
Die Berechnung berücksichtigt die verfügbaren Sonnenstunden und die sich daraus ergebende Einstrahlleistung auf eine Fläche in m².
Für die Energieumwandlung der nutzbaren Solareinstrahlung können thermische Solarkollektoren mit Wirkungsgraden zwischen 60-70 %, Röhrenkollektoren mit ca. 80% und PV-Module mit ca. 20% verwendet werden.
Die Voreinstellung gilt für den Standort Köln, eine Fläche von 1 m², einen Wirkungsgrad von 20% (PV-Modul), eine Flächenneigung von 35 ° und eine Ausrichtung nach Süden.
Mit den Schiebereglern können die Werte angepasst werden. Mit einem Kurvenpunkt (rot) können die Werte über die Kurve abgelesen werden.
Die Leistung wird als geordnete Jahresdauerlinie dargestellt. D.h. man kann an der Kurve ablesen, wieviele Stunden eine Leistung max. zur Verfügung steht.
Bitte beim lesen daran denken: Ideen, Formulierungen und stilistische Elemente sind nicht das Ergebnis eines individuellen künstlichen Geistes und seiner Welterfahrung, sondern die Aggregation aus den Werken von Millionen kluger, realer Menschen!
Die Programmierung habe ich mit Hilfe von Gemini und ChatGPT ersttellt. Die Bearbeitung des Scripts in JSXGraph-Code war etwas mühsam, da die KI-Vorschläge häufig kleine Fehler enthielten. Allerdings hätte ich es ohne Unterstützung vermutlich erst nach intensiver Einarbeitung und mathematischer Aufbereitung geschafft, einen entsprechenden Code zu erstellen.
