Z-Trafo - Koeffizienten nach Integer

OP #7093008
Lesenswert?
• ▲
▼
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?
Angehängte Dateien:
#7093010
Lesenswert?
• ▲
▼
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.
OP #7093035
Lesenswert?
• ▲
▼
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.
Gast #7093316
Lesenswert?
• ▲
▼
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.