read_kalmanT_read_kalmanReadKalmanread_kalmanReadKalmanReadKalman — Einlesen der Beschreibungsdatei eines Kalman-Filters.
Warnung
read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt.
read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman liest die Beschreibungsdatei FileNameFileNameFileNameFileNameFileNamefileName
eines Kalman-Filters. Der Kalman-Filter liefert eine Schätzung des
aktuellen Zustands (oder auch eine Prädiktion des künftigen Zustandes)
eines diskreten, stochastisch gestörten, linearen Systems. Sie werden
im Bereich der Bildverarbeitung insbesondere erfolgreich bei der
Bildfolgenanalyse
eingesetzt. Eine Kalman-Filterung stützt sich dabei auf ein
mathematisches Modell des zu untersuchenden Systems, das 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
Schätzung des Anfangszustandes des Systems:
Zustand und zugehörige 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).
Die oben genannten Kenngrößen können in einer ASCII-Datei mit
folgendem Aufbau abgelegt und dann mittels read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman eingelesen
werden:
Dimensionszeile
+ Inhaltszeile
+ Matrix A
+ Matrix C
+ Matrix Q
[ + Matrix G + Vektor u ]
[ + Matrix L ]
+ Matrix R
[ + Matrix P0 ]
[ + Vektor x0 ]
Die Dimensionszeile hat dabei die Form
n = <integer> m = <integer> p = <integer>
wobei n die Anzahl der Zustandsvariablen, m die Anzahl der Messwerte
und p die Anzahl der Stellglieder ist (siehe Parameter DimensionDimensionDimensionDimensionDimensiondimension).
Die maximale Dimension wird dabei durch eine Systemkonstante (derzeit
30) begrenzt.
Die Inhaltszeile ist von der Form
A*C*Q*G*u*L*R*P*x*
und beschreibt den weiteren Inhalt der Datei. Statt '*' ist
dabei '+' (Parameter ist vorhanden) bzw. '-' (Parameter fehlt) einzusetzen.
Zu beachten ist dabei, dass nur die oben durch [...] als optional
gekennzeichneten Parameter in einer Beschreibungsdatei weggelassen
werden dürfen. Fehlt die Anfangsschätzung (d.h. 'x-'),
werden die Komponenten des Vektors als 0.0 angenommen. Fehlt die
Kovarianzmatrix der Anfangsschätzung (d.h. 'P-'), wird
angenommen, der Fehler sei sehr groß. Die Matrixelemente werden in diesem
Fall auf 10000.0 gesetzt. Dieser Wert erscheint zwar hoch,
ist aber nur dann ausreichend, wenn die Wertebereiche der Komponenten
des Zustandsvektors x um Zehnerpotenzen kleiner sind.
(r x s) Matrizen werden in der Form
zeilenweise (mit beliebigen Zwischenräumen/Zeilenvorschüben) abgespeichert,
Vektoren entsprechend in der Form
Zurückgeliefert werden von read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman folgende Parameterwerte:
Dieser Parameter enthält die Dimensionen von Status-, Mess- und
Stellvektor. Dimension ist somit ein Vektor [n,m,p],
wobei n die Anzahl der Zustandsvariablen, m
die Anzahl der Messwerte und p die Anzahl der Stellglieder ist.
Für ein System ohne deterministische Steuerung (d.h. ohne Einfluss
„von außen“) ist folglich DimensionDimensionDimensionDimensionDimensiondimension = [n,m,0].
Dieser Parameter enthält hintereinandergehängt die zeilenweise
linearisierten Matrizen (Vektoren) A, C, Q, G, u
und (gegebenenfalls) L. ModelModelModelModelModelmodel ist also ein Vektor 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 angegeben wurde.
Dieser Parameter enthält hintereinandergehängt die zeilenweise
linearisierte Matrix (Fehler-Kovarianzmatrix der
Anfangsschätzung) und die Anfangsschätzung , ist also
ein Vektor der Länge n*n + n.
Ist die Beschreibungsdatei lesbar und korrekt, liefert read_kalmanread_kalmanReadKalmanread_kalmanReadKalmanReadKalman
den Wert 2 (H_MSG_TRUE). Andernfalls wird eventuell eine Fehlerbehandlung
durchgeführt.