目录
- avperrset是设置avp误差的函数
- 使用方法
- 函数源代码
- 源代码解析
avperrset是设置avp误差的函数
输入为角度误差、速度误差、位置误差。
输出也是角度误差、速度误差、位置误差。
看起来输入和输出都一样,为什么还要这个函数呢?
那是因为这个函数可以进行维度和数据单位的转换。
使用方法
作者在例程中给出的代码如下:
davp0 = avperrset([0.5;-0.5;20], 0.1, [1;1;3]);
函数输入量中:
- [0.5;-0.5;20]是角度误差
- 0.1是速度误差
- [1;1;3]是位置误差
输出的davp为一个9维的列向量,如下:
这里就涉及到前面说的维度转换和单位转换了:
- 速度误差值输入了0.1这一个值,此函数在检测到以后,将0.1视为三轴的共同误差,所以davp中4~6列都是0.1
- 位置误差输入的是1,1,3,但前面两个1是指位置误差为1米,avperrset将其换算成经纬度以后,赋值给davp的第七行和第八行了
函数源代码
源码很短,如下:
function avperr = avperrset(phi, dvn, dpos)
% avp errors setting.
%
% Prototype: avperr = avperrset(phi, dvn, dpos)
% Inputs: phi - platform misalignment angles. all in arcmin
% dvn - velocity errors in m/s
% dpos - position errors dpos=[dlat;dlon;dhgt], all in m
% Output: avperr = [phi; dvn; dpos]
%
% See also poserrset, vperrset, avpadderr, imuerrset, avpset, insupdate, avperrstd.
% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 08/03/2014
global glv
avperr = [rep3(phi)*glv.min; vperrset(dvn,dpos)];
源代码解析
上述代码中,只是将角度误差进行处理了,速度误差和位置误差交给了vperrset(字面意思为速度位置的误差设置),再来看一下
v
p
e
r
r
s
e
t
vperrset
vperrset:
这里面对速度误差dvn进行维度检测,如果不足3维,则自动不全。
对于位置误差,又给poserrset这个函数来算:
p
o
s
e
r
r
s
e
t
poserrset
poserrset这个函数在检测维度的同时,还在第18行进行了米
→
\rightarrow
→经纬度的换算。