PSINS滤波初始化函数修改,151

本文介绍了一个修改后的KF初始化函数EV_kfinit,针对GNSS拒止时仅依赖气压高度计的情况,提供151模式的支持,用于状态估计,允许用户通过添加特定标识151来选择该模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

PSINS的kfinit没有对应的15为状态、1维观测的滤波,但是实际上仅高度可观测的情况在实际上是需要的(无GNSS、只有气压高度计),这里给出出去改后的kf初始化函数。

函数

function kf = EV_kfinit(kfinit, ins, varargin)
% 自制的KF初始化程序,应对151的情况(GNSS拒止,仅有气压高度这一个观测)
global glv
[Re,deg,dph,ug,mg] = ... % just for short
    setvals(glv.Re,glv.deg,glv.dph,glv.ug,glv.mg); 
o33 = zeros(3); I33 = eye(3); 
kf = [];
if isstruct(ins),    nts = ins.nts;
else                 nts = ins;
end
switch(kfinit)
    case 151
        psinsdef.kffk = 15;  psinsdef.kfhk = 151;  psinsdef.kfplot = 15;
        [davp, imuerr, rk] = setvals(varargin);
        kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9,1)])^2;
        kf.Rk = diag(rk)^2;
        kf.Pxk = diag([davp; imuerr.eb; imuerr.db]*1.0)^2;
        kf.Hk = [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0];
    otherwise
        warning('选择滤波模型出错');
end
kf = kfinit0(kf, nts);

用法

按原先的kfinit一样用,在输入量里面,在前方添加一个“151”即可,之所以要加一个151的选择,是因为预留接口,后面可能会做152/191等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值