Forum: Analoge Elektronik und Schaltungstechnik LTspice Startwert zum Zeitpunkt Null in Variable speichern


von Franz (Gast)


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

von Helmut S. (helmuts)


Angehängte Dateien:

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

von Franz (Gast)


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

von analogspiceman (Gast)


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

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.