B4-BrückeKnotenpotentialverfahren · Newton-Raphson · Euler · Shockley ohne Näherung

Schaltung — die Netzliste ist die Schaltung

Eine Zeile je Bauteil: Name Knoten+ Knoten− Wert. Knoten sind freie Namen, 0 ist Masse. Der Anfangsbuchstabe bestimmt die Sorte: R Widerstand [Ω], Q/V Quelle (dc 10 oder sinus 30 50 = Amplitude, Frequenz), D Diode (1N4148, 1N4007, 1N5408, Schottky 1N5819), C Kondensator [F] (optional Anfangswert [V]), L Spule [H] (optional Anfangsstrom [A]). Vorsätze p n u m k meg, Kommentare mit *.

Betrieb

bereit — Netzliste übernehmen oder Start drücken

Numerik — Simulationseinstellungen

Knotenpotentiale

Ströme der Quellen und Speicher

Anzeige — Signale wählen

Mausrad über den Schirmen zoomt die Zeitachse (= Regler „Fenster"). Die Skalen passen sich selbsttätig den gewählten Signalen an; gezeichnet wird die Hüllkurve, damit auch schmale Stromspitzen vollständig zu sehen sind.

Messwerte

noch keine Daten

So rechnet die Simulation

Die Netzliste wird eingelesen, und alles steht in einer Knotenleitwertmatrix Y·u = i — jedes Bauteil trägt nur seinen festen Stempel ein. Jede Diode wird durch ihre Tangente ersetzt (Leitwert gd parallel zur Stromquelle Ieq), Newton-Raphson wiederholt Stempeln und Lösen, bis der Arbeitspunkt stimmt, und danach schreibt der explizite Euler die Zustandsgrößen uC und iL fort — einmal je Zeitschritt, die Verschachtelung aus Abschnitt 25 des Manuskripts. Der implizite Euler (Teil XI) ist zuschaltbar. Herleitung, Handrechnung und Prüfungen: Reiter Manuskript.

Nichtlineare Netzwerke simulieren

Erweiterte Knotenanalyse, Newton-Raphson und Euler am Beispiel der B4-Brücke mit belastetem RC-Glied

Prof. Dr.-Ing. Ralph Wystup

26. August 2026

Vorbemerkung: für wen dieses Manuskript geschrieben ist

Dieses Manuskript zeigt, mit welcher Methode ein Schaltungssimulator tatsächlich rechnet, und es zeigt sie vollständig. Vorausgesetzt werden mathematische Grundkenntnisse — Ableitung, lineares Gleichungssystem, Anfangswertproblem —, nicht aber Vorkenntnisse in der Schaltungsberechnung. Der Knotensatz und alles, was daraus folgt, wird an Ort und Stelle entwickelt.

Der rote Faden. Drei Verfahren greifen ineinander, und darum ist das Manuskript gebaut:

Teil Inhalt
I die Aufgabe, das mathematische Problem dahinter, und die drei Verfahren im Überblick
II die Schaltung erfassen — Knoten- und Zweigliste, Bauelementgleichungen
III Verfahren 1: das Knotenpotentialverfahren — es stellt die Gleichungen auf und löst das lineare System
IV Verfahren 2: Newton-Raphson — es macht aus dem linearen Löser einen nichtlinearen
V Verfahren 3: der explizite Euler — er bringt die Zeit voran
VI die Verschränkung — der genaue Ablauf, der Datenfluss, die Begründung, die Fehlerbilanz
VII die Handrechnung: drei Zeitschritte ohne Auslassung
VIII–XI Prüfungen, Ergebnis, Dashboard; der Netzlisten-Simulator und der implizite Euler

Der Aufbau geht vom Groben zum Feinen. Teil I zeigt in wenigen Seiten das ganze Verfahren; wer nur wissen will, wie es im Prinzip geht, kann dort aufhören. Ab Teil II wird jedes Stück einzeln aufgeschlagen und bis zur letzten Rechenzeile durchgeführt. Teil VI führt die drei Stücke wieder zusammen und begründet, warum die Zerlegung zulässig ist und woher der Fehler des Ergebnisses kommt.

Alle Zahlen stammen aus dem beiliegenden Programm. Die Prüfungen, mit denen es sich selbst kontrolliert, stehen in Teil VIII.

TEIL I — DIE AUFGABE UND DIE DREI VERFAHREN

1. Die Aufgabe

Gesucht ist der zeitliche Verlauf der Kondensatorspannung uC(t)u_C(t) in dieser Schaltung:

Die Schaltung. Wechselstromquelle mit Innenwiderstand, B4-Brücke, dahinter ein Vorwiderstand und ein Kondensator mit paralleler Last.

Die Aufgabe sieht harmlos aus und ist es nicht. Drei Eigenschaften machen sie zu einem echten Fall:

Erstens ist sie nichtlinear. Die Dioden werden nach Shockley gerechnet,

ID(v)=IS(ev/(nVT)−1)I_D(v) = I_S\left(e^{\,v/(nV_T)} - 1\right)

ohne jede Näherung: kein Knickkennlinienmodell, keine feste Schleusenspannung, kein Schalter. Damit gibt es keinen Zustand „leitet” oder „sperrt”, zwischen dem man umschalten könnte — es gibt nur eine einzige, stetige Kennlinie, die über zwanzig Zehnerpotenzen läuft.

Zweitens enthält sie einen Energiespeicher. Der Kondensator macht aus dem algebraischen Problem ein zeitabhängiges: eine Differentialgleichung.

Drittens sind beide verkoppelt. Der Strom durch die Dioden hängt von der Kondensatorspannung ab, und die Kondensatorspannung von den Diodenströmen. Man kann weder das eine noch das andere zuerst lösen.

Analytisch ist da nichts zu machen. Schon das reine Diodenproblem ID(v)=(U−v)/RI_D(v) = (U-v)/R hat keine Lösung in geschlossener Form.

2. Zielsetzung: was die Rechnung liefern muss

Ein Netzteil dieser Bauart wird nicht um seiner selbst willen gerechnet. Gerechnet wird, weil vier Größen gebraucht werden, und jede entscheidet über ein Bauteil:

gesuchte Größe wofür sie gebraucht wird Ergebnis dieser Rechnung
Mittelwert von uCu_C reicht die Spannung für die Last? 20,766 V
Brummspannung genügt der Glättungskondensator? 1,190 V, also 5,7 %
Spitzenstrom durch die Diode welche Diode ist zulässig? 676,9 mA
Verlustleistung im Vorwiderstand welche Bauform, welche Belastbarkeit? 1,118 W (Ieff=334,3I_{\text{eff}} = 334{,}3 mA)

Die ersten beiden lassen sich noch abschätzen. Für die Brummspannung gibt es die bekannte Faustformel

ΔuC≈IL2fC\Delta u_C \approx \frac{I_L}{2 f C}

und sie trifft hier auf drei Prozent genau. Für den Spitzenstrom gibt es keine solche Formel. Er hängt davon ab, wie lange die Dioden leiten, und das hängt wiederum davon ab, wie steil ihre Kennlinie im Leitbereich verläuft. Genau dieser Wert entscheidet aber über die Bauteilwahl: 677 mA sind für eine 1N4148 unzulässig, für eine 1N4007 unbedenklich.

Daraus folgt die Zielsetzung:

Gesucht ist der Zeitverlauf aller Spannungen und Ströme über mehrere Perioden, so genau, dass Brummspannung und Spitzenstrom auf ein Prozent ablesbar sind.

Und daraus folgen zwei Festlegungen, die den Rest bestimmen.

Die Dioden werden nach Shockley gerechnet, ohne Näherung. Ein Modell mit fester Schleusenspannung von 0,7 V liefert den Mittelwert noch brauchbar, den Spitzenstrom aber nicht: bei 677 mA fällt an der 1N4148 nicht 0,7 V ab, sondern 0,879 V, und die Leitdauer ändert sich entsprechend. Wer den Spitzenstrom braucht, braucht die Kennlinie.

Es wird im Zeitbereich gerechnet, Schritt für Schritt. Eine geschlossene Lösung gibt es nicht, weil die Diodengleichung sich nicht nach der Spannung auflösen lässt.

3. Die Methode auf einer Seite

Aufgestellt wird eine einzige Gleichung, die Knotenleitwertmatrix dieser Schaltung:

(g1+g30−g1−10g2+g4−g2+1−g1−g21R+g1+g20−1+10−Ri)(uaubuPiq)=(00uCR−uq)\left(\begin{array}{ccc|c} g_1+g_3 & 0 & -g_1 & -1 \\ 0 & g_2+g_4 & -g_2 & +1 \\ -g_1 & -g_2 & \frac{1}{R}+g_1+g_2 & 0 \\ \hline -1 & +1 & 0 & -R_i \end{array}\right) \begin{pmatrix}u_a\\u_b\\u_P\\ \hline i_q\end{pmatrix} = \begin{pmatrix}0\\[3pt] 0\\[3pt] \frac{u_C}{R}\\[3pt] \hline -u_q\end{pmatrix}

Zwei Zweige passen von Haus aus nicht in eine Matrix aus Leitwerten. Beide werden in dieselbe Form gebracht — Leitwert parallel zu Stromquelle:

Zweig Leitwert Stromquelle kommt aus
Diode gd=dIDdug_d = \dfrac{\mathrm{d}I_D}{\mathrm{d}u} im Arbeitspunkt Ieq=ID(uk)−gdukI_{eq} = I_D(u_k) - g_d\,u_k der Tangente an die Kennlinie
Kondensator gC=CΔtg_C = \dfrac{C}{\Delta t} IC=CΔtuCaltI_C = \dfrac{C}{\Delta t}\,u_C^{\,\text{alt}} der Integrationsformel

Gerechnet wird dann in zwei ineinanderliegenden Schleifen:

für jeden Zeitschritt:                              ← Verfahren 3, Euler
    u_q(t) ausrechnen;  u_C steht fest

    wiederhole:                                     ← Verfahren 2, Newton
        g_d , I_eq der vier Dioden bilden
        Y und i stempeln                            ← Verfahren 1
        Y·u = i  EINMAL direkt auflösen             ← Verfahren 1
    bis sich u nicht mehr ändert                       (3 bis 6 mal)

    u_C fortschreiben                               ← Verfahren 3

Die drei Verfahren an derselben Matrix:

Verfahren trägt bei wie oft
Knotenpotentialverfahren die Gleichung und ihre Auflösung je Durchgang
Newton-Raphson gdg_d und IeqI_{eq} der Dioden, und die Wiederholung je Durchgang
expliziter Euler den Zustand uCu_C, und das Fortschreiben je Zeitschritt

Über den Lauf von 200 ms: 20 000 Zeitschritte, 78 819 Newton-Durchgänge, 78 819 Auflösungen der Matrixgleichung, 20 000 Euler-Schritte.

Das ist die ganze Methode. Alles Weitere ist Ausführung: die Matrix Zweig für Zweig (Teil III), die Wiederholung und ihre Steuerung (Teil IV), der Zeitschritt und seine Grenze (Teil V), die Verschränkung im Einzelnen (Teil VI).

4. Das Zusammenspiel der drei Verfahren

Das Wesentliche an dieser Methode ist nicht das einzelne Verfahren — jedes für sich steht in jedem Lehrbuch. Das Wesentliche ist, wie sie ineinandergreifen.

Was in den drei Ebenen geschieht. Außen die Zeitschleife mit Quellspannung und Zustand, in der Mitte die Newton-Schleife mit den Ersatzschaltbildern der Dioden, innen das Auflösen der Matrixgleichung. Abbildung 6 zeigt dieselben drei Kästen mit den Zählwerten.

Drei Sätze fassen es zusammen; genau ausgeführt wird es in Teil VI.

Das Knotenpotentialverfahren arbeitet in jedem Durchgang. Aufgestellt wird die Matrix einmal — ihr Muster hängt nur an der Schaltung. Gefüllt und gelöst wird sie in jedem einzelnen Durchgang, über diesen Lauf 78 819-mal.

Newton und Euler liefern ihr die Zahlen. Newton die vier Diodenleitwerte und ihre Ersatzströme, der Euler den Zustand uCu_C. Beide arbeiten nicht während des Auflösens, sondern davor und danach.

Die Größe des Systems spielt keine Rolle. Ob vier Unbekannte oder viertausend — der Ablauf ist derselbe. Deshalb ist dieses kleine Beispiel lehrreich: an ihm lässt sich alles von Hand nachrechnen, und es gilt unverändert für jede Schaltung.

5. Was dabei herauskommt

Das Ergebnis vorweg:

Zehn Perioden vom leeren Kondensator an. Von oben: Spannungen, Brückeneingang, Ströme, Zahl der Newton-Durchgänge je Zeitschritt.

Der Kondensator lädt sich in etwa acht Perioden auf, danach pendelt sich ein Zustand ein, in dem er zwischen zwei Grenzen atmet. Die Ströme fließen nicht gleichmäßig, sondern in kurzen, hohen Stößen. Und das Newton-Verfahren braucht durchweg drei bis sechs Durchgänge je Zeitschritt — die unterste Kurve.

Damit ist der Überblick beisammen. Alles Weitere ist Ausführung.

TEIL II — DIE SCHALTUNG ERFASSEN

6. Der erste Schritt: zwei Listen

Das Aufstellen der Gleichungen beginnt nicht mit Gleichungen, sondern mit zwei Listen. Wer sie sauber führt, kann sich beim Anschreiben kaum noch vertun — und ein Simulationsprogramm arbeitet mit nichts anderem.

6.1 Die Knotenliste

Man nummeriert die Knoten und hält zu jedem fest, ob an ihm ein Energiespeicher hängt. Genau daran entscheidet sich später, welches Verfahren zuständig ist.

Nr. Knoten Art Unbekannte wie bestimmt
0 M — Minusausgang der Brücke Bezugsknoten — Gleichung entfällt
1 a — linker Wechselstromanschluss ohne Speicher uau_a aus der Matrixgleichung
2 b — rechter Wechselstromanschluss ohne Speicher ubu_b aus der Matrixgleichung
3 P — Plusausgang der Brücke ohne Speicher uPu_P aus der Matrixgleichung
— Quellzweig Zweiggröße iqi_q aus der Matrixgleichung
4 C — Kondensatorknoten Energiespeicher uCu_C expliziter Euler

Die vier oberen werden gemeinsam bestimmt: Die Matrixgleichung wird mit dem Gauß-Verfahren gelöst (Abschnitt 19), und weil ihre Einträge von der Lösung abhängen, wiederholt Newton-Raphson das Aufstellen und Lösen, bis beides zusammenpasst. Die fünfte, uCu_C, wird danach vom Euler fortgeschrieben.

Zwei Zeilen brauchen eine Erklärung.

Der Bezugsknoten. Ein Knoten wird als Bezug gewählt und sein Potential auf null gesetzt. Seine Knotengleichung wird weggelassen — sie ist die negative Summe aller übrigen und brächte nichts Neues. Ließe man sie stehen, wäre das System singulär.

Die vierte Unbekannte ist keine Spannung, sondern ein Strom. Das ist ungewöhnlich und der Grund dafür steht in Abschnitt 10. Vorerst genügt: die Quelle bringt eine eigene Unbekannte mit.

6.2 Die Zweigliste

Zu jedem Zweig gehört, zwischen welchen Knoten er liegt und nach welchem Gesetz er rechnet.

Zweig von → nach Modell
Quelle a → b uq(t)u_q(t) mit Innenwiderstand RiR_i, Strom iqi_q
D1 a → P Shockley
D2 b → P Shockley
D3 M → a Shockley
D4 M → b Shockley
R P → C linear
C C → M Energiespeicher, liefert die Differentialgleichung
R_L C → M linear

Die Angabe „von → nach” ist bei den Dioden die Durchlassrichtung und darf nicht vertauscht werden. Bei den übrigen Zweigen legt sie nur die Zählrichtung fest.

7. Was an dieser Schaltung neu ist

Wer Teil 2 dieser Reihe kennt, sieht den Unterschied sofort: dort lag der Kondensator unmittelbar am Ausgang der Brücke. Jetzt trennt ihn ein Vorwiderstand.

Teil 2 Teil 3
Knoten ohne Speicher a, b a, b, P
Quelle real, als Leitwert 1/Ri1/R_i ideal möglich, Quellstrom als Unbekannte
Newton-System 2 × 2 4 × 4
Zustandsgröße hängt an den Dioden unmittelbar nur noch über RR

Das ist mehr als eine zusätzliche Unbekannte. Es ändert die Struktur: in Teil 2 speisten die Dioden den Kondensator direkt, und die Differentialgleichung enthielt die Diodenströme. Hier sieht die Differentialgleichung nur noch den Strom durch RR — alles Nichtlineare steckt eine Ebene davor.

Das ist zugleich die Bauform, die in wirklichen Netzteilen vorkommt, und die Bauform, in der sich das Verfahren am klarsten zeigt: die nichtlineare algebraische Ebene und die lineare Zustandsebene sind sauber getrennt.

8. Die Bauelementgleichungen

Jeder Zweig braucht eine Vorschrift, die seinen Strom aus den Potentialen seiner Knoten bestimmt.

Der Widerstand. Trivial, aber der Vollständigkeit halber:

i=u1−u2Ri = \frac{u_1 - u_2}{R}

Die Diode nach Shockley, mit vv als Spannung von der Anode zur Kathode:

ID(v)=IS(ev/(nVT)−1)I_D(v) = I_S\left(e^{\,v/(nV_T)} - 1\right)

Drei Zahlen bestimmen sie: der Sättigungssperrstrom ISI_S, der Emissionskoeffizient nn und die Temperaturspannung VTV_T. Für die hier verwendete 1N4148 sind das IS=2,52I_S = 2{,}52 nA, n=1,752n = 1{,}752 und VT=25,852V_T = 25{,}852 mV bei 300 K, also

nVT=45,293mVnV_T = 45{,}293\ \text{mV}

Diese Zahl bestimmt das ganze Verhalten. Sie ist die Spannung, um die sich vv ändern muss, damit der Strom sich um den Faktor ee ändert. Eine Änderung um ein Volt ändert den Strom also um e22≈3,6e^{22} \approx 3{,}6 Milliarden. Man merke sich das — es erklärt später, warum das Newton-Verfahren gedämpft werden muss.

Die Ableitung brauchen wir gleich mit. Sie heißt differentieller Leitwert und ist die Steigung der Kennlinie im Arbeitspunkt:

gd(v)=dIDdv=ISnVTev/(nVT)g_d(v) = \frac{\mathrm{d}I_D}{\mathrm{d}v} = \frac{I_S}{nV_T}\,e^{\,v/(nV_T)}

Zwei Bemerkungen dazu.

Die −1-1 der Shockley-Gleichung kommt in gdg_d nicht mehr vor: sie ist eine Konstante und verschwindet beim Ableiten.

Und gdg_d ist der einzige Beitrag der Diode zur Jacobi-Matrix. Der Strom selbst geht nur in die rechte Seite ein. Das ist der Grund, warum ein Simulationsprogramm zu jedem nichtlinearen Bauelement genau zwei Funktionen braucht: Strom und Leitwert.

Der Kondensator ist kein gewöhnlicher Zweig. Er liefert

i=CduCdti = C\,\frac{\mathrm{d}u_C}{\mathrm{d}t}

und damit keine algebraische Beziehung, sondern eine Differentialgleichung. Genau deshalb steht er in der Knotenliste in einer eigenen Zeile.

TEIL III — VERFAHREN 1: DAS KNOTENPOTENTIALVERFAHREN

9. Die Knotenleitwertmatrix aufstellen und lösen

Bevor irgendeine Nichtlinearität ins Spiel kommt, wird das Werkzeug selbst vorgeführt: so stellt man die Knotenleitwertmatrix auf, und so löst man sie. Alles Weitere baut darauf auf.

Dazu werden die vier Dioden für einen Augenblick durch feste Leitwerte ersetzt. Das ist keine Näherung für die spätere Rechnung, sondern ein Vorlauf: er zeigt die Maschine an einem Fall, den man von Hand nachrechnen kann.

9.1 Die drei Aufstellregeln

Für ein Netz aus Leitwerten und Stromquellen gilt, ohne dass man eine einzige Gleichung anschreiben müsste:

Eintrag Regel
YiiY_{ii} Summe aller Leitwerte am Knoten ii
Yik=YkiY_{ik} = Y_{ki} negative Summe der Leitwerte zwischen ii und kk
iii_i Summe der Ströme, die in den Knoten ii eingeprägt werden

Das ist das Knotenpotentialverfahren. Man geht die Zweigliste einmal durch, trägt jeden Zweig an seinen zwei Plätzen ein, und die Matrix steht.

Zwei Dinge braucht diese Schaltung zusätzlich, und beide werden in Abschnitt 10 begründet:

  • Der Bezugsknoten M bekommt keine Zeile — sein Potential ist null.
  • Die Spannungsquelle hat keinen Leitwert. Ihr Strom wird darum zur vierten Unbekannten, und ihre Zeile ist der Maschensatz. Das ergibt den Rand um die 3×33\times3-Matrix.

9.2 Die Matrix dieser Schaltung

Bezeichnet man mit g1…g4g_1 \dots g_4 die Leitwerte der vier Diodenzweige, so liefern die Regeln unmittelbar:

(g1+g30−g1−10g2+g4−g2+1−g1−g21R+g1+g20−1+10−Ri)(uaubuPiq)=(00uCR−uq)\left(\begin{array}{ccc|c} g_1+g_3 & 0 & -g_1 & -1 \\ 0 & g_2+g_4 & -g_2 & +1 \\ -g_1 & -g_2 & \frac{1}{R}+g_1+g_2 & 0 \\ \hline -1 & +1 & 0 & -R_i \end{array}\right) \begin{pmatrix}u_a\\u_b\\u_P\\ \hline i_q\end{pmatrix} = \begin{pmatrix}0\\[3pt] 0\\[3pt] \frac{u_C}{R}\\[3pt] \hline -u_q\end{pmatrix}

Man lese die dritte Zeile zur Probe: am Knoten P hängen D1, D2 und der Vorwiderstand RR, also steht g1+g2+1/Rg_1+g_2+1/R auf der Diagonalen; P ist über D1 mit a und über D2 mit b verbunden, also stehen dort −g1-g_1 und −g2-g_2. Rechts steht uC/Ru_C/R, weil das andere Ende von RR auf dem bekannten Potential uCu_C liegt — ein bekanntes Potential wirkt wie eine Quelle und wandert auf die rechte Seite.

9.3 Und so wird sie gelöst — mit Zahlen

Angenommen, D1 und D4 leiten mit je g=2g = 2 S, D2 und D3 sperren (g=0g = 0), der Kondensator steht auf uC=20u_C = 20 V, die Quelle liefert uq=30u_q = 30 V; R=10ΩR = 10\ \Omega, Ri=1ΩR_i = 1\ \Omega. Dann lautet die Gleichung

(20−2−1020+1−202,10−1+10−1)(uaubuPiq)=(002−30)\begin{pmatrix} 2 & 0 & -2 & -1 \\ 0 & 2 & 0 & +1 \\ -2 & 0 & 2{,}1 & 0 \\ -1 & +1 & 0 & -1 \end{pmatrix} \begin{pmatrix}u_a\\u_b\\u_P\\i_q\end{pmatrix} = \begin{pmatrix}0\\0\\2\\-30\end{pmatrix}

Die Determinante ist −4,8-4{,}8, die Matrix also regulär, und die Lösung lautet

ua=28,750V,ub=−0,4167V,uP=28,333V,iq=0,8333Au_a = 28{,}750\ \text{V},\quad u_b = -0{,}4167\ \text{V},\quad u_P = 28{,}333\ \text{V},\quad i_q = 0{,}8333\ \text{A}

Zur Probe: durch D1 fließt g1(ua−uP)=2⋅0,4167=0,8333g_1(u_a-u_P) = 2 \cdot 0{,}4167 = 0{,}8333 A, durch D4 ebenso, durch RR fließt (uP−uC)/R=8,333/10=0,8333(u_P-u_C)/R = 8{,}333/10 = 0{,}8333 A — alles derselbe Strom, wie es der Reihenschaltung entspricht. Der Knotensatz an a geht auf null auf, der Maschensatz ebenfalls.

Damit ist das Knotenpotentialverfahren vollständig vorgeführt: Matrix aufstellen, Gleichungssystem lösen, Potentiale ablesen, Ströme daraus bilden.

9.4 Ob man invertiert oder eliminiert

Für die Lösung stehen drei Wege offen, und sie unterscheiden sich nur im Aufwand, nicht im Ergebnis.

Invertieren. 𝐮=𝐘−1𝐢\mathbf{u} = \mathbf{Y}^{-1}\mathbf{i}. Für eine 2×22\times2- oder 3×33\times3-Matrix ist das der Weg von Hand, und er ist lehrreich, weil die Inverse zeigt, wie jeder Quellstrom auf jedes Potential durchschlägt. Für dieses Beispiel lautet die erste Zeile der Inversen (1,3125;0,4375;1,25;−0,875)(1{,}3125;\ 0{,}4375;\ 1{,}25;\ -0{,}875); damit ist ua=1,25⋅2−0,875⋅(−30)=28,75u_a = 1{,}25 \cdot 2 - 0{,}875 \cdot (-30) = 28{,}75 V.

Eliminieren. Gauß mit Spaltenpivotierung oder — für dieses System besonders kurz — Elimination von Hand mit anschließender Kreuzregel (Abschnitt 19). Rund dreimal billiger als das Invertieren, weil man die Inverse nur für eine rechte Seite braucht.

Iterativ lösen. Jacobi-Verfahren, Gauß-Seidel-Verfahren oder ein Krylow-Verfahren. Bei vier Unbekannten sinnlos, bei zehntausend Knoten der übliche Weg.

Ein Hinweis zur Sprache, weil das Wort iterativ gleich zweimal vorkommen wird: Hier ist die lineare Iteration gemeint, die dieselbe Matrix mehrfach anwendet, um ein lineares System zu lösen. Davon zu trennen ist die nichtlineare Wiederholung des ganzen Aufstellens und Lösens, die im nächsten Abschnitt anfängt. Dieses Manuskript löst das lineare System jedes Mal direkt und wiederholt nur die äußere Schleife.

9.5 Was jetzt noch fehlt

Die Vorführung hat zwei Dinge unterstellt, die in Wahrheit nicht gelten:

unterstellt Wirklichkeit erledigt wird das in
die vier Diodenleitwerte g1…g4g_1 \dots g_4 seien bekannte Zahlen sie hängen von den Spannungen ab, die man erst sucht Teil IV
uCu_C sei eine bekannte Zahl uCu_C ändert sich mit der Zeit, und zwar nach einer Differentialgleichung Teil V

Beide werden innerhalb dieser Matrixgleichung erledigt — die Gleichung selbst bleibt, wie sie ist. Der Rest von Teil III führt aus, wie die einzelnen Einträge zustande kommen und wie die Dioden hineinkommen.

10. Das Rezept — und warum es erweitert werden muss

10.1 Das Rezept in sechs Schritten

  1. Bezugsknoten wählen. Seine Gleichung entfällt.
  2. Jedem übrigen Knoten ein Potential geben.
  3. Für jeden Knoten den Knotensatz anschreiben, immer in derselben Form: Summe aller abfließenden Zweigströme = 0. Jeder Zweigstrom wird durch die Potentiale seiner beiden Knoten ausgedrückt.
  4. Knoten mit Energiespeicher liefern eine Differentialgleichung, Knoten ohne liefern eine algebraische Gleichung.
  5. Das algebraische System mit Newton-Raphson lösen.
  6. Die Zustandsgrößen mit einem Integrationsverfahren fortschreiben.

Der einzige Punkt, an dem man aufpassen muss, ist die Vorzeichenregel in Schritt 3. Sie muss über alle Knoten hinweg dieselbe sein. Hier gilt durchgehend: abfließend zählt positiv. Man kann ebensogut zufließend positiv zählen — nur eben nicht gemischt.

10.2 Die stillschweigende Voraussetzung

Schritt 3 enthält eine Annahme, die man leicht übersieht: jeder Zweigstrom muss sich durch die Potentiale seiner Knoten ausdrücken lassen. Anders gesagt: jeder Zweig braucht einen Leitwert.

Damit kennt das reine Knotenpotentialverfahren nur reale Quellen. Eine Spannungsquelle mit Innenwiderstand wird in eine Stromquelle mit dem Parallelleitwert 1/Ri1/R_i umgerechnet — die Umformung, die man in jedem Lehrbuch zuerst lernt:

iq=uq−(ua−ub)Rii_q = \frac{u_q - (u_a - u_b)}{R_i}

Eine ideale Spannungsquelle hat keinen Leitwert. 1/Ri1/R_i liefe gegen unendlich, und die Umformung existiert nicht.

10.3 Wo es zuerst weh tut

Ein kleiner Innenwiderstand statt null hilft nicht: die Matrix wird schon lange vorher unbrauchbar.

Sperren alle vier Dioden — das ist der Fall, sobald der Kondensator geladen ist und die Quelle durch null geht —, dann hängen a und b nur noch über die Quelle aneinander. Die obere linke Ecke der Jacobi-Matrix lautet dann

(1/Ri+Gmin−1/Ri−1/Ri1/Ri+Gmin)\begin{pmatrix} 1/R_i + G_{\min} & -1/R_i \\ -1/R_i & 1/R_i + G_{\min}\end{pmatrix}

(GminG_{\min} ist ein winziger Leitwert gegen Masse, siehe Abschnitt 18.) Ihre Determinante ist 2Gmin/Ri2G_{\min}/R_i, ihre Konditionszahl rund 1/(GminRi)1/(G_{\min}R_i):

RiR_i Konditionszahl verbleibende Stellen
10 Ω 1⋅10121\cdot10^{12} 4,0
1 Ω 1⋅10121\cdot10^{12} 4,0
1 mΩ 2⋅10122\cdot10^{12} 3,7
0,1 mΩ 2⋅10132\cdot10^{13} 2,7
1 µΩ 1,9⋅10151{,}9\cdot10^{15} 0,7

Bei doppelter Genauigkeit stehen rund sechzehn Stellen zur Verfügung. Ab etwa einem Milliohm reicht das nicht mehr, um den Newton-Schritt unter die Abbruchschranke von 10−1210^{-12} V zu drücken: das Verfahren läuft in die Iterationsgrenze, ohne dass ein Programmierfehler vorläge.

Das ist keine Kleinigkeit am Rande. Netztransformatoren haben Innenwiderstände von Bruchteilen eines Ohm, und wer eine Schaltung an einer als ideal angenommenen Quelle rechnen will, steht sofort davor.

10.4 Die Erweiterung

Der Ausweg ist einfach und allgemein: der Strom im Quellzweig wird zur eigenen Unbekannten, und die Quelle bekommt eine eigene Gleichung.

−(ua−ub)−Riiq+uq=0-(u_a - u_b) - R_i\,i_q + u_q = 0

Man lese sie als das, was sie ist: der Maschensatz für den Quellzweig. Für Ri=0R_i = 0 bleibt die reine Zwangsbedingung ua−ub=uqu_a - u_b = u_q übrig.

Der entscheidende Unterschied: der Innenwiderstand steht jetzt als Widerstand in der Gleichung, nicht als Leitwert. Deshalb darf er null werden.

Man nennt das die erweiterte Knotenanalyse; im englischen Schrifttum heißt sie modified nodal analysis, und sie ist das, was jedes Simulationsprogramm tatsächlich aufstellt. Jedes Element, das sich nicht als Leitwert schreiben lässt — ideale Spannungsquellen, Induktivitäten, gesteuerte Quellen —, bringt auf dieselbe Weise seinen Strom als zusätzliche Unbekannte mit.

Was man gewinnt, zeigt der Vergleich am laufenden Programm, gerechnet mit den Werten aus Teil 2 (10 V, CC = 100 µF, RLR_L = 1 kΩ):

RiR_i rein, 3 × 3 erweitert, 4 × 4
10 Ω 7,919185 V, 5 Durchgänge 7,919185 V, 5 Durchgänge
1 mΩ 8,241467 V, 200 Durchgänge 8,241467 V, 5 Durchgänge
1 µΩ 8,241497 V, 200 Durchgänge 8,241497 V, 5 Durchgänge
0 nicht rechenbar 8,241497 V, 5 Durchgänge

Wo das reine Verfahren trägt, liefert die Erweiterung dasselbe. Wo es nicht mehr trägt, rechnet sie weiter. Deshalb wird von hier an nur noch die erweiterte Fassung verwendet.

11. Die vier Gleichungen dieser Schaltung

Jetzt wird das Rezept angewendet, Knoten für Knoten. Man geht die Zweigliste durch und fragt bei jedem Zweig: hängt er an diesem Knoten, und fließt sein Strom hin oder weg?

11.1 Knoten a

An a hängen drei Zweige:

Zweig Richtung Beitrag
D1 (a → P) führt Strom weg +ID(ua−uP)+I_D(u_a - u_P)
D3 (M → a) führt Strom hin −ID(−ua)-I_D(-u_a)
Quelle führt Strom hin −iq-i_q

Die Diodenspannung von D3 ist uM−ua=−uau_M - u_a = -u_a, weil M der Bezugsknoten ist. Das Vorzeichen davor ist negativ, weil der Strom zufließt.

Fa=ID(ua−uP)−ID(−ua)−iq+Gminua=0\boxed{\;F_a = I_D(u_a - u_P) - I_D(-u_a) - i_q + G_{\min}u_a = 0\;}

11.2 Knoten b

Dasselbe, gespiegelt. Nur der Quellstrom kehrt sein Vorzeichen um — was in a hineinfließt, fließt aus b heraus:

Fb=ID(ub−uP)−ID(−ub)+iq+Gminub=0\boxed{\;F_b = I_D(u_b - u_P) - I_D(-u_b) + i_q + G_{\min}u_b = 0\;}

11.3 Knoten P

An P hängen ebenfalls drei Zweige:

Zweig Richtung Beitrag
R (P → C) führt Strom weg +uP−uCR+\dfrac{u_P - u_C}{R}
D1 (a → P) führt Strom hin −ID(ua−uP)-I_D(u_a - u_P)
D2 (b → P) führt Strom hin −ID(ub−uP)-I_D(u_b - u_P)

FP=uP−uCR−ID(ua−uP)−ID(ub−uP)+GminuP=0\boxed{\;F_P = \frac{u_P - u_C}{R} - I_D(u_a - u_P) - I_D(u_b - u_P) + G_{\min}u_P = 0\;}

Hier steckt der Kern von Teil 3. Dieser Knoten ist algebraisch, weil an ihm kein Energiespeicher hängt: was hineinfließt, muss im selben Augenblick wieder heraus. Erst dahinter, am Knoten C, darf sich Ladung sammeln.

Und man beachte: uCu_C kommt in der Gleichung vor, ist aber keine Unbekannte des Newton-Systems. Es ist ein bekannter Wert — der Zustand vom Anfang des Zeitschritts.

11.4 Der Quellzweig

Fq=−(ua−ub)−Riiq+uq=0\boxed{\;F_q = -(u_a - u_b) - R_i\,i_q + u_q = 0\;}

11.5 Knoten C — die Differentialgleichung

Am Kondensatorknoten kommt der Strom durch RR an und teilt sich auf:

uP−uCR=CduCdt+uCRL\frac{u_P - u_C}{R} = C\,\frac{\mathrm{d}u_C}{\mathrm{d}t} + \frac{u_C}{R_L}

nach der Ableitung aufgelöst:

duCdt=1C(uP−uCR−uCRL)\boxed{\;\frac{\mathrm{d}u_C}{\mathrm{d}t} = \frac{1}{C}\left(\frac{u_P - u_C}{R} - \frac{u_C}{R_L}\right)\;}

Hier steht keine Diode mehr. Das ist der Gewinn der Trennung: die Nichtlinearität ist vollständig in 𝐅\mathbf{F} eingesperrt, und die Differentialgleichung ist linear in ihren beiden Eingangsgrößen uPu_P und uCu_C.

11.6 Welches Verfahren welche Gleichung geliefert hat

Gleichung Herkunft
FaF_a Knotensatz am Knoten a — Knotenpotentialverfahren
FbF_b Knotensatz am Knoten b — Knotenpotentialverfahren
FPF_P Knotensatz am Knoten P — Knotenpotentialverfahren
FqF_q Maschensatz im Quellzweig — die Erweiterung
duC/dt\mathrm{d}u_C/\mathrm{d}t Knotensatz am Knoten C, mit Speicher — die Differentialgleichung

Drei von fünf Gleichungen sind also unverändert das, was man im Knotenpotentialverfahren lernt. Die vierte ist der Zusatz, der ideale Quellen möglich macht. Die fünfte ist das nichtlineare Differentialgleichungssystem, das der Euler übernimmt.

11.7 Zusammengefasst

Vier algebraische Gleichungen für vier Unbekannte, dazu eine Differentialgleichung für die fünfte:

𝐅(𝐱)=𝟎,𝐱=(uaubuPiq),duCdt=f(uP,uC)\mathbf{F}(\mathbf{x}) = \mathbf{0},\qquad \mathbf{x} = \begin{pmatrix}u_a\\u_b\\u_P\\i_q\end{pmatrix},\qquad \frac{\mathrm{d}u_C}{\mathrm{d}t} = f(u_P, u_C)

Damit sind alle Gleichungen beisammen. Der nächste Abschnitt bringt sie in die Form, in der man das Knotenpotentialverfahren lernt und in der jedes Simulationsprogramm rechnet: als Matrix.

12. Wie die Dioden in die Matrix kommen

Abschnitt 9 hat die Matrixgleichung 𝐘𝐮=𝐢\mathbf{Y}\mathbf{u} = \mathbf{i} aufgestellt und gelöst — unter der Annahme, die vier Diodenleitwerte seien bekannte Zahlen. Jetzt wird diese Annahme eingelöst: Es wird gezeigt, welchen Leitwert und welchen Quellstrom eine Diode beisteuert und wie beides in dieselbe Matrix eingetragen wird.

12.1 Die Aufstellregeln, noch einmal in Kurzform

Für ein Netzwerk aus Leitwerten und Stromquellen lautet die Vorschrift, ohne dass man je eine Gleichung anschreiben müsste:

Eintrag Regel
YiiY_{ii} (Hauptdiagonale) Summe aller Leitwerte, die am Knoten ii hängen
Yik=YkiY_{ik} = Y_{ki} (Nebendiagonale) negative Summe der Leitwerte, die ii unmittelbar mit kk verbinden
iii_i (rechte Seite) Summe der Quellströme, die in den Knoten ii eingeprägt werden

Drei Eigenschaften folgen unmittelbar daraus und werden später als Proben gebraucht:

  • 𝐘\mathbf{Y} ist symmetrisch — jeder Zweig trägt zu YikY_{ik} und YkiY_{ki} denselben Wert bei.
  • Die Diagonale ist positiv, die Nebendiagonale negativ oder null.
  • In jeder Zeile ist der Diagonaleintrag mindestens so groß wie die Summe der Beträge der übrigen — das Netzwerk ist passiv.

Diese Vorschrift setzt zweierlei voraus: Jeder Zweig muss einen Leitwert haben, und die Quellen müssen Stromquellen sein. An dieser Schaltung ist beides zunächst verletzt: die Dioden haben keinen Leitwert, und die Quelle ist eine Spannungsquelle. Beide Hindernisse werden jetzt der Reihe nach ausgeräumt — das erste durch das Ersatzschaltbild der Diode, das zweite durch die Erweiterung aus Abschnitt 10.4.

12.2 Das Ersatzschaltbild der Diode

Die Diode hat keinen Leitwert, weil IDI_D nicht proportional zu uu ist. Sie hat aber in jedem einzelnen Arbeitspunkt eine Tangente, und die genügt:

ID(u)≈ID(u(k))+gd(u(k))(u−u(k))=gd⏟Leitwert⋅u+ID(u(k))−gdu(k)⏟IeqI_D(u) \;\approx\; I_D(u^{(k)}) + g_d(u^{(k)})\,\bigl(u - u^{(k)}\bigr) \;=\; \underbrace{g_d}_{\text{Leitwert}}\cdot u \;+\; \underbrace{I_D(u^{(k)}) - g_d\,u^{(k)}}_{\textstyle I_{eq}}

Das ist genau die Reihenschaltung zweier Bauelemente, die man kennt: ein Leitwert gdg_d parallel zu einer Stromquelle IeqI_{eq}.

Links die Kennlinie mit ihrer Tangente im Arbeitspunkt: deren Steigung ist der differentielle Leitwert g_d, deren Achsenabschnitt der Ersatzstrom I_{eq}. Rechts das Ersatzschaltbild, das daraus folgt — beide Größen zusammen geben die Kennlinie an dieser Stelle exakt wieder.

Man nennt das das Ersatzschaltbild des nichtlinearen Elements (englisch companion model). Es ist dasselbe Bild, das man beim Transistor für den Kleinsignalbetrieb zeichnet — nur wird es hier nicht einmal für einen Arbeitspunkt gezeichnet, sondern in jedem Rechenschritt neu.

Der Punkt ist: nach diesem Ersatz ist das ganze Netzwerk linear. Man darf es aufstellen wie im ersten Semester. Der Preis ist, dass gdg_d und IeqI_{eq} nur an dieser einen Stelle gelten — man muss also wiederholen und die Stelle nachführen. Diese Wiederholung ist das Newton-Verfahren (Abschnitt 14).

Zahlenbeispiel aus dem Leitfall bei t=164,84t = 164{,}84 ms: D1 führt 677 mA bei 0,879 V. Daraus gd=14,949g_d = 14{,}949 S und

Ieq=0,677A−14,949S⋅0,879V=−12,464AI_{eq} = 0{,}677\ \text{A} - 14{,}949\ \text{S} \cdot 0{,}879\ \text{V} = -12{,}464\ \text{A}

Der große negative Ersatzstrom ist kein Fehler. Die Tangente an eine Exponentialfunktion schneidet die Achse weit unten; erst Leitwert und Stromquelle zusammen ergeben wieder die 677 mA.

12.3 Die Knotenleitwertmatrix dieser Schaltung

Jetzt ist die Zweigliste aus Abschnitt 6.2 abzuarbeiten. Jeder Zweig trägt einen Leitwert bei, jeder linearisierte Zweig zusätzlich einen Ersatzstrom:

Zweig zwischen Leitwert Ersatzstrom
D1 a, P g1g_1 Ieq1I_{eq1}, treibt von a nach P
D2 b, P g2g_2 Ieq2I_{eq2}, treibt von b nach P
D3 M, a g3g_3 Ieq3I_{eq3}, treibt von M nach a
D4 M, b g4g_4 Ieq4I_{eq4}, treibt von M nach b
RR P, C 1/R1/R —
GminG_{\min} jeder Knoten, M GminG_{\min} —

Der Zweig RR verdient einen eigenen Satz. Sein zweites Ende hängt am Knoten C — und uCu_C ist keine Unbekannte, sondern der bekannte Zustand vom Anfang des Zeitschritts. Ein Knoten mit bekanntem Potential wirkt im Knotenpotentialverfahren wie eine ideale Quelle gegen Masse: sein Leitwert kommt auf die Diagonale, und der zugehörige Strom wandert als eingeprägter Strom auf die rechte Seite:

1R→YPP,uCR→iP\frac{1}{R} \to Y_{PP}, \qquad \frac{u_C}{R} \to i_P

Damit steht die Matrix:

𝐘=(g1+g3+Gmin0−g10g2+g4+Gmin−g2−g1−g21R+g1+g2+Gmin),𝐮=(uaubuP)\mathbf{Y} = \begin{pmatrix} g_1 + g_3 + G_{\min} & 0 & -g_1 \\[3pt] 0 & g_2 + g_4 + G_{\min} & -g_2 \\[3pt] -g_1 & -g_2 & \dfrac{1}{R} + g_1 + g_2 + G_{\min} \end{pmatrix}, \qquad \mathbf{u} = \begin{pmatrix}u_a\\u_b\\u_P\end{pmatrix}

𝐢=(Ieq3−Ieq1Ieq4−Ieq2uCR+Ieq1+Ieq2)\mathbf{i} = \begin{pmatrix} I_{eq3} - I_{eq1} \\[3pt] I_{eq4} - I_{eq2} \\[3pt] \dfrac{u_C}{R} + I_{eq1} + I_{eq2} \end{pmatrix}

Man lese die erste Zeile zur Probe zurück: Am Knoten a hängen D1 und D3, also steht auf der Diagonalen g1+g3g_1 + g_3; a ist über D1 mit P verbunden, also steht −g1-g_1 in der Spalte P; mit b ist a nicht unmittelbar verbunden, also steht dort null. Und rechts: Ieq3I_{eq3} treibt in a hinein (positiv), Ieq1I_{eq1} aus a heraus (negativ).

12.4 Der Quellzweig — die Matrix bekommt einen Rand

Die Quelle bringt keinen Leitwert mit (Abschnitt 10.2), sondern ihren Strom als zusätzliche Unbekannte. In der Matrix äußert sich das als ein Rand, der um 𝐘\mathbf{Y} herumgelegt wird — eine zusätzliche Spalte für iqi_q und eine zusätzliche Zeile für den Maschensatz:

(g1+g3+Gmin0−g1−10g2+g4+Gmin−g2+1−g1−g21R+g1+g2+Gmin0−1+10−Ri)(uaubuPiq)=(Ieq3−Ieq1Ieq4−Ieq2uCR+Ieq1+Ieq2−uq)\left(\begin{array}{ccc|c} g_1+g_3+G_{\min} & 0 & -g_1 & -1 \\[3pt] 0 & g_2+g_4+G_{\min} & -g_2 & +1 \\[3pt] -g_1 & -g_2 & \frac{1}{R}+g_1+g_2+G_{\min} & 0 \\[3pt] \hline -1 & +1 & 0 & -R_i \end{array}\right) \begin{pmatrix}u_a\\u_b\\u_P\\ \hline i_q\end{pmatrix} = \begin{pmatrix} I_{eq3}-I_{eq1}\\[3pt] I_{eq4}-I_{eq2}\\[3pt] \frac{u_C}{R}+I_{eq1}+I_{eq2}\\[3pt] \hline -u_q \end{pmatrix}

Die Randspalte enthält die Inzidenz des Quellzweigs: −1-1 am Knoten, in den der Strom hineinfließt, +1+1 am Knoten, aus dem er herausfließt. Die Randzeile ist derselbe Vektor gespiegelt, denn sie ist der Maschensatz −(ua−ub)−Riiq+uq=0-(u_a-u_b) - R_i i_q + u_q = 0. In der Ecke steht −Ri-R_i — ein Widerstand, kein Leitwert, und deshalb darf er null werden.

Von der Zweigliste zur Matrix. Links die Schaltung, jeder Zweig in seiner Farbe; rechts die Matrix, unter jedem Eintrag ein Farbband, das die Zweige nennt, die ihn gestempelt haben. Unten dieselbe Matrix mit den Zahlen des Leitfalls.

Diese gerandete Form ist die allgemeine Bauart der erweiterten Knotenanalyse. Jedes Element ohne Leitwert — ideale Spannungsquelle, Induktivität, gesteuerte Quelle — legt auf dieselbe Weise einen weiteren Rand um die Matrix.

12.5 Dieselbe Matrix mit Zahlen

Aufgestellt an zwei wirklichen Arbeitspunkten des Laufs; das Programm knotenmatrix.py erzeugt beide.

Leitfall, t=164,84t = 164{,}84 ms (D1 und D4 leiten, uC=20,756u_C = 20{,}756 V):

(14,9490−14,949−1014,949≈0+1−14,949≈015,0490−1+10−1)(uaubuPiq)=(+12,4644−12,4644−10,3888−29,9621)\left(\begin{array}{ccc|c} 14{,}949 & 0 & -14{,}949 & -1 \\ 0 & 14{,}949 & \approx 0 & +1 \\ -14{,}949 & \approx 0 & 15{,}049 & 0 \\ \hline -1 & +1 & 0 & -1 \end{array}\right) \begin{pmatrix}u_a\\u_b\\u_P\\i_q\end{pmatrix} = \begin{pmatrix} +12{,}4644 \\ -12{,}4644 \\ -10{,}3888 \\ -29{,}9621 \end{pmatrix}

Aufgelöst: ua=28,4059u_a = 28{,}4059 V, ub=−0,8791u_b = -0{,}8791 V, uP=27,5269u_P = 27{,}5269 V, iq=0,6771i_q = 0{,}6771 A. Die Konditionszahl beträgt 77 — ein gut gestelltes System.

Man sieht der Matrix den Schaltzustand an: g1=g4=14,949g_1 = g_4 = 14{,}949 S für die leitenden Dioden, g2=g3≈10−280g_2 = g_3 \approx 10^{-280} S für die sperrenden. Die Brücke „schaltet” also nicht — sie ändert nur ihre Leitwerte, und zwar um 280 Zehnerpotenzen.

Sperrfall, t=162,39t = 162{,}39 ms (alle vier Dioden sperren):

(4,794⋅10−70−4,784⋅10−7−109,257⋅10−7≈0+1−4,784⋅10−7≈00,10−1+10−1)(uaubuPiq)=(2,50⋅10−8−7,58⋅10−82,0243−20,4676)\left(\begin{array}{ccc|c} 4{,}794\cdot10^{-7} & 0 & -4{,}784\cdot10^{-7} & -1 \\ 0 & 9{,}257\cdot10^{-7} & \approx 0 & +1 \\ -4{,}784\cdot10^{-7} & \approx 0 & 0{,}1 & 0 \\ \hline -1 & +1 & 0 & -1 \end{array}\right) \begin{pmatrix}u_a\\u_b\\u_P\\i_q\end{pmatrix} = \begin{pmatrix} 2{,}50\cdot10^{-8} \\ -7{,}58\cdot10^{-8} \\ 2{,}0243 \\ -20{,}4676 \end{pmatrix}

Hier zeigt sich, wofür GminG_{\min} da ist. Die Differenz zwischen Yaa=4,794⋅10−7Y_{aa} = 4{,}794\cdot10^{-7} und −YaP=4,784⋅10−7-Y_{aP} = 4{,}784\cdot10^{-7} beträgt genau 10−910^{-9} S: das ist GminG_{\min}, und es ist das Einzige, was den Knoten a in diesem Augenblick überhaupt an Masse bindet. Ohne ihn wäre die Matrix singulär. Die Konditionszahl steigt auf 2,8⋅1062{,}8\cdot10^{6} — das ist viel, aber von den sechzehn Stellen bleiben noch neun.

YPP=0,1Y_{PP} = 0{,}1 S ist in diesem Zustand nichts als 1/R1/R: der Knoten P hängt nur noch am Vorwiderstand, und deshalb wird uP=uCu_P = u_C. Genau das sieht man im Kurvenbild, wenn die beiden Linien zusammenfallen.

12.6 Warum die Jacobi-Matrix genauso aussieht

Das ist keine Ähnlichkeit, sondern Gleichheit — und der Grund lässt sich in drei Zeilen aufschreiben.

Der Knotensatz sagt: der Vektor der Knotengleichungen entsteht, indem man die Zweigströme mit der Inzidenzmatrix 𝐀\mathbf{A} auf die Knoten verteilt. Die Zweigspannungen entstehen umgekehrt aus den Potentialen:

𝐅(𝐮)=𝐀𝐢z(𝐯),𝐯=𝐀𝖳𝐮\mathbf{F}(\mathbf{u}) = \mathbf{A}\,\mathbf{i}_z(\mathbf{v}), \qquad \mathbf{v} = \mathbf{A}^{\mathsf T}\mathbf{u}

Jetzt wird abgeleitet. Nach der Kettenregel:

𝐉=∂𝐅∂𝐮=𝐀∂𝐢z∂𝐯⏟𝐆d(diagonal)𝐀𝖳=𝐀𝐆d𝐀𝖳\mathbf{J} = \frac{\partial \mathbf{F}}{\partial \mathbf{u}} = \mathbf{A}\, \underbrace{\frac{\partial \mathbf{i}_z}{\partial \mathbf{v}}} _{\textstyle \mathbf{G}_d\ \text{(diagonal)}}\, \mathbf{A}^{\mathsf T} \;=\; \mathbf{A}\,\mathbf{G}_d\,\mathbf{A}^{\mathsf T}

Und die Knotenleitwertmatrix eines linearen Netzwerks lautet, ebenso allgemein hergeleitet:

𝐘=𝐀𝐆𝐀𝖳\mathbf{Y} = \mathbf{A}\,\mathbf{G}\,\mathbf{A}^{\mathsf T}

Dieselbe Formel. Der einzige Unterschied ist, was in der Diagonalmatrix steht: bei 𝐘\mathbf{Y} die festen Leitwerte, bei 𝐉\mathbf{J} die differentiellen Leitwerte im Arbeitspunkt. Bei einem linearen Zweig sind beide gleich; bei der Diode ist gd=IS/(nVT)⋅eu/nVTg_d = I_S/(nV_T)\cdot e^{u/nV_T} statt eines festen gg.

Damit ist die Sache entschieden:

Die Jacobi-Matrix eines Knotengleichungssystems ist die Knotenleitwertmatrix des linearisierten Netzwerks.

Man kann es auch ohne Ableitung sehen. Nach dem Ersatz aus 11.2 ist 𝐅\mathbf{F} eine lineare Funktion:

𝐅(𝐮)=𝐘𝐮−𝐢\mathbf{F}(\mathbf{u}) = \mathbf{Y}\,\mathbf{u} - \mathbf{i}

Setzt man das in die Newton-Vorschrift ein, so wird aus

𝐉𝚫=−𝐅(𝐮(k))mit𝐮(k+1)=𝐮(k)+𝚫\mathbf{J}\,\boldsymbol{\Delta} = -\mathbf{F}(\mathbf{u}^{(k)}) \qquad\text{mit}\qquad \mathbf{u}^{(k+1)} = \mathbf{u}^{(k)} + \boldsymbol{\Delta}

durch Einsetzen unmittelbar

𝐘(𝐮(k)+𝚫)=𝐢⇔𝐘𝐮(k+1)=𝐢\mathbf{Y}\,\bigl(\mathbf{u}^{(k)} + \boldsymbol{\Delta}\bigr) = \mathbf{i} \qquad\Longleftrightarrow\qquad \mathbf{Y}\,\mathbf{u}^{(k+1)} = \mathbf{i}

Die beiden Gleichungen sind algebraisch dieselbe. Der eine Weg rechnet die Korrektur aus, der andere gleich das Ergebnis; beide lösen dasselbe lineare Netzwerk.

Das Programm knotenmatrix.py weist beides nach: es baut 𝐘\mathbf{Y} und 𝐢\mathbf{i} aus der Zweigliste, baut daneben 𝐉\mathbf{J} und 𝐅\mathbf{F} durch Ableiten, und vergleicht.

Prüfung an drei Arbeitspunkten Ergebnis
größter Unterschied 𝐘\mathbf{Y} gegen 𝐉\mathbf{J} exakt 0
𝐘𝐮=𝐢\mathbf{Y}\mathbf{u}=\mathbf{i} gegen den Newton-Schritt <2⋅10−14< 2\cdot10^{-14}
Unsymmetrie von 𝐘\mathbf{Y} exakt 0

12.7 Was daraus folgt

Erstens für das Verständnis. Das Knotenpotentialverfahren steht nicht neben dem Newton-Verfahren, sondern in ihm: ein Newton-Durchgang ist nichts anderes als ein vollständig durchgerechnetes lineares Netzwerk. Wer das Knotenpotentialverfahren beherrscht, beherrscht den inneren Kern jedes Schaltungssimulators; das Newton-Verfahren fügt nur die Wiederholung hinzu, und der Euler nur die Zeit.

Wie oft dabei welches Verfahren arbeitet, steht in Abschnitt 24.

Zweitens für die Praxis. Ein Simulationsprogramm bildet niemals 𝐅\mathbf{F} und leitet es ab. Es stempelt 𝐘\mathbf{Y} und 𝐢\mathbf{i} unmittelbar aus der Zweigliste — das ist die Stempelregel in Abschnitt 16, und sie ist nichts anderes als die Regel aus 11.1, auf differentielle Leitwerte angewandt. Deshalb kann SPICE ein neues Bauelement aufnehmen, ohne dass am Löser etwas geändert werden müsste: es genügt, für das Bauelement gdg_d und IeqI_{eq} anzugeben.

Drittens für die Größe. An dieser Schaltung ist 𝐘\mathbf{Y} eine 4×44\times4-Matrix; man kann sie von Hand hinschreiben und von Hand auflösen. Das ist Absicht, nicht Beschränkung. Der Ablauf ist bei vier Unbekannten derselbe wie bei viertausend: dieselben drei Aufstellregeln, dieselbe Symmetrie, dieselbe Stempelregel, derselbe Newton darum herum. Was sich ändert, ist allein das Auflösen — bei großen Netzwerken nutzt man aus, dass 𝐘\mathbf{Y} dünn besetzt ist, weil jeder Knoten nur mit seinen wenigen Nachbarn verbunden ist. An der Aufstellung ändert das nichts.

13. Wie der Kondensator in die Matrix kommt

Damit fehlt nur noch ein Zweig. Die Diode ist untergebracht: Tangente, Leitwert plus Stromquelle. Der Kondensator ist noch draußen, denn sein Strom hängt nicht von seiner Spannung ab, sondern von deren Änderung.

Auch das lässt sich in einen Leitwert und eine Stromquelle übersetzen — und zwar durch nichts anderes als die Integrationsformel.

13.1 Die Integrationsformel macht den Kondensator zum Leitwert

Der Kondensator sagt

iC=CduCdti_C = C\,\frac{\mathrm{d}u_C}{\mathrm{d}t}

Ersetzt man die Ableitung durch den Differenzenquotienten über einen Zeitschritt und wertet den Strom am Ende des Schritts aus, so folgt

iC=CuC−uCaltΔt=CΔt⏟gCuC−CΔtuCalt⏟ICi_C \;=\; C\,\frac{u_C - u_C^{\,\text{alt}}}{\Delta t} \;=\; \underbrace{\frac{C}{\Delta t}}_{\textstyle g_C}\, u_C \;-\; \underbrace{\frac{C}{\Delta t}\,u_C^{\,\text{alt}}}_{\textstyle I_C}

Das ist genau die Form, die die Matrix verlangt: ein Leitwert gC=C/Δtg_C = C/\Delta t parallel zu einer Stromquelle ICI_C, deren Wert der Zustand vom Beginn des Zeitschritts liefert. Die Diode wurde durch ihre Tangente linearisiert; der Kondensator wird durch die Integrationsformel algebraisiert. Beide Male entsteht dasselbe Ersatzschaltbild.

𝐃𝐢𝐨𝐝𝐞gd=dIDduIeq=ID(uk)−gduk𝐊𝐨𝐧𝐝𝐞𝐧𝐬𝐚𝐭𝐨𝐫gC=CΔtIC=CΔtuCalt\begin{array}{lll} \textbf{Diode} & g_d = \dfrac{\mathrm{d}I_D}{\mathrm{d}u} & I_{eq} = I_D(u_k) - g_d\,u_k \\[10pt] \textbf{Kondensator} & g_C = \dfrac{C}{\Delta t} & I_C = \dfrac{C}{\Delta t}\,u_C^{\,\text{alt}} \end{array}

Mit C=1000μC = 1000\ \muF und Δt=10μ\Delta t = 10\ \mus ist gC=100g_C = 100 S — der größte Leitwert im ganzen Netz. Man sieht daran unmittelbar, was ein Kondensator in einem kurzen Zeitschritt ist: ein sehr guter Leiter, hinter dem eine Quelle mit der Spannung des letzten Schritts steht.

13.2 Die vollständige Matrix

Jetzt steht das ganze System in einer einzigen Matrixgleichung. Fünf Unbekannte, denn uCu_C ist jetzt eine davon:

𝐮=(ua,ub,uP,uC,iq)𝖳\mathbf{u} = (u_a,\ u_b,\ u_P,\ u_C,\ i_q)^{\mathsf T}

(g1+g3+G0−g10−10g2+g4+G−g20+1−g1−g21R+g1+g2+G−1R000−1R1R+1RL+CΔt+G0−1+100−Ri)(uaubuPuCiq)=(Ieq3−Ieq1Ieq4−Ieq2Ieq1+Ieq2CΔtuCalt−uq)\left(\begin{array}{cccc|c} g_1+g_3+G & 0 & -g_1 & 0 & -1\\ 0 & g_2+g_4+G & -g_2 & 0 & +1\\ -g_1 & -g_2 & \frac{1}{R}+g_1+g_2+G & -\frac{1}{R} & 0\\ 0 & 0 & -\frac{1}{R} & \frac{1}{R}+\frac{1}{R_L}+\frac{C}{\Delta t}+G & 0\\ \hline -1 & +1 & 0 & 0 & -R_i \end{array}\right) \begin{pmatrix}u_a\\u_b\\u_P\\u_C\\ \hline i_q\end{pmatrix} = \begin{pmatrix} I_{eq3}-I_{eq1}\\ I_{eq4}-I_{eq2}\\ I_{eq1}+I_{eq2}\\ \frac{C}{\Delta t}u_C^{\,\text{alt}}\\ \hline -u_q \end{pmatrix}

Die vierte Zeile ist der Knotensatz am Kondensatorknoten, und sie enthält die Differentialgleichung — nicht mehr als Ableitung, sondern als Leitwert C/ΔtC/\Delta t und als Quellstrom auf der rechten Seite.

Mit Zahlen, im Leitfall bei t=165,00t = 165{,}00 ms und Δt=10μ\Delta t = 10\ \mus:

(14,8790−14,8790−1014,879≈00+1−14,879≈014,979−0,1000−0,1100,110−1+100−1)𝐮=(12,403−12,403−12,4032082,9−30)\left(\begin{array}{cccc|c} 14{,}879 & 0 & -14{,}879 & 0 & -1\\ 0 & 14{,}879 & \approx 0 & 0 & +1\\ -14{,}879 & \approx 0 & 14{,}979 & -0{,}1 & 0\\ 0 & 0 & -0{,}1 & 100{,}11 & 0\\ \hline -1 & +1 & 0 & 0 & -1 \end{array}\right) \mathbf{u} = \begin{pmatrix} 12{,}403\\ -12{,}403\\ -12{,}403\\ 2082{,}9\\ \hline -30 \end{pmatrix}

Aufgelöst:

ua=28,4476V,ub=−0,8788V,uP=27,5688V,u_a = 28{,}4476\ \text{V},\quad u_b = -0{,}8788\ \text{V},\quad u_P = 27{,}5688\ \text{V}, uC=20,8336V,iq=0,6735Au_C = 20{,}8336\ \text{V},\quad i_q = 0{,}6735\ \text{A}

Die Matrix ist symmetrisch, ihre Konditionszahl beträgt 257. Der Eintrag 100,11100{,}11 in der vierten Zeile ist im Wesentlichen gC=C/Δtg_C = C/\Delta t; der Quellstrom 2082,92082{,}9 A ist gCuCaltg_C\,u_C^{\,\text{alt}}. Beide Zahlen sind groß und heben einander weitgehend auf — das ist die Handschrift eines Speichers in einem kurzen Zeitschritt.

13.3 Damit ist das Zusammenspiel beschrieben

Man sieht jetzt, was die drei Verfahren miteinander zu tun haben, und es lässt sich in drei Zeilen sagen:

Verfahren trägt zur Matrixgleichung bei
Knotenpotentialverfahren die Gleichung selbst: welcher Leitwert an welche Stelle, welcher Strom auf welche Zeile — und ihre Auflösung
Newton-Raphson die Diodenleitwerte gdg_d und Ersatzströme IeqI_{eq} — und die Wiederholung, bis sie zur Lösung passen
Euler den Leitwert gC=C/Δtg_C = C/\Delta t und den Ersatzstrom ICI_C — und den Zustand uCaltu_C^{\,\text{alt}} für den nächsten Schritt

Alle drei arbeiten an derselben Matrix. Newton liefert vier ihrer Einträge und drei Einträge der rechten Seite; der Euler liefert einen Eintrag und einen Eintrag der rechten Seite; das Knotenpotentialverfahren sagt, wohin alles gehört, und löst.

Der Ablauf eines Zeitschritts ist damit:

u_C_alt steht fest (Zustand)
u_q(t)  ausrechnen

wiederhole:                             ← Newton
    g_d und I_eq der vier Dioden am derzeitigen Arbeitspunkt bilden
    g_C = C/dt und I_C = g_C · u_C_alt  bilden       ← Euler
    Y und i stempeln                                ← Knotenpotentialverfahren
    Y·u = i  auflösen                               ← Knotenpotentialverfahren
bis sich u nicht mehr ändert

u_C_alt := u_C   (steht in der Lösung)

13.4 Die einfachere Fassung: den Kondensator draußen lassen

Wertet man den Kondensatorstrom nicht am Ende, sondern am Anfang des Zeitschritts aus, so wird aus der Integrationsformel

uCneu=uCalt+ΔtiR−iRLCu_C^{\,\text{neu}} = u_C^{\,\text{alt}} + \Delta t\;\frac{i_R - i_{R_L}}{C}

und uCu_C ist innerhalb des Schritts keine Unbekannte mehr, sondern eine bekannte Zahl. Der Kondensatorzweig fällt dann aus der Matrix heraus; sie schrumpft von fünf auf vier Unbekannte, und das Fortschreiben geschieht nach dem Lösen. Das ist der explizite Euler; die Fassung mit uCu_C in der Matrix ist der implizite.

Beide sind von erster Ordnung, und beide führen auf dieselbe Lösung. Gerechnet mit demselben Modell und denselben Kenngrößen:

Δt\Delta t alles in der Matrix uCu_C außerhalb Abstand
40 µs 20,761393 V 20,769064 V 7,67 mV
20 µs 20,763281 V 20,767117 V 3,84 mV
10 µs 20,764224 V 20,766142 V 1,92 mV
5 µs 20,764696 V 20,765655 V 0,96 mV
2,5 µs 20,764932 V 20,765412 V 0,48 mV

Der Abstand halbiert sich mit jeder Halbierung der Schrittweite — beide Verfahren laufen auf dieselbe Lösung zu, wie es für zwei Verfahren erster Ordnung sein muss.

Die weiteren Teile führen die explizite Fassung aus, weil sie das Zusammenspiel am deutlichsten zeigt: dort steht Newton für die Nichtlinearität und der Euler für die Zeit, sauber getrennt. Die vollständige Matrix aus 14.2 ist mit knotenmatrix_gesamt.py nachrechenbar; Teil XI kommt auf sie zurück.

TEIL IV — VERFAHREN 2: NEWTON-RAPHSON

14. Newton-Raphson, von der Tangente zur Matrix

14.1 Der eindimensionale Fall zur Erinnerung

Gesucht ist die Nullstelle von F(x)F(x). Man ersetzt die Funktion an der Stelle xkx_k durch ihre Tangente und nimmt deren Nullstelle als neuen Näherungswert:

F(xk)+F′(xk)Δ=0⇒Δ=−F(xk)F′(xk),xk+1=xk+ΔF(x_k) + F'(x_k)\,\Delta = 0 \qquad\Longrightarrow\qquad \Delta = -\frac{F(x_k)}{F'(x_k)},\qquad x_{k+1} = x_k + \Delta

Das Verfahren konvergiert quadratisch: in jedem Durchgang verdoppelt sich die Zahl der richtigen Stellen. Aus 10−410^{-4} wird 10−810^{-8}, daraus 10−1610^{-16}. Deshalb genügen typisch drei bis vier Durchgänge.

14.2 Im Mehrdimensionalen

Bei mehreren Unbekannten tritt an die Stelle der Tangente die Ebene, die sich an alle Richtungen zugleich anschmiegt. Ihre Steigungen stehen in der Jacobi-Matrix:

Jik=∂Fi∂xkJ_{ik} = \frac{\partial F_i}{\partial x_k}

Aus der Division wird eine Auflösung eines linearen Gleichungssystems:

𝐉𝚫=−𝐅,𝐱←𝐱+𝚫\boxed{\;\mathbf{J}\,\boldsymbol{\Delta} = -\mathbf{F}, \qquad \mathbf{x} \leftarrow \mathbf{x} + \boldsymbol{\Delta}\;}

Das ist die ganze Vorschrift. Der Aufwand steckt darin, 𝐉\mathbf{J} aufzustellen und das System aufzulösen — und beides geschieht in jedem Newton-Durchgang jedes Zeitschritts neu, weil 𝐉\mathbf{J} vom Arbeitspunkt abhängt.

15. Die Jacobi-Matrix, Eintrag für Eintrag

15.1 Die Abkürzungen

Vier Diodenleitwerte kommen vor. Man führt sie als Abkürzung ein, sonst wird es unübersichtlich:

g1=gd(ua−uP)(D1),g2=gd(ub−uP)(D2)g_1 = g_d(u_a - u_P)\ \text{(D1)},\qquad g_2 = g_d(u_b - u_P)\ \text{(D2)} g3=gd(−ua)(D3),g4=gd(−ub)(D4)g_3 = g_d(-u_a)\ \text{(D3)},\qquad\quad\ \ g_4 = g_d(-u_b)\ \text{(D4)}

15.2 Die erste Zeile, ausführlich

FaF_a nach uau_a abgeleitet, Glied für Glied:

Glied in FaF_a Ableitung nach uau_a Wert
ID(ua−uP)I_D(u_a - u_P) ID′(ua−uP)⋅1I_D'(u_a-u_P)\cdot 1 +g1+g_1
−ID(−ua)-I_D(-u_a) −ID′(−ua)⋅(−1)-I_D'(-u_a)\cdot(-1) +g3+g_3
−iq-i_q hängt nicht von uau_a ab 00
GminuaG_{\min}u_a +Gmin+G_{\min}

∂Fa∂ua=g1+g3+Gmin\frac{\partial F_a}{\partial u_a} = g_1 + g_3 + G_{\min}

Beim zweiten Glied ist die Kettenregel die Stelle, an der sich die meisten vertun. Das innere Argument ist −ua-u_a, seine Ableitung ist −1-1, und das äußere Minus des Zweigs kommt hinzu. Zwei Minuszeichen heben sich auf: der Beitrag ist positiv.

Die übrigen Einträge der ersten Zeile:

∂Fa∂ub=0,∂Fa∂uP=−g1,∂Fa∂iq=−1\frac{\partial F_a}{\partial u_b} = 0,\qquad \frac{\partial F_a}{\partial u_P} = -g_1,\qquad \frac{\partial F_a}{\partial i_q} = -1

15.3 Die ganze Matrix

𝐉=(g1+g3+Gmin0−g1−10g2+g4+Gmin−g2+1−g1−g21R+g1+g2+Gmin0−1+10−Ri)\mathbf{J} = \begin{pmatrix} g_1+g_3+G_{\min} & 0 & -g_1 & -1 \\[2pt] 0 & g_2+g_4+G_{\min} & -g_2 & +1 \\[2pt] -g_1 & -g_2 & \tfrac{1}{R}+g_1+g_2+G_{\min} & 0 \\[2pt] -1 & +1 & 0 & -R_i \end{pmatrix}

Drei Beobachtungen dazu.

Der Eintrag JaaJ_{aa} enthält g1g_1 und g3g_3, also die Leitwerte beider Dioden, die an a hängen. Das ist kein Zufall — siehe Abschnitt 17.

Der Eintrag JabJ_{ab} ist null. In Teil 2 stand dort −1/Ri-1/R_i: der Quellzweig verband a und b unmittelbar. Jetzt läuft die Verbindung über die vierte Unbekannte.

Die letzte Zeile enthält keinen Leitwert, sondern ±1\pm 1 und −Ri-R_i. Das ist die Handschrift der erweiterten Knotenanalyse.

Und man vergleiche sie mit der Matrix aus Abschnitt 12.4: es ist dieselbe. Was hier mühsam abgeleitet wurde, hat das Knotenpotentialverfahren dort unmittelbar aus der Zweigliste geliefert. Der Grund steht in Abschnitt 12.6.

15.4 Die Matrix hängt nicht von uqu_q und uCu_C ab

Beide gehen nur linear in 𝐅\mathbf{F} ein und verschwinden beim Ableiten. Praktisch heißt das: die Matrix muss zwar in jedem Newton-Durchgang neu gebildet werden, aber nur wegen der Diodenleitwerte.

16. Die Stempelregel — dasselbe ohne Ableiten

Man muss nicht ableiten. Es gibt eine Regel, die aus der Zweigliste direkt die Matrix erzeugt, und ein Simulationsprogramm arbeitet ausschließlich so. Sie ist nichts anderes als die Aufstellvorschrift aus Abschnitt 12.1, auf differentielle Leitwerte angewandt.

Für jedes Element mit einem Leitwert gg zwischen den Knoten ii und kk:

+g→Jii,+g→Jkk,−g→Jik,−g→Jki+g \to J_{ii},\qquad +g \to J_{kk},\qquad -g \to J_{ik},\qquad -g \to J_{ki}

Liegt ein Ende auf Masse, entfällt alles, was diese Zeile oder Spalte beträfe — es bleibt nur der Diagonaleintrag.

Für jeden Zweig mit eigener Stromunbekannter stempelt man statt eines Leitwerts seine Inzidenz: −1-1 und +1+1 in die Zeile der Zweiggleichung und, gespiegelt, in die Spalte der Stromunbekannten.

Man geht die Liste einmal durch:

Zweig zwischen trägt bei stempelt
D1 a, P g1g_1 Jaa,JPPJ_{aa}, J_{PP} plus; JaP,JPaJ_{aP}, J_{Pa} minus
D2 b, P g2g_2 Jbb,JPPJ_{bb}, J_{PP} plus; JbP,JPbJ_{bP}, J_{Pb} minus
D3 M, a g3g_3 nur JaaJ_{aa} plus
D4 M, b g4g_4 nur JbbJ_{bb} plus
R P, C 1/R1/R nur JPPJ_{PP} plus — uCu_C ist keine Unbekannte
GMIN jeder Knoten, M GminG_{\min} nur die Diagonale
Quelle a, b, Strom iqi_q Inzidenz Ja,iq=−1J_{a,i_q}=-1, Jb,iq=+1J_{b,i_q}=+1, Jq,a=−1J_{q,a}=-1, Jq,b=+1J_{q,b}=+1, Jq,iq=−RiJ_{q,i_q}=-R_i

Man erhält dieselbe Matrix. Wer die Regel einmal verstanden hat, stellt Netzwerke beliebiger Größe auf, ohne je eine Ableitung zu bilden.

17. Zwei Proben für die Matrix

17.1 Die Symmetrie

Die Matrix ist symmetrisch. Das ist kein Zufall, sondern folgt daraus, dass jeder Zweig auf seine beiden Knoten gleich zurückwirkt — man sieht es an der Stempelregel unmittelbar.

Und sie ist die schärfste Rechenprobe, die zur Verfügung steht: ein vergessenes Minuszeichen oder eine vertauschte Kettenregel zerstört sie fast immer. Im Programm wird sie in jedem Prüflauf gemessen und ist exakt null.

17.2 Der Differenzenquotient

Die zweite Probe vergleicht die von Hand abgeleitete Matrix mit der numerisch gebildeten:

Jik≈Fi(𝐱+h𝐞k)−Fi(𝐱−h𝐞k)2hJ_{ik} \approx \frac{F_i(\mathbf{x} + h\mathbf{e}_k) - F_i(\mathbf{x} - h\mathbf{e}_k)}{2h}

Der zentrale Differenzenquotient ist dem einseitigen vorzuziehen: sein Fehler geht mit h2h^2 statt mit hh. Mit h=10−7h = 10^{-7} stimmen beide Matrizen an drei wirklichen Arbeitspunkten des Laufs auf 1,2⋅10−81{,}2\cdot10^{-8} überein.

Man prüfe an wirklichen Arbeitspunkten, nicht an ausgedachten. Sonst prüft man Zustände, die nie vorkommen — und übersieht die, die vorkommen.

18. GMIN — warum jeder Knoten einen Widerstand nach Masse braucht

18.1 Das Problem

Sperren alle vier Dioden, so sind ihre Leitwerte praktisch null. Dann hängt der Knoten P nur noch über RR am Kondensator, und a und b hängen nur noch an der Quellgleichung. Ohne einen Bezug gegen Masse wäre ihr Gleichtaktpotential unbestimmt: die Matrix wäre singulär, und das Programm bliebe stehen.

18.2 Die Abhilfe

SPICE löst das mit GMIN: jeder Knoten bekommt einen winzigen Leitwert gegen Masse, hier 10−910^{-9} S, also 1 GΩ. Er verfälscht nichts messbar, macht die Matrix aber unter allen Umständen regulär.

18.3 Wie knapp das ist — mit Zahlen

Der Vergleich zweier Zeitschritte aus dem laufenden Programm:

Leitfall (t = 165,00 ms) Sperrfall (t = 168,00 ms)
g1g_1 1,488⋅1011{,}488\cdot 10^{1} S 3,76⋅10−1563{,}76\cdot 10^{-156} S
g2g_2 9,5⋅10−2819{,}5\cdot 10^{-281} S 2,82⋅10−2082{,}82\cdot 10^{-208} S
g4g_4 1,488⋅1011{,}488\cdot 10^{1} S 1,185⋅10−71{,}185\cdot 10^{-7} S

Die Leitwerte laufen über vierhundert Zehnerpotenzen. Das sind Zahlen, die kein Messgerät je sehen wird — aber die Shockley-Gleichung liefert sie, und das Verfahren rechnet mit ihnen weiter, ohne zu straucheln.

Das ist der Preis und zugleich der Vorzug dafür, ohne Näherung zu rechnen: es gibt keinen Umschaltpunkt, an dem das Modell springt.

Die Konditionszahl der Matrix bleibt dank der Erweiterung überall handhabbar — an drei wirklichen Arbeitspunkten des Laufs:

Arbeitspunkt Konditionszahl
Leitfall, größter Diodenstrom 7,7⋅1017{,}7\cdot10^{1}
Sperrfall, kein Strom durch R 2,9⋅1062{,}9\cdot10^{6}
steilste Flanke des Stroms 1,4⋅1011{,}4\cdot10^{1}

Zum Vergleich: das reine Knotenpotentialverfahren käme im Sperrfall auf 101210^{12}.

19. Das System auflösen

Vorweg: man invertiert die Matrix nicht. Der Gedanke liegt nahe — man kennt 𝐘\mathbf{Y} und 𝐢\mathbf{i} und möchte 𝐮=𝐘−1𝐢\mathbf{u} = \mathbf{Y}^{-1}\mathbf{i} bilden —, führt aber aus drei Gründen am Ziel vorbei.

Es ist teurer. Eine Inverse zu bilden kostet ungefähr dreimal so viel wie das System einmal zu lösen, und gebraucht wird sie nur für diese eine rechte Seite. Bei 78 819 Auflösungen fällt das ins Gewicht.

Es ist ungenauer. Die Inverse einer schlecht konditionierten Matrix ist selbst mit Fehlern behaftet; multipliziert man sie anschließend mit 𝐢\mathbf{i}, so kommen deren Fehler noch hinzu. Die Zerlegung löst unmittelbar und ist nachweislich rückwärtsstabil. Bei Ri→0R_i \to 0 und sperrenden Dioden — den Fällen, in denen die Konditionszahl auf 10610^6 steigt — ist das kein akademischer Unterschied.

Und sie ist voll besetzt. 𝐘\mathbf{Y} ist bei großen Netzwerken dünn besetzt, die Inverse ist es nie. Bei tausend Knoten wären das eine Million Zahlen statt einiger Tausend.

Ein Simulationsprogramm zerlegt deshalb, statt zu invertieren: einmal 𝐘=𝐋𝐔\mathbf{Y} = \mathbf{L}\mathbf{U}, dann Vorwärts- und Rückwärtseinsetzen.

Gauß oder Gauß-Jordan. Beide Namen begegnen einem, und sie bezeichnen nicht dasselbe. Das Gauß-Verfahren bringt die Matrix auf obere Dreiecksform und setzt dann von unten nach oben zurück; das ist die LU-Zerlegung. Das Gauß-Jordan-Verfahren räumt auch oberhalb der Diagonalen aus, bis die Einheitsmatrix dasteht — das kostet rund die Hälfte mehr und lohnt nur, wenn man die Inverse wirklich braucht. Für eine einzelne rechte Seite nimmt man Gauß.

Bei vier Unbekannten kann man das System auf drei Weisen lösen.

Mit einer Bibliotheksroutine. So macht es das Lehrprogramm: numpy.linalg.solve ruft LAPACK auf und rechnet dort eine LU-Zerlegung mit Teilpivotierung — also das Gauß-Verfahren mit Zeilentausch.

Mit dem Gauß-Verfahren von Hand. Lehrreich, aber bei vier Unbekannten schon mühsam. Wichtig ist der Zeilentausch, denn bei Ri=0R_i = 0 steht eine Null auf der Hauptdiagonalen der letzten Zeile.

Durch Elimination von Hand. Für dieses System besonders lohnend, weil seine Struktur so viel hergibt. Aus der ersten Gleichung folgt unmittelbar

Δiq=g1⋅Δua(sinngemäß)…\Delta i_q = g_1\!\cdot\!\Delta u_a\ \text{(sinngemäß)} \dots

genauer: mit d1=g1+g3+Gmind_1 = g_1+g_3+G_{\min} liefert die erste Zeile

Δiq=d1Δua−g1ΔuP−b1\Delta i_q = d_1\,\Delta u_a - g_1\,\Delta u_P - b_1

Setzt man das in die vierte Zeile ein, so erhält man Δub\Delta u_b als Funktion von Δua\Delta u_a und ΔuP\Delta u_P, und es bleiben zwei Gleichungen für zwei Unbekannte — die man mit der Kreuzregel löst. Rund dreißig Rechenschritte statt eines vollen Gauß-Verfahrens.

So rechnet der Dashboard-Kern: er eliminiert den Quellstrom von Hand und löst die verbleibenden zwei Gleichungen mit der Cramerschen Regel. Das ist kein Selbstzweck: bei zwanzigtausend Zeitschritten und vier Durchgängen je Schritt macht es den Unterschied zwischen 6,8 und 14,8 Mikrosekunden je Zeitschritt — also zwischen anderthalbfacher Echtzeit und dreiviertel Echtzeit.

20. Die Dämpfung — ohne sie geht es nicht

Ein ungedämpfter Newton-Schritt kann bei Dioden verheerend sein. Wir hatten in Abschnitt 7 festgehalten: nVT=45,3nV_T = 45{,}3 mV, und eine Änderung von einem Volt ändert den Strom um den Faktor 3,6⋅1093{,}6\cdot10^{9}.

Ein Schritt, der die Diodenspannung um mehrere Volt verwirft, führt in einen Bereich, in dem der Exponent überläuft und die Ableitung jede Bedeutung verliert. Das Verfahren findet von dort nicht mehr zurück.

Die Abhilfe ist schlicht: jede Komponente von 𝚫\boldsymbol{\Delta} wird auf einen Höchstwert begrenzt, hier 0,5 V.

Δi←max(−0,5V,min(0,5V,Δi))\Delta_i \leftarrow \max(-0{,}5\ \text{V},\ \min(0{,}5\ \text{V},\ \Delta_i))

Das kostet ein paar Durchgänge mehr und macht das Verfahren dafür zuverlässig. Im eingeschwungenen Betrieb greift die Begrenzung übrigens nie — nur beim Einschalten und beim Umschwingen.

Ergänzend wird der Exponent selbst begrenzt, rein gegen den Überlauf. Im konvergierten Ergebnis wird diese Grenze nie erreicht; sie fängt allein Zwischenschritte ab.

21. Das Abbruchkriterium

Zwei Bedingungen müssen beide erfüllt sein:

maxi|Fi|<10−12Aundmaxi|Δi|<10−12V\max_i |F_i| < 10^{-12}\ \text{A} \qquad\text{und}\qquad \max_i |\Delta_i| < 10^{-12}\ \text{V}

Nur die erste zu prüfen genügt nicht: 𝐅\mathbf{F} kann klein sein, während die Lösung noch wandert — etwa bei einer flachen Kennlinie. Nur die zweite genügt auch nicht: ein gedämpfter Schritt kann klein sein, ohne dass man nahe an der Lösung wäre.

Und man braucht eine Notbremse: eine Höchstzahl von Durchgängen. Wird sie erreicht, ist etwas faul, und das Programm soll es sagen statt endlos zu rechnen.

TEIL V — VERFAHREN 3: DER EXPLIZITE EULER

22. Der explizite Euler

22.1 Herleitung

Die Differentialgleichung lautet

duCdt=f(uP,uC)\frac{\mathrm{d}u_C}{\mathrm{d}t} = f(u_P, u_C)

Man ersetzt die Ableitung durch den Differenzenquotienten nach vorn:

uCk+1−uCkΔt≈f(uPk,uCk)\frac{u_C^{k+1} - u_C^{k}}{\Delta t} \approx f\big(u_P^k, u_C^k\big)

und löst nach dem neuen Wert auf:

uCk+1=uCk+Δtf(uPk,uCk)\boxed{\;u_C^{k+1} = u_C^{k} + \Delta t\;f\big(u_P^k, u_C^k\big)\;}

Man bildet die Steigung am Anfang des Schritts und geht mit ihr geradeaus weiter. Das ist der explizite Euler — das einfachste Verfahren, das es gibt, und für den Einstieg das durchsichtigste.

22.2 Seine Ordnung

Der Fehler eines Schrittes geht mit Δt2\Delta t^2, der aufsummierte Fehler über eine feste Zeitspanne mit Δt\Delta t. Das Verfahren ist von erster Ordnung: halbiert man die Schrittweite, so halbiert sich der Fehler.

Das ist nicht nur eine Angabe im Lehrbuch, sondern eine Prüfvorschrift. Misst man das Verhältnis und findet nicht 2, so stimmt etwas nicht — siehe Abschnitt 31.

22.3 Die Wahl der Schrittweite

Drei Zeitkonstanten kommen in dieser Schaltung vor:

Wert
Periodendauer 20 ms
Ladezeitkonstante (Ri+R)C(R_i+R)\,C 11 ms
Entladezeitkonstante RLCR_L C 100 ms

Die kürzeste bestimmt die Schrittweite. Mit Δt=10μ\Delta t = 10\ \mus liegen tausend Schritte auf einer Ladezeitkonstante und zweitausend auf einer Periode — reichlich. Die Schrittweitenstudie bestätigt es: der Fehler beträgt dann 1,9 mV auf 20,7 V.

Die Diode begrenzt die Schrittweite nicht. Ihre Kennlinie ist beliebig steil, enthält aber keine Zeitkonstante — sie ist algebraisch und Sache von Newton, nicht von Euler.

23. Wie schnell sich die Kondensatorspannung ändern kann

Der Euler schreibt uCu_C fort. Wie groß der Zeitschritt dabei sein darf, entscheidet sich an einer einzigen Frage: wie schnell ändert sich uCu_C? Diese Frage lässt sich in Schaltungsgrößen beantworten, ohne den Umweg über allgemeine Betrachtungen.

23.1 Die Änderungsgeschwindigkeit

Aus dem Knotensatz am Kondensatorknoten folgt unmittelbar

duCdt=1C(uP−uCR⏟was ankommt−uCRL⏟was die Last zieht)\frac{\mathrm{d}u_C}{\mathrm{d}t} = \frac{1}{C}\left(\underbrace{\frac{u_P - u_C}{R}}_{\text{was ankommt}} - \underbrace{\frac{u_C}{R_L}}_{\text{was die Last zieht}}\right)

Beide Ströme sind bekannt, sobald die Matrixgleichung gelöst ist: uPu_P ist eine ihrer Unbekannten, uCu_C ist die Zahl vom Schrittbeginn.

Für die Schrittweite kommt es darauf an, wie stark diese Änderungsgeschwindigkeit auf eine Änderung von uCu_C selbst reagiert. Steigt uCu_C um δ\delta, so sinkt der ankommende Strom, und der Laststrom steigt:

∂u̇C∂uC=1RC(∂uP∂uC−1)−1RLC=:λ\frac{\partial \dot u_C}{\partial u_C} = \frac{1}{RC}\left(\frac{\partial u_P}{\partial u_C} - 1\right) - \frac{1}{R_LC} \;=:\; \lambda

Der Term ∂uP/∂uC\partial u_P/\partial u_C sagt, wie stark der Brückenausgang der Kondensatorspannung folgt. Er liegt zwischen zwei anschaulichen Grenzfällen:

  • Alle Dioden sperren. Dann ist P nur noch über RR mit dem Kondensator verbunden, es fließt kein Strom, und uPu_P folgt uCu_C vollständig: ∂uP/∂uC=1\partial u_P/\partial u_C = 1. Dann bleibt λ=−1/(RLC)\lambda = -1/(R_LC) — der Kondensator entlädt sich nur über die Last.
  • Die Dioden leiten kräftig. Dann hält die Quelle den Knoten P fest, und uPu_P reagiert kaum: ∂uP/∂uC≈0\partial u_P/\partial u_C \approx 0. Dann ist λ≈−1/(RC)−1/(RLC)\lambda \approx -1/(RC) - 1/(R_LC) — Vorwiderstand und Last wirken zusammen.

Mit R=10ΩR = 10\ \Omega, RL=100ΩR_L = 100\ \Omega und C=1000μC = 1000\ \muF sind das −10-10 1/s beziehungsweise −110-110 1/s, entsprechend Zeitkonstanten von 100 ms und 9,1 ms.

23.2 Nachgemessen

Die beiden Grenzfälle sind keine Rechnung auf dem Papier — sie treten im Lauf tatsächlich auf. An drei Arbeitspunkten gemessen:

Arbeitspunkt iRi_R ∂uP/∂uC\partial u_P/\partial u_C λ\lambda
Leitfall, t=164,84t = 164{,}84 ms 677,1 mA 0,1018 −99,8-99{,}8 1/s
Umschalten, t=196,49t = 196{,}49 ms 339,8 mA 0,1124 −98,8-98{,}8 1/s
Sperrfall, t=162,39t = 162{,}39 ms 0,0 mA 1,0000 −10,0-10{,}0 1/s

Der Sperrfall trifft die Grenze exakt, der Leitfall kommt ihr auf zwei Prozent nahe. Die schnellste Änderung, mit der zu rechnen ist, entspricht also einer Zeitkonstante von 9,1 ms.

23.3 Stabilität und Schrittweite

Der explizite Euler bleibt stabil, solange die Änderung eines Schrittes das Ziel nicht überschießt, also solange |1+λΔt|≤1|1 + \lambda\,\Delta t| \le 1 gilt:

Δt≤2|λ|max=21101/s=18,2ms\Delta t \;\le\; \frac{2}{|\lambda|_{\max}} = \frac{2}{110\ \text{1/s}} = 18{,}2\ \text{ms}

Mit Δt=10μ\Delta t = 10\ \mus liegt man um mehr als drei Zehnerpotenzen darunter. Die Schrittweite wird hier also nicht von der Stabilität bestimmt, sondern von der Genauigkeit — die Ladestromstöße dauern nur wenige Millisekunden und sollen aufgelöst werden.

Das lässt sich am Ergebnis ablesen. Derselbe Lauf mit verschiedenen Schrittweiten:

Δt\Delta t Zeitschritte Newton-Durchgänge, Mittel / größte uCu_C Mittel Abweichung gegen 5 µs
5 µs 40 000 3,64 / 5 20,765655 V —
10 µs 20 000 3,94 / 6 20,766142 V +0,49 mV
20 µs 10 000 4,08 / 7 20,767117 V +1,46 mV
40 µs 5 000 4,28 / 10 20,769064 V +3,41 mV
100 µs 2 000 4,95 / 16 20,774872 V +9,22 mV
200 µs 1 000 6,09 / 18 20,784609 V +19,0 mV
500 µs 400 10,74 / 31 20,819453 V +53,8 mV
1000 µs 200 17,70 / 41 20,899028 V +133 mV

Drei Dinge stehen in dieser Tabelle.

Der Fehler wächst linear — von 5 auf 10 auf 20 auf 40 µs verdoppelt er sich jedes Mal. Das ist die erste Ordnung, unmittelbar sichtbar.

Nichts bricht zusammen, auch nicht bei 1 ms. Das bestätigt die Stabilitätsrechnung: bis 18 ms bleibt das Verfahren stabil, der Fehler wird nur größer.

Newton braucht mehr Durchgänge, je größer der Zeitschritt ist — von 3,64 auf 17,7 im Mittel. Der Grund ist einleuchtend: der Startwert für Newton ist der Arbeitspunkt des vorigen Zeitschritts, und je weiter der zurückliegt, desto schlechter ist er. Ein großer Zeitschritt spart also weniger Rechenzeit, als die Schrittzahl vermuten lässt.

TEIL VI — DIE VERSCHRÄNKUNG DER DREI VERFAHREN

24. Der Ablauf

Drei Ebenen, ineinandergelegt:

Ganz innen das Auflösen der Matrixgleichung: eine Rechenvorschrift fester Länge. Darum herum die Newton-Schleife, die es wiederholt, bis die Diodenleitwerte zur Lösung passen. Ganz außen die Zeitschleife, an deren Ende der Euler den Zustand fortschreibt.

Als Erzählung:

Ausgangsstellung: Kondensator entladen, Potentiale null.

Ein Zeitschritt beginnt. Die Quellspannung wird ausgerechnet. uCu_C steht fest und bleibt diesen ganzen Zeitschritt unverändert.

Ein Newton-Durchgang besteht aus drei Handgriffen: Diodenleitwerte am derzeitigen Arbeitspunkt bilden, damit die Matrix füllen, die Matrixgleichung einmal lösen. Aus der Lösung folgt ein besserer Arbeitspunkt.

Das wird wiederholt, bis sich die Potentiale nicht mehr ändern — drei bis sechs Mal, und jedes Mal wird die Matrixgleichung neu gelöst.

Erst dann der Euler-Schritt: uCu_C wird fortgeschrieben.

Nächster Zeitschritt.

Dasselbe mit Zählern — kk für die Zeitschritte, mm für die Durchgänge:

u_C = 0 ,  u = 0

für k = 0, 1, 2, … :                                   ZEITSCHLEIFE
    u_q = U · sin(2π f k Δt)

    für m = 1, 2, 3, … , Start: die Lösung von k−1     NEWTON-SCHLEIFE
        g_d , I_eq der vier Dioden am Arbeitspunkt u
        Y und i stempeln
        Y · u_neu = i   auflösen
        u ← u + begrenze( u_neu − u )
    bis sich u nicht mehr ändert

    i_R = (u_P − u_C)/R ,  i_RL = u_C/R_L
    u_C ← u_C + Δt · (i_R − i_RL)/C                    EULER
Anzahl über 200 ms
Zeitschritte 20 000
Newton-Durchgänge 78 819
Lösungen der Matrixgleichung 78 819 — genau eine je Durchgang
Euler-Schritte 20 000 — genau einer je Zeitschritt

25. Die Reihenfolge der Ebenen

Das Gleichungssystem wird vollständig gelöst, und erst danach folgt der nächste Newton-Schritt. Newton-Schritte liegen nicht im Lösen: Newton bildet den nächsten Arbeitspunkt aus der Lösung des linearisierten Systems, und eine halb gelöste Gleichung liefert keinen Arbeitspunkt.

Eine Ebene höher gilt dasselbe: der Euler-Schritt folgt, wenn Newton fertig ist. Damit:

Jede innere Ebene wird fertig, bevor die äußere ihren nächsten Schritt tut.

25.1 Was in jeder Ebene wiederholt wird — und was nicht

Ebene wiederholt was? Ende, wenn hier
Zeitschleife (Euler) nichts — sie schreitet fort die Zeit erreicht ist 20 000 Schritte
Newton-Schleife denselben Zeitpunkt, besserer Arbeitspunkt die Änderung klein genug ist 3 bis 6 je Zeitschritt
Auflösen bei direktem Löser: nichts — eine Rechenvorschrift fester Länge

Der Euler ist also gar keine Iteration: er rechnet nicht denselben Zeitpunkt besser und besser, sondern geht zum nächsten weiter. Es gibt dort kein Konvergenzkriterium.

25.2 Beim Auflösen ist die Matrix eingefroren

Für die Dauer einer Auflösung besteht die Matrix aus lauter festen Zahlen. Dafür sorgen Newton und Euler unmittelbar vorher — aber in verschiedenem Takt:

liefert wird neu gebildet bleibt eingefroren
Euler → uCu_C, als Strom uC/Ru_C/R einmal je Zeitschritt über alle Durchgänge dieses Zeitschritts
Newton → die vier gdg_d und IeqI_{eq} in jedem Durchgang für die Dauer einer Auflösung

Daran sieht man auch, warum die Wiederholung endet: uCu_C steht still, und nur die Diodenleitwerte laufen auf die Lösung zu, zu der sie gehören. Erst wenn sie angekommen sind, rührt der Euler den Zustand an.

25.3 Woher jede Schleife kommt

Dieselbe Schaltung mit verschiedenen Bauelementen:

Schaltung Newton nötig? Zeitschleife nötig? Auflösungen insgesamt
nur Widerstände nein nein 1
Widerstände und Kondensator nein ja 20 000
Dioden, kein Kondensator ja nein etwa 4
Dioden und Kondensator ja ja 78 819

Die Nichtlinearität erzeugt die Newton-Schleife, der Energiespeicher die Zeitschleife. Das Auflösen selbst erzeugt keine.

26. Das Auflösen der Matrixgleichung

Newton bestimmt, welche Matrixgleichung gelöst wird, und entscheidet über die Wiederholung. Das Lösen selbst ist lineare Algebra und geschieht mit einem eigenen Verfahren:

wer was genau wie oft
die Gleichung aufstellen Knotenpotentialverfahren Stempelregeln, Besetzungsmuster einmal
die Zahlen hineingeben Zeitschleife uq(tk)u_q(t_k) je Zeitschritt
Euler den Zustand, als Strom uC/Ru_C/R je Zeitschritt
Newton die vier gdg_d und IeqI_{eq} je Durchgang
die Gleichung lösen lineare Algebra Gauß-Elimination, LU, Cramersche Regel, Inverse — oder ein iterativer Löser je Durchgang
über Wiederholung entscheiden Newton Änderung klein genug? je Durchgang

26.1 Direkte und iterative Löser

Familie Verfahren Aufwand bei nn Unbekannten
direkt Gauß-Elimination, LU-Zerlegung, Cramersche Regel, Inverse fest, ∼23n3\sim\frac{2}{3}n^3; die Inverse dreimal so viel
iterativ Jacobi-Verfahren, Gauß-Seidel-Verfahren, SOR-Verfahren, konjugierte Gradienten, GMRES je Durchgang ∼\sim Zahl der besetzten Einträge

Für die iterativen entscheidet der Spektralradius der Iterationsmatrix: er muss unter 1 liegen. Ob das hier der Fall ist, lässt sich messen — lineare_loeser.py löst dieselbe Gleichung an drei wirklichen Arbeitspunkten auf alle drei Arten:

Arbeitspunkt ρ\rho Jacobi ρ\rho Gauß-Seidel Durchgänge Jacobi Gauß-Seidel
Leitfall 0,9670 0,9350 853 421
Umschalten 0,9405 0,8846 475 236
Sperrfall 1,0000 1,0000 keine Konvergenz keine Konvergenz

(klassische Aufstellung, 3×33\times3. In der erweiterten 4×44\times4-Fassung steigt der Spektralradius im Sperrfall auf 1779 beziehungsweise 3,2⋅1063{,}2\cdot10^6.)

Im Sperrfall versagen beide. Sperren alle vier Dioden, so hängen die Knoten a und b nur noch über Gmin=10−9G_{\min} = 10^{-9} S an Masse; die Matrix ist dann nur um diesen Betrag diagonaldominant, und die Iteration kommt nicht mehr voran. Die Brücke sperrt in jeder Periode einen erheblichen Teil der Zeit.

Und wo sie konvergieren, sind sie teuer: 421 Gauß-Seidel-Durchgänge gegen ein direktes Auflösen von rund dreißig Rechenschritten.

Matrixmultiplikationen sparen die iterativen Verfahren nicht: die Gauß-Elimination bildet ebenfalls keine Inverse und multipliziert keine Matrizen, und ein einziger Jacobi-Durchgang kostet ungefähr so viel wie das ganze direkte Auflösen. Rückwärtsstabil ist die Gauß-Elimination mit Spaltenpivotierung an jeder regulären Matrix.

Dazu kommt: die erweiterte Aufstellung ist gar nicht diagonaldominant. Ihre Randzeile lautet −ua+ub−Riiq=−uq-u_a + u_b - R_i i_q = -u_q, mit −Ri-R_i auf der Diagonalen und zweimal 1 daneben; bei Ri=0R_i = 0 steht dort null, und beide Verfahren sind nicht einmal definiert.

Reine Knotenanalyse — iterative Löser sind möglich. Erweiterte Knotenanalyse — direkt lösen.

Deshalb rechnen Simulationsprogramme mit dünnbesetzter LU-Zerlegung: die Knotenleitwertmatrix hat je Zeile nur wenige besetzte Einträge, und bei geschickter Anordnung bleibt die Zerlegung fast so dünn wie die Matrix.

Das Jacobi-Verfahren ist ein Löser für lineare Gleichungssysteme; die Jacobi-Matrix aus Abschnitt 15 ist davon zu unterscheiden.

26.2 Ein Sonderfall: wenn der Euler im Auflösen steckt

Nimmt man den Kondensator mit in die Matrix (Abschnitt 13.2), so ist uCu_C eine der fünf Unbekannten, und gC=C/Δtg_C = C/\Delta t ist die Integrationsformel. Der neue Wert von uCu_C steht dann unmittelbar in der Lösung; eine eigene Euler-Zeile gibt es nicht mehr.

uCu_C außerhalb der Matrix uCu_C in der Matrix
Unbekannte 4 5
der Integrationsschritt geschieht nach dem Auflösen im Auflösen
Verfahren expliziter Euler impliziter Euler
Newton liegt um das Auflösen herum um das Auflösen herum

Die letzte Zeile ist die wichtige: an Newtons Stellung ändert sich nichts. Wandern kann allein der Integrationsschritt.

27. Die Voraussetzungen des Ergebnisses

Drei Voraussetzungen tragen das Ergebnis, und jede ist nachgeprüft.

27.1 Die Matrix bleibt regulär

Zwei Stellen sind gefährdet, beide sind abgesichert. Die Quelle: stünde ihr Leitwert 1/Ri1/R_i in der Matrix, so würde diese für kleines RiR_i unbrauchbar — bei 1 mΩ steigt die Konditionszahl auf 2⋅10122\cdot10^{12}. Deshalb steht dort der Quellstrom als eigene Unbekannte (Abschnitt 10.4). Die sperrenden Dioden: ihre Leitwerte werden numerisch null, deshalb bekommt jeder Knoten GminG_{\min} nach Masse (Abschnitt 18). Nachgemessen bleibt die Konditionszahl an allen wirklichen Arbeitspunkten zwischen 14 und 2,8⋅1062{,}8\cdot10^6.

27.2 Die Abbruchschranke liegt neun Zehnerpotenzen tiefer als nötig

Newton bricht ab, wenn der Rest in den Knotengleichungen kleiner als 10−1210^{-12} A und der letzte Korrekturschritt kleiner als 10−1210^{-12} V ist. Der Fehler aus der Schrittweite beträgt bei Δt=10μ\Delta t = 10\ \mus rund 10−310^{-3} V — neun Zehnerpotenzen mehr. Die Lösung der Matrixgleichung darf also als exakt gelten; sie kostet Rechenzeit, keine Genauigkeit.

27.3 Was die Konvergenz trägt

Vier Vorkehrungen wirken zusammen, jede ist nötig:

Vorkehrung wozu Abschnitt
erweiterte Knotenanalyse hält die Matrix auch für Ri→0R_i \to 0 regulär 11.4
GminG_{\min} hält sie regulär, wenn alle Dioden sperren 19
Dämpfung auf ±0,5\pm 0{,}5 V verhindert das Überlaufen der Exponentialfunktion 21
Startwert aus dem vorigen Zeitschritt hält den Anfangsabstand klein 25

Nachgemessen über den gesamten Lauf, für Innenwiderstände von 10 Ω bis null:

RiR_i 10 Ω 1 Ω 0,1 Ω 1 mΩ 1 µΩ 0
Durchgänge, Mittel 3,91 3,94 3,94 3,94 3,94 3,94
größte 6 6 6 6 6 6
Zeitschritte ohne Konvergenz 0 0 0 0 0 0

Von zwanzigtausend Zeitschritten erreicht jeder einzelne die Abbruchschranke, und die Zahl der Durchgänge bleibt über sieben Zehnerpotenzen des Innenwiderstands unverändert.

27.4 Die Schrittweite

Die Schrittweitenstudie in Abschnitt 32 halbiert Δt\Delta t und misst den Fehler: er halbiert sich mit, Verhältnis 2,01 / 2,03 / 2,05. Bei Δt=10μ\Delta t = 10\ \mus bleiben 1,9 mV auf 20,8 V — ein Zehntel Promille, für die Zielsetzung aus Abschnitt 2 reichlich.

28. Die Fehlerbilanz

Quelle Ursache Größenordnung hier
Modellfehler die Shockley-Gleichung ist selbst ein Modell nicht Gegenstand dieser Rechnung
Diskretisierungsfehler der Euler ersetzt die Kurve durch ihre Tangente ≈0,5\approx 0{,}5 mV bei Δt=10μ\Delta t = 10\ \mus
Abbruchfehler des Newton endliche Schranke 10−1210^{-12}
Rundungsfehler endliche Stellenzahl beim Auflösen ≈10−10\approx 10^{-10}

Der Diskretisierungsfehler beherrscht alles — neun Zehnerpotenzen über dem Newton-Abbruchfehler. Wer genauer rechnen will, setzt an der Schrittweite oder am Integrationsverfahren an; an Newton zu schrauben brächte nichts. Und umgekehrt wäre eine schärfere Newton-Schranke verschenkte Rechenzeit; die 10−1210^{-12} sind so gewählt, damit die Prüfungen in Teil VIII aussagekräftig bleiben.

29. Was jedes Verfahren beiträgt

Jedes der drei Verfahren wird einzeln geprüft. Alle Zahlen sind gemessen.

29.1 Das Knotenpotentialverfahren trägt die Rechnung

knotenpotential_pur.py führt denselben Lauf über dieselben 20 000 Zeitschritte durch, aber ausschließlich mit dem Knotenpotentialverfahren: kein Fehlervektor, kein Korrekturschritt, keine Jacobi-Matrix. In jedem Durchgang wird jede Diode durch ihr Ersatzschaltbild ersetzt, 𝐘\mathbf{Y} und 𝐢\mathbf{i} werden gestempelt, 𝐘𝐮=𝐢\mathbf{Y}\mathbf{u} = \mathbf{i} wird nach den Potentialen aufgelöst.

nur Knotenpotentialverfahren mit Newton-Schreibweise
Auflösungen 77 443 78 819
uCu_C Mittel, letzte Periode 20,766142446 V 20,766142446 V
Brummspannung 1,190136361 V 1,190136361 V

Größter Unterschied über alle Zeitschritte: 3,9⋅10−143{,}9\cdot10^{-14} V. Was Newton beisteuert, ist nicht die Rechnung, sondern die Vorschrift, sie zu wiederholen.

29.2 Die Matrix muss in jedem Durchgang neu gebildet werden

Das vereinfachte Newton-Verfahren behält die Matrix mehrere Durchgänge lang und nimmt dafür mehr Durchgänge in Kauf. Gemessen über 50 ms:

𝐘\mathbf{Y} wird gebildet Auflösungen Zeitschritte ohne Konvergenz uCu_C daneben um
in jedem Durchgang neu 19 571 0 —
einmal je Zeitschritt, Grenze 400 57 799 55 3,8 mV
einmal je Zeitschritt, Grenze 2000 2 062 501 1012 10,2 V

An dieser Schaltung trägt es nicht: an den Umschaltstellen konvergiert das Verfahren nicht mehr, und eine höhere Iterationsgrenze verschlechtert das Ergebnis. Beim Umschalten ändern sich die Diodenleitwerte um Hunderte von Zehnerpotenzen, von 10−28010^{-280} S auf 15 S.

29.3 Die Übersicht

lässt man weg Folge gemessen
die Erweiterung um den Quellstrom Konditionszahl über 101210^{12}; Newton erreicht die Schranke nicht Abschnitt 10.3
GminG_{\min} im Sperrfall verliert die Matrix ihren Rang Abschnitt 18
das Neubilden von 𝐘\mathbf{Y} je Durchgang keine Konvergenz an den Umschaltstellen 30.2
die Dämpfung die Exponentialfunktion überläuft beim ersten großen Schritt Abschnitt 20
eine zu große Schrittweite Fehler wächst linear; ab 18 ms instabil Abschnitt 23.3
das Wiederverwenden des Startwerts die Zahl der Durchgänge vervielfacht sich Abschnitt 24

Fällt eines aus, so fällt nicht die Genauigkeit ab — es rechnet gar nicht mehr.

TEIL VII — DIE HANDRECHNUNG

30. Drei Zeitschritte ohne Auslassung

Alle folgenden Zahlen stammen aus dem laufenden Programm. Parameter: ûq=30\hat u_q = 30 V, f=50f = 50 Hz, Ri=1ΩR_i = 1\ \Omega, R=10ΩR = 10\ \Omega, C=1000μC = 1000\ \muF, RL=100ΩR_L = 100\ \Omega, Diode 1N4148, Δt=10μ\Delta t = 10\ \mus.

Die Rechnung ist nach den drei Ebenen aus Abbildung 2 und Abbildung 6 gegliedert; jeder Abschnitt trägt die Ebene, in der er steht.

30.1 Ein vollständiger Zeitschritt, k = 16500, t = 165,000 ms

Das ist der Scheitel der Quellspannung: 50⋅0,165=8,2550\cdot0{,}165 = 8{,}25 Perioden, also eine Viertelperiode nach dem letzten Nulldurchgang.

ZEITSCHLEIFE — Beginn des Schrittes

uq=30sin(2π⋅50⋅0,165)=+30,000000Vu_q = 30\,\sin(2\pi\cdot 50\cdot 0{,}165) = +30{,}000000\ \text{V}

Der Zustand vom vorigen Schritt lautet uC=+20,830935182u_C = +20{,}830935182 V. Er ist für diesen ganzen Zeitschritt eine feste Zahl und geht als eingeprägter Strom uC/R=2,0830935u_C/R = 2{,}0830935 A in die dritte Zeile der rechten Seite ein.

Startwerte für die Wiederholung — die Lösung des Schrittes k=16499k = 16499:

ua=+28,446797,ub=−0,878892,uP=+27,567904V,iq=+0,674163Au_a = +28{,}446797,\quad u_b = -0{,}878892,\quad u_P = +27{,}567904\ \text{V}, \quad i_q = +0{,}674163\ \text{A}

NEWTON-DURCHGANG 1

Erstens: die vier Dioden auswerten. Aus den Startwerten folgen die Diodenspannungen, daraus Strom und differentieller Leitwert:

Diode Spannung vv Strom ID(v)I_D(v) Leitwert gdg_d Ersatzstrom IeqI_{eq}
D1 (a → P) +0,878892+0{,}878892 V +0,674163+0{,}674163 A 14,8845814{,}88458 S −12,407781-12{,}407781 A
D2 (b → P) −28,446797-28{,}446797 V −2,52⋅10−9-2{,}52\cdot10^{-9} A 9,5⋅10−2819{,}5\cdot10^{-281} S −2,52⋅10−9-2{,}52\cdot10^{-9} A
D3 (M → a) −28,446797-28{,}446797 V −2,52⋅10−9-2{,}52\cdot10^{-9} A 9,5⋅10−2819{,}5\cdot10^{-281} S −2,52⋅10−9-2{,}52\cdot10^{-9} A
D4 (M → b) +0,878892+0{,}878892 V +0,674163+0{,}674163 A 14,8845814{,}88458 S −12,407781-12{,}407781 A

D1 und D4 leiten, D2 und D3 sperren. Der Strom nimmt den Weg Quelle → a → D1 → P → R → C und über M → D4 → b zurück.

Die sperrenden Dioden führen nicht null, sondern den Sättigungssperrstrom −IS=−2,52-I_S = -2{,}52 nA, und ihr Leitwert ist nicht null, sondern 10−28110^{-281} S. Es gibt keinen Umschaltpunkt — das ist der Unterschied zum Knickkennlinienmodell.

Der große negative Ersatzstrom von −12,41-12{,}41 A ist kein Fehler: Leitwert und Stromquelle zusammen geben die 0,674 A wieder, denn 14,88458⋅0,878892−12,407781=0,67416314{,}88458 \cdot 0{,}878892 - 12{,}407781 = 0{,}674163 A.

Zweitens: stempeln. Die vier Leitwerte, 1/R=0,11/R = 0{,}1 S, GminG_{\min} und die Inzidenz des Quellzweigs ergeben

𝐘=(14,88460−14,8846−1014,8846≈0+1−14,8846≈014,98460−1+10−1),𝐢=(+12,4078−12,4078−10,3247−30)\mathbf{Y} = \left(\begin{array}{ccc|c} 14{,}8846 & 0 & -14{,}8846 & -1\\ 0 & 14{,}8846 & \approx 0 & +1\\ -14{,}8846 & \approx 0 & 14{,}9846 & 0\\ \hline -1 & +1 & 0 & -1 \end{array}\right), \qquad \mathbf{i} = \begin{pmatrix} +12{,}4078\\ -12{,}4078\\ -10{,}3247\\ \hline -30 \end{pmatrix}

Jeder Eintrag ist nachprüfbar. Diagonale von a: g1+g3+Gmin=14,88458g_1 + g_3 + G_{\min} = 14{,}88458. Diagonale von P: 1/R+g1+g2+Gmin=0,1+14,88458=14,98461/R + g_1 + g_2 + G_{\min} = 0{,}1 + 14{,}88458 = 14{,}9846. Rechte Seite bei a: Ieq3−Ieq1=−2,5⋅10−9+12,407781=+12,4078I_{eq3} - I_{eq1} = -2{,}5\cdot10^{-9} + 12{,}407781 = +12{,}4078 A. Rechte Seite bei P: uC/R+Ieq1+Ieq2=2,0831−12,4078=−10,3247u_C/R + I_{eq1} + I_{eq2} = 2{,}0831 - 12{,}4078 = -10{,}3247 A.

Drittens: auflösen. Das Gauß-Verfahren liefert

ua=+28,447377091,ub=−0,878865174,u_a = +28{,}447377091,\quad u_b = -0{,}878865174, uP=+27,568511919V,iq=+0,673757735Au_P = +27{,}568511919\ \text{V},\quad i_q = +0{,}673757735\ \text{A}

Die größte Änderung gegenüber dem Startwert beträgt 6,08⋅10−46{,}08\cdot10^{-4} V — weit unter der Dämpfungsschranke von 0,5 V, die also nicht wirksam wird, und weit über der Abbruchschranke von 10−1210^{-12} V. Es wird wiederholt.

NEWTON-DURCHGANG 2

Mit den neuen Potentialen ändern sich die Diodenspannungen geringfügig, und damit die Leitwerte:

g1=g4=14,87564Sstatt14,88458Sg_1 = g_4 = 14{,}87564\ \text{S}\quad\text{statt}\quad 14{,}88458\ \text{S}

Matrix und rechte Seite werden neu gestempelt — Yaa=14,8756Y_{aa} = 14{,}8756, ia=+12,3999i_a = +12{,}3999 — und das System erneut aufgelöst:

ua=+28,447377098,ub=−0,878865166,u_a = +28{,}447377098,\quad u_b = -0{,}878865166, uP=+27,568511934V,iq=+0,673757736Au_P = +27{,}568511934\ \text{V},\quad i_q = +0{,}673757736\ \text{A}

Änderung: 1,47⋅10−81{,}47\cdot10^{-8} V. Noch über der Schranke.

NEWTON-DURCHGANG 3

Wieder auswerten, wieder stempeln, wieder auflösen. Die Leitwerte ändern sich jetzt erst in der siebten Stelle, die Potentiale um 4,97⋅10−144{,}97\cdot10^{-14} V. Beide Schranken sind unterschritten, die Wiederholung endet.

Durchgang größte Änderung
1 6,08⋅10−46{,}08\cdot10^{-4} V
2 1,47⋅10−81{,}47\cdot10^{-8} V
3 4,97⋅10−144{,}97\cdot10^{-14} V

In jedem Durchgang verdoppelt sich die Zahl der richtigen Stellen: 10−4→10−8→10−1410^{-4} \to 10^{-8} \to 10^{-14}. Das ist die quadratische Konvergenz, für die man Newton nimmt — und der Grund, warum drei Durchgänge genügen.

EULER-SCHRITT — Ende des Zeitschritts

Erst jetzt, nachdem die Wiederholung beendet ist, wird der Zustand fortgeschrieben. Aus der endgültigen Lösung:

iR=27,568511934−20,83093518210=+0,673757675Ai_R = \frac{27{,}568511934 - 20{,}830935182}{10} = +0{,}673757675\ \text{A} iRL=20,830935182100=+0,208309352Ai_{R_L} = \frac{20{,}830935182}{100} = +0{,}208309352\ \text{A} duCdt=0,673757675−0,20830935210−3=+465,448323Vs\frac{\mathrm{d}u_C}{\mathrm{d}t} = \frac{0{,}673757675 - 0{,}208309352}{10^{-3}} = +465{,}448323\ \frac{\text{V}}{\text{s}} uC←20,830935182+10−5⋅465,448323=+20,835589665Vu_C \leftarrow 20{,}830935182 + 10^{-5}\cdot465{,}448323 = +20{,}835589665\ \text{V}

Der Kondensator wird geladen: in zehn Mikrosekunden um 4,65 mV. Von den 674 mA durch RR gehen 208 mA in die Last und 466 mA in den Kondensator.

Damit ist der Zeitschritt beendet. Gerechnet wurden: eine Auswertung der Quellspannung, drei Auswertungen der Diodenkennlinien, drei Stempelvorgänge, drei Auflösungen der Matrixgleichung und ein Euler-Schritt.

30.2 Was herauskommt und was in den nächsten Schritt eingeht

Der Schritt k=16500k = 16500 ist damit fertig. Sein Ergebnis:

Größe Wert am Ende des Schrittes
uau_a +28,447377098+28{,}447377098 V
ubu_b −0,878865166-0{,}878865166 V
uPu_P +27,568511934+27{,}568511934 V
iqi_q +0,673757736+0{,}673757736 A
uCu_C +20,835589665+20{,}835589665 V — neuer Zustand

Von diesen fünf Zahlen geht in den nächsten Schritt Verschiedenes ein, und es lohnt, das genau zu trennen:

geht über nach k=16501k = 16501 als was Wirkung
uC=20,835589665u_C = 20{,}835589665 V Zustand bestimmt das Ergebnis; er ist die einzige Größe, die den Schritt überdauert
ua,ub,uP,iqu_a, u_b, u_P, i_q Startwerte der Wiederholung bestimmen nur die Zahl der Durchgänge, nicht das Ergebnis

Alles andere wird verworfen und neu gebildet: die Diodenleitwerte, die Ersatzströme, die Matrix, die rechte Seite. Nichts davon überdauert den Schritt.

Neu hinzu kommt allein die Quellspannung:

uq(t16501)=30sin(2π⋅50⋅0,16501)=+29,999851956Vu_q(t_{16501}) = 30\,\sin(2\pi\cdot50\cdot0{,}16501) = +29{,}999851956\ \text{V}

Sie ist um 0,148 mV gefallen — der Scheitel ist überschritten.

Der Schritt k=16501k = 16501 läuft dann genauso ab. Mit dem neuen Zustand und den alten Potentialen als Startwerten:

Durchgang g1g_1 größte Änderung
1 14,87563414{,}875634 S 4,31⋅10−44{,}31\cdot10^{-4} V
2 14,86611514{,}866115 S 1,67⋅10−81{,}67\cdot10^{-8} V
3 14,86611214{,}866112 S 3,55⋅10−153{,}55\cdot10^{-15} V

ua=+28,447689378,ub=−0,878836162,uP=+27,568853218Vu_a = +28{,}447689378,\quad u_b = -0{,}878836162,\quad u_P = +27{,}568853218\ \text{V} iR=+0,673326355A,uC←+20,840239370Vi_R = +0{,}673326355\ \text{A},\qquad u_C \leftarrow +20{,}840239370\ \text{V}

Der Vergleich beider Schritte nebeneinander:

k=16500k = 16500 k=16501k = 16501
uqu_q +30,000000+30{,}000000 V +29,999852+29{,}999852 V
uCu_C am Anfang +20,830935+20{,}830935 V +20,835590+20{,}835590 V
uPu_P +27,568512+27{,}568512 V +27,568853+27{,}568853 V
iRi_R +0,673758+0{,}673758 A +0,673326+0{,}673326 A
Newton-Durchgänge 3 3
uCu_C am Ende +20,835590+20{,}835590 V +20,840239+20{,}840239 V

Der Kondensator steigt um weitere 4,65 mV, der Ladestrom fällt leicht, weil die Quellspannung nachlässt und uCu_C steigt. Drei Durchgänge wie zuvor — das Muster wiederholt sich zwanzigtausendmal.

Warum der Startwert so wichtig ist. Newton beginnt jeden Zeitschritt bei der Lösung des vorigen, und zwischen zwei Schritten ändert sich uPu_P nur um 0,34 mV. Deshalb ist der erste Rest bereits winzig und drei Durchgänge genügen. Startete man jedes Mal bei null, so bräuchte man ein Vielfaches — und an den Umschaltstellen womöglich gar keine Konvergenz.

30.3 Der Sperrfall: alle vier Dioden sperren

Drei Millisekunden später hat die Quelle den Scheitel verlassen, der Kondensator ist auf 20,85 V geladen, und keine Diode leitet mehr:

vD1=−15,45V,vD2=−20,89V,vD3=−5,40V,vD4=+0,034Vv_{D1} = -15{,}45\ \text{V},\quad v_{D2} = -20{,}89\ \text{V},\quad v_{D3} = -5{,}40\ \text{V},\quad v_{D4} = +0{,}034\ \text{V}

D4 sieht noch 34 mV in Durchlassrichtung — zu wenig für nennenswerten Strom (2,852{,}85 nA), aber genug für einen Leitwert von 1,185⋅10−71{,}185\cdot10^{-7} S.

Der Strom durch RR beträgt jetzt −2,6⋅10−8-2{,}6\cdot10^{-8} A, also praktisch null. Der Kondensator speist allein die Last:

duCdt=−2,6⋅10−8−0,208545810−3=−208,55Vs\frac{\mathrm{d}u_C}{\mathrm{d}t} = \frac{-2{,}6\cdot10^{-8} - 0{,}2085458}{10^{-3}} = -208{,}55\ \frac{\text{V}}{\text{s}}

Er entlädt sich mit 2,09 mV je Zeitschritt — halb so schnell, wie er zuvor geladen wurde. Auch hier braucht Newton nur vier Durchgänge.

TEIL VIII — PRÜFEN, STATT ZU GLAUBEN

31. Sieben Prüfungen und was sie sichern

Ein Simulationsergebnis ist nur so viel wert wie die Prüfungen, die es überstanden hat. Sieben sind es, und jede schließt eine andere Fehlerart aus.

Prüfung Was sie ausschließt Ergebnis
Jacobi-Matrix gegen den Differenzenquotienten, an drei wirklichen Arbeitspunkten einen Fehler beim Ableiten 1,2⋅10−81{,}2\cdot10^{-8}
Symmetrie der Jacobi-Matrix ein vergessenes Vorzeichen exakt null
Knotensatz aus den Potentialen neu gebildet dass das Programm sich selbst bestätigt Rest 1,4⋅10−131{,}4\cdot10^{-13} A
Leistungsbilanz über eine volle Periode einen fehlenden oder doppelt gezählten Zweig schließt auf 4,2⋅10−44{,}2\cdot10^{-4}
Schrittweitenstudie einen Fehler im Integrationsverfahren Verhältnis 2,01 / 2,03 / 2,05
derselbe Lauf allein mit dem Knotenpotentialverfahren (Abschnitt 30.1) dass das Verfahren nur zum Aufschreiben diente und in Wahrheit etwas anderes rechnete 3,9⋅10−143{,}9\cdot10^{-14} V
Dashboard-Kern gegen Lehrprogramm und gegen die reine Potentialform dass die drei Fassungen auseinanderlaufen 10−1110^{-11} V bzw. 2,5⋅10−112{,}5\cdot10^{-11} V

Die dritte verdient eine Bemerkung. Es genügt nicht, den Rest 𝐅\mathbf{F} abzufragen, den das Newton-Verfahren ohnehin klein gemacht hat — das prüfte nur, ob das Programm tut, was es tut. Geprüft wird deshalb anders: aus den gefundenen Potentialen werden alle Zweigströme noch einmal gebildet und an jedem Knoten aufsummiert.

32. Die Schrittweitenstudie im Einzelnen

Δt\Delta t uC(200ms)u_C(200\ \text{ms}) Fehler Verhältnis
40 µs 20,741617 V 7,889⋅10−37{,}889\cdot10^{-3} V
20 µs 20,737645 V 3,917⋅10−33{,}917\cdot10^{-3} V 2,01
10 µs 20,735661 V 1,933⋅10−31{,}933\cdot10^{-3} V 2,03
5 µs 20,734670 V 9,417⋅10−49{,}417\cdot10^{-4} V 2,05
2,5 µs 20,734174 V 4,460⋅10−44{,}460\cdot10^{-4} V 2,11

Bezug ist ein Lauf mit 0,25 µs. Halbiert man die Schrittweite, halbiert sich der Fehler — das Kennzeichen eines Verfahrens erster Ordnung.

Dass das Verhältnis am Ende leicht über 2 steigt, ist kein Widerspruch: der Bezugswert ist selbst mit einem Fehler behaftet, und je näher man ihm kommt, desto stärker fällt der ins Gewicht.

33. Die Leistungsbilanz

Leistung
Quelle gibt ab 5,9031 W
davon Innenwiderstand 0,1117 W
vier Dioden 0,3597 W
Vorwiderstand RR 1,1173 W
Last RLR_L 4,3138 W
Kondensator, netto über eine Periode 0,0030 W
Rest −2,5⋅10−3-2{,}5\cdot10^{-3} W

Der Kondensator nimmt über eine volle Periode netto nichts auf — er gibt in der Entladephase zurück, was er in der Ladephase aufgenommen hat. Die 3 mW sind der Rest des noch nicht ganz abgeklungenen Einschwingens.

34. Die Gegenrechnung mit fremden Werkzeugen

Zwei weitere Prüfungen stehen außerhalb des Programms.

Gegen einen fremden Löser. Dieselbe Schaltung, gerechnet mit scipy: solve_ivp mit dem Verfahren LSODA für die Zeitintegration und fsolve für das nichtlineare System — kein einziger Rechenweg gemeinsam.

Mittelwert Brummspannung
scipy 20,7686 V 1,1891 V
dieses Programm 20,7661 V 1,1901 V

Unterschied 2,4 mV, also 0,012 %.

Gegen den Vorgänger. Setzt man den Vorwiderstand auf R=1R = 1 mΩ, so fällt die Schaltung mit der aus Teil 2 zusammen: die Knoten P und C verschmelzen. Beide Programme müssen dann dasselbe liefern — und tun es:

uCu_C Mittelwert Brummspannung Spitzenstrom D1
Programm aus Teil 2 7,919215 V 0,5954 V 224,275 mA
dieses Programm, RR = 1 mΩ 7,919185 V 0,5954 V 224,269 mA

Das ist die beste Art, ein neues Programm zu prüfen: man führt es in einen Grenzfall, für den man bereits ein geprüftes Ergebnis hat.

TEIL IX — DAS ERGEBNIS

35. Die Zahlen

Im eingeschwungenen Zustand:

Größe Wert
Kondensatorspannung im Mittel 20,766 V
größter Wert 21,360 V
kleinster Wert 20,170 V
Brummspannung 1,190 V, das sind 5,7 %
Laststrom im Mittel 207,7 mA
Spitzenstrom durch D1 676,9 mA
Verlust vom Scheitel bis zum Kondensator 8,640 V
Newton-Durchgänge je Zeitschritt im Mittel 3,9, höchstens 6
Die letzten zwei Perioden, gedehnt. Der Strom fließt nur während eines Bruchteils der Halbwelle — dafür mit hohem Scheitelwert.

36. Drei Beobachtungen, die man deuten sollte

36.1 Die Ströme fließen in kurzen, hohen Stößen

Der Laststrom beträgt im Mittel 208 mA, der Spitzenstrom durch die Diode aber 677 mA — mehr als das Dreifache.

Die Ursache ist der Kondensator: er wird nur nachgeladen, solange die Quellspannung über seiner eigenen liegt, und das ist nur ein Bruchteil jeder Halbwelle. Deshalb hat jeder Gleichrichter mit Ladekondensator einen schlechten Formfaktor — und deshalb belasten solche Netzteile das Netz mit Oberschwingungen.

36.2 Die Brummspannung folgt einer einfachen Abschätzung

In der Sperrphase speist der Kondensator allein die Last:

ΔuC≈ILtsperrC=0,208A⋅5,7ms1000μF≈1,19V\Delta u_C \approx \frac{I_L\,t_{\text{sperr}}}{C} = \frac{0{,}208\ \text{A}\cdot 5{,}7\ \text{ms}}{1000\ \mu\text{F}} \approx 1{,}19\ \text{V}

Das trifft den gerechneten Wert. Die Sperrzeit von 5,7 ms liest man aus dem Bild ab: bei 50 Hz und Zweiweggleichrichtung stehen 10 ms je Halbwelle zur Verfügung, von denen die Ladung gut vier beansprucht.

Solche Abschätzungen sind wichtig. Ein Simulationsergebnis, das man nicht grob nachrechnen kann, sollte man nicht glauben.

36.3 Wo die 8,6 V bleiben

Die Bilanz im Scheitel, wo uq=30,000u_q = 30{,}000 V ist:

Innenwiderstand RiR_i, 0,674 A × 1 Ω 0,674 V
Diode D1 0,879 V
Diode D4 0,879 V
Vorwiderstand RR, 0,674 A × 10 Ω 6,738 V
bleibt am Kondensator 20,830 V
Summe 30,000 V

Der Vorwiderstand ist der Hauptverbraucher. Er begrenzt den Ladestromstoß und bezahlt das mit Verlustleistung — das ist der Zielkonflikt jeder solchen Schaltung.

36.4 Warum ein kleinerer Vorwiderstand nur scheinbar besser ist

Der Vorwiderstand ist die Kenngröße, über die man beim Entwurf am ehesten nachdenkt. Verkleinert man ihn, so rückt die Kondensatorspannung an den Scheitelwert heran — das ist der erwünschte Teil. Was gleichzeitig geschieht, zeigt die vollständige Reihe. Alle Zeilen mit U=30U = 30 V, 50 Hz, C=1000μC = 1000\ \muF, RL=100ΩR_L = 100\ \Omega, 1N4148:

RiR_i RR uCu_C Mittel Brummspannung iD1i_{D1} Spitze
1 Ω 10 Ω 20,767 V 1,189 V 5,73 % 677 mA
1 Ω 5 Ω 22,872 V 1,448 V 6,33 % 882 mA
1 Ω 2 Ω 24,613 V 1,708 V 6,94 % 1161 mA
1 Ω 1 Ω 25,349 V 1,838 V 7,25 % 1348 mA
1 Ω 0,5 Ω 25,765 V 1,919 V 7,45 % 1490 mA
0,1 Ω 1 Ω 26,128 V 1,995 V 7,64 % 1654 mA
0,1 Ω 0,5 Ω 26,624 V 2,114 V 7,94 % 1997 mA
0,1 Ω 0,1 Ω 27,029 V 2,230 V 8,25 % 2625 mA

Drei Dinge stehen in dieser Tabelle.

Erstens: die Gleichspannung steigt — von 20,8 V auf 27,0 V. Das ist der gefällige Teil, und er ist echt: der Spannungsteiler aus RR und RLR_L verschwindet, es bleiben nur noch die beiden Diodenspannungen.

Zweitens: die Brummspannung steigt mit. Von 1,19 V auf 2,23 V, also fast auf das Doppelte — und auch bezogen auf den Mittelwert, von 5,7 % auf 8,3 %. Das ist kein Rechenfehler, sondern die Abschätzung aus 27.2:

ΔuC≈IL2fC,IL=u‾CRL\Delta u_C \approx \frac{I_L}{2fC}, \qquad I_L = \frac{\bar u_C}{R_L}

Eine höhere Gleichspannung bedeutet einen höheren Laststrom, und der entlädt den Kondensator in der Sperrphase schneller. Der Vorwiderstand glättet nicht. Geglättet wird allein von CC und RLR_L; RR verschiebt nur den Arbeitspunkt.

Drittens: der Diodenstoßstrom wächst ins Unhaltbare — von 677 mA auf 2625 mA. Genau das ist die Aufgabe von RR: Er ist ein Strombegrenzer, kein Filter. Wer ihn wegnimmt, nimmt der Schaltung ihren einzigen Schutz gegen den Einschaltstromstoß. Eine 1N4148 ist schon bei 677 mA falsch gewählt (§37); bei 2,6 A ist auch eine 1N4007 nicht mehr sicher.

Wer also die Brummspannung wirklich senken will, hat nur zwei Stellschrauben: größeres CC oder kleinerer Laststrom. Am Dashboard sieht man das unmittelbar — CC verdoppeln halbiert die Brummspannung, RR verkleinern nicht.

Dieser Zielkonflikt — Gleichspannung gegen Stoßstrom, bei unveränderter Glättung — ist der eigentliche Entwurfsinhalt dieser Schaltung. Er lässt sich mit Näherungsmodellen für die Dioden nicht sauber ausrechnen, weil die Stromspitze empfindlich vom Kennlinienverlauf im Leitbereich abhängt. Das ist der praktische Grund, warum hier ohne jede Näherung nach Shockley gerechnet wird.

37. Ein Wort zur Bauteilwahl

Die Rechnung ergibt Diodenstromspitzen von 677 mA. Eine 1N4148 verträgt 200 mA Dauerstrom. Das Modell rechnet richtig — die Shockley-Gleichung kennt keine Grenze —, aber das Bauteil wäre in dieser Schaltung falsch gewählt. Für 30 V an 100 Ω gehörte eine 1N4007 hin.

Das ist eine allgemeine Lehre aus der Simulation: ein Modell sagt nie von sich aus, dass ein Bauteil überlastet ist. Es sagt nur, was die Gleichung hergibt. Die Grenzen muss man selbst kennen und selbst prüfen.

TEIL X — SELBST AUSPROBIEREN

38. Das Dashboard

Wer die Zusammenhänge sehen will statt sie nur zu lesen, startet

python3 bruecke_dashboard.py

und ruft http://localhost:8090 auf. Es wird nichts installiert — das Dashboard braucht nur die Standardbibliothek.

Alle Kenngrößen wirken sofort, ohne Neustart. Man kann den Kondensator verkleinern und zusehen, wie die Brummspannung wächst; den Vorwiderstand vergrößern und sehen, wie die Stromspitzen abflachen und der Verlust steigt; den Innenwiderstand bis auf null herunterdrehen; das Diodenmodell wechseln.

Was die beiden Bilder zeigen. Oben die Spannungen: uqu_q als graue Sinuslinie, uPu_P am Brückenausgang, uCu_C am Kondensator. Zwischen den Ladephasen fallen uPu_P und uCu_C zusammen — dann fließt kein Strom durch RR, und das ist die schnellste Sichtprüfung, ob die Rechnung stimmt.

Unten die Ströme: iRi_R durch den Vorwiderstand als durchgezogene Linie, darüber gestrichelt iD1i_{D1} und iD2i_{D2}, dazu der Laststrom iRLi_{R_L}. Die Diodenströme liegen zwangsläufig auf iRi_R, denn es gilt iR=iD1+iD2i_R = i_{D1} + i_{D2}, und in jeder Halbwelle leitet nur eine der beiden. Deshalb sind sie gestrichelt gezeichnet: so bleibt die durchgezogene Summenkurve sichtbar und man sieht, wie die beiden Diodenpaare einander ablösen. Dass der Mittelwert von iRi_R mit dem Mittelwert von iRLi_{R_L} zusammenfällt, ist die Ladungsbilanz des Kondensators — im eingeschwungenen Zustand muss sie aufgehen.

Zwei Betriebsarten:

  • begrenzt — rechnet die eingestellte Zeit und hält an. Für saubere, wiederholbare Läufe.
  • unbegrenzt — läuft weiter wie ein Oszilloskop. Für das Spielen mit den Reglern.

Das Tempo ist ein Echtzeitfaktor; 0 heißt so schnell wie der Rechner kann. Der Kern schafft rund 147 000 Zeitschritte je Sekunde, bei Δt=10μ\Delta t = 10\ \mus also das 1,47-fache der Echtzeit.

Dass Dashboard und Lehrprogramm dasselbe rechnen, ist nicht behauptet, sondern nachgewiesen: gegenprobe_kern.py lässt beide über 10 000 Zeitschritte nebeneinander laufen. Die Abweichung beträgt 10−1110^{-11} V.

39. Übungen

  1. Den Vorwiderstand verändern. RR von 10 Ω auf 1 Ω verkleinern: Wie ändern sich Ausgangsspannung, Brummspannung und Diodenstromspitze? Warum wird der Stromstoß schmaler und höher?

  2. Den Innenwiderstand auf null stellen. Was ändert sich am Ergebnis, und was an der Zahl der Newton-Durchgänge? Warum ginge das mit dem reinen Knotenpotentialverfahren nicht?

  3. Gmin=0G_{\min} = 0 setzen und den Abbruch wegen singulärer Matrix erleben. Dann erklären, wann genau er auftritt — und warum er im Leitfall nie kommt.

  4. Die Dämpfung abschalten und beobachten, wo das Verfahren zuerst strauchelt. Vermutung vorher aufschreiben: beim Einschalten oder beim Umschwingen?

  5. Stempelregel üben. Einen zusätzlichen Widerstand von P nach Masse einzeichnen: Welche Matrixeinträge ändern sich, welche nicht?

  6. Eine fünfte Unbekannte erzeugen: eine zweite RC-Stufe hinter dem Kondensator einfügen. Dann gibt es zwei Zustandsgrößen und zwei Differentialgleichungen — und das Newton-System bleibt trotzdem 4×4. Warum?

  7. Den Diodentyp wechseln. Um wieviel unterscheiden sich 1N4148, 1N4007 und eine Schottky-Diode? Woran liegt es — an ISI_S oder an nn?

  8. Quervergleich mit LTspice. Dieselbe Schaltung dort aufbauen und uC(t)u_C(t), Brummspannung und Diodenstromspitzen vergleichen. Wo weicht es ab, und warum?

TEIL XI — VOM BEISPIEL ZUM SIMULATOR: NETZLISTE UND IMPLIZITER EULER

40. Warum es weitergehen muss

Bis hierher waren die Ebenen getrennt: die Matrixgleichung lieferte die Potentiale, der Euler schrieb den Zustand fort. Diese Trennung hat einen Preis.

Der explizite Euler bildet die Ableitung am Anfang des Schrittes und geht dann geradeaus weiter. Wird die Schrittweite zu groß, entfernt er sich von der Lösung, und zwar mit wachsender Tendenz — er ist nicht A-stabil. Bei steifen Systemen, in denen sehr schnelle neben sehr langsamen Vorgängen stehen, erzwingt das lächerlich kleine Schrittweiten.

41. Der Ansatz

Beim impliziten Euler bildet man die Ableitung am Ende des Schrittes:

uCk+1=uCk+Δt1C(uPk+1−uCk+1R−uCk+1RL)u_C^{k+1} = u_C^{k} + \Delta t\, \frac{1}{C}\left(\frac{u_P^{k+1} - u_C^{k+1}}{R} - \frac{u_C^{k+1}}{R_L}\right)

Das ist keine Rechenvorschrift mehr, sondern eine Gleichung: uCk+1u_C^{k+1} steht auf beiden Seiten. Und da uPk+1u_P^{k+1} von uCk+1u_C^{k+1} abhängt und umgekehrt, lässt sich nichts mehr nacheinander lösen.

42. Die Auflösung

Der Ausweg ist überraschend einfach — und dem Leser dieses Manuskripts inzwischen vertraut: man nimmt uCu_C mit in den Unbekanntenvektor auf.

Aus vier Unbekannten werden fünf, aus der 4×4-Matrix eine 5×5, und die Trennung „Newton für das algebraische System, Euler für die Zustände” verschmilzt zu einem einzigen Verfahren.

Genau das tut SPICE in .tran. Der Kondensator wird dabei nicht mehr als Differentialgleichung geführt, sondern als Ersatzschaltung aus einem Leitwert C/ΔtC/\Delta t und einer Stromquelle, die den Wert des vorigen Schrittes trägt — man nennt es die Begleitschaltung. Damit ist der Kondensator nur noch ein weiterer Zweig, den man stempelt wie jeden anderen.

Was man gewinnt: A-Stabilität. Der implizite Euler bleibt auch bei großen Schrittweiten beschränkt. Was man bezahlt: eine Unbekannte mehr, und eine Dämpfung, die stärker ist als die wirkliche.

Beides ist umgesetzt. Die folgenden Abschnitte zeigen den Simulator simulator.py, der beliebige Schaltungen aus Quellen, Widerständen, Dioden, Kondensatoren und Spulen aus einer Netzliste heraus rechnet — mit wählbarem explizitem oder implizitem Euler — und weisen beides nach.

43. Die Netzliste und die Stempelklassen

Die Methode dieses Manuskripts ist von der Brücke unabhängig: alles steht in einer Knotenleitwertmatrix, und jedes Bauteil trägt dort nur seinen festen Stempel ein. Eine neue Schaltung ist deshalb kein neues Verfahren, sondern nur eine andere Liste von Stempeln. Der Simulator nimmt diese Liste als Text entgegen — eine Zeile je Bauteil: Name, zwei Knoten, Wert. Knoten sind beliebige Namen und werden durchnummeriert: K0 ist der Bezugsknoten (gleichwertig zu 0), dann K1, K2, … Die Brücke dieses Manuskripts lautet als Netzliste (bruecke.netz):

Q1  K5 K2  sinus 30 50    * Quelle zwischen K5 und K2
Ri  K5 K1  1              * Innenwiderstand von K5 nach K1
D1  K1 K3  1N4148
D2  K2 K3  1N4148
D3  K0 K1  1N4148
D4  K0 K2  1N4148
R1  K3 K4  10
C1  K4 K0  1000u
RL  K4 K0  100

Die Zuordnung zu den Namen der Herleitung:

Netzliste Manuskript
K0 M, der Bezugsknoten
K1, K2 a und b, die Brückeneingänge
K3 P, der Brückenausgang
K4 der Kondensatorknoten
K5 Verbindung Quelle–Innenwiderstand

Quelle und Innenwiderstand, im Kern zu einer Zeile −(ua−ub)−Riiq+uq=0-(u_a-u_b)-R_i\,i_q+u_q=0 verschmolzen, stehen hier getrennt; der Verbindungspunkt K5 wird ein gewöhnlicher Knoten. Der Anfangsbuchstabe des Namens bestimmt die Bauteilsorte, und jede Sorte ist eine eigene kleine Klasse, die genau zwei Dinge kann: ihre Einträge in 𝐘\mathbf{Y} und 𝐢\mathbf{i} stempeln und ihren Beitrag zum Residuum 𝐅\mathbf{F} liefern.

Bauteil Stempel Zusatzunbekannte
Widerstand vier Einträge mit G=1/RG = 1/R keine
Spannungsquelle Zwangszeile up−un=uq(t)u_p - u_n = u_q(t) ihr Zweigstrom
Diode Tangente gdg_d, IeqI_{eq} — je Newton-Durchgang neu (Abschnitt 13) keine
Kondensator je nach Verfahren, Abschnitt 44 ihr Zweigstrom ICI_C
Spule je nach Verfahren, Abschnitt 44 keine

Die Verschachtelung ist wörtlich die aus Abschnitt 25: Zeitschleife außen, darin Newton, darin das Auflösen (Gauß mit Teilpivotierung statt der fest verdrahteten Kreuzregel des Kerns — bei wechselnder Matrixgröße gibt es nichts von Hand vorzurechnen), und die Zustandsgrößen werden nach Newton fortgeschrieben, einmal je Zeitschritt. Beim expliziten Euler heißt das für die beiden Speicher:

  • Kondensator: uCu_C ist während des Zeitschritts fest. Er steht als Zwangszeile up−un=uCu_p - u_n = u_C in der Matrix, sein Zweigstrom ICI_C ist Zusatzunbekannte; danach uC←uC+Δt⋅IC/Cu_C \leftarrow u_C + \Delta t \cdot I_C / C.
  • Spule: iLi_L ist während des Zeitschritts fest und geht als eingeprägter Strom in die rechte Seite; danach iL←iL+Δt⋅(up−un)/Li_L \leftarrow i_L + \Delta t \cdot (u_p - u_n)/L.

Newton sieht einen festen Zustand, der Euler sieht die fertig aufgelösten Ströme und Spannungen — je Speicher werden genau zwei Zahlen getauscht, wie in Abschnitt 25.

44. Der implizite Euler als Stempel

Der implizite Euler ändert an dieser Verschachtelung nichts. Er ändert nur die beiden Speicherstempel — genau so, wie es Abschnitt 42 angekündigt hat: der Speicher wird zur Begleitschaltung aus Leitwert und Stromquelle, und die neue Zustandsgröße steht mit im Gleichungssystem.

Kondensator. Aus der Integrationsformel uCk+1=uCk+ΔtCICk+1u_C^{k+1} = u_C^{k} + \frac{\Delta t}{C}\, I_C^{k+1} folgt die Zweigzeile

IC=gC(up−un)−gCuCk,gC=CΔt.I_C = g_C\,(u_p - u_n) - g_C\, u_C^{k}, \qquad g_C = \frac{C}{\Delta t}.

Sie ersetzt die Zwangszeile; der Zweigstrom bleibt Zusatzunbekannte. Nach Newton ist die neue Kondensatorspannung schon ausgerechnet: uC←up−unu_C \leftarrow u_p - u_n. Der implizite Euler-Schritt steckt im Stempel.

Spule. Aus iLk+1=iLk+ΔtLuk+1i_L^{k+1} = i_L^{k} + \frac{\Delta t}{L}\,u^{k+1} wird ein Leitwert gL=Δt/Lg_L = \Delta t / L parallel zur Stromquelle iLki_L^{k} — vier Einträge wie ein Widerstand plus rechte Seite. Danach iL←iL+gL(up−un)i_L \leftarrow i_L + g_L\,(u_p - u_n).

Innerhalb des Zeitschritts bleiben beide Stempel konstant (uCku_C^k und iLki_L^k sind Zahlen des alten Schrittes); Newton erneuert wie immer nur die Diodentangenten. Der Ablauf je Zeitschritt ist damit in beiden Verfahren derselbe, Takt für Takt wie in Abschnitt 25.5 — nur die Einträge der Speicherzeilen unterscheiden sich.

45. Die Nagelprobe: der Schwingkreis

Die Stabilitätsaussage aus Abschnitt 40 lässt sich messen. Ein Schwingkreis aus C=1μFC = 1\,\mu\text{F} (Anfangswert 10 V) und L=100L = 100 mH schwingt mit T=2T = 2 ms und ist ungedämpft — die exakte Amplitude bleibt 10 V. Für die Modellgleichung des Schwingkreises ändert der explizite Euler die Amplitude je Schritt um den Faktor 1+(ωΔt)2\sqrt{1+(\omega\Delta t)^2}, der implizite um dessen Kehrwert. Bei Δt=10μ\Delta t = 10\,\mus und 10 000 Schritten (0,1 s, 50 Perioden) sagt das Faktor 148 Wachstum bzw. Dämpfung auf 0,0068 voraus. Der Simulator liefert (simulator_abnahme.py, Abnahme 6):

Verfahren Amplitude nach 0,1 s Vorhersage
explizit 1435 V 1480 V
implizit 0,073 V 0,068 V

Der explizite Euler klingt auf — an der Brücke fiel das nie auf, weil RR, RLR_L und die Dioden jede Schwingung sofort dämpfen, aber am verlustfreien Schwingkreis ist es die bekannte, in Abschnitt 40 benannte Schwäche. Der implizite Euler bleibt beschränkt; sein Preis ist ebenso sichtbar: die Verfahrensdämpfung frisst die ungedämpfte Schwingung fast vollständig auf. Beide Abweichungen schrumpfen mit Δt\Delta t — wer den Schwingkreis genau will, braucht kleine Schritte oder ein Verfahren höherer Ordnung; wer Stabilität bei groben Schritten will, nimmt den impliziten Euler.

An der Brücke selbst sind beide Verfahren gleichwertig: nach 0,2 s bei Δt=10μ\Delta t = 10\,\mus liefert der explizite Euler 20,735661 V, der implizite 20,733770 V — 1,9 mV Unterschied, beide Verfahren sind von erster Ordnung in Δt\Delta t. Newton braucht in beiden Fällen im Mittel 3,7 Durchgänge.

Dieselbe Schwäche zeigt sich in anderem Gewand, sobald eine Drossel hinter dem Gleichrichter liegt (Brücke mit RLC-Tiefpass, bruecke_rlc.netz). Im Anlauf ist der Drosselstrom null, die Dioden sperren, und die Drosselspannung ist kurz negativ — der explizite Euler macht daraus einen kleinen negativen Drosselstrom. Ein Rückstrom durch einen sperrenden Gleichrichter hat aber keinen Weg: das Potential des Brückenausgangs müsste auf iL/Gmini_L/G_{\min} — Kilovolt — laufen. Newton kriecht mit der Dämpfung ±0,5\pm 0{,}5 V je Durchgang hinterher und wird bei 200 Durchgängen abgeschnitten; im Bild stehen Zacken von −0,477+200⋅0,5=99,5-0{,}477 + 200\cdot 0{,}5 = 99{,}5 V, gemessen bis 125 V, und 548 von 20 000 Schritten enden an der Newton-Grenze. Die Abhilfe ist nicht numerisch, sondern schaltungstechnisch: ein Entladewiderstand (10 kΩ vom Brückenausgang nach Masse, wie in realen Netzteilen) gibt dem Reststrom den Weg, den im realen Aufbau die Sperrschichtkapazitäten der Dioden bieten. Damit bleibt der Brückenausgang in [−1,7,28,6][-1{,}7,\ 28{,}6] V — die −1,7-1{,}7 V sind der physikalische Freilauf über zwei Diodenstrecken —, Newton fällt auf 3,8 Durchgänge, und es bleiben 4 Grenzfälle in 40 000 Schritten. Der Simulator zählt solche nicht konvergierten Schritte mit und weist sie aus: eine Rechnung, die viele davon meldet, zeigt fast immer eine Schaltung, in der ein Strom keinen Weg hat.

46. Die Abnahmen des Simulators

Wie alles in dieser Reihe wird der Simulator nachgewiesen, nicht angenommen (simulator_abnahme.py, Protokoll in bericht_simulator.txt):

  1. Spannungsteiler an idealer Quelle (Ri=0R_i = 0) gegen den Wert von Hand — auf Maschinengenauigkeit.
  2. RC-Aufladung explizit gegen die von Hand mitgerechnete Euler-Folge — größte Abweichung 1,8⋅10−151{,}8\cdot 10^{-15} V.
  3. RL-Aufladung explizit gegen die Euler-Folge — exakt gleich.
  4. Die Brücke als Netzliste gegen den Kern, 20 000 Schritte einzeln verglichen: größte Abweichung 0,46μ0{,}46\,\muV an uCu_C, 0,56μ0{,}56\,\muV an uPu_P. Zwei getrennt geschriebene Programme — Netzliste mit Gauß gegen fest verdrahtete Kreuzregel — rechnen dasselbe.
  5. RC- und RL-Aufladung implizit gegen die implizite Folge von Hand — auf Maschinengenauigkeit.
  6. Der Schwingkreis aus Abschnitt 45: explizit muss aufklingen, implizit beschränkt bleiben.
  7. Die Brücke implizit gegen explizit: 1,9 mV.

Die Vergleichswerte von Hand enthalten GminG_{\min}: der Simulator legt 10−910^{-9} S an jeden Knoten, und schon der Spannungsteiler zeigt dessen Wirkung in der sechsten Nachkommastelle (4,4 µV). Wer gegen die Formel ohne GminG_{\min} vergleicht, misst nicht den Simulator, sondern diese Absicht.

Ein Rundungsdetail gehört hierher, weil es die Abbruchschranken erklärt. Der Quellenknoten K5 der Netzliste hängt in der Sperrphase nur über GminG_{\min} und die gesperrten Dioden am Rest der Schaltung. Der Rundungsrest der Strombilanz (∼10−17\sim 10^{-17} A, doppelte Genauigkeit) erscheint durch diesen winzigen Leitwert als Potentialrauschen von ∼10−11\sim 10^{-11} V — die Δ\Delta-Prüfung käme mit der Schranke 10−1210^{-12} V des Kerns nie zur Ruhe (gemessen: ein Dreierzyklus um 2,6⋅10−112{,}6\cdot 10^{-11} V, 28,8 statt 3,7 Newton-Durchgänge im Mittel). Der Simulator prüft deshalb die Ströme scharf (10−1210^{-12} A) und die Potentialänderung mit 10−910^{-9} V — bei 30 V Aussteuerung eine relative Schranke von 3⋅10−113\cdot 10^{-11}, weit unter jeder Bauteiltoleranz. Der Kern behält seine 10−1210^{-12} V; er hat keinen solchen Knoten.

ANHANG

A. Die Programme

Datei Inhalt braucht
Bruecke_RC_Last_Knotenpotential.py Lehrprogramm: alles in einer Datei, Herleitung im Kopf, mit allen Prüfungen und der Schrittweitenstudie numpy, matplotlib
bruecke_kern.py derselbe Rechenweg als Objekt, Kenngrößen im Betrieb änderbar; schreibt das System in der Korrekturform, gemessen gleichwertig nur math
bruecke_dashboard.py das Dashboard nur die Standardbibliothek
gegenprobe_kern.py rechnet den Kern gegen das Lehrprogramm und gegen die reine Potentialform 𝐘𝐮=𝐢\mathbf{Y}\mathbf{u}=\mathbf{i} nach numpy
knotenmatrix_gesamt.py stellt das ganze System in einer Matrix auf — Dioden über die Tangente, Kondensator über die Integrationsformel (Abschnitt 13) numpy
knotenmatrix.py stellt 𝐘\mathbf{Y} und 𝐢\mathbf{i} aus der Zweigliste auf und weist 𝐘=𝐉\mathbf{Y} = \mathbf{J} nach (Abschnitt 12) numpy
knotenpotential_pur.py rechnet den ganzen Lauf allein mit dem Knotenpotentialverfahren und prüft, was eine eingefrorene Matrix anrichtet (11.7, 11.8) numpy
Matrix_Bild.py zeichnet die beiden Bilder zu Abschnitt 12 numpy, matplotlib
Schachtelung_Bild.py zeichnet die drei Ebenen aus Abschnitt 24 matplotlib
lineare_loeser.py vergleicht direktes Lösen mit Jacobi- und Gauß-Seidel-Verfahren an den wirklichen Arbeitspunkten (Abschnitt 26.1) numpy
schaltbild_werkzeug.py die Bauelementsymbole für alle Schaltbilder der Reihe numpy, matplotlib
Zusammenspiel_Bild.py zeichnet das Ablaufbild aus Abschnitt 4 matplotlib
vorwiderstand_studie.py die Tabelle aus Abschnitt 36.4 nur math
Bruecke_RC_Schaltbild.py zeichnet das Schaltbild matplotlib
simulator.py der Netzlisten-Simulator aus Teil XI: fünf Stempelklassen, expliziter und impliziter Euler numpy, bruecke_kern.py
simulator_abnahme.py die sieben Abnahmen aus Abschnitt 46 numpy, simulator.py, bruecke_kern.py, bruecke.netz
bruecke.netz die Brücke dieses Manuskripts als Netzliste —
bruecke_rlc.netz die Brücke mit RLC-Tiefpass und Entladewiderstand (Abschnitt 45) —

Für das Dashboard genügen bruecke_dashboard.py und bruecke_kern.py in einem Ordner. Alle Zeichenprogramme legen ihre Bilder im Nachbarordner Bilder ab und benutzen dieselben Bauelementsymbole aus schaltbild_werkzeug.py, damit die Bilder der Reihe zueinander passen.

B. Symbole

Symbol Bedeutung Einheit
uqu_q Leerlaufspannung der Quelle V
RiR_i Innenwiderstand der Quelle Ω
iqi_q Strom im Quellzweig, vierte Unbekannte A
ua,ubu_a, u_b Potentiale der Brückeneingänge V
uPu_P Potential des Brückenausgangs V
uCu_C Kondensatorspannung, Zustandsgröße V
RR Vorwiderstand zwischen Brücke und Kondensator Ω
CC Glättungskondensator F
RLR_L Lastwiderstand Ω
ISI_S Sättigungssperrstrom der Diode A
nn Emissionskoeffizient —
VTV_T Temperaturspannung V
ID(v)I_D(v) Diodenstrom nach Shockley A
gd(v)g_d(v) differentieller Leitwert der Diode S
IeqI_{eq} Ersatzstromquelle des linearisierten Zweigs A
𝐘\mathbf{Y} Knotenleitwertmatrix S
𝐢\mathbf{i} Vektor der eingeprägten Quellströme A
𝐀\mathbf{A} Inzidenzmatrix (Knoten gegen Zweige) —
gCg_C Ersatzleitwert des Kondensators, C/ΔtC/\Delta t S
gLg_L Ersatzleitwert der Spule (implizit), Δt/L\Delta t/L S
ICI_C Ersatzstromquelle des Kondensators A
𝐮\mathbf{u} Vektor der Unbekannten der Matrixgleichung V bzw. A
λ\lambda Empfindlichkeit ∂u̇C/∂uC\partial\dot u_C/\partial u_C 1/s
kk, mm Zähler über Zeitschritte bzw. Durchgänge —
𝐆d\mathbf{G}_d Diagonalmatrix der differentiellen Zweigleitwerte S
𝐅\mathbf{F} Vektor der algebraischen Gleichungen A bzw. V
𝐉\mathbf{J} Jacobi-Matrix, gleich 𝐘\mathbf{Y} S bzw. —
𝚫\boldsymbol{\Delta} Korrekturschritt des Newton-Verfahrens V bzw. A
GminG_{\min} Leitwert jedes Knotens gegen Masse S
Δt\Delta t Schrittweite der Integration s

C. Die Zahlenwerte dieses Manuskripts

Größe Wert
Amplitude, Frequenz 30 V, 50 Hz
Innenwiderstand RiR_i 1 Ω
Vorwiderstand RR 10 Ω
Glättungskondensator CC 1000 µF
Lastwiderstand RLR_L 100 Ω
Diode 1N4148: ISI_S = 2,52 nA, nn = 1,752, VTV_T = 25,852 mV
Schrittweite 10 µs
Simulationsdauer 200 ms, also 10 Perioden
GminG_{\min} 1 nS
Dämpfung 0,5 V je Newton-Schritt
Abbruchschranken 10−1210^{-12} A und 10−1210^{-12} V