function [phi theta psi] = EulerUKF(z, rates, dt)
%
%
persistent Q R
persistent x P
persistent n m
persistent firstRun
if isempty(firstRun)
Q = [ 0.0001 0 0;
0 0.0001 0;
0 0 1 ];
R = [ 6 0;
0 12 ];
x = [0 0 0]';
P = 1*eye(3);
n = 3;
m = 2;
firstRun = 1;
end
[Xi W] = SigmaPoints(x, P, 0);
fXi = zeros(n, 2*n+1);
for k = 1:2*n+1
fXi(:, k) = fx(Xi(:,k), rates, dt);
end
[xp Pp] = UT(fXi, W, Q);
hXi = zeros(m, 2*n+1);
for k = 1:2*n+1
hXi(:, k) = hx(fXi(:,k));
end
[zp Pz] = UT(hXi, W, R);
Pxz = zeros(n, m);
for k = 1:2*n+1
Pxz = Pxz + W(k)*(fXi(:,k) - xp)*(hXi(:,k) - zp)';
end
K = Pxz*inv(Pz);
x = xp + K*(z - zp);
P = Pp - K*Pz*K';
phi = x(1);
theta = x(2);
psi = x(3);
%------------------------------
function xp = fx(xhat, rates, dt)
%
%
phi = xhat(1);
theta = xhat(2);
p = rates(1);
q = rates(2);
r = rates(3);
xdot = zeros(3, 1);
xdot(1) = p + q*sin(phi)*tan(theta) + r*cos(phi)*tan(theta);
xdot(2) = q*cos(phi) - r*sin(phi);
xdot(3) = q*sin(phi)*sec(theta) + r*cos(phi)*sec(theta);
xp = xhat + xdot*dt;
%------------------------------
function yp = hx(x)
%
%
yp(1) = x(1);
yp(2) = x(2);
Matlab科研辅导帮
- 粉丝: 3w+
- 资源: 7814
最新资源
- 激光打标止挡升降一体化流水线体sw17全套技术资料100%好用.zip
- 圣诞老人插画,请收藏之
- 发动机最优油耗曲线绘制MATLAB程序
- IMG_20241227_135342.jpg
- IMG_20241227_135318.jpg
- 夹持输送激光打标设备sw18可编辑全套技术资料100%好用.zip
- 基于web的农业信息管理系统设计与实现
- python demo 数据库联动
- Windows 10系统NH82580EB以太网控制器网络冗余设置教程
- 采用拉丁超立方采样的电力系统概率潮流计算 (自适应核密度估计,自适应带宽核密度估计) 拉丁超立方采样属于分层采样,是一种有效的用采样值反映随机变量的整体分布的方法 其目的是要保证所有的采样区域都能够
- pyth 展示简单页面 展示注册页面 比如 注册信息,用户名,密码,邮件,等信息
- 基于MATLAB和机器学习(向量机)的裂缝检测(识别)系统程序,带GUI界面,对裂缝主要参数(长度,宽度,面积)进行计算,已经训练好分类器,包含裂缝图像训练集和测试集,可以完美运行(带注释),结果可保
- 二分香农(范诺编码)-MATLAB实现
- visual basic 6.0教程、visual basic从入门到精通、visual basic从入门到实践【教程+VB简版】
- html+css+js网页设计 美食 美拾9个页面
- pdf便携文档编辑软件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈