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
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.
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
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.
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.
Abdurrahman K. schrieb:> 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?>
Platziere eine Widerstand im Schaltplan. Einen Anschluss mit Masse
verbinden und den anderen Anschluss an eine Leitung mit dem Netznamen U1
anschließen.
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?
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.
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?
Das Dreieck hat +/-5V für eine Sinuseingangssignal von +/-5V. Da du
andere Min.- und Max.-Spannungen hast, musst du erst mal deine Tabelle
an die +/-5V anpassen oder alles andere auf andere Spannungen umbauen.