Definieren eines nichtlinearen Kondensators in Ngspice

Ich versuche, eine elektronische Schaltung zu simulieren, die im folgenden Schema dargestellt ist.

Geben Sie hier die Bildbeschreibung ein

Diese Schaltung enthält zwei nichtlineare Bauelemente: Diese beiden Bauelemente hängen von der Ladungsdichte ab und sind wie folgt definiert:

v S = K Q 2

ICH D = k D 1 e X P ( Q 2 k D 2 )

Wo ICH = D Q D T

Ist es möglich, die Verhaltensquelle zu verwenden? Gemäß dem ngspice-Handbuch 25 hängt die nichtlineare Quelle nur von den Knotenspannungen und dem Zweigstrom ab. In meinem Fall hängt die nichtlineare Quelle oder das nichtlineare Gerät von der Integration des Zweigstroms ab. Ist es möglich, eine B-Quelle zu definieren, die von der Integration des Zweigstroms abhängt?

K ,   K D 1   Und   k D 2 sind konstante Werte!

ICH D ist der fließende Strom durch das diodenähnliche Gerät und ist wie folgt definiert:

ICH D = k D 1 e X P ( Q 2 k D 2 )

v S ist die abfallende Spannung über dem nichtlinearen kondensatorähnlichen Gerät und wird durch den folgenden Begriff beschrieben:

v S = k Q 2

Ich erhalte eine Fehlermeldung, wenn ich versuche, diese Datei zu öffnen. Was bedeuten Begriffe wie „B-Quelle“? Was sind I und Id, K, kd1, kd2 und Q?
"Ist es möglich, die Verhaltensquelle zu verwenden?" => B-Quelle. Der Link funktioniert bei mir auch nicht.
Auf die angehängte Datei-URL kann ohne Anmeldung nicht zugegriffen werden. Ich würde vorschlagen, inline zu posten.
Entschuldigung, dass Sie das Bild nicht sehen konnten. Ich habe die URL in der folgenden Antwort angegeben!

Antworten (2)

Wie Sie sagen, kann die Verhaltensquelle in ngspice nur eine Spannung oder einen Strom als Funktion anderer Knotenspannungen oder Zweigströme in Ihrer Schaltung erzeugen. Nichtsdestotrotz können Sie dies mit einigen zusätzlichen Elementen verwenden, um einen nichtlinearen Kondensator herzustellen, wie Sie ihn zu benötigen scheinen:

Geben Sie hier die Bildbeschreibung ein

Hier habe ich ein lineares CCCS und einen linearen Kondensator verwendet, um die Integration des eingehenden Stroms durchzuführen und die Ladevariable zu verfolgen. Dann liefert ein nichtlinearer VCVS das kapazitive Verhalten Ihres nichtlinearen Kondensators. Der Gigaohm-Widerstand ist da, weil SPICE erfordert, dass jeder Knoten einen Gleichstrompfad zur Erde hat, um eine Lösung zu erhalten; es wird die Schaltungslösung nicht wesentlich beeinflussen.

Es gibt ein ähnliches Beispiel unter Verwendung der ngSpice-Syntax auf Seite 89 im ngSpice-Handbuch hier .

Alternative Lösung

Beachten Sie auch, dass ngSpice ein Verhaltenskondensatormodell anbietet, das auf Seite 71 in dem von mir verlinkten Handbuch beschrieben wird. Die Syntax ist

CXXXXXXX n+ n C = ’expression’ <tc1 = value > < tc2 = value >

Hier sollten Sie verstehen, dass die definierte Kapazität die Differenzkapazität ist

C D Q D v .

Um Ihre Gleichungen in eine geeignete Form zu bringen, müssen Sie sie ein wenig überarbeiten. Du hast

v = K Q 2 .

Wenn Sie das umdrehen, haben Sie

Q = v K .

Von denen Sie bekommen können

D Q D v = 1 2 K v

Was Sie einfach in der ngSpice-Ausdruckssyntax implementieren können.

Vielen Dank für Ihre ausführliche Antwort. Gemäß der Skizze habe ich eine Netzliste wie folgt geschrieben, aber ich frage mich, warum der Strom als Ausgang einer nichtlinearen Schaltung durch eine sinusförmige Anregungsspannung immer noch sinusförmig ist. Ich weiß nicht, ob es irgendein logisches oder technisches Problem im Code gibt. Vielen Dank im Voraus!

Meine Netzliste:

V1 0 1 SIN(0 200 0.1k)
C0 2 1 1n
X1 3 2 nonlinDevice
L1 4 3 0.0125
R1 5 4 200
Vg 0 5 DC=30
************************************
.subckt nonlinDevice n1 n2
VDC n1 n0 DC=0
BVs n0 n2 V=v(ng)*v(ng)
BIs n1 n2 I=exp(-v(ng)*v(ng))
Bint 0 ng I=i(VDC)
Cint ng 0 1
Rint ng 0 100G
.ends
*************************************
.control
tran 0.01m 80m
plot i(l1)
.endc
.end
Dies ist nicht wirklich der Ort, um neue Fragen zu stellen oder Ihre Frage zu ergänzen. Aber wenn ich es richtig gelesen habe, beschreibt Ihre Schaltung im Grunde eine Diode mit I_s von 1 A. Typische Siliziumdioden haben I_s von 10 ^ -15 oder so. Ich vermute, dass dies zumindest ein Teil Ihres Problems ist.