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);
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
Matlab科研辅导帮
- 粉丝: 3w+
- 资源: 7820
最新资源
- go支付合集-Go资源
- 无干扰电风扇自然风控制器.zip
- 无线电编码遥控4级调光灯开关.zip
- Simulink十四自由度整车模型:多自由度控制,全面数据输出,与Carsim匹配对比,清晰建模文档详实支持,Simulink十四自由度整车模型:多自由度控制,含Carsim参数对比,全面文档详实介绍
- 基于C#编程语言的“小朱证明机器”设计源码分享
- 基于C#开发的NotesApp记事本设计源码
- 三相PWM整流器MATLAB Simulink实现双环解耦控制与SPWM调制,低THD网侧电流波形实现单位功率并网,负载电压稳定在750V,三相PWM整流器MATLAB Simulink实现双环解耦控
- 基于Vue的软件实训项目设计源码
- 基于Carsim与Simulink联合仿真的分布式驱动车辆状态估计优化 利用PID速度跟踪与ASMO观测轮胎力,采用UKF SRCKF算法估计车辆状态参数 采用Utchol分解法解决Cholesky分
- 基于HarmonyOS的003期班级课程设计源码
- 直流电动机驱动接口电路.zip
- 制作你自己的爬虫机器人.zip
- 鱼塘LED捕蛾灯电路原理图.zip
- 有源滤波电路.zip
- 增益电路.zip
- 增益可自动变换的放大器设计.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)