PI(D) Regelung für hakelnden Motor

Gast #1541146
Lesenswert?

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
Gast #1541169
Lesenswert?

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.
Gast #1541209
Lesenswert?

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 ;)
Gast #1541397
Lesenswert?

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.
Gast #1541449
Lesenswert?

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.
Gast #1543042
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren