Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zu PID AppNote AVR221.


von AVRli (Gast)


Lesenswert?

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...

von Wolfgang (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von AVRli (Gast)


Lesenswert?

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...

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.