LTspice Startwert zum Zeitpunkt Null in Variable speichern

Gast #3929056
Lesenswert?

Hallo Zusammen,

ich habe ein Problem mit einem selbst erstellen Subcircuit in LTspice.
Es wird eine Diode mit gesteuerten Quellen modelliert.
Die Sperrschichtkapazität wird über eine gesteuerte Spannungsquelle 
nachgebildet.

BVCak Anode Kathode V=idt(1/(Cak*V(Kathode,Anode))*I(BVCak))

Das ganze funktioniert auch, allerdings müsste ich für die Integration 
eine Initialbedingung setzten, damit es für beliebige Startwerte richtig 
berechnet wird.
Dies wäre in meinem Fall die Spannung V(Kathode,Anode) zum Zeitpunkt 
t=0.
Wie kann man diesen Wert zum Zeitpunkt Null in einer Variable halten?
Mit einer if(time >0, 0,1) kann ich zwar für t=0 den richtigen Wert 
schreiben, aber die else Anweisung nicht umgehen.

Schönen Dank
#3929477
Lesenswert?

Hallo Franz,
Vielleicht wolltest du ja so etwas wie im Anhang machen.
Beachte die hintere 1 in idt(,1). Das ist der Startwert.
Außerdem ist es viel besser bezüglich Konvergenz den Strom mit einer 
zusätzlichen V-Quelle zu messen.

Es gibt in LTspice auch eine Kondensator-Beschreibung mittels Ladung Q. 
Siehe "Help".

Gruß
Helmut
Angehängte Dateien:
Gast #3929682
Lesenswert?

Hallo Helmut,

die Idee mit der Spannungsquelle zum Strommessen finde ich gut.
Eigentlich möchte ich genau das machen,was du vorschlägst.
Jedoch möchte ich die Initial Condition für die Integration nicht nach 
einem festgelegten Parameter definieren, sondern allgemeiner.
Ich würde gerne das Ergebnis des DC Operating Point verwenden, das sich 
vor der transienten Simulation ergibt. Dies entspricht auch dem Wert zur 
Zeit 0. Ich weiß allerdings nicht wie ich diesen Wert in einen Parameter 
schreiben kann.

Gruß
Franz
Gast #3930426
Lesenswert?

Gruss aus Amiland,

Idt(x, IC, R) akzeptiert drei Parameter (die letzten beiden sind 
optional): Integration von x, optional IC Anfangsbedingungen, optional 
zurückgesetzt, wenn R Logik true ergibt.  Mit deinem Beispiel:

BVCak A K V= idt(1/(Cak*V(K,A))*I(BVCak), V(A,K))

LTspice wird zuerst für die DC-Betriebspunkt V(A,K) lösen.  Dann wird es 
als die Anfangsbedingungen für die Integration zu nutzen.  Wird ein 
optionales Reset am Ende des Verhaltensfunktion beigefügt, so kann die 
Anfangsbedingungen während der Simulation gezwungen werden. Zum 
Beispiel:

BVCak A K V= idt(1/(Cak*V(K,A))*I(BVCak), V(A,K), 
(time>300m)&(time<301m)); bei 3ms Reset erzeugen

Ciao

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