Konvergenzproblem bei LTspice

Hallo NG, ich bin auf ein Konvergenzproblem mit LTspice gesto=DFen. Ich habe als Grundschaltung des "IEC61000-4-5 Surge Generator" aus der yahoo group verwendet. Ziel war das Austesten von verschiedenen Varistoren. Deren Modell stammt aus einer Bibliothek von EPCOS.

Leider kommt es dann zu Konvergenzproblemen, wenn der Varistor beginnt zu leiten (Timestep too small). Auch ein Umschalten auf den Alternate Solver konnte das Problem nicht beseitigen. Ich habe darauf hin Kondensatoren parallel zum Varistor geschaltet und auch Induktivit=E4ten in Reihe, um die Strom- und Spannungsanstiege zu verlangsamen. Leider auch ohne Erfolg.

Gibt es hier noch eine M=F6glichkeit, eine Konvergenz zu erreichen ?

Vielen Dank

Ralf Bartling

Schaltung:

Version 4 SHEET 1 1476 864 WIRE -304 256 -304 144 WIRE -304 352 -304 320 WIRE -272 144 -304 144 WIRE -176 144 -272 144 WIRE -160 352 -304 352 WIRE -160 352 -160 192 WIRE -112 224 -112 192 WIRE -112 352 -160 352 WIRE -112 352 -112 304 WIRE 80 496 80 464 WIRE 80 624 80 576 WIRE 80 640 80 624 WIRE 112 144 -96 144 WIRE 112 208 112 144 WIRE 112 352 -112 352 WIRE 112 352 112 288 WIRE 144 144 112 144 WIRE 224 464 80 464 WIRE 256 144 224 144 WIRE 384 144 336 144 WIRE 384 208 384 144 WIRE 384 352 112 352 WIRE 384 352 384 288 WIRE 480 352 384 352 WIRE 480 624 80 624 WIRE 480 624 480 352 WIRE 560 144 384 144 WIRE 560 176 560 144 WIRE 560 320 560 256 WIRE 560 464 304 464 WIRE 560 464 560 384 WIRE 672 464 560 464 WIRE 672 496 672 464 WIRE 672 624 480 624 WIRE 672 624 672 576 WIRE 864 464 672 464 WIRE 864 512 864 464 WIRE 864 624 672 624 WIRE 864 624 864 592 FLAG -272 144 charge FLAG 80 640 0 SYMBOL res 240 128 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName Rm SYMATTR Value 1.2 SYMBOL res 96 304 M180 WINDOW 0 36 76 Left 0 WINDOW 3 36 40 Left 0 SYMATTR InstName Rs1 SYMATTR Value 6 SYMBOL res 400 304 R180 WINDOW 0 36 76 Left 0 WINDOW 3 36 40 Left 0 SYMATTR InstName Rs2 SYMATTR Value 25 SYMBOL ind 240 160 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 5 56 VBottom 0 SYMATTR InstName Lr SYMATTR Value 8=B5 SYMBOL cap -320 256 R0 SYMATTR InstName Cc SYMATTR Value 12=B5 SYMBOL sw -192 144 R270 WINDOW 0 30 86 VRight 0 WINDOW 3 -15 88 VRight 0 SYMATTR InstName S1 SYMATTR Value MySwitch SYMBOL bv -112 208 R0 WINDOW 0 32 75 Left 0 WINDOW 3 7 105 Left 0 SYMATTR InstName B1 SYMATTR Value V=3Dif(time>{Tdelay},1,0) SYMBOL res 848 496 R0 SYMATTR InstName Rload SYMATTR Value 200 SYMBOL res 544 160 R0 SYMATTR InstName R2 SYMATTR Value {Rcouple} SYMBOL cap 544 320 R0 SYMATTR InstName C1 SYMATTR Value {Ccouple} SYMBOL voltage 80 480 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Vac SYMATTR Value SINE(0 325 50) SYMBOL ind 208 480 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 5 56 VBottom 0 WINDOW 39 -25 56 VBottom 0 SYMATTR InstName L1 SYMATTR Value 20mH SYMATTR SpiceLine Rser=3D100m SYMBOL Misc\\xvaristor 656 480 R0 SYMATTR InstName U1 SYMATTR Value S20K550 TEXT -216 376 Left 0 !.model MySwitch SW(Ron=3D10m Roff=3D10Meg Vt=3D0.5 Vh=3D0) TEXT -976 472 Left 0 !.ic v(charge)=3D{Vtest*1.13} TEXT -976 280 Left 0 !=2Eparam\n+Vtest=3D4000\n+Rcouple=3D10\n+Ccouple=3D18u\n+Tdelay=3D5m TEXT -976 112 Left 0 ;Parameters to specify:\n- Open circuit test voltage\n- Coupling resistor (either 10 or 40 ohms)\n- Coupling capacitor (0.5uF, 9uF, or 18uF)\n- Time delay at beginning of surge (for phase shift) TEXT -976 504 Left 0 !.tran 40m TEXT -112 -32 Left 0 ;IEC 61000-4-5 Line Surge Generator TEXT -80 40 Left 0 ;Basic surge waveform\n(IEC61000-4-5 figures 2 & 3) TEXT 896 96 Right 0 ;Line-to-Line coupling network\n(IEC61000-4-5 figure 6) TEXT 800 352 Left 0 ;System\n(replace 'Rload' with the \nsystem to be tested) TEXT -744 544 Left 0 !.include siov.lib LINE Normal -496 448 -496 448 RECTANGLE Normal 432 400 -336 88 3 RECTANGLE Normal 528 416 704 160 3 RECTANGLE Normal 832 656 960 448 3

Modell des Varistors (aus siov.lib von EPCOS)

  • "SIOV.LIB" Version 4.1 - 1. Nov. 1999
* * *
  • Grundmodell:
  • =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
  • .SUBCKT SIOV 1 2 PARAMS: T=3D1 C=3D1pF L=3D1nH B1=3D1 B2=3D1 B3=3D0 B4=3D0 R_SERIES 1 3 100u L_SERIES 3 4 {L} V_I_SENSE 4 5 0V H_I_SENSE 6 0 V_I_SENSE 10k R_I_SENSE 6 0 1G E_VAR 5 2 VALUE=3D{T*(
  • PWR(10,
  • B1+B2*(LOG10(LIMIT(V(6),1m,100G))-4)+B3*EXP(-LOG10(LIMIT(V(6),1m,100G))+4)+= B4*EXP(LOG10(LIMIT(V(6),1m,100G))-4)
  • )
  • -PWR(10,
  • B1+B2*(LOG10(-LIMIT(V(6),-100G,-1m))-4)+B3*EXP(-LOG10(-LIMIT(V(6),-100G,-1m= ))+4)+B4*EXP(LOG10(-LIMIT(V(6),-100G,-1m))-4)
  • )
  • +LIMIT((V(6)*1k*V(7)),-V(7),V(7))
  • )
} C_PAR 4 2 {C} E_SW 7 0 VALUE=3D{PWR(10,(B1+B2*(-7)+B3*EXP(+7)+B4*EXP(-7)))} R_SW 7 0 1G .ENDS

Verwendete Varistoren:

  • Typenmodell f=FCr S20K440 :
  • ------------------------- .SUBCKT S20K440 1 2 PARAMS: TOL=3D0 X1 1 2 SIOV PARAMS: T=3D{1+TOL/100} C=3D400pF L=3D13.0nH B1=3D2.9428275 B2=3D0.0260298 B3=3D-0.0005482 B4=3D0.0047768 .ENDS
* *
  • Typenmodell f=FCr S20K460 :
  • ------------------------- .SUBCKT S20K460 1 2 PARAMS: TOL=3D0 X1 1 2 SIOV PARAMS: T=3D{1+TOL/100} C=3D380pF L=3D13.0nH B1=3D2.9645747 B2=3D0.0260556 B3=3D-0.0005738 B4=3D0.0046503 .ENDS
* *
  • Typenmodell f=FCr S20K510 :
  • ------------------------- .SUBCKT S20K510 1 2 PARAMS: TOL=3D0 X1 1 2 SIOV PARAMS: T=3D{1+TOL/100} C=3D340pF L=3D13.0nH B1=3D3.0062556 B2=3D0.0273565 B3=3D-0.0005380 B4=3D0.0039692 .ENDS
* *
  • Typenmodell f=FCr S20K550 :
  • ------------------------- .SUBCKT S20K550 1 2 PARAMS: TOL=3D0 X1 1 2 SIOV PARAMS: T=3D{1+TOL/100} C=3D320pF L=3D13.0nH B1=3D3.0514418 B2=3D0.0266902 B3=3D-0.0006016 B4=3D0.0041101 .ENDS
Reply to
Ralf Bartling
Loading thread data ...

Hallo Ralf,

Bei dieser Schaltung mußte ich etwas länger suchen.

Letzendlich habe ich es geschafft durch Setrzen eines max. timestep und Erhöhung von reltol.

Zwei mögliche Kombinationen: Zuvor aber bitte alle Settings im Control Panel zurücksetzen. Control Panel SPICE->Reset to Default Diese Zeilen als SPICE-Lines zum Schaltplan hinzufügen.

.options reltol=0.01 .tran 0 40m 0 .3u .options plotwinsize=0

oder

.options reltol=0.003 .tran 0 40m 0 1u .options plotwinsize=0

Die letzte Zeile ist nur zur Unterdrückung der Daten- Komprimierung da dies zu unnötigen Artefakten in der dargestellten Kurvenform führen kann.

Gruß Helmut

Reply to
Helmut Sennewald

Hallo Helmut, vielen Dank f=FCr den Tip. Diese Simulationsschaltung wird wahrscheinlich einigen Prototypen bei uns das Leben retten. Bislang waren die Versuche am Surgegenerator ber=FCchtigt und auch gef=FCrchtet (es hat dann doch h=E4ufiger mal geknallt).

Ralf

Reply to
Ralf Bartling

Hallo Helmut, ich arbeite seit l=E4ngerem an einer Sache, die ich gerne auch noch mit LTspice simulieren m=F6chte. Da ich bislang noch keine L=F6sung gefunden habe, bitte ich dich noch einmal um Rat.

Ich habe versucht mit LTspice einen diskontinuierlichen, mehrkanaligen Hochsetzsteller zu simulieren. Ziel war es, die Verlustleistung in den Leistungsschaltern, den Freilaufdioden und den Speicherdrosseln abzusch=E4tzen.

Leider ist es mit nicht gelungen, ein geeignetes Steuergesetz zum Ansteuern der Leistungsschalter zu finden. Um das Problem zu verdeutlichen hier zun=E4chst einmal die Grundschaltung des Stellers.

Version 4 SHEET 1 880 680 WIRE -448 144 -448 48 WIRE -448 224 -448 144 WIRE -448 384 -448 304 WIRE -416 48 -448 48 WIRE -352 48 -416 48 WIRE -352 144 -448 144 WIRE -144 48 -272 48 WIRE -144 224 -144 48 WIRE -144 384 -144 304 WIRE -64 48 -144 48 WIRE -64 144 -272 144 WIRE 16 144 -64 144 WIRE 16 224 16 144 WIRE 16 384 16 304 WIRE 96 48 -64 48 WIRE 96 144 16 144 WIRE 208 48 160 48 WIRE 208 144 160 144 WIRE 208 144 208 48 WIRE 208 224 208 144 WIRE 208 384 208 304 FLAG -448 384 0 FLAG 16 384 0 FLAG 208 384 0 FLAG -144 384 0 FLAG -416 48 V_in FLAG -64 48 V_2 FLAG -64 144 V_1 SYMBOL bv -448 208 R0 WINDOW 3 -343 -1 Left 0 SYMATTR Value V=3D325*abs(sin(2*pi*50*time)) SYMATTR InstName B1 SYMBOL ind -368 160 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 5 56 VBottom 0 SYMATTR InstName L1 SYMATTR Value 150=B5H SYMBOL sw 16 208 R0 WINDOW 3 13 104 Left 0 SYMATTR Value SW_1 SYMATTR InstName S1 SYMBOL voltage 208 208 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V1 SYMATTR Value 400 SYMBOL diode 96 160 R270 WINDOW 0 32 32 VTop 0 WINDOW 3 0 32 VBottom 0 SYMATTR InstName D1 SYMBOL sw -144 208 R0 WINDOW 3 9 107 Left 0 SYMATTR Value SW_2 SYMATTR InstName S2 SYMBOL ind -368 64 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 5 56 VBottom 0 SYMATTR InstName L2 SYMATTR Value 150=B5H SYMBOL diode 96 64 R270 WINDOW 0 32 32 VTop 0 WINDOW 3 0 32 VBottom 0 SYMATTR InstName D2 TEXT -786 250 Left 0 !.tran 100m

Die Quelle B1 stellt eine gleichgerichtete Netzspannung dar (es sind aber auch andere Spannungsformen denkbar), die Quelle V1 arbeitet als Senke und modelliert die Lastseite. Dabei sollen die Schalter nach den folgenden Gesetzm=E4=DFigkeiten gesteuert werden:

Jeder der Schalter bekommt zun=E4chst eine konstante Einschaltzeit (T_on genannt, Bereich 1=B5s....10=B5s). In dieser Zeit baut sich in L1,L2 ein Strom linear auf (u=3DL*di/dt, also di=3Du*dt/L), dessen Spitzenwert vom Augenblickswert von B1 abh=E4ngt. Dann werden die Schalter ge=F6ffnet und die Drosseln treiben den Strom weiter =FCber die Freilaufdioden in die Senke V1. Da die Spannung V1 gr=F6=DFer ist, wird der Strom in der Drossel wieder abgebaut. Wenn der Strom in einer Drossel zu null geworden ist, dann sollen die Schalter wieder mit dem konstanten T_on angesteuert werden und ein neuer Zyklus beginnt. Dabei stellt sich in den Drosseln ein dreieckf=F6rmiger Stromverlauf ein, dessen Frequenz um ein vielfaches h=F6her wie die Frequenz der netzseitigen Eingangsspannung ist und dessen Amplitude vom Augenblickswert der Eingangsspannung abh=E4ngt.

Nun kommt das eigentliche Problem: Die beiden Leistungskan=E4le sollen mit einer Phasenverschiebung von

180=B0 arbeiten, um den eingangsseitigen Stromrippel zu verkleinern. Da aber bei einer variablen Eingangsspannung auch die Frequenz variabel ist, muss das im Steuergesetz mit ber=FCcksichtigt werden.

Ich habe diese Schaltung real mit einem Microcontroller aufgebaut und sie funktioniert. Dabei wird die Einschaltzeit (T_on) der Schalter =FCber Timer mit Monoflopfunktion realisiert und der Stromnulldurchgang in der Drossel L1 =FCber eine separate Messwicklung erfasst. Dieses Stromnulldurchgangssignal wird dann zweifach verwertet. Zum einen wird damit wieder der Leistungsschalter SW_1 mit der Zeit T_on angesteuert. Zum anderen wird das Signal vom Controller erfasst. Da der Controller auch den Zeitpunkt des vorherigen Nulldurchganges gespeichert hat, kann er nun einen Z=FCndzeitpunkt f=FCr den zweiten Kanal errechnen, der die Bedingung einer Phasenverschiebung von 180=B0 erf=FCllt. Damit wird dann das Monoflop f=FCr SW_2 getriggert.

Leider ist es mir nicht gelungen, diese Funktion in ein Steuergesetz f=FCr LTspice zu formulieren. M=F6glicherweise ist es aber auch der falsche Weg, den Algorithmus der Hardwarel=F6sung direkt in die Simulation umzusetzen. Kann man in LTspice den Strom in den Drossel als Bedingung f=FCr z.B. Monoflops verwenden ? Dann k=F6nnte man zumindest f=FCr einen Kanal ein Steuergesetz formulieren wie z.B. "if(i(L1)=3D=3D0) --> Trigger des Monoflops"

Ich hoffe, ich konnte die Funktion ausreichend beschreiben. Ich kann dir aber auch gerne einige Scopeplots zumailen, aus denen die Funktion ersichtlich wird.

Vielen Dank

Ralf Bartling

Reply to
Ralf Bartling

Versuchs doch mit einem Komparator. Oder du rechnest den Arbeitspunkt manuell aus und Steuerst den Schalter mit einer Pulsquelle (Voltage source: Pulse). Wenn du den Regler nicht simulieren musst, ist das weitaus am schnellsten.

Gruss

Claudius

Reply to
Claudius Zingerli

"Ralf Bartling" schrieb im Newsbeitrag

Hallo Ralf,

dieser Schaltplan sieht aber noch ziemlich leer aus. :)

Man kann auch einen Kondensator auf eine bestimmte Spannung aufladen. Die Ladezeit ist dann die Einschaltdauer. Den Kondensator muß man natürlich immer wieder entladen.

Die Periodendauer von Kanal-1 kann man auch mittels Stromquelle und Kondensator messen. Zusätzlich braucht man ein Sample/Hold um den Wert festzuhalten.

Jetzt braucht man noch eine weitere Stromquelle und nochmals einen Kondensator um eine zur Periodendauer propoprtionale Verzögerung zu erhalten. Dazu gesellen sich dann noch eine "Ladung" Flipflops die richtig angesteuert werden wollen.

Ja es geht auch I(L1) und I(D1). Ich bevorzuge allerdings eine Spannungsquelle Vn mit 0V in Serie zur Spule. Man mißt dann I(Vn). Das ist die klassische Methode in SPICE.

Ich habe die Schaltung verstanden! Trotzdem würden mich die Scopeplots interessieren. Schick sie mir doch mal. Die Dateigröße spielt dank DSL keine Rolle.

Die Aufgabe läßt sich mit LTspice lösen. Die Lastquelle mit 400V und 0Ohm verwundert mich noch.

Gruß Helmut

Reply to
Helmut Sennewald

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.