Forum: Mikrocontroller und Digitale Elektronik Pid Positionsregler und I-Summe


von Franz (Gast)


Lesenswert?

Halo zusammen,
ich implementiere gerade einen PID-Positionsregler: Eingang: 
Encoder-Position, Ausgang: Pwm, Strecke: Linearmotor+Last

Wenn die Soll-Position nicht überschritten darf, muss man dann die 
I-Summe löschen wenn die Ist_Pos == (Soll_Pos-epsilon)?
Solange die I-Summe >0 => Pwm >0, dann muss die Ist_Pos überschwingen 
und wieder Zurück, dieses Überschwingen ist unerlaubt. oder kann man das 
nur durch die PID-Parameter einstellen?

von kyrk.5 (Gast)


Lesenswert?

Hallo,

Streckenidentifikation
dann
Reglerstruktur wählen
dann
Regler parametrieren (nach gewählter Reglerverhalten wie überschwingung, 
unterschwingung, ist Fehler bei T gleich unendlich erlaubt)
dann
Regler optimieren bis das gewünschte verhalten erreicht ist.

Meiner Meinung nach:
Überschwingung kann man durch den Reglerstruktur und Parametrierung raus 
bekommen.

I-Summe löschen wird nicht helfen:
- macht dein Regler nicht linear
- motor braucht Zeit um sich anzuhalten, Masse hat Traegheit
- Eventuell brauchst du Haltekraft so dass deine Position nicht weggeht. 
Würde ich aber nicht mit PID (oder I Teil) machen sondern irgendwie 
anders

von heinz (Gast)


Lesenswert?

Wenn du deinen I - Term löschst wird das Ausgangs 0

von Franz (Gast)


Lesenswert?

Ok,Ich habe gedacht dass wenn die Soll-Position erreicht wird, geht das 
PID_OUT zu Null.
Jetzt prüfe ich dauernd ob die Soll-Pos erreicht ist, wenn ja dann setze 
ich die Pwm auf Null und ist die Fahrt fertig.

Wie macht man das normalerweise? auch so: soll/Ist-Pos Vergleich und 
abrupt die PWM löschen? oder was anders?
Eine andere Idee ist ein Bremsweg zu führen, und da mit einer minimalen 
PWM zu fahren bis die Soll-Pos erreicht wird, muss ich noch testen.

von Gerhard M. (ggcode)


Lesenswert?

Hallo,
nennt sich Rampe.
P-Anteil  = Fahrgeschwindigkeit


Gruß

von Traubensaft .. (increasingcurrant)


Lesenswert?

Ein gut eingestellter PID-Regler schwingt nicht über. Hast du die 
Reglerparameter schon einem "Feintuning" unterzogen?


Franz schrieb:
> Jetzt prüfe ich dauernd ob die Soll-Pos erreicht ist, wenn ja dann setze
> ich die Pwm auf Null und ist die Fahrt fertig.

Das hat dann nichts mehr mit einem PID-Regler zu tun. Und es würde nur 
funktionieren, wenn die Masse oder die Geschwindigkeit deiner Strecke 0 
wären. (Denn wenn die kinetische Energie im Moment der PWM-Abschaltung 
ungleich 0 ist, fährt die Strecke einfach weiter, bis die kinetische 
Energie in Dämpfung verheizt wurde)


Franz schrieb:
> Wie macht man das normalerweise?

Ich würde eine kaskadierte Regelung aus 2 oder 3 PID-Reglern aufbauen. 
Der äußerste Regler regelt auf die Position. Seine Stellgröße ist die 
Führungsgröße eines Geschwindigkeitsreglers (mittlerer Regler). Die 
Stellgröße des Geschwindigkeitsreglers ist die Führungsgröße eines 
Beschleunigungsreglers, der die Kraft des Linearmotors regelt.
Das funktioniert gut; erfordert aber noch mehr Geschick beim Einstellen 
der einzelnen Regler.


Wenn es nicht auf optimale Performance beim Erreichen der Soll-Position 
ankommt, probiere es mit einem Regler. Wichtig ist aber, dass dieser 
auch negative Stellgrößen an den Linearmotor ausgeben kann, um 
rechtzeitig  bremsen zu können.

von Der Andere (Gast)


Lesenswert?

Franz schrieb:
> Ok,Ich habe gedacht dass wenn die Soll-Position erreicht wird, geht das
> PID_OUT zu Null.

Das wäre ein reiner P Regler.

von Traubensaft .. (increasingcurrant)


Lesenswert?

Der Andere schrieb:
> Das wäre ein reiner P Regler.

Das wäre ein heuristischer Regler mit nicht-linearer 
Übertragungsfunktion. Ein P-Regler könnte (bis auf einen statischen 
Lagefehler) wahrscheinlich die Position einregeln.

von Franz (Gast)


Lesenswert?

Traubensaft .. schrieb:
> Ein gut eingestellter PID-Regler schwingt nicht über. Hast du die
> Reglerparameter schon einem "Feintuning" unterzogen?

Das verstehe immer nicht: PID Ausgang ist die Summe von P-, D-, und 
I-Anteil.
Wenn die Soll-Pos erreicht ist dann sind P und D Anteile gleich Null, da 
sie nur vom Fehler abhängig sind.
Der I-Anteil ist aber größer Null weil er von der Summe aller vorherigen 
Fehler abhängig ist:
I-Anteil > 0  => Pid_Out > 0 => Act_pos geht dann über die Soll_Pos

Wie soll es dann nur dem PID alleine an der Soll_Pos anhalten?

von Purzel H. (hacky)


Lesenswert?

Weshalb sollte der I Anteil bei Fehler=Null gleich Null sein ?
Eine Trivialst Temperaturregelung zB hat die Hauptarbeit der Regelung 
dem I-Anteil angehaengt, der haelt die Temperatur auf ungleich Null. 
Denn P=0.

von Franz (Gast)


Lesenswert?

Zwölf M. schrieb:
> Eine Trivialst Temperaturregelung...

Ja bei einer Temperaturregelung kann ich noch verstehen, die 
Soll-Temperatur muss gehalten werden. Bei einem DC Motor nicht, wenn die 
Soll-Pos erreicht ist, dann muss die Spannung weg (Pid_Out = 0).

von Der Andere (Gast)


Lesenswert?

Traubensaft .. schrieb:
> Der Andere schrieb:
>> Das wäre ein reiner P Regler.
>
> Das wäre ein heuristischer Regler mit nicht-linearer
> Übertragungsfunktion. Ein P-Regler könnte (bis auf einen statischen
> Lagefehler) wahrscheinlich die Position einregeln.

Falsch, ein Regler dessen Ausgangswert 0 ist wenn sein Eingangswert 0 
ist ist ein reiner P Regler.
Und nichts anderes habe ich gesagt, bitte schau dir auch das Zitat an 
auf das sich meine Aussage bezieht.

von Traubensaft .. (increasingcurrant)


Lesenswert?

Der Andere schrieb:
> ein Regler dessen Ausgangswert 0 ist wenn sein Eingangswert 0 ist ist
> ein reiner P Regler.

Ja, aber nur wenn er bei einem auftretenden Regelfeher die PWM wieder 
anschaltet. Das hatte der TE aber scheinbar nicht vor.

Ich bin mir sicher, dass es mit der Einführung von Bedingungen keine 
bessere Regelung wird. Entweder das Einstellen des PID reicht aus, oder 
der TE sollte eine kaskadierte Regelung aufbauen.

von Purzel H. (hacky)


Lesenswert?

> Ja bei einer Temperaturregelung kann ich noch verstehen, die
Soll-Temperatur muss gehalten werden. Bei einem DC Motor nicht, wenn die
Soll-Pos erreicht ist, dann muss die Spannung weg (Pid_Out = 0).

Nur wenn kein Drehmoment ansteht.

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.