• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Schleifenstabilität bei kaskadierten Schaltwandlern
#1
Ein Schaltwandler liefert eine Rohspannung die weitere Abwärtswandler speist, sogenannte (P)oint - (O)f - (L)oad-Regler.
Der Schaltwandler arbeitet im current mode. Damit ist seine interne Schleifenverstärkung direkt porportional der wirksamen Lastimpedanz.
Die Stabilität wird üblicherweise optimiert für resistive oder Stromquellenlast.
Die angeschlossenen POL-Regler stellen aber keins von beiden dar, sondern einen negativen Innenwiderstand:
Bei konstanter Leistungsentnahme sinkt die Stromaufnahme mit steigender Spannung. Damit ist das bisherige Kompensationsmodell hinfällig.

Um dieser Thematik beizukommen möchte ich eine möglichst generische Simulation aufstellen. Für den POL-Regler sollte ein Ersatzschaltbild erstellt werden, z.B. in Form einer spannungsgesteuerten Stromquelle.
Am Kontrolleingang läge dann an

Vctl = Pin/V(input)

wobei Pin einen konstanten parameter, V(input) die aktuelle Versorgungsspannung darstellt.

Allerdings wird dies für V(input) = 0 nicht funktionieren, da der Strom dann unendlich sein müßte. Somit haben wir eine Funktion, die in zwei Teilstücken definiert werden muß:

V(ctl) = 0
für V(input) < Schwellwert

V(ctl) = Pin / V(input)
für V(input) >= Schwellwert

Hat jemand ne brillante Idee dies umzusetzen?


...mit der Lizenz zum Löten!
 
#2
Auch dieses Thema ist nicht wirklich neu:
R.D. Middlebrook, "Design Techniques for Preventing Input-Filter Oscillations in Switched-Mode Regulators," Proceedings Powercon 5, 1978
...mit der Lizenz zum Löten!
 
#3
Wäre der Thread nicht besser im Netzteilbereich als bei der Forenbox einsortiert? Oder streust Du Deine Threads mit Absicht, damit ich auch was zu tun habe...? lachend
 
#4
Ja!
Ja!
...mit der Lizenz zum Löten!
 
#5
[QUOTE]
V(ctl) = 0
für V(input) < Schwellwert

V(ctl) = Pin / V(input)
für V(input) >= Schwellwert

/QUOTE]

Es gibt in SPICE ein Modell für einen spannungskontrollierten Schalter, dessen Schaltpunkt über eine definierte Schwelle gesteuert wird. Oder ändert sich der Schwellwert selber auch ?

Dann gibt es nur die Möglichkeit mit einem Komparator und diesem Spannungskontrollierten Schalter. Oder einem Komparator kombiniert mit einem Zweiquadrantenmultiplizierer.

Gruss

Charles
 
#6
Zitat:Original geschrieben von phase_accurate

[QUOTE]
V(ctl) = 0
für V(input) < Schwellwert

V(ctl) = Pin / V(input)
für V(input) >= Schwellwert

/QUOTE]

Es gibt in SPICE ein Modell für einen spannungskontrollierten Schalter, dessen Schaltpunkt über eine definierte Schwelle gesteuert wird. Oder ändert sich der Schwellwert selber auch ?
Dann gibt es nur die Möglichkeit mit einem Komparator und diesem Spannungskontrollierten Schalter. Oder einem Komparator kombiniert mit einem Zweiquadrantenmultiplizierer.

Gruss

Charles
Das Problem ist doch, dass ich eine ideale Stromquelle in spice nicht einfach abschalten kann mit hilfe eines in Reihe befindlichen Schalters.
Deshalb denke ich an eine arbiträre Stromquelle deren Verhalten mit dem entsprechenden mathematischen Ausdruck beschrieben wird.

Eine erste grobe Annäherung liefert
eine arbiträre Stromquelle mit dem Wert I={Pout}/(V(Vout)+{UVLO})
wobei Pout=5W und VVLO=2V
Hiermit hat man, mit gewissen Fehlern, immerhin eine Last mit negativem Innenwiderstand von vergleichbaren Verhalten.





...mit der Lizenz zum Löten!
 
#7
Zitat:Original geschrieben von voltwide
V(ctl) = 0
für V(input) < Schwellwert

V(ctl) = Pin / V(input)
für V(input) >= Schwellwert

Hat jemand ne brillante Idee dies umzusetzen?

Brillante Idee: ein Blick in die Spice-Hilfe? misstrau
 
#8
Zitat:Original geschrieben von Rumgucker

Zitat:Original geschrieben von voltwide
V(ctl) = 0
für V(input) < Schwellwert

V(ctl) = Pin / V(input)
für V(input) >= Schwellwert

Hat jemand ne brillante Idee dies umzusetzen?

Brillante Idee: ein Blick in die Spice-Hilfe? misstrau

Wenn ich da was entdeckt hätte, würd ich wohl nicht so blöd fragen überrascht
...mit der Lizenz zum Löten!
 
#9
Arbitrary behavioral voltage source -> runterscrollen -> Programmiersprache sichten. Kennst Du doch alles. Deswegen wundert mich Deine Frage.

Zum Beispiel

V=if(V(input) < {Schwellwert},0,{Pin} / V(input)

{Schwellwert} und {Pin} sind ".params"
 
#10
Zitat:Original geschrieben von Rumgucker

Arbitrary behavioral voltage source -> runterscrollen -> Programmiersprache sichten. Kennst Du doch alles. Deswegen wundert mich Deine Frage.

Zum Beispiel

V=if(V(input) < {Schwellwert},0,{Pin} / V(input)

{Schwellwert} und {Pin} sind ".params"

danke, nö, hatte ich vergessen, die Hitze ist eben nicht so mein Ding Rolleyes

Derweil habe ich einen mathematischen Ausdruck kreiiert, der das auch kann:
[Bild: 800_1405695015_neg_z_load.png]
...mit der Lizenz zum Löten!
 
#11
Soweit, so gut.
Nur dass mit diesem Konstrukt in der vollständigen Schaltung LTSpice gegen die Wand rennt.
Habe ich Dir heute eigentlich schon gesagt, dass ich Spice hasse? ;fight
...mit der Lizenz zum Löten!
 
#12
Gibts ne hilfreiche Fehlermeldung?
 
#13

Auch Deine Expression führt zu denselben Resultaten:
[Bild: 800_1405698517_spice.png]

Ein OPV mit GBW=1meg, SlR=1meg und 3V Betriebsspannung liefert 16V Nadeln von atemberaubender Anstiegszeit!? Ja gehts noch?motz

Anbei die ASC-Datei
https://stromrichter.org/d-amp/content/i..._spice.asc
...mit der Lizenz zum Löten!
 
#14
Btw man findet diese Signale, wenn man den rödelnden Simulator nach einigen Sek stoppt und dann im plot ganz ans Ende der bis dahin simulierten Zeit geht und stark hinein zoomt.
...mit der Lizenz zum Löten!
 
#15
Zitat:Original geschrieben von Rumgucker

Gibts ne hilfreiche Fehlermeldung?

Nein, denn ich habe selbst abgrebrochen, weil der Fortschritt nur noch in nano oder picoSekunden Intervallen zu sehen war.
...mit der Lizenz zum Löten!
 
#16
Zitat:Original geschrieben von voltwide
Auch Deine Expression führt zu denselben Resultaten:
Egal wie man es formuliert. Im Endeffekt werden immer die gleichen Funktionen aufgerufen.
 
#17
Zitat:Original geschrieben von voltwide
Anbei die ASC-Datei
https://stromrichter.org/d-amp/content/i..._spice.asc
Da fehlt das "UniversalOpAmp2"-Symbol. Kann ich also nicht laden.

Mir würde es reichen, wenn Du mir die OP-Amp-Parameter gibst.

--------

Zu dem UniversalOpAmp:

das ist ne Krücke. Du kannst von dem Modell nichts erwarten. So wird zum Beispiel die Versorgungsspannung nicht richtig berücksichtigt. Außerdem kann man mehrere verschiedene "Level" einschalten. Wenn was hängt oder komisch geht, so sollte man mal die anderen Level erproben.
 
#18
Zitat:Original geschrieben von voltwide

Zitat:Original geschrieben von Rumgucker

Gibts ne hilfreiche Fehlermeldung?

Nein, denn ich habe selbst abgrebrochen, weil der Fortschritt nur noch in nano oder picoSekunden Intervallen zu sehen war.
Was erwartest du an einer Unstetigkeit in der Funktion?
 
#19
Ich bin mir auch nicht sicher, ob die ursprüngliche Zielsetzung korrekt ist. Wieso sollte der Strom auf 0 fallen?

Meiner Meinung nach ist das hier eine bessere Definition:

Code:
I=if (V(Vout)<{UVLO},{Pout}/{UVLO},{Pout}/V(Vout))

 
#20
Zitat:Original geschrieben von kahlo

Ich bin mir auch nicht sicher, ob die ursprüngliche Zielsetzung korrekt ist. Wieso sollte der Strom auf 0 fallen?

Meiner Meinung nach ist das hier eine bessere Definition:

Code:
I=if (V(Vout)<{UVLO},{Pout}/{UVLO},{Pout}/V(Vout))

Er muss nicht auf Null fallen, Pout/UVLO ist aber auf jeden Fall zu viel, da unterhalb UVLO der chip nicht aktiviert wird. Hier könnte man irgendeinen Wert wie 10mA eintragen, wenn es denn hilft.

Die Sache mit dem OP-Amp-Modell könnte interessant sein, wenn dieses nun gerade eine Krücke sein soll, welches ist denn besser?
Es gibt da irgendwo auch ein error-Amp-Modell, vmtl aus dem Dunstkreis von monsieur Basso.

...mit der Lizenz zum Löten!