MatLab进行一维向量的扩展卡尔曼滤波

上传人:壹****1 文档编号:511585766 上传时间:2023-01-20 格式:DOCX 页数:4 大小:111.31KB
返回 下载 相关 举报
MatLab进行一维向量的扩展卡尔曼滤波_第1页
第1页 / 共4页
MatLab进行一维向量的扩展卡尔曼滤波_第2页
第2页 / 共4页
MatLab进行一维向量的扩展卡尔曼滤波_第3页
第3页 / 共4页
MatLab进行一维向量的扩展卡尔曼滤波_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《MatLab进行一维向量的扩展卡尔曼滤波》由会员分享,可在线阅读,更多相关《MatLab进行一维向量的扩展卡尔曼滤波(4页珍藏版)》请在金锄头文库上搜索。

1、MatLab进行一维向量的扩展卡尔曼滤波EKF流程回顾系统描述状态方程:x(k)=x(k-1)+100/x(k-1);初始状态:x(1)=100该状态是真实值,是无法直接观测到的测量的噪声方差为:RMinus=0.5人2测量更新(校正xt_,和F为初始估计计算卡尔曼增益由观测变量更新估计k=V+Kt(zk-h(x/,Q)jt3)更新误差协方差%二(1相片时底更新预测)(1)向前推算狀态变量阳二巩兔-1叫-卫)向前推算误差协方差專=况珥一風+%址一代假设我们的状态方程完全准确,则过程方差是0,但这可能导致不收敛。我们将该方差设为一个较小的数字:Q=0.0001Matlab代码N=40;Noise

2、Amp=0.5;w二NoiseAmp*randn(l,N);%测量噪声x二zeros(l,N);%存储真实值x(l)=100;fork=2:N;x(k)=x(k-l)+100/x(k-l);%非线性的系统endQ=0.0001;%过程噪声方差,假设我们已经知道了系统的精确模型,则该噪声会很小measure二w+x;%测量结果%x=zeros(1,length(E);%存储预测的状态变量%y=zeros(1,length(E);%存储校正后的状态变量xHatMinus二zeros(l,N);%xHatMinus用来保存预测结果xHat二zeros(l,N);%xHat用来保存校正后的结果RMin

3、us二NoiseAmp八2;%测量噪声方差P=zeros(1,N);%校正结果的误差方差PMinus=zeros(1,N);%预测结果的误差方差xHatMinus(l)=x(l)+NoiseAmp*2;%初始状态xHat(l)=x(l)+NoiseAmp*2;P(l)=NoiseAmp2;%初始状态的误差方差PMinus(l)=NoiseAmp2fork=2:N;xHatMinus(k)二xHat(k-l)+100/xHat(k-l);%向前推算状态向量PMinus(k)=(l200/x(kl厂2厂2*P(kl)+Q;K(k)=PMinus(k)/(PMinus(k)+RMinus);%卡尔曼

4、增益xHat(k)=xHatMinus(k)+K(k)*(measure(k)-xHatMinus(k);P(k)=(1-K(k)*PMinus(k);%校正结果endFontSize=14;LineWidth=2;figure();plot(std(w).*ones(l,N),r+,LineWidth,LineWidth);%holdon;plot(sqrt(P),b-,LineWidth,LineWidth)%plot(xT00,r-,LineWidth,LineWidth);%holdon;%plot(measureTOO,b-,LineWidth,LineWidth)%holdon;%plot(xHat-100,g-.,LineWidth,LineWidth)%legend(测量值的误差标准差,估计值的误差标准差);%legend(真实值,测量值,估计值);xl=xlabel(计算次数);yl=ylabel(标准差);set(xl,fontsize,FontSize);set(yl,fontsize,FontSize);holdoff;set(gca,FontSize,FontSize);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号