Matlab - Filtro de Kalman

 
Vista:

Filtro de Kalman

Publicado por Aeronautico (1 intervención) el 26/08/2008 20:49:58
Hola a tod@s:

He encontrado vuestra web y me he decidido a escribiros, ya que tengo un problema con un filtro de kalman que estoy intentando implementar.
El problema consiste en determinar la posición de un avión a lo largo de una recta, en base a la información proporcionada por una estacion VOR.
Me gustaría saber como hacer que me presente en pantalla las diferentes posiciones que resultan en cada iteración, y como evoluciona la matriz P.

Gracias por vuestra ayuda

%kalman
clear
%Datos:
sigmav=0.2; %grados
sigmae=0.4; %millas
ta=90; %grados (derrota del avi�n)
rho0=60; %millas
tv0=0; %grados
v0=200; %nudos
T=20; %segundos
V=[188.12 177.97 209.86 194.81 195.67 183.34 201.25 202.87 188.53 211.90 ]; % nudos, velocidades avion
tv=[1.0 2.1 3.2 4.7 5.3 6.4 7.4 8.1 9.3 10.0 ]; %grados, radiales
x=[0
60]; %posicion inicial
v=200; %nudos de velocidad inicial
t=0; %medida inicial;
dx=[0
0]; %incremento de la posicion inicial
%Determinacion de matrices Q y R:
Q=[sigmae^2 0
0 sigmae^2];
R=(0.5*pi/180)^2;
%Determinacion matrices A y B:
A=[1 0
0 1];
B=[1
0];
%Estimacion inicial de P y C:
P=Q;
C=[1 0];
%Calculos:
for i=1:10
%Prediccion:
dv=V(i)-v;
dx=A*dx+B*dv*20/3600;
P=A*P*A'+Q;
x=x+dx;
v=v+dv;
dx1p(i,:)=dx;
x1p(i,:)=x;
Pp=P;
C=[x(2)/(x(1)^2+x(2)^2) x(1)/(x(1)^2+x(2)^2)];
%Correccion:
K=P*C'*inv(C*P*C'+R);
dx=dx+K*((pi/180)*(tv(i)-t)-C*dx);
dx=[dx(1)
0];
t=tv(i);
x=x+dx;
P=(eye(2,2)-K*C)*P;
x1c(i,:)=x;
P1(i)=trace(P);
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Filtro de Kalman

Publicado por genaro llusco (1 intervención) el 13/03/2009 16:15:58
buenisimo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtro de Kalman

Publicado por Antonio Valle (11 intervenciones) el 22/12/2011 12:09:07
Hola Aeronáutico,

yo tengo un sensor de humedad que mide en campo valores de humedad cada 5 min, y sé el error de medida.

Sin considerar la física de mi proceso, atendiendo sólo a la señal. Cómo determinaste el valor de la matriz A y el error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtro de Kalman

Publicado por Antonio Valle (11 intervenciones) el 22/12/2011 12:09:38
Hola Aeronáutico,

yo tengo un sensor de humedad que mide en campo valores de humedad cada 5 min, y sé el error de medida.

Sin considerar la física de mi proceso, atendiendo sólo a la señal. Cómo determinaste el valor de la matriz A y el error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtro de Kalman

Publicado por Álvaro (1 intervención) el 03/02/2012 18:46:34
Lo siento aeronáutico,

pero no me creo que sepas implementar con sus funciones este filtro de kalman y tu pregunta sea:
"como hacer que me presente en pantalla las diferentes posiciones"
En cuánto al código, te sobran muchas variables que no usas, y además estás aplicando las ecuaciones de filtrado lineal para un problema no lineal cómo éste. Debes usar cómo primera ecuación del filtro la posición propagada igual a una función derivada parcial de cada estado del modelo.

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar