Forum: FPGA, VHDL & Co. PI Regler Programmieren


von Lars (Gast)


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?

von Lars (Gast)


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..

von Stefan R. (stefripp)


Lesenswert?

Sieht nach der s-Form aus, du brauchst aber die z-Transformierte

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

von Duke Scarring (Gast)


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

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.