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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.