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