
Ein Blick in die Admittanzmatrix – BambooGrid-Serie Teil 3


Wenn eine Lastflussberechnung abgeschlossen ist, wirkt das Ergebnis auf den ersten Blick erstaunlich einfach: Knotenspannungen, Phasenwinkel, Leitungsflüsse, Transformatorauslastung.
Was zwischen dem Netzdiagramm und diesen Zahlen passiert, ist deutlich interessanter.
Bevor Newton–Raphson überhaupt etwas lösen kann, muss das elektrische Netz zunächst in ein mathematisches Modell übersetzt werden. Leitungen, Transformatoren, Impedanzen, Shunts und elektrische Verbindungen werden zur Knotenadmittanzmatrix, kurz Ybus, zusammengesetzt. Diese Matrix beschreibt, wie jeder Knoten elektrisch mit jedem anderen Knoten verbunden ist und wie stark sich die Knoten gegenseitig beeinflussen.
Anschließend kombiniert der Solver Ybus mit den Betriebsbedingungen des Netzes: Lasten nehmen Wirk- und Blindleistung auf, Generatoren speisen Leistung ein, einige Knoten halten ihre Spannung, und ein Knoten dient als Referenz für das gesamte System. Von dort aus passt Newton–Raphson die unbekannten Knotenspannungen wiederholt an, bis die aus diesen Spannungen berechnete Leistung mit der vorgegebenen Leistung übereinstimmt.
Als Gleichung geschrieben klingt das abstrakt. In einem kleinen Netz lässt sich der gesamte Ablauf jedoch beinahe Zeile für Zeile nachvollziehen.
In diesem Artikel verwenden wir dasselbe Zwei-Knoten-Netz aus BambooGrid wie in Teil 2 und öffnen den Solver Schicht für Schicht. Wir werden:
- die Admittanzmatrix aus den Transformatorparametern aufbauen;
- sehen, was Diagonal- und Nebendiagonalelemente tatsächlich bedeuten;
- erklären, warum eine Phasenverschiebung des Transformators Ybus asymmetrisch macht;
- Slack-, PV- und PQ-Knotentypen mit den Variablen verbinden, die Newton–Raphson tatsächlich berechnet;
- Mismatch, Jacobi-Matrix und Spannungskorrektur über einzelne Iterationen verfolgen;
- und sehen, warum dasselbe gültige Netz von einem Startpunkt aus in drei Iterationen konvergiert und von einem anderen aus vollständig scheitern kann.
Ziel ist nicht, jede Gleichung eines produktionsreifen Lastflusssolvers nachzubauen. Es geht darum, die entscheidenden Bausteine so sichtbar zu machen, dass sich ein Klick auf Run nicht mehr so anfühlt, als würde man das Netz in eine Blackbox schicken.
Alles Folgende lässt sich direkt in BambooGrid reproduzieren – einschließlich der Admittanzmatrix selbst.
Das Netz, das wir untersuchen
Wir verwenden erneut das Netz aus Teil 2, und der Grund dafür ist ganz praktisch.
Die meisten Erklärungen zur Admittanzmatrix verwenden ein Netz, das so groß ist, dass die Matrix beschrieben werden muss, anstatt sie vollständig zu zeigen. Hier hat die Matrix nur vier Elemente. Alle vier passen gleichzeitig auf den Bildschirm, jedes davon lässt sich auf Angaben des Transformator-Typenschilds zurückführen, und es gibt keinen versteckten Teil des Netzes, den wir stillschweigend ignorieren.
Das Netz ist eine kleine Umspannstation, die einen Industriestandort versorgt:
- ein 110-kV-Knoten, an dem das externe Netz angeschlossen ist – also das starke vorgelagerte Netz, das die Spannungsreferenz vorgibt;
- ein 20-kV-Knoten mit einer Last von 5 MW + 1 MVAr und 2 MW Photovoltaik;
- dazwischen ein 25-MVA-Transformator mit 110/20 kV, ein Standardtyp mit Stufensteller in Neutralstellung.
Du kannst das Netz direkt öffnen: bamboo.kickstage.com/?s=SUI6Hdxi
Drücke Run, und die Lastflussberechnung liefert zwei Spannungen:
| Bus | VM (p.u.) | VA (degrees) |
|---|---|---|
| Bus (110 kV) | 1.000000 | 0.000000 |
| MV Bus (20 kV) | 0.994553 | −150.821554 |
Der Spannungsbetrag ist unspektakulär – etwas unter einem per unit, genau das, was man bei einem belasteten Transformator erwarten würde.
Der Winkel ist auffälliger. −150.82° ist für ein so kleines und nur leicht belastetes Netz eine enorme Phasenverschiebung. In Teil 2 haben wir gezeigt, dass die Knotenwinkel den Wirkleistungsfluss bestimmen, und 3 MW über einen 25-MVA-Transformator sollten keine Verschiebung von 150 Grad verursachen.
Also ist entweder das Ergebnis falsch, oder ein Teil des Modells trägt einen Winkel bei, der nichts mit dem eigentlichen Leistungstransfer zu tun hat.
Letzteres ist der Fall. Und die Erklärung steckt in der Admittanzmatrix – genau dorthin gehen wir als Nächstes.
Aufbau der Admittanzmatrix
Ybus beantwortet eine einzige Frage: Wenn ich die Spannung an jedem Knoten kenne, welcher Strom wird dann an jedem Knoten eingespeist?
Ausgeschrieben ist das bereits alles:
Für ein Netz mit n Knoten hat Y n Zeilen und n Spalten. Unser Netz hat jeweils zwei. Zum Mitverfolgen kannst du Study ▸ Admittance matrix… öffnen. Das Panel schwebt über dem Diagramm, anstatt es zu verdecken, sodass beim Überfahren eines Matrixelements die zugehörigen Knoten hervorgehoben werden können.
Bevor die Matrix gelesen werden kann, muss sie aufgebaut werden. Dafür sind drei Schritte nötig: die Transformatorimpedanz auf die Einheiten des Netzes beziehen, diese Impedanz in eine Admittanz umrechnen und die Admittanzen anschließend den Matrixelementen zuordnen.
Von Typenschild-Prozentwerten zur Per-Unit-Impedanz
Unser einziger Zweig ist der Transformator, daher stammt die gesamte Matrix aus seinen Typenschilddaten. Zwei Werte beschreiben seine Serienimpedanz: vk = 12 %, der Betrag der Kurzschlussimpedanz, und vkr = 0.41 %, ihr resistiver Anteil.
Prozent von was? Genau an dieser Stelle entstehen häufig Missverständnisse. Diese Prozentwerte beziehen sich auf die eigene Nennleistung des Transformators von 25 MVA. Sie beschreiben diese konkrete Maschine und nicht das Netz, in dem sie eingesetzt wird.
Eine Matrix muss jedoch einheitliche Einheiten verwenden, denn später können darin gleichzeitig Beiträge eines 25-MVA-Transformators, eines 40-MVA-Transformators und eines Kabels stehen. Deshalb werden die komponenteneigenen Prozentwerte auf eine gemeinsame Per-Unit-Basis des gesamten Netzes umgerechnet:
Es lohnt sich, kurz bei dieser Basis zu bleiben, denn sie erklärt die Größenordnung aller Zahlen, die im Folgenden auftauchen.
Dieses Netz verwendet eine 1-MVA-Basis und nicht die in Lehrbüchern häufig verwendeten 100 MVA.
Die Per-Unit-Basis von BambooGrid ist sn_mva des Netzes; standardmäßig beträgt sie 1 MVA. Im Footer des Panels steht entsprechend: „Per-unit on 1 MVA base.“ Lehrbücher verwenden sehr häufig 100 MVA. Deshalb sind alle Admittanzen in diesem Artikel 100× größer als die entsprechenden Werte eines Lehrbuchbeispiels auf 100-MVA-Basis. Wenn ein Beispiel an anderer Stelle nicht mit den hier gezeigten Zahlen übereinstimmt, sollte man zuerst die Basis prüfen und erst danach die Rechnung. Ein kleiner Vorteil der 1-MVA-Basis: Ein Mismatch in per unit und ein Mismatch in MVA haben denselben Zahlenwert, wodurch die Konvergenztoleranz später leichter zu lesen ist.
Ein kurzer Plausibilitätscheck zeigt, dass diese Per-Unit-Werte einen realen Transformator beschreiben: Auf der eigenen 25-MVA-Basis des Transformators bei 110 kV gilt Zbase = 110² / 25 = 484 Ω. 12 % davon entsprechen 58.1 Ω Reaktanz. Das ist ein völlig normaler Wert für einen 25-MVA-Transformator.
Von Impedanz zu Admittanz
Impedanz und Admittanz sind Kehrwerte voneinander. Daraus folgt etwas, das man vor den nächsten Zahlen ausdrücklich festhalten sollte: Ein stark gekoppelter Zweig hat eine kleine Impedanz und erscheint daher als große Admittanz. Große Werte in Ybus bedeuten eine starke elektrische Kopplung und nicht besonders große Komponenten.
Der Wert 208 ist also keineswegs verdächtig. Er ergibt sich aus 1 geteilt durch 0.0048 – so sieht ein fest gekoppelter Zweig aus, wenn die Basis 1 MVA beträgt.
Der Transformator trägt noch etwas Zusätzliches bei. Neben der Serienimpedanz, über die Leistung übertragen wird, gibt es einen Magnetisierungszweig: den kleinen Strom, den der Transformator allein dafür aufnimmt, seinen Kern magnetisiert zu halten – unabhängig davon, ob auf der Sekundärseite eine Last angeschlossen ist. Zwei weitere Typenschildwerte beschreiben diesen Anteil: die Eisenverluste pfe = 14 kW und der Leerlaufstrom i0 = 0.07 %. Daraus ergibt sich eine Shunt-Admittanz von 0.014 − j0.0105 p.u.
Da dieser Magnetisierungszweig im T-Ersatzschaltbild physikalisch in der Mitte der Wicklung liegt, wird er auf beide Seiten aufgeteilt: 0.0070 − j0.00525 je Seite.
Der Wert 208 ist also keineswegs verdächtig. Er ergibt sich aus 1 geteilt durch 0.0048 – so sieht ein fest gekoppelter Zweig aus, wenn die Basis 1 MVA beträgt.
Der Transformator trägt noch etwas Zusätzliches bei. Neben der Serienimpedanz, über die Leistung übertragen wird, gibt es einen Magnetisierungszweig: den kleinen Strom, den der Transformator allein dafür aufnimmt, seinen Kern magnetisiert zu halten – unabhängig davon, ob auf der Sekundärseite eine Last angeschlossen ist. Zwei weitere Typenschildwerte beschreiben diesen Anteil: die Eisenverluste pfe = 14 kW und der Leerlaufstrom i0 = 0.07 %. Daraus ergibt sich eine Shunt-Admittanz von 0.014 − j0.0105 p.u.
Da dieser Magnetisierungszweig im T-Ersatzschaltbild physikalisch in der Mitte der Wicklung liegt, wird er auf beide Seiten aufgeteilt: 0.0070 − j0.00525 je Seite.
Eintragen der Admittanzen in die Matrix
Nun kann die Matrix gefüllt werden. Dafür gibt es nur zwei Regeln.
Ein Diagonalelement Y[i,i] ist die Eigenadmittanz des Knotens i – also die Summe aller elektrischen Verbindungen, die diesen Knoten berühren. Dazu gehören jeder abgehende Zweig und jeder am Knoten angeschlossene Shunt.
Ein Nebendiagonalelement Y[i,j] ist das Negative der Admittanz, die Knoten i mit Knoten j verbindet. Sind die beiden Knoten nicht direkt verbunden, ist der Wert null.
Das Minuszeichen wirkt zunächst willkürlich, deshalb lohnt sich eine kurze Erklärung. Der Strom, der Knoten i über einen Zweig verlässt, hängt von der Spannungsdifferenz über diesem Zweig ab. Beim Ausmultiplizieren entsteht ein positiver Term mit der eigenen Spannung von Knoten i und ein negativer Term mit der Spannung des Nachbarknotens. Die Diagonale sammelt die positiven Terme, die Nebendiagonalen die negativen. Das Vorzeichen ist Buchhaltung, keine neue Physik.
Für unseren MS-Knoten besteht das Diagonalelement aus der Serienadmittanz plus der Hälfte des Magnetisierungszweigs:
Genau das zeigt auch der Viewer. Wenn du über das Element links oben fährst, steht im Footer:
Damit ist die Konstruktion vollständig. Vier Matrixelemente, und alle vier lassen sich auf vier Angaben des Typenschilds zurückführen.
Die Matrix lesen
Nachdem die Matrix aufgebaut ist, stellt sich die Frage, worauf man achten sollte.
Das Panel bietet drei Darstellungsmodi. Sie sind nicht einfach drei unterschiedliche Darstellungen derselben Information, sondern beantworten unterschiedliche Fragen.
|Y| zeigt den Betrag jedes Matrixelements auf einer türkisfarbenen, logarithmisch skalierten Farbskala. Das ist die strukturelle Ansicht: Sie zeigt, welche Knoten miteinander gekoppelt sind und wie stark. In einem realen Netz zeichnet das Muster der eingefärbten Elemente die Struktur des Netzes nach.
G zeigt den Leitwert, also den Realteil. Im Leitwert zeigen sich die Verluste.
B zeigt die Suszeptanz, also den Imaginärteil – die reaktive Kopplung. In Übertragungsnetzen dominiert sie fast vollständig, und unser Beispiel ist keine Ausnahme: −208 gegenüber +7. Dieses Verhältnis ist der numerische Ausdruck dessen, was Teil 2 bereits physikalisch gezeigt hat: Das Verhalten von Transformatoren und Leitungen ist überwiegend reaktiv.

Dieselben vier Zellen in den drei Ansichten des Viewers, dargestellt mit den Farbschemata der Anwendung. |Y| verwendet eine logarithmisch skalierte türkisfarbene Skala für die Struktur; G und B verwenden eine divergierende Skala mit Rot für positive und Blau für negative Werte. Bei G wird der entscheidende Unterschied sichtbar.

Zeilen und Spalten entsprechen den Knoten. Beim Überfahren einer Zelle werden die zugehörigen Knoten im Netzdiagramm hervorgehoben.
Eine wichtige Einschränkung zur |Y|-Ansicht bei einem so kleinen Netz.
Die Farbskala passt sich automatisch an den tatsächlich vorhandenen Wertebereich an.
In unserer 2×2-Matrix liegen alle vier Beträge innerhalb von 0.003 % voneinander – zwischen 208.3306 und 208.3361. Die Skala zieht diesen winzigen Rundungsunterschied über ihren gesamten Farbbereich auseinander. Dadurch wirkt die Diagonale stark gesättigt und die Nebendiagonale deutlich blasser, obwohl in Wirklichkeit kaum ein Unterschied besteht. In einem Netz realistischer Größe ist genau dieses Verhalten erwünscht, weil sich die Werte dort tatsächlich über mehrere Größenordnungen erstrecken können. Bei einem Zwei-Knoten-Netz sollte man dagegen eher den Zahlen sowie den G- und B-Ansichten vertrauen.
Damit kommen wir zu dem Punkt, der hier tatsächlich interessant ist.
Warum eine Phasenverschiebung Ybus asymmetrisch macht
Betrachte die beiden Nebendiagonalelemente nebeneinander:
Diese beiden Elemente beschreiben denselben Transformator. Y[0,1] ist seine Sicht vom MS-Knoten aus, Y[1,0] seine Sicht vom 110-kV-Knoten aus. Trotzdem unterscheiden sie sich – und zwar nicht nur geringfügig, sondern sogar im Vorzeichen ihres Realteils. Einer liegt bei +110, der andere bei −98.
Das wirkt zunächst alarmierend, denn Admittanzmatrizen sollen symmetrisch sein. Y[i,j] sollte Y[j,i] entsprechen. Die Begründung scheint unangreifbar: Ein Stück Kupfer leitet Strom in beide Richtungen gleich gut, also sollten beide Enden eines Zweigs ihn identisch beschreiben.
Wechsle im Panel in den Modus G, und der Unterschied wird visuell statt nur numerisch. Dieser Modus verwendet eine divergierende Farbskala – Rot für positive, Blau für negative Werte. Dadurch erscheinen die beiden Matrixelemente desselben Transformators in entgegengesetzten Farben.

Derselbe Transformator zeigt von der einen Seite +110 und von der anderen −98.
SIst das also ein Fehler?
Nein – und der Beweis steckt in dem, was beide Elemente gemeinsam haben. Ihre Beträge sind bis auf jede gezeigte Stelle identisch: 208.3306 in beiden Richtungen. Was sich unterscheidet, hat also nichts damit zu tun, wie groß die Admittanz ist. Der Unterschied liegt ausschließlich im Winkel:
Sechzig Grad. Unser Transformator gehört zur Vektorgruppe YNd5 – Sternwicklung auf der Hochspannungsseite, Dreieckwicklung auf der Niederspannungsseite – und sein shift_degree beträgt 150.
Die beiden Elemente unterscheiden sich also um genau das Doppelte der Phasenverschiebung des Transformators.
Dieser Faktor zwei ist kein Zufall. Er folgt direkt daraus, wie ein phasenverschiebender Zweig modelliert wird. Das Übersetzungsverhältnis eines Transformators ist nicht nur eine reelle Zahl, sondern eine komplexe Zahl τ = t · e^(jθ): Der Betrag t skaliert die Spannung zwischen den beiden Seiten, der Winkel θ dreht den Spannungszeiger. Eine Dreieck-Stern-Verbindung dreht den Spannungszeiger tatsächlich – bei einer YNd5-Gruppe um 150° – und genau diese Drehung steckt in θ.
Wenn man die beiden Nebendiagonalterme herleitet, erscheint das Übersetzungsverhältnis in beiden Richtungen unterschiedlich:
Die Division durch τ dreht in die eine Richtung, die Division durch das komplex Konjugierte in die andere. Die Beträge bleiben unverändert, weil |τ| = |conj(τ)|. Deshalb müssen die beiden Elemente denselben Betrag haben und sich im Winkel um 2θ unterscheiden – genau das haben wir gemessen.
Die Asymmetrie ist kein Artefakt. Die Matrix bildet korrekt ab, dass das Überqueren dieses Transformators in die eine Richtung die Spannung um +150° dreht und in die andere Richtung um −150°.
Damit löst sich auch das Rätsel vom Anfang des Artikels. Der Winkel des MS-Knotens von −150.82° war nie eine Phasenverschiebung von 150 Grad aufgrund des Leistungstransfers. Er setzt sich aus der 150°-Drehung der Vektorgruppe und zusätzlichen 0.82° tatsächlichem elektrischem Winkel zusammen, der durch die Übertragung von 3 MW über den Transformator entsteht. Das ungewöhnliche Ergebnis und die ungewöhnliche Matrix sind dieselbe Tatsache – nur aus zwei verschiedenen Perspektiven.
Warum Lehrbücher trotzdem sagen, dass Ybus symmetrisch ist
Sie liegen nicht falsch, sondern lassen nur einen Spezialfall aus. Symmetrie gilt für jeden passiven Serienzweig – Leitungen, Kabel und einfache Impedanzen. Einführende Darstellungen bauen Ybus meist ausschließlich aus Leitungen auf, und dort ist die Matrix tatsächlich immer symmetrisch. Phasenverschiebende Transformatoren sind die Ausnahme, und sie brechen die Symmetrie nur in den Nebendiagonalelementen. Deshalb sieht eine Matrix für ein reales Netz mit Dreieck-Stern-Transformator beim ersten Mal schnell wie ein Modellierungsfehler aus, obwohl sie korrekt ist.
Zwei Änderungen, die es beweisen
Das Gute an einer solchen Aussage ist, dass sie sich mit einer einzigen Feldänderung testen lässt.
Setze die Phasenverschiebung des Transformators auf 0 – also eine Yy0-Gruppe statt YNd5 – und die Matrix wird wieder lehrbuchmäßig symmetrisch.

Ein Feld, zwei Matrizen. Wird die Phasenverschiebung entfernt, zeigen beide Nebendiagonalelemente −7,1146 + 208,2091j — identisch, beide blau und nun eindeutig das Negative der Serienadmittanz, genau wie es die Regel erwarten lässt.
Beachte, was sich nicht geändert hat. Der Spannungsbetrag liegt weiterhin bei 0.994553, der Transformator überträgt dieselbe Leistung, und die Verluste sind identisch. Das Entfernen der Phasenverschiebung hat die Physik des Lastflusses nicht verändert; geändert wurde nur das Bezugssystem, in dem die Winkel angegeben werden.
Setze die Phasenverschiebung nun wieder zurück und stelle stattdessen den Tap auf −9. Dadurch wird eine andere Symmetrie gebrochen:
Die Nebendiagonalelemente haben weiterhin denselben Betrag – 240.84 in beiden Richtungen –, weil sich die Phasenverschiebung nicht geändert hat. Die Diagonalelemente, die vorher identisch waren, liegen nun jedoch bei 208 beziehungsweise 278.
Das ist die andere Hälfte des komplexen Übersetzungsverhältnisses: der Betrag t statt des Winkels θ. Eine Änderung der Tap-Position verändert das effektive Übersetzungsverhältnis, und der Term für den Knoten auf der Tap-Seite wird mit 1/t² skaliert. Neun Schritte zu je 1.5 % auf der Hochspannungsseite ergeben t = 0.865, also 1/t² = 1.336 – und 278.28 / 208.21 ergibt ebenfalls 1.336.
Die beiden Bestandteile des Transformator-Übersetzungsverhältnisses beeinflussen somit zwei unterschiedliche Symmetrien. Das ist ausgesprochen hilfreich, wenn eine Matrix auf den ersten Blick falsch aussieht:
| TRANSFORMER FEATURE | WHAT IT CHANGES IN YBUS |
|---|---|
| Phase shift θ (vector group) | Off-diagonal angles — the matrix stops being symmetric |
| Tap ratio t (tap position) | Diagonal magnitudes — the two ends stop matching |
Was der Solver tatsächlich berechnet
Wir haben nun Ybus. Wichtig ist aber ebenso genau zu verstehen, was wir damit noch nicht haben.
Ybus beschreibt das Netz. Die Matrix kennt jede Impedanz und jede Verbindung. Sie weiß jedoch nicht, dass am MS-Knoten eine Last von 5 MW angeschlossen ist oder dass das externe Netz 110 kV hält. Diese Informationen stecken nicht in der Verdrahtung, sondern in den Betriebsbedingungen.
I = Y · V ist eine Beziehung, keine Lösung. Sowohl I als auch V sind unbekannt.
Der entscheidende Punkt ist, dass wir über jeden Knoten etwas wissen – nur nicht über jeden Knoten dasselbe. Und hier liegt eine häufige Überraschung: Eine Lastflussberechnung löst nicht direkt nach Leistungsflüssen. Sie berechnet die komplexe Spannung an jedem Knoten – also Betrag und Winkel. Sobald diese Spannungen bekannt sind, ergeben sich alle Ströme, Leistungsflüsse und Auslastungen anschließend durch einfache Berechnung.
Jeder Knoten bringt also zwei Unbekannte mit. Damit das Problem lösbar ist, muss jeder Knoten gleichzeitig zwei bekannte Größen liefern. Ein Knotentyp sagt im Grunde nur aus, welche zwei der vier Größen P, Q, |V| und θ vorgegeben sind.
BambooGrid bestimmt den Knotentyp anhand der Elemente, die du an den jeweiligen Knoten angeschlossen hast.
Ein PQ-Knoten ist der häufigste Fall. Du gibst vor, wie viel Wirk- und Blindleistung verbraucht oder eingespeist wird, und der Solver berechnet die daraus resultierende Spannung. Lasten und statische Generatoren erzeugen PQ-Knoten. Auch ein Knoten ohne angeschlossene Elemente ist ein PQ-Knoten – seine vorgegebene Leistung ist dann schlicht null.
Ein PV-Knoten entsteht durch einen Generator. Statt die Blindleistung vorzugeben, definierst du die Wirkleistung und die Spannung, die die Maschine halten soll. Der Solver berechnet anschließend, wie viel Blindleistung dafür erforderlich ist. Das entspricht dem Verhalten realer Erzeugung näher: Eine Einheit wird für MW disponiert und regelt gleichzeitig ihre Klemmenspannung.
Der Slack-Knoten ist die Referenz, und jedes elektrisch zusammenhängende Teilnetz benötigt genau einen davon. Spannungsbetrag und Winkel sind dort fest vorgegeben. Dadurch bildet er den Nullpunkt, auf den alle anderen Winkel bezogen werden. Im Gegenzug sind sowohl P als auch Q an diesem Knoten unbekannt – und genau darin liegt seine Aufgabe. Verluste können vor der Berechnung nicht bekannt sein, weil sie von den Strömen abhängen, die wiederum von den Spannungen abhängen, und genau diese Spannungen sollen erst berechnet werden. Irgendetwas muss am Ende die verbleibende Leistungsdifferenz aufnehmen.
Das ist die Aufgabe des Slack-Knotens.
| BUS TYPE | ELEMENT | YOU SPECIFY | SOLVER RETURNS |
|---|---|---|---|
| Slack | External grid | |V|, θ | P, Q |
| PV | Generator | P, |V| | Q, θ |
| PQ | Load, static generator, or nothing | P, Q | |V|, θ |
In unserem Netz ist die Bilanz überschaubar.
Der 110-kV-Knoten ist der Slack-Knoten. Das externe Netz hält ihn bei 1.0 p.u. und 0°. Seine beiden Leistungswerte sind Ergebnisse. Nach der Berechnung fließen 3.0156 MW und 1.0592 MVAr aus dem Netz hinein. Die zusätzlichen 0.0156 MW gegenüber den 3 MW, die die Last netto benötigt, sind die Verluste des Transformators – sie wurden berechnet und nicht vorgegeben.
Der MS-Knoten ist ein PQ-Knoten. Die Last nimmt 5 MW + 1 MVAr auf, die Photovoltaikanlage speist 2 MW ein, und für den Solver zählt nur die Summe: eine vorgegebene Nettoeinspeisung von −3 MW und −1 MVAr.
Damit bleiben im gesamten Netz genau zwei Unbekannte: Betrag und Winkel der Spannung am MS-Knoten. Der Slack-Knoten trägt keine unbekannten Spannungsgrößen bei.
Warum die 2 MW Photovoltaik diesen Knoten nicht zu einem PV-Knoten machen
Die Photovoltaikanlage ist als sgen modelliert, also als feste Einspeisung von P und Q. Deshalb bleibt der Knoten ein PQ-Knoten, und seine Spannung fällt auf 0.9946. Ersetzt man sgen durch einen Generator, trifft man eine andere Aussage: Halte an diesem Knoten eine bestimmte Spannung und berechne, wie viel Blindleistung dafür nötig ist. Genau das passiert bei einem 2-MW-Generator, der 1.0 p.u. hält: Der Solver liefert +1.13 MVAr Blindleistung vom Generator, während die Spannung definitionsgemäß bei 1.0 liegt. Gleiche Wirkleistung, aber ein völlig anderes Blindleistungsbild. Der Knotentyp ist kein nebensächliches Modellierungsdetail; er beschreibt, welche Größe das Betriebsmittel tatsächlich regelt.
Newton–Raphson Iteration für Iteration verfolgen
Zwei Unbekannte und zwei Gleichungen. Wäre die Beziehung linear, wären wir bereits fertig.
Das ist sie nicht. Es lohnt sich deshalb genau anzusehen, wo die Nichtlinearität entsteht. Die Leistung an einem Knoten ist die Spannung multipliziert mit dem komplex Konjugierten des Stroms, und der Strom ergibt sich aus Ybus multipliziert mit der Spannung:
Die unbekannte Spannung tritt zweimal auf – einmal direkt und einmal innerhalb der Summe. Die Gleichungen sind quadratisch in der Größe, die wir berechnen wollen, und es gibt keine einfache Umformung, mit der sich V isolieren lässt.
Deshalb versuchen wir nicht mehr, die Gleichungen direkt zu lösen, sondern korrigieren eine Näherung schrittweise. Newton–Raphson verwandelt ein nicht direkt lösbares Problem in eine wiederholt beantwortbare Frage:
Wenn dies die Knotenspannungen wären, wie stark würden die daraus berechneten Leistungen von den Vorgaben abweichen?
Jede Iteration beantwortet diese Frage und reagiert darauf in vier Schritten.
Erstens: der Mismatch, also die Leistungsabweichung. Wir nehmen die aktuelle Spannungsnäherung, setzen sie in Ybus ein und berechnen daraus die Leistung an jedem Knoten. Anschließend ziehen wir die tatsächlich vorgegebene Leistung ab. Übrig bleibt der Betrag, um den unsere aktuelle Näherung die physikalischen Gleichungen verletzt. Entscheidend ist: Das Ergebnis ist eine Zahl. Wir wissen also nicht nur, dass wir falsch liegen, sondern auch, wie stark.
Zweitens: die Jacobi-Matrix. Die Größe des Fehlers allein sagt noch nicht, in welche Richtung wir die Unbekannten verändern müssen. Die Jacobi-Matrix enthält die partiellen Ableitungen ∂(P,Q)/∂(θ,|V|): also wie stark sich jeder Mismatch verändert, wenn sich eine der Unbekannten ändert. Sie wird aus Ybus und den aktuellen Spannungen aufgebaut und muss deshalb in jeder Iteration neu berechnet werden – die Sensitivität des Netzes hängt vom aktuellen Arbeitspunkt ab.
Drittens: lösen. Mit Fehler und Sensitivitäten lässt sich ein lineares Gleichungssystem lösen, das die Korrektur der unbekannten Größen liefert. Genau dieser Schritt ersetzt die schwierige nichtlineare Lösung durch eine lösbare lineare Teilaufgabe.
Viertens: aktualisieren und prüfen. Wir wenden die Korrektur an, berechnen den Mismatch erneut und prüfen, ob er klein genug ist, um abzubrechen.
In unserem Netz hat der Vektor der Unbekannten nur zwei Einträge, daher ist die Jacobi-Matrix 2×2 – klein genug, um sie vollständig darzustellen. Ausgehend von 1.0 p.u. bei −150° – woher dieser Startwinkel kommt, sehen wir im nächsten Abschnitt – laufen die Iterationen folgendermaßen ab:

Quadratische Konvergenz auf einer logarithmischen Achse. Jeder Fehler entspricht ungefähr dem Quadrat des vorherigen. Dadurch fallen die Balken auf der logarithmischen Skala in nahezu gleichmäßigen Schritten ab — und der letzte Schritt unterschreitet die Toleranz um fünf Größenordnungen.
| ITERATION | LARGEST MISMATCH (p.u.) | VM (p.u.) | VA(degrees) |
|---|---|---|---|
| 0 | 3.007 | 1.000000 | −150.000000 |
| 1 | 2.640 × 10⁻² | 0.994685 | −150.817051 |
| 2 | 4.157 × 10⁻⁶ | 0.994553 | −150.821553 |
| 3 | 1.459 × 10⁻¹³ | 0.994553 | −150.821554 |
Betrachte zuerst die Spannungsspalten. Bereits nach einer Korrektur ist das Ergebnis auf drei Dezimalstellen korrekt. Die beiden verbleibenden Iterationen dienen im Grunde nur noch dazu, dass der Solver dies numerisch bestätigt.
Interessanter ist die Mismatch-Spalte: 3 → 0.026 → 0.000004 → 0.0000000000001.
Jeder Fehler ist ungefähr das Quadrat des vorherigen. Das ist quadratische Konvergenz, eine der charakteristischen Eigenschaften des Newton–Raphson-Verfahrens: Die Anzahl korrekter Stellen verdoppelt sich ungefähr mit jeder Iteration. Deshalb sind Lastflusssolver typischerweise so konfiguriert, dass sie nach zehn oder zwanzig Iterationen abbrechen und nicht erst nach Hunderten. Ein Newton–Raphson-Verfahren, das konvergieren wird, tut dies normalerweise sehr schnell. Wenn nach zehn Iterationen keine Konvergenz erreicht ist, konvergiert es in der Regel überhaupt nicht.
Warum verhält sich unser Beispiel so gut? Die Jacobi-Matrix des ersten Schritts liefert die Erklärung:
Vergleiche sie mit Y[0,0] = 7.1216 − j208.2143. Derselbe Wert 208 dominiert, weil ∂P/∂θ weitgehend durch die Suszeptanz bestimmt wird – ebenso wie ∂Q/∂|V|. Die Matrix ist stark diagonal geprägt. Das bedeutet, dass sich die beiden Unbekannten nur wenig gegenseitig beeinflussen: Der Winkel beeinflusst vor allem die Wirkleistung, der Spannungsbetrag vor allem die Blindleistung. Das lineare Gleichungssystem ist gut konditioniert, und die erste Korrektur landet bereits nahezu exakt auf der Lösung.
Bis zur zweiten Iteration hat sich die Jacobi-Matrix kaum verändert: −206.98 und −206.13 statt −208.21 und −208.22. Ein Problem, das bereits fast konvergiert ist, verhält sich beinahe linear. Deshalb sind die letzten Schritte numerisch so günstig.
Pandapower, das dasselbe Netz vollständig berechnet, meldet ebenfalls 3 Iterationen und landet bei vm = 0.994553 und va = −150.821554. Die manuell nachvollzogene Iteration und der produktive Solver stimmen in allen dargestellten Stellen überein.
Woher kommen die Namen?
Newton beschrieb das Iterationsverfahren für Polynome; Joseph Raphson veröffentlichte 1690 die allgemeine Form. Die Anwendung auf Lastflussprobleme folgte fast drei Jahrhunderte später. Die Formulierung, mit der sich große AC-Netze auf Computern effizient berechnen ließen, wurde 1967 von William Tinney und Clifford Hart bei der Bonneville Power Administration veröffentlicht. Dieses Verfahren läuft im Kern bis heute, wenn du auf Run klickst.
Konvergenz – und warum der Startpunkt entscheidend ist
In der Beschreibung der quadratischen Konvergenz steckt eine wichtige Einschränkung: Sie gilt erst dann, wenn die Startnäherung bereits nahe genug an der Lösung liegt.
Weit entfernt von der Lösung ist die Linearisierung durch die Jacobi-Matrix keine gute Näherung der tatsächlichen Gleichungen. Ein Newton–Raphson-Schritt kann dann in einen Bereich überschießen, der noch schlechter ist als der Ausgangspunkt. Wiederholt sich das einige Male, entfernt sich die Iteration von der Lösung, anstatt sich ihr anzunähern.
Unser Netz ist gerade wegen der Phasenverschiebung von 150° ein ungewöhnlich gutes Beispiel dafür. Die Einstellung, die dieses Verhalten steuert, findest du unter Study ▸ Study settings.
init legt fest, wo der Solver startet. Ein flat Start setzt jeden Knoten auf 1.0 p.u. und 0°. Das ist die naheliegende Näherung und für die meisten Netze völlig ausreichend. Ein dc Start führt zuerst einen linearisierten DC-Lastfluss aus – schnell und zuverlässig lösbar – und verwendet dessen Winkel als Startwerte. auto, die Standardeinstellung, wählt sinnvoll automatisch; praktisch bedeutet das einen DC-Start, sobald Spannungswinkel berechnet werden. results verwendet die Ergebnisse der vorherigen Berechnung als Startpunkt. Dadurch sind erneute Berechnungen nach kleinen Änderungen besonders schnell.
In unserem Netz ist diese Wahl kein reines Performance-Detail:
| INIT | RESULT |
|---|---|
| auto (default) | Converged, 3 iterations |
| dc | Converged, 3 iterations |
| flat | Did not converge after 10 iterations |
Dasselbe Netz, dieselbe Last, derselbe Transformator. Ein Startpunkt führt in drei Iterationen zur Lösung, der andere scheitert vollständig.
Der Grund sind die 150°. Ein Flat Start setzt den MS-Knoten auf 0°, obwohl die tatsächliche Lösung bei −150.82° liegt. Der anfängliche Mismatch beträgt dadurch nicht die 3 p.u., die wir in der vorherigen Iteration gesehen haben, sondern ungefähr 386 p.u. Aus einer so weit entfernten Näherung beschreibt die Jacobi-Matrix einen völlig anderen Arbeitspunkt. Die daraus berechnete Korrektur ist nicht mehr sinnvoll, und die Iteration findet nicht zurück.
Eine DC-Initialisierung vermeidet dieses Problem, weil das linearisierte Modell, das sie löst, die Phasenverschiebungen der Zweige berücksichtigt. Dadurch beginnt die eigentliche Newton–Raphson-Berechnung bereits in der Nähe von −150°, und die erste reale Korrektur liegt fast auf der endgültigen Lösung.
Die praktische Erkenntnis gilt weit über dieses Beispiel hinaus. Wenn eine Lastflussberechnung nicht konvergiert, gibt es zwei sehr unterschiedliche Fragen, die leicht miteinander verwechselt werden.
Ist das elektrische Modell falsch – oder ist das Modell korrekt und der Solver erreicht die Lösung lediglich nicht von seinem gewählten Startpunkt aus?
Zur ersten Kategorie gehören eine falsche Impedanz, eine fehlende Verbindung, eine nicht versorgte Netzinsel oder ein Netz, das tatsächlich jenseits des Spannungskollapspunkts betrieben wird. Zur zweiten Kategorie gehört etwa ein Netz mit vielen Dreieck-Stern-Transformatoren, das bei einem Flat Start scheitert. In diesem Fall wird auch eine noch so gründliche Prüfung der Impedanzen die Ursache nicht finden.

Die übrigen Einstellungen sind seltener entscheidend, haben aber jeweils ihren Anwendungsfall.
calculate_voltage_angles sollte bei Netzen mit Transformatoren aktiviert bleiben. Wird die Option deaktiviert, zeigt der MS-Knoten −0.82° statt −150.82° an: Die durch die Vektorgruppe verursachte Drehung wird aus dem ausgegebenen Winkel entfernt. Spannungsbeträge und Leistungsflüsse bleiben unverändert. Es handelt sich also eher um eine Konvention der Winkelanzeige als um eine andere Lastflusslösung. Allerdings lassen sich bei deaktivierter Option die Winkel verschiedener Spannungsebenen nicht mehr direkt miteinander vergleichen.
tolerance_mva legt fest, wie klein der Mismatch sein muss, bevor der Solver die Berechnung als konvergiert betrachtet. Der Standardwert beträgt 1 × 10⁻⁸. Unsere Berechnung endet bei 1.5 × 10⁻¹³, also fünf Größenordnungen unterhalb der Toleranz. Das ist ein typischer Effekt quadratischer Konvergenz: Der letzte Schritt schießt weit über das notwendige Ziel hinaus. Deshalb kostet eine strengere Toleranz häufig keine zusätzliche Iteration, während eine lockerere Toleranz oft ebenfalls keine Iteration einspart.
algorithm verwendet standardmäßig Newton–Raphson, und das ist für fast jedes Netz die richtige Wahl. Alternativen sind für Spezialfälle vorgesehen: iwamoto_nr dämpft die Schrittlänge in stark belasteten Netzen nahe dem Spannungskollaps, wo ein vollständiger Newton-Schritt überschießen kann; bfsw (Backward/Forward Sweep) nutzt die Struktur rein radialer Verteilnetze; fdbx und fdxb sind Fast-Decoupled-Varianten, die eine konstante Jacobi-Matrix wiederverwenden und dadurch Genauigkeit gegen Geschwindigkeit tauschen; gs (Gauss–Seidel) ist heute vor allem historisch interessant, da es nur linear statt quadratisch konvergiert.
max_iteration lässt man am besten auf auto. Eine Erhöhung rettet eine divergierende Berechnung nur selten, denn Divergenz bedeutet nicht, dass die Berechnung einfach nur langsam ist – meist dauert das Scheitern dadurch lediglich länger.
Was sich in einem größeren Netz ändert
Bisher haben wir mit einer Matrix aus vier Elementen gearbeitet. Reale Netze erzeugen Matrizen mit Tausenden von Einträgen, und einige Eigenschaften werden erst in dieser Größenordnung wirklich sichtbar.
Die Matrix ist größtenteils leer – und genau das ist die entscheidende strukturelle Eigenschaft. Ein Knoten ist nur mit wenigen Nachbarknoten verbunden und nicht mit allen n Knoten. Deshalb sind fast alle Nebendiagonalelemente null. Der Viewer zeigt diese Elemente leer statt mit einer Null an. Dadurch zeichnen die eingefärbten Einträge direkt die Topologie des Netzes nach – häufig erkennt man die Netzstruktur bereits am Muster der Matrix. Diese Dünnbesetztheit ist zugleich der Grund, warum Lastflussberechnungen für große Netze überhaupt effizient möglich sind: Der lineare Solver innerhalb jeder Iteration nutzt diese Struktur aus, anstatt die Matrix als vollbesetzt zu behandeln.
Ab zwölf Knoten verschwinden die Zahlen aus den Matrixelementen. Für eine direkte Darstellung ist dann kein Platz mehr, und in dieser Größenordnung ist ohnehin das Muster wichtiger. Beim Überfahren eines Elements zeigt der Footer weiterhin seinen exakten komplexen Wert.
Eine Zeile entspricht nicht immer genau einem Knoten. Wird ein Bus-Bus-Schalter geschlossen, werden die beiden Knoten elektrisch zu demselben Netzknoten und teilen sich eine gemeinsame Zeile, zum Beispiel Bus 3 + Bus 4. Wird der Schalter geöffnet, teilt sich die Zeile wieder in zwei. Die Matrix bildet also den tatsächlichen Schaltzustand ab und nicht nur die gezeichnete Geometrie.
Manche Zeilen besitzen überhaupt keinen direkt gezeichneten Knoten. Ein Dreiwicklungstransformator wird intern als drei Zweige modelliert, die sich an einem Sternpunkt treffen. Dieser Sternpunkt ist ein realer elektrischer Knoten, obwohl er im Diagramm nie gezeichnet wurde. Er erscheint in der Matrix als Zeile Internal node, ohne dass im Diagramm etwas hervorgehoben werden kann. Außer Betrieb befindliche und isolierte Knoten verhalten sich umgekehrt: Sie besitzen keine eigene Zeile, und ein Hinweis im Footer zählt sie separat.
Und die Matrix ist auch verfügbar, wenn die Lastflussberechnung scheitert. Ybus hängt ausschließlich von Impedanzen und Verbindungen ab, niemals von der berechneten Lösung. Deshalb kann das Panel die Matrix auch nach einer fehlgeschlagenen Lastflussberechnung anzeigen und lediglich mit einem Hinweis auf das Scheitern versehen. Dadurch wird Ybus zu einem echten Diagnosewerkzeug und nicht nur zu einer interessanten Zwischenstruktur: Wenn ein Netz nicht konvergiert, kann die Matrix weiterhin zeigen, ob es tatsächlich so verschaltet ist, wie du glaubst.
Fazit
Ein Lastflusssolver kann kompliziert wirken, weil mehrere Konzepte meist gleichzeitig eingeführt werden: komplexe Zahlen, Per-Unit-Größen, Knotentypen, Admittanzmatrizen, nichtlineare Gleichungen, Jacobi-Matrizen und numerische Konvergenz.
Die eigentliche Kette vom Netzmodell zur Lösung ist jedoch erstaunlich systematisch.
Am Anfang stehen die physikalischen Komponenten.
Ein Transformator, eine Leitung oder eine Impedanz liefert elektrische Parameter. Diese Parameter werden in Admittanzen umgerechnet und zu Ybus zusammengesetzt. Dadurch entsteht eine kompakte mathematische Beschreibung der elektrischen Verbindungen im Netz.
Ybus allein liefert noch nicht die endgültigen Spannungen. Die Matrix beschreibt, wie Ströme und Spannungen miteinander zusammenhängen.
Anschließend geben die Knotendefinitionen die Betriebsbedingungen vor. Ein PQ-Knoten sagt dem Solver, welche Wirk- und Blindleistung vorhanden sein soll. Ein PV-Knoten legt Wirkleistung und Spannungsbetrag fest. Der Slack-Knoten verankert den Spannungswinkel und nimmt die verbleibende Leistungsdifferenz auf.
Übrig bleibt ein nichtlineares Problem.
Newton–Raphson löst es, indem wiederholt eine einfache Frage gestellt wird:
Wenn dies die Knotenspannungen wären, wie stark würden die daraus berechneten Leistungen von den Vorgaben abweichen?
Der Mismatch misst diesen Fehler.
Die Jacobi-Matrix schätzt, wie sich die Spannungen verändern müssen, um ihn zu reduzieren.
Der Solver wendet die Korrektur an und stellt dieselbe Frage erneut.
In unserem kleinen Beispiel sind dafür nur drei Korrekturen nötig.
Der Viewer der Admittanzmatrix macht außerdem einen wichtigen Punkt sichtbar: Ybus ist nicht nur eine interne Zwischenstruktur des Solvers. Die Matrix enthält reale Informationen über das Netz.
Eine Phasenverschiebung des Transformators zeigt sich als Asymmetrie zwischen den Nebendiagonalelementen.
Eine Änderung der Tap-Position verändert die Größenverhältnisse in der Matrix.
Das Öffnen oder Schließen eines Schalters verändert ihre Struktur.
Mit zusätzlichen Knoten wird aus unserem kleinen 2×2-Beispiel eine dünn besetzte Matrix, deren Muster zunehmend die Topologie des Netzes widerspiegelt.
Damit erhalten wir auch eine hilfreiche Denkweise für fehlgeschlagene Lastflussberechnungen.
Wenn eine Berechnung nicht konvergiert, müssen zwei verschiedene Fragen gestellt werden:
Ist das elektrische Modell selbst korrekt? Und kann der numerische Solver seine Lösung vom gewählten Startpunkt aus erreichen?
Ybus hilft bei der ersten Frage. Solver-Einstellungen, Initialisierung und Konvergenzverhalten helfen bei der zweiten.
Diese Unterscheidung ist weit über unser Zwei-Knoten-Beispiel hinaus nützlich.
Am besten lässt sich das erkunden, indem man das Netz absichtlich ein wenig „falsch“ macht.
- Setze die Phasenverschiebung des Transformators auf null und beobachte, wie die Matrix symmetrisch wird.
- Verändere die Tap-Position und beobachte, wie sich die Diagonalwerte voneinander entfernen.
- Öffne eine Verbindung und beobachte, wie sich die Topologie verändert.
- Wechsle von einer DC-Initialisierung zu einem Flat Start und beobachte, wie ein Netz, das normalerweise in drei Iterationen konvergiert, plötzlich scheitert.
- Sobald diese Zusammenhänge sichtbar werden, wirkt der Lastflusssolver nicht mehr wie eine Blackbox.
Er wird zu dem, was er tatsächlich ist: eine mathematische Übersetzung des gezeichneten Netzes, gefolgt von einer iterativen Suche nach genau den Spannungen, mit denen dieses Netz die Leistungsgleichungen erfüllt.
Wie ein Stromnetz aus einer Vielzahl verrauschter, redundanter Messwerte ein einheitliches und verlässliches Bild seines Zustands erzeugt – live beobachtet an einem realen Netzmodell.

