LTSpice welche Werte in einem Lauf verwendet?

Ausführen einer Worst-Case-Simulation, wie hier beschrieben: LTspice: Worst-Case Circuit Analysis with Minimal Simulations Runs
Wie findet man heraus, welche Schaltkreiswerte während eines Laufs verwendet wurden? In meiner Sim habe ich 12 Widerstände, also läuft 4096. Bei Lauf 265 gab es eine anständige Verschiebung der Ausgabe, daher würde ich gerne herausfinden, welche Widerstandswerte während eines bestimmten Laufs verwendet wurden.

Antworten (3)

Betrachtet man die Art und Weise, wie sie die wcand- binaryFunktion im Artikel definieren, ist der Index des parametrisierten Werts das "Bit" in der Laufnummer (beginnend mit dem LSB), das der letzte Parameter der von ihnen erstellten wc-Funktion ist.

In Abbildung 3 des Artikels ist R4 also Bit 0, R1 ist Bit 1, R2 ist Bit 2 und R3 ist Bit 3:

Figur 3

Um dann zu decodieren, welchen Wert jeder Widerstand hat, müssen Sie nur die Laufnummer binär codieren, und wenn das spezifische Bit 0 ist, befinden Sie sich auf dem Mindestwert, und wenn 1, befinden Sie sich auf dem Höchstwert. Ein Sonderfall liegt vor, wenn der Laufindex gleich ist 2 N . In diesem Fall werden alle Widerstände auf den Nennwert gesetzt.

Nehmen Sie als Beispiel Lauf 5 aus dem Beispiel, das sie im Artikel geben. In 4-Bit-Binär ist dies 0101, also sind die Werte der 4 Widerstände gegeben durch:

R 4 = 22.5 ( 1 + 0,05 ) k Ω R 1 = 22.5 ( 1 0,01 ) k Ω R 2 = 22.5 ( 1 + 0,01 ) k Ω R 3 = 22.5 ( 1 0,05 ) k Ω

Wenn Sie eine andere Definition für wcoder haben binary, kann die Reihenfolge anders sein.

In Ihrem Fall ist Lauf 265 000100001001, also sind Index 0, 3 und 8 der maximale Wert und alle anderen der minimale Wert.

Hier gibt es mehrere gute Antworten. Dieser war der, den mein Gehirn am einfachsten fand.
Mit der obigen Methode konnte ich dann den schlimmsten Fall identifizieren und auf 4 Widerstände reduzieren und dann die Simulationen zur Überprüfung erneut ausführen.

Ich kann mich nicht erinnern, die Seite gesehen zu haben, die Sie zuvor verlinkt haben, und ich musste keine Worst-Case-Tests vieler Teile in LTspice durchführen. Sie haben mich also mit einer (für mich) neuartigen Frage konfrontiert. Aber die Antwort war nicht schwer zu finden.

Nehmen wir einen einfachen Fall (um mir das Tippen zu ersparen) eines Widerstandsteilers:

Geben Sie hier die Bildbeschreibung ein

Ich glaube, ich habe einen Fall aus dem Link, den Sie oben angegeben haben, genau dargestellt. Wenn ich dies ausführe und auf klicke v DIV , und füge ein paar weitere Spuren hinzu, erhalte ich das folgende Diagramm:

Geben Sie hier die Bildbeschreibung ein

Die x-Achse ist die Laufnummer, die rote Kurve ist die Ausgangsspannung des unbelasteten Teilers, die grüne Kurve ist der Wert von R 3 und die türkisfarbene Spur ist der Wert von R 1 . Sie können sie einfach direkt aus der Handlung heraus lesen.

Das einzige Problem ist, dass Sie kreativ sein müssen, wenn Sie angeben, was geplottet werden soll.

Sie können auch die .MEAS-Karte verwenden. So was:

.MEAS R1 FIND V(N001,VDIV)/I(R1) WHEN run=RUNSELECT

Das heißt, wenn Sie die für Sie interessante Laufnummer identifiziert haben. In diesem Fall erfasst es diese Werte für Sie und speichert sie im „Spice Error Log“, auf das Sie über View / Spice Error Log im Menüsystem zugreifen können.

Sie können so viele davon einstreuen, wie Sie für nötig halten. Aber in diesem Fall möchten Sie vielleicht ein PARAM erstellen und dieses stattdessen verwenden. Nehmen wir also an, ich wollte die Werte für R 1 Und R 2 bei run=2. Ich könnte folgendes tun:

.PARAM RUNSELECT=2
.MEAS R1 FIND V(N001,VDIV)/I(R1) WHEN run=RUNSELECT
.MEAS R3 FIND V(vdiv)/I(R3) WHEN run=RUNSELECT

Ich würde dies in der Protokolldatei finden:

r1: v(n001,vdiv)/i(r1)=4750 at 2
r3: v(vdiv)/i(r3)=5250 at 2

Alles schön eingefangen.

...und der Vorteil des .MEASSkripts ist, dass es als externe Datei geschrieben werden kann, extern über das Menü Datei > .MEAS-Skript ausführen (bei aktivem Wellenform-Viewer) aufgerufen werden kann, und das alles, ohne dass das erneut ausgeführt werden muss Simulation.

Erstellen Sie eine Verhaltensspannungsquelle für jedes Gerät (R), und fügen Sie dann einfach Beschriftungen und schematische Funktionswerte ein. Führen Sie einen DC .op (Arbeitspunkt) aus, um einen Wert pro Testlauf zu erhalten. Zeichnen Sie jede Spannung (R). Sie können diese Werte in eine Textdatei einfügen, um eine Tabelle mit R-Werten im Vergleich zum Testlauf zu erhalten.

Sie könnten auch ein Skript in einer Sprache wie Matlab programmieren, um die Werte zu generieren, indem Sie dieselben Programmierschritte wie LTspice verwenden (ich habe bestätigt, dass es gut funktioniert).

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein