搜档网
当前位置:搜档网 › 卡尔曼滤波第四次作业

卡尔曼滤波第四次作业

卡尔曼滤波第四次作业
卡尔曼滤波第四次作业

卡尔曼滤波与组合导航作业四

一、作业内容

本实验的主要内容是完成基于卡尔曼滤波的INS/GPS 组合导航实验。INS 的输出频率为100Hz ,GPS 的输出频率为20Hz ,通过GPS 给出的3个方向的位置和速度作为量测信息与惯导解算结果进行组合,完成组合导航,比较分析组合导航的结果。

二、系统分析与系统建模

捷联惯导的解算过程这里不再赘述,直接从组合导航所需的模型开始建模。

1. 状态方程

系统的状态方程由捷联惯导的误差方程和惯性器件的误差方程组成:

X FX GW =+

式中,状态变量E N U E N U x y z x

X V V V L H φφφδδδδδλδεεε=???y ?T

z ???

,其中E φ、N φ和U φ为数学平台失准角,E V δ、N V δ和U V δ分别为东向、

北向和天向速度误差,L δ、δλ和H δ分别为纬度误差、经度误差和高度误差;系统噪声过程噪声[]x y z x y z T

w w w w w w w εεε???=,包括陀螺和加速度计的随机误差(不包括随机常值误差);系统噪声方差阵Q 根据SINS/GPS 组合导航系统的惯性器件噪声水平选取。状态转移矩阵F 和系统噪声矩阵G 的具体形式为:

N S

99

96

69

661515

00F

F F ???????=?

???,n b 33n 33b 93931560000C G C ???????

??=?????? F 矩阵中,n b 33S n 33b 333396

0000C F C ?????????=??

????,N

F 为对应惯导9个误差参数(3个姿态误差,3个速度误差,3个位置误差)的系统动态矩阵,它是(9*9)阶方阵。其中非零元素可由惯导误差模型推导,具体为:

3ie 5,1ie 2,32,4N ,7ie 3,1ie N 3,23,4M N 23,7ie 4243

sin L L

(cos L )

(sin L tan L)

1sin L cos L 1

tan L

cos L sec L

E E

1,2ie 1,N N E

1,2M N N M E 2N E

,u

,n

N V tg R +h

V f f R h

V 1f f R +h R h

V f f R +h

R +h

V f f R h

V f f R h

R h

V f f f f f R h

f ωωωωωω+==-++=-=-++=-

=

=-=++=

=

++=+=-+=N U

4,44,5ie M M 2N 4,6ie 4,7ie N ie 5,1U

5,3E

54ie U

N

5,55,6M M 25,7ie sin L L)

tan L 2sin L L

(2cos L )2cos L sec L 2sin L ((2cos L sec L)E

N E E

U

N N E

N E

N V tg R +h

V V V f tg R h R h

R +h

V V V f f V V R h R h

f f f f f 2V V f f R h

R h

V f R h

ωωωωωω+=

-

=+

++=-+=++++==-=-=-

=-

++=-++,E

6,1N

6,2E

6,4ie N 6,56,7E ie M 7,58,4M N 8,79,6N 2(cos L )

22cos L 1sec L sec L tan L

1

E

N E

V f f f f V f R h

V f f V R h f f R h

R +h

V f f R +h

ωω=-==++==-+==

+=

=

2. 量测方程

SINS/GPS 组合导航采用松组合的方式,GPS 提供位置和速度信息,采用SINS 与GPS 的位置和速度之差作为卡尔曼滤波的量测信息。量测方程:

()()()()()()()v v p p H V t Z t H t X t V t X t H V t ????

=+=+????????

式中,量测向量[]T

E N U ()Z t V V V L h δδδδδλδ=,分别为捷联解算与GPS 的东向速度、北向速度、天向速度、纬度、经度和高度之差;

[]E N U T

()V V V L h V t v v v v v v δδδδδλδ=为量测噪声。量测噪声方差阵R 根据GPS 的位

置、速度噪声水平选取;量测矩阵[]T

V P H H H =,其中:

[]3339315[01110]v diag H ???=

[]3636315[0cos 10]p M

N diag R R L H ???=。

3. 卡尔曼滤波的流程为:

状态一步预测与均方误差阵一步预测:

/1/1k k k k k X X --=Φ

/1/11/1T

k k k k k k k P P Q ----=ΦΦ+

滤波增益阵计算:

1/1/1()T T k k k k k K P H HP H R ---=+

状态估计与均方误差阵估计:

/1/1()k k k k k k k X X K Z HX --=+-

/1()()T T

k k k k k k k P I K H P I K H K RK -=--+

三、运行结果 1. 滤波参数设置

a) 陀螺常值漂移:0.1度/小时;加速度计常值偏置:50ug ;

b) GPS 位置测量误差:水平0.1m ,垂直0.15m ;速度测量误差:0.01m/s ; c) 初始姿态误差:航向30角分,俯仰/横滚60角秒; d) 初始速度误差:东向/北向/天向:0.05m/s ;

e) 初始位置误差:水平位置误差2m ,垂直位置误差2m 。 2. 初始条件

IMU 的初始姿态为:航向角为305.34023度(北偏东逆时针为正),俯仰角为0.25097度,横滚角为1.78357度;初始位置与初始速度为GPS 在第一个时刻的输出。 3. 运行结果

500

1000

1500

200025003000

3500

4000

3434.535

时间/s 单位/°

纬度对比

500

1000

1500

200025003000

3500

4000

109109.5110时间/s 单位/°

经度对比

500

1000

1500

20002500

3000

3500

4000

02000

4000时间/s

单位/m

高度对比

500

1000

1500

200025003000

3500

4000

-1000100时间/s 单位/(m /s )

东向速度对

500

1000

1500

200025003000

3500

4000

-1000100时间/s 单位/(m /s )

北向速度对比

500

1000

1500

20002500

3000

3500

4000

-10010时间/s

单位/(m /s )

天向速度对比

500

1000

1500

200025003000

3500

4000

0200400

时间/s 单位/°

航向角对比

500

1000

1500

200025003000

3500

4000

-20020时间/s 单位/°

俯仰角对比

500

1000

1500

20002500

3000

3500

4000

-20020时间/s

单位/°

横滚角对比

500

1000

1500

200025003000

3500

4000

34.234.434.634.8

35时间/s 单位/°

纬度对比

50010001500

20002500300035004000

109109.5

110

时间/s

单位/°

经度对

500

1000

1500

200025003000

35004000

-100-50050100

时间/s 单位/(m /s )

东向速度对比

500

1000

1500

20002500

3000

35004000

-100-50050100时间/s

单位/(m /s )

北向速度对比

050010001500

2000250030003500

4000

-101

-3

时间/s 单位/°

东向失准角

500

1000

1500

200025003000

3500

4000

-101

-3

时间/s 单位/°

北向失准角

500

1000

1500

20002500

3000

3500

4000

-0.05

00.05

时间/s

单位/°

天向失准角

050010001500

20002500300035004000

-5

05

-3

时间/s 单位/(m /s )

东向速度误差

050010001500

20002500300035004000

-5

5-3

时间/s 单位/(m /s )

北向速度误差

050010001500

2000250030003500

4000

0.05

时间/s

单位/(m /s )

天向速度误差

050010001500

20002500300035004000

-505

-8

时间/s 单位/°

纬度误差

500

1000

1500

200025003000

3500

4000

-50

5

-8

时间/s 单位/°

经度误差

500

1000

1500

20002500

3000

3500

4000

-0.05

00.05

时间/s

单位/m

高度误差

500

1000

1500

200025003000

3500

4000

00.01

0.02

时间/s

单位/°

东向失准角均方误差

500

1000

1500

200025003000

3500

4000

00.01

0.02

时间/s

单位/°

北向失准角均方误差0

50010001500

20002500300035004000

0.5

时间/s

单位/°

天向失准角均方误差050010001500

20002500300035004000

234

-3

时间/s

单位/(m /s )

东向速度均方误差

050010001500

20002500300035004000

2

34

-3

时间/s

单位/(m /s )

北向速度均方误差

050010001500

20002500300035004000

2

3

4x 10

-3

时间/s

单位/(m /s )

天向速度均方误差

050010001500

20002500300035004000

024

-7

时间/s 单位/°

纬度均方误差

50010001500

20002500300035004000

5

-7

时间/s 单位/°

经度均方误差

500

1000

1500

20002500

3000

3500

4000

0.050.1

时间/s

单位/m

高度均方误差

500

1000

1500

20002500

3000

3500

4000

0.050.1时间/s

单位/(°

/h )东向陀螺漂移均方误差

500

1000

1500

20002500

3000

3500

4000

0.050.1时间/s

单位/(°

/h )北向陀螺漂移均方误差0

500

1000

1500

2000

2500

3000

3500

4000

0.050.1时间/s

单位/(°

/h )天向陀螺漂移均方误差

四、实验分析

由于纯惯高度通道发散,因此上述结果在纯惯结果与GPS 结果或者组合导航结果比较时,仅仅给出经纬度与东向、北向速度的比对结果;而GPS 只能给出速度位置信息,因此姿态信息只有纯惯结果与组合导航结果比对。

分析以上结果,可知纯惯导航由于存在误差的积分效果,因此导航结果存在一定的漂移,经过组合导航之后,速度位置信息得到了很好的校正,姿态信息也得到了一定程度的修正,实现组合导航的意义。

通过失准角、速度误差、位置误差的结果可见,在系统静止时误差较小,当系统处于动态下,导航误差会增大,其原因在于此时系统的非线性效果加强了,因而误差会变大。

通过均方误差的结果可见,在系统静止时,某些量(如东、北向陀螺漂移,东北向加计零偏等)收敛很慢,而一旦系统处于动态下,这些量会立即收敛,说明动态下系统的可观测度增大了,滤波的效果提升了。 五、源程序

%%

%卡尔曼滤波第四次作业 clear all

05001000

150020002500300035004000

24

-5

时间/s

单位/g

东向加计零偏均方误差

05001000

150020002500300035004000

24

-5

时间/s

单位/g

北向加计零偏均方误差

500

1000

1500

20002500

3000

3500

4000

x 10

-5

时间/s

单位/g

天向加计零偏均方误差

clc

%%

%数据文件的处理

format long

para=pi/180;

g0=9.78049;

load('IMU.dat');

wibb=IMU(:,3:5)'*para/3600;

fibb=IMU(:,6:8)'*g0;

load('GPS.dat');

lat_GPS=GPS(:,3)*para;

lon_GPS=GPS(:,4)*para;

h_GPS=GPS(:,5);

v_GPS=GPS(:,6:8)';

%%

%变量的初始化--纯惯部分

dt=0.01; % IMU period

T=0.05; % KF period

re=6378245;

e=1/298.3;

gk1=0.00193185138639;

gk2=0.00669437999013;

wie=7.292115147e-5;

L=360000;

v=zeros(3,L+1);

lat=zeros(1,L+1);

lon=zeros(1,L+1);

h=zeros(1,L+1);

psi=zeros(1,L+1);

theta=zeros(1,L+1);

gamma=zeros(1,L+1);

lambda=zeros(1,4);

lat(1)=lat_GPS(1);

lon(1)=lon_GPS(1);

h(1)=h_GPS(1);

v(:,1)=v_GPS(:,1);

psi(1)=305.34023*para;

theta(1)=0.25097*para;

gamma(1)=1.78357*para;

lambda(1)=cos(psi(1)/2)*cos(theta(1)/2)*cos(gamma(1)/2)-sin(psi(1)/2)*sin(theta(1)/2)*sin(gamm

lambda(2)=cos(psi(1)/2)*sin(theta(1)/2)*cos(gamma(1)/2)-sin(psi(1)/2)*cos(theta(1)/2)*sin(gamm a(1)/2);

lambda(3)=cos(psi(1)/2)*cos(theta(1)/2)*sin(gamma(1)/2)+sin(psi(1)/2)*sin(theta(1)/2)*cos(gam ma(1)/2);

lambda(4)=cos(psi(1)/2)*sin(theta(1)/2)*sin(gamma(1)/2)+sin(psi(1)/2)*cos(theta(1)/2)*cos(gam ma(1)/2);

cnb=q2cnb(lambda);

cen=[-sin(lon(1)) cos(lon(1)) 0;

-sin(lat(1))*cos(lon(1)) -sin(lat(1))*sin(lon(1)) cos(lat(1));

cos(lat(1))*cos(lon(1)) cos(lat(1))*sin(lon(1)) sin(lat(1))];

gyro=zeros(3,1);

acc=zeros(3,1);

%%

%变量的初始化--Kalman滤波部分

Phi=zeros(15,15);

F=zeros(15,15);

Fn=zeros(9,9);

Fs=zeros(9,6);

Q=diag([(0.1*pi/180/3600)^2,(0.1*pi/180/3600)^2,(0.1*pi/180/3600)^2,(5e-5*g0)^2,(5e-5*g0)^2, (5e-5*g0)^2,0,0,0,0,0,0,0,0,0]);

R=diag([0.01^2,0.01^2,0.01^2,0.1^2,0.1^2,0.15^2]);

H=zeros(6,15);H(1,4)=1;H(2,5)=1;H(3,6)=1;H(6,9)=1;

Xk=zeros(15,1);

Xkk1=zeros(15,1);

Pk=diag([(1/60*pi/180)^2,(1/60*pi/180)^2,(0.5*pi/180)^2,0.05^2,0.05^2,0.05^2,2^2,2^2,2^2,...

(0.1*pi/180/3600)^2,(0.1*pi/180/3600)^2,(0.1*pi/180/3600)^2,(50*(1e-6)*g0)^2,(50*(1e-6)*g0)^ 2,(50*(1e-6)*g0)^2]);

Pkk1=zeros(15,15);

Kk=zeros(15,6);

Zk=zeros(6,1);

mse=zeros(15,72000);%% mse is short for mean square error

err_angle=zeros(3,72000);

err_position=zeros(3,72000);

err_velocity=zeros(3,72000);

%%

%主循环

for i=1:L

g = g0 * (1 + 0.0052884 * sin(lat(i))^2 - 0.0000059 * sin(2*lat(i))^2) - 0.0003086 * h(i);

rx=(1+e*sin(lat(i))*sin(lat(i)))*re;

ry=(1-2*e+3*e*sin(lat(i)*sin(lat(i))))*re;

wien=cen*[0 0 wie]';

wenn=[-v(2,i)/ry v(1,i)/rx v(1,i)/rx*cen(3,3)/cen(2,3)]';

winn=wien+wenn;

winb=cnb*winn;

wnbb=wibb(:,i)-winb;

wnbbdot=wnbb*dt;

m1=norm(wnbbdot,2);

lambdadot=[0 -wnbbdot(1) -wnbbdot(2) -wnbbdot(3);

wnbbdot(1) 0 wnbbdot(3) -wnbbdot(2);

wnbbdot(2) -wnbbdot(3) 0 wnbbdot(1);

wnbbdot(3) wnbbdot(2) -wnbbdot(1) 0 ];

temp=((1-(m1^2)/8+(m1^4)/384)*eye(4)+(0.5-(m1^2)/48)*lambdadot)*lambda';

lambda=temp';

lambda=lambda/(norm(lambda));

cnb=q2cnb(lambda);

cbn=cnb';

angle=cnb2att(cnb);

theta(i+1)=angle(1); %俯仰角更新

gamma(i+1)=angle(2); %横滚角更新

psi(i+1)=angle(3); %航向角更新

fibn=cbn*(fibb(:,i));

vxdot=fibn(1)+(2*wie*sin(lat(i))+v(1,i)*tan(lat(i)/rx))*v(2,i); %??????????????????? vydot=fibn(2)-(2*wie*sin(lat(i))+v(1,i)*tan(lat(i)/rx))*v(1,i);

vzdot=fibn(3)+(2*wie*cos(lat(i))+v(1,i)/rx)*v(1,i)+v(2,i)^2/ry-g;

v(1,i+1)=v(1,i)+vxdot*dt; %东向速度更新

v(2,i+1)=v(2,i)+vydot*dt; %北向速度更新

v(3,i+1)=v(3,i)+vzdot*dt; %天向速度更新

wenn=[-v(2,i+1)/ry v(1,i+1)/rx v(1,i+1)/rx*cen(3,3)/cen(2,3)]';

wenndot=[ 0 -wenn(3) wenn(2);

wenn(3) 0 -wenn(1);

-wenn(2) wenn(1) 0];

dcen=-wenndot*cen;

cen=cen+dcen*dt;

lat(i+1)=asin(cen(3,3)); %纬度更新

lon(i+1)=acos(cen(1,2)); %经度更新

h(i+1)=h(i)+v(3,i+1)*dt; %高度更新

%开始卡尔曼滤波

if (rem(i,5) == 0 )

k=fix(i/5)+1;

Fn(1,2) = wie*sin(lat(i)) + v(1,i) * tan(lat(i)) / (rx + h(i));

Fn(1,3) = -(wie*cos(lat(i)) + v(1,i) / (rx + h(i)));

Fn(1,5) = -1 / (ry + h(i));

Fn(2,1) = -(wie*sin(lat(i)) + v(1,i) * tan(lat(i)) / (rx + h(i)));

Fn(2,3) = -v(2,i) / (ry + h(i));

Fn(2,4) = 1 / (rx + h(i));

Fn(2,7) = -wie*sin(lat(i));

Fn(3,1) = wie*cos(lat(i)) + v(1,i) / (rx + h(i));

Fn(3,2) = v(2,i) / (ry + h(i));

Fn(3,4) = tan(lat(i)) / (rx + h(i));

Fn(3,7) = wie*cos(lat(i)) + v(1,i) / (rx + h(i)) * sec(lat(i))^2;

Fn(4,2) = -fibn(3);

Fn(4,3) = fibn(2);

Fn(4,4) = v(2,i) / (ry + h(i)) * tan(lat(i)) - v(3,i) / (ry + h(i));

Fn(4,5) = 2 * wie*sin(lat(i)) + v(1,i) / (rx + h(i)) * tan(lat(i));

Fn(4,6) = -(2 * wie*cos(lat(i)) + v(1,i) / (rx + h(i)));

Fn(4,7) = 2 * wie*cos(lat(i)) * v(2,i) + v(1,i) * v(2,i) / (rx + h(i)) * sec(lat(i))^2 + 2 * wie*sin(lat(i)) * v(3,i);

Fn(5,1) = fibn(3);

Fn(5,3) = -fibn(1);

Fn(5,4) = -2 * (wie*sin(lat(i)) + v(1,i) / (rx + h(i)) * tan(lat(i)));

Fn(5,5) = -v(3,i) / (ry + h(i));

Fn(5,6) = -v(2,i) / (ry + h(i));

Fn(5,7) = -(2 * wie*cos(lat(i)) + v(1,i) / (rx + h(i)) * sec(lat(i))^2) * v(1,i);

Fn(6,1) = -fibn(2);

Fn(6,2) = fibn(1);

Fn(6,4) = 2 * (wie*cos(lat(i)) + v(1,i) / (rx + h(i)));

Fn(6,5) = 2 * v(2,i) / (ry + h(i));

Fn(6,7) = -2 * v(1,i) * wie*cos(lat(i));

Fn(7,5) = 1 / (ry + h(i));

Fn(8,4) = sec(lat(i)) / (rx + h(i));

Fn(8,7) = v(1,i) / (rx + h(i)) * sec(lat(i)) * tan(lat(i));

Fn(9,6) = 1;

cbn=cnb';

Fs=[cbn,zeros(3,3);zeros(3,3),diag([cbn(1,1),cbn(2,2),cbn(3,3)]);zeros(3,3),zeros(3,3)];

F=[Fn,Fs;zeros(6,9),zeros(6,6)];

Phi=eye(15)+F*T+T^2*F^2/2;

H(4,7) = ry + h(i);

H(5,8) = rx * cos(lat(i)) + h(i);

Zk(1,1)=v(1,i+1)-v_GPS(1,k);

Zk(2,1)=v(2,i+1)-v_GPS(2,k);

Zk(3,1)=v(3,i+1)-v_GPS(3,k);

Zk(4,1)=lat(i+1)-lat_GPS(k);

Zk(5,1)=lon(i+1)-lon_GPS(k);

Zk(6,1)=h(i+1)-h_GPS(k);

Xk(1:9)=0;

Xkk1=Phi*Xk;

Pkk1=Phi*Pk*Phi'+Q;

Kk=Pkk1*H'/(H*Pkk1*H'+R);

Xk=Xkk1+Kk*(Zk-H*Xkk1);

Pk=(eye(15)-Kk*H)*Pkk1*(eye(15)-Kk*H)'+Kk*R*Kk';

%存储滤波信息

err_angle(:,k)=Xk(1:3);

err_velocity(:,k)=Xk(4:6);

err_position(:,k)=Xk(7:9);

mse(1,k)=sqrt(Pk(1,1)); mse(2,k)=sqrt(Pk(2,2)); mse(3,k)=sqrt(Pk(3,3)); mse(4,k)=sqrt(Pk(4,4)); mse(5,k)=sqrt(Pk(5,5)); mse(6,k)=sqrt(Pk(6,6)); mse(7,k)=sqrt(Pk(7,7)); mse(8,k)=sqrt(Pk(8,8)); mse(9,k)=sqrt(Pk(9,9)); mse(10,k)=sqrt(Pk(10,10));mse(11,k)=sqrt(Pk(11,11));mse(12,k)=sqrt(Pk(12,12)); mse(13,k)=sqrt(Pk(13,13));mse(14,k)=sqrt(Pk(14,14));mse(15,k)=sqrt(Pk(15,15));

%速度修正

v(1,i+1)=v(1,i+1)-Xk(4);

v(2,i+1)=v(2,i+1)-Xk(5);

v(3,i+1)=v(3,i+1)-Xk(6);

%位置修正

lat(i+1)=lat(i+1)-Xk(7);

lon(i+1)=lon(i+1)-Xk(8);

h(i+1) = h(i+1)-Xk(9);

%姿态修正

cnc=eye(3)+[0 Xk(3) -Xk(2);

-Xk(3) 0 Xk(1);

Xk(2) -Xk(1) 0];

cnb=cnb*cnc;

cbn=cnb';

lambda=cnb2q(cnb); %四元数修正

lambda=lambda';

angle=cnb2att(cnb);

theta(i+1)=angle(1); %俯仰角更新

gamma(i+1)=angle(2); %横滚角更新

psi(i+1)=angle(3); %航向角更新

end

end

%%

%画图

%纯惯数据

load('SINS_result.mat'); %SINS_result为事先存好的纯惯导航结果lat_INS1=Slide_avt(lat_INS,100)/para;

lon_INS1=Slide_avt(lon_INS,100)/para;

vx_INS1=Slide_avt(v_INS(1,:),100);

vy_INS1=Slide_avt(v_INS(2,:),100);

ps_INS1=Slide_avt(psi_INS,100)/para;

th_INS1=Slide_avt(theta_INS,100)/para;

ga_INS1=Slide_avt(gamma_INS,100)/para;

%组合数据

lat1=Slide_avt(lat,100)/para;

lon1=Slide_avt(lon,100)/para;

h1=Slide_avt(h,100);

vx1=Slide_avt(v(1,:),100);

vy1=Slide_avt(v(2,:),100);

vz1=Slide_avt(v(3,:),100);

ps1=Slide_avt(psi,100)/para;

th1=Slide_avt(theta,100)/para;

ga1=Slide_avt(gamma,100)/para;

%GPS数据

lat_GPS1=Slide_avt(lat_GPS,20)/para;

lon_GPS1=Slide_avt(lon_GPS,20)/para;

h_GPS1=Slide_avt(h_GPS,20);

vx_GPS1=Slide_avt(v_GPS(1,:),20);

vy_GPS1=Slide_avt(v_GPS(2,:),20);

vz_GPS1=Slide_avt(v_GPS(3,:),20);

%导航结果对比

figure

subplot(311)

plot(lat_GPS1,'g');grid on;xlabel('时间/s');ylabel('单位/°');title('纬度对比');

hold on;plot(lat1,'r--');legend('GPS','组合');

subplot(312)

plot(lon_GPS1,'g');grid on;xlabel('时间/s');ylabel('单位/°');title('经度对比');

hold on;plot(lon1,'r--');legend('GPS','组合');

subplot(313)

plot(h_GPS1,'g');grid on;xlabel('时间/s');ylabel('单位/m');title('高度对比');

hold on;plot(h1,'r--');legend('GPS','组合');

figure

subplot(311)

plot(vx_GPS1,'g');grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('东向速度对比'); hold on;plot(vx1,'r--');legend('GPS','组合');

subplot(312)

plot(vy_GPS1,'g');grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('北向速度对比'); hold on;plot(vy1,'r--');legend('GPS','组合');

subplot(313)

plot(vz_GPS1,'g');grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('天向速度对比'); hold on;plot(vz1,'r--');legend('GPS','组合');

figure

subplot(311)

plot(ps_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/°');title('航向角对比');

hold on;plot(ps1,'r--');legend('纯惯','组合');

subplot(312)

plot(th_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/°');title('俯仰角对比');

hold on;plot(th1,'r--');legend('纯惯','组合');

subplot(313)

plot(ga_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/°');title('横滚角对比');

hold on;plot(ga1,'r--');legend('纯惯','组合');

figure

subplot(211)

plot(lat_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/°');title('纬度对比');

hold on;plot(lat_GPS1,'g');plot(lat1,'r--');legend('纯惯','GPS','组合');

subplot(212)

plot(lon_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/°');title('经度对比');

hold on;plot(lon_GPS1,'g');plot(lon1,'r--');legend('纯惯','GPS','组合');

figure

subplot(211)

plot(vx_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('东向速度对比'); hold on;plot(vx_GPS1,'g');plot(vx1,'r--');legend('纯惯','GPS','组合');

subplot(212)

plot(vy_INS1,'b');grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('北向速度对比'); hold on;plot(vy_GPS1,'g');plot(vy1,'r--');legend('纯惯','GPS','组合');

%误差估计

figure

subplot(311)

plot(Slide_avt(err_angle(1,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('东向失准角');

subplot(312)

plot(Slide_avt(err_angle(2,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('北向失准角');

subplot(313)

plot(Slide_avt(err_angle(3,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('天向失准角');

figure

subplot(311)

plot(Slide_avt(err_velocity(1,:),20));grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('东向速度误差');

subplot(312)

plot(Slide_avt(err_velocity(2,:),20));grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('北向速度误差');

subplot(313)

plot(Slide_avt(err_velocity(3,:),20));grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('天向速度误差');

figure

subplot(311)

plot(Slide_avt(err_position(1,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('纬度误差');

subplot(312)

plot(Slide_avt(err_position(2,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('经度误差');

subplot(313)

plot(Slide_avt(err_position(3,:),20));grid on;xlabel('时间/s');ylabel('单位/m');title('高度误差');

%均方误差估计

figure

subplot(311)

plot(Slide_avt(mse(1,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('东向失准角均方误差');

subplot(312)

plot(Slide_avt(mse(2,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('北向失准角均方误差');

subplot(313)

plot(Slide_avt(mse(3,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('天向失准角均方

误差');

figure

subplot(311)

plot(Slide_avt(mse(4,:),20));grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('东向速度均方误差');

subplot(312)

plot(Slide_avt(mse(5,:),20));grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('北向速度均方误差');

subplot(313)

plot(Slide_avt(mse(6,:),20));grid on;xlabel('时间/s');ylabel('单位/(m/s)');title('天向速度均方误差');

figure

subplot(311)

plot(Slide_avt(mse(7,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('纬度均方误差'); subplot(312)

plot(Slide_avt(mse(8,:),20)/para);grid on;xlabel('时间/s');ylabel('单位/°');title('经度均方误差'); subplot(313)

plot(Slide_avt(mse(9,:),20));grid on;xlabel('时间/s');ylabel('单位/m');title('高度均方误差');

figure

subplot(311)

plot(Slide_avt(mse(10,:),20)/para*3600);grid on;xlabel('时间/s');ylabel('单位/(°/h)');title('东向陀螺漂移均方误差');

subplot(312)

plot(Slide_avt(mse(11,:),20)/para*3600);grid on;xlabel('时间/s');ylabel('单位/(°/h)');title('北向陀螺漂移均方误差');

subplot(313)

plot(Slide_avt(mse(12,:),20)/para*3600);grid on;xlabel('时间/s');ylabel('单位/(°/h)');title('天向陀螺漂移均方误差');

figure

subplot(311)

plot(Slide_avt(mse(13,:),20)/g0);grid on;xlabel('时间/s');ylabel('单位/g');title('东向加计零偏均方误差');

subplot(312)

plot(Slide_avt(mse(14,:),20)/g0);grid on;xlabel('时间/s');ylabel('单位/g');title('北向加计零偏均方误差');

subplot(313)

plot(Slide_avt(mse(15,:),20)/g0);grid on;xlabel('时间/s');ylabel('单位/g');title('天向加计零偏均方误差');

其中用到的子函数如下:

function [Att]=cnb2att(cnb)

%本函数完成从姿态矩阵到姿态角的计算

theta=asin(cnb(2,3)); %俯仰角计算gama=atan(-cnb(1,3)/cnb(3,3)); %横滚角计算

if(abs(cnb(3,3))<1e-8)

if(cnb(1,3)>0)

gama=-pi/2;

end

if(cnb(1,3)<0)

gama=pi/2;

end

else

if(cnb(3,3)<0&&cnb(1,3)<0)

gama=gama+pi;

end

if(cnb(3,3)<0&&cnb(1,3)>0)

gama=gama-pi;

end

end

% psai=atan(cnb(2,1)/cnb(2,2)); %航向角计算% if(abs(cnb(2,2))<1e-8)

% if(cnb(2,1)>0)

% psai=pi/2;

% end

% if(cnb(2,1)<0)

% % psai=-pi/2;

% psai=3*pi/2;

% end

% else

% % if(cnb(2,2)>0&&cnb(2,1)<-1e-5)

% if(cnb(2,2)>0&&cnb(2,1)<-1e-8)

% psai=psai+2*pi;

% end

% if(cnb(2,2)<0)

% psai=psai+pi;

% end

% end

psai=atan(-cnb(2,1)/cnb(2,2)); %航向角计算if(cnb(2,2)<1e-8)

psai=psai+pi;

else

if(psai<0)

psai=psai+2*pi;

Kalman滤波在运动跟踪中建模

目录 一、kalman滤波简介 (1) 二、kalman滤波基本原理 (1) 三、Kalman滤波在运动跟踪中的应用的建模 (3) 四、仿真结果 (6) 1、kalman的滤波效果 (6) 2、简单轨迹的kalman的预测效果 (7) 3、椭圆运动轨迹的预测 (9) 4、往返运动归轨迹的预测 (10) 五、参数的选取 (11) 附录: (13) Matlab程序: (13) C语言程序: (13)

Kalman滤波在运动跟踪中的应用 一、kalman滤波简介 最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。 Kalman滤波是卡尔曼(R.E.kalman)于1960年提出的从与被提取信号的有关的观测量中通过算法估计出所需信号的一种滤波算法。他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的—个线性系统的输出,用状方程来描述这种输入—输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维随机过程进估计,也可以对非平稳的、多维随机过程进行估汁。 Kalman滤波是一套由计算机实现的实时递推算法.它所处理的对象是随机信号,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。所以,Kalman滤波与常规滤波的涵义与方法不同,它实质上是一种最优估计法。 卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法),对于解决很大部分的问题,他是最优,效率最高甚至是最有用的 二、kalman滤波基本原理 Kalman滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。 设一系统所建立的模型为:

维纳滤波的应用综述

基于维纳滤波的应用综述 一、维纳滤波概述 维纳(wiener)滤波是用来解决从噪声中提取信号问题的一种过滤(或滤波)的方法。实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且 x (n )=s (n )+v (n ) (1.1) 其中s(n)表示信号,v(n)表示噪声,则输出y(n)为 ()=()()m y n h m x n m -∑ (1.2) 我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用^ s 表示,即 ^ ()()y n s n = (1.3) 实际上,式(1.2)的卷积形式可以理解为从当前和过去的观察值x (n ),x (n -1),x (n -2)…x (n -m ),来估计信号的当前值^()s n 。因此,用h (n )进行过滤的问题可以看成是一个估计问题。由于现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题。 维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多,更多的是基于维纳滤波器发展而来的滤波方式。 二、基于维纳滤波的应用 2.1在飞机盲降着陆系统中的应用 盲降着陆系统(ILS)又译为仪表着陆系统。它的作用是由地面发射的两束无线电信号实现航向道和下滑道指引,建立一条由跑道指向空中的虚拟路径。飞机通过机载接收设备确定自身与该路径的相对位置,使飞机沿正确方向飞向跑道并且平稳下降高度。最终实现安全着陆。在飞机盲降着陆时,飞机以较慢的恒定速度沿着一个无线电波束下降。为了自动对准跑道,通常要为盲目着陆系统提供两个信号。一个是由无线电波束提供的信号,由航向台提供,它与飞机航向滑离跑道方向的大小成正比;另一个信号由飞机通过自身方位的测量来提供。在这两个信号中,前者是飞机位置信号与高频噪声的叠加,作为前面分系统的x 1(n );后者由于飞机下降过程中风向的改变而在信号中引入了低频噪声,作为x 2(n )。为了对飞机的位置信号进行最佳估计,采用互补维纳滤波器去除无用噪声信号,提高信噪比。由此,增强了飞机着陆时的精度,提高了飞机自身的安全。 2.2在图像处理中的应用 在图像处理中,噪声问题是经常会遇到的问题,它使得图像信息受损,降低了信噪比。如何尽可能地滤去噪声,恢复真实的信号,是图像处理中关键的问题。几类简单、常用的滤

(整理)Kalman滤波在运动跟踪中的建模.

目录一、kalman滤波简介 1 二、kalman滤波基本原理 (1) 三、Kalman滤波在运动跟踪中的应用的建模 (3) 四、仿真结果 (6) 1、kalman的滤波效果 (6) 2、简单轨迹的kalman的预测效果 (7) 3、椭圆运动轨迹的预测 (9) 4、往返运动归轨迹的预测 (10) 五、参数的选取 (11) 附录: (13) Matlab程序: (13) C语言程序: (13)

Kalman滤波在运动跟踪中的应用 一、kalman滤波简介 最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。 Kalman滤波是卡尔曼(R.E.kalman)于1960年提出的从与被提取信号的有关的观测量中通过算法估计出所需信号的一种滤波算法。他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的—个线性系统的输出,用状方程来描述这种输入—输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维随机过程进估计,也可以对非平稳的、多维随机过程进行估汁。 Kalman滤波是一套由计算机实现的实时递推算法.它所处理的对象是随机信号,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。所以,Kalman滤波与常规滤波的涵义与方法不同,它实质上是一种最优估计法。 卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法),对于解决很大部分的问题,他是最优,效率最高甚至是最有用的 二、kalman滤波基本原理 Kalman滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。 设一系统所建立的模型为:

基于卡尔曼滤波器的雷达目标跟踪

随机数字信号处理期末大作业(报告) 基于卡尔曼滤波器的雷达目标跟踪 Radar target tracking based on Kalman filter 学院(系):创新实验学院 专业:信息与通信工程 学生姓名:李润顺 学号:21424011 任课教师:殷福亮 完成日期:2015年7月14日 大连理工大学 Dalian University of Technology

摘要 雷达目标跟踪环节的性能直接决定雷达系统的安全效能。由于卡尔曼滤波器在状态估计与预测方面具有强大的性能,因此在目标跟踪领域有广泛应用,同时也是是现阶段雷达中最常用的跟踪算法。本文先介绍了雷达目标跟踪的应用背景以及研究现状,然后在介绍卡尔曼滤波算法和分析卡尔曼滤波器性能的基础上,将其应用于雷达目标跟踪,雷达在搜索到目标并记录目标的位置数据,对测量到的目标位置数据(称为点迹)进行处理,自动形成航迹,并对目标在下一时刻的位置进行预测。最后对在一个假设的情境给出基于卡尔曼滤波的雷达目标跟踪算法对单个目标航迹进行预测的MATLAB仿真,对实验的效果进行评估,分析预测误差。 关键词:卡尔曼滤波器;雷达目标跟踪;航迹预测;预测误差;MATLAB仿真 - 1 -

1 引言 1.1 研究背景及意义 雷达目标跟踪是整个雷达系统中一个非常关键的环节。跟踪的任务是通过相关和滤波处理建立目标的运动轨迹。雷达系统根据在建立目标轨迹过程中对目标运动状态所作的估计和预测,评估船舶航行的安全态势和机动试操船的安全效果。因此,雷达跟踪环节工作性能的优劣直接影响到雷达系统的安全效能[1]。 鉴于目标跟踪在增进雷达效能中的重要作用,各国在军用和民用等领域中一直非常重视发展这一雷达技术。机动目标跟踪理论有了很大的发展,尤其是在跟踪算法的研究上,理论更是日趋成熟。在跟踪算法中,主要有线性自回归滤波、两点外推滤波、维纳 α-滤波和卡尔曼滤波,其中卡尔曼滤波算法在目标跟踪滤波、加权最小二乘滤波、β 理论中占据了主导地位。 雷达跟踪需要处理的信息种类多种多样。除了目标的位置信息外,一般还要对目标运动速度进行估计,个别领域中的雷达还要对目标运动姿态进行跟踪。雷达跟踪的收敛速度、滤波精度和跟踪稳定度等是评估雷达跟踪性能的重要参数。因此提高雷达跟踪的精度、收敛速度和稳定度也就一直是改善雷达跟踪性能的重点。随着科技的发展,各类目标的运动性能和材质特征有了大幅度的改善和改变,这就要求雷达跟踪能力要适应目标特性的这种变化。在不断提高雷达跟踪性能的前提下,降低雷达跟踪系统的成本也是现代雷达必须考虑的问题。特别是在民用领域中由于雷达造价不能过高,对目标跟踪进行快收敛性、高精度和高稳定性的改良在硬件上是受到一些制约的,因此雷达跟踪算法的研究就越来越引起学者们的关注。通过跟踪算法的改进来提高雷达的跟踪性能还有相当大的挖掘潜力。考虑到雷达设备的造价,民用雷达的跟踪系统首要的方法就是对于雷达的跟踪算法进行开发。

基于维纳滤波的应用综述

基于维纳滤波的应用综述 摘要:介绍了维纳滤波的基本概念,列举了基于维纳滤波的滤波方式在飞机盲降着陆系统、在图像处理、桩基检测、超声物位计、地震数据信号处理和抗多址干扰盲检测中的应用。 一、维纳滤波概述 维纳(wiener)滤波是用来解决从噪声中提取信号问题的一种过滤(或滤波)的方法。实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。一个线性系统,如果它的单位样本响应为h(n),当输入一个随机信号x(n),且 (1.1) 其中s(n)表示信号,v(n)表示噪声,则输出y(n)为 (1.2) 我们希望x(n)通过线性系统h(n)后得到的.y(n)尽量接近于s(n),因此称y(n)为s(n)的 估计值,用表示,即 (1.3) 如图1.1所示。这个线性系统h(n)称为对于s(n)的一种估计器。 实际上,式(1.2)的卷积形式可以理解为从当前和过去的观察值x(n),x(n一1),x(n一2)…x(n-m),来估计信号的当前值。因此,用h(n)进行过滤的问题可以看成是一个估计问题。由于现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题[1]。 维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺

点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多,更多的是基于维纳滤波器发展而来的滤波方式。 二、基于维纳滤波的应用 2.1在飞机盲降着陆系统中的应用 盲降着陆系统(Instrument Landing System.ILS)又译为仪表着陆系统。是目前应用最为广泛的飞机精密进近和着陆引导系统。它的作用是由地面发射的两束无线电信号实现航向道和下滑道指引。建立一条由跑道指向空中的虚拟路径。飞机通过机载接收设备.确定自身与该路径的相对位置,使飞机沿正确方向飞向跑道并且平稳下降高度。最终实现安全着陆。由于是仪表指针引导飞行员按预定下滑线着陆,无需目视。故又称为盲降着陆系统。该系统为飞行员提供相对预定下滑线的水平和垂直面内的修正指示以及到跑道端口的距离指示。 在飞机盲目着陆系统的实际应用中。盲降着陆时,飞机以较慢的恒定速度沿着一个无线电波束下降。为了自动对准跑道,通常要为盲目着陆系统提供两个信号。一个是由无线电波束提供的信号。由航向台提供,它与飞机航向滑离跑道方向的大小成正比;另一个信号由飞机通过自身方位的测量来提供。在这两个信号中,前者是飞机位置信号与高频噪声的叠加。作为前面分系统的x1(n)后者由于飞机下降过程中风向的改变而在信号中引入了低频噪声,作为x2(n)。为了对飞机的位置信号进行最佳估计,采用互补维纳滤波器去除无用噪声信号[2],提高信噪比。由此,增强了飞机着陆时的精度,提高了飞机自身的安全。 2.2在图像处理中的应用 在图像处理中,噪声问题是经常会遇到的问题,它使得图像信息受损,降低了信噪比。如何尽可能地滤去噪声,恢复真实的信号.是图像处理中关键的问题。几类简单、常用的滤波器如维纳滤波器和卡尔曼滤波器等都是假定噪声是高斯的且是加性的,噪声和信号相互独立,这样能得到最小均方误差意义下的最优滤波。对于实际问题中遇到的非加性噪声,也能通过基于维纳滤波器的思想计算,求出适合的滤波器算式[3]。比如在处理乘性噪声时使用的方法就是基于维纳滤波器的思想[4],还有在处理图像运动模糊复原时的频域估计算法中也使用到基于维纳滤波器的一些推广算法[5]。同时,维纳滤波还是一种常见的图像复原方法,其思想是使复原的图像与原图像的均方误差最小原则采复原图像[6]。 2.3在桩基检测中的应用[7] 高层建筑、桥梁、海工结构及特殊建筑结构,都需采用深桩基础,即使普通

卡尔曼滤波在目标跟踪中的应用

卡尔曼滤波在目标跟踪中的应用 摘要:机动卡尔曼算法(VD 算法)在扩展卡尔曼滤波诸算法中原理较为简单,目标跟踪效果也较好。 一. 模型建立 (1) 非机动模型(匀速直线运动) 系统模型 )()()1(k GW k X k X +Φ=+ 其中 ?????? ????? ???=)()()()()(k V k y k V k x k X y x ; ? ? ??????????=Φ10001000010001 T T ; ????? ? ? ???? ???=10200102T T G ? ?? ???=)()()(k W k W k W y x ; 0)]([=k W E ; kj T Q j W k W E δ=)]()([ 测量模型为: )()()(k V k HX k Z +=; 其中 ?? ? ???=01000001H )(k V 为零均值,协方差阵为R 白噪声,与)(k W 不相关。 (2) 机动模型 系统模型 );(*)()1(k W G k X k X m m m m m +Φ=+ 其中

?? ? ? ??? ? ?? ??????????=)()()()()()()(k a k a k V k y k V k x k X m y m y m y m m x m m ;??? ???????????? ?????=Φ100 00 00100000100020100000100200 122 T T T T T T m ;??? ???????????????????=10012040020422T T T T G m 0)]([=k W E m , kj m m m Q j W k W E T δ=)]()([ 观测模型与机动模型的相同,只是H 矩阵为m H 。 ?? ? ???=000100000001m H 二.Kalman 滤波算法 作为一般的Kalman 滤波算法其算法可以描述如下: )1/1(?)1/(?--Φ=-k k X k k X T T G k GQ k k P k k P )1()1/)1()1/(-+Φ--Φ=- 1])1/([)1/()(-+--=R H k k HP H k k P k K T T )]1/()()[()1/(?)/(?--+-=k k HX k Z k K k k X k k X )1/()()1/()/(---=k k HP k K k k P k k P 起始估计值为 ()()()()()()()221/?2/2221/x x x y y y z z z T z z z T ????-??????=????????-???? X 起始估计的估计误差为 (2)(1)(2)(1)2(2/2)(2) (1)(2)(1)2x x x x y y y y v v v T u T v v v T u T -?? ??-?? ?+?? =??-?? -???+???? X 起始估计的估计误差协方差矩阵为

卡尔曼滤波简介及其实现(附C代码)

卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– Kalman Filter 1.什么是卡尔曼滤波器 (What is the Kalman Filter?) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下载: https://www.sodocs.net/doc/3d8705838.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5 条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

卡尔曼滤波的基本原理及应用

卡尔曼滤波的基本原理及应用卡尔曼滤波在信号处理与系统控制领域应用广泛,目前,正越来越广泛地应用于计算机应用的各个领域。为了更好地理解卡尔曼滤波的原理与进行滤波算法的设计工作,主要从两方面对卡尔曼滤波进行阐述:基本卡尔曼滤波系统模型、滤波模型的建立以及非线性卡尔曼滤波的线性化。最后,对卡尔曼滤波的应用做了简单介绍。 卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。 最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。卡尔曼滤波器包括两个主要过程:预估与校正。预估过程主要是利用时间更新方程建立对当前状态的先验估计,及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计值;校正过程负责反馈,利用测量更新方程在预估过程的先验估计值及当前测量变量的基础上建立起对当前状态的改进的后验估计。这样的一个过程,我们称之为预估-校正过程,对应的这种估计算法称为预估-校正算法。以下给出离散卡尔曼滤波的时间更新方程和状态更新方程。 时间更新方程: 状态更新方程: 在上面式中,各量说明如下: A:作用在X k-1上的n×n 状态变换矩阵 B:作用在控制向量U k-1上的n×1 输入控制矩阵 H:m×n 观测模型矩阵,它把真实状态空间映射成观测空间 P k-:为n×n 先验估计误差协方差矩阵 P k:为n×n 后验估计误差协方差矩阵 Q:n×n 过程噪声协方差矩阵 R:m×m 过程噪声协方差矩阵 I:n×n 阶单位矩阵K k:n×m 阶矩阵,称为卡尔曼增益或混合因数 随着卡尔曼滤波理论的发展,一些实用卡尔曼滤波技术被提出来,如自适应滤波,次优滤波以及滤波发散抑制技术等逐渐得到广泛应用。其它的滤波理论也迅速发展,如线性离散系统的分解滤波(信息平方根滤波,序列平方根滤波,UD 分解滤波),鲁棒滤波(H∞波)。 非线性样条自适应滤波:这是一类新的非线性自适应滤波器,它由一个线性组合器后跟挠性无记忆功能的。涉及的自适应处理的非线性函数是基于可在学习

matlab对卡尔曼滤波的仿真实现

MATLAB 对卡尔曼滤波器的仿真实现 刘丹,朱毅,刘冰 武汉理工大学信息工程学院,武汉(430070) E-mail :liudan_ina@https://www.sodocs.net/doc/3d8705838.html, 摘 要:本文以卡尔曼滤波器原理为理论基础,用MATLAB 进行卡尔曼滤波器仿真、对比卡尔曼滤波器的预测效果,对影响滤波其效果的各方面原因进行讨论和比较,按照理论模型进行仿真编程,清晰地表述了编程过程。 关键词:数字信号处理;卡尔曼滤波器;MATLAB ;仿真过程 中图分类号: TN912.3 1. 引言 随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字信号处理已在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理中,数字滤波占有极其重要的地位,目前对数字滤波器的设计有多种方法,其中著名的MATLAB 软件包在多个研究领域都有着广泛的应用,它的频谱分析[1]和滤波器的分析设计功能很强,从而使数字信号处理变得十分简单、直观。本文分析了数字滤波器的设计方法,举出了基于MATLAB 软件的信号处理工具在数字滤波器设计中的应用。 2. 卡尔曼滤波基本原理 卡尔曼滤波过程实际上是获取维纳解的递推运算过程[2]。从维纳解导出的卡尔曼滤波器实际上是卡尔曼滤波过程结束后达到稳态的情况,这时Kalman Filtering 的结果与Wiener Solution 是相同的[3]。具体推导如下: )()1|1(?)|(?n Gy n n x f n n x +??= )|(?)()(n n x n x n e ?= 已知由此求c a cG a f F G n e E n ,)1(( ..min )]([)(2?=??→?==ε 由 f G f G ,0??????????=??εε ⑴ )]1|1(?)()[()1|1(?)|(????+??=n n x ac n y n G n n x a n n x 可以是时变的,非平稳的随机信号 ⑵ Q n a n P +?=)1()(2 ε均为正数。 ⑶ ) () ()(2n P C R n CP n G += ⑷ )()](1[)()(n P n CG n G C P n ??== ε )(n G 是个随时间变化的量,每次输入输出,)(n G 就调整一次,并逐渐逼近Kalman Filter 的增益G ,而)1()(?

维纳滤波与卡尔曼滤波

第二章 维纳滤波与卡尔曼滤波 § 引言 信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所谓有最佳线性过滤特性的滤波器。这种滤波器当信号与噪声同时输入时,在输出端能将信号尽可能精确地重现出来,而噪声却受到最大抑制。 维纳(Wiener)滤波与卡尔曼(Kalman)滤波就是用来解决这样一类从噪声中提取信号问题的一种过滤(或滤波)方法。 实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。 一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且 )()()(n n s n x υ+= 其中s (n )表示信号,)(n υ表示噪声,则输出y (n )为 ∑-=m m n x m h n y )()()( 我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用 )(?n s 表示,即 )(?)(n s n y = 图 维纳滤波器的输入—输出关系 如图所示。这个线性系统)(?h 称为对于s (n )的一种估计器。 实际上,式的卷积形式可以理解为从当前和过去的观察值x (n ),x (n -1),x (n -2)…x (n -m ),… 来估计信号的当前值)(?n s 。因此,用)(?h 进行过滤的问题可以看成是一个估计问题。由于我们现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题。 一般,从当前的和过去的观察值x (n ),x (n -1),x (n -2),…估计当前的信号值)(?)(n s n y =称为过滤或滤波;从过去的观察值,估计当前的或将来的信号值)0)((?)(≥+=N N n s n y 称为预测或外推;从过去的观察值,估计过去的信号值)1)((?)(>-=N N n s n y 称为平滑或内插。因此维纳过滤与卡尔曼过滤又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓“最佳”与“最优”是以最小均方误差为准则的。本章仅讨论过滤与预测问题。 如果我们以s s ?与分别表示信号的真值与估计值,而用e (n )表示它们之间的误差,即 )(?)()(n s n s n e -= 显然,e (n )可能是正的,也可能是负的,并且它是一个随机变量。因此,用它的均方值来表达误差是合理的,所谓均方误差最小即它的平方的统计平均值最小:

基于卡尔曼滤波的目标跟踪研究_毕业设计

毕业设计 设计题目:基于卡尔曼滤波的目标跟踪研究 姓名 院系信息与电气工程学院 专业电气工程及其自动化 年级 学号 指导教师 2012年4月24 日

独创声明 本人郑重声明:所呈交的毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 此声明的法律后果由本人承担。 作者签名: 二〇一年月日 毕业论文(设计)使用授权声明 本人完全了解鲁东大学关于收集、保存、使用毕业论文(设计)的规定。 本人愿意按照学校要求提交论文(设计)的印刷本和电子版,同意学校保存论文(设计)的印刷本和电子版,或采用影印、数字化或其它复制手段保存论文(设计);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布论文(设计)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定) 论文作者(签名): 二〇一年月日

目录 引言 1.绪论 1.1研究背景 1.1.1卡尔曼滤波提出背景 1.1.2 应用范围 1.2本文研究的主要内容 2 2.初步认识卡尔曼滤波 2 2.1关于卡尔曼 2.2滤波及滤波器问题浅谈 2 2.3 卡尔曼滤波起源及发展 3.估计原理和卡尔曼滤波 2 4.卡尔曼滤波的实现 4.1卡尔曼滤波的基本假设 5 4.2卡尔曼滤波的特点 5 4.3卡尔曼滤波基本公式 6 4.4卡尔曼滤波参数的估计和调整 5.卡尔曼滤波的相关知识 5.1 8 5.2 8 5.3 9 6.卡尔曼滤波器的设计 7.目标跟踪模型的建立 8.结合数学模型进行matlb编程 9.目标跟踪仿真 10.结论11 11.参考文献11 12.致谢12 13 15 16

卡尔曼滤波器介绍 --- 最容易理解

10.6 卡尔曼滤波器简介 本节讨论如何从带噪声的测量数据把有用信号提取出来的问题。通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内。如前所述,为了消除噪声,可以把 FIR滤波器或IIR滤波器设计成合适的频带滤波器,进行频域滤波。但在许多应用场合,需要进行时域滤波,从带噪声的信号中提取有用信号。虽然这样的过程其实也算是对信号的滤波,但所依据的理论,即针对随机信号的估计理论,是自成体系的。人们对随机信号干扰下的有用信号不能“确知”,只能“估计”。为了“估计”,要事先确定某种准则以评定估计的好坏程度。最小均方误差是一种常用的比较简单的经典准则。典型的线性估计器是离散时间维纳滤波器与卡尔曼滤波器。 对于平稳时间序列的最小均方误差估计的第一个明确解是维纳在1942年2月首先给出的。当时美国的一个战争研究团体发表了一个秘密文件,其中就包括维纳关于滤波问题的研究工作。这项研究是用于防空火力控制系统的。维纳滤波器是基于最小均方误差准则的估计器。为了寻求维纳滤波器的冲激响应,需要求解著名的维纳-霍夫方程。这种滤波理论所追求的是使均方误差最小的系统最佳冲激响应的明确表达式。这与卡尔曼滤波(Kalman filtering)是很不相同的。卡尔曼滤波所追求的则是使均方误差最小的递推算法。 在维纳进行滤波理论研究并导出维纳-霍夫方程的十年以前,在1931年,维纳和霍夫在数学上就已经得到了这个方程的解。 对于维纳-霍夫方程的研究,20世纪五十年代涌现了大量文章,特别是将维纳滤波推广到非平稳过程的文章甚多,但实用结果却很少。这时正处于卡尔曼滤波问世的前夜。 维纳滤波的困难问题,首先在上世纪五十年代中期确定卫星轨道的问题上遇到了。1958年斯韦尔林(Swerling)首先提出了处理这个问题的递推算法,并且立刻被承认和应用。1960年卡尔曼进行了比斯韦尔林更有意义的工作。他严格地把状态变量的概念引入到最小均方误差估计中来,建立了卡尔曼滤波理论。空间时代的到来推动了这种滤波理论的发展。 维纳滤波与卡尔曼滤波所研究的都是基于最小均方误差准则的估计问题。 维纳滤波理论的不足之处是明显的。在运用的过程中,它必须把用到的全部数据存储起来,而且每一时刻都要通过对这些数据的运算才能得到所需要的各种量的估值。按照这种滤波方法设置的专用计算机的存储量与计算量必然很大,很难进行实时处理。虽经许多科技工作者的努力,在解决非平稳过程的滤波问题时,给出能用的方法为数甚少。到五十年代中期,随着空间技术的发展,这种方法越来越不能满足实际应用的需要,面临了新的挑战。尽管如此,维纳滤波理论在滤波理论中的开拓工作是不容置疑的,维纳在方法论上的创见,仍然影响着后人。 五十年代中期,空间技术飞速发展,要求对卫星轨道进行精确的测量。为此,人们将滤波问题以微分方程表示,提出了一系列适应空间技术应用的精练算法。1960年

卡尔曼滤波简介和实例讲解.

卡尔曼,美国数学家和电气工程师。1930年5月 19日生于匈牙利首都布达佩斯。1953年在美国麻省理工学院毕业获理学士学位,1954年获理学硕士学位,1957年在哥伦比亚大学获科学博士学位。1957~1958年在国际商业机器公司(IBM)研究大系统计算机控制的数学问题。1958~1964年在巴尔的摩高级研究院研究控制和数学问题。1964~1971年到斯坦福大学任教授。1971年任佛罗里达大学数学系统理论研究中心主任,并兼任苏黎世的瑞士联邦高等工业学校教授。1960年卡尔曼因提出著名的卡尔曼滤波器而闻名于世。卡尔曼滤波器在随机序列估计、空间技术、工程系统辨识和经济系统建模等方面有许多重要应用。1960年卡尔曼还提出能控性的概念。能控性是控制系统的研究和实现的基本概念,在最优控制理论、稳定性理论和网络理论中起着重要作用。卡尔曼还利用对偶原理导出能观测性概念,并在数学上证明了卡尔曼滤波理论与最优控制理论对偶。为此获电气与电子工程师学会(IEEE)的最高奖──荣誉奖章。卡尔曼著有《数学系统概论》(1968)等书。 什么是卡尔曼滤波 最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼

滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。 卡尔曼滤波的实质是由量测值重构系统的状态向量。它以“预测—实测—修正”的顺序递推,根据系统的量测值来消除随机干扰,再现系统的状态,或根据系统的量测值从被污染的系统中恢复系统的本来面目。 释文:卡尔曼滤波器是一种由卡尔曼(Kalman)提出的用于时变线性系统的递归滤波器。这个系统可用包含正交状态变量的微分方程模型来描述,这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差。 卡尔曼滤波的应用 斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器.卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器. 关于这种滤波器的论文由Swerling (1958), Kalman (1960)与 Kalman and Bucy (1961)发表.

线性离散卡尔曼滤波器

线性离散卡尔曼滤波公式 两种数学推导方法的比较 1. 引言 卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。从研究的历史来看,卡尔曼是首先研究的离散形式的卡尔曼滤波问题,所以最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。下面分别对比了离散线性卡尔曼滤波器的相关公式推导的两种方法。 2. 离散线性卡尔曼滤波器的直观数学推导 下面从直观角度来推导线性离散系统的卡尔曼滤波器,这是书中的推导方法。首先假设线性离散系统模型如下 ,11,11 k k k k k k k k k k k x w z H x v x ----=Φ+Γ=+ 其中,1k w -为过程噪声,k v 为观测噪声,k z 为第k 次的测量值,/?k k x 是k x 的最优线性估计,/1?k k x -是k x 的一步预报估计。过程噪声1k w -和观测噪声k v 的统计特性为: 1[]0,(,)[]0,(,)(,)0 k ww k kj k vv k kj wv E w R k j Q E v R k j R R k j δδ-===== 初始状态0x 的统计特性为: 0000?[],()E x x Var x P == 并假定0x 与k w 和k v 均无关,则有: 00(0,)(,)0(0,)(,)0 T xw k T xv k R k E x w R k E x v ==== 据以上假设及条件,可得如下直观形式 /1,11/1/1/1//1/1??????k k k k k k k k k k k k k k k k k k x x z H x x x K z --------=Φ==+

卡尔曼滤波 从推导到应用1

卡尔曼滤波-- 从推导到应用(一) 2013-12-30 01:26 1328人阅读评论(9) 收藏举报滤波算法 该文是自我总结性文章,有纰漏,请指出,谢谢。--白巧克力 前言 卡尔曼滤波器是在估计线性系统状态的过程中,以最小均方差为目的而推导出的几个递推数学等式,也可以从贝叶斯推断的角度来推导。 本文将分为两部分: 第一部分,结合例子,从最小均方差的角度,直观地介绍卡尔曼滤波的原理, 并给出较为详细的数学推导。 第二部分,通过两个例子给出卡尔曼滤波的实际应用。其中将详细介绍一个 匀加速模型,并直观的对比系统状态模型的建立对滤波的影响。 第一部分 先看一个对理解卡尔曼滤波能起到作用的的笑话: 一片绿油油的草地上有一条曲折的小径,通向一棵大树.一个要求被提出:从起点沿着小径走到树下. “很简单.” A说,于是他丝毫不差地沿着小径走到了树下. 现在,难度被增加了:蒙上眼。 “也不难,我当过特种兵。” B说,于是他歪歪扭扭地走到了树旁。“唉,好久不练,生疏了。” (只凭自己的预测能力) “看我的,我有DIY 的GPS!” C说,于是他像个醉汉似地歪歪扭扭的走到了树旁。“唉,这个GPS 没做好,漂移太大。”(只依靠外界有很大噪声的测量)

“我来试试。” 旁边一也当过特种兵的拿过GPS, 蒙上眼,居然沿着小径很顺滑的走到了树下。(自己能预测+测量结果的反馈) “这么厉害!你是什么人?” “卡尔曼! ” “卡尔曼?!你就是卡尔曼?”众人大吃一惊。 “我是说这个GPS 卡而慢。” 此段引用自 highgear 的《授之以渔:卡尔曼滤波器...大泄蜜...》 (点击可跳转到该网页) 这个小笑话很有意思的指出了卡尔曼滤波的核心,预测+测量反馈,记住这种思想。 -----------------------------------------------------------分割线 ----------------------------------------------------------------------- 在介绍卡尔曼滤波前,简单说明几个在学卡尔曼过程中要用到的概念。即什么是协方差,它有什么含义,以及什么叫最小均方差估计,什么是多元高斯分布。如果对这些有了了解,可以跳过,直接到下面的分割线。 均方差:它是"误差"的平方的期望值(误差就是每个估计值与真实值的差),也就是多个样本的时候,均方差等于每个样本的误差平方再乘以该样本出现的概率的和。 (均方差即为标准差,为方差的开根号?) 方差:方差是描述随机变量的离散程度,是变量离期望值的距离。 注意两者概念上稍有差别,当你的样本期望值就是真实值时,两者又完全相同。最小均方差估计就是指估计参数时要使得估计出来的模型和真实值之间的误差平方期望值最小。 两个实变量之间的协方差:

卡尔曼滤波器介绍外文翻译

毕业设计(论文)外文资料翻译 系 : 电气工程学院 专 业: 电子信息科学与技术 姓 名: 周景龙 学 号: 0601030115 外文出处: Department of Computer Science University of North Carolina at Chapel Hill Chapel Hill,NC27599-3175 附 件:1.外文资料翻译译文;2.外文原文。 (用外文写)

卡尔曼滤波器介绍 摘要 在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法。从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。 卡尔曼滤波器是一系列方程式,提供了有效的计算(递归)方法去估计过程的状态,是一种以平方误差的均值达到最小的方式。滤波器在很多方面都很强大:它支持过去,现在,甚至将来状态的估计,而且当系统的确切性质未知时也可以做。 这篇论文的目的是对离散卡尔曼滤波器提供一个实际介绍。这次介绍包括对基本离散卡尔曼滤波器推导的描述和一些讨论,扩展卡尔曼滤波器的描述和一些讨论和一个相对简单的(切实的)实际例子。 离散卡尔曼滤波器 在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法[Kalman60]。从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。第一章讲述了对卡尔曼滤波器非常“友好的”介绍[Maybeck79],而一个完整的介绍可以在[Sorenson70]找到,也包含了一些有趣的历史叙事。更加广泛的参考包括Gelb74;Grewal93;Maybeck79;Lewis86;Brown92;Jacobs93]. 被估计的过程 卡尔曼滤波器卡用于估计离散时间控制过程的状态变量 n x ∈?。这个离散 时间过程由以下离散随机差分方程描述: 111k k k k x Ax bu w ---=++ (1.1) 测量值m z ∈?,k k k z Hx v =+ (1.2) 随机变量k w 和k v 分别表示过程和测量噪声。他们之间假设是独立的,正态分布的高斯白噪: ()~(0)p w N Q , (1.3) ()~(0)p v N R , (1.4) 在实际系统中,过程噪声协方差矩阵Q 和观测噪声协方差矩阵R 可能会随每次迭代计算而变化。但在这儿我们假设它们是常数。 当控制函数1k u - 或过程噪声1k w -为零时,差分方程1.1中的n n ? 阶增益矩阵A 将过去k-1 时刻状态和现在的k 时刻状态联系起来。实际中A 可能随时间变化,但

相关主题