Frage zu PID AppNote AVR221.

Gast #4898605
Hi Forum,

ich beschäftige mich seit ein paar Tagen mit der APPNOTE AVR221 von 
Atmel.
Ich habe den Regler nach der AVR 221 AppNote implementiert, er läuft 
auch aber ich bin mir nicht ganz sicher ob das so stimmt.

In folgenden Beitrag wird die Formel für die D-Term Berechnung wie folgt 
beschrieben.

y = Kp*e + Ki*Ta*esum + Kd/Ta*(e – ealt);

http://rn-wissen.de/wiki/index.php?title=Regelungstechnik#PD-Regler

Im Quelltext zu der Appnote von ATMEL so:

d_term = pid_st->D_Factor * (pid_st->lastProcessValue - processValue);


Jetzt frage ich mich was nun richtig ist. Klar in der oberen geht Td mit 
ein (Abtastzeit bei mir 10 Sekunden).
In der unteren nicht, wird die da einfach nur vernachlässigt oder sied 
das zwei verschiedene D-Term Typen?

Weiter ist es einmal (error - error_alt) in der zweiten genau anders 
herum (lastProcessValue - processValue). Wie rum ist das nun richtig?

Wäre toll wenn einer mit Regeltechnik Erfahrung was dazu sagen könnte.
Gruß und einen schönen Sonntag, AVRli...
Gast
AVRli schrieb:
> In folgenden Beitrag wird die Formel für die D-Term Berechnung wie folgt
> beschrieben.
>
> y = Kp*e + Ki*Ta*esum + Kd/Ta*(e – ealt);
> ...
> Im Quelltext zu der Appnote von ATMEL so:
>
> d_term = pid_st->D_Factor * (pid_st->lastProcessValue - processValue);

Der Therm
1
Kd/Ta*(e – ealt)
aus der oberen Gleichung (RN) und die Gleichung für d_Therm aus der 
Appnote sagen das gleiche mit unterschiedlichen Worten. In der 
Beschreibung der Appnote ist das Abtastintervall bereits in den 
Koeffizienten reingerechnet. Koeffizientenvergleich liefert
1
d_therm = Kd/Ta
Ein einmal bestimmter Koeffizient d_therm gilt also nur für eine 
bestimmte Abtastfrequenz.
Gast
AVRli schrieb:
> Weiter ist es einmal (error - error_alt) in der zweiten genau anders
> herum (lastProcessValue - processValue). Wie rum ist das nun richtig?

Beides auf seine Art. Bei RN steht in der PID-Gleichung die Differenz 
der Fehler, in der Appnote-Gleichung die Differenz der prozessValues. Je 
nach dem, wie im Kontext die unterschiedlichen Größen definiert sind, 
führt das zu unterschiedlichen Endgleichungen.

Richtig ist das Vorzeichen, dass bei einem Sollwertsprung zu einer 
schnellen Korrektur der Regelabweichung führt ;-)
Probier's einfach mal z.B. in einer Tabellenkalkulation aus, wie sich 
dein Regler mit falschem und richtigem Vorzeichen benimmt.
Gast
Vielen Dank Wolfgang!
Das habe ich allein nicht erkannt, muß auch gestehen, das ich die 
Beschreibung mit der ganz großen Formel nicht folgen kann.

Ich werde mich dann an die AppNote Beschreibung und den Code halten und 
die Zeilen aus RN so akzeptieren, da sie wohl im Ergebnis das gleiche 
ausdrücken, es ein anderer Weg ist und nicht 1:1 vergleichbar ist.

Nochmals Danke, einen schönen Sonntag!
Gruß AVRli...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.