Hallo ihr alle, für die angegebene Schaltung soll ich einen PID-Regler einstellen, besonderes Wichtig ist dabei die Reaktion auf Lastsprünge (nur zunehmend), der Sollwert verändert sich nur langsam. Selbst eine bleibende Regeldifferenz von 2 V könnte bleiben, bloß größere Überschwinger sollten ausbleiben. - Sollwert ca. 8 bis 45 Volt - Laststrom 0,1 bis 4 A - Ri vernachlässigbar - PWM-Frequenz 200 kHz * Ist mein Blockschaltbild für die Strecke so richtig? * Bisher würde ich einen PI-Regler mit Störgrößenaufschaltung (I_Last) nehmen, die Dimensionierung würde ich nach Ziegler-Nichols machen, geht das so? * Muss ich meine Reglerparameter sogar mit dem Sollwert verändern? Liebe Experten, wie würdet Ihr so ein Problem angehen? Viele Grüße und danke im Voraus, Bernhard
Den FET direkt auf den Cap durchknallen zu lassen ist eine schlechte Idee. Du hast die Spule und die Diode vergessen.
Ich kenne den Haken der Schaltung sehr wohl, aber diese kann ich nunmal nicht verändern. Die Schaltung funktionert so und wurde bereits (allerdings mehr schlecht als recht) geregelt.
Zum Glueck ist der Trafo ein Schwamm mit einem genuegend grossen Innenwiderstand. Mit einem grossen Ringkern ginge das nicht. Du probierst dem Fet einen Widerstand proportional dem dutycycle zuzuweisen ? Wenn er leitet hat er ein paar miliohm, und wenn nicht ist er offen. Der ESR des Kondensators ist hier Null. Ob man das darf ? Zum Regler, wenn ein Regelfehler zugelassen ist, sollte ein P-Regler genuegen.
Ziegler-Nichols verursacht ca 20% Überschwingen AFAIR. Außerdem könnte der I-Anteil in Verbindung mit der Stellgrößenbeschränkung (mehr als 100% Duty geht halt nicht) zu unschönen Effekten führen. Wenn du wirklich 2 V Regeldifferenz tolerieren kannst, würde ich im ersten Versuch einen schnöden P-Regler untersuchen. Wenn der nicht schnell genug ist, einen PD. Der I-Anteil macht den Regler nur unnötig langsam und bereitet Kopfschmerzen bei nicht absolut linearen Systemen (PWM mit Stellgrößenbegrenzung ist nichtlinear). Also weg damit. Einstellung des Reglers über Einstellregeln (Wikipedia) oder Simulation/Rastern der Parameter/Optimierung.
Die Regelung wird ohne SPule nicht richtig funktionieren, zumindest nicht, wenn du den FET nur an/aus schaltest. Vielleicth hilft der Anhang weiter...
Vielen Dank für eure Antworten. Faul wie ich bin, habe ich den Regler gerade mal als reinen P-Typ geschaltet und ein paar Kp-Werte ausprobiert; leider ohne Erfolg. Wenn ich den Regler so auf kleine Lasten vernünftig einstelle, dann erreiche ich bei großen Lasten die Spannung nicht mehr. Also benötige ich doch einen variablen Kp, oder?
@ Matthias danke für das Rechenbeispiel. Wieso soll diese Schaltung eine Regelung unmöglich machen? Nehmen wir mal an, der MOSFET kann weggen Leitungsinduktivitäten und des Innenwiderstands des Trafos als linear einstellbarer Widerstand angesehen werden (in etwa geht das ja, weil die Schaltung ja bisher funktionierte). Dann handelt es sich doch um einen einstellbaren Spannungsteiler mit Kondesator parallel zum Lastwiderstand.
> weggen Leitungsinduktivitäten und.. >ieso soll diese Schaltung eine Regelung unmöglich machen? Dann setz mal in mein Beispiel als L einige Nanohenry ein.. Sowas wirkt erst bei vielen Megahertz.. Außerdem ist bei L=0 mein Beispiel falsch, weil dann UL/sL=IL auf "Null durch Null" als Grenzwertbetrachtung rausläuft... Immer wenn du den FET anschaltest, lädst du mit maximalem Strom den Elko... >ands des Trafos als linear einstellbarer Widerstand Dann führst du aber das Schaltreglerprinzip ad adsurdum! Und kannst gleich nen FET mit analoger ansteuerung nehmen! Wäre auch einfacher im Aufbau (kein Sägezahn,...)
>> Immer wenn du den FET anschaltest, lädst du mit maximalem Strom den >> Elko... Ja, das ist sicherlich weder ideal noch sonderlich hübsch. Es fließen maximal knapp 20 A, wenn ich meinem Oszi trauen darf. Aber wie gesagt ist die Schaltung nun mal gegeben (existiert ca. 50 mal und soll nur durch Firmware-Update verbessert werden). >> Dann führst du aber das Schaltreglerprinzip ad adsurdum! >> Und kannst gleich nen FET mit analoger ansteuerung nehmen! Wäre auch >> einfacher im Aufbau (kein Sägezahn,...) Der Ersatzwiderstand des Ventils ist bei idealem PWM doch R = Rdson + d*unendlich, oder? So werden in Halbleitern ja auch Widerstände nachgebildet.
>R = Rdson + d*unendlich, oder? Ich würde sagen eher so: R_mittel = Rdson / d Aber eben nur im Mittel. Für ne Regelung gibt das Null Punkte. Weil immer im Einschaltmoment ein Riesenstrom fließt.. >So werden in Halbleitern ja auch Widerstände nachgebildet. Hab ich noch nie gesehen, dass irgendwelche (Pullups)-Widerstände in Schaltkreisen mit PWM realisiert werden. Dort wird meineswissens die Sättigungskurve von selbstleitenden FETs als Funktion von Ugs verwendet.
>> Ich würde sagen eher so: R_mittel = Rdson / d Ok, Kopfnuss an mich. >> Für ne Regelung gibt das Null Punkte. Weil >> immer im Einschaltmoment ein Riesenstrom fließt.. Wieso sollten mich die Pulsströme am Kondensator bei der Spannungsregelung? Die Welligkeit der Ausgangsspannung ergibt sich doch nach: C = Q/dU = (I*t)/dU t sei dabei die Periodendauer (d = 1) dU (die Welligkeit) = 5*10e-6 s * 18 A / 10 * 10e-3 F ~ 10 mV Erlich gesagt habe ich sie noch nie richtig gemessen (war halt weit unter 1 V), also bitte nicht hauen, falls meine Rechnung schlecht war. Nachdem du ja wirklich Ahnung zu haben scheinst, könntest du mir auch etwas zur Regelung der Strecke sagen?
Ich stelle jetzt einfach mal meinen Gedankengang vor; vielleicht könntest du da einhaken, wo ich falsch liege. Mein Wissen ist (fast) nur theoretisch. * Die geforderte Ausregelzeit für einen 50%-Lastsprung liegt bei 15 ms, das tau des RC-Glieds beträgt bei d=0,5 tau = Rdson / d * C = 20*10e-3 Ohm / 0,5 * 10*10e-3 F ~ 0,4 µs Es handelt sich um eine Strecke 1. Ordnung ohne Totzeit mit (im Verhältnis zur geforderten Ausregelzeit) recht kleinem tau. * Benötigt wird also ein PI-Regler. * Der Laststrom beinflusst die benötigte Stellgröße d völlig linear, also ist eine Störgrößenaufschaltung mit d_add = Rdson/Rparallel_add = (Ilast*Rdson)/(Utrafo-Ulast) angebracht. * Dass ein Anpassen der Parameter an die Sollgröße schön ist, habe ich gelsen und würde es ungekaut ubernehmen. * Die Einstellung würde ich, wie erwähnt, nach Ziegler-Nichols o.ä. machen; es gibt ja auch "sanfte" Faktoren.
Einer muss den Merkerer und Besserwisser spielen... 50 mal einen Mist verkloppt zu haben macht die Sache nicht besser. Wenn die Dinger aussteigen gibt's Aerger. Auch wenn die Gewaehrleistungsfrist schon abgelafen ist, kann man sich den Namen versauen. Der 10000uF Elko ist akut gefaerdet wegen Ueberstrom vorzeitig auszusteigen. 20A bei 200kHz ist vielzuviel fuer einen 10000uF. Vom EMV Problemen reden wir noch nicht. Die 20A bei 200kHz sind auf der Zuleitung. Das wird schwierig, die nicht abstrahlen zu lassen.
Auf dieser Basis funktioniert der Schaltregler aus dem Beitrag "Kurz und klein gehackt" in der Elrad 12/87 S.32. Vielleicht hat deine Schaltung dort "Anleihen" gemacht. Die knapp 20 Euro für die DVD sind doch eine gute Investition! @Matthias L.: Schaltregler benötigen einen Energiespeicher und es ist eigentlich egal, ob es eine Spule oder ein Kondensator ist. Die Kondensatoren am ICL 7660 und seinen Brüdern halten ja auch Jahre,oder? Arno
@ Arno H. (Gast): Ein switched-capacitor-schaltregler ist was anderes ein ein step-up/down..! Dort gibt es auch solche Stromspitzen, nur werden diese keine 20A erreichen, weil die (internen) Schalter einen großen Widerstand haben (gegenüber FETs bei Step-up/down).
>* Benötigt wird also ein PI-Regler. Wieso das denn? >* Der Laststrom beinflusst die benötigte Stellgröße d völlig linear, >also ist eine Störgrößenaufschaltung mit >d_add = Rdson/Rparallel_add = (Ilast*Rdson)/(Utrafo-Ulast) >angebracht. Beeinflusst aber praktisch die Begrenzung der Stellgröße, also insgesammt nicht so ganz linear. >* Dass ein Anpassen der Parameter an die Sollgröße schön ist, habe ich >gelsen und würde es ungekaut ubernehmen. Na dann verschluck dich nicht! Ein korrekt ausgelegter Regler braucht das bei bekannter (und nicht veränderlicher) Strecke nicht. >* Die Einstellung würde ich, wie erwähnt, nach Ziegler-Nichols o.ä. >machen; es gibt ja auch "sanfte" Faktoren. WLKIKIV! Ziegler-Nichols = Überschwinger. Mit Stellgrößenbegrenzung wird es hässlich bis instabil. Nachdem du das ja mit einer neuen Firmware verbessern willst, geh ich mal von einem zeitdiskreten Regler aus. Vergiss die Totzeit nicht. Aber was schreib ich. Wenn du nicht lesen willst, musst du eben fühlen. Das Schaltreglerkonzept ohne Spule wird auch bei einigen PC-Mainboards eingesetzt, funktioniert also. Die "Fach"presse war ganz angetan, dass endlich PWM (buzzword) für die Spannungsregler eingesetzt wird...
>> Wieso das denn? Der D-Anteil scheint mir unnötig, da die Zeitkonstante der Strecke nicht sonderlich groß ist. >> Beeinflusst aber praktisch die Begrenzung der Stellgröße, also >> insgesammt nicht so ganz linear. Ok, aber würdest du es jetzt verwenden oder nicht? >> Na dann verschluck dich nicht! Ein korrekt ausgelegter Regler braucht >> das bei bekannter (und nicht veränderlicher) Strecke nicht. Danke, dann hat sich das schon mal erledigt. >> Aber was schreib ich. Wenn du nicht lesen willst, musst du eben fühlen. Ich glaub dir ja; aber welches Verfahren würdest du jetzt nehmen? >> Vergiss die Totzeit nicht. Die Strecke hat doch keine Totzeit, oder? Und was soll ich mit der Totzeit anfangen? Also ein einfacher P-Regler geht, wie gesagt, nicht. Was würdest du jetzt machen: - Störgrößenaufschaltung - doch Parameter-Resterung (hast du weiter oben vorgeschlagen) - ??? Danke im Voraus, Bernhard
Bernhard wrote: > Die Schaltung funktionert so und wurde bereits > (allerdings mehr schlecht als recht) geregelt. Aha, die Schaltung funktioniert, nur die Regelung nicht. Witz Du bist umzingelt. Man kann grobe Schaltungsfehler nicht mit SW ausbügeln. Da die Schaltung keinerlei Energiespeicher im PWM-Zweig enthält, hat sie den gleichen Wirkungsgrad wie ein Linearregler. Bloß, daß man je nach Innenwiderstand des FET die Verluste in den Trafoinnenwiderstand verlagert. Einen gute Idee also, um den Trafo zu killen. Und den Siebelko durch die hohen Impulsströme sowieso. Peter
@ Peter Dannegger Zitat MeckMeck: Einer muss den Merkerer und Besserwisser spielen...
>>Man kann grobe Schaltungsfehler nicht mit SW ausbügeln.
Peter Dannegger hat mit seiner Aussage vollkommen recht!
Ich kenne andere Beiträge von Peter Dannegger, halte ihn (bzw. dich) für sehr kompetent und bestreite die Aussagen nicht. Ich halte es aber für wenig sinnvoll, mich wegen einer mir vorgelegten Hardware anzugreifen und werde ganz sicher nicht ständig wiederholen, dass die Schaltung funktioniert und nur im Regelverhlaten verbessert werden soll. Für mich stellt sich bei ähnlich "unschönen" Problemstellungen anderer Fragesteller immer die Frage, ob ich auf "Wo geht es nach HH" mit "Stuttagrt ist falsch" (egal wie recht ich damit habe) oder mit "Ich würde links abbiegen" (und somit eine vielleicht konstruktive und auch für mich lehrreiche Diskussion anregen) antworten sollte.
> Für mich stellt sich bei ähnlich "unschönen" Problemstellungen anderer > Fragesteller immer die Frage, ob ich auf "Wo geht es nach HH" mit > "Stuttagrt ist falsch" Du wirst damit leben müssen, dass manche Teilnehmer zu anderen Ergebnissen kommen als du. Das ist auch unter Experten nicht unüblich. Übrigens ist es im Forum sehr häufig, dass einer die falsche Frage stellt. Da denkt sich jemand eine Lösung aus, hat ca. die Hälfte seines Problems damit gelöst und will für den Rest noch eine Detailfrage klären (so sieht er es). Und kriegt die gänzlich ungeliebte Antwort, dass er schon die ganze Zeit auf dem Holzweg war. Manchmal führt das zur richtigen Lösung, manchmal zu erbittertem Streit, weil keiner der "sogenannten Experten" die ihm genehme Lösung präsentiert.
>Der D-Anteil scheint mir unnötig, da die Zeitkonstante der Strecke nicht >sonderlich groß ist. Damit hat der D-Anteil wenig zu tun. Er sorgt erstens für schnelles Ansprechen im Falle eines echt linearen Systems (hier nicht der Fall) und zweitens verringert er Überschwingen durch hohe P-Anteile. Und genau dazu könnte man ihn hier einsetzen. >Ok, aber würdest du es jetzt verwenden oder nicht? PI würde ich nicht machen, weil der I-Anteil wie gesagt nur Probleme macht und ein bleibender Fehler akzeptabel ist. Da die Anforderungen an die Ausregelgeschwindigkeit nicht allzu hoch sind, müsste das eigentlich mit einem reinen P-Regler gehen. Falls nicht eben PD. Du sagst, dass die Sollgröße unterschiedliche Parameter notwendig macht. Das ist sehr seltsam. Eine Verstärkungsanpassung ist eher bei Unsicheren Systemen und robuster Regelung üblich. Vielleicht solltest du mal Sourcecode und Blockschaltbild deines Reglers zeigen. >Ich glaub dir ja; aber welches Verfahren würdest du jetzt nehmen? Für den schnellen Schuss: P-Regler, anfangen mit Verstärkung 0 (=keine Regelung), dann Verstärkung langsam erhöhen und mit Sprungantworten kontrollieren, ob das gewünschte Verhalten erreicht werden kann. Wenn z.B. der bleibende Regelfehler bei tolerierbarem Überschwingen zu groß ist, kann man das mit einem D-Anteil in den Griff bekommen. >> Vergiss die Totzeit nicht. >Die Strecke hat doch keine Totzeit, oder? Und was soll ich mit der >Totzeit anfangen? Abgetasteter Regler -> effektive Totzeit von Ta/2 Schaltende Ansteuerung -> Totzeit Die wird bei ZN und Konsorten normalerweise nicht berücksichtigt. >Also ein einfacher P-Regler geht, wie gesagt, nicht. Was würdest du >jetzt machen: >- Störgrößenaufschaltung >- doch Parameter-Resterung (hast du weiter oben vorgeschlagen) >- ??? Das wäre komisch. P-Regler geht fast immer. Ist halt nur die Frage, wie gut. Falls du Matlab/Simulink hast, bau dir ein Modell und spiel damit mal herum. Falls nicht, nimm Scilab/Scicos ;-) Du scheinst ja recht wenig Erfahrung mit Reglern zu haben, also sammle sie. Und genaue Angaben zur Realisierung des Reglers wären auch nützlich. Mir scheint, dass da noch ein Fehler drin ist.
@Frank Zuerst mal danke für deine Antworten, langsam komme ich weiter. >> Du scheinst ja recht wenig Erfahrung mit Reglern zu haben, also sammle >> sie Ack, damit habe ich gerade angefangen. Leider habe ich die Strecke falsch gedeutet; es handelt sich nicht um ein lineares System, da die Ausgangsgröße (U_L) nicht proportional zur Stellgröße (d) ist. Es stellt sich ja schließlich der Endwert U_L = U_T - Rdson / d * I_L ein. Deshalb konnte ich die Strecke bisher auch nicht vernünftig regeln; der für einen AP passende Parametersatz hat an einem anderen AP zu viel Schwingungen oder Regelabweichung erzeugt. -> Gain-scheduling >> PI würde ich nicht machen, weil der I-Anteil wie gesagt nur Probleme >> macht und ein bleibender Fehler akzeptabel ist. Gut, und da ich die Strecke sowieso durch gain-scheduling (Regelparameter in Abhängigkeit von I_L) linearisieren muss wird auch die bliebende Regelabweichung nicht zu groß werden. >> verringert er Überschwingen durch hohe P-Anteile. Und genau >> dazu könnte man ihn hier einsetzen. Ok, daran habe ich nicht gedacht. Also PD. >> Und genaue >> Angaben zur Realisierung des Reglers wären auch nützlich. Mir scheint, >> dass da noch ein Fehler drin ist. Es ist ein PID-Regler mit Abtastzeit 2 ms, 14 bit Auflösung, der Möglichkeit von gain-scheduling und einer einstellbaren I-Anteil-Begrenzung. Meine Dokumentation ist fast komplett im Quelltext und den möchte ich hier nicht posten. Wenn du ihn möchtest, kann ich ihn dir gerne per E-Mail schicken.
Wenn man ein System nicht kennt zieht man den Signalanalyzer (Agilent..) hervor und misst das System mal durch. Resultat ist die Uebertragungsfunktion der Strecke, resp von Stellglied plus Strecke plus Sensoren. Ein System ist linear, wenn doppelter Eingang auch doppelten Ausgang bedeuten. Falls nicht, muss man die Arbeitspunkte linearisieren. Dh man bekommt fuer jeden Arbeitspunkt eine Uebertragungsfunktion. Und dann zieht man die Theorie der Regelungstechnik wieder hervor und strickt sich einen Regler.
>Ein System ist linear, wenn doppelter Eingang auch doppelten >Ausgang bedeuten Das stimmt so aber nicht.. Denke mal an ein einfaches D-Verhalten. Ein System ist dann linear, wenn alle Ableitungen lineare konstante Koeffizienten hat! Also keine Wurzeln, Potenzen...
Deine Definition ist rekursiv. Meine war etwas salopp. Mach einen Frequenzsweep mit 10mV AC am Eingang und vergleiche den Ausgang mit dem eines 20mV Frequenzsweeps.
Kannst du den wenigstens an der PWM etwas ändern, bzw. diese ersetzen? Ich würde dir dann zu einem Hysterese-Controller raten (Bang-Bang-Controller). Normalerweise setzt man diesen in Verbindung z.B. mit einem Tiefsetzsteller ein. Das ist ziemlich einfach: Du misst die Ausgangsspannung und schaltest bei z.B. 4.9V den FET durch und bei 5.1V wieder ab. Im Durchschnitt ergeben sich dann z.B. 5V. Die durchschnittliche Schaltfrequenz ergibt sich mit R, C und deinem Lastwiderstand. Das ist keine gute Lösung, aber für deine fest vorgegebene Hardware die einfachste die ich kenne. +++
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.