预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

卡尔曼滤波器的设计 卡尔曼滤波器是一种由卡尔曼(Kalman)提出的用于时变线性系统的递归滤波器。这个系统可用包含正交状态变量的微分方程模型来描述,这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差。 状态估计是卡尔曼滤波的重要组成部分。一般来说,根据观测数据对随机量进行定量推断就是估计问题,特别是对动态行为的状态估计,它能实现实时运行状态的估计和预测功能。比如对飞行器状态估计。状态估计对于了解和控制一个系统具有重要意义,所应用的方法属于统计学中的估计理论。最常用的是最小二乘估计,线性最小方差估计、最小方差估计、递推最小二乘估计等。其他如风险准则的贝叶斯估计、最大似然估计、随机逼近方法也都有应用。 2.1程序设计 %------------产生正弦波信号------------% t=0:0.1:20-0.1; T=0.1; y=5*sin(pi*t*0.5); figure; plot(t,y,’or’); axis([0,20,-8,8]); xlabel('时间/s'); ylabel('质点位移/mm'); title('理想质点偏离中心位移图'); %------------添加噪声---------------% a=randn(1,200);Z=y+a; figure; plot(t,Z,’or’); axis([0,20,-8,8]); xlabel('时间/s'); ylabel('质点位移/mm'); title(‘测量所得质点偏离中心位移图'); %----------建立系统模型------------% X=zeros(2,200); X(:,1)=[0,1]; A=[1,T;0,1]; B=[1/2*(T)^2T]'; H=[1,0]; C=[0,0;0,1]; Q=(0.25)^2; R=(0.25)^2; %--------卡尔曼算法----------------% forn=1:200 Kg=C*H'/(H*C*H'+R); X(:,n)=X(:,n)+Kg*(Z(:,n)-H*X(:,n)); X(:,n+1)=A*X(:,n); C=(eye(2,2)-Kg*H)*C; C=A*C*A'+B*Q*B'; end %------------------------------------------% figure t=0:0.1:20; Y=X(1,:); plot(t,Y,'or'); grid; axis([0,20,-8,8]); xlabel('时间/s'); ylabel('质点位移/mm'); title(‘卡尔曼滤波后输出质点最优化偏离中心位移'); 1.、理想质点偏离中心位移如下图1所示。 图1理想质点偏离中心位移图 2.、模拟测量结果如下图2所示。 图2模拟质点偏离中心位移测量结果 3、卡尔曼滤波后结果如下图3所示。 图3卡尔曼滤波后结果 4.、结果分析 图1中正弦波模拟了理想质点偏离中心的位移图,图2在图1的基础上添加了随机白声,用以模拟测量得到的结果。图3是经过卡尔曼滤波后输出的结果,可以看到图3中数据近似贴近理想的质点偏离中心位移图,说明滤波后已将测量数据的随机误差消除,所以这次设计满足了设计要求。