Fehlerbehebung bei der Simulation
Auf einen Blick
- Erfahren Sie, wie Sie Simulationswarnungen und -fehler interpretieren und welche Hinweise sie auf die Ursache eines fehlgeschlagenen Simulationslaufs geben.
- Nutzen Sie eine Schritt-für-Schritt-Checkliste zur Behebung von Konvergenzproblemen – von der Prüfung der Verdrahtung und Masseverbindungen bis zur Anpassung erweiterter Analyseeinstellungen.
- Entdecken Sie gezielte Tipps zur Fehlerbehebung bei Arbeitspunkt-, DC-Sweep- und Transientenanalysen, damit Sie die passende Lösung für den jeweils betroffenen Simulationstyp wählen können.
Wenn sich eine Schaltung nicht simulieren lässt, müssen Sie feststellen, ob das Problem in der Schaltung oder im Simulationsprozess liegt. Befolgen Sie die Hinweise in diesem Abschnitt der Referenz und gehen Sie die vorgeschlagenen Punkte einzeln durch.
Während einer Simulation werden gelegentlich Meldungen zu Fehlern oder Warnungen angezeigt. Diese Meldungen werden im Panel Messages aufgeführt.
- Warning Messages – Warnmeldungen führen nicht zum Abbruch der Simulation. Sie informieren in der Regel über Änderungen, die SPICE an der Schaltung vornehmen musste, um die Simulation abzuschließen. Dazu gehören ungültige oder fehlende Parameter usw.
- Error Messages – Fehlermeldungen informieren über Probleme, die der Simulator nicht beheben konnte und die zum Abbruch der Simulation führten. Fehlermeldungen weisen darauf hin, dass keine Simulationsergebnisse erzeugt werden konnten. Die zugrunde liegenden Fehler müssen daher behoben werden, bevor Sie die Schaltung analysieren können.
Fehlerbehebung bei fehlgeschlagenen Simulationsanalysen
Eine der Herausforderungen aller Simulatoren ist die Konvergenz. Was genau ist mit dem Begriff convergence gemeint? Wie die meisten Simulatoren verwendet die SPICE-Engine von Altium Designer ein iteratives Verfahren, bei dem die Gleichungen, die Ihre Schaltung beschreiben, wiederholt gelöst werden, um die Spannungen und Ströme im Ruhezustand zu ermitteln. Wenn diese Spannungen und Ströme nicht ermittelt werden können (also keine Konvergenz erreicht wird), kann keine Analyse der Schaltung durchgeführt werden.
SPICE verwendet lineare Gleichungssysteme in Matrixform, um den Arbeitspunkt (Gleichspannungen und Gleichströme) einer Schaltung bei jedem Simulationsschritt zu bestimmen. Die Schaltung wird auf eine Anordnung von Leitwerten reduziert, die in die Matrix eingesetzt werden, um die Gleichungen zu bilden (G * V = I). Wenn eine Schaltung nichtlineare Elemente enthält, führt SPICE mehrere Iterationen der linearen Gleichungen durch, um die Nichtlinearitäten zu berücksichtigen. SPICE schätzt zunächst die Knotenspannungen und berechnet dann die Zweigströme anhand der Leitwerte in der Schaltung. Anschließend verwendet SPICE die Zweigströme, um die Knotenspannungen neu zu berechnen, und der Zyklus wird wiederholt. Dieser Zyklus wird fortgesetzt, bis alle Knotenspannungen und Zweigströme innerhalb der vorgegebenen Toleranzen liegen (konvergieren).
Wenn die Spannungen oder Ströme jedoch nicht innerhalb einer vorgegebenen Anzahl von Iterationen konvergieren, gibt SPICE Fehlermeldungen aus (z. B. singular matrix, Gmin stepping failed, source stepping failed oder iteration limit reached) und bricht die Simulation ab. SPICE verwendet die Ergebnisse jedes Simulationsschritts als Anfangsschätzungen für den nächsten Schritt. Wenn Sie eine Transientenanalyse durchführen (also die Zeit schrittweise fortschreiten lassen) und SPICE mit der angegebenen Zeitschrittweite keine konvergente Lösung findet, wird die Zeitschrittweite automatisch verringert und der Zyklus wiederholt. Wird die Zeitschrittweite zu stark verringert, zeigt SPICE die Meldung Timestep too small an und bricht die Simulation ab.
Allgemeine Fehlerbehebung bei Konvergenzproblemen in Simulationen
Wenn eine Simulationsanalyse fehlschlägt, liegt dies meist daran, dass die Schaltung nicht zu einem sinnvollen Arbeitspunkt konvergiert. Verwenden Sie die folgenden Verfahren, um Konvergenzprobleme zu beheben.
Schritte zur Behebung von Konvergenzproblemen
- Wenn ein Konvergenzproblem auftritt, deaktivieren Sie zunächst alle Analysen außer der Arbeitspunktanalyse.
- Prüfen Sie das Panel Messages auf Fehler und Warnungen im Zusammenhang mit der Simulation.
- Stellen Sie sicher, dass die Schaltung korrekt verdrahtet ist. Offene Knoten und nicht angeschlossene Bauteile sind nicht zulässig.
- Stellen Sie sicher, dass die Schaltung einen Masseknoten besitzt und jeder Knoten in der Schaltung einen Gleichstrompfad zu dieser Masse hat. Zu den Bauteilen, die einen Knoten isolieren können, gehören Transformatoren und Kondensatoren. Spannungsquellen werden für Gleichstrom als Kurzschluss betrachtet, Stromquellen als Unterbrechung.
- Stellen Sie sicher, dass bei der Eingabe der Simulationsparameter keine Nullen mit dem Buchstaben O verwechselt wurden.
-
Stellen Sie sicher, dass für alle Bauteilwerte und Simulationsparameter die richtigen SPICE-Multiplikatoren angegeben wurden (
MEGstattMfür1e6). Bei Multiplikatoren wird nicht zwischen Groß- und Kleinschreibung unterschieden. Außerdem sind Leerzeichen zwischen Werten und Multiplikatoren nicht zulässig. Beispielsweise muss die Angabe1.0uFlauten, nicht1.0 uF. - Stellen Sie sicher, dass für alle Bauteile und Quellen die richtigen Werte eingestellt sind.
- Stellen Sie sicher, dass die Verstärkung jeder gesteuerten Quelle korrekt eingestellt ist.
- Entfernen Sie vorübergehend in Reihe geschaltete Kondensatoren oder Stromquellen und führen Sie die Simulation erneut aus.
- Entfernen Sie vorübergehend parallel geschaltete Induktivitäten oder Spannungsquellen und führen Sie die Simulation erneut aus.
-
Erhöhen Sie auf der Registerkarte Advanced des Dialogfelds Advanced Analysis Settings (das Sie durch Klicken auf Settings im Bereich Analysis Setup & Run des Panels Simulation Dashboard öffnen) den Wert des Parameters
ITL1auf300. Dadurch kann die Arbeitspunktanalyse mehr Iterationen durchlaufen, bevor sie abgebrochen wird. -
Legen Sie auf der Registerkarte Advanced des Dialogfelds Advanced Analysis Settings den Wert von
RSHUNT1fest. Dieser Widerstandswert wird zwischen jedem Schaltungsknoten und Masse eingefügt und hilft, Probleme wie Fehler vom Typ „singuläre Matrix“ zu beheben. In der Regel muss für RSHUNT ein sehr hoher Widerstandswert eingestellt werden, beispielsweise1e12. - Fügen Sie .NS-Bauteile (Nodeset) hinzu, um die Knotenspannungen festzulegen. Wenn die Anfangsschätzung einer Knotenspannung stark abweicht, kann mit dem Nodeset-Bauteil eine Startspannung vorgegeben werden, die für einen vorläufigen Durchlauf der Arbeitspunktanalyse verwendet wird. Konfigurieren Sie den Parameter Initial Voltage in jedem platzierten Nodeset-Bauteil. Ein Nodeset kann aus der Bibliothek „Simulation Generic Components“ platziert werden.
- Wenn das Nodeset-Bauteil die Konvergenz nicht verbessert, versuchen Sie, die Anfangsbedingungen durch Platzieren von .IC-Bauteilen festzulegen. In diesem Fall werden die Knotenspannungen während der Arbeitspunktanalyse auf den angegebenen Werten gehalten und anschließend während der Transientenanalyse freigegeben. Bauteile für Anfangsbedingungen können aus denselben Bibliotheken wie Nodeset-Bauteile platziert werden. Der Parameter für die Anfangsspannung muss auf dieselbe Weise konfiguriert werden.
- Aktivieren Sie die Option Use Initial Conditions in den Einstellungen Transient im Bereich Analysis Setup & Run des Panels Simulation Dashboard. Diese Option wirkt in Verbindung mit den .IC-Bauteilen (oder dem IC-Parameter der Bauteile). Wenn diese Option aktiviert ist, wird die Arbeitspunktanalyse nicht durchgeführt, und die angegebenen Spannungen werden als Anfangsbedingungen für die Transientenanalyse verwendet.
-
Geben Sie die Serienwiderstandsparameter Ihrer Modelle an und erhöhen Sie die Option
GMIN(Registerkarte Advanced des Dialogfelds Advanced Analysis Settings) um den Faktor10. -
Legen Sie die Anfangsbedingung (Starting Condition) von Halbleiterbauteilen, insbesondere Dioden, auf
OFFfest. Dies kann helfen, numerische Konvergenzprobleme zu lösen, indem die Diode (oder das Halbleiterbauteil) bei der ersten Iteration übersprungen wird, was die Konvergenz verbessern kann.
Fehlerbehebung bei der DC-Sweep-Analyse
Wenn bei einer DC-Sweep-Analyse ein Problem auftritt, versuchen Sie zunächst die oben aufgeführten Schritte zur Behebung von Konvergenzproblemen. Falls weiterhin Probleme auftreten, versuchen Sie Folgendes:
- Ändern Sie den Wert des Parameters Step im Abschnitt Analysis Setup & Run von Simulation Dashboard. Wenn ein Bauteilmodell Unstetigkeiten aufweist (beispielsweise zwischen dem linearen Bereich und dem Sättigungsbereich des Modells), kann eine größere Schrittweite dazu führen, dass die Simulation die Unstetigkeit überspringt. Kleinere Schritte ermöglichen es der Simulation dagegen, Unstetigkeiten bei schnellen Spannungsübergängen aufzulösen.
- Verzichten Sie auf die DC-Sweep-Analyse. Manche Probleme (wie Hysterese) lassen sich mit einer Gleichstromanalyse nicht lösen. In solchen Fällen ist es effektiver, die Transientenanalyse zu verwenden und die Werte der entsprechenden Versorgungsquellen rampenförmig zu verändern.
Fehlerbehebung bei der Transientenanalyse
Wenn bei einer Transientenanalyse Probleme auftreten, versuchen Sie zunächst die oben aufgeführten Schritte zur Behebung von Konvergenzproblemen. Falls weiterhin Probleme auftreten, versuchen Sie Folgendes.
Auf der Registerkarte Advanced des Dialogfelds Advanced Analysis Settings (zum Öffnen klicken Sie im Bereich Analysis Setup & Run des Panels Simulation Dashboard auf Settings):
-
Setzen Sie den Parameter
RELTOLauf0.01. Wenn Sie die Toleranz gegenüber dem Standardwert von0.001(0,1 % Genauigkeit) erhöhen, sind weniger Iterationen erforderlich, um eine konvergente Lösung zu erreichen, und die Simulation wird deutlich schneller abgeschlossen. -
Erhöhen Sie den Wert des Parameters
ITL4auf100. Dadurch kann die Transientenanalyse für jeden Zeitschritt mehr Iterationen durchlaufen, bevor sie abgebrochen wird. Eine Erhöhung dieses Werts kann dazu beitragen,timestep too small-Fehler zu beseitigen und sowohl die Konvergenz als auch die Simulationsgeschwindigkeit zu verbessern. -
Verringern Sie die Genauigkeit, indem Sie die Werte von
ABSTOLundVNTOLerhöhen, sofern die Strom- und Spannungspegel dies zulassen. Ihre konkrete Schaltung benötigt möglicherweise keine Auflösung bis hinunter zu 1 µV oder 1 pA. Die Auflösung sollte jedoch mindestens eine Größenordnung unter den niedrigsten zu erwartenden Spannungs- oder Strompegeln Ihrer Schaltung liegen. - Ändern Sie Integration Method auf eine der Gear-Methoden. Die Gear-Integration erfordert eine längere Simulationszeit, ist jedoch im Allgemeinen stabiler als die Trapezintegration. Die Gear-Integration kann besonders bei Schaltungen hilfreich sein, die schwingen oder Rückkopplungspfade aufweisen.
Weitere mögliche Maßnahmen:
- Modellieren Sie Ihre Schaltung realistisch. Ergänzen Sie realistische parasitäre Elemente, insbesondere Streu- und Sperrschichtkapazitäten. Verwenden Sie RC-Snubber an Dioden. Ersetzen Sie Bauelementmodelle durch Teilschaltungen, insbesondere bei HF- und Leistungsbauelementen.
- Erhöhen Sie die Anstiegs- und Abfallzeiten aller periodischen Pulsquellen in Ihrer Schaltung. Selbst die besten Pulsgeneratoren können nicht verzögerungsfrei umschalten.