Perfekt! Ich werde es mal versuchen!
Wenn der Schleppfehler zu groß wird, dann kann ich ja auch einen Fehler ausgeben.
Was ist nun, wenn ich eine hängende/schwebende Last habe? Funktioniert das ohne Integralanteil?
Ein grosse Forteil von diesen Forgang ist das auf jeden Zeitpunkt eine neue Abweichung berechtnet werden kan. Eine PID Regelung benotigt immer eine minimale feste "Sampletime". Eine reine P-Regelung nicht. Ihre µ kan mehrmals pro ms die Abweichung (Schleppfehler) nachrechnen, und entsprechend die PWM-wert anpassen. Ihre Rampe muss so gewahlt werden das die mechanic folgen kan (100% PWM gibt auch eine bestimmte rampe, die darfen sie nicht ueberschreiten). Alles andere ist reine Mathematic. Forbild : rampe hochfahren = max 1 impuls/ms². Max speed ist 100 impulsen/ ms. Ihre theoretische soll pos ist dan nach 100 ms : 0.5*a*t² = 0.5*1*100²= 5000 impulsen. Ab dan wird es lineair : nach 200 ms wird es dan 5000+t*v = 5000+100*100 = 15000 impulsen. Sag mal das wir pos 20000 impulsen anfahren wollen. Dan mussen wir ab 15000 impulsen wieder abbremsen mit -1m/s², dan wird die soll-speed nach 300 ms wieder 0 sein. Auf diese weise lasst sich jeden ms eine exacte soll-pos berechnen. Jetzt soll-ist = schlepp fehler. Konstante * schleppfehler = PWM (reine P-regelung).
Perfekt! Ich werde es mal versuchen!
Wenn der Schleppfehler zu groß wird, dann kann ich ja auch einen Fehler ausgeben.
Was ist nun, wenn ich eine hängende/schwebende Last habe? Funktioniert das ohne Integralanteil?
In diesen Fall stellt sich eine permanente Schleppfehler ein. Der Motor bekommt dan auch dauernd eine PWM-wert, die das versucht zuruck zu regeln. Noch ein Tipp : in ein bestimmtes PWM Bereich beim anfahren lauft der motor noch nicht (tot-zone"). Wen sie rund das 0-punkt regelen wollen, mussen sie ein Sprung programmieren, sodas diese totzone ueberbruckt werd :
In Praxis kann das so aussehen (Totzone van +15% bis -15% PWM, PWM von -100% bis +100%):
If (soll_PWM>0) PWM=soll_PWM+15;
If(soll_PWM<=0)PWM=soll_PWM-15;
So etwas hat bei meine Balance roboter sehr gut functioniert.
Angenommen, die Beschleunigung ist zu hoch gewählt, dann stellt sich doch sowieso ein zu hoher Schleppfehler ein, mit dem ich die Bewegung anhalten kann?(100% PWM gibt auch eine bestimmte rampe, die darfen sie nicht ueberschreiten)
Beschleunigung zo hoch und max speed limit erreichbar : schleppfehler vergrossert sich bis an die max-speed. Danach verkleinert sich die Schleppfehler wen die erreichbare ist-speed grosser ist dan die eingestellte max_speed. Für eine saubere Regelung musst du die Limits kleiner wahlen als die erreichbare limits !! Dan ist es auch sinnfoll die Schleppfehler zu ueberwachen. Wen irgendwo etwas schief lauft, kann du direct eingreifen (abbremsen auf 0% PWM). Die ganse Fahrstrecke wird dan ueberwacht (Wiederstand auf eine bestimmte Stelle zu hoch : Schleppfehler wird zu gross).
Noch eine Frage : wie ist die H-brucke geschaltet ? PWM an "enable" : bei low pegel wird dan die Brucke hochohmig : der Motor kan einfach auslaufen und wird nicht actif gebremst. Da kannst du nur bremsen mit negative PWM. PWM-signal an die high oder low side : bei low pegel wird die Motor kurzgeschlossen und wird damit activ gebremst. Bei diese Verdrahtung ist PWM und Drehzahl lineair. Nachteil : ein grosseres Stromverbrauch.
Wenn nur die Geschwindigkeit geregelt wird, dann ist die Position doch sehr ungenau?
Sollte nicht lieber nach dem Geschwindigkeitsprofil die Position geregelt werden?
Lesezeichen