Hallo, nach dem ich mittlerweile mit meinem Mikrokontroller Atmega44 die Drehzahl eines bürstenbehafteten Gleichstrommotors messen kann, habe ich mich gleich an eine Drehzahlregelung gemacht was mit einem PI Regler auch super geklappt hat. Jetzt möchte ich etwas anspruchvolleres machen bei dem ich nochmals bezüglich der Regelung eure Hilfe erhoffe. Ich möchte 2 bürstenbehaftete Gleichstrommotoren an einer Welle betreiben und bezüglich Moment und Drehzahl regeln. Also das bedeutet ich möchte die Welle mit einer Drehzahl n laufen lassen und die Momentenverteilung der beiden Motoren auch vorgeben können, also dass zuzm Bsp einer 2/3 des Moments an der Welle erzeugt und der andere 1/3. Hierbei versteht sich natürlich, dass Drehzahl und Drehmoment geregelt werden. Hardwarmäßiger Aufbau: Der Mikrocontroller steuert zwei H-Brücken mittels getrennten PWM-Signalen an und die Drehzahl der Welle wird mit Inkrementalgeber gemessen. Könntet Ihr mir bei der Reglerauslegung Tipps geben? Danke vielmals. Liebe Grüße Wolfgang
Drehmoment = Strom, Verhältnis ist vorgegeben, also Strom messen und PWM so einstellen, daß der eine Motor xx Prozent vom anderen bekommt. Dann bleibt nur noch die Drehzahlregelung des Ganzen und die kannst du schon.
Stichwort Kaskadenregler. Die innere Regelschleife regelt den Strom des Motors, die äussere die Drehzahl. Der 2. Motor muss nur eine Stromregelung haben, wobei der Sollwert über den Faktor X vom 1. Motor abgeleitet wird.
Danke für eure schnellen Antworten. Ich habe mal ein wenig gezeichnet. Im Anhang ist der Signalflussplan. Könntet ihr mir noch Tipps bezüglich den einzelnen Reglern geben? Der Drehzahlregler sollte ein PI sein oder? Die anderen zwei auch? Danke! Liebe Grüße Wolfgang
Natürlich gehört Regler 1 nur 1 mal hinein! Habe ich leider vergessen zu löschen. Ansonsten sollte es passen
Danke! Ein Problem mit der Kaskadenreglereinstellung habe ich noch. Ich hoffe Ihr könnt mir nochmals helfen. Also ich habe einen Kaskadenregler für Motor 1 programmiert, aber der hat bei auftreten eines Lastmoments ein riesen Dauerschwingen. Ich verwende als Regler für die Kaskade 2 PI Regler. Wie stelle ich denn am besten ein? Ich habe bis jetzt immer durch probieren eine gute Regelung bekommen, aber das will jetzt leider nicht funktionieren. Danke!
@ Wolfgang (Gast) >hat bei auftreten eines Lastmoments ein riesen Dauerschwingen. Regler schwingen immer, Oszillatoren nie ;-) >Ich verwende als Regler für die Kaskade 2 PI Regler. >Wie stelle ich denn am besten ein? http://de.wikipedia.org/wiki/Kaskadenregelung http://de.wikipedia.org/wiki/Faustformelverfahren_%28Automatisierungstechnik%29 >Ich habe bis jetzt immer durch probieren eine gute Regelung bekommen, >aber das will jetzt leider nicht funktionieren. Im Prinzip macht man das oft so, man muss zuerst den inneren (Strom)regler stabil kriegen, danach den äußeren Drehzahlregler.
Falk Brunner schrieb: > Im Prinzip macht man das oft so, man muss zuerst den inneren > (Strom)regler stabil kriegen, danach den äußeren Drehzahlregler. außerdem sollte der stromregler (innere) i.d.R. schneller sein als der äußere Regler, da dieser ja den Sollwert für den inneren vorgibt. Im Idealfall merkt der äußere vom inneren nichts. Ist das nicht der Fall fangen die an "gegeneinander" zu arbeiten und das führt zu Schwingungen bzw. Instabilität.
Danke für eure Antworten! Ich habe jetzt mal klein angefangen und einen Stromregler realsiert. Er erreicht beim Anfahren schnell den gewünschten Sollwert und haltet ihn auch bei leichten Lastmomenten recht gut. Wird das Lastmoment allerdings größer so beginnt er zu schwingen und dann kommt er völlig aus dem Gleichgewicht. Soll ich da noch eine Stellgrößenbegernzung programmieren? Ich habe auch schon probiert mit dem aktuellen Stromregler eine Kaskadenregelung zu machen, aber bei höheren Lastmomenten schwingt er sich auch bei Drehzahlsollwertvorgabe komplett auf. Danke! MfG
@Wolfgang (Gast) >Ich habe jetzt mal klein angefangen und einen Stromregler realsiert. Er >erreicht beim Anfahren schnell den gewünschten Sollwert und haltet ihn >auch bei leichten Lastmomenten recht gut. Wie misst du das? Mit dem Oszi? > Wird das Lastmoment allerdings >größer so beginnt er zu schwingen und dann kommt er völlig aus dem >Gleichgewicht. Also instabil. Der klassische Ansatz ist, einen Last oder Sollwertsprung auf den Regler zu geben und die Reaktion zu messen. AKA Sprungantwort. Schwingen -> sehr schlecht gedämpftes Überschwingen -> schlecht Aperiodisches Einschwingen -> meist optimal. >Soll ich da noch eine Stellgrößenbegernzung programmieren? Kann man von hier aus nicht sagen, ohne Messwerte / Sprungantworten. >Ich habe auch schon probiert mit dem aktuellen Stromregler eine >Kaskadenregelung zu machen, aber bei höheren Lastmomenten schwingt er >sich auch bei Drehzahlsollwertvorgabe komplett auf. Erstmal muss der Stromregler stabil sein, sonst wird das nix. Das kann man nur mit einer Mindestlast messen, sonst geht die Drehzahl zu hoch.
Hallo,
> Wie misst du das? Mit dem Oszi?
Ja ich beobachte das PWM vom Controller an der H-Brücke.
So ich habe ihn jetzt soweit, dass die Stromregelung nicht schlecht
funktioniert. Bei der Drehzahlregelung bleibt er im Leerlauf sehr gut
auf der Solldrehzahl stehen, allerdings wenn ein Moment ausgeübt wird
und sich die Drehzahl verringert so beginnt er noch zu schwingen.
MfG Wolfgang
@ Wolfgang (Gast) >> Wie misst du das? Mit dem Oszi? >Ja ich beobachte das PWM vom Controller an der H-Brücke. Da sieht man aber nicht sooo viel. Dazu muss man MINDESTENS einen passend dimensionierten RC-Filter davorschalten, damit man den Mittelwert der PWM sieht und nicht die PWM selber. Gleiches gilt für den Motorstrom. >So ich habe ihn jetzt soweit, dass die Stromregelung nicht schlecht >funktioniert. Wie prüfst du das? > Bei der Drehzahlregelung bleibt er im Leerlauf sehr gut >auf der Solldrehzahl stehen, allerdings wenn ein Moment ausgeübt wird >und sich die Drehzahl verringert so beginnt er noch zu schwingen. Wenn der Stromregler WIRKLICH stabil ist, musst du halt jetzt die Parameter des Drehzahlreglers optimieren. Dieser ist meisten um Faktor 5-10 langsamer als der Stromregler.
> Da sieht man aber nicht sooo viel. Dazu muss man MINDESTENS einen > passend dimensionierten RC-Filter davorschalten, damit man den > Mittelwert der PWM sieht und nicht die PWM selber. Gleiches gilt für den > Motorstrom. Ja ich habe kein RC Glied mit hineingeschaltet. nur das PWM selbst. Ich sehe weiters auf einem LCD den aktuellen Strom und die Drehzahl. Dann habe ich den Sollstrom zBsp auf 100mA eingestellt und mit veränderbarer Last den Strom beobachtet. Er hat in immer schon auf 100mA gehalten und das PWM hat nicht geschwungen. Dann habe ich es noch für größere Ströme probiert und es hat ebenfalls funktioniert. > Wenn der Stromregler WIRKLICH stabil ist, musst du halt jetzt die > Parameter des Drehzahlreglers optimieren. Dieser ist meisten um Faktor > 5-10 langsamer als der Stromregler. Alles klar ich probiers! Das bedeutet, dass das KP des Drehzahlreglers um das fünffache kleiner sein soll als das kp des Stromreglers oder?
Wolfgang schrieb: > Alles klar ich probiers! Das bedeutet, dass das KP des Drehzahlreglers > um das fünffache kleiner sein soll als das kp des Stromreglers oder? Nein
@ Wolfgang (Gast) >Ja ich habe kein RC Glied mit hineingeschaltet. nur das PWM selbst. also siehst du nur wildes Zappeln, wenn die PWM sind beim Sprung ändert. >Ich sehe weiters auf einem LCD den aktuellen Strom und die Drehzahl. Und du glaubst alles, was auf irgendwelchen LCDs angezeigt wird? Ich nicht. >Dann habe ich den Sollstrom zBsp auf 100mA eingestellt und mit >veränderbarer Last den Strom beobachtet. Er hat in immer schon auf 100mA >gehalten und das PWM hat nicht geschwungen. Dann habe ich es noch für >größere Ströme probiert und es hat ebenfalls funktioniert. Warum hast du nicht den Test mit dem Sprung gemacht, wie ich es dir empfohlen habe? Nur dann sieht man, wie (in)stabil dein Regler ist. Erzeuge per Software diesen Sprung mit 1s Pulsbreite, immer wieder. Dann stell die Parameter ein und beobachte die Änderung. MIT RC-Filter für PWM und Stromsignal! >> Parameter des Drehzahlreglers optimieren. Dieser ist meisten um Faktor >> 5-10 langsamer als der Stromregler. >Alles klar ich probiers! Das bedeutet, dass das KP des Drehzahlreglers >um das fünffache kleiner sein soll als das kp des Stromreglers oder? Nein, auch die Integrationszeit des I-Anteils ist größer. Aber der Regler allein bestimmt das nicht, da ist auch noch der Drehzahlsensor.
Wolfgang schrieb: > Ich sehe weiters auf einem LCD den aktuellen Strom und die Drehzahl. d.h. du hast ein A/D wandler der Strom und Drehzahl in einen digitalwert umwandelt. Kannst du dann nicht einfach dein Oszi an den A/D wandler Eingang klemmen und so die von Falk empfholenen Sprungantworten aufnehmen. Mit PWM und LCD Beobachtung befindest du dich mehr oder weniger im Blindflug. So wird das nichts.
Danke für eure Antworten! >>Ja ich habe kein RC Glied mit hineingeschaltet. nur das PWM selbst. > > also siehst du nur wildes Zappeln, wenn die PWM sind beim Sprung ändert. Ja ich sehe einfach ein wildes Zappeln bei den PWM Flanken. >>Ich sehe weiters auf einem LCD den aktuellen Strom und die Drehzahl. > > Und du glaubst alles, was auf irgendwelchen LCDs angezeigt wird? Ich > nicht. Nein natürlich nicht! Ich bin einfach noch nicht so fit bezüglich der Regelungstechnik. > >>Dann habe ich den Sollstrom zBsp auf 100mA eingestellt und mit >>veränderbarer Last den Strom beobachtet. Er hat in immer schon auf 100mA >>gehalten und das PWM hat nicht geschwungen. Dann habe ich es noch für >>größere Ströme probiert und es hat ebenfalls funktioniert. > > Warum hast du nicht den Test mit dem Sprung gemacht, wie ich es dir > empfohlen habe? Nur dann sieht man, wie (in)stabil dein Regler ist. > > Erzeuge per Software diesen Sprung mit 1s Pulsbreite, immer wieder. Dann > stell die Parameter ein und beobachte die Änderung. MIT RC-Filter für > PWM und Stromsignal! > Ich werde als nächstes den Versuch mit der Sprungantwort machen. Ich werde dazu mit meinem Funktionsgenerator einen Sprung mit einer sekunde Pulsbreite erzeugen und das auf die H-Brücke geben.
Ich habe die erste Sprungantwort aufgenommen. Dazu habe ich wie besprochen auf einen Motor den Sprung gegeben und den anderen Motor habe ich dabei auf die Welle gekoppelt und die Motorklemmen offen gelassen. CH1: PWM CH2: der Strom Ich hoffe das hilft schon. Ich werde jetzt noch eine Sprungantwort mit der Drehzahl aufnehmen. Mal schauen wie ich das mache. Ich habe sie ja nur digital über den Inkrementalgeber
Hm, ja das ist jetzt nur eine auf die Strecke... Laut dem Ausschnitt soll es sicherlich ein Sprung auf den Regler mit Strecke sein: > Erzeuge per Software diesen Sprung mit 1s Pulsbreite, immer wieder. Dann > stell die Parameter ein und beobachte die Änderung. MIT RC-Filter für > PWM und Stromsignal! Also fang ich mal nochmal an! Entschuldigung für meine Unwissenheit.
@ Wolfgang (Gast) >Ich habe die erste Sprungantwort aufgenommen. >Dazu habe ich wie besprochen auf einen Motor den Sprung gegeben und den >anderen Motor habe ich dabei auf die Welle gekoppelt und die >Motorklemmen offen gelassen. >CH1: PWM >CH2: der Strom Mal ein Anfang. Aber die Zeitauflösung ist schlecht gewählt. Man sieht den Strom nur sehr schlecht. Ausserdem scheint hier noch was nicht zu stimmen. Es gibt KEINE Reaktion beim EINschalten, aber eine beim AUSSChalten des Motors? Kann nicht sein. >Ich hoffe das hilft schon. Ich werde jetzt noch eine Sprungantwort mit >der Drehzahl aufnehmen. Langsam. So weit bist du noch nicht. Siehe unten. @ Leonhard K. (leonhard_k) >Ich dachte mit Sprunhantwort sei eher die der Regler gemeint? Ja, am Ende schon. Das muss der OP al nächstes messen. Im Controller ein Rechtecksignal für den Eingang des STROMreglers erzeugen und hier ebenso wieder den Eingang (Motorspannung) und den Ausgang (Motorstrom) messen. Dann sieht man, wie der Regler arbeitet. Da die Motorspannung per PWM vorgegeben wird, muss man hier wie bereits gesagt den Tiefpass einsetzen. Dabei sollt dessen Bandbreite so groß wie möglich sein, um die Dynamik der Regelung möglichst vollständig darzustellen. GGF. muss man zwei Tiefpässe in Reihe schalten, das bringt mehr Dämpfung bei gleicher Grenzfrequenz.
@ Wolfgang (Gast)
>Also fang ich mal nochmal an! Entschuldigung für meine Unwissenheit.
Spinn nicht rum, wir haben verstanden und du scheibar auch. Also los,
messen.
Falk Brunner schrieb: > @ Wolfgang (Gast) > >>Ich habe die erste Sprungantwort aufgenommen. >>Dazu habe ich wie besprochen auf einen Motor den Sprung gegeben und den >>anderen Motor habe ich dabei auf die Welle gekoppelt und die >>Motorklemmen offen gelassen. > >>CH1: PWM >>CH2: der Strom > > Mal ein Anfang. Aber die Zeitauflösung ist schlecht gewählt. Man sieht > den Strom nur sehr schlecht. Ausserdem scheint hier noch was nicht zu > stimmen. Es gibt KEINE Reaktion beim EINschalten, aber eine beim > AUSSChalten des Motors? Kann nicht sein. Doch das stimmt schon, denn der H-Brückentreiber schaltet die Mosfets erst bei anliegen von GND am PWM eingang durch. Das bedeutet also wenn der PWM-Eingang auf LOW ist werden die Mosfets geschalten und der Motor bekommt den Einschaltstrom. Also das sollte in Ordnung gehen. > Ja, am Ende schon. Das muss der OP al nächstes messen. Im Controller ein > Rechtecksignal für den Eingang des STROMreglers erzeugen und hier ebenso > wieder den Eingang (Motorspannung) und den Ausgang (Motorstrom) messen. > Dann sieht man, wie der Regler arbeitet. Da die Motorspannung per PWM > vorgegeben wird, muss man hier wie bereits gesagt den Tiefpass > einsetzen. Dabei sollt dessen Bandbreite so groß wie möglich sein, um > die Dynamik der Regelung möglichst vollständig darzustellen. GGF. muss > man zwei Tiefpässe in Reihe schalten, das bringt mehr Dämpfung bei > gleicher Grenzfrequenz. Alles klar! Mach ich gleich.
@ Wolfgang (Gast) >> stimmen. Es gibt KEINE Reaktion beim EINschalten, aber eine beim >> AUSSChalten des Motors? Kann nicht sein. >Doch das stimmt schon, denn der H-Brückentreiber schaltet die Mosfets >erst bei anliegen von GND am PWM eingang durch. Aha! Also wirkt die PWM INVERTIERT! Das sollte man schon mitteilen.
Ch2: invertiertes PWM CH1: Strom leider habe ich keinen guten Tiefpass für den Strom. Ich hoffe man kann trotzdem das Bild verwenden. Sollwertsprung ist von 0 auf 100mA
also die invertierte PWM low periode hätte durchaus etwas länger sein dürfen. ansonsten sieht das nach einer Transferfunktion 1ter Ordnung aus (PT1-Glied). du kannst den PI also hiernach einstellen http://de.wikipedia.org/wiki/Faustformelverfahren_%28Automatisierungstechnik%29 aber du solltest auch bedenken das je nach dem wieviel Strom du hast, die Sprungantworten variieren können. Also mal durch den gesamten Bereich durchtesten schadet nicht.
@ Wolfgang (Gast) >leider habe ich keinen guten Tiefpass für den Strom. Ich hoffe man kann >trotzdem das Bild verwenden. Naja, besser als nix. >Sollwertsprung ist von 0 auf 100mA Dein Puls ist zu kurz. Du musst solange warten, bis sich der Strom stabil eingeschwungen hat.
Ach ja, man kann den Motor für die Messung des Stromreglers auch mechanisch blockieren, das Ergebnis ist nahezu das gleiche.
Falk Brunner schrieb: > Ach so. Wie hoch ist die PWM-Frequenz? Was für einen Tiefpass > nutzt du? Die PWM-Frequenz ist ziemlich hoch... 70kHz C=1µF R=5k
@ Wolfgang (Gast) >Die PWM-Frequenz ist ziemlich hoch... 70kHz Macht das deine H-Brücke mit? >C=1µF >R=5k Macht tau = 5ms bzw. eine Bandbreite von 30 Hz. Merkst du was?
Falk Brunner schrieb: > @ Wolfgang (Gast) > >>Die PWM-Frequenz ist ziemlich hoch... 70kHz > > Macht das deine H-Brücke mit? Ja von der Brücke her habe ich keine Probleme. >>C=1µF >>R=5k > > Macht tau = 5ms bzw. eine Bandbreite von 30 Hz. Merkst du was? Ja ich habe leider keine andere Kapazität hier sonst hätte ich sie schon ausgetauscht.
Soll ich jetzt noch den Stromregler weiter optimieren oder kann ich mit der Drehzahlregelung vortsetzen? Danke!
@ Wolfgang (Gast) >Soll ich jetzt noch den Stromregler weiter optimieren oder kann ich mit >der Drehzahlregelung vortsetzen? Weiter optimieren? Du hast ihn noch nicht man solide gemessen! Nimm einen BRAUCHBAREN Tiefpass, der nicht die Dynamik des Vorgangs wegbügelt. Bei 70 kHz Ohm sind 70 kHz Grenzfrequnez eine brauchbare Orientierung. Nimm 1k und 2,2nF, ggf. das ganze zweimal hintereinander. Pack auch den gleichen Tiefpass hinter deinen Stromshunt, dieses HF-Gerausche nervt bei der Messung.
Wolfgang schrieb: > Soll ich jetzt noch den Stromregler weiter optimieren oder kann ich mit > der Drehzahlregelung vortsetzen? Du musst dir auch darüber klar werden, was du eigentlich regeln willst. Die Stromaufnahme ist zwar sehr schön, aber vermutlich nicht das Ziel des Regelns. Regle also das, was du eigentlich brauchst und nutze die Strommessung für z.B. Überstrommessung o.ä. Grundsätzlich gibt es auch mehrere Ansätze für den Regler. Entweder machst du eine Hardware Schleife mit Loop Filter, oder du verlegst das Loopfilter in den MC. Für die AVR Familie hat Atmel eine nette Applikation Note produziert, die AVR221 mit einem PID Regler. Wenn du die P,I, und D Parameter per z.B. Terminal von aussen einstellbar machst, kommst du relativ schnell zum Ziel (und lernst auch grundlegendes über diese Regler).
Falk Brunner schrieb: > @ Wolfgang (Gast) > >>Soll ich jetzt noch den Stromregler weiter optimieren oder kann ich mit >>der Drehzahlregelung vortsetzen? > > Weiter optimieren? Du hast ihn noch nicht man solide gemessen! > > Nimm einen BRAUCHBAREN Tiefpass, der nicht die Dynamik des Vorgangs > wegbügelt. Bei 70 kHz Ohm sind 70 kHz Grenzfrequnez eine brauchbare > Orientierung. Nimm 1k und 2,2nF, ggf. das ganze zweimal hintereinander. > Pack auch den gleichen Tiefpass hinter deinen Stromshunt, dieses > HF-Gerausche nervt bei der Messung. Ich habe den RC-Tiefpass genommen. Leider ist das HF-Gerausche immer noch da...
@ Wolfgang (Gast) >Ich habe den RC-Tiefpass genommen. Leider ist das HF-Gerausche immer >noch da... entweder ist die Grenzfrequenz zu hoch oder du hast ein anderes Messproblem. Versuch erstmal 10nF und mehr.
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.