Hi, Ich versuche einen diskreten Regler zu implementieren, welcher die Übertragungsfunktion wie im Anhang hat. Mein uC hat keine FPU (STM32 mit FPU sind im Moment praktisch alle nicht mehr Verfügbar) und ich möchte die Koeffizienten so anpassen, dass ich alles in Integer rechnen kann. Im Moment ist der Eingang die Leistung in W und der Ausgang die Temperatur in °C und ich kann natürlich auch Eingang und Ausgang skalieren, aber nur bis auf Integers. Jemand eine Idee, wie ich die Koeffizienten skalieren kann, ohne das Regelverhalten zu beeinflussen und keine Floating Point Operationen ausführen muss?
Bert S. schrieb: > Mein uC hat keine FPU (STM32 mit > FPU sind im Moment praktisch alle nicht mehr Verfügbar) und ich möchte > die Koeffizienten so anpassen, dass ich alles in Integer rechnen kann. Rechne erstmal in Float und guck, ob Deine Wiederholrate ausreicht. Die Chancen sind sehr gut, dass Du angenehm überrascht sein wirst - vor allem bei festen Koeffizienten (Horner-Schema). BTDT. Sollte es nicht reichen, kannst Du die float-Implementierung immer noch zum Gegentesten brauchen.
:
Bearbeitet durch User
Walter T. schrieb: > Rechne erstmal in Float und guck, ob Deine Wiederholrate ausreicht. Die > Chancen sind sehr gut, dass Du angenehm überrascht sein wirst - vor > allem bei festen Koeffizienten (Horner-Schema). Ok, da hast du recht, ich probiere es mal aus. Es wäre aber schon spannend, wie man diese Koeffizienten skalieren kann. Habe bereits in Octave ein wenig ausprobiert, aber die a-Koeffizienten kann ich nicht skalieren.
:
Bearbeitet durch User
Bei einer Temperaturregelung ist die Wahrscheinlichkeit Recht hoch, dass es sich so geht, was ist denn deine Regelfrequenz? Ansonsten zerlegt man auch gerne ein Filter in mehrere Teilfilter zweiter Ordnung. Diese lassen sich dann auch besser in Fixed Point umwandeln.
wenn man sich jetzt weit aus dem Fenster lehnt und Zähler und Nenner mit 1000 erweitert?
A. S. schrieb: > wenn man sich jetzt weit aus dem Fenster lehnt und Zähler und Nenner mit > 1000 erweitert? Viel zu weit hergeholt, so kann das doch gar nicht gehen. ;)
Mich würde ja erstmal interessieren, was aus der ursprünglichen Regelung geworden ist. Hat es funktioniert, suchst Du noch Probleme oder pausiert das Projekt?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.