ukf(无迹卡尔曼滤波)算法的matlab程序.

function [x,P]=ukf(fstate,x,P,hmeas,z,Q,R) % UKF   Unscented Kalman Filter for nonlinear dynamic systems % [x, P] = ukf(f,x,P,h,z,Q,R) returns state estimate, x and state covariance, P % for nonlinear dynamic system (for simplicity, noises are assumed as additive): %           x_k+1 = f(x_k) + w_k %           z_k   = h(x_k) + v_k % where w ~ N(0,Q) meaning w is gaussian noise with covariance Q %       v ~ N(0,R) meaning v is gaussian noise with covariance R % Inputs:   f: function handle for f(x) %           x: "a priori" state estimate %           P: "a priori" estimated state covariance %           h: fanction handle for h(x) %           z: current measurement %           Q: process noise covariance %           R: measurement noise covariance % Output:   x: "a posteriori" state estimate %           P: "a posteriori" state covariance % % Example: %{ n=3;      %number of state q=0.1;    %std of process r=0.1;    %std of measurement Q=q^2*eye(n); % covariance of process R=r^2;        % covariance of measurement f=@(x)[x(2);x(3);0.05*x(1)*(x(2)+x(3))]; % nonlinear state equations h=@(x)x(1);                               % measurement equation s=[0;0;1];                                % initial state x=s+q*randn(3,1); %initial state          % initial state with noise P = eye(n);                               % initial state covraiance N=20;                                     % total dynamic steps xV = zeros(n,N);          %estmate        % allocate memory sV = zeros(n,N);          %actual zV = zeros(1,N); for k=1:N z = h(s) + r*randn;                     % measurments sV(:,k)= s;                             % save actual state zV(k) = z;                             % save measurment [x, P] = ukf(f,x,P,h,z,Q,R);            % ekf xV(:,k) = x;                            % save estimate s = f(s) + q*randn(3,1);                % update process end for k=1:3                                 % plot results subplot(3,1,k) plot(1:N, sV(k,:), '-', 1:N, xV(k,:), '--') end %} % % By Yi Cao at Cranfield University, 04/01/2008 % L=numel(x);                                 %numer of states m=numel(z);                                 %numer of measurements alpha=1e-3;                                 %default, tunable ki=0;                                       %default, tunable beta=2;                                     %default, tunable lambda=alpha^2*(L+ki)-L;                    %scaling factor c=L+lambda;                                 %scaling factor Wm=[lambda/c 0.5/c+zeros(1,2*L)];           %weights for means Wc=Wm; Wc(1)=Wc(1)+(1-alpha^2+beta);               %weights for covariance c=sqrt(c); X=sigmas(x,P,c);                            %sigma points around x [x1,X1,P1,X2]=ut(fstate,X,Wm,Wc,L,Q);          %unscented transformation of process % X1=sigmas(x1,P1,c);                         %sigma points around x1 % X2=X1-x1(:,ones(1,size(X1,2)));             %deviation of X1 [z1,Z1,P2,Z2]=ut(hmeas,X1,Wm,Wc,m,R);       %unscented transformation of measurments P12=X2*diag(Wc)*Z2';                        %transformed cross-covariance K=P12*inv(P2); x=x1+K*(z-z1);                              %state update P=P1-K*P12';                                %covariance update function [y,Y,P,Y1]=ut(f,X,Wm,Wc,n,R) %Unscented Transformation %Input: %        f: nonlinear map %        X: sigma points %       Wm: weights for mean %       Wc: weights for covraiance %        n: numer of outputs of f %        R: additive covariance %Output: %        y: transformed mean %        Y: transformed smapling points %        P: transformed covariance %       Y1: transformed deviations L=size(X,2); y=zeros(n,1); Y=zeros(n,L); for k=1:L                       Y(:,k)=f(X(:,k));           y=y+Wm(k)*Y(:,k);       end Y1=Y-y(:,ones(1,L)); P=Y1*diag(Wc)*Y1'+R;          function X=sigmas(x,P,c) %Sigma points around reference point %Inputs: %       x: reference point %       P: covariance %       c: coefficient %Output: %       X: Sigma points A = c*chol(P)'; Y = x(:,ones(1,numel(x))); X = [x Y+A Y-A];

ukf实测信号的预测 matlab,ukf(无迹卡尔曼滤波)算法的matlab程序.相关推荐

  1. ukf(无迹卡尔曼滤波)算法的matlab程序.

     ukf(无迹卡尔曼滤波)算法的matlab程序. function [x,P]=ukf(fstate,x,P,hmeas,z,Q,R) % UKF   Unscented Kalman Filt ...

  2. ukf实测信号的预测 matlab,无迹卡尔曼滤波(UKF)在参数估计应用中迭代停滞问题

    本帖最后由 华仔zju 于 2017-3-23 16:40 编辑 最近项目上在利用卡尔曼滤波进行模型参数估计,编写的EKF程序运行良好,后来看到论文提及UKF效果会比EKF更好,便想着使用UKF试一试 ...

  3. ukf实测信号的预测 matlab,ukf的matlab实现

    我是个matlab新手,ukf也是刚接触,编个程序遇到各种麻烦...下面这个m文件运行出来的结果不对,可却找不出哪儿有问题...求大神指导啊~~ clear all close all clc %加载 ...

  4. 始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?

    原始卡尔曼滤波算法(KF).扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别? 原文:https://www.zhihu.com/question/22714163/answ ...

  5. 基于自适应无迹卡尔曼滤波算法(AUKF)锂电池SOC估计,噪声系数自适应 Matlab程序

    基于自适应无迹卡尔曼滤波算法(AUKF)锂电池SOC估计,噪声系数自适应 Matlab程序 仿真模型建模数据mat Sci一篇参考文献 ID:77100657373800632张徳帅123

  6. matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀

    作者 | 蔡老师 仿真秀专栏作者 首发 | 仿真秀平台 导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序.随着讲课的越来越深入,我给出的程序会越来越实用,接近于实 ...

  7. matlab滤波实验,卡尔曼滤波实验及matlab实现

    <卡尔曼滤波实验及matlab实现>由会员分享,可在线阅读,更多相关<卡尔曼滤波实验及matlab实现(8页珍藏版)>请在人人文库网上搜索. 1.实验一 卡尔曼滤波一. 实验目 ...

  8. mcra matlab,噪声估计的算法及matlab实现毕业设计

    噪声估计的算法及matlab实现毕业设计 (53页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 I噪声估计的算法及MATLAB实现毕业设计 ...

  9. matlab dfp法,DFP算法及Matlab程序.docx

    DFP算法及Matlab程序 作业二 用DFP算法求解,取,.一.求解:求迭代点x1令,得的极小值点,所以得:于是,由DFP修正公式有下一个搜索方向为求迭代点x2令,得的极小值点于是得:,所以:,因H ...

最新文章

  1. OD使用教程6 - 调试篇06|解密系列
  2. 用python爬取网站数据期末作业_python实战第一周作业:爬取一页商品数据
  3. Redis_简单使用
  4. python2.7 与 go1.2简单性能比较
  5. 设计模式---工厂模式
  6. Servlet传递数据方式
  7. 数据中心实施服务器虚拟化前的十大思考
  8. html5 canvas类库 实例
  9. 用lex和yacc写成的一个具有解析类C语言的编译器,能够进行正确的词法、语法、语义分析并生成语法树进行可视化以及中间码。
  10. 深度解析网易严选和京东的会员体系,建议收藏
  11. 不用PS,也可以轻松组合漂亮的图片—135编辑器拼图教程
  12. 严重: Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud
  13. 【tensorflow 训练验证数据处理】制制作trian和val TXT的文件
  14. 【微信小程序-初级实战】弹出海报/广告效果实现
  15. 高三计算机教学总结,2021年高三信息技术教学工作总结范文.doc
  16. 儿童台灯怎么选对眼睛好?分享央视推荐的护眼灯
  17. Oracle数据库服务器端和客服端的安装
  18. d3.js 旋转图形_一个简单易用但功能强大的图形矢量化软件,扫描图片转换成CAD图的软件等等...
  19. 【搞定CAD】经典练习题库解答、此题多解。
  20. 启动nginx报错问题(nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socke

热门文章

  1. eclipse的python_eclipse中集成python开发环境
  2. leJOS EV3 Eclipse Mac 总结
  3. 博科 SAN交换机配置文件备份和恢复(华为SNS系列交换机为例OEM博科)
  4. 工具-python包-虚拟环境管理(99.4.1)
  5. Modeling Relational Data with Graph Convolutional Networks(2017)
  6. 用gcc编译.cpp文件可能出现undefined reference to `__gxx_personality_v0'问题的解决
  7. 【嵌入式】如果用PS导出GIF图片
  8. SpringBoot开发文档二(MD5二次加密)
  9. Processing摸索前行(9)-音频可视化
  10. Chrome(谷歌浏览器) 程序开发32个常用插件