www.mikrocontroller.net

Forum: FPGA, VHDL & Co. PID Regler-Übertragungsfunktion


Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Hab ein Problem beim Verständnis des PID Reglers. Die 
Übertragungsfunktion eines PID Reglers lautet ja:

U(s)= Up(s)+Ui(s)+Ud(s).

Up(s)= Kp*(W(s)-y(s)).                     Regeldifferenz e:
Ui(s)= Ki*(W(s)-y(s)*1/s.                    e=W(s)-y(s)
Ud(s)= Kd*(W(s)-y(s))*s.

nun mit der Tustin Formel im Z Bereich umtransformiert ergobt sich dann:

Up(z)= Kp*(W(z)-y(z)).
Ui(z)= Ki*T/2*(W(z)+(W(z)*z^-1)-y(z)-(y(z)*z^-1)+Ui(z)*z^-1).

Nun mein Problem, um den D Teil zu transormieren sieht doch die 
Gleichung so aus:

Ud(z)=Kd*2/T*((W(z)-y(z))-(W(z-1)-y(z-1)))*(z-1/z+1).
(Ud(z)=Kd*2/T*(   e      -        ealt)   *(z-1/z+1))

Ud(z)=Kd*2/T*((W(z)-(W(z)*z^-1)-y(z)+(y(z)*z^-1))-(W(z-1)-(W(z-1)*z^-1)- 
y(z-1)+(y(z-1)*z^-1))-Ud(z)*z^-1.

Ist das in etwa so korrekt.Danke.
Was mein Nächster Schritt ist, ich will diesen Algorythmus in Vhdl 
implementieren, den p Anteil und den i Anteil habe ich schon 
implementiert nur habe ich Probleme den D Anteil zu implementieren.

Hoffe ihr könnt mir helfen.

MfG

Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Hab was vergessen, wenn man nun Ud(z) diskretisiert sollte doch die 
Funktion so aussehen.

Ud(k)=Kd*2/T*(W(k)-W(k-1)-y(k)-y(k-1)-W(k-1)+W(k-2)-y(k-1)+y(k-2))-Ud(k- 
1)

Ud(k)=Kd*2/t*(W(k)-2*W(k-1)-y(k)+2*y(k-1)+W(k-2)-y(k-2))-Ud(k-1)

Stimmt das auch so.Danke.

MfG
A

Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ist da keiner der mir weiterhelfen kann.

Hab nun herausgefunden, dass der I-Anteils mit der Tustin-Formel und 
D-Anteil nach der Rechteckregel umgesetzt wird also lautet die Formel 
wiefolgt:


U=Kp+Ki*1/s+Kd*s
 =Kp+Ki*T/2*(z-1/z+1)+Kd*1/T*(z-1/z),

dass bedeutet, dass meine Ergebnis von oben nicht ganz stimmte, dann 
sieht die Lösung für den D-Anteil wiefolgt aus:

Ud(k)=Kd*1/T*(W(k)-2*W(k-1)-y(k)+2*y(k-1)+W(k-2)-y(k-2))+Ud(k-1)

    =Ud(k-1)+Kd*(W(k)-y(k)+(2*(-W(k-1)+y(k-1))+W(k-2)-y(k-2))
    =Ud(k-1)+Kd*(W(k)-y(k)-(2*(W(k-1)-y(k-1))+W(k-2)-y(k-2))

Danke.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.