Fehlerbehebung bei der Simulation
Wenn sich eine Schaltung nicht simulieren lässt, müssen Sie feststellen, ob das Problem in der Schaltung oder im Simulationsprozess liegt. Folgen Sie den Informationen in diesem Abschnitt der Referenz und arbeiten Sie die vorgeschlagenen Punkte nacheinander durch.
Manchmal wird während einer Simulation eine Meldung angezeigt, die Fehler oder Warnungen meldet. Diese Meldungen sind im Messages Bereich aufgeführt.
- Warning Messages – Warnmeldungen sind für die Simulation nicht fatal. Sie liefern im Allgemeinen Informationen ü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 liefern Informationen über Probleme, die der Simulator nicht beheben konnte und die für den Simulationsprozess fatal waren. Fehlermeldungen zeigen an, dass keine Simulationsergebnisse erzeugt werden konnten; sie müssen daher korrigiert werden, bevor Sie die Schaltung analysieren können.
Fehlersuche bei fehlgeschlagener Simulationsanalyse
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 einen iterativen Prozess, bei dem die Gleichungen, die Ihre Schaltung beschreiben, wiederholt gelöst werden, um die stationären Schaltungsspannungen und -ströme zu finden. Wenn diese Spannungen und Ströme nicht gefunden werden können (keine Konvergenz erreicht wird), kann keine Analyse der Schaltung durchgeführt werden.
SPICE verwendet simultane lineare Gleichungen in Matrixform, um bei jedem Simulationsschritt den Arbeitspunkt (DC-Spannungen und -Ströme) einer Schaltung zu bestimmen. Die Schaltung wird auf ein Array von Leitwerten reduziert, die in die Matrix eingesetzt werden, um die Gleichungen zu bilden (G * V = I). Wenn eine Schaltung nichtlineare Elemente enthält, verwendet SPICE mehrere Iterationen der linearen Gleichungen, um die Nichtlinearitäten zu berücksichtigen. SPICE erstellt zunächst eine Anfangsschätzung der Knotenspannungen und berechnet dann anhand der Leitwerte in der Schaltung die Zweigströme. 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 angegebenen Toleranzen liegen (konvergieren).
Wenn die Spannungen oder Ströme jedoch nicht innerhalb einer festgelegten Anzahl von Iterationen konvergieren, erzeugt SPICE Fehlermeldungen (wie 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 (das heißt, die Zeit wird schrittweise erhöht) und SPICE mit dem angegebenen Zeitschritt keine Lösung finden kann, wird der Zeitschritt automatisch verkleinert und der Zyklus wiederholt. Wird der Zeitschritt zu stark verkleinert, zeigt SPICE eine Meldung Timestep too small an und bricht die Simulation ab.
Allgemeine Fehlersuche bei Simulationskonvergenz
Wenn eine Simulationsanalyse fehlschlägt, ist das häufigste Problem, dass die Schaltung nicht zu einem sinnvollen Arbeitspunkt konvergiert. Verwenden Sie die folgenden Techniken, um Konvergenzprobleme zu lösen.
Schritte zur Fehlersuche bei Konvergenz
- Wenn ein Konvergenzproblem auftritt, schalten Sie zunächst alle Analysen außer der Arbeitspunktanalyse aus.
- Prüfen Sie den Messages Bereich auf Fehler/Warnungen im Zusammenhang mit der Simulation.
- Stellen Sie sicher, dass die Schaltung korrekt verdrahtet ist. Freihängende Knoten und verirrte Bauteile sind nicht zulässig.
- Stellen Sie sicher, dass die Schaltung einen Masseknoten hat und dass jeder Knoten in der Schaltung einen DC-Pfad zu dieser Masse besitzt. Bauteile, die einen Knoten isolieren können, sind unter anderem Transformatoren und Kondensatoren. Spannungsquellen werden als DC-Kurzschluss betrachtet, Stromquellen als DC-Leerlauf.
- Stellen Sie sicher, dass bei der Eingabe von Simulationsparametern Nullen nicht mit dem Buchstaben O verwechselt wurden.
-
Stellen Sie sicher, dass für Bauteilwerte oder Simulationsparameter die korrekten SPICE-Multiplikatoren angegeben wurden (
MEGstattMfür1e6). Multiplikatoren unterscheiden nicht zwischen Groß- und Kleinschreibung. Außerdem sind Leerzeichen zwischen Werten und Multiplikatoren nicht zulässig. Zum Beispiel muss es1.0uFheißen, nicht1.0 uF. - Stellen Sie sicher, dass alle Bauelemente und Quellen auf ihre korrekten Werte eingestellt sind.
- Stellen Sie sicher, dass die Verstärkung jeder abhängigen Quelle korrekt eingestellt ist.
- Entfernen Sie vorübergehend Serienkondensatoren oder Stromquellen und führen Sie die Simulation erneut aus.
- Entfernen Sie vorübergehend Parallelinduktivitäten oder Spannungsquellen und führen Sie die Simulation erneut aus.
-
Erhöhen Sie auf der Registerkarte Advanced des Dialogs Advanced Analysis Settings (aufgerufen durch Klicken auf Settings im Bereich Analysis Setup & Run des Fensters Simulation Dashboard) den Wert des Parameters
ITL1auf300. Dadurch kann die Arbeitspunktanalyse mehr Iterationen durchlaufen, bevor sie abbricht. -
Setzen Sie auf der Registerkarte Advanced des Dialogs Advanced Analysis Settings den Wert von
RSHUNT1. Dieser Widerstandswert wird zwischen jedem Schaltungsknoten und Masse hinzugefügt und hilft, Probleme wie Fehler vom Typ „singular matrix“ zu beheben. In der Regel muss der RSHUNT-Wert auf einen sehr hohen Widerstand gesetzt werden, z. B.1e12. - Fügen Sie .NS-(Nodeset-)Bauelemente hinzu, um die Knotenspannungen zu definieren. Wenn die Anfangsschätzung einer Knotenspannung stark abweicht, kann das Nodeset-Bauelement verwendet werden, um eine Startspannung vorzugeben, die für einen vorläufigen Durchlauf der Arbeitspunktanalyse verwendet wird. Konfigurieren Sie den Parameter Initial Voltage in jedem Nodeset-Bauelement, das Sie platzieren. Ein Nodeset kann aus der Bibliothek Simulation Generic Components platziert werden.
- Wenn das Nodeset-Bauelement die Konvergenz nicht unterstützt, versuchen Sie, die Anfangsbedingungen durch Platzieren von .IC-Bauelementen zu definieren. In diesem Fall werden die Knotenspannungen während der Arbeitspunktanalyse auf den angegebenen Werten gehalten und dann während der Transientenanalyse freigegeben. Initial-Condition-Bauelemente können aus denselben Bibliotheken wie ein Nodeset-Bauelement platziert werden; der Parameter Initial Voltage muss auf dieselbe Weise konfiguriert werden.
- Aktivieren Sie die Option Use Initial Conditions in den Einstellungen Transient im Bereich Analysis Setup & Run des Fensters Simulation Dashboard . Diese Option arbeitet zusammen mit den .IC-Bauelementen (oder dem IC-Parameter der Bauteile). Wenn diese Option gesetzt 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 Dialogs Advanced Analysis Settings) um den Faktor10. -
Geben Sie die Anfangsbedingung (Starting Condition) von Halbleiterbauelementen, insbesondere Dioden, als
OFFan. Dies kann helfen, numerische Konvergenzprobleme zu lösen, indem die Diode (oder das Halbleiterbauelement) in der ersten Iteration übersprungen wird, was die Konvergenz verbessern kann.
Fehlersuche bei der DC-Sweep-AnalyseWenn Sie ein Problem mit einer DC-Sweep-Analyse haben, versuchen Sie zunächst die oben in den Schritten zur Konvergenz-Fehlersuche aufgeführten Maßnahmen. Wenn weiterhin Probleme auftreten, versuchen Sie Folgendes:
-
Ändern Sie den Wert des Parameters Step im Abschnitt Analysis Setup & Run von Simulation Dashboard. Wenn in einem Bauteilmodell Unstetigkeiten vorhanden sind (möglicherweise zwischen den linearen und den Sättigungsbereichen des Modells), kann eine Vergrößerung der Schrittweite es der Simulation ermöglichen, über die Unstetigkeit hinwegzugehen. Kleinere Schritte hingegen ermöglichen es der Simulation, schnelle Spannungsübergangs-Unstetigkeiten aufzulösen.
-
Verwenden Sie keine DC-Sweep-Analyse. Manche Probleme (wie Hysterese) können durch eine DC-Analyse nicht gelöst werden. In solchen Fällen ist es effektiver, die Transientenanalyse zu verwenden und die Werte der entsprechenden Versorgungsquellen hochzufahren.
Fehlersuche bei der Transientenanalyse
Wenn Sie ein Problem mit einer Transientenanalyse haben, versuchen Sie zunächst die oben in den Schritten zur Konvergenz-Fehlersuche aufgeführten Maßnahmen. Wenn weiterhin Probleme auftreten, versuchen Sie Folgendes.
Auf der Registerkarte Advanced des Dialogs Advanced Analysis Settings (aufgerufen durch Klicken auf Settings im Bereich Analysis Setup & Run des Fensters Simulation Dashboard):
-
Setzen Sie den Parameter
RELTOL auf 0.01. Durch Erhöhen der Toleranz gegenüber dem Standardwert 0.001 (0,1 % Genauigkeit) sind weniger Iterationen erforderlich, um zu einer Lösung zu konvergieren, und die Simulation wird deutlich schneller abgeschlossen.
-
Erhöhen Sie den Wert des Parameters
ITL4 auf 100. Dadurch kann die Transientenanalyse für jeden Zeitschritt mehr Iterationen durchlaufen, bevor sie abbricht. Das Erhöhen dieses Werts kann helfen, Fehler vom Typ timestep too small zu beseitigen und sowohl die Konvergenz als auch die Simulationsgeschwindigkeit zu verbessern.
-
Reduzieren Sie die Genauigkeit, indem Sie die Werte von
ABSTOL und VNTOL erhöhen, sofern Strom-/Spannungspegel dies zulassen. Ihre konkrete Schaltung benötigt möglicherweise keine Auflösungen bis hinunter zu 1uV oder 1pA. Sie sollten jedoch mindestens eine Größenordnung unterhalb der niedrigsten erwarteten Spannungs- oder Strompegel Ihrer Schaltung bleiben.
-
Ändern Sie Integration Method auf eine der Methoden Gear. Die Gear-Integration erfordert eine längere Simulationszeit, ist aber im Allgemeinen stabiler als die Trapezregel. Die Gear-Integration kann besonders bei Schaltungen nützlich sein, die schwingen oder Rückkopplungspfade haben.
Weitere Dinge, die Sie ausprobieren können:
-
Modellieren Sie Ihre Schaltung realistisch. Fügen Sie realistische parasitäre Elemente hinzu, insbesondere Streu-/Übergangskapazitäten. Verwenden Sie RC-Snubber um Dioden herum. Ersetzen Sie Bauteilmodelle durch Subcircuits, insbesondere bei HF- und Leistungsbauelementen.
-
Erhöhen Sie die Anstiegs-/Abfallzeiten aller Periodic-Pulse-Quellen in Ihrer Schaltung. Selbst die besten Pulsgeneratoren können nicht augenblicklich schalten.
- Ändern Sie den Wert des Parameters Step im Abschnitt Analysis Setup & Run von Simulation Dashboard. Wenn in einem Bauteilmodell Unstetigkeiten vorhanden sind (möglicherweise zwischen den linearen und den Sättigungsbereichen des Modells), kann eine Vergrößerung der Schrittweite es der Simulation ermöglichen, über die Unstetigkeit hinwegzugehen. Kleinere Schritte hingegen ermöglichen es der Simulation, schnelle Spannungsübergangs-Unstetigkeiten aufzulösen.
- Verwenden Sie keine DC-Sweep-Analyse. Manche Probleme (wie Hysterese) können durch eine DC-Analyse nicht gelöst werden. In solchen Fällen ist es effektiver, die Transientenanalyse zu verwenden und die Werte der entsprechenden Versorgungsquellen hochzufahren.
Fehlersuche bei der Transientenanalyse
Wenn Sie ein Problem mit einer Transientenanalyse haben, versuchen Sie zunächst die oben in den Schritten zur Konvergenz-Fehlersuche aufgeführten Maßnahmen. Wenn weiterhin Probleme auftreten, versuchen Sie Folgendes.
Auf der Registerkarte Advanced des Dialogs Advanced Analysis Settings (aufgerufen durch Klicken auf Settings im Bereich Analysis Setup & Run des Fensters Simulation Dashboard):
-
Setzen Sie den Parameter
RELTOLauf0.01. Durch Erhöhen der Toleranz gegenüber dem Standardwert0.001(0,1 % Genauigkeit) sind weniger Iterationen erforderlich, um zu einer Lösung zu konvergieren, 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 abbricht. Das Erhöhen dieses Werts kann helfen, Fehler vom Typtimestep too smallzu beseitigen und sowohl die Konvergenz als auch die Simulationsgeschwindigkeit zu verbessern. -
Reduzieren Sie die Genauigkeit, indem Sie die Werte von
ABSTOLundVNTOLerhöhen, sofern Strom-/Spannungspegel dies zulassen. Ihre konkrete Schaltung benötigt möglicherweise keine Auflösungen bis hinunter zu 1uV oder 1pA. Sie sollten jedoch mindestens eine Größenordnung unterhalb der niedrigsten erwarteten Spannungs- oder Strompegel Ihrer Schaltung bleiben. - Ändern Sie Integration Method auf eine der Methoden Gear. Die Gear-Integration erfordert eine längere Simulationszeit, ist aber im Allgemeinen stabiler als die Trapezregel. Die Gear-Integration kann besonders bei Schaltungen nützlich sein, die schwingen oder Rückkopplungspfade haben.
Weitere Dinge, die Sie ausprobieren können:
- Modellieren Sie Ihre Schaltung realistisch. Fügen Sie realistische parasitäre Elemente hinzu, insbesondere Streu-/Übergangskapazitäten. Verwenden Sie RC-Snubber um Dioden herum. Ersetzen Sie Bauteilmodelle durch Subcircuits, insbesondere bei HF- und Leistungsbauelementen.
- Erhöhen Sie die Anstiegs-/Abfallzeiten aller Periodic-Pulse-Quellen in Ihrer Schaltung. Selbst die besten Pulsgeneratoren können nicht augenblicklich schalten.