vorhergehende Seite nächste Seite Inhaltsangabe

20. Konvergenzprobleme beheben

Häufige Falscheingaben
Konvergenzprobleme bei der Arbeitspunktbestimmung
Konvergenzprobleme bei der Transientenanalyse

Ursachen für einen Simulationsabbruch
Die Konvergenzeinstellungen in der Registerkarte Options
Problembehebung bei idealen Spulen
Weitere Tipps zur Konvergenz (NODESET und IC)

In diesem Abschnitt lernen Sie, was Sie unternehmen können, wenn sich PSpice-Projekte nicht simulieren lassen. Probleme mit der Konvergenz können entweder schon bei der Arbeitspunktbestimmung oder während der Transientenanalyse auftreten. PSpice arbeitet für die Analyse-Arten Arbeitspunkt (BIAS POINT), Gleichspannungsanalyse (DC) und Transientenanalyse (TRAN) mit nichtlinearen Gleichungssystemen, die mit einem Iterationsverfahren nach Newton-Raphson gelöst werden. Manchmal gelingt es dem Verfahren nicht, eine Lösung zu finden. Beachten Sie auch, dass es geringe Unterschiede der Rechenverfahren zwischen den verschiedenen PSpice-Versionen gibt. Alle hier vorgestellten Ergebnisse wurden mit der PSpice-A/D-Lite-Version erzeugt. Weitere Informationen zu diesem Thema finden Sie unter pspug.pdf ab Seite 583 und unter pspcref.pdf ab Seite 57.

Häufige Falscheingaben

Eigentlich gehört dieses Thema streng genommen nicht zu den Konvergenzproblemen. Es soll hier trotzdem erwähnt sein, dass folgende Falscheingaben bei den Werteangaben von Bauteilen und anderen Eingaben zu Fehlern führen:

Es wird Komma statt Punkt verwendet, z.B. ist die Eingabe "1,8k" falsch.
Verwendung von Leerzeichen, z.B. ist die Angabe "100 kOhm" falsch.
Fehlende Masse. Dies ist der häufigste Fehler, weil ein Knoten mit dem Namen "0" fehlt.
Verwendung von Bauteile-Anschlüssen (Pins), die nicht modelliert sind.
Die Bezeichner (z.B. R3) erscheinen mehrfach durch Vervielfältigen von Bauteilen mit "Paste and Copy".

Konvergenzprobleme bei der Arbeitspunktbestimmung

Grundsätzlich muss jeder Knoten in einer Schaltung einen Gleichstrompfad zur Masse besitzen. Diese Regel schließt ein, dass im Stromlaufplan ein Masse-Knoten mit der Bezeichnung "0" vorhanden sein muss. Das nachfolgende Beispiel besteht aus einem kapazitiven Spannungsteiler. Zwischen den beiden Kondensatoren fehlt der notwendige Gleichstrompfad zur Masse:


Diese Schaltung lässt sich schon bei der Arbeitspunktbestimmung nicht simulieren (masse bzw. masse.zip).

Es erscheint dann nach versuchter Ausführung der Simulation sowohl bei der Arbeitspunktanalyse als auch bei der Transientenanalyse eine Fehlermeldung in der Out-Datei:


Am Knoten "Aus", welcher zwischen den beiden Kondensatoren liegt, tritt ein Konvergenzproblem auf, weil dieser Knoten keinen Gleichstrompfad zur Masse besitzt.

Beachten Sie dabei auch, dass vor einer Transientenanalyse eine Arbeitspunktanalyse ausgeführt wird.

Das Problem beheben Sie, indem Sie durch einen hochohmigen Widerstand dafür sorgen, dass am Knoten Aus eine Gleichstromverbindung zur Masse existiert:


Ein sehr hochohmiger Widerstand von 9.9 Tera-Ohm stellt den nötigen Gleichstrompfad  zum Knoten "0" sicher. Bei 10 Tera-Ohm erscheint allerdings eine Fehlermeldung (mitmasse oder mitmasse.zip).

Durch den Widerstand fließt dann ein Strom von weniger als 400 fA, wie es die Simulation zeigt:


Der geringe Strom durch den Widerstand R1 verfälscht das Simulationsergebnis nicht nennenswert.


Die Spannungen an der Quelle und am Knoten zwischen den beiden Kondensatoren.

Im Zuge der Arbeitspunktbestimmung müssen auch folgende Punkte beachtet werden:

Durch Stromquellen muss ein Gleichstrom fließen können.
Spannungsquellen dürfen nicht kurzgeschlossen werden, z.B. durch eine Induktivität.


Beide Schaltungen führen bei der Arbeitspunktanalyse zu Fehlermeldungen (iquq oder iquq.zip).


Die Fehlermeldungen der vorangegangenen Schaltungen.


Konvergenzprobleme bei der Transientenanalyse

Ein Hauptproblem bei der Transientenanalyse sind schnelle Strom- und Spannungssänderungen, die zu Konvergenzproblemen führen können. Erschwerend kommt hinzu, dass Sie die Rechenschrittweite nicht genau beeinflussen können. Die nachfolgend abgebildete Schaltung stellt einen Übertrager mit magnetischem Kern dar. Eine Rechteckspannungsquelle (VPULSE) steuert den Transformator an. Hohe Spannungsspitzen sind zu erwarten:


Diese Schaltung zeigt in der Transientenanalyse (TSTOP=5ms) ein vorzeitiges Konvergenzproblem (kon bzw. kon.zip).

Die Transientenanalyse dieser Schaltung soll bis 5 ms ausgeführt werden. Damit Sie bestimmte Fehlermeldungen zusätzlich zur Anzeige bringen können, sollen Sie noch für diese Übung in der Registerkarte "Options" des Simulationsprofils unter "Category: Output file" "Detailed summary and accounting information (ACCT) aktivieren:


Aktivieren Sie vor der Simulation ACCT, um sich weitere Fehlerhinweise anzeigen lassen zu können.

Führen Sie dann wie gewohnt mit der Taste F11 die Simulation aus. Es erscheint dann ein weiteres Fenster mit dem Namen "PSpice Runtime Settings". Schließen Sie dieses Fenster mit dem Knopf "Cancel":


Schließen Sie dieses Fenster mit "Cancel".

Im Hintergrund bleibt das Probe-Fenster sichtbar, welches Ihnen die OUT-Datei anzeigt, in welcher Sie die Gründe für das Konvergenzproblem erkennen können:


In der Output-Datei erfahren Sie mehr über die Fehlerursachen.

Die Output-Datei zeigt Ihnen, dass die Simulation nach 22% abgebrochen wurde und bei 1.060 ms ein Konvergenzproblem auftrat, weil versucht wurde, eine minimale Schrittweite von 745.1E-18 zu wählen, obwohl nur 5E-15 möglich wären. Außerdem erfahren Sie noch die Spannungen und Ströme, die zum Zeitpunkt des Konvergenzproblems auftreten und den Namen des Bauteils, der dafür verantwortlich zu sein scheint.

Schließen Sie nun dieses Fenster mit dem Kreuz in der rechten, oberen  Fensterecke. Es erscheint dann ein weiteres Fenster, das  Sie mit "OK" schließen:


Klicken Sie auf OK, um dieses Fenster zu schließen.

Rufen Sie dann erneut das Simulationsergebnis auf, indem Sie, wenn das Capture-Fenster im Vordergrund bzw. aktiv ist, die Taste F12 betätigen oder den nachfolgend abgebildeten Knopf in der Werkzeugleiste von Capture betätigen:


Betätigen Sie jenen Knopf, welcher sich rechts von dem blauen Dreieck in der Werkzeugleiste von Capture befindet.

Es erscheint dann in Probe die grafische Darstellung des Simulationsergebnisses:


Eine Ausschnittsdarstellung wurde im Probe-Fenster gewählt, um besser den Simulationsabbruch erkennen zu können.

Rufen Sie nun wieder die Output-Datei über den Knopf  "View Simulation Output File" auf. Dieser Knopf befindet sich in der linken Werkzeugleiste von Probe:


Nun können Sie sich weitere Fehlermeldungen anzeigen lassen. Rufen Sie dazu die Suchmöglichkeit mit der Tastaturkombination Strg+F auf und geben Sie den Suchbegriff "numttp" ein.

Da Sie ja zu Anfang der Prozedur in der Registerkarte "Options" "ACCT" aktiviert hatten, werden nun die Begriffe NUMTTP, NUMRTP und NUMNIT angezeigt, welche folgende Bedeutung haben:

NUMTTP: Die Anzahl der berechneten Zeitpunkte (als graue Pünktchen in Probe sichtbar zu machen) während der gesamten Simulationszeit.

NUMRTP: Anzahl der berechneten Punkte, deren Schrittweite im ersten Anlauf zu groß war. Die Schreitweite wurde deshalb im zweiten Anlauf um die Hälfte verkleinert. Für die Darstellung eines Kurvenverlaufs werden NUMTTP-NUMRTP+1 Punkte durch Geradenabschnitte verbunden.

NUMNIT: Anzahl aller Iterationsschritte, welche für diese Transientenanalyse notwendig waren.

In unserem Beispiel haben wir folgende Werte erhalten: NUMTTP = 39, NUMRTP = 12 und NUMNIT = 223.

Durch Verkleinern der Rechenschrittweite können Sie nun versuchen, das Konvergenzproblem zu lösen. Wenn Sie im Simulationsprofil der Transientenanalyse unter "Maximum step size" den Wert 0.05089ms eintragen, wird das Konvergenzproblem erst bei 62% oder 3.06ms auftreten. NUMTTP ist dann 113, NUMRTP = 18 und NUMNIT = 550. Wenn Sie eine maximale Schrittweite von 0.05ms wählen, läuft die Simulation bis zum Ende:


Durch Verkleinern der maximalen Rechenschrittweite auf 0.05 ms treten im Übungsbeispiel keine Konvergenzprobleme mehr auf.

Außerdem lässt sich die Schaltung mit den Grundeinstellungen simulieren, wenn sie den Vorwiderstand Rsp auf mindestens 2,803 Ohm erhöhen.

Ursachen für einen Simulationsabbruch

Konvergenzprobleme existieren nur bei der Transienten- oder DC-Analyse, denn nur bei diesen Analyseverfahren kommt die iterative Newton-Raphson-Methode zur Lösung nichtlinearer Gleichungssysteme auf komplexer Ebene zum Einsatz. AC- und Rauschanalyse sowie durch die Schaltalgebra beschriebene digitale Bausteine können daher als Ursachen für Konvergenzprobleme ausgeschlossen werden. Hohe Signalanstiegszeiten bei zu kleinen Schrittweiten bereiten dem Iterationsverfahren die größten Schwierigkeiten.

Der Quellcode des PSpice-Simulators ist in der Programmiersprache C verfasst. Für die Transientenanalyse werden die Daten im Double-Precision-Mode ermittelt. Dieses Zahlenformat stellt 15 Stellen zur Verfügung. Drei Stellen davon müssen allerdings für den Standardwert der Toleranzeinstellung RELTOL von 0.001 (0.1%) abgezogen werden, so dass nur noch 12 Stellen verbleiben. Bei 12 Stellen ergibt sich die kleinste, mögliche Schrittweite von TSTOP / 1E12.


Die Konvergenzeinstellungen in der Registerkarte Options

Dank schneller Rechner können Sie auf Kosten der Simulationszeitdauer sehr viele Konvergenzprobleme durch Verkleinern der maximalen Rechenschrittweite lösen. In der Praxis hat sich gezeigt, dass das Ausprobieren verschiedener Schrittweiten dazu führen kann, dass es der Simulation gelingt die problematische Stelle zu überwinden. Neben der Rechenschrittweite gibt es aber noch andere Konvergenzkriterien der Transientenanalyse, die Sie in der Registerkarte "Options" des Simulationsprofils verändern können:


Die Registerkarte Options. Hier können Sie die Konvergenzeinstellungen  und damit die Bedingungen für das Iterationsverfahren verändern. Sie erhöhen die Wahrscheinlichkeit, dass es eine Lösung gefunden wird, wenn Sie alle Werte vergrößern. TNOM dürfen Sie allerdings nicht verändern.

Zum Beispiel lässt sich unser vorangegangenes Übungsbeispiel auch bereits bei einer maximalen Schrittweite von 0.081 ms simulieren, wenn Sie gleichzeitig VNTOL auf 500 mV setzen und ABSTOL auf 500 mV. Dann zeigt das Ergebnis allerdings Rechenfehler auf. Das vorbereite Beispiel finden Sie in konvergenz oder als konvergenz.zip.

Nachfolgend die wichtigsten Parameter, die Sie in diesem Fenster bei Konvergenzproblemen vergrößern sollten. Weitere Auskünfte finden Sie in der pspcref.pdf ab Seite 57.

ITL4: Anzahl der zulässigen Iterationsschritte für das Newton-Raphson-Verfahren. Die Voreinstellung ist 10 und darf deutlich vergrößert werden, z.B. auf 1000. ITL4 wirkt nur bei der Transientenanalyse.

RELTOL: Die relative Toleranz von Strömen und Spannungen, welche in der Voreinstellung bei 0,1% (0.001) liegt. Sie können den Wert auf Kosten der Toleranzgenauigkeit auf bis zu 1% (0.01) erhöhen. Größere Werte bewirken zu ungenaue Ergebnisse. Je größer die zulässige Abweichung zwischen dem letzten und vorletzten Rechenschritt einer Iteration ist, desto eher kann das Rechenverfahren den ermittelten Wert als Lösung akzeptieren.

ABSTOL: Absolute Genauigkeit der Ströme. Beachten Sie, dass die Voreinstellung von 1pA bei einer Leistungselektronik mit hohen Strömen zu klein ist, da die Ströme in der Schaltung nicht größer als das 10E9-fache des Wertes von ABSTOL sein dürfen.

VNTOL: Es gilt im übertragenen Sinne das, was bei ABSTOL angemerkt wurde. Erhöhen Sie auch hier diesen Wert, wenn in Ihrer Schaltung hohe Spannungen auftreten. Erscheinen Konvergenzfehler schon im ersten Zeitschritt, sollten Sie ABSTOL und VNTOL erhöhen.

ITL1: Dieser Parameter gibt die Anzahl der Iterationsschritte für die Arbeitspunktbestimmung an. Sollte es bereits Schwierigkeiten bei der Arbeitspunktbestimmung geben, versuchen Sie ITL1 auf 600 und RELTOL auf 0.004 zu erhöhen. Zusätzlich können Sie NODESETs einsetzen.

ITL2:
Erhöhen Sie den Wert auf  300 bis 1000, wenn Probleme bei DC-Sweeps auftreten. Verwenden Sie zusätzlich kleinere Schrittweiten.

STEPGMIN: Dieser Parameter verändert schrittweise GMIN, die minimale Leitfähigkeit, welche zum Beispiel bei Schaltern eine Rolle spielt. STEPGMIN ist von Bedeutung, wenn es Probleme bei der Arbeitspunktbestimmung gibt. Siehe dazu auch in der pspug.pdf  Seite 588.

PREORDER: Diese Funktion ist in der Dokumentation leider nicht beschrieben. Sie verlangsamt den Rechenvorgang und leistet manchmal Abhilfe.

Konvergenzkriterien:

Die Spannung in einen Knoten kann nicht konvergieren, wenn der
Betrag von (v(n-1)-v(n)) > RELTOL*v(n)+VNTOL ist.

Der Strom in einem Zweig kann nicht konvergieren, wenn der
Betrag von (I(n-1)-I(n)) > RELTOL*I(n)+ABSTOL ist.

Problembehebung bei idealen Spulen

Da Spulen (L) in PSpice ideal sind, besitzen diese auch keine Dämpfung, was bei Schaltvorgängen zu Überschwingeffekten führen kann, wie es die nachfolgende Schaltung mit dem selbstsperrenden N-Kanal-MOS-FET IRF150 demonstriert:


An der nur mit 100 Meg-Ohm bedämpften Spule kommt es zum Überschwingen (puls bzw. puls.zip). Eine vorbereitete Schaltung zur Erzeugung des Ausgangangkennlinienfelds des IR150 finden Sie hier vorbereitet.

Die Rechteckspannungsquelle V1 (VPULSE) steuert den selbstsperrenden MOSFET an. An der Spule mit R1 kaum bedämpften Induktivität L1 treten Überschwingungseffekte auf, die in Probe zu erkennen sind:


Die Schwingungspakete verschwinden, wenn Sie die Spule stärker bedämpfen und dazu R1 auf z.B. 1 kOhm reduzieren.

Dieses Überschwingen kann je nach Frequenz zu Konvergenzproblemen führen und kostet durch die Vielzahl der zu berechnenden Punke auf jeden Fall Rechenzeit.

Beachten Sie in diesem Zusammenhang auch, dass bei MOSFET-Modellen auch die Sperrschichtkapazitäten und andere kapazitive Effekte tatsächlich berücksichtigt wurden, da sonst Konvergenzprobleme auftreten können. Es ist empfehlenswert, verdächtige Modelle in einer Testschaltung einzeln zu überprüfen. Wenn umfangreiche Schaltungen nicht laufen, sollten Sie Teilschaltungen davon simulieren.


Weitere Tipps zur Konvergenz (NODESET und IC)

NODESETs: Ein Iterationsverfahren benötigt immer Anfangswerte, die PSpice sehr ungünstig wählen könnte. Mit NODESETs, die Sie in der special.olb finden, können Sie bei Arbeitspunktproblemen diese Symbole an Knoten setzen, um diesen andere Spannungen zu vergeben. Diese Maßnahme ändert nur die Startbedingungen für das Rechenverfahren und verändert nicht das Ergebnis.

IC: Mit IC (Initial Condition) können Sie zum Anfangszeitpunkt (t=0) Kondensatoren eine Vorspannung oder Induktivitäten einen Vorstrom vergeben. Diese Maßnahme verändert allerdings im Gegensatz zu NODESETs das Simulationsergebnis. Die Maßnahme kann helfen, bei schwingenden Systemen den Arbeitspunkt schneller zu finden.

Um ein Bauteil ein IC zu vergeben, klicken Sie doppelt auf dieses, um den Eigenschaften-Editor zu öffnen. In der Spalte IC tragen Sie dann den IC ein. Bei Kapazitäten handelt es sich um eine Spannung und bei Induktivitäten um einen Strom.


Tragen Sie in die Spalte IC des Eigenschaften-Fensters die Anfangsspannung des Kondensators ein. Entsprechend können Sie einer Induktivität einen Anfangsstrom vergeben.

Die nachfolgende Schaltung demonstriert, dass der Kondensator am Anfang der Transienten-Analyse auf 10 Volt aufgeladen ist und sich dann über den Widerstand entlädt:


Diese Schaltung kommt ohne zusätzliche Spannungsquelle aus, da der Kondensator am Anfang der Simulation eine Spannung besitzt, die zu Beginn der Simulation über R1 abgebaut wird. Am Pin 1 des Kondensators befindet sich der Plus-Pol. (ic oder ic.zip).

Weiter zum nächsten Abschnitt.