LTspice Startwert zum Zeitpunkt Null in Variable speichern

Gast #3929056
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
Angehängte Dateien:
Gast
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
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.