LTspice: wie unübersichtliche Gleichungen als Quelle darstellen?

Gast #6729642
Lesenswert?

Hallo,

angefügt ist ein Ltspice Beispiel für einen PID Compensator.

Beispielsweise berechne ich mir die Impedanz Zi mit einer bv-Quelle und 
der Gleichung Laplace = {R1}*(1+s*{C1}*{R2})/((1+s*{C1}*({R1}+{R2}))).

Und die Impedanz Zf über Laplace = 
(1+s*{C2}*{R3})/((1+s*{C1}*{C3}*{R3}/({C2}+{C3}))*s*({C2}+{C3}))

G00 ist dann das Verhältnis -Zf/Zi. Eine weitere bv-Quelle hätte dann 
folgende Gleichung: Laplace 
=-1*((1+s*{C2}*{R3})/((1+s*{C1}*{C3}*{R3}/({C2}+{C3}))*s*({C2}+{C3})))/( 
{R1}*(1+s*{C1}*{R2})/((1+s*{C1}*({R1}+{R2}))))

Man sieht schon, dass die Gleichungen sehr schnell unübersichtlich 
werden. Für G00 hätte ich gerne so etwas in der Art: -V(zf)/V(zi). So 
funktioniert das aber leider nicht.

Warum brauche ich das? Ich möchte durch wenige Klicks die Funktionen 
plotten und gleichzeitig die Ausdrücke klein halten. Wenn ich 
beispielsweise für die Übertragungsfunktion G alle Teilgleichungen 
einsetze, dann kommt man schnell auf über 300 Zeichen - das wird dann 
schnell hässlich. Die einzige Lösung die ich bisher gefunden habe ist, 
dass ich mir die benötigten Gleichungen als Text (z.B. V(G0) * V(Tn) / 
V(G00)) zurechtlege, und diese dann in das Plottfenster per "Add Traces" 
einfüge.

Ich denke da an so etwas in der Art wie in C das "define" um Gleichungen 
als einsetzbare Variablen darzustellen. Bitte nicht wortwörtlich nehmen, 
ich weiß dass es in Ltspice kein "define" gibt! Und ich weiß, dass 
Ltspice kostenlos ist und dass man da wohl nicht allzuviel verlangen 
darf.

Grüße Louis
Angehängte Dateien:
Gast #6729842
Lesenswert?

John B. schrieb:
> .function()

so wie hier gezeigt ..
http://www.simonbramble.co.uk/lt_spice/ltspice_lt_spice_tutorial_5.htm
https://www.analog.com/en/technical-articles/ltspice-importing-exporting-pwl-data.html

kann in extra Datei angelegt werden
zB.
_______________________________________________________
Compl_Sources.meas

.param a1   1m  für die Definition der festen Werte    und
.param b1   7
....
.func 1_ComplexSource(a1,b1,c1) {(4*a*b)/(const*c**9)}
.func 2_ComplexSource(a2,b2,c2) {(4*a*b)/(const*c**16)}
_________________________________________________________


Aufruf im Arbeitssheet
__________________________________________________________
.inc Compl_Sources.meas ; Aufruf der Funktion
.param 1_ComplexSource(a1,b1,c1)
.param c1=10, ....
___________________________________________________________

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren