schnelle, grobe Reglereinstellung PI mit C

Gast #3961586
Lesenswert?

Hallo zusammen,
ich möchte für einen kleinen Panzer welcher über einen MSp430 gesteuert 
wird, einen Regler parametrisieren.
Und zwar werte ich mit einem Raspberry ein Kamerasignal aus welches 
einen Ball erkennt.
Ist der Ball genau in der Mitte, hat dieser den Positionswert 32, ganz 
links 0 und ganz rechts 64.

Den PI-Regler habe ich soweit auch schon im C-Code wie folgt:

SumAbweich = SumAbweich + Abweich
Stellwert= Kp * Abweich + Ki  Ta  SumAbweich

Kp und Ki sind ja hierbei meine Reglerparameter. Was ist jedoch mit Ta? 
Wo kommt der Wert her?

Da das ganz ein kleines Bastlerprojekt ist und ich keine Sprungantwort 
habe, würde ich gerne wissen ob es ein paar Faustwerte gibt, die für so 
etwas in Frage kommen? Ich werde den Regler dann nur nach Gefühl 
einstellen.

Bisher habe ich mal versucht Kp, Ki und Ta auf 1 zu setzen aber das 
Ergebnis war miserabel...

Für Ziegler Nicholas benötigt man auch wieder die Sprungantwort oder?

Schöne Grüße und danke für eure Hilfe!
Gast #3961608
Lesenswert?

Warum misst du nicht einfach die Sprungantwort aus indem du den ball 
einfach ganz schnell von der einen auf die andere Seite bringst?

sonst finden sich hier: 
http://rn-wissen.de/wiki/index.php/Regelungstechnik#Dimensionierung_des_Reglers

auch noch ein paar für dich interessante Verfahren.
Aufpassen musst du nur, weil normalerweise Kp und Ki keine Integer 
(Ganzzahlen) sind und du das in deinem Algorithmus beachten musst.
#3961626
Lesenswert?

Mit Ta ist normalerweise die Abtastzeit gemeint, also die Zeit zwischen 
2 Aufrufen der Routine.

So allgemeine Schätzwerte für die Regelparameter gibt es nicht, weil die 
Systeme sehr unterschiedlich sein können. Für den Abgleich gibt es im 
wesentlichen 3 Methoden:
1. Die System-anwort als Sprungantwort oder Impulsantwort messen (ggf. 
auch berechnen/schätzen) und daraus dann die passenden Parameter 
berechnen. Dafür gibt es sogenannte Einstellregeln und Tabellen mit 
Formeln dazu.

2. Das System als P-Regler an die Grenze der Instabilität bringen und 
aus der Frequenz und der Verstärkung als P-Regler die Einstellungen 
berechnen.

3. Durch iteratives Probieren die Werte optimieren. Mit etwas Erfahrung 
weiß man wie sich die Änderungen der Parameter auswirken und Probiert 
nicht ganz Planlos.

Das Verhältnis Kp/Ki gibt die Reaktionszeit vor. Dafür kann man halt 
einen Wert ansetzen der so etwa erreicht werden kann, bzw. etwa die Zeit 
die es ohne Regelung braucht sich zu stabilisieren.
#3961756
Lesenswert?

Den Ball zu versetzen ist die Antwort des geschlossenen Regelsystems auf 
eine sprungartige Störung. Das ist etwas anderes als die Sprungantwort 
des Offenen Regelsystems, die oft zum Abgleich genutzt wird.

Zum Aufnehmen der Sprungantwort müsste man eine Bewegung des Fahrzeugs 
(halt ein Sprung bei der Größe die der Regler steuern soll) 
programmieren, und die gemessene Postion des Balls aufzeichnen.


Es kann gut sein, das der PI Regler für dieses Beispiel keine gute 
Lösung ist.
Gast #3970950
Lesenswert?

Hallo,

ich gehe mal davon aus dass es sich um eine Positionierung einer Kamera 
handelt und Du von deiner Messeinrichtung die Information der Position 
(von 0 bis 64 ) erhälst. Weiterhin gehe ich davon aus dass der Panzer 
entweder dem Ball folgen soll oder die Kanone auf den Ball ausgerichtet 
werden soll ?!
Wenn es sich um eine Positionierung handelt ist es ein I-Regelstrecke, 
d.h.
es kann keine Sprungantwort aufgenommen werden bzw. die Sprungantwort 
hat integrales Verhalten.
Ich würde Dir empfehlen einen einfachen P-Regler zu nutzen (y=Kpr*e)
oder wie Du schreibst "Stellwert= Kp * Abweich". Damit solltet Du erst 
einmal ausreichende Ergebnisse erhalten.

Matu

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