Guten Morgen alle. Ich implementiere eine Teilschaltung in LTspice und möchte auch die plot.defs ändern, um einige Größen mit den Spannungen/Strömen innerhalb der Teilschaltung zu berechnen. Somit habe ich eine Funktion wie:
.func A(x) V(x:Vo)/V(x:Vin)
wobei die Funktion "A" den Instanznamen der Teilschaltung als Parameter nehmen sollte, um auf ihre Knoten zuzugreifen (in der Teilschaltung mit Vo und Vin gekennzeichnet, wobei eine Verhaltensspannungsquelle verwendet wird, um den Knotennamen immer gleich zu machen).
Die oben geschriebene Syntax funktioniert nicht, ich bekomme den Fehler:
undefiniertes Symbol in: "A(<>)"
Wobei "X1" natürlich der Name ist, den Spice der Instanz meines Subcircuits gegeben hat. Was könnte das Problem sein? Bitte beachten Sie, dass durch explizites Schreiben des Ausdrucks von "A" in das Plot-Panel alles funktioniert, also ist es eine Frage, wie der Instanzname als Parameter übergeben wird.
Danke allen im Voraus!
Anscheinend funktioniert es sowohl mit Spannungen als auch mit Strömen, aber das Format der Definition ist anders, das habe ich vermisst:
.func Vx()=V(X1:Vo)/V(X1:Vin)
Und wenn Sie es plotten möchten, rufen Sie einfach an Vx()
. Es funktioniert tatsächlich auch für Ströme in/aus Pins, dann ist es Ix(X1,R1)
zum Beispiel , aber beachten Sie, dass der Bezeichner auch die Nummer enthalten muss, dh X1
nicht einfach X
. Außerdem ist der Knoten der Pin des Symbols, nicht die Definition der Teilschaltung. Wenn Sie z. B. haben .subckt xxx 1 2
, aber das Symbol die Pins mit den Namen A
und hat B
, dann sollte der Strom sein Ix(U1:A)
, nichtIx(U1:1)
Damit dies funktioniert, müssen Sie eine oder beide Optionen in aktiviert haben Control Panel > Save Defaults > Save subcircuit [...]
.
Die schlechte Annahme (mea culpa), die ich in den Kommentaren gemacht habe, betraf das Parsing, aber das ist nicht mehr relevant, da das Plotten nach der Simulation erfolgt, die plot.defs
Datei wird erst danach benötigt.
Hier gibt es zwei Probleme: Ich konnte keine benutzerdefinierte Funktion im Diagramm zum Laufen bringen. Der andere ist Ihr Versuch, eine Funktion zu erstellen, die einen Parameter übergibt, wenn Sie sie nur verwenden können, um numerische Informationen zu übergeben.
Das andere ist, dass Sie nur in einem Diagramm auf einen Pin-Strom verweisen können. Wenn Sie also die Doppelpunkte verwenden, funktioniert das nicht. Die Art und Weise, einen Pin-Strom zu referenzieren, wird in einigen Antworten wie dieser beschrieben . Die kurze Antwort lautet, wenn Sie einen Pin-Strom mit einem Null-Ohm-Widerstand oder einer 0-V-Spannungsquelle referenzieren und dann den Strom messen möchten (dh: für einen Widerstand namens R2 können Sie dies I (R2) tun, aber nicht dieses I ( R2:1))
Sie können benutzerdefinierte Funktionen nicht grafisch verwenden, Sie können sie in b-Quellen und anderen Bereichen in der Spice-Datei verwenden. Wenn eine Funktion grafisch dargestellt werden muss, verwenden Sie eine B-Quelle, um die Funktion in Daten umzuwandeln, die grafisch dargestellt werden können. Unpraktisch, aber so ist es, und es ist unwahrscheinlich, dass sich die Wirkungsweise von LT Spice ändert.
ein besorgter Bürger
Alessandro Russo
ein besorgter Bürger