Regelung von Schaltnetzteil

Naja, der anschließende Umrichter arbeitet mit 2,5 KHz und treibt ne 3 phasen Async. Maschine an. Aber selbst wenn der Ripple da 5V hat, sollte das doch egal sein, muss halt nur der Regler im DCDC Wandler mit klar kommen ;)

Gruß

Reply to
Michael Dreschmann
Loading thread data ...

Keine Sorge, es gibt natürlich eine externe, softwarefreie Überwachung. Allein schon, um Überspannungen vom Motor aus dem Zwischenkreis abzubauen. In einer ersten Stufe wird ein Leistungswiderstand per PWM drangeschaltet und in der zweiten die gesamte Logikversorgung des DCDC Wandlers gekappt. Eig. sollte die Hauptstromzufuhr unterbrochen werden, aber wir finden kein gescheites Schütze dazu. Insgesamt sind nur für die Zwischenkreisspannung drei uP gestützte und eine voll analoge Überwachung eingeplant.

Gruß

Reply to
Michael Dreschmann

Davor, aber das müsste sich da doch auch schon bemerkbar machen, wenn auch vielleicht etwas schwächer.

Die variiert, je nach Batteriezustand halt. Da wir am Eingang aber 200 bis 250A benötigen und nicht die schwersten Battieren mitnehmen wollen sollte man die Eingangsspannung vielleicht wirklich mit einbeziehen.

Hier mal der Regler Code: Die Parameter (pid_p/i/d_factor) sind s16 Festkomma, mit 8 Nachkommastellen.

--
typedef signed long			s32;
typedef signed short			s16;
 Click to see the full signature
Reply to
Michael Dreschmann

Moin!

Davor bringt nichts, wenn Du den Lastwechsel sehen willst. Aber falls der Umrichter irgendwie mit Deinem Zwischkreisregler kommuniziert, könnte der natürlich auch bescheidsagen, wieviel Strom er gleich ziehen wird - dann brauchst Du ihn nicht messen und kannst trotzdem schon gegensteuern.

Wenn Du die Parameter erstmal optimiert hast, wirst Du sehen, in welchem Wertebereich sie liegen und ob die Nachkommastellen überhaupt nötig sind. Evtl. kannst Du dann...

...auf... ret = (p_term + d_term) + i_term / 256; reduzieren und p_term, d_term in 16 Bit rechnen.

Das ist grad doppeldeutig. Im Gleichgewicht ist der P-Teil Null, das heißt wenn die Kiste dauerhaft 100% machen muss, dann müssen die aus dem I-Teil kommen, ja. Und ja, Dein I-Teil ist in Nullkommanix auf 100% und weit drüber:

Stell Dir vor, die Last geht schlagartig von 100% auf Null. Würdest Du nicht gegenregeln, platzen nach 13 Zyklen Deiner Regelungsschleife die Kondensatoren, hattest Du ausgerechnet. Gut, im ersten Moment übernimmt der P-Teil das Gegensteuern, aber wie gesagt, ohne Fehler keinen P-Teil. Nun nehmen wir an, pid_p_factor ist so ausgelegt, daß er bei 10V Überspannung 100% gegensteuert, also hast Du maximal 10V zuviel. Jetzt möchtest Du, daß die Spannung in - sagenwirmal - 100 Zyklen wieder normal ist (und das ist sehr langsam). Dann muss der Integrator bei 10V Überspannung in 100 Zyklen von 100% auf Null kommen, damit der P-Teil wieder ausgeglichen ist.

Jetzt stell Dir vor, Du schaltest Deine gesamte Kiste ein, die Kondensatoren sind leer. In dem Moment liegt Deine Spannung nicht bloß

10V drüber, sondern satte 540V unter Soll. Das heißt, Dein Integrator ist in 2 Zyklen auf 100%. In 2 Zyklen sind Deine Kondensatoren aber nicht voll, sondern erst in 170 Zyklen. Rate mal, wo der I-Teil inzwischen angekommen ist... :-)

Jau, Du müsstest pid_sum_error auf +-32767 * 256 / pid_i_factor begrenzen, nicht nur wegen overflow, sondern weil er so weit, wie er hochläuft, auch mühsam wieder runterlaufen muss. Frag Tante Google mal nach integrator overshoot. Der PI(D) wird eben optimal auf eine lineare Strecke ausgelegt, und wenn Du erst vor der PWM begrenzt ohne daß der I-Teil was davon mitbekommt, dann ist die Strecke hochgradig nichtlinear, was sich in mächtigen Überschwingern äußert.

Viel Erfolg!

Gruß, Michael.

Reply to
Michael Eggert

Am besten unter dem Begriff "integrator wind-up" suchen.

Oder es auessert sich in einem gepfefferten Knall :-)

Was auch immer Michael macht, eine harte Begrenzung per Referenz mit Sofort-Abwuergevorrichtung (PWM-Pulse wegnehmen) waere hier echt angesagt. Muss ja nicht auf 550V gelegt werden wo die Referenz auf einige Promille stimmen muesste, 560-570V sollte an sich auch gehen.

Michael: Ich vergass zu erwaehnen dass Tim Wescott einer der Digitalregler-Gurus ist:

formatting link

Er ist in s.e.design recht aktiv. Consulting macht er m.W. auch falls noetig.

--
Gruesse, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

Ne Kommunikationsmöglichkeit gibts schon, allerdings würd ich den Wandler gerne unabhängig halten. Vielleicht braucht man den ja nochmal woanders ;) Wenn dann bau ich lieber noch nen Strommesser am Ausgang ein. Aber zuerst wirds mal so ausprobiert, vielleicht klappts ja auch so gut.

Genau, deshalb eine der ersten Fragen ob jemand weiß in welchem Bereich diese Faktoren vermutlich zu suchen sind. Aber ich denke so langsam kann ich mir das auch selbst ausdenken.

Ich glaube wir meinen das selbe. Ich wollte sagen, dass der Integrator so begrenzt werden muss, dass er selbst max. 100% Ausschlag generieren kann und nicht z.B. 200% welche dann in einem nachfolgenden Schritt wieder auf 100% reduziert würden.

Super, das erklärt sehr schön wie son Reglerablauf aussieht. Nach der hochmathematischen Reglungstechnikvorlesung hatte ich da intuitiv an wesentlich komplexere Zusammenhänge geglaubt :)

Danke!

Gruß, Michael

Reply to
Michael Dreschmann

Klar, die 550V waren nur ein Beispiel. Aber man muss ja auch noch ein bischen Messungenauigkeit usw. einbeziehen, und 5V Ungenauigkeit trau ich der Kiste durchaus zu :) Aber keine Sorge, für das harte Abwürgen wird auf jeden Fall gesorgt. Ein gescheiter Regler soll halt das Überschwingen bis zu dieser Grenze verhindern, damit bei der ersten Präsentation des Werks die Kiste auch mehr als 10 Meter schafft bevor alle Lämpchen rot blinken :)

Danke für die Info

Gruß, Michael

Reply to
Michael Dreschmann

Moin!

Nunja, Ziegler/Nichols' empirisches Verfahren wäre vielleicht nicht ganz so praktisch (erstmal fleißig schwingen lassen :-)). Also eher Sprungantwort.

Dazu legst Du eine Gerade an die Sprungantwort:

| | ............ | /. ^ | /. | | / | | ./ | Ks | ./ | |...... / _

-------------------------- |||

Wichtig ist, daß Du die Zeiten auf Reglerzyklen und Ks auf Eingangs-ADC-Wert durch Ausgangs-PWM-Wert normierst.

Also angenommen, der PWM-Wert 2^10 macht 650V und Deine ADCs lösen bis

700V in 16 Bit auf, dann ist Ks = (2^16 / 700) / (650 / 2^10).

Tu ist hier etwas abstrakt, denn Dein Schaltregler müsste eigentlich sofort reagieren. Du siehst die Reaktion aber erst einen Takt später, also würde ich Tu erstmal auf 1 setzen.

Tg ergibt sich aus Deinem maximalen Ausgangsstrom des Schaltreglers und den Kondensatoren. Macht PWM-Wert 2^10 einen Spannungsanstieg von

3,2V / Reglerzyklus, dann wird der angenommene Endwert in 200 Zyklen erreicht, also Tg = 200.

Nun gibts ganz verschiedene Auslegungen je nach Geschmack.

Ziegler/Nichols sagen Kp = (0,9 /Ks)*(Tg/Tu); Ki = Kp/(3,3*Tu) Chien/Hrones/Reswick sagen Kp = (0,35/Ks)*(Tg/Tu); Ki = Kp/(1,2*Tg)

Das sind aber eh alles nur Größenordnungen, die Du selbst nach Bedarf anpassen musst. Schließlich verhält sich Deine Strecke ja bei Last auch ganz anders als ohne Last... Denn mit Last nähert sich Deine Ausgangsspannung ohne Regler vermutlich wie ein RC-Glied asymptotisch irgendeinem Wert, ohne Last verhält die Strecke wohl eher wie ein Integrator. Und optimieren kannst Du natürlich nur auf einen Fall.

Darum wärs schon vorteilhaft, den Ausgangsstroms zu messen, dann kommts weniger auf den Regler an, weil das meiste der Lastwechsel eh schon gegengekoppelt wird.

Exakt.

Mir ist gerade noch aufgefallen, daß Du im ersten Posting von 10 Bit PWM gesprochen hast, aber Deine Funktion einen 16-Bit Wert zurückgibt. Was immer außerhalb der Funktion damit geschieht, muss natürlich bei den Integrator-Grenzen mit berücksichtigt werden.

Gruß, Michael.

Reply to
Michael Eggert

Super, danke für die ganzen Infos, da hammer die nächsten Wochen genug zum Rumprobieren :)

Klar, extern wir die Funktionsausgabe noch bischen nach rechts geshiftet, damits mit 10 Bit passt. Ich wollte nur der Übersicht halber in der Regler Funktion alles auf 16 bzw. 32 Bit halten, sonst verdreh ich mir noch mehr den Kopf :)

Gruß, Michael

Reply to
Michael Dreschmann

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.