Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Hallo,
ich möchte einen Beobachter auf einem FPGA implementieren. Dazu benötige ich einen Integrator und einen PID Regler. Mein diskreter Integrator braucht als Eingangsinfo einen Wert im Format:
Wortlänge: 48bits
Integer Wortlänge: 170bits
Es ergibt sich ein delta von 5,31691E+36. Die Ein/ausgänge der anderen Reglerbausteine sehen ähnlich aus. Warum werden solche Formate gefordert? Mein Beobachter soll Werte im Bereich -1..1 liefern. Muss ich meine Eingangswerte durch eine Skalierung anpassen oder kann ich das auch eleganter deichseln?
Des Weiteren sample ich mit einer Abtastzeit im µs Bereich (hoffentlich). Muss ich den Eingang des Integrators mit der Abtastzeit oder mit der Frequenz multiplizieren (oder liege ich komplett daneben)?
Vielen Dank im Voraus.
PS: benutze LabVIEW 2013SP1. Als Hardware kommt ein cRIO-9014 zum Einsatz.
Das Bild zeigt einen Teil des Beobachters. Den gleichen Block gibt es nochmal mit etwas anderen Werten im zweiten PI-Regler. Die typkonvertierung nehme ich vor, um die geforderten Datentypen zu erzielen. Wenn ich vor der Konvertierung jedoch einen Wert zwischen -1..1 oder auch -1000..1000 werden die Werte danach einfach wieder auf Null gesetzt.
Edit: Hab den vollständigen Regelkreis mit Beobachter vorher in Simulink getestet (hab da mehr Erfahrung). Da lief alles wie es sollte. Daher weiss ich, dass die Struktur und die Parameter schonmal einigermaßen i.O sind.
die Lösung war tatsächlich ganz simpel. Die VI's passen sich den Eingangsformaten an und erzeugen dazupassende Ausgangsdaten. Mein Problem war, dass ich den Regler erst auf das BD gezogen und mir eine Konstante erstellt hatte. Die Konstante hatte dann dieses Zahlenformat. Daher meine Annahme ich müsste solche Eingangswerte liefern. Ohne die Typkonvertierung klappt es jedoch nicht.