Forum: Analoge Elektronik und Schaltungstechnik mathematische Funktion in LTspice realisieren


von Abdurrahman K. (Gast)


Angehängte Dateien:

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

von Helmut S. (helmuts)


Angehängte Dateien:

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.

: Bearbeitet durch User
von Abdurrahman K. (Gast)


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

von Helmut S. (helmuts)


Angehängte Dateien:

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.

von Abdurrahman K. (Gast)


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.

von Helmut S. (helmuts)


Lesenswert?

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.

: Bearbeitet durch User
von Abdurrahman K. (Gast)


Angehängte Dateien:

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?

von Helmut S. (helmuts)


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.

von Abdurrahman K. (Gast)


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?

von Helmut S. (helmuts)


Lesenswert?

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.

von Abdurrahman K. (Gast)


Angehängte Dateien:

Lesenswert?

Also ich habe das wie in der beigefügten Schaltung realisiert.
Dabei habe ich das Sinussignal gemäß der Tabelle verzerrt.

Wäre das so richtig?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.