4 wxMaxima | |
→ | 4.14 Beispiele |
Dieses Beispiel zeigt die Lösung eines linearen Gleichungssystemes am Beispiel der Knotenspannungsanalyse.
Bei der Knotenspannungsanalyse wird ein Knoten der Schaltung als Bezugspunkt (Masse, Punkt 0) ausgewählt. Die Knotenspannungen der verbleibenden Knoten sind die Spannungen vom jeweiligen Knoten zum Bezugspunkt.
Die Knotenspannungsanalyse ist nur für Schaltungen möglich, in denen keine Spannungsquelle ohne Widerstand in einem Zweig zwischen zwei Knoten steht. Jede Spannungsquelle muss mit einem Widerstand kombiniert sein, so dass die Reihenschaltung aus Spannungsquelle und Widerstand in eine Parallelschaltung von Stromquelle und Widerstand überführbar ist.
Das Aufstellen der Gleichungen wird zunächst an einem kleinen Beispiel mit einer Schaltung entsprechend der Abbildung oben verdeutlicht. Für den Knoten A gilt:
Die Gleichungen können wahlweise so aufgestellt werden, dass entweder die vorzeichenbehaftete Summa aller abfließenden Ströme 0 ergibt oder dass die Summe der abfließenden gleich der Summe der zufließenden Ströme ist.
Für die Schaltung entsprechend der Abbildung mit
ist der Strom I10 gesucht.
Zunächst werden Knotennummern vergeben wie in der Abbildung
bereits eingetragen.
Geschickte Wahl des Bezugspunktes erleichtert die Berechnung. Im
Beispiel ist der Strom durch R10 gesucht, dafür
werden die Knotenspannungen ober- und unterhalb von
R10 benötigt. Wird der Bezugspunkt unterhalb des
Widerstandes gelegt, muss nur eine Knotenspannung zur Berechnung
des Stromes herangezogen werden.
Die rot gekennzeichneten Punkte erhalten keine Knotenspannung
zugewiesen, da sonst Zweige mit nur einer Spannungsquelle als
Element entstehen würden.
Wir erhalten folgende Knotengleichungen:
Im Gegensatz zu Scilab kann in Maxima auf die Matrizenschreibweise verzichtet werden, die Gleichungen werden direkt eingegeben.
/* Gleichungen */ gl1: 0 = U1/R10 + (U1-U2)/R7 $ gl2: 0 = (U2-U1)/R7 + (U2-U5)/R6 + (U2-U3+Uq2)/R1 + Iq2 $ gl3: 0 = (U3-U4+Uq1)/R2 - Iq1 + (U3-U2-Uq2)/R1 $ gl4: 0 = (U4-U3-Uq1)/R2 + (U4-U6)/R3 + (U4-U5)/R5 $ gl5: 0 = (U5-U4)/R5 + (U5-U6)/R4 + (U5-U2)/R6 + (U5-U7)/R8 + (U5+Uq3)/R11 $ gl6: 0 = Iq1 + (U6-U4)/R3 + (U6-U5)/R4 $ gl7: 0 = U7/R9 + (U7-U5)/R8 - Iq2 $ /* GLeichungen nach U1 ... U7 aufloesen, Formeln merken */ globalsolve: true$ solve([gl1, gl2, gl3, gl4, gl5, gl6, gl7], [U1, U2, U3, U4, U5, U6, U7])$ /* I10 aus U1 und R10 ausrechnen */ I10: fullratsimp(U1/R10) $ disp("Loesung:")$ /* Gegebene Werte einsetzen */ at( I10, [ R1=50.0, R2=1.0e3, R3=0.5e3, R4=1.0e3, R5=1.5e3, R6=2.0e3, R7=1.5e3, R8=2.0e3, R9=2.5e3, R10=3.0e3, R11=2.5e3, Uq1=1.5, Uq2=3.0, Uq3=4.5, Iq1=2.0e-3, Iq2=4.0e-3 ] );