www.mikrocontroller.net

Forum: FPGA, VHDL & Co. PI Regler Programmieren


Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen bin mal wieder auf ein Problem gestoßen bei dem ich nicht 
so recht weiter komme..

Ich benötige einen PI Regler weiß aber nicht so recht wie ich ihn in 
VHDL Realisieren soll

hab mir mal die Formel rausgesucht ist die überhaupt richtig..?

esum = esum + e
y = Kp * e + Ki  Ta  esum

mein Problem liegt vorallem da, dass Ta eine float Zahl ist (0,01)und in 
VHDL lassen sich floats nicht berechnen.. habe auch schon überlegt Ta zu 
schieben und den Wert so zu vergrößern aber die anderen Werte sind schon 
25 Bit groß und würden ja so nur noch größer werden..

hat einer vielleicht ein paar gute ideen?

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ich vielleicht noch vergessen habe zu posten ist..

der Wert der in den Regler ein geht ist der Fehler zwischen einer Soll 
Geschwindigkeit und einer Ist Geschwindigkeit..

Je Größer die differenz ist desto stärker muss der Motor bestromt werden 
damit die Ist Geschwindigkeit gleich der Soll Geschwindigkeit wird..

in den Regler geht also
Fehler <= Vsoll - Vist;

und rauskommen soll ein wert für den Strom..

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht nach der s-Form aus, du brauchst aber die z-Transformierte

Erster Schritt: Lutz/Wendt aufschlagen und in die Zeitdiskrete Form 
bringen.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lars schrieb:
> Ich benötige einen PI Regler weiß aber nicht so recht wie ich ihn in
> VHDL Realisieren soll

Für die Synthese oder für die Simulation?


> mein Problem liegt vorallem da, dass Ta eine float Zahl ist (0,01)und in
> VHDL lassen sich floats nicht berechnen.
Falsch. Für die Simulation kannst Du z.B. math.real verwenden und für 
die Synthese gibt es Festkommaarithmetik.

Duke

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.