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
% 
% 
