4 SINS编排
4.1 速度更新
v
k
n
=
v
k
−
1
n
+
△
v
f
,
k
n
+
△
v
g
/
c
o
r
,
k
n
v_{k}^{n}=v_{k-1}^{n}+\triangle v_{f,k}^{n}+\triangle v_{g/cor,k}^{n}
vkn=vk−1n+△vf,kn+△vg/cor,kn
- 计算
△
v
f
,
k
n
\triangle v_{f,k}^{n}
△vf,kn:
△ v f , k b ( k − 1 ) = △ v f , k b + 1 2 △ θ k × △ v f , k b + 1 12 ( △ θ k − 1 × △ v f , k b + △ v f , k − 1 b × △ θ k ) \triangle v_{f,k}^{b(k-1)}=\triangle v_{f,k}^{b}+\frac{1}{2}\triangle\theta_{k}\times\triangle v_{f,k}^{b}+\frac{1}{12}(\triangle\theta_{k-1}\times\triangle v_{f,k}^{b}+\triangle v_{f,k-1}^{b}\times\triangle\theta_{k}) △vf,kb(k−1)=△vf,kb+21△θk×△vf,kb+121(△θk−1×△vf,kb+△vf,k−1b×△θk) △ v f , k n = [ I − ( 0.5 ζ k × ) ] C b ( k − 1 ) n ( k − 1 ) △ v f , k b ( k − 1 ) \triangle v_{f,k}^{n}=[I-(0.5\zeta_k\times)]C_{b(k-1)}^{n(k-1)}\triangle v_{f,k}^{b(k-1)} △vf,kn=[I−(0.5ζk×)]Cb(k−1)n(k−1)△vf,kb(k−1) 使用中点时刻的速度和位置信息 更新 ω i n n \omega_{in}^{n} ωinn,得到 0.5 ζ k \zeta_k ζk:
ζ k = [ ω i e n + ω e n n ] k − 1 / 2 △ t k \zeta_{k} = [\omega_{ie}^n+\omega_{en}^{n}]_{k-1/2}\triangle t_k ζk=[ωien+ωenn]k−1/2△tk其中 ζ k \zeta_{k} ζk为坐标框架 n ( k ) n(k) n(k)相对 n ( k − 1 ) n(k-1) n(k−1)的旋转向量; k − 1 / 2 k-1/2 k−1/2表示区间 [ t k − 1 , t k ] [t_{k-1}, t_k] [tk−1,tk]中值;时刻 t k t_k tk的位置和速度未知,为了计算中点时刻的速度和位置,对其进行外推:
高程外推
: h k − 1 / 2 = h k − 1 − v D , k − 1 △ t k 2 h_{k-1/2} = h_{k-1} -\frac{v_{D,k-1}\triangle t_k}{2} hk−1/2=hk−1−2vD,k−1△tk
经纬度外推
可以通过如下方求得: q n ( k − 1 / 2 ) e ( k − 1 / 2 ) = q e ( k − 1 ) e ( k − 1 / 2 ) ∗ q n ( k − 1 ) e ( k − 1 ) ∗ q n ( k − 1 / 2 ) n ( k − 1 ) q_{n(k-1/2)}^{e(k-1/2)} =q_{e(k-1)}^{e(k-1/2)} \ast q_{n(k-1)}^{e(k-1)} \ast q_{n(k-1/2)}^{n(k-1)} qn(k−1/2)e(k−1/2)=qe(k−1)e(k−1/2)∗qn(k−1)e(k−1)∗qn(k−1/2)n(k−1)其中,
q n ( k − 1 / 2 ) n ( k − 1 ) = [ c o s ∣ 0.5 ζ k − 1 / 2 ∣ − s i n ∣ 0.5 ζ k − 1 / 2 ∣ 0.5 ζ k − 1 / 2 0.5 ζ k − 1 / 2 ] q e ( k − 1 ) e ( k − 1 / 2 ) = [ c o s ∣ 0.5 ϵ k − 1 / 2 ∣ − s i n ∣ 0.5 ϵ k − 1 / 2 ∣ 0.5 ϵ k − 1 / 2 0.5 ϵ k − 1 / 2 ] q_{n(k-1/2)}^{n(k-1)}=\begin{bmatrix} cos|0.5\zeta_{k-1/2}| \\ -\frac{sin|0.5\zeta_{k-1/2}|}{0.5\zeta_{k-1/2}}0.5\zeta_{k-1/2}\end{bmatrix}\\ q_{e(k-1)}^{e(k-1/2)} = \begin{bmatrix} cos|0.5\epsilon_{k-1/2}| \\ -\frac{sin|0.5\epsilon_{k-1/2}|}{0.5\epsilon_{k-1/2}}0.5\epsilon_{k-1/2}\end{bmatrix} qn(k−1/2)n(k−1)=[cos∣0.5ζk−1/2∣−0.5ζk−1/2sin∣0.5ζk−1/2∣0.5ζk−1/2]qe(k−1)e(k−1/2)=[cos∣0.5ϵk−1/2∣−0.5ϵk−1/2sin∣0.5ϵk−1/2∣0.5ϵk−1/2] 则 ζ k − 1 / 2 = [ ω i e n + ω e n n ] k − 1 △ t k 2 \zeta_{k-1/2} = [\omega_{ie}^n+\omega_{en}^{n}]_{k-1}\frac{\triangle t_k}{2} ζk−1/2=[ωien+ωenn]k−12△tk和 ϵ k − 1 / 2 = ω i e e △ t k 2 \epsilon_{k-1/2} =\omega_{ie}^{e}\frac{\triangle t_k}{2} ϵk−1/2=ωiee2△tk。最后单位化四元数 q n ( k − 1 / 2 ) e ( k − 1 / 2 ) q_{n(k-1/2)}^{e(k-1/2)} qn(k−1/2)e(k−1/2)并得到对应的方向余弦矩阵,根据方向余弦矩阵求得此刻的经纬度值。
速度外推
v k − 1 / 2 n = v k − 1 n + △ v k − 1 n 2 v_{k-1/2}^{n}=v_{k-1}^{n}+\frac{\triangle v_{k-1}^{n}}{2} vk−1/2n=vk−1n+2△vk−1n - 计算
△
v
g
/
c
o
r
,
k
n
\triangle v_{g/cor,k}^{n}
△vg/cor,kn:
△ v g / c o r , k n = [ g n − ( 2 ω i e n + ω e n n ) × v n ] k − 1 / 2 △ t k \triangle v_{g/cor,k}^{n}=[g^n-(2\omega_{ie}^{n}+\omega_{en}^{n})\times v^n]_{k-1/2}\triangle t_k △vg/cor,kn=[gn−(2ωien+ωenn)×vn]k−1/2△tk:
4.2 位置更新
n系到e系的四元数
q
n
e
q_{n}^{e}
qne包含经纬度信息,四元数更新如下:
q
n
(
k
)
e
(
k
)
=
q
e
(
k
−
1
)
e
(
k
)
⋅
q
n
(
k
−
1
)
e
(
k
−
1
)
⋅
q
n
(
k
)
n
(
k
−
1
)
q_{n(k)}^{e(k)} = q_{e(k-1)}^{e(k)} \cdot q_{n(k-1)}^{e(k-1)} \cdot q_{n(k)}^{n(k-1)}
qn(k)e(k)=qe(k−1)e(k)⋅qn(k−1)e(k−1)⋅qn(k)n(k−1)其中,
q
n
(
k
)
n
(
k
−
1
)
=
[
c
o
s
∣
0.5
ζ
k
∣
−
s
i
n
∣
0.5
ζ
k
∣
0.5
ζ
k
0.5
ζ
k
]
q
e
(
k
−
1
)
e
(
k
)
=
[
c
o
s
∣
0.5
ϵ
k
∣
−
s
i
n
∣
0.5
ϵ
k
∣
0.5
ϵ
k
0.5
ϵ
k
]
q_{n(k)}^{n(k-1)}=\begin{bmatrix} cos|0.5\zeta_{k}| \\ -\frac{sin|0.5\zeta_{k}|}{0.5\zeta_{k}}0.5\zeta_{k}\end{bmatrix}\\ q_{e(k-1)}^{e(k)} = \begin{bmatrix} cos|0.5\epsilon_{k}| \\ -\frac{sin|0.5\epsilon_{k}|}{0.5\epsilon_{k}}0.5\epsilon_{k}\end{bmatrix}
qn(k)n(k−1)=[cos∣0.5ζk∣−0.5ζksin∣0.5ζk∣0.5ζk]qe(k−1)e(k)=[cos∣0.5ϵk∣−0.5ϵksin∣0.5ϵk∣0.5ϵk]则
ϵ
k
=
ω
i
e
e
△
t
k
\epsilon_{k} =\omega_{ie}^{e}\triangle t_k
ϵk=ωiee△tk:表示e(k)相对于e(k-1)的旋转向量。
ζ
k
−
1
/
2
=
[
ω
i
e
n
+
ω
e
n
n
]
k
−
1
△
t
k
2
\zeta_{k-1/2} = [\omega_{ie}^n+\omega_{en}^{n}]_{k-1}\frac{\triangle t_k}{2}
ζk−1/2=[ωien+ωenn]k−12△tk:这个量的计算需要位置和速度信息,首先根据更新后的速度,再次更新中点时刻的速度
v
k
−
1
/
2
n
=
1
2
(
v
k
n
+
v
k
−
1
n
)
v_{k-1/2}^{n}=\frac{1}{2}(v_{k}^{n}+v_{k-1}^{n})
vk−1/2n=21(vkn+vk−1n)
经纬度外推
单位化四元数
q
n
(
k
)
e
(
k
)
q_{n(k)}^{e(k)}
qn(k)e(k)并得到对应的方向余弦矩阵,根据方向余弦矩阵求得此刻的经纬度值。
高程外推
h
k
=
h
k
−
1
−
v
D
,
k
−
1
/
2
△
t
k
h_{k} = h_{k-1} -v_{D,k-1/2}\triangle t_k
hk=hk−1−vD,k−1/2△tk
4.3 姿态更新
b系到n系的姿态
q
b
n
q_{b}^{n}
qbn更新算法:
q
b
(
k
)
n
(
k
)
=
q
n
(
k
−
1
)
n
(
k
)
⋅
q
b
(
k
−
1
)
n
(
k
−
1
)
⋅
q
b
(
k
)
b
(
k
−
1
)
q_{b(k)}^{n(k)} = q_{n(k-1)}^{n(k)}\cdot q_{b(k-1)}^{n(k-1)}\cdot q_{b(k)}^{b(k-1)}
qb(k)n(k)=qn(k−1)n(k)⋅qb(k−1)n(k−1)⋅qb(k)b(k−1)
b系四元数
q
b
(
k
)
b
(
k
−
1
)
q_{b(k)}^{b(k-1)}
qb(k)b(k−1)更新如下:
q
b
(
k
)
b
(
k
−
1
)
=
[
c
o
s
∣
0.5
ϕ
k
∣
−
s
i
n
∣
0.5
ϕ
k
∣
0.5
ϕ
k
0.5
ϕ
k
]
q_{b(k)}^{b(k-1)}=\begin{bmatrix} cos|0.5\phi_{k}| \\ -\frac{sin|0.5\phi_{k}|}{0.5\phi_{k}}0.5\phi_{k}\end{bmatrix}
qb(k)b(k−1)=[cos∣0.5ϕk∣−0.5ϕksin∣0.5ϕk∣0.5ϕk]b系的旋转向量计算方法为:
ϕ
k
=
△
θ
k
+
1
12
△
θ
k
−
1
×
△
θ
k
\phi_k=\triangle \theta_k+\frac{1}{12}\triangle \theta_{k-1}\times\triangle\theta_k
ϕk=△θk+121△θk−1×△θk
n系四元数
q
n
(
k
−
1
)
n
(
k
)
q_{n(k-1)}^{n(k)}
qn(k−1)n(k)更新如下:
q
n
(
k
−
1
)
n
(
k
)
=
[
c
o
s
∣
0.5
ζ
k
∣
−
s
i
n
∣
0.5
ζ
k
∣
0.5
ζ
k
0.5
ζ
k
]
q_{n(k-1)}^{n(k)}=\begin{bmatrix} cos|0.5\zeta_{k}| \\ -\frac{sin|0.5\zeta_{k}|}{0.5\zeta_{k}}0.5\zeta_{k}\end{bmatrix}
qn(k−1)n(k)=[cos∣0.5ζk∣−0.5ζksin∣0.5ζk∣0.5ζk]基于上边更新的位置信息,更新中点的位置,进一步更新
ζ
k
\zeta_{k}
ζk。
最后,单位化四元数
q
b
(
k
)
n
(
k
)
q_{b(k)}^{n(k)}
qb(k)n(k),并得到对应的方向余弦矩阵,再有方向余弦阵计算欧拉角
X k / k − 1 = F k / k − 1 ∗ X k − 1 \begin{aligned} \mathbf{X_{k/k-1}} = \mathbf{F_{k/k-1}} * \mathbf{X_{k-1}} \end{aligned} Xk/k−1=Fk/k−1∗Xk−1
P k / k − 1 = F k / k − 1 ∗ P k − 1 ∗ F k / k − 1 T + 0.5 ∗ ( F k / k − 1 ∗ G k / k − 1 ∗ Q k − 1 G k / k − 1 T ∗ F k / k − 1 T + G k / k − 1 ∗ Q k − 1 ∗ G k / k − 1 T ) ∗ Δ t k \begin{aligned} \mathbf{P_{k/k-1}} &= \mathbf{F_{k/k-1}} * \mathbf{P_{k-1}} * \mathbf{F_{k/k-1}^T}+ 0.5 * (\mathbf{F_{k/k-1}} * \mathbf{G_{k/k-1}} * \mathbf{Q_{k-1}}\mathbf{G_{k/k-1}^T} \\ &* \mathbf{F_{k/k-1}^T} +\mathbf{G_{k/k-1}} * \mathbf{Q_{k-1}} * \mathbf{G_{k/k-1}^T}) * \Delta t_{k} \end{aligned} Pk/k−1=Fk/k−1∗Pk−1∗Fk/k−1T+0.5∗(Fk/k−1∗Gk/k−1∗Qk−1Gk/k−1T∗Fk/k−1T+Gk/k−1∗Qk−1∗Gk/k−1T)∗Δtk