update_kalmanT_update_kalmanUpdateKalmanupdate_kalmanUpdateKalmanUpdateKalman — Einlesen einer Updatedatei eines Kalman-Filters.
Warnung
update_kalmanupdate_kalmanUpdateKalmanupdate_kalmanUpdateKalmanUpdateKalman ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt.
update_kalmanupdate_kalmanUpdateKalmanupdate_kalmanUpdateKalmanUpdateKalman liest die Updatedatei FileNameFileNameFileNameFileNameFileNamefileName eines
Kalman-Filters. Kalman-Filter liefern eine Schätzung des aktuellen Zustands
(oder auch eine Prädiktion des künftigen Zustandes) eines diskreten,
stochastisch gestörten, linearen Systems.
Eine Kalman-Filterung stützt sich dabei auf ein mathematisches Modell des zu
untersuchenden Systems, das zu jedem Zeitpunkt durch folgende Größen
charakterisiert wird:
Modellparameter:
Übergangsmatrix A, Steuermatrix G mit der Stellgröße u und
Messmatrix C
Modellstochastik:
Systemfehler-Kovarianzmatrix Q, Systemfehler-Messfehler-Kovarianzmatrix
L und Messfehler-Kovarianzmatrix R
Messvektor:
y
Systemvergangenheit:
Extrapolationsvektor und Extrapolationsfehler-Kovarianzmatrix
Viele Systeme kommen dabei ohne Eingaben „von außen“ und damit ohne
G und u aus. Außerdem sind im Normalfall System- und
Messfehler unkorreliert (L entfällt). Einige der oben genannten
Größen können sich dynamisch (von Iteration zu Iteration) ändern.
update_kalmanupdate_kalmanUpdateKalmanupdate_kalmanUpdateKalmanUpdateKalman dient zur Modifikation von Systemteilen gemäß
einer Updatedatei (ASCII) mit folgendem Aufbau (vgl. auch
read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman):
Dimensionszeile
+ Inhaltszeile
+ Matrix A
+ Matrix C
+ Matrix Q
+ Matrix G + Vektor u
+ Matrix L
+ Matrix R
und beschreibt den weiteren Inhalt der Datei. Statt '*' ist
dabei '+' (Parameter ist vorhanden) bzw. '-' (Parameter fehlt) einzusetzen.
Im Gegensatz zu Beschreibungsdateien für read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman muss die
Systembeschreibung hier nicht vollständig sein. Anzugeben sind nur
die sich ändernden Systemteile. Die Angabe von Schätzwerten
entfällt, da diese gemäß Konstruktion des Filters von der
jeweils letzten Filterung stammen müssen.
(r x s) Matrizen werden in der Form
zeilenweise (mit beliebigen Zwischenräumen/Zeilenvorschüben) abgespeichert,
Vektoren entsprechend in der Form
Diese Parameter enthalten die Dimensionen von Status-, Mess- und
Stellvektor und sind daher Vektoren [n,m,p], wobei
n die Anzahl der Zustandsvariablen, 'm'"m""m""m""m""m" die
Anzahl der Messwerte und 'p'"p""p""p""p""p" die Anzahl der Stellglieder ist.
m und m sind für ein gegebenes System
fest, dürfen also in der Updatedatei nicht von den entsprechenden Eingabewerten
abweichen.
Für ein System ohne deterministische Steuerung (d.h. ohne Einfluss
„von außen“) ist 'p = 0'"p = 0""p = 0""p = 0""p = 0""p = 0".
Diese Parameter enthalten hintereinandergehängt die zeilenweise
linearisierten Matrizen (Vektoren) A, C, Q, G, u
und (gegebenenfalls) L.
ModelInModelInModelInModelInModelInmodelIn / ModelOutModelOutModelOutModelOutModelOutmodelOut sind also Vektoren der Länge
n*n + n*m + n*n + n*p + p [+ n*m]
Der letzte Summand entfällt, falls System- und Messfehler unkorreliert
sind, d.h. kein 'L'"L""L""L""L""L" angegeben wurde.
Ist die Updatedatei lesbar und korrekt, liefert update_kalmanupdate_kalmanUpdateKalmanupdate_kalmanUpdateKalmanUpdateKalman den
Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.