扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)

扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)

ID:25712113

大小:1.08 MB

页数:29页

时间:2018-11-22

扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)_第1页
扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)_第2页
扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)_第3页
扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)_第4页
扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)_第5页
资源描述:

《扩展kalman滤波(ekf)和无迹卡尔曼滤波(ukf)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、EKF与UKF一、背景普通卡尔曼滤波是在线性高斯情况下利用最小均方误差准则获得目标的动态估计,适应于过程和测量都属于线性系统,且误差符合高斯分布的系统。但是实际上很多系统都存在一定的非线性,表现在过程方程(状态方程)是非线性的,或者观测与状态之间的关系(测量方程)是非线性的。这种情况下就不能使用一般的卡尔曼滤波了。解决的方法是将非线性关系进行线性近似,将其转化成线性问题。对于非线性问题线性化常用的两大途径:(1)将非线性环节线性化,对高阶项采用忽略或逼近措施;(EKF)(2)用采样方法近似非线性分布.(UK

2、F)二、扩展Kalman滤波(EKF)算法EKF算法是一种近似方法,它将非线性模型在状态估计值附近作泰勒级数展开,并在一阶截断,用得到的一阶近似项作为原状态方程和测量方程近似表达形式,从而实现线性化同时假定线性化后的状态依然服从高斯分布,然后对线性化后的系统采用标准卡尔曼滤波获得状态估计。采用局部线性化技术,能得到问题局部最优解,但它能否收敛于全局最优解,取决于函数的非线性强度以及展开点的选择。二、扩展Kalman滤波(EKF)算法假定定位跟踪问题的非线性状态方程和测量方程如下:在最近一次状态估计的时刻,对

3、以上两式进行线性化处理,首先构造如下2个矩阵:二、扩展Kalman滤波(EKF)算法将线性化后的状态转移矩阵和观测矩阵代入到标准卡尔曼滤波框架中,即得到扩展卡尔曼滤波。因为EKF忽略了非线性函数泰勒展开的高阶项,仅仅用了一阶项,是非线性函数在局部线性化的结果,这就给估计带来了很大误差,所以只有当系统的状态方程和观测方程都接近线性且连续时,EKF的滤波结果才有可能接近真实值。EKF滤波结果的好坏还与状态噪声和观测噪声的统计特性有关,在EKF的递推滤波过程中,状态噪声和观测噪声的协方差矩阵保持不变,如果这两个噪

4、声协方差矩阵估计的不够准确,那就容易产生误差累计,导致滤波器发散。EKF的另外一个缺点是初始状态不太好确定,如果假设的初始状态和初始协方差误差较大,也容易导致滤波器发散。二、扩展Kalman滤波(EKF)算法Matlab程序:functiontest_ekfkx=.01;ky=.05;%阻尼系数g=9.8;%重力t=10;%仿真时间Ts=0.1;%采样周期len=fix(t/Ts);%仿真步数%真实轨迹模拟dax=1.5;day=1.5;%系统噪声X=zeros(len,4);X(1,:)=[0,50,50

5、0,0];%状态模拟的初值fork=2:lenx=X(k-1,1);vx=X(k-1,2);y=X(k-1,3);vy=X(k-1,4);x=x+vx*Ts;vx=vx+(-kx*vx^2+dax*randn(1,1))*Ts;y=y+vy*Ts;二、扩展Kalman滤波(EKF)算法vy=vy+(ky*vy^2-g+day*randn(1))*Ts;X(k,:)=[x,vx,y,vy];endfigure(1),holdoff,plot(X(:,1),X(:,3),'-b'),gridon%figure(

6、2),plot(X(:,2:2:4))%构造量测量mrad=0.001;dr=10;dafa=10*mrad;%量测噪声fork=1:lenr=sqrt(X(k,1)^2+X(k,3)^2)+dr*randn(1,1);a=atan(X(k,1)/X(k,3))+dafa*randn(1,1);Z(k,:)=[r,a];end二、扩展Kalman滤波(EKF)算法figure(1),holdon,plot(Z(:,1).*sin(Z(:,2)),Z(:,1).*cos(Z(:,2)),'*')%ekf滤波Q

7、k=diag([0;dax;0;day])^2;Rk=diag([dr;dafa])^2;Xk=zeros(4,1);Pk=100*eye(4);X_est=X;fork=1:lenFt=JacobianF(X(k,:),kx,ky,g);Hk=JacobianH(X(k,:));fX=fff(X(k,:),kx,ky,g,Ts);hfX=hhh(fX,Ts);[Xk,Pk,Kk]=ekf(eye(4)+Ft*Ts,Qk,fX,Pk,Hk,Rk,Z(k,:)'-hfX);X_est(k,:)=Xk';end

8、二、扩展Kalman滤波(EKF)算法figure(1),plot(X_est(:,1),X_est(:,3),'+r')xlabel('X');ylabel('Y');title('ekfsimulation');legend('real','measurement','ekfestimated');%%%%%%%%%%%%%%%%%%%%子程序%%%%%%%%%%%%%%%%%%%functionF=Jaco

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。