Look up Table in LTspice

OP #3888574
Lesenswert?

Hallo zusammen.

Ich möchte in LTspice eine spannungsabhängige Kapazität modellieren. 
Dazu habe ich mir überlegt, diese mittels look up table zu realisieren 
in der Form U1,C1; U2,C2;...; Un,Cn usw. Mein Problem ist nur, dass ich 
nicht ganz genau weis, wie eine look up table in LTspice erstellt wird.
Ich hoffe hier findet sich Jemand, der mir das anhand von einem Beispiel 
erklären kann.
#3888584
Lesenswert?

Mir ist dazu nichts bekannt. Allerdings macht man soetwas auch für 
gewöhnlich über sog. Varactor-Dioden. LT-Spice liefert solch ein Modell 
mit und im Internet gibt es auch Formeln zur Berechnung der Kapazitäten. 
Mittels dieser Formel und einem Taschenrechner und ein paar Minuten Zeit 
sowie den Datenblättern der gewünschten Varaktor-Diode kann man so 
ziehmlich jede Diode gut nach-modellieren, in dem man eine bestehende 
Diode kopiert und an ein paar Parametern schraubt, bis es einigermaßen 
passt.

EDIT: Ja, es gibt auch eine Möglichkeit, dass man eine Funktion 
definiert und diese dann entsprechend die Kapazität berechnen lässt, 
aber die Varaktor-Diode ist in 99% der Fälle für solch eine Anwendung 
der bessere Fall.

Wofür brauchst du das eigentlich? Dann können wir dir auch besser 
helfen... FM-Modulation bzw. Demodulation kommt mir so spontan 
beispielsweise in den Sinn...
OP #3888607
Lesenswert?

Ich brauche das für ein Simulationsmodell eines Kleinsignal ESB eines 
MOSFETs. Dort sind ja die Eingangs,- die Ausgangs- und die 
Rückkoppelkapazität (Ciss, Coss, Crss) von der Drain-Source-Spannung 
abhängig. In den Datenblättern gibt es dazu auch immer entsprechende 
Abbildungen, wo die 3 Kapazitäten über Uds aufgetragen sind. Die dort 
abgebildeten Kurven sind selten linear, wodurch es schwer wird eine 
allgemeine Formel anzugeben. Aus diesem Grund wollte ich die 
Kapazitätswerte mit ihren entsprechenden Spannungswerten in einer look 
up table hinterlegen.

LTspice bietet als Funktion : <table(x,a,b,c,d,...)> <Interpolate a 
value for x based on a look up table given as a set of pairs of points.>

Hat schon Jemand Erfahrung damit?
#3888654
Lesenswert?

Hmm... ganz doof: Ließe sich das nicht auch mittels Varaktor-Dioden 
nachbilden? - Wenn man die Kennlinien und die ungefähren Kapazitäten hat 
sollte sich das eigentlich einigermaßen nachbilden lassen. Man muss eben 
mit den Parametern etwas spielen, aber grundsätzlich sollte es 
eigentlich gehen. Die Varaktor-Dioden verhalten sich auch nicht linear, 
was das Verhältnis von Sperrspannung zu Kapazität angeht.
#3888702
Lesenswert?

Hallo,
Je nach Analyse stehen verschiedene Methoden zur Verfügung.

.AC
1. Parameter Ersetzung mit .param xyz=table() statt 10p dann {xyz}
2. Diodenmodell mt entsprechenden Paramtern
3. Ladungsgleichung direkt für die Kapazität Q=... statt 10p


.TRAN
1. Diodenmodell mt entsprechenden Paramtern
2. Ladungsgleichung direkt für die Kapazität Q=... statt 10p
(Um die Formel für Q zu bekommen musst du das Integral von C(u)du 
berechnen.)


In der LTspice Yahoo group gibt es im Bereich Files viele Beispiele.

https://groups.yahoo.com/neo/groups/LTspice/files/%20Tut/Nonlinear%20Capacitance%20of%20Capacitors/

https://groups.yahoo.com/neo/groups/LTspice/info


Gruß
Helmut
#3889213
Lesenswert?

Hallo,

.param wird nur einmal am Beginn der Simulation berechnet und bleibt 
dann konstant. Deshalb hilft .param nur bei .AC .

Wenn das in allen Simulationsarten benötigt wird, dann kommt nur das 
Diodenmodell oder die Ladungsgleich Q=... in Frage.

Deshalb nochmals meine Frgae.
Willst du eine .TRAN Analyse machen oder "nur" eine .AC Analyse?
OP #3889873
Lesenswert?

Helmut S. schrieb:

> Willst du eine .TRAN Analyse machen oder "nur" eine .AC Analyse?

Ich will eine .Tran Analyse machen Helmut.

Ich habe jetzt zum probieren eine einfache Schaltung aufgebaut mit einer 
normalen Spannungsquelle V1 und daran angeschlossen einen Widerstand 
{Rvar}. Über .param Rvar = table(V(V1),4,1,8,2) habe ich versucht die 
table-Funktion einzubinden, doch ich kriege als Fehlermeldung "WARNING: 
Can't resolve .param Rvar = table(V(V1),4,1,8,2).

Liegt es wirklich nur daran, dass ich eine .tran Analayse mache?

Edit2: Nun habe ich das ganze um eine Liste erweitert. Die Directive 
dazu sieht nun so aus:

.step param Vstemp list 4 8 12 16
.param Rvar = table(Vstemp,4,1,8,2).

Das brachte aber auch nicht das erwünschte Resultat.
Ich will nachher eine Spannung linear hochlaufen lassen und an vorher 
festgelegten Spannungswerten, soll sich der entsprechende Widerstands- 
bzw. Kapazitätswert einstellen. Kriegt LTspice so etwas hin?

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