Forum: Mikrocontroller und Digitale Elektronik Integrieren mit uC


von Samuel (Gast)


Lesenswert?

Hallo zusammen,

Auf einen Arduino UNO würde ich gerne einen PID-Regler programmieren. 
Numerische Integrationsmethoden sind mir bekannt. Es geht mir mehr um 
eine Empfehlung zum Vorgehen.

Mir schwebt eine ISR vor die durch einen Timer ausgelöst wird. Dadurch 
würde sich ein eingermassen "präzises" dT ergeben. Wird dies so 
realisiert oder bin ich völlig auf dem falschen Weg?

Cheers,
Sam

von Falk B. (falk)


Lesenswert?

Ist OK.

von Andreas T. (skycurve)


Lesenswert?

Hier ist ein einfaches Beispiel:
https://en.wikipedia.org/wiki/PID_controller#Pseudocode
den Code von "start:" bis "goto start" in der ISR ausführen.
Das "wait(..)" brauchst du nicht, da du ja bestimmen kannst, wie oft die 
ISR aufgerufen wird.

Gruß

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die Application Note AVR221 beschreibt die Implementierung eines 
'ISR-losen' PID Reglers auf AVR MC.
Interessante Lektüre ists auf jeden Fall:
PDF:
http://www.atmel.com/Images/doc2558.pdf
Code:
http://www.atmel.com/images/AVR221.zip

von Samuel (Gast)


Lesenswert?

Besten Dank für die konstruktiven Antworten!

von Martin L. (maveric00)


Lesenswert?

Hallo,

bleibt höchstens anzumerken, dass die Algorithmen, die man normalerweise 
unter "numerische Integrationsmethoden" versteht (außer Euler) nur 
einsetzbar sind, wenn man den Zeitpunkt der Funktionsermittlung selber 
bestimmen kann (da in der Regel bei der Bestimmung Kenntnisse über einen 
möglichen "zukünftigen" Verlauf notwendig sind).

Daher ist jede numerische Integration bei einer Echtzeitregelung eine 
einfache Summation in mehr oder weniger festen Zeitabständen 
(vergleichbar mit Euler). Reicht dies nicht aus, müssen Informationen 
über die Regelstrecke eingearbeitet werden (wie z.B. bei der 
modellbasierten Regelung).

Schöne Grüße,
Martin

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.