glvs
ts = 0.1; % sampling interval
T = 1000;
avp0 = avpset([0;0;0], [0;0;0], [30;108;380]);
%avp中的a,根据姿态更新算法,是指当前b系相对于当前n系的姿态,以欧拉角形式表示,则也可理解为当前姿态角(因为姿态角是相对于导航系而言的)
%因此这里将avp0设置为[0;0;0]意味着初始时刻的b系与n系重合
imuerr = imuerrset(0.01, 100, 0.001, 1);
imu = imustatic(avp0, ts, T, imuerr);
% IMU simulation imu就是在avp0下产生的模拟输出(加上零偏和噪声)
davp = avperrset([-0.5;0.5;30], [0.01;0.01;0.01]*0, [1;1;1]*0);
%davp = avperrset([0;0;0], [0.01;0.01;0.01]*0, [1;1;1]*0);
%其中输入的的姿态误差是等效旋转矢量形式,并不是和a保持一致的欧拉角形式
%phi[-0.5;0.5;30] - platform misalignment angles. all in arcmin 等效旋转矢量的形式
avp = avpadderr(avp0, davp);
%输出的姿态是加上姿态误差后的欧拉角形式
%个人对这里加误差的理解是:imu就是avp0处产生的模拟输出,但由于确定初始状态的过程中也会存在误差
%所以我们会认为这个imu的输出是在加完误差后的avp生成的(实际是avp0处生成的),这也符合真实实验的情况
第一遍看直接把设置avp的[0;0;0]当默认略过了,没仔细想
后面对aa2phi中那个为什么和[0;0;0]对比比较迷糊,捋了捋想起来:
avp中的a,根据姿态更新算法,是指当前b系相对于当前n系的姿态,以欧拉角形式表示,也可理解为当前姿态角(因为姿态角是相对于导航系而言的)
因此这里将avp0设置为[0;0;0]意味着初始时刻的b系与n系重合,