Hallo,
Du Erklärungsgeplagter
Vielleicht hätte Dir eine kleine ASCII-„Skizze“ einigen Frust ersparen können. Hier mal ein entsprechender Versuch von mir:
N
(Ansicht von oben)
+-----------------+
| | |
| | |
| | o--o |
| | #### |
W | | #### | O
| | #### |
| | ==== |
| | |
| | |
+-----------------+
S
N, O, S, W = die Himmelsrichtungen
+ = die Ecken des Hauses
"|"-Mittellinie = die Linie des Dachfirstes
# = das Solarpanel
o o = die beiden Panel-Aufstell-Stützen
=== –\> entlang dieser Linie hat das Panel Kontakt zur Dachfläche
Richtig?
irgendwann konnte ich das noch…, so zu Schulzeiten.
Das würde ich fast bezweifeln. Die Drehung um eine beliebig schief im Raum stehende Achse ist gar nicht so trivial.
angenommen ich habe ein Dach mit 15 Grad Dachneigung genau
nach Ost, darauf montiere ich Solarmodule ebenfalls mit 15
Grad aber 90Grad nach Süd aufgestellt.
Zunächst definiere ich das von mir benutzte Koordinatensystem:
x = nach Osten,
y = nach Norden,
z = senkrecht nach oben.
Ein auf den Terrassentisch gelegtes Solarpanel hätte den Normaleneinheitsvektor (0 | 0 | 1), und ein platt auf die Dachfläche montiertes den Normaleneinheitsvektor (sin α | 0 | cos α), wenn α der Neigungswinkel des Dachs gegen den Boden ist.
Damit kennst Du auch den Vektor entlang der „===“-Linie; das ist (cos α | 0 | –sin α). Diesen Vektor brauchst Du, weil er in Richtung der Achse zeigt, um die Du die Solarpanele auf dem Dach beim Anstellen um den Winkel β (gemessen gegen die Dachfläche) drehst. Diese Drehung zu berechnen ist kompliziert. Du musst dazu aus dem Achsenvektor und dem Winkel β die zugehörige Drehmatrix konstruieren und sie anschließend mit dem Dachflächen-Normaleneinheitsvektor (sin α | 0 | cos α) im Sinne eines Matrix-Vektor-Produkts multiplizieren. Das geht prinzipiell auch mit einem Taschenrechner, aber mit einem CAS (Computer-Algebra-System) wie z. B. Maxima ist es bequemer. Ich habe ein Script dazu geschrieben, siehe unten.
Wie steil stehen die dann wohl über die Diagonale? 27 -28
Grad würde ich schätzen. 30 Grad werden es wohl kaum mehr sein.
Es ist deutlich weniger, etwa 21°. Die Projektion des Normalenvektors auf den Boden schließt dann mit Osten einen Winkel von 46° ein. Das Panel „sieht“ also erwartungsgemäß fast genau in Richtung SO.
Oder die erste Neigung geht 12 Grad nach Osten, wieviel Grad
muss ich Richtung Süden aufstellen um auf 30 Grad Südost zu
kommen oder eben etwas Südostsüd.
Der mit α = 12° für 30° SO (ich interpretiere es als 30° gegen S und 60° gegen O) nötige Panel-Anstellwinkel ist β ≈ 20°. Das Panel wäre dann 23.2° gegen den Boden geneigt.
Gruß
Martin
Hier das Maxima-Script, falls Du selbst damit experimentieren willst (Maxima ist frei verfügbar). Ich habe ein paar Sonderfälle getestet (α und β auf Werte nahe 0 oder nahe 90° gesetzt und die Ergebnisse auf Plausibilität geprüft) und dabei keine Fehler gefunden. D ist die Drehmatrix, und die erwähnte Matrix-Vektor-Multiplikation passiert in der Zeile „npanel: D(eaxis, beta).ndach;“.
numer: true$
deg: %pi/180$
D(eaxis, w)
:= (c: cos(w),
s: sin(w),
cc: 1-c,
x: eaxis[1],
y: eaxis[2],
z: eaxis[3],
matrix([[cc\*x\*x + c, cc\*y\*x + s\*z, cc\*z\*x - s\*y],
[cc\*x\*y - s\*z, cc\*y\*y + c, cc\*z\*y + s\*x],
[cc\*x\*z + s\*y, cc\*y\*z - s\*x, cc\*z\*z + c]]))$
/\*-----------------------------------\*/
alpha: 12\*deg;
beta: 20\*deg;
ndach: [sin(alpha), 0, cos(alpha)];
eaxis: [ndach[3], 0, -ndach[1]];
npanel: D(eaxis, beta).ndach;
theta: acos(npanel[3]);
phi: atan(npanel[2]/npanel[1]);
print("Panelneigung gegen Boden = ", theta/deg, "°")$
print("Abweichung von Richtung Osten = ", phi/deg, "°")$