Hallo zusammen, frohes Neues! Ich stehe vor einem Problem, und zwar habe ich einen Kettenantrieb mit PI(D) geregelt. Dies funktioniert soweit, allerdings verhält sich der Antrieb wie folgt: Steht der Motor, braucht es eine recht hohe Kraft um erstmal die erste Reibung des Getriebes zu überwinden, sprich mein I-Anteil läuft immer weiter hoch, bis sich das Getriebe "löst" und dann schwingt der Regler erstmal kräftig über. Das Verhalten führt auch dazu, dass ich den I-Anteil irgendwie nicht mit sinnvollen Werten begrenzen kann, da dieser m.E. allein dafür sorgt, dass der Kettenantrieb aus dem Stand überhaupt erstmal loslegt (der P-Anteil reicht nicht aus). Hättet ihr Vorschläge zur Lösung des Problems, ggf. anderer Regler oder "wenn v=0 dann P doppelt so hoch" oder ähnlich? Was macht hier Sinn? Eine zweite Frage ;) : Sollwert/Messwert ist eine Geschwindigkeit in mm/s, Stellwert ist PWM "0-255". Nun passt der Sollwert ja nicht zum Stellwert, wo mache ich hier eine Skalierung? Läuft dies allein über die P/I-Faktoren oder macht es mehr Sinn, bspw. den Reglerausgang mit einem Faktor 4 bspw. zu multiplizieren? Dabei fängt mein Regler aber immer gewaltig an zu schwingen. Ansonsten ist er sehr langsam ;) Danke für euere Mühe, Gruss Peter
Ich hätte eher an eine PD Regelung gedacht, als eine PI Regelung. Nimm den D Anteil dazu und das Problem löst sich.
Zur zweiten Frage, mm/Sec bei langsame laufender Kette, da brauchst du relativ lange, um einen neuen Ist-Wert zu erfassen, das gibt probleme. Einfacher wäre es, wenn du z.B. die Motorumläufe (ohne Untersetzung) oder die Zeit bis zur erkennung einer Lichtschranke verwendest, als Beispiel, und dann die Benutzereingabe auf deine interne Einheit umrechnest.
Einige Ansätze: -Regler kaskadieren: Du willst die Geschwindigkeit einregeln? Lass die Beschleunigung von einem PI(D) Regler machen und gib über einen P(D) die Sollbeschleunigung vor. -Heuristik: v==0 -> v=!0 --> x ms volles Rohr, dann Regelung aktivieren -PD statt PID, dabei kann die Verstärkung wesentlich höher werden -Neuronales Netz, Fuzzy, Schlagmichtot und Hastenichtgesehen-Regler verwenden ;)
Addiere zu deinem PID Wert noch einen Feed Forward Wert. Diesen wählst du so dass sich deine Kette gerade so noch nicht bewegt. Der PID Wert liefert dann sozusagen noch den letzten Rest der benötigt wird um alles in Schwung zu setzen.
Ja, Vorsteuerung kann man auch probieren, allerdings hört sich das so an als ob die Haftreibung deutlich über der Gleitreibung liegt, sonst gäbe es keine riesen Überschwinger. Schau mal nach Stick-Slip Effekt und Stribeck-Reibung. Ein Versuch ist es aber wert, da recht einfach zu implementieren und abzustimmen.
Hallo, PD löst schon einige der Probleme, die Schnelligkeit in der Regelung scheint hier für höheren Gleichlauf zu sorgen, aber nun drehen sich linke und rechte Kette naturgemäss nicht gleichmässig bzw. fangen unterschiedlich an zu laufen... Versuche den Fehler zw. Links/Rechts nun noch mit in die Regelung/Vorsteuerung zu nehmen.. Danke und gruss
Hast Du schom mal daran gedacht, dass Dein Problem möglicherweise durch die Rastmomente des Motors entsteht ?
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.