Forum: Mikrocontroller und Digitale Elektronik PID-Regler Pseudocode


von Norbert S. (norberts)


Lesenswert?

Hi,

ich komme nun wohl doch nicht um einen echten PID-Regler herum und bin 
mir nicht sicher, ob die Umsetzung wie ich sie mir jetzt denke etwa 
passt. Das Ganze soll die Lage mittels Gyros regeln und da kommt das 
erste Problem: Der Fehler ist ja einmal die Drehrate aber irgendwie auch 
die Winkelabweichung der letzten N Fehler (Drehraten).
Ich lese die Fehler in einen Ringspeicher. F(1) ist der älteste, F(n) 
der neueste Messwert (Drehrate).

Nehme ich die Drehrate als Fehler:
Der aktuelle F(n) ist mein P.
Summe F(1) bis F(n) ist mein I
F(n) - F(n-1) ist mein D

Nehme ich den Winkel als Fehler:
Summe F(n/2) bis F(n) ist mein P
Wenn Summe F(1) bis F(n/2) Palt ist, dann ist Palt + Pneu mein I
Pneu - Palt ist mein D

Ich kann keine Beispiele finden, wo das mit vielen Werten gemacht wird, 
soweit ich das verstehe wird meist nur mit alt und neu gerechnet.
Aber wie sollte das mit der zweiten Variante gehen?

Daß man da viel ausprobieren muß ist klar aber das Problem dabei ist, 
daß ich nicht weiß ob mein reales System überhaupt stabil zu bekommen 
ist.

Probiert habe ich bisher mit einem reine P-Regler nach der zweiten 
Variante (also die letzten n Drehraten aufaddiert und skaliert). Das sah 
nicht wirklich gut aus. Also wenn meine Regelung auch bei vollausschlag 
den Fehler nicht kompensieren kann, probiere ich mir ja nen Wolf weil es 
gar nicht gehen kann.

Ich wäre dankbar für ein paar Tips.

Gruß,
Norbert
von hmmm (Gast)


Lesenswert?

von Norbert S. (norberts)


Lesenswert?

Hi,

Danke, das kenne ich und das hat mich zumindest dahin gebracht wo ich 
jetzt bin.
Das ist mit Abstand die verständlichste Erklärung die ich kenne aber 
eben sehr allgemein gehalten.

Oder ich probiere es mit P'PID ;-)
Also die zweite Variante und den aktuellen F(n) als P'.

Und wenn ich richtig verstehe, wenn ich es rein mit P nicht zum 
Schwingen kriege ist der Regelausschlag des Systems zu klein?

Ach ja, Frohes Fest!

Gruß,
Norbert
von Oliver R. (oliverr)


Lesenswert?

Wenn Du das System mit einem reinen P-Regler nicht zum schwingen 
bekommst, dann ist Dein P-Anteil zu klein ... :-)

Insbesondere in abgetasteten Systemen bekommst Du es immer zum 
schwingen, da die Abtastzeit des Systems als pt1 approximiert werden 
kann und dir dadurch einen 90Grad Versatz beschert.

Also nur Mut, einfach hochdrehen das Ding. Wenns schwingt, die 
Schwingungsperiode nehmen, und damit den I-Anteil füttern.

Den D-Anteil würde ich erst zum Schluss anfassen.

Grüße
OR
von Norbert S. (norberts)


Lesenswert?

Oliver R. schrieb:
> Wenn Du das System mit einem reinen P-Regler nicht zum schwingen
> bekommst, dann ist Dein P-Anteil zu klein ... :-)
>
> Wenns schwingt, die Schwingungsperiode nehmen, und damit den I-Anteil füttern.

Hi,

also Ersteres denke ich jetzt auch und ich denke es liegt nicht bloß am 
P-Anteil sondern vor allem an der Umsetzung im realen System. Also muß 
ich das System ändern, sprich, ein neues Fluggerät bauen, das erstmal 
nicht ganz so instabil ist.

Der zweite Hinweis war sehr wertvoll, lässt er mich die Sache doch 
besser verstehen.
Ich denke die Zeit für den I-Anteil sollte ich an eine Halbwelle 
anpassen?
Auf eine Periode ist der I-Anteil ja wieder 0.

Gruß,
Norbert
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.