Hi Leute, seit Tagen sitz ich schon an einem Problem und komm nicht weiter. Ich möchte eine Übertragungsfunktion, deren Zähler 4. Ordnung und deren Nenner 5. Ordnung ist, mit dem RLS-Algorithmus über den Gleichungsfehler identifizieren. Das System ist an sich instabil und ungeregelt. Bisher simuliere ich es auch bloß. Den RLS-Algorithmus habe ich implementiert, aber die Parameter konvergieren nicht. Total falsch kann es nicht sein, denn zumindest die ersten paar Sekunden des Signals (ein paar aufschwingende Schwingungen) werden von meiner identifizierten Übertragungsfunktion korrekt berechnet... bis es dann irgendwann total abdriftet. Jetzt meine Frage1: Konvergiert der RLS-Algorithmus nur für stabile bzw. begrenzte Systeme? (Habe mit einem PT2 gespielt und da schien es so zu sein, dass die Konvergenz vom RLS nur zustande kam, wenn ich das System so gestaltete, dass die Schwingungen nicht aufschwingen.) Frage2: Der RLS-Algorithmus ist auch von der Anregung u abhängig. Mit der Sprungfunktion hält mein RLS wenigstens ein paar Sekunden durch. Mit Sinusanregung kommt von Anfang an Blödsinn raus. Jemand Tipps oder Erfahrungen, wie man denn ein System anregen sollte? In der Theorie find ich nichts dazu. Vielleicht hat ja jemand einen guten Tipp(./?)
Ich erinnere mich, dass es eine RLS-Variante mit Vergessensfaktor gibt. Benutzt du so einen Term? Zu 1): RLS geht auch bei instabilen Systemen. Zu 2): Versuche einmal eher langsame Signalverläufe und die Verwendung von Vergessensfaktor
>>>>>>>>
Frage2: Der RLS-Algorithmus ist auch von der Anregung u abhängig. Mit
der Sprungfunktion hält mein RLS wenigstens ein paar Sekunden durch. Mit
Sinusanregung kommt von Anfang an Blödsinn raus. Jemand Tipps oder
Erfahrungen, wie man denn ein System anregen sollte?
In der Theorie find ich nichts dazu. Vielleicht hat ja jemand einen
guten Tipp(./?)
Wenn Du das System kennenlernen willst, muss Du es breitbandig anregen (
sufficiently rich signal). Wenn Du nur einen Sinus raufgibst siehts Du
ja auch nur die Reaktion auf diesen Sinus. Sprung ist besser, probier
mal Rauschen.
Cheers
Detlef
Danke für die Tipps! Einen Vergessensfaktor habe ich optional eingebaut, ja. Die Kovarianzmatrix muss ja positiv definit sein, habe ich gelesen, damit der RLS konvergiert. Derzeit führe ich immer eine Neuinitialisierung der Kovarianzmatrix durch, sobald sie aufhört, positiv definit zu sein. Zusammen mit dem Vergessensfaktor habe es geschafft, dass der Algorithmus einige Simulationsminuten durchhält und dem Signal folgen kann. Letztendlich divergiert es allerdings leider trotzdem irgendwann und es kommen auch andere Parameterwerte raus, als ich vorgegeben habe. Für mich ist das ein Hinweis, dass ich den Algorithmus wohl doch nicht ganz richtig implementiert haben kann. Habe es mit Rauschen und Sprüngen probiert, aber wahrscheinlich ist eine ungenügende Anregung wohl doch nicht Ursache meines Problems. Ein Vergessensfaktor braucht man doch auch eigentlich nur dann, wenn sich die Systemparameter dynamisch verändern. Bei mir sind sie allerdings statisch fest vorgegeben. Naja, werde weiter Fehler suchen. Vielen Dank erst mal!
Rechnet dein Algorithmus mit Festkommazahlen? Da neigt der RLS-Algorithmus zur Instabilitaet.
Spiel mal mit der Kovarianzmatrix.
Gibt es ein Modell oder Skript? Vielleicht können wir ja mal drauf gucken.
Hast du deinen RLS-Algo mal an einem stabilen System ausprobiert und auf Funktionstüchtigkeit getestet? Wenn nicht, dann mach das mal. Und jetzt mal von meiner Seite was Anderes (bitte korrigiert mich, wenn ich falsch liege -- hatte noch keinen Kaffee heute Morgen...): Für was ein instabiles System identifizieren? Es divergiert doch. Und wenn das schon divergiert, ist es doch klar, dass auch mein Schätzer divergieren muss, weil der Erwartungswert des Schätzfehlers gegen Null streben sollte. Wie wäre es wenn du einen stabilisierenden Regler auslegst und dann eine closed-loop Schätzung machst? Aber Vorsicht: RLS verliert hierbei seine Legitimität, weil per Definition der Schätzfehler und das Rauschen unkorreliert sind! Funzt aber unter gewissen Bedingungen trotzdem...
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.