www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PID-Regelalgorithmus für ATMEL


Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hat von euch schon jemand Erfahrung mit einem PID-Regelalgorithmus für
Microkontroller sammeln können? Wir haben mit userem Prof eine
Differenzengleichung für einen PID Regler hergeleitet, wobei ich da
leider noch nicht zum Testen gekommen bin (nur die Spungantwort auf den
Oszi angeschaut) Wenn ja wie sieht das bei euch aus ? Vielleicht könnte
man mal alle Infos zusammentragen und hier reinstellen(falls Interesse
besteht).

Grüsse

: Gesperrt durch Moderator
Autor: thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abo

Autor: Witwenbetreuer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So bin wieder in Dütschland. hier als Anhang noch mal die Gleichung und
das Bild der Sprungantwort. Da ist der PI-Regler zu sehen beim PID wäre
halt bei Beginn der Sprung in die maximale(theorethische) Ewigkeit zu
sehen. Viel Erfolg beim Testen.

Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aua meine Rechtschreibung heute ....

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich weis nicht warum alle sich so krasse formeln "herleiten"

vor allem wenn das ergebnis so mies ausschaut... naja kann gut sein,
dass du die konstanten nicht richtig gewählt hast...


auf jeden fall ist ein klassischer PID regler eigentlich primitiv..

du benötigst eine variable zur integration, die vorherige
regelabweichung und die derzeitige regelabweichung.....

y=Kp*regelabweichung+Kd*(vorherige regelabweichung - derzeitiger
regelabweichung)+Ki*integrationsvariable

in jedem zyklus darfst du dann die regelabweichung zur
integrationsvariablen dazuaddieren und fertig..

wenn man sich jetzt das ganze überlegt kommt man drauf, dass Kd = Td
sein muss also die vorhaltezeit und Ki = 1/Ti also 1/ die
nachstellzeit... dann holst du dir noch einige primitive
einstell-faustformeln und du bist glücklich ;)

billig ist z.b die "open loop method" nach ziegler-nichols

das liefert zwar recht beachtliche überschwinger aber kann man dann
schon herumprobieren um das ganze zu optimieren...

73

Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Hans,
am Ende zählt das Ergebnis da hast schon Recht. Diese Gleichung wurde
halt im Rahmen einer Projektwoche an unserer Technikerschule
hergeleitet. Zu Begin stand die Integral/Differenzialgleichung eines
PID-Reglers in Form von Operationsverstärkern. Das viele Wege nach Rom
führen ist wohl jedem hier klar. Was meinst eigentlich mit Miess? Das
dort ist lediglich die Sprungantwort des Reglers ohne Regelstrecke wie
der geschlossene Regelkreis aussieht muss ich erst mal testen. Ich habe
da keinerlei Erfahrung mit, deshalb der Thread.

Gruss

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprungantwort ohne strecke??????

die sprungantwort sollte sich im idealfall vom eingangssprung nicht
unterscheiden !!!! das meinte ich mit mies ;)

73

Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für PI Regler in C:

Code:

float To=0.00128,Tn=0.001,Kp=0.3;
k=messwert;
Uk=Kp*(k+(To/Tn-1)+k1)+Uk1;
Uk1=Uk;
k1=k;
ausgabe(Uk);

so schlimm ist das auch nicht ^^

Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans...das k=Messwert stellt in dem Bild dargestellt die Regeldifferenz
e dar, diese ist eine Spannung die auf dem AD-Wandler
eingelesen(messwert) wird. Da e einfach nur vorgegaukelt wird und von y
nicht beeinflusst wird ist der Regler offen und gibt diese Sprungantwort
raus.

Autor: syd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

einn PI Regler kann man aber auch einfach so berechnen:

y(k) = Kp * e(k) + ((TA/TN) * e (k)) + y (k-1)

       \       /   \                        /
        -------     ------------------------
           |                   |
        P-Anteil            I-Anteil

dadurch benötigt man weniger speicher!

gruß

Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@SYD Danke ... ist TA die Zykluszeit zwischen den einzelnen
Berechnungen?

Autor: Syd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JA!

Autor: J. R. (cia_man)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haben die Beteiligten hier nun eine Lösung gefunden? Für PID?

Ich bräuchte nämlich hierfür auch eine Lösung!

Danke!

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

Bewertung
0 lesenswert
nicht lesenswert
Ein PID ist nun etwas dermassen Triviales. Die Welt ist voll davon. Wirf 
Gurgel an.

Autor: J. R. (cia_man)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay! Aber vlt liest das hier trotzdem jemand :-)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J. R. schrieb:
> Ich bräuchte nämlich hierfür auch eine Lösung!

Allerdings kommst du für diesen Thread mehr als 5 Jahre zu spät.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.