Howto AC-Analysis VM-Buck-Regler (Tiefsetzsteller)

Udo

Absoluter Profi
Member
Landesflagge
Für einen Tiefsetzsteller wird der Frequenzgang zunächst für den Leistungsteil und anschließend für den kompensierten Kreis ermittelt. Die .param-Anweisungen enthalten alle benötigten Gleichungen, sodass LTSpice die Reglerparameter errechnen kann. Die Werte für die Reglerparamter (Komponentenauswahl) befinden sich im spice error log, nach dem man die AC-Analyse durchgeführt hat. Ziel war es, mit LTSpice die Werte bestimmen zu können, ohne dass man rechnen muss. Die Schaltung bezieht sich auf den voltage-mode Schaltregler. Die current-mode Regelung wird in einem weiteren Beitrag noch nachgereicht. Die Lösung kann mit 2 verschiedenen Modellen durchgeführt werden. Beide Methoden sind angehängt. Eine Anleitung befindet sich im Schaltplan.
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

die Beschreibung hört sich interessant an und ich hätte mir diese Simulationen gerne einmal angesehen; aber leider fehlen einige Modelle:
Mylib\DCXFMR.asy
Mylib\gain.asy
AmpSimp.asy
PWM-VM.asy
 

Udo

Absoluter Profi
Member
Landesflagge
Hoffe, ich habe die files aus dem richtigen subdirectory erwischt. In der Anfangszeit mit LTspice habe ich aus Unwissenheit die Modelle kopiert und mehrfach abgelegt.
Dort ruhen die jetzt in Frieden.
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

schönen Dank für Deine Bemühungen, aber da passt leider einiges nicht zusammen...

Es sind zwar nun die vier fehlenden Symbole vorhanden, aber nur eine Modelldatei: AmpSimp.sub. Und ausgerechnet die dazu gehörende Symboldatei ampsimp.asy scheint eine andere zu sein, als diejenige, die in den Simulationen instanziiert wird: das Symbol wird nämlich einige Rasterpunkte zu weit oben angezeigt und ist dadurch nicht an die Netze angeschlossen.

Ein kleiner Tipp hierzu: Wenn Du in der Simulation (z. B. Autom_Reglerkompensation.asc) einen Strg+Rechtsklick auf das Gain-Symbol ausführst, kannst Du im sich öffnenden Dialog "Component Attribute Editor" neben der Schaltfläche "Open Symbol" herausfinden, welche asy-Symboldatei genau verwendet wurde. Wenn das Fenster zu schmal ist, lässt es sich unten rechts an der Fensterecke breiter ziehen.

Und PWMVM.asy ist leider auch eine falsche Symboldatei. In den Simulationen (*_Switch.asc) wurde nämlich ein Symbol PWM-VM.asy (mit Bindestrich im Dateinamen) verwendet.

Aber trotzdem vielen Dank!
 

Udo

Absoluter Profi
Member
Landesflagge
Hallo Spicer,
vielen Dank für Deinen Tipp. Ich muss wohl demnächst meine Lib etwas aufräumen. Es sieht so aus, als "hätte ein Lastwagen abgeladen".
Anbei jetzt die files, die zueinander passen sollten. Den DCXFMFR hatte ich früher schon mal gesendet. Den hast Du auch nicht "angemosert".
Alles so ok?
Eine andere Frage:
Meine bisherigen Beiträge gehören eigentlich zu einer Kategorie "Leistungselektronik". Dazu werden auch einige weitere Beiträge gehören. Am ehesten würde sich das vorhandene Präfix zu
Schaltnetzteilen etc. gehören. Dieser Sektor ist aber bislang nur vom Mitglied "Helmut Sennewald" bearbeitet worden und so schön koordiniert, daß ich mich mit meinen Beiträgen nicht "einmischen" möchte.
Was schlägst Du mir diesbezüglich vor ?
 

Anhänge

spicer

Administrator
Teammitglied
Administrator
Moderator
Landesflagge
Hi Udo
Walt hat Dir den Tipp gegeben.
Bitte mach doch einen eigenen/neuen Beitrag.
Helmut (selig) hat mir damals beim Start seine vielen Libs zur Verfügung gestellt.
Als Dank habe ich dafür eine eigene Sektion gemacht.
Wohin gehört dein Beitrag am ehesten? Beispiele und Schemas ?
 

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

ich habe Deine nachgelieferten Modelle getestet, aber es läuft leider immer noch nicht.

Die beiden gain.asy sind identisch zu dem früheren Symbol, und das dazugehörige Modell Gain.sub passt nun auch dazu. Allerdings wird das Modelfile im Symbol über einen relativen Pfad (PWM\Gain.sub) referenziert, so dass man das Modellfile erst in einen Unterordner PWM verschieben muss, damit das Modell geladen werden kann. Es ist sehr aufwendig, das alles selbst aus den Quellen herauszufinden...

Das selbe gilt für PWM-VM. Auch hier muss das Modell in einen Unterordner PWM verschoben werden.

Für AmpSimp hast Du ein völlig anderes Modell mitgeliefert, als beim letzten Mal; das neue Modell ist besser dokumentiert, aber nicht kompatibel zum alten Modell. Und das Symbol passt halt immer noch nicht - es sitzt neben den Anschlüssen (ich füge zur Verdeutlichung einmal einen Screenshot meiner Simulation bei).

Autom_Reglerkompensation_Ausschnitt.png

Ach ja, spicer hat ja darauf hingewiesen, dass ich (Walt) die Beiträge geschrieben habe und nicht er. Nun ja, ich bin ganz neu in diesem Forum und bin gerade dabei, mich etwas umzusehen und dieses Forum kennenzulernen. Natürlich wusste ich auch nicht, dass Du das Modell DCXFMR früher schon einmal in einem anderen Beitrag veröffentlich hast. Das Symbol ist zwar jetzt vorhanden, aber das Modelfile DCXFMR.asc fehlt.

Ich weiß auch nicht, wie man das am besten organisiert, aber damit auch neue User solche Simulationen nutzen können, müssten entweder alle benötigten Modelle zusammen mit der jeweiligen Simulation mitgeliefert werden, oder es müsste so eine Art "Bibliotheksbereich" geben, von wo man die Modelle laden könnte. Aber dann bräuchte man vermutlich ein richtiges Versionsmanagement dafür, denn wenn die Modelle verändert oder erweitert werden, könnte es sein, dass ältere Simulationen nicht mehr damit laufen oder sich anders verhalten. So etwas kann beliebig komplex werden und ich habe leider auch keine Lösung dafür. Vielleicht gibt es auch noch ganz andere Möglichkeiten, für einen Datenaustausch.

Ich danke Dir nochmals für Deine Bemühungen, aber ich glaube, dass es nun langsam unübersichtlich wird, wenn man sich die unterschiedlichen Modelle aus verschiedenen Beiträgen zusammensammeln muss und dann auch noch herausfinden muss, in welche Unterordner man diese jeweils packen muss.

Viele Grüße, Walt
 

Udo

Absoluter Profi
Member
Landesflagge
Hallo Walt,
sorry, dass Du so viel Mühe damit hast. Bei mir liegen die ganzen Files und Modelle in einem Projekt, bei dem die Sachthemen strukturiert, bzw. kategorisiert abgelegt sind.
Daher ist der Zugang für einen fremden user wohl teilweise blockiert. Ich arbeite auch noch nicht sehr lange mit LTspice und muss mich noch an ein paar systemspezifische Eigenarten
gewöhnen. Jede software handelt das (..Lib) etwas anders. Es gibt aber auch einen Vorteil dieses Schlamassels, nämlich den, dass z.B. falsche Modelle nicht gleich in die "Ewigkeit" einfliessen.
Lange Rede .... ich habe in den .asy-Files die Zuweisungen rausgenommen und danach alle .asc-files an einem anderen Rechner erfolgreich ausprobiert. Alle files anbei.
Schreibe mir bitte kurz, ob es geklappt hat. Die PWM-CM.asy und PWM-CM.sub files sind für weitere Aktionen vorgesehen, bei denen die "current-mode Regelung" eingesetzt wird.

Viele Grüße, Udu
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

vielen Dank! Nun laufen alle Simmulationen perfekt durch. Ich finde, das ist eine gute Methode, um Rechnungen direkt in LTspice durchführen zu lassen.

Etwas Probleme hatte ich allerdings, die ermittelten Werte für das Kompensationsnetzwerk im SPICE Error Log zu finden.

Erst als ich im Control Panel unter "Operation" die Option "Generate Expanded Listing" einschaltete, habe ich im Listing die Bauteilwerte gefunden, allerdings nicht als Parameter sondern nur in der Spice-Netzliste:

r3 vo n005 11803.4941981602 c3 n005 n006 4.38114386661266e-009 c1 n006 n007 2.5619308191674e-008 r2 n007 vc 19119.4543274718

War das die Methode, die Du benutzt hast, oder gibt es da noch einen Trick, um alle berechneten Parameter direkt zu sehen?

Dann habe ich doch noch eine Möglichkeit gefunden, um die Parameter im Klartext auszugeben:

Diese Spice-Direktive gibt die Werte im Klartext im SPICE Error Log aus:
.MEAS R3_Value PARAM R3 .MEAS C3_Value PARAM C3 .MEAS R2_Value PARAM R2 .MEAS C1_Value PARAM C1 .MEAS C2_Value PARAM C2

Ergebnis:
r3_value: r3=11803.5 c3_value: c3=4.38114e-009 r2_value: r2=19119.5 c1_value: c1=2.56193e-008 c2_value: c2=3.02397e-009

Jetzt hätte ich wieder einen Tipp für Dich: Ich nutze gerne Jumper (LTspice-Standardbibliothek, Ordner 'Misc', Symbol 'Jumper'), um Stellen, die aufzutrennen sind, für den Anwender (und auch für mich) besser zu dokumentieren. Den Jumper kann man einfach mit dem Move-Befehl (F7) wegziehen und entweder an einer freien Stelle absetzen, oder an eine andere Verbindungsstelle platzieren. So kann man beispielsweise schön Lastwiderstände anschließen und wieder abklemmen, ohne dass man ständig umzeichnen muss.

Ich schicke Dir mal meine umgebaute Simulation zurück...
 

Anhänge

  • Danke
Reaktionen: Udo

Udo

Absoluter Profi
Member
Landesflagge
Hallo Walt,
vielen Dank....es freut mich, dass es geklappt hat.
Ich werde noch auf Deine Fragen eingehen. Ich schicke Dir dann noch die zur AC-Analyse passende Transientensimulation.
Freundliche Grüße
Udo
 

Udo

Absoluter Profi
Member
Landesflagge
Hallo Walt,
den Eintrag bei "Generated Expanded Listing" hätte ich vielleicht noch angeben sollen.
View spice error log erst nach der Simulation abfragen. Ansonsten führe ich dieselben Schritte aus.
.measure bzw. .meas (Abkürzung reicht schon) kannte ich auch schon.
Danke für den Tipp mit dem Symbol "Jumper". Das war mir neu.
Leider ist mir in der Datei "Autom_Reglerkompensation_Switch.asc" ein Textfehler unterlaufen.
Bei "Kompensierter Kreis.........Phase Margin muss stehen: 180-139 = 41° statt 61°. Die Simulation ist aber richtig, mit den errechneten Werten.
Der Unterschied zum einfacheren Modell mit dem XFMR-Trafo erklärt sich wahrscheinlich durch fehlende Modelleintargungen wie Innenwiderstände etc.
Aber das Trafomodell erlaubt trotzdem brauchbare Ergebnisse "auf die Schnelle".
Wie versprochen hänge ich die Transientensimulation noch an. Diese soll schließlich zeigen, ob die Kompensationswerte passen. Ich stelle das file auch noch in
den Bereich "Schaltnetzteile......."
Ich war früher u.a. über 35Jahre Entwickler für Schaltnetzteile, DC/DC-Wandler etc. , bin aber inzwischen knapp 77 Jahre alt. Da spielt der "Eiweisscomputer" schon mal
etwas verrückt. Ich betreibe LTspice hauptsächlich um "die Birne" noch etwas auf Trapp zu halten.

Viele liebe Grüße
Udo
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

danke für die ausführliche Rückmeldung.

Da hast Du ein schönes Hobby, um Dich noch fit zu halten. Und ich habe auch wieder etwas über LTspice gelernt.

Bei mir sind es noch gut 2 Jahrzehnte bis zu Deinem Alter, und ich hoffe, dass ich dann auch noch so schöne Sachen machen kann.

Die Transientensimulation des Tiefsetzstellers läuft auch gut. Eine schöne Simulation. Eine Kleinigkeit möchte ich gerne anmerken: Durch die Verstärkung von 10 der Quelle E3, die Du als Ersatz für die Ladungspumpe nimmst, wird der Haupt-FET mit einer Gate-Source-Spannung von knapp 149 Volt angesteuert. Wie gut, dass die Simulation da recht tolerant ist :) .

Viele Grüße, Walt.
 

Udo

Absoluter Profi
Member
Landesflagge
Hallo Walt,

danke für die Info zur Quelle E3, Verstärkung ist eben nicht gleich dem Spannungswert. Gott sei dank, dass man die "sterbenden" Halbleiter bei LTSpice nicht bezahlen muss.
Als Anhang noch die current-mode Buck-Simulation, diesmal mit Verstärkung von 1 für E3.

Viele Grüße, Udo
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

... und es ist auch gut, dass man diese Halbleiter nicht ständig aus- und wiedereinlöten muss :).

Mit Current-Mode-Reglern habe ich bislang noch nicht gearbeitet. Da müsste ich mich bei Gelegenheit einmal ein bisschen einlesen. Trotzdem vielen Dank für die Simulation. Allerdings fehlt der Strommesssensor "i_sense" gleich am Eingang.

Das Symbol müsste bei Dir in diesem Ordner gespeichert sein:
Mylib\\Leistungselektronik_LIB\\Leistungselektronik_LIB\\i_sense

Aber man kann den Sensor ja einfach überbrücken und so die Simulation laufen lassen. Als ich die detaillierten Plot-Anweisungen gelesen habe ist mir folgendes eingefallen: Kennst Du die Möglichkeit, aus dem Waveform-Fenster heraus über das File-Menü die Ploteinstellungen zu sichern? Wenn die Datei denselben Namen wie die Simulation hat (und die Erweiterung .plt), werden die Ploteinstellungen bei späteren Simulationen automatisch wiederhergestellt. Ich füge das File einmal hier an. Du musst es einfach nur in den Ordner kopieren, in welchem die Simulation CM_Buck_30V_12V_3A_Trans.asc liegt.

Ach, jetzt merke ich, dass man keine .plt-Dateien hochladen kann. Ich habe die Datei gezippt und Du müsstest sie wieder auspacken, wenn Du sie testen möchtest.

Viele Grüße, Walt
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

spicer hat gerade die Möglichkeit freigeschaltet, .plt-Dateien direkt hochzuladen (@spicer Vielen Dank!).

Somit kannst Du die Datei von hier laden und brauchst nicht das zip-Archiv von oben auszupacken.

Viele Grüße, Walt
 

Anhänge

Udo

Absoluter Profi
Member
Landesflagge
Hallo Walt,
Danke für die Rückmeldung.
Ich speichere z.B. die .plt-Datei im Fenster Plot settings.....save Plot Settings ab. Dann kann man anschließend unter View\visible Traces die zuvor gespeicherten Plot hochladen.

Nun zum current mode. Die Dir bekannte voltage mode Regelung ist eine einschleifige Regelung, die meist einen Typ-III Regler zur Kompensation benötigt (siehe den Regler-Teil bei VM-Buck....)
Die voltage mode Regelung ist in der Regel etwas langsamer als die current-mode Regelung. Grund: Die Erfassung des Istwertes für die Ausgangsspannung muss erst die Leistungsstufe mit LC-Ausgangsfiler
durchlaufen, was Verzögerungen und Phasendrehungen beinhaltet. Wenn dann der Istwert (Vout) angekommen ist, wird er mit der Referenzspannung verglichen und über den Regler wieder an die Pulsbreitenmodulation
(PWM) zurückgeführt. Dabei müssen die Phasenverschiebungen kompensiert werden. Die kompensierte Regelschleife muss bei einer Verstärkung von 0 dB noch eine Phasenreserve von ca. 45°.....80° bis zur Grenze von 180° aufweisen. Ansonsten schwingt das System. Zusätzlich sollte bei 180° noch ein Abstand der Verstärkung (z.B. 10dB) vorhanden sein. Das gibt die Sicherheit, um nicht dicht an die 0dB Grenze und dessen Phasenreserve zu kommen.
Bei der current mode Regelung handelt es sich um eine zweischleifige Regelmethode, bei der zunächst der Schaltstrom erfasst wird und dann die Information des Istwertes der Ausgangsspannung "nachgeschoben" wird und in den Regelkreis mit einfliesst. Spannungseinbrüche auf Grund von Lastsprüngen werden bei der current mode Regelung relativ schnell erfasst und ausgeglichen. Das ist mit diesen einfachen Worten relativ simpel ausgedrückt, das geht an einem Schaltbild viel besser. Drum habe ich Dir als Anhang aus vorhandener Literatur zwei Skizzen, jeweils zur Voltage Mode Regelung und eine zur Current Mode Regelung angehängt.

Da die Stromerfassung beim current mode zum Regelprinzip gehört, kann man diese Strommessung nicht ignorieren !!!!!!!!!! Sensor überbrücken geht also nicht, sonst ist man wieder beim Voltage Mode.
Ich füge deshalb den Stromsensor als Anhang bei. Es gibt dazu keine sub-Datei, nur eine .asy und .asc. Bei mir hat das funktioniert. Kopiere die Dateien dahin, wo sich der Schaltpan befindet.

Hoffen wir, dass es klappt.

Viele liebe Grüße und ein schönes Wochenende
 

Anhänge

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

herzlichen Dank für die ausführlichen Erklärungen und die beigestellten Screenshots. Das ist ja wie eine Privatvorlesung.

Ich verstehe nun besser, was es mit der Current-Mode-Regelung auf sich hat. Ich habe bei TI eine schöne (schon etwas ältere) Design Note von Unitrode gefunden, wo die Unterschiede zwischen Voltage Mode Control und Current Mode Control beleuchtet werden. Da werden auch Hinweise gegeben, nach welchen Kriterien man welche Regler auswählt. Falls es interessierte Leser gibt, veröffentliche ich hier den Link zum Dokument:

https://www.ti.com/lit/pdf/slua119

Der Stromsensor funktioniert auch wunderbar und nun sieht die Simulation wesentlich besser aus. Als ich Deine Performance-Angaben nachmessen wollte, wonach die Voltage-Mode-Regelung deutlich länger zum Ausregeln des Lastsprunges braucht (250 µs statt 150 µs), ist mir aufgefallen, dass diese Variante gar nicht mit den angegebenen 100 kHz Schaltfrequenz läuft, sondern nur mit 45 kHz. Ich habe dann die Frequenz erhöht, indem ich zwischen Vref und Rt/Ct am Schaltregler einen Widerstand einfügte (6 k für ca. 78 kHz bzw. 3k9 für ca. 93 kHz), aber damit hat sich die Ausregelzeit doch nicht verkürzt, was ich intuitiv vermutet hatte.

Interessehalber habe ich dann einmal das Verhalten auf Eingangsspannungssprünge (line regulation) untersucht. Die Dimensionierung ist dabei wieder im Orginalzustand. Als Last ist jeweils nur Rload vorhanden und Rload1 wird nicht geschaltet. Erstaunlicherweise scheint hier die Current-Mode-Regelung wesentliche Vorteile zu haben. Während im Voltage-Mode ein Eingangsspannungssprung von 1V schon deutlich in der Ausgangsspannung sichtbar ist, konnte ich im Current-Mode ein Sprung von 6 V anlegen, ohne dass sich am Ausgang viel getan hat. Ein Ergebnis hänge ich in Form eines Screenshots mit an.

Aber nun ist es auch recht spät geworden. Ich wünsche Dir auch noch ein schönes Restwochenende.

Viele Grüße, Walt
 

Anhänge

Udo

Absoluter Profi
Member
Landesflagge
Hallo Walt,
Dein Versuch mit dem Spannungssprung am Eingang ist Super! Die current-mode Regelung ist deshalb besser als die Voltage-mode Regelung, weil sich der Spannungssprung sofort in einer Erhöhung des Schaltstromes
di/dt bemerkbar macht.
Nun haben wir mit vereinten Kräften ein interessantes Beispiel aus der Leistungselektronik erfolgreich über die Bühne gebracht.
Wir haben dabei - jeder in seinem Bereich - viel dazu gelernt.
Es hat mir viel Spaß und Freude bereitet, mit Dir zusammen zu arbeiten.

Viele Grüße, Udo
 

Walt

Aktiver Benutzer
Member
Landesflagge
Hallo Udo,

mir hat es auch sehr gefallen, mit Deiner Hilfe etwas Neues über Tiefsetzsteller zu lernen und auch mal wieder etwas mit LTspice zu machen.

Ich wünsche Dir weiterhin viel Spaß mit Deinen Simulationen.

Viele Grüße, Walt
 

Benutzer welche diesen Thread betrachten (Mitglieder: 0, Gäste: 1)

Oben