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.
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...
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?
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.
Das hat er dort in dem Link ein wenig angerissen bzw. ein wenig erklärt.
Aber über das Einbinden von Funktionen wird sich Google sicherlich gut
auskennen. Ich muss da leider passen, aber vielleicht können die anderen
Foren-Teilnehmer dort ansetzen...
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
Helmut S. schrieb:> 1. Parameter Ersetzung mit .param xyz=table() statt 10p dann {xyz}
wie stelle ich denn da den Bezug zu der Spannungsquelle, mit der ich die
Kapazität des Kondensators steuern will?
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?
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?
Hier mal die Möglichkeiten für Spannung oder Strom abhängigen
Widerstand.
Man kann bei R=... auch die Zeit "time" verwenden.
R=1k+100*sin(2*pi*50*time)
.param wird vor der Zeitsimulation berechnet. Deshalb könnend da nur
"Konstanten" verwendet werden.