Ich habe einen batteriebetriebenen Aufwärtswandler und versuche, den maximalen Abfall der Eingangsspannung (Batterie) unter verschiedenen Lastbedingungen mit hoher Stromaufnahme (unterschiedliche Arbeitszyklen / Periodizitäten) zusätzlich zu mehreren Batterietypen (verschiedene Spannungen / Innenwiderstände). Da ich eine so (relativ) große Betriebszeit simuliere, werden die Simulationsdateien ziemlich umfangreich, ganz zu schweigen davon, dass sie eine Weile dauern. Ich möchte LTSpice automatisieren, damit ich Komponentenwerte programmatisch ändern und Simulationen erneut ausführen und Daten erfassen kann (Werte von Dingen wie Spannung oder Strom). Ich weiß das:
Bisher scheint meine beste Option eine Kombination dieser beiden Optionen zusammen mit meinem eigenen Code / Skript auf eine Weise zu verwenden, die meine Ziele erreicht, aber ich frage mich nur, ob es bereits einen besseren Weg gibt.
Hat jemand LTSpice automatisiert oder weiß, ob eine Art Automatisierungs-API dafür geschrieben wurde (entweder vom Hersteller oder von Drittanbietern)?
Idealerweise hätte ich gerne einen Solver, bei dem ich ihm die gewünschten Parameter gegeben und verschiedene Komponentenwerte ausprobiert habe, bis er die "optimale" Lösung für meine Einschränkungen gefunden hat.
Das mehrmalige Ausführen einer Simulation und das Ändern mehrerer Komponentenwerte ist etwas aufwändiger, als nur einen zu ändern (was nicht so schlimm ist).
Hier ist das Konzept zum Ändern eines Werts:
.param X=R
.step param X 100 500 50
den Wert zwischen 100 und 500 in Schritten von 50 erhöhen.Beispiel:
Ergebnis:
Für mehrere Werte war die einzige Möglichkeit, die ich zum Arbeiten gefunden habe, die Verwendung einer Liste von Werten für X und die Verwendung der Tabellenanweisung. Dies lässt sich wahrscheinlich am besten anhand eines Beispiels erklären (das Lesen der Hilfe zu den verwendeten Befehlen wird hier wahrscheinlich hilfreich sein). Beachten Sie jedoch, dass die Tabellenbefehlssyntax in der Form table(index, x1, y1, x2, y2, .... xn, yn) vorliegt, index als Eingabe nimmt und einen interpolierten Wert für x=index basierend auf dem angegebenen x zurückgibt ,y Paare.
In einer meiner Simulationen musste ich 12 Simulationen durchführen, während ich 3 verschiedene Komponentenwerte änderte, hier sind die Befehle:
.step param X list 1 2 3 4 5 6 7 8 9 10 11 12
.param Rin1 = table(X, 1, 1,1p, 2, 1p, 3, 1p, 4, 4478, 5, 4080, 6, 3400, 7, 2200, 8, 1p, 9, 1p, 10, 1p, 11, 1p, 12, 1p)
.param Rin2 = table(X, 1, 4997, 2, 4997, 3, 4997, 4, 499, 5, 897, 6, 1577, 7, 2777, 8, 4997, 9, 4997, 10, 4997, 11, 4997, 12, 4997)
.param Tval = table(X, 1, 56, 2, 56, 3, 27, 4, 1G, 5, 1G, 6, 1G, 7, 1G, 8, 1G, 9, 330, 10, 330, 11, 120, 12, 120)
.param Kval = table(X, 1, 316, 2, 147, 3, 147, 4, 6340, 5, 6340, 6, 6340, 7, 6340, 8, 6340, 9, 6340, 10, 825, 11, 825, 12, 316)
Ergebnis:
Hoffentlich kommen Sie auf die Idee, Sie könnten vielleicht ein Skript erstellen, das die erforderlichen SPICE-Befehle erzeugt, wenn Sie Ihre gewünschten Werte eingeben. Oder erstellen Sie einfach eine Vorlage (z. B. habe ich das Obige einfach kopiert und in ein paar verschiedene Simulationen eingefügt und die Werte geändert)
Wenn das obige nicht das tut, was Sie wollen, dann schauen Sie sich vielleicht etwas wie Multisim von NI an (ich denke, es hat einige Batch-Simulationsoptionen, obwohl ich nicht sicher bin, wie nützlich sie sind). Es kann auch hilfreich sein, nach LTSPice zu fragen Forum und schaue, ob jemand einen besseren Weg kennt, Dinge zu tun.
Ich denke, es ist tatsächlich möglich, LTSpice über die Befehlszeile auszuführen und eine vorübergehende Simulation auszuführen:
Unter Windows:
cd <wherever LTSpice is installed on your computer>
scad3.exe -Run -b MyCircuit.asc
Unter Linux:
cd ~/.wine/drive_c/Program Files (x86)/LTC/LTspiceIV
wine ./scad3.exe -Run -b MyCircuit.asc
LTSpice kann im Batch-Modus mit dem -b
Befehlszeilenschalter ausgeführt werden.
Aus der LTSpice-Hilfedatei:
-b: Im Stapelmodus ausführen. ZB "scad3.exe -b deck.cir" belässt die Daten in der Datei deck.raw
Wie die .raw-Ausgabe zu lesen und zu interpretieren ist, bleibt dem Leser als Übung überlassen.
Beachten Sie auch unter den Befehlszeilenschaltern:
-ascii: ASCII-.raw-Dateien verwenden. Beeinträchtigt die Programmleistung ernsthaft.
Hast du schon bei " LTSpice Queue Manager " nachgesehen? ( Der Link leitet zu meiner eigenen Website weiter, wo Sie die Software herunterladen können, aber ich bin nicht ihr Autor, der das Programm ursprünglich in einem Forum geteilt hat, das heute geschlossen ist. Das Teilen über meine Website ist eine Möglichkeit, es wiederzubeleben ).
Dieses Tool hat mir in der Vergangenheit sehr geholfen. Sie können viele Simulationsdateien vorbereiten und sie in einer Warteschlange ausführen.
Wenn es nur LT Spice sein muss und man an der GUI nicht vorbei kommt würde ich das Skriptprogramm AutoIt empfehlen. Ich habe es verwendet, um einige kritische Windows-Anwendungen zu automatisieren, denen active-x-DDE-COM.dll-whatever fehlte. Sie können es so einrichten, dass es auf Dateien wartet, Windows-Schaltflächen, Menüelemente drückt, Programme mit Argumenten aufruft usw.
Schauen Sie sich an:
http://www.autoitscript.com/site/
http://www.autoitscript.com/forum/
Ich würde mich für Winbatch entscheiden, wenn Sie für ein Skriptprogramm bezahlen möchten.
Brian Carlton
Oli Glaser
Joel B
Oli Glaser
dext0rb
Leon Heller
Platzhalter
Platzhalter
Tropical_Pfirsich