Hallo zusammen, im Rahmen eines Hobby-Arduino-Projektes will ich ein paar DC-Getriebe-Motoren per PID-Regler regeln. Als Drehsensoren habe ich AS5600; der Motortreiber ist ein Motorshield V2. Ich hänge gerade an dem Thema Richtungsumkehr (clockwise/counterclockwise). Der Motortreiber erwartet einen PWM-Wert (0..255) und eine Richtungsangabe: run(FORWARD/BACKWARD); setSpeed(0..255); Meine App gibt eine Drehzahl vor U/Min -300 ... +300 (Vorzeichen-->Richtung) Weiterhin benutze ich die PID-Regler-Lib von Arduino. Ich kann den Regler so parametrieren, dass ich die Drehzahl direkt vorgebe (mit Vorzeichen) und einen Output +/- habe für PMW. damit kann ich den Motortreiber ansteuern: run((pid_output<0)?BACKWARD:FORWARD); setSpeed(abs(pid_output)); Das funktioniert im Prinzip auch; allerdings mit einem Nebeneffekt: Beim Regeln wechselt ab und zu das Vorzeichen des pid_output (wird z.B. negativ beim Abbremsen; dann bekommt der Motor einen Impuls in die Gegenrichtung! Meine andere Idee wäre, ich lass den Regler nur den absoluten PWM-Wert berechnen (0..255) und kümmere mich um den Richtungswechsel ausserhalb des Reglers. Dann stellt sich aber auch die Frage, wann schalte ich die Richtung um, um nicht das selbe Verhalten zu haben? Soll ich z.B. erst auf 0 regeln und dann erst in die Gegenrichtung? Wie löse ich das schöner bzw. professionell? Noch ein Hinweis: Am Ende soll ein Positions/Lageregler rauskommen (Stichwort: Kaskadenregler). Da kommt es ja schon öfter zu Richtungswechseln, wenn man positionieren möchte. Vielen Dank schon mal!
:
Verschoben durch Admin
Dein Treiber sollte eine H Brücke beherbergen. Bei diesen wird die Richtungsumkehr normalerweise durch High/Low an den entsprechenden Pins CW und CCW gesetzt. Ein Blick ins Datenblatt hilft.
BinDannMalWeg schrieb: > Dein Treiber sollte eine H Brücke beherbergen. Bei diesen wird die > Richtungsumkehr normalerweise durch High/Low an den entsprechenden > Pins CW und CCW gesetzt. > Ein Blick ins Datenblatt hilft. die Richtungsumkehr an sich funktioniert ja (über die Arduino-Library). Es geht mir ja um die Regelung, damit beim Bremsen der Motor nicht hin und her zappelt
Richard R. schrieb: > Beim Regeln wechselt ab und zu das Vorzeichen des pid_output (wird > z.B. negativ beim Abbremsen; dann bekommt der Motor einen Impuls in > die Gegenrichtung! Das ist völlig richtig und völlig normal. Der Motor wird zum Abbremsen wenn es shcnellgehen muss teilweise in Gegenrichtung bestromt. So lange es 'zappelt' stimmen deine PID-Werte noch nicht mit Masseträgheit und Drehmoment des Motors überein.
MaWin schrieb: > .... > So lange es 'zappelt' stimmen deine PID-Werte noch nicht mit > Masseträgheit und Drehmoment des Motors überein. ja, mit den PID-Werten hast Du recht! Wirklich noch nicht optimal! Ich bin gerade erst dabei, mir die Grundlagen zu schaffen, den Regler beurteilen zu können--> Logging der Daten und Ausgabe in einer Chart-View am PC. bisher sehe/höre ich nur am Motorverhalten, dass es noch nicht passt.
:
Bearbeitet durch User
Beitrag #6329600 wurde von einem Moderator gelöscht.
NurGeldZähltImLeben schrieb im Beitrag #6329600: > Die Regelstreckee eines DC-Motors ist ein triviales PT2, damit ist auch > die Regelung trivial. Jaja man nehme eine kugelförmige Kuh im Vakuum... Gerade um Drehzahl = 0 ist ein Bürsten-DC-Motor alles andere als trivial zu regeln.
Beitrag #6329717 wurde von einem Moderator gelöscht.
NurGeldZähltImLeben schrieb im Beitrag #6329717:
> was willst du da regeln die drehzahl? LOL
Jop. Wenn du das nicht verstehst, Pech gehabt.
Bleib mal schön in deiner linearen, stetig differenzierbaren Theorie, da
bist du besser aufgehoben.
wer schrieb: > NurGeldZähltImLeben schrieb: > was willst du da regeln die drehzahl? LOL > > Jop. Wenn du das nicht verstehst, Pech gehabt. > Bleib mal schön in deiner linearen, stetig differenzierbaren Theorie, da > bist du besser aufgehoben. umadbro?
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.