mathematische Funktion in LTspice realisieren

Gast #5173702
Lesenswert?

Hallo,

ich habe eine mathematische Funktion mit entsprechernder Kennlinie, die 
ich gerne in LTspice realisieren möchte.

Ist so etwas möglich? Finden sich hierfür Ideen?
vielleicht so etwas wie eine Look up Table?!

Anbei habe ich eine Excel-Datei der Funktion mit der Kennlinie 
beigefügt.

Vielen Dank im Voraus
Angehängte Dateien:
#5173815
Lesenswert?

In LTspice kann man mit den Quellen bv und bi Funktionen und Tabellen 
benutzen.

Bv-Quelle mit Tabelle

V=table(V(C1),0,0,0.3,0.7,1,1)


Bv-Quelle mit Formel

V=0.5*(1+tanh(-2+4*V(C1)))


Da deine Tabelle sehr lang ist, schreibt man am besten die komplette 
Bv-Tabelle in eine Datei. Siehe Anhang.

BV1 U1 0 V=table(V(C1),
+ 0.10,  0.100,
+ 0.11, 0.102,
+ 0.12,  0.105,
+ 0.13,  0.107,
+ 0.14,  0.110,
+ 0.15,  0.112,
....  )


Deine Funktion hat eine Delle bei 0,16. Absicht?


Übrigens teilt deine Funktion durch 0 bei einem Eingabewert von 0,5. 
LTspice bedankt sich da mit Giga-Volt.
Angehängte Dateien:
Gast #5174211
Lesenswert?

okay, erstmal vielen Dank!

1) Sie haben Recht, die Möglichkeit die Funktion berechnen zu lassen 
funktioniert leider nicht. Für den Wert 0,5 folgt eine Null im Nenner.

2) Bleibt also die Möglichkeit über die Look-up-Table. Hier stimmt etwas 
nicht: ihre Bv1.asc Datei und Bv.raw Datei stimmen nicht überein! 
Betrachte ich V(c1) und V(u), so sind diese identisch, was aber nicht 
sein soll?! Könnten Sie da noch einmal nachsehen?
Oder kann es sein, dass ich die .txt falsch eingebunden habe? Wo haben 
Sie diese abgespeichert?

3) Die Delle bei 0,16 kommt daher, dass der falsche Wert zugewiesen 
wurde. Dieser muss 0.115 sein und nicht wie in Ihrem Anhang 
(bv_tabelle1.txt) 0.100
#5174292
Lesenswert?

Die 0.115 habe ich jetzt in der Tabelle korrigiert. Ansonsten einfach 
alle 3 Dateien in ein beliebiges Verzeichnis kopieren.

Niemals irgendwas in C:\Program Files hineinkopieren da man dort als 
Normal-Benutzer nicht genügend Rechte hat. Außerdem kopiere ich auch gar 
nichts in irgend einen Ordner der von LTspiceXVII angelegt wurde. 
Deshalb funktionieren meine Beispiele auf jedem Rechner ohne irgend eine 
Datei von LTC zu ersetzen oder zu modifizieren.
Angehängte Dateien:
Gast #5174578
Lesenswert?

Ahh okay, jetzt habe ich meinen Denkfehler gefunden! Ich habe mir die 
ganze Zeit V(u) statt V(u1) angeschaut.

Gibt es denn eine Möglichkeit ein Label V(u1) zu generieren, sodass wenn 
ich auf den Netznamen u1 klicke, mir der Graph V(u1) angezeigt wird?

Ansonsten besteht ja die Möglichkeit über den Expression Editor den 
Graphen ausgeben zu lassen.
Gast #5177041
Lesenswert?

Super vielen Dank.

Ich habe da noch eine weitere Frage, vielleicht können Sie mir 
behilflich sein?!

Angenommen V(u1) ist eine Verstärker-Kennlinie und ich möchte ein 
PWM-Signal, wie im Anhang dargestellt, durch V(u1) schicken.

Ist so etwas möglich?
Angehängte Dateien:
#5177102
Lesenswert?

PWM
Wenn du die Pulsbreite nichtlinear zum Eingangssignal V(tri) machen 
willst, dann musstest du V(tri) durch eine entsprechende Tabelle 
verändern. Die Formel der PWM-Quelle wäre dann 
V=IF(V(sine)>V(trimod),5,-5). Alternativ könnte man auch V(sine) mit 
einer Tabelle verzerren.
Gast #5177155
Lesenswert?

Das habe ich leider nicht ganz verstanden...

Meine Look-up-Table bleibt ja erhalten:

BV1 U1 0 V=table(V(C1),
+ 0.10,  0.100,
+ 0.11, 0.102,
+ 0.12,  0.105,
+ 0.13,  0.107,
+ 0.14,  0.110,
+ 0.15,  0.112,
....  )

Wie soll ich diese auf V(tri) oder V(sine) anwenden?

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