PI(D) Regelung für hakelnden Motor

Gast #1541146
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.