Forum: Mikrocontroller und Digitale Elektronik PID Positionsregelung einstellen


von Mach F. (machfax)


Lesenswert?

Hallo

Ich habe eine uC Steuerung in C Code geschrieben, um einen Servomotor zu 
steuern, Das heisst mit Speed X auf Position X fahren. Dazu habe ich 
einen PID Regler für den Speed und einen PID Regler für die Position 
implementiert, der auf den Speed wirkt. Funktioniert eigentlich. Zur 
Einstellung vom Speed PID habe ich die Sprungantwort aufgenommen und 
danach die PID Parametr eingestellt. Wie kann ich das bei der 
Positionsregelung machen? Ich kann da ja keine Sprungantwort aufnehmen, 
da der Ausgang vom Positions-PID direkt auf den Speed wirkt... Den 
Sprung vom Sollwert der Position kann ich schon realisieren, aber was 
messe ich danach? Die daraus resultierende Position, die aber über den 
Speed PID angefahren wird... Wie stellt man so ein System ein?

Danke & Gruss

von Karl H. (kbuchegg)


Lesenswert?

Ich würde das mit dem Probier-Verfahren machen (weiß jetzt nicht wie das 
heißt).

Alle Parameter des Reglers auf 0.
Danach den linearen Anteil erhöhen (dabei wird die Endposition nicht 
erreicht), bis sich 'der Schlitten' in Bewegung setzt. Durch den 
P-Anteil wird der auch wieder stehen bleiben (wenn auch nicht auf der 
Zielposition, aber das ist schon ok, ein reiner P-Regler hat immer eine 
Regelabweichung). Den P-Anteil sukzessive erhöhen, solange bis der 
Schlitten anfängt über die Endposition hinauszuschiessen und wieder 
zurückfahren muss. Eventuell gibt es dann noch ein paar Schwingungen 
rund um die Endposition bis sich dann die Position stabilisiert. Mit dem 
P-Anteil zurückgehen, bis genau dieses nicht mehr passiert.

Danach den I-Anteil erhöhen. Der Regler muss jetzt erstmals die 
tatsächliche vorgegebene Position auch erreichen. Den I-Anteil solange 
erhöhen, bis er das in einer zufriedenstellenden Zeit tut. Danach kann 
man ausprobieren, ob man jetzt mit dem P-Anteil noch ein wenig höher 
gehen kann, aber im Grunde wars das.

Das ganze ist also mehr oder weniger ein iterativer Prozess. Die 
Parameter nacheinander hochdrehen, bis der Regler ins Schwingen kommt. 
Dann wars zuviel und man geht auf die letzte gute Einstellung zurück.


Edit:
Hier
http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_durch_Probieren_.28Empirisches_Einstellen.29
ist das beschrieben.

von Mach F. (machfax)


Lesenswert?

Ok danke für den Input, also so wie ich das sehe gibt es da leider kein 
anderes Verfahren als Dimensionierung durch Probieren (Empirisches 
Einstellen)
siehe hier:
http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_durch_Probieren_.28Empirisches_Einstellen.29

Ist das aber wirklich so? Soweit ich mich an meine 
Umrichter-Programmierzeit errinnern kann, ist dies wirklich so, denn da 
gab es ein Autotune für den Speed, die Position war Einstellsache ohne 
automatische Kalibrierfunktion...

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
Noch kein Account? Hier anmelden.