Verwendung von .step param mit mehr als zwei Parametern in LTSpiceIV


12

Ich muss drei transiente Simulationen mit unterschiedlichen Werten bestimmter Widerstände (zweckmäßigerweise R1 und R2 genannt) durchführen. Was ich genau tun möchte, ist Folgendes:

  • Sim. 1: R1 = 1 , R2 = 10 ΩΩ
  • Sim. 2: R1 = 1 , R2 = 10 ΩΩ
  • Sim. 3: R1 = 1 , R2 = 1 ΩΩ

Wenn es nur einen Widerstand gäbe, dessen Widerstand variieren könnte, würde ich seinen Widerstand einfach auf "{r1}" setzen (ich verwende Kleinbuchstaben, um ihn zu einer anderen Variablen / einem anderen Parameter als R1 zu machen) und einen Befehl wie den folgenden verwenden:

.step param r1 list 1k 1meg 1k

Da ich jedoch jeweils zwei Parameter (zusammen) zweimal ändern muss, habe ich hier gelesen , dass (zumindest bei LTSpiceIV) eine Problemumgehung für mein Problem Folgendes verwenden könnte:

.step param X list 1 2 3

.param r1 = table(X, 1k, 1meg, 1k)

.param r2 = table(X, 10k, 1meg, 10meg)

Bei der Simulation erhalte ich folgende Warnungen:

WARNING: Can´t resolve .param r2 = table(X, 10k, 1meg, 10meg)
Select OK to continue the simulation with the default model or Cancel to quit now.

Gleiches gilt für r1.

Aus irgendeinem Grund "bricht" die Simulation nicht, wenn ich der Tabelle ein zusätzliches Element hinzufüge. In diesem Fall dauert die Simulation zu lange und schreitet jedes Mal langsamer voran, da sie niemals enden würde. Ich habe versucht, X auf 0 1 2 anstelle von 1 2 3 zu setzen, aber das funktioniert auch nicht.

Hier sind einige Bilder:

Schaltung + Befehle

Fehlermeldung

Ihre Hilfe wäre sehr dankbar.


Ich bin verwirrt, möchten Sie 3 oder mehr Situationen simulieren? Wenn Sie nur die 3 Szenarien simulieren möchten, würde ich es nicht mit Gewürzen machen.
ACD

Und wie soll die X-Achse sein?
ACD

Ich möchte diese drei Situationen simulieren und zusammen zeichnen. Ich weiß, ich könnte einfach eine CSV-Datei exportieren und sie mit Octave oder Excel zeichnen, aber es wäre viel nützlicher, dies direkt auf LTSpice zu tun. In diesem Beitrag ( electronic.stackexchange.com/questions/20811/… ) hat jemand gesagt, wie es geht, aber es funktioniert bei mir nicht. In diesem Beispiel habe ich drei Szenarien eingefügt, aber möglicherweise muss ich mehr einfügen.
Sebascarra

In Bezug auf Ihre zweite Frage wären X die verschiedenen Indizes, mit denen ich auf die Werte der Tabelle zugreifen kann. Da ich mit (anscheinend) LT jeweils nur eine Variable durchlaufen kann, durchlaufe ich X und versuche dann, auf die Werte der Tabelle gemäß dem Wert zuzugreifen, den X in diesem Schritt angenommen hat. Ich hoffe ich bin klar. Vielen Dank.
Sebascarra

Zum einen möchte der Befehl table einen Index, der X ist, und dann eine Menge von xy-Paaren. Jeder Parameter sollte 3 Paare enthalten, nicht drei Werte.
ACD

Antworten:


17

In LTSpice erstellt der Befehl table wirklich eine Art Wörterbuch, in dem Sie Schlüsselwertpaare angeben müssen. Die richtige Richtlinie für Ihren Fall wäre dann:

.step param Rx list 1 2 3
.param R1 table(Rx,1,1k,2,1Meg,3,1k)
.param R2 table(Rx,1,10k,2,1Meg,3,10Meg)

und den Wert der Widerstände einzustellen {R1}und {R2}auf.

Wenn Sie die Werte eines Widerstands in der Nähe haben möchten, können Sie auch eingeben (anstelle des Werts, wenn Sie mit der rechten Maustaste darauf klicken).

R=table(Rx,1,10k,2,1Meg,3,10Meg)

in das Widerstandswertfeld. Dies funktioniert für alle Arten von Komponenten auf die gleiche Weise und kann mit einem externen Skript zum Erstellen von .asc-Dateien als Krücke für LTspices verwendet werden, bei denen die Monte-Carlo-Funktionalität fehlt.


4

Ein Parameter Sweep / Step kann mehrere Komponentenwerte durch Ausdrücke steuern.

Ihre Steuervariable, auf die Sie treten, kann ein Phasenwinkel oder eine Zeitverzögerung oder ähnliches sein, die Sie in eine oder mehrere Formeln / Ausdrücke eingeben, um resultierende Komponentenwerte oder Parameter zu erhalten, die im Entwurf als {Parameter} angewendet werden sollen.

Dies ist nützlich, wenn Sie eine Beziehung beibehalten oder eine indirekte physikalische Eigenschaft des Entwurfs wie eine aktuelle oder eine Filtereigenschaft steuern möchten.

Im Befehlseditor "op" können Sie Folgendes eingeben:

.STEP param Imax 0.1 0.3 0.1 
.PARAM Uin= 5
.PARAM R = (Uin-0.84954605)/Imax

Es erhöht Imax von 0,1 auf 0,3 in Schritten von 0,1 und berechnet einen Widerstandswert R unter Verwendung des Parameters Imax, Uin, eines angenommenen Spannungsabfalls von 0,85 .. einer Diode.

Das PARAM R kann in einem Komponentenwert unter Verwendung der {R} -Notation referenziert werden. Hinweis Uin kann als {Uin} in einer Spannungsquelle oder ähnlichem verwendet werden und so weiter.

Verwenden Sie für mehrere Zeilen im Editorfenster "op" STRG + M, um alle Parameter im selben Textfeld zu belassen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.