WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Datenfusion per Kalmanfilter- Verständnisfrage

 

grafiker
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 07.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 10:26     Titel: Datenfusion per Kalmanfilter- Verständnisfrage
  Antworten mit Zitat      
Hallo!

Ich bin dabei die Datenfusion per Kalmanfilter im Zustandsraum zu verstehen und hänge hierbei an einem Punkt.

Angenommen, wir betrachten eine Masse m, die sich reibungsfrei und linear auf einer glatten Oberfläche bewegen kann. Sie sei durch eine horizontale masselose Feder (Federkonstante D) an einer Wand befestigt und kann somit horizontal schwingen. Die DGL der Bewegung ist damit:

F=m*a

a = (D/m)*x

wobei a die zweite Ableitung von x ist.

Damit ist das Zustandsraummodell:

 \dot x = A*x


<br />

<br />
\begin{bmatrix} \dot x_1  \\ \dot x_2  \end{bmatrix} 
<br />

<br />
=
<br />

<br />
\begin{bmatrix}  0 & 1   \\ \frac{D}{m}  & 0    \end{bmatrix} 
<br />

<br />

<br />
\begin{bmatrix} x_1  \\ x_2  \end{bmatrix} 
<br />

<br />

und die Messgleichung

y = C*x



<br />

<br />
y
<br />

<br />
=
<br />

<br />
\begin{bmatrix}  1 & 0    \end{bmatrix} 
<br />

<br />

<br />
\begin{bmatrix} x_1  \\ x_2  \end{bmatrix} 
<br />

<br />


Das System ist beobachtbar (d.h. die Beobachtbarkeitsmatrix hat vollen Rang), d.h. wenn ich nun ein lineares Kalmanfilter für dieses System aufstelle wird mir bei einer verrauschten Messgröße x1 (Position des Systems) eine optimale Zustandsschätzung von X1 und x2 geliefert (so gut wie die Schätzung eben sein kann, wenn lediglich die angegebene Dynamik gekannt ist). So weit, so gut.


Nun will ich allerdings die Messung verbessern und setze zusätzlich noch einen Beschleunigungssensor auf die Masse drauf, welcher nun also

\ddot x  = x_3 = \dot x_2

misst. Nun habe ich einen weiteren Zustand gegeben, und sollte zweifellos meine Zustandsschätzung verbessern können! Aber wie erweitere ich denn nun mein Zustandsraummodell?

Ok, ich kann meine Messgleichung erweitern:



<br />

<br />
\begin{bmatrix}  y1 \\ y2    \end{bmatrix} 
<br />

<br />
=
<br />

<br />
\begin{bmatrix}  1 & 0 & 1    \end{bmatrix} 
<br />

<br />

<br />
\begin{bmatrix} x_1  \\ x_2 \\ x_3  \end{bmatrix} 
<br />

<br />

Aber in meiner Zustandsgleichung für x2Punkt stet doch bereits meine Differentialgleichung! Wie kann ich dem System nun verklickern, dass noch weitere Informationen zu x2Punkt vorliegen?

Grüße
Grafiker
Private Nachricht senden Benutzer-Profile anzeigen


vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 11:23     Titel:
  Antworten mit Zitat      
Hallo,

meiner Meinung nach ist das so schon alles korrekt wie du es dargestellt hast. Mit einem zusätzlichen Sensor veränderst du ja die Dynamik des Systems oder allgemeiner das Übertragungsverhalten des Systems (Zustandsdiff.gl.) nicht, dir stehen nur zusätzliche Informationen durch die Messgleichung zur Verfügung...
Welche Quellen nutzt du denn zur Einarbeitung?

Gruß vega
Private Nachricht senden Benutzer-Profile anzeigen
 
grafiker
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 07.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 12:10     Titel:
  Antworten mit Zitat      
Hi!

Ja, die Dynamik des Systems wird nicht verändert. Wo ich wirklich hänge, ist, dass diese zusätzlichen Informationen in meinem Aktuellen System zwar "drinstehen" (in Form der Messgleichung), allerdings nicht genutzt werden können, da der Kalmanfilter überhaupt nicht wissen kann, dass der Wert den ich mit dem Beschleunigungssensor messe, tatsächlich die Ableitung von x2 darstellt. Die einzige Bestimmungsgleichung für die Ableitung von x2, welche in meinem Zustandsraummodell drinsteht ist ja die DGL, und die hat überaput keinen Bezug zu meinem gemessenen Wert.

Achso, Quellen sind u.a. Otto Föllinger Regelungstechnik Einführung, Jan Lunze Regelungstechnik 2 etc. ... Also den Kalmanfilter eischließlich Herleitung aus der Riccati und die Grundlagen zu Zustandsbeobachtern etc. hab ich schon verstanden, nur an der Anwendung hakt es noch.
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 13:07     Titel:
  Antworten mit Zitat      
Du musst dein Zustandsraummodell um einen Zustand erweitern.


<br />
\dot{x}  = v

\dot{v} = a

\dot{a} = \frac{d}{dt} \frac{D}{m} x = \frac{D}{m} \dot{x}
<br />

die ersten beiden Gleichungen sind nur Definition. Bei der letzten Gleichung habe ich einfach deine Beschleunigungsgleichung noch mal differenziert. Die Zustandsraumdarstellung sieht dann so aus


<br />
\begin{bmatrix} \dot{x} \\ \dot{v} \\ \dot{a} \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & \frac{D}{m} & 0 \end{bmatrix} \begin{bmatrix} x \\ v \\ a \end{bmatrix}
<br />

Die Messgleichung ist schon richtig.

viele Grüße
Thomas

P.S.: Die Zustandsgleichung wurde mit diesem Trick nur "aufgeblasen", d.h. die Dynamik des Systems ändert sich natürlich nicht. Man kann das z.B. sehen wenn man sich die Eigenwerte der Matrix ansieht. Ein Eigenwert ist Null, d.h. man kann auf einen Zustand verzichten ohne Informationen zu verlieren. Ich glaube das Stichwort dazu lautet Ordnungsreduktion.

Zuletzt bearbeitet von Thomas84 am 18.07.2013, 13:20, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
grafiker
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 07.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 13:16     Titel:
  Antworten mit Zitat      
AAAaahhhh natürlich!!! Die DGL ableiten... jetzt wo dus sagst ist es logisch!! mann bin ich blöd...

Danke vielmals!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.