基于Matlab构造无迹卡尔曼滤波器

在这里插入图片描述

%------------------清屏----------------
close all;clear all;  %关闭所有文件,清除所有变量
clc; tic;             %清屏、记录程序开始时间
global Qf n;          %定义全局变量
%------------------初始化--------------
stater0=[220; 1;55;-0.5];     %标准系统初值
state0=[200;1.3;50;-0.3];     %测量状态初值
%--------系统滤波初始化  
p=[0.005 0 0 0;0 0.005 0 0;
   0 0 0.005 0;0 0 0 0.005];  %状态误差协方差初值                             
n=4; T=3;
Qf=[T^2/2 0;0 T;T^2/2 0;0 T];
%--------------------------------------
stater=stater0;state=state0; xc=state;
staterout=[]; stateout=[];xcout=[];
errorout=[];tout=[];
t0=1; h=1; tf=1000;          %仿真时间设置
%---------------滤波算法----------------
for t=t0:h:tf
    [state,stater,yc]=track(state,stater); %轨迹发生器:标准轨迹和输出
    [xc,p]=UKFfiter(@systemfun,@measurefun,xc,yc,p);
    error=xc-stater;              %滤波处理后的误差
    staterout=[staterout,stater];
    stateout=[stateout,state];
    errorout=[errorout,error];
    xcout=[xcout,xc];  
    tout=[tout,t];
end 

完整代码链接:https://pan.baidu.com/s/1fwk7uIjLJGw5fnf__yZrsw

提取码:knpw

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值