UWBIns/Code/Matlab/lib/nav_equ_local_tan.m

61 lines
1.5 KiB
Mathematica
Raw Permalink Normal View History

2025-04-16 20:15:33 +08:00
function [p, v, q] = nav_equ_local_tan(p, v, q ,acc, gyr, dt, gN)
%
% p XYZ m
% v XYZ m/s
% q Qb2n姿,
% acc (m/s^2),
% gyr (rad/s)]
% dt dt (s) 0.01s
% gn
old_v = v; %
sf = acc; % Specific Force =
% 姿
q = att_upt(q, gyr, dt); %
% 姿姿
%
sf = qmulv(q, sf); %
sf = sf + gN; %
v = old_v + dt *sf; %
%
p = p + (old_v + v) *dt/2; %
end
%
%
% function x = ch_nav_equ_local_tan(x ,u, dt, gN)
%
% persistent a_old;
% if isempty(a_old)
% a_old= u(1:3);
% end
%
% old_v = x(4:6);
%
% a_new =u(1:3);
% %sf = sf + 0.5*cross(u(4:6)*dt, sf);
%
% % 姿
% gyr = u(4:6);
% q_old = x(7:10);
% x(7:10) = ch_att_upt(x(7:10), gyr, dt);
% q_new = x(7:10);
%
% %
%
% x(4:6) = old_v + ((ch_qmulv(q_new, a_new) + ch_qmulv(q_old, a_old) )/2 + gN) *dt;
%
% %
% x(1:3) = x(1:3) + (old_v + x(4:6)) *dt/2;
% a_old = a_new;
% end
%
%