Konvergiert der RLS-Algorithmus nur für stabile bzw. begrenzte Systeme?

Gast #5026852
Lesenswert?

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(./?)
Gast #5027094
Lesenswert?

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
#5027727
Lesenswert?

>>>>>>>>
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
Gast #5028583
Lesenswert?

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!
#5103224
Lesenswert?

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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren