LabVIEWForum.de - Luenberger Beobachter erstellen

LabVIEWForum.de

Normale Version: Luenberger Beobachter erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Labview-Community,

ich würde gerne in Labview einen diskreten Luenberger Beobachter entwerfen. Dummerweise bekomme ich das nicht hin. Ich hab das entsprechende VI mal angehangen und zudem eine pdf, die auf S. 9 die Struktur des Beobachters zeigt.
In der VI sind zwei Beobachter zu sehen, einmal ein selbstgebauter (innerhalb und außerhalb einer while-Schleife) und darunter der in Labview enthaltene "discrete observer". Der "discrete observer" ist meines Erachtens korrekt konfiguriert, dennoch wird immer eine Fehlermeldung ausgegeben und mir ist nicht klar warum.
Der selbstgebaute Beobachter scheint strukturell ok zu sein, wenn ich ihn jedoch in das VI einbette, indem ich ihn verwenden will, wird nur NaN ausgeben. Offensichtlich liegt das an der While-Schleife, jedoch ist mir hier auch nicht klar warum das so ist und wie ich das Problem beheben kann.

Danke schon mal für eure Antworten,

Grüße pip
Hallo pip,

Zitat:In der VI sind zwei Beobachter zu sehen, einmal ein selbstgebauter (innerhalb und außerhalb einer while-Schleife)
Was soll die Schleife? Oder anders herum: warum zweimal die gleiche Struktur und einmal davon innerhalb einer Schleife?

Zitat:der in Labview enthaltene "discrete observer"
Zum SIM-Toolkit kann ich nichts beitragen...

Zitat:Der selbstgebaute Beobachter scheint strukturell ok zu sein, wenn ich ihn jedoch in das VI einbette, indem ich ihn verwenden will, wird nur NaN ausgeben.
Bisher hat dein Beobachter überhaupt gar keinen Ausgangswert. Zumindest hast du nirgends einen angeschlossen...

Zitat:Offensichtlich liegt das an der While-Schleife, jedoch ist mir hier auch nicht klar warum das so ist
Mir ist nicht klar, warum eine Schleife den Ausgangswert beeinflussen sollte.
Außerdem ist mir nicht klar, wieso das für dich so "offensichtlich" ist...
Hi,

zum Ausgangswert: Das sind die Zustände, die hinter dem Integrator herauskommen, die hab ich mir bisher einfach mit einer Sonde angeschaut.
zur Schleife: In der Schleife kommt hinter dem Integrator NaN heraus, außerhalb der Schleife nicht...das hab ich auch nicht verstanden, daher die Schleife und die Frage s.o..

Grüße pip

edit: Die Schleife hab ich nur zur Veranschaulichung des Problems eingefügt. Ich werde den Beobachter später in ein anderes VI einbinden, welches innerhalb einer while-Schleife läuft!
Hallo pip,

Zitat:Ausgangswert: Das sind die Zustände, die hinter dem Integrator herauskommen, die hab ich mir bisher einfach mit einer Sonde angeschaut.
Dann sollte man dort vielleicht einen Indicator anschließen?

Zitat:In der Schleife kommt hinter dem Integrator NaN heraus, außerhalb der Schleife nicht...
Der einzige Unterschied besteht darin, dass die Formel in der Schleife mehrfach (und das auch sehr schnell, da ungebremst) aufgerufen wird und jeweils das Ergebnis der vorigen Rechnung als Input verwendet. Wenn dabei etwas aus dem Ruder läuft ("divergieren" o.ä.), kann als Ergebnis schon mal NaN auftauchen.
Die Matrix-Funktionen haben alle einen "Fehler"-Ausgang, hast du da schon mal draufgeschaut?
Die Fehler der Matrixausgänge hab ich mir noch nicht angeschaut, werde das morgen mal machen! Die Schleife in der ich den Beobachter eingebettet hatte, läuft mit einer Abtastrate von 100Hz auf einem cRIO. Könnte tatsächlich sein, dass es daran liegt, weil die cpu-Auslastung vor Beobachter Implementierung schon bei ca. 85% lag, werde auch mal danach schauen! Vielen Dank auf jeden Fall für die Hinweise!

Grüße Philipp
Referenz-URLs