Wie lässt sich nachvollziehen, warum die LTSpice-Simulation langsam ist?

Ich habe einen ziemlich komplizierten Schaltplan in LTSpice (zumindest ist es der komplizierteste Schaltplan, den ich je versucht habe, in LTSpice zu simulieren).

Aus irgendeinem Grund wird die Simulation von nur 20 ms zu etwa 15 Sekunden.

Ich habe mehrere Theorien:

  1. Der Schaltplan ist kompliziert, der Computer ist langsam (er ist wirklich nicht sehr leistungsfähig), also kann ich nichts schnelleres erwarten.
  2. Ich habe einige Probleme im Schaltplan, der LTSpice verwendet, um die Iterationen zu verkürzen und damit den Simulationsprozess zu verlangsamen.

Wenn ich den ersten überspringen würde, wie kann ich den problematischen Teil des Schaltplans nachverfolgen?

Ich habe es versucht:

  • Schneiden Sie einige verdächtige Teile des Schaltplans aus, um zu bestimmen, ob die Simulation einigermaßen schnell wurde (hat nicht geholfen - die Simulationszeit variiert zwischen etwa 10 und 20 Sekunden).
  • Anfangsbedingungen festlegen, um Kondensatoren auf beabsichtigte Spannungen zu "laden" (es half, da ich die Simulationszeit verkürzen konnte: 20 ms statt 100-200 ms)
  • Ich habe den maximalen Zeitschritt als 1 uns definiert:Geben Sie hier die Bildbeschreibung ein

  • Ich habe 10 MOhm Widerstände zwischen Optos und Masse gelegt

Gibt es eine Methode, um einen Problemknoten zu finden?

Ich denke, dass ich die Community nicht bitten werde, das Problem für mich zu finden, da ich es besser lernen sollte, es selbst zu tun. Deshalb habe ich meinen Schaltplan nicht in die Frage gestellt.

Sie haben eine ziemlich komplexe Schaltung. Kannst du die drei Teile ohne Probleme alleine simulieren? Hilft es, Optokoppler durch abhängige Stromquellen zu ersetzen? Hilft es, V5 nicht zu floaten?
Sie laufen also mit einer Geschwindigkeit von 1,3 ms/s? Das ist ziemlich schnell für nichttriviale Sachen. Meine aktuelle Simulation läuft mit 15 µs/s und dauert drei Stunden. Eine Bearbeitungszeit von 20 Sekunden zu haben, ist ziemlich in Ordnung.
@winny, Alle Teilschaltungen sind bereits für sich simuliert. Aber der Schaltplan ist nicht so einfach, also wollte ich sehen, wie alles zusammenarbeitet. Ich werde prüfen, ob Optos langsamer werden. Bezüglich V5: Ich würde nicht sagen, dass es wirklich flüssig ist. Was meinst du mit "schweben"?
@winny, ohne Optos-Simulation ist ein Drittel schneller (11 Sekunden statt 15).
V5: Es wird von zwei Induktoren "blockiert". Manchmal hilft es, 1 oder 10 MOhm an Masse zu geben. Was ist mit dem MOV-Stapel (D37)?
Ich werde versuchen, V5 an das Netzwerk zu binden. D37 ist ein Lawinen-TVS, was ist los mit ihnen?
Können Sie die Anzahl der TVS reduzieren oder Ihre eigenen mit der richtigen Nennspannung bauen, um nur einen zu verwenden?

Antworten (2)

Das Auferlegen eines Zeitschritts macht es nicht schneller, und wenn Sie Geschwindigkeit und Genauigkeit benötigen, ist das leider nicht sehr gut möglich.

Es gibt einige TVS in Serie, ziemlich viele davon, die durch einen TVS mit n=X(= der Anzahl der Serienelemente) ersetzt werden können. Wenn wir schon dabei sind, m=Ywird die Anzahl der parallelen Geräte eingestellt. Beachten Sie, dass dies nur für s mgilt , nur für Dioden. Dies kann einfach nach dem Instanznamen hinzugefügt werden. Zum Beispiel sehen zwei Reihen- und drei parallele 4148er so aus . Sie werden nicht auf die endgültige Anzahl der Knoten angerechnet, da sie intern erweitert werden, aber sie werden auf die Berechnung angerechnet, da LTspice immer noch das Vorhandensein von 6 Dioden berechnen muss.RLCn1N4148 n=2 m=3

Wenn das Floating V5ein störendes Element ist (was sein könnte, da LTspice in seinem Handbuch sogar angibt, dass Stromquellen gegenüber ihren Spannungsgegenstücken empfohlen werden und Spannungsquellen für beste Leistung an Masse gebunden werden sollten), ist die Heilung einfach: Hinzufügen Rser=1m. Dadurch wird die Spannungsquelle auch intern in ihr Norton-Äquivalent umgewandelt, wodurch die Konvergenz verbessert wird.

Sie können auch Serien RLmit kombinieren L Rser=x, gleiche für Kappen, gleiche für Parallel- und/oder Serienkombinationen. Gleiche Erklärung wie beim TVS.

Was die Einstellungen betrifft, sind Sie besser dran trtol=3..7als die anderen. Abhängig von Ihrer Hardware und Ihrem Schema wird es eine (geringfügige, -ish) Beschleunigung geben, während die Präzision nicht so viel Einfluss hat wie gmin, reltolund abstolhaben.

Es gibt noch eine Sache, die mich verwirrt: In einem der Kommentare schlägt jemand vor, Stromquellen anstelle von Optokopplern zu verwenden, und Sie sagen, Sie hätten es versucht. LCDies lässt mich denken, dass Genauigkeit oder das Beibehalten eines quasi-realen Setups für Sie nicht so wichtig ist, was bedeutet, dass Sie den Filter danach V5in seinen einfachen Tiefpass vereinfachen könnten (dh ihn nicht zu einem LCsymmetrischen Filter machen), aber die größte Vereinfachung kann mit der gesamten Brücke und ihrer Steuerschaltung durchgeführt werden: Sie können einfach einige G(oder E) Quellen verwenden, die den nativen Schalter ansteuern SW. Möglicherweise SWbenötigen Sie einige antiparallele Dioden. Apropos, Sie können die Dioden auch durch die idealisierte Version mit .model D D Vfwd=0.7 Vrev=1k Ron=0.1 Roff=10Meg epsilon=100m revepsilon=50m, oder ersetzenVfwd=0.5für Shottky. Ich sehe zwei antiparallele Dioden, diese könnten durch nur eine Diode mit ersetzt werden Vfwd=Vrev. Zener auch mit Vrev=X. All dies impliziert natürlich die Verwendung eines idealisierten oder verhaltensbasierten Ansatzes für alle Ihre Schaltpläne, und obwohl dies sehr plausibel ist und für schnelle Tests verwendet wird, sollten Sie nicht vergessen, dass die Kehrseite die unrealistischen Ergebnisse sind, selbst wenn sie mit großer Sorgfalt modelliert werden. Sie könnten gute Ergebnisse erzielen, aber Sie sollten sich nicht darauf verlassen, da selbst ein mit "echten" Elementen erstellter Schaltplan nur eine SPICE-Simulation mit Modellen ist, die selbst eine Annäherung an reale Fälle darstellen. Letztendlich liegt es natürlich an Ihnen, Ihren Weg zu wählen.

Dies ist eine großartige Antwort! Danke! In Bezug auf die Stromquellen: Eigentlich habe ich nicht genau das versucht, was vorgeschlagen wurde, ich habe die Optos mit Kurzschlüssen anstelle von Dioden entfernt und anstelle von Ausgängen geöffnet, um zu testen, ob diese Vereinfachung zu einer Geschwindigkeitssteigerung führt. Ich bin nicht wirklich auf die hohe Genauigkeit ausgerichtet, ich muss nur sicher sein, dass der Schaltplan funktioniert (Werte werden während realer Tests angepasst).

Ich hatte das Glück, die Lösung zu finden , die mir im Moment geholfen hat.

Also habe ich die Spice-Einstellungen in den Extras -> Systemsteuerung -> SPICE wie folgt geändert:

Geben Sie hier die Bildbeschreibung ein

So habe ich jetzt eine Simulationszeit von nur 1 Sekunde statt 15.

Ich bin mir jedoch der Reduzierung der Simulationstoleranz bewusst. Ich hoffe, dass ich danach keine Probleme habe. Bitte kommentieren, wenn jemand eine Meinung dazu hat.

Das Auferlegen eines Zeitschritts macht es nicht schneller, aber die wahre Frage ist, was Sie brauchen: Geschwindigkeit oder Genauigkeit? Wenn es beides ist, habe ich schlechte Nachrichten. Aber ich sehe dort eine lange Schlange von TVS, die durch einen TVS mit n=X(= der Anzahl der Serienelemente) ersetzt werden können. Sie zählen nicht zur endgültigen Anzahl der Knoten, da sie intern erweitert werden. Für das Floating V5ist die Heilung einfach: fügen Sie hinzu Rser=1m. Sie können die Serie ~RL` auch mit kombinieren L Rser=x, dasselbe für Kappen, dasselbe für Parallel oder Kombinationen. Dieselbe Erklärung wie für TVS. Und du bist besser dran trtol=3..7als die anderen.
@concernedcitizen Danke! Könnten Sie Ihre Gedanken als Antwort posten, damit ich sie akzeptieren kann?
@aconcernedcitizen wie kann ich das "n=X"-Zeug machen? Ich habe nichts dergleichen im Eigenschaftenfenster von SMBJ24CA gefunden.
15 Sekunden sind KEINE lange Simulationszeit. Ich habe Simulationen durchgeführt, deren Rendern 10 Minuten und länger dauerte. Der Trick, den Sie gefunden haben, spielt tatsächlich mit dem Konvergenzkriterium der Simulation; Sie erhalten eine schnellere Simulation, jedoch auf Kosten der Genauigkeit.