mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PID-Regler: Integrationsgrenzen


Autor: ME (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich hab ein kleines Verständnisproblem zur Theorie der PID-Regler:

Wie genau werden beim I-Teil die Integrationsgrenzen gewählt?

In der englischen Wikipedia steht da 0 als untere Grenze:
In diesem PDF auf www.mikrocontroller.net steht minus unendlich:
http://www.mikrocontroller.net/attachment/19031/PI...

Was wählt man da bei einer konkreten Implementation?

-Minus unendlich ist wohl weniger für die Praxis geeignet, man kann ja 
nicht beim Urknall anfangen :-)
-Null scheint mir schon besser. Das hiesse dann, dass die Integration 
dann beginnt, wenn der Regler eingeschaltet wird. Aber dann geht der 
Integrator bald mal ans Maximum oder Minimum.

Deshalb:
-Wird da über eine gewisse Zeit nur integriert, z.B. die letzten 10 
Sekunden oder so?
oder
-Wird solange integriert, bis ein Maximalwert (resp. Minimalwert) 
erreicht ist, und dann der Integrator auf null zurückgesetzt, sodass der 
P teil nachregeln muss?

Im Voraus Danke fuer eure Antworten.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ME schrieb:

> -Minus unendlich ist wohl weniger für die Praxis geeignet, man kann ja
> nicht beim Urknall anfangen :-)

Eben

> -Null scheint mir schon besser. Das hiesse dann, dass die Integration
> dann beginnt, wenn der Regler eingeschaltet wird. Aber dann geht der
> Integrator bald mal ans Maximum oder Minimum.

Warum?
Theoretisch nicht. Ausser dein Regelkreis funktioniert nicht.
Aber irgendwann wird das e(t) ja auch negativ.


> -Wird solange integriert, bis ein Maximalwert (resp. Minimalwert)
> erreicht ist, und dann der Integrator auf null zurückgesetzt, sodass der
> P teil nachregeln muss?

Nicht auf 0 setzen.
Sondern wenn der integrierte Anteil einen bestimmten 
Maximalam/Minimalwert erreicht hat, wird er einfach nicht mehr erhöht. 
Es würde sonst beim weiteren aufintegrieren einfach zu lange dauern, bis 
das Integral wieder in vernünftige Bereiche zurückkommt. Stichwort 
"Anti-Windup"

Macht ja auch sinn, denn irgendwann ist immer ein Punkt erreicht, an dem 
eine Erhöhung/Erniedrigung des Stellsignals am Ausgang nichts mehr 
bewirkt. Bei deinem Auto gibt es auch eine Stellung des Gaspedals ab der 
die Beschleunigung einfach nicht mehr zunimmt, wenn du da drüber kommst. 
Ob du das Pedal nur halb oder voll reindrückst, hat auf die 
Beschleunigung keine Auswirkung mehr. Es dauert aber länger das Pedal 
von 'voll gedrückt' auf 'normal' zurückzubringen, als von 'halb 
gedrückt'

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee in der Praxis läuft es gaanz anders.

Da gibt es I-Anteile von Reglern deren Koeffizienten umgeschaltet werden 
(in Abhängigkeit der Regelabweichung oder einer Störgröße).
Der I-Anteil wird eingefroren oder mit einem bestimmten Wert 
initialisiert wenn die Regelstrecke an den Anschlag läuft.
Bei Vorzeichenumkehr der Regelabweichung wird auch schon mal der 
Integrator gelöscht.
Der I-Regler arbeitet Parallel (additiv) oder in Reihe (multiplikativ) 
zu einer Vor-Steuerung (abhängig von einem Modell).
Der Ausgang des Reglers wird auf einen bestimmten Wertebereich begrenzt.

Und das ganze in beliebigen Kombinationen (je nach Regelstrecke). Einen 
I-Regler in Reinform wirst Du in einer realen Anwendung nur selten 
finden.

Gruß Anja

Autor: ME (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für diese sehr schnelle Antwort.

Wenn ich das also digital implementiere, steht anstelle des Integrals ja 
eine Summe. D.h. ich summiere laufend die Regeldifferenz (Soll-Wert 
minus Ist-Wert) auf. Falls diese Summe grösser als ein bestimmter Wert 
wird, erhöhe ich sie nicht mehr (bis sie wieder unter diese Grenze 
fällt).

In der Analogtechnik entspricht das dann dem Fall, dass der OP des 
Integrators die grösste (resp. kleinste) mögliche Ausgangsspannung 
erreicht hat.

Hab ich das so richtig verstanden?

Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ ME

Der PID Regler ist nur ein Regelkreiselement. Also du hast noch keinen 
funktionierenden Regelkreis.

Durch die Rückkopplung im Regelkreis wird dann ausgeregelt.

Es wird ja Sollwert - Istwert gerechnet also wenn der Istwert über dem 
Sollwert ist begint der Integrator wieder nach unten zu Integrieren. Aus 
diesem Grund gibt es nie wirklich ein Maximum (außer beim überschwingen 
vielleicht oder bei hohem Sollwert).

http://de.wikipedia.org/w/index.php?title=Datei:Ei...

Mfg Patrick

Autor: ME (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Aus diesem Grund gibt es nie wirklich ein Maximum

Natuerlich gibts ein Maximum.
In der Praxis hat alles ein Maximum!

In der analogen Welt ist das die Betriebsspannung, in der digitalen Welt 
die Bit-Breite der verwendeten Variablen (sowas wie 0xFFFF)

Dieses Maximum wird erreicht, falls der Regler den Sollwert (aus was 
fuer Gruenden auch immer) nicht erreicht.

Der grundsaetzliche Aufbau eines Regelkreises ist mir schon klar.

Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol und dann fragst wegen sowas triviales ?

Aja in der Digitaltechnik werden Filter/Regelkreise via FIR, IIR Filter 
realisiert.

Mfg Patrick

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ME schrieb:
> In der analogen Welt ist das die Betriebsspannung, in der digitalen Welt
> die Bit-Breite der verwendeten Variablen (sowas wie 0xFFFF)

Soo weit würde ich gar nicht gehen: Wenn Du eine 10 Bit PWM-Ausgabe hast 
und dein Stellglied sich nur im Bereich 10-90% mechanisch überhaupt 
bewegt, dann wirst du den Gesamtreglerausgang (Summe P + I + D) auf den 
Bereich 102 - 922 (10-90%) begrenzen. Wenn Du in der Begrenzung bist ist 
es meist nicht sinnvoll den I-Anteil weiter zu erhöhen. (Anti-Windup war 
schon das Stichwort).

Gruß Anja

Autor: Benni L. (sutter_cain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich finde folgende Algorithmus ganz gut, er arbeitet mit der ersten 
Ableitung der Formel für den PID Regler und addiert diese Änderung dann 
immer auf einen Summenwert.
Das sieht dann folgendermaßen aus:

 ist der vorherige Wert der Regelabweichung, diesen musst du speichern
 ist der vorletzte Wert der Regelabweichung, diesen musst du ebenfalls 
speichern

Jetzt kannst du noch Prüfungen zum verhindern von Überläufen, sowie 
Begrenzungen hinzufügen.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick Weinberger schrieb:
> Aja in der Digitaltechnik werden Filter/Regelkreise via FIR, IIR Filter
> realisiert.

Den I-Anteil könnte man natürlich als IIR Filter bezeichnen, P- und 
D-Anteil haben keinen Speicher, also ist schonmal nichts mit IIR. Ein 
FIR-Filter als Regler? Nenn mal bitte ein Beispiel wo das sinnvoll ist!

Ein Schelm, wer Buzzword-Bingo dabei denkt!

Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke. Googeln nach "FIR" und "Regelung" habe ich selbst auch schon 
hinbekommen. Schön, dass es wenigstens irgendjemanden gibt, der diese 
beiden Themen zusammengebracht hat.

@ME und alle anderen: Vergesst die guten alten P(I)(D)-Regler mit all 
ihren heuristisch motivierten Nichtlinearitäten (obwohl sie für > 95 % 
aller Fälle ausreichend sind). Die Zukunft gehört den 
selbstadaptierenden Reglern, die die Strecke optimal durch Invertierung 
ihres Fuzzy-Neuronalen-Netzes mittels FIR/IIR Parametervariation 
umgekehrt abbilden können.

Popcorn und Bier bitte!

Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl

Wie sagte ein Prof von mir mal kanns auch mit der diffgleichung machen 
aber es ist ned schön und auch nicht schnell. Zudem lassen sich FIR/IIR 
Filter schön in DSPs ausführen.

Du hast Laplace und Z-Transformation vergessen.
Ich persönlich bevorzuge die Näherung nach Euler oder Trapez zum 
berechnen der Filterkoeffizienten gg
Die Fensterung usw.

Viel mathe aber nix dahinter eigentlich (gutes Tabellen Buch hilft)

Man muss aber beim rechnen verdammt aufpassen weil ein Rundungsfehler 
katastrophal sein kann oder wenig Nachkommastellen

Mfg Patrick

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, DSPs sind für FFT und MADD gebaut. Habe auch nie bestritten, dass 
die typische Implementierung eines Reglers nach der Differenzengleichung 
geschieht, nur einen FIR hat es bei meinen Regelungsaufgaben noch 
nicht gebraucht. Wenn man ihn minimalphasig auslegt, kann man auch 
gleich nen IIR nehmen ;) und sonst verbieten sie sich wegen der 
Phasenverschiebung. Allerdings bin ich normalerweise auch auf der "so 
schnell wie möglich" Seite der Regelungstechnik und nicht auf der "muss 
schön ausschauen"-Seite. Und auch hier reichen die Standard-Regler, 
manchmal kaskadiert und mit ein wenig Heuristik (I-Begrenzung, 
Rücksetzung, usw.) bis jetzt aus.

Wenn es Quantisierungsprobleme bei IIRs gibt: Wellendigitalfilter.

Autor: Jörg Hermann (dr_coolgood)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Integrationsgrenzen revisited, ich knobel auch an dem Thema:

Windup des Integrators und Begrenzung des Ausgangssignals habe ich 
analog (Spannung) wie digital (Bitbreite, PWM oder was auch immer 
begrenzt) verstanden.

Situation:
Eine positive Regelabweichung liegt an und wird im Integrator 
aufsummiert. Die Stellgröße arbeitet der Störung entgegen, bis Soll- und 
Istwert übereinstimmen.
In dem Moment werden Regelabweichung und Stellgröße Null.

Jedoch: Im Integrator steht weiterhin die aufsummierte Regelabweichung 
und verändert sich nicht mehr. Kommt nun eine Regelabweichung in den 
negativen Bereich, muß der Integrator erst mal "abgearbeitet" werden, 
bevor er seinen Anteil zum Ausregeln der negativen Reglerabweichung 
liefern kann.

Ist das so richtig verstanden?

Deswegen favorisiere ich Anjas Kommentar mit dem Rücksetzen des 
Integrators bei Vorzeichenwechsel, würde es sogar bei einer 
Regelabweichung von 0 schon tun.

Nur: In keinem Beispielcode eines PID Reglers wird der Integrator 
gelöscht.
Warum?

Grüßlis
Jörg

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Antiwindup des Integrator ist nicht die limitation des Integrators 
an der Speisespannung. Sondern eher, dass der Integrator nicht 
Weitermachen muss wenn das Stellglied an der Begrenung ist. Dies ist 
speziell bei integrativen Strecken der Fall. Dann laesst man die Strecke 
mal erst integrieren, der Fehler wird von selbst kleiner.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey noch Was schrieb:
> Das Antiwindup des Integrator ist nicht die limitation des Integrators
> an der Speisespannung. Sondern eher, dass der Integrator nicht
> Weitermachen muss wenn das Stellglied an der Begrenung ist. Dies ist
> speziell bei integrativen Strecken der Fall. Dann laesst man die Strecke
> mal erst integrieren, der Fehler wird von selbst kleiner.

I-Strecken mit einem I-Regler regeln? Das schreit doch nach 
Instabilität.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Welt so perfekt waere... eine Heizung auf eine Temperatur zu 
regeln hat meist einen integrierenden Charakter. Ist es auch wenn man 
die Verluste auch gleich einbezogen haette. Falls man keine Annahmne zu 
den Verlusten machen kann, da zB variabel, nimmt man eben einen 
Integrator.

Ein PID Regler ist der Regler fuer Faule, die sich nicht um die Strecke 
kuemmern wollen, oder koennen.

Autor: Accountname vergessen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur eigentlichen Frage zurück:
Ob du jetzt von 0 oder -Unendlich anfängst zu Integrieren, hängt von der 
Aufgabenstellung ab, sofern dies eine Rolle spielt.
Wir betrachten bei dem Integral ja den reinen I-Anteil des PID-Reglers. 
Und rein theoretisch betrachtet ist dieser I-Anteil ja erstmal ohne 
Begrenzung, d.h. er kann unendlich viel speichern.
Du könntest jetzt von -Unendlich anfangen zu integrieren, dann hast du 
sozusagen "das ganze Leben" des Integrators mit beachtet.
Du könntest aber auch sagen, dass du einen Anfangszustand des 
Integrators hast, sprich ein kI(0), dass den Verlauf von -Unendlich bis 
0 auffängt und du beginnst dann bei 0 zu integrieren und addierst diesen 
Anfangszustand hinzu.

Für den Fall, dass von 0 angefangen wird, zu integrieren und auch kein 
Anfangszustand hinzuaddiert wird, heißt das doch bloß, dass man annimmt, 
dass der Integrator zum Zeitpunkt t=0 den "Füllstand" 0 hat, also leer 
ist.

----

Dass in der Praxis ein idealer Integrator nicht existiert, ist ja glaube 
ich jedem klar.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.