卡尔曼滤波

  • Athunder
    了解作者
  • matlab
    开发工具
  • 37KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2022-05-26 16:16
    上传日期
气压计加计卡尔曼滤波算法,带数据。分享一下。
KF_Altitude.zip
  • data1.mat
    22.1KB
  • Altitude_KFm.m
    733B
  • KalmanFilter_core.m
    1.1KB
  • data.mat
    13.4KB
内容介绍
function [xa_apo,Pa_apo]=KalmanFilter_core(z,q_baro,q_vel,q_acc,q_bias,r_baro,r_acc,dt) %% init persistent x_apo if(isempty(x_apo)) x_apo=[0,0,0,0]'; end persistent P_apo if(isempty(P_apo)) % P_apo = [0.18756159,0.087983318,0.012799479,-0.0099069523; % 0.087983355,0.072559364,0.027358357,-0.0093248896; % 0.012799491,0.027358379,0.099301167,-0.0042615356; % -0.0099069644,-0.0093249017,-0.0042615356,0.0043873033]; P_apo = single(200*ones(4)); end A=[1 dt 0 0 0 1 dt 0 0 0 1 0 0 0 0 1]; %% copy the states pos=x_apo(1); % position vel=x_apo(2); acc=x_apo(3); bias=x_apo(4); %% prediction section pos=pos+ vel*dt+0.5*acc*dt*dt; vel=vel+ acc*dt; % acc=acc; % bias=bias; x_apr=[pos,vel,acc,bias]'; %states persistent Q if (isempty(Q)) Q=diag([ q_baro,q_vel,q_acc,q_bias]); end P_apr=A*P_apo*A'+Q; %% update R=diag([r_baro,r_acc]); H=[1 0 0 0 0 0 1 1]; s_k=H*P_apr*H'+R; K_k=(P_apr*H'/(s_k)); y_k=z-H*x_apr; x_apo=x_apr+K_k*y_k; P_apo=(eye(4)-K_k*H)*P_apr; %% output xa_apo=x_apo; Pa_apo=P_apo;
评论
    相关推荐
    • 卡尔曼滤波
      使用卡尔曼滤波算法进行目标航迹跟踪处理,一个简单例子,适合新手学习
    • 卡尔曼滤波
      卡尔曼滤波 C代码实现,方便移植。STM32程序 应用在四旋翼飞行器姿态测量中使用,卡尔曼滤波 卡尔曼滤波卡尔曼滤波
    • 卡尔曼滤波
      卡尔曼滤波 c语言,可以实现卡尔曼滤波。c语言代码有些复杂
    • 卡尔曼滤波
      自己写的一个卡尔曼滤波例子,尽量使其具有一般性,普遍性。在VC++6.0上实现,其中涉及到很多矩阵运算,尤其是矩阵求逆(适用于首项为零的情况)。
    • 卡尔曼滤波
      一篇经典的卡尔曼滤波原理阐述的英文文章和对应的中文翻译,后面附有matlab实现代码。是想掌握kalman原理的同学的福音!
    • 卡尔曼滤波
      卡尔曼滤波 目录 概述 该项目是卡尔曼滤波算法的实现,是导航算法课程的一部分。 该算法用于2D空间维度中的定位和跟踪运动对象的上下文中。 (算法的)仿真显示了如何将对未来状态的动态预测(基于当前状态)和...
    • 卡尔曼滤波
      卡尔曼滤波 针对飞思卡尔智能车加速度计进行滤波算法
    • 卡尔曼滤波
      卡尔曼滤波,用于二维图像的滤波器,matlab版本
    • 卡尔曼滤波
      内含卡尔曼滤波的matlab程序,简单易懂,不到百行,混科研搞数据必备良代码。超低价甩卖。
    • libiconv-1.1.tar.gz
      字符集转换程序