组合导航原理(三)——使用四元素进行姿态更新
等效旋转矢量
说明 :
(1)μ是单位向量;
(2)旋转方向,就是使用【右手】握住μ,拇指与μ同向,其余4个手指与旋转方向同向(见角度那个箭头);
目的:求得r,绕μ旋转Φ角后,得到r',【r'】为所求;
必要的知识:
(1)点积: r • μ = || r || * || μ || * cos<r,μ>,结果是一个【值】。此处 μ是单位向量,r • μ 表示 r 投影在 μ上的长度。
(2)r// = (r • μ)*μ,表示μ乘以一个长度,是一个【向量】。此处表示:r在μ方向上的分量,。
(3)叉积: μ x r ,结果是一个【向量】。表示,4个手指与μ方向同向,握向r,结果向量与大拇指方向相同,长度是μ与r围成的四边形面积,因为μ是单位向量,所以面积大小等于r的长度。
结果:
(1) r' = r'// + r'⊥
(2),r'⊥ = O'A'
理解:
(1)以O'B为Y轴,以O'A为X轴,得到A'的坐标 ( || r'⊥|| cosΦ ,|| r'⊥|| sinΦ),现在|| r'⊥|| 是未知的,假设已知,后面会消掉。
(2) O‘A / || O‘A ||,相当于将 O’A变回单位向量,然后 O‘A / || O‘A || * || r'⊥|| cosΦ 等于 【r'⊥ 在O‘A 方向上的分量】
(3)又 || O‘A || = || r'⊥|| , 因此: 【r'⊥ 在O‘A 方向上的分量】 = O‘A * cosΦ
(4)同理: 【r'⊥ 在O‘B 方向上的分量】 = O‘B * sinΦ
(5)r'⊥ = O'A' = 【r'⊥ 在O‘A 方向上的分量】 + 【r'⊥ 在O‘B 方向上的分量】 = O‘A * cosΦ + O‘B * sinΦ
写成矩阵的形式:
说明: μ x 可以表示一个μ的【反对称矩阵】,μ x r,可以表示:向量μ “叉积” 向量r、反对称矩阵(μ x)“乘以” 向量r
有了上面知识后,那么使用【欧拉角】表示的【旋转矩阵】也可以写成:
Cib = I +sinΦ(μx) + (1-cosΦ)(μx)²
四元素的基本知识
复数:
1. z = a + bi, i² = -1
2. 复数相乘,有变换的效果:比如 :z1 = cosθ + sinθ i, z2 = 1 + 1 i
z3 = z1* z2 = ( a * conθ - b* sinθ ) + ( b *conθ + a * sinθ) i
如果展点到【实轴】、【虚轴】上,会发现 z1使得z2旋转了θ度。
这里,可以将z1视为一种变换,z2视为被变换的对象。
四元素:
1. Q = q0 + qv = q0 + q1i + q2j + q3k ; q0是实部;
2. 四元素就是数学家想出来的东西,刚开始看不一定有几何意义。数学家通过加入一些规则,看看运算后有什么有趣结果而已,刚好在姿态更新上可以用得着。
规则:
(1)i² = j² = k² = -1
(2)i * j = k ,j * i = - k
(3)j * k = i ,k * j = - i
(4)k * i = j ,i * k = - j
助记:
(使用叉积运算规则,但和叉积不是同一会事,只是助记而已)
3. 四元素之间的运算,资料很丰富。特别需要提及四元素乘法。
四元素乘法:
1. 直接相乘
这个没什么特别,按照普通复数的规则 + 上(1)(2)(3)(4)个规则即可。
2. 以矩阵形式表达
最后结果,是一个【列向量】,第一个元素是实部。
【四元素】与【方向余弦矩阵】
(三个欧拉角旋转,等效一个旋转向量μ + 转角Φ)
Cib = I +sinΦ(μx) + (1-cosΦ)(μx)²
进行变换:
令:
Qib = q0 + qv
实部:q0 = cos(Φ/2)
虚部:qv = μsin(Φ/2)
说明:
1. μ 是 i 系下的旋转向量(轴)。
2. Φ 是等效旋转角。
3. || Qib || = 1, μ 是单位向量。又四元素的逆定义:Q-1 = Q* / || Q|| 。Q*是共轭的意思,虚部符号取反。
4. i系(坐标基)以μ为轴,旋转Φ得到b系(坐标基)
假设:
(1) 向量r在i系的【坐标投影】ri = [rix,riy,riz]T
(2) 向量r在b系的【坐标投影】rb = [rbx,rby,rbz]T
说明:
(1)Qbi = (Qib)*,共轭,和普通复数那样,只需要将虚部符号取反。
(2)Qib 是由Cib 用到的四元素,是b系变换为i系。而其共轭是由i系转换为b系用到的四元素,比较有意思。
【四元素链式法则】
qAB : 表示由B系转到A系用到得四元素。
VB:向量V在VB系得投影
其中μ在A\B系下的投影坐标是一样的,因为它是不动的。
【四元素微分】与【角速度】
根据四元素的链式法则:
qRb(t+Δt) 表示b在 t + Δt时,相参考坐标系转换用到得四元素。
qRb(t+Δt) = qRb(t) • qb(t)b(t+Δt)
ΔqRb = qRb(t+Δt) - qRb(t) = qRb(t) • qb(t)b(t+Δt) - qRb(t)
= qRb(t) • (qb(t)b(t+Δt) - q1)
q1 = [1,0,0,0]T
假设有旋转向量Δθ,||Δθ|| 是旋转的角度
必须注意:
(1)||Δθ|| 是一个值,不是向量,||Δθ|| ≠ [ Δθx, Δθy, Δθz]T
( Δθ / ||Δθ|| 相当于向量单位化了)
当 ||Δθ|| 很小时:
(1)cos(||Δθ||/2) = 1
(2)sin ( ||Δθ|| /2) = ||Δθ|| /2
那么有:
qb(t)b(t+Δt) = [ 1, 1 / 2 Δθ ] (时刻记住Δθ 是旋转向量,不能确定可不可以等同于陀螺输出)
ΔqRb = qRb(t) • (qb(t)b(t+Δt) - q1)
= qRb(t) • [ 0 , 1 / 2 Δθ ]
= 1 / 2 qRb(t) • [ 0 , Δθ ]
[qRb]' = lim [qRb(t+Δt) - qRb(t) ] / Δt
= ΔqRb / Δt
= 1 / 2 qRb(t) • [ 0 , (Δθ)' ]
注意:
(1)时刻记住Δθ 是旋转向量,不是陀螺输出
(2)(Δθ)' 是旋转向量的变化速度,能不能等同于陀螺的角速度,还是不能确定!!
旋转向量的变化速度:
(1)Δθ 是旋转轴,在 t 和 t + Δt 时的 两个 b系,其投影坐标分量都是一样的。
(2)假设 Δθ 在b系的投影坐标 = [ Δθx, Δθy, Δθz ] T ( 能不能等同于陀螺的输出,还是不能确定!!)
(3)(Δθ)' = [ (Δθx)', (Δθy)', (Δθz)' ] T = [ ωbRb,x , ωbRb,y , ωbRb,z]T
(旋转向量的变化速度,能不能等同于陀螺的角速度,还是不能确定!!)
[qRb]' = 1 / 2 qRb(t) • [ 0 , (Δθ)' ] = 1 / 2 W qRb
角速度与方向余弦矩阵的关系
四元素与角速度的关系:《捷联惯导算法与组合导航原理》P22有推导过程
说明:ωiib 在这里也要写成四元素形式,实部为0
ωiib = ubib Φ’ + ( ubib)' sinΦ - uiib X( ubib)' (1- cosΦ) 怎么来的??
(猜测:由方向余弦矩阵和四元素求导,进行对比,找到相似的地方推出来的)
使用四元素进行姿态更新
摘抄自书本,可以证实几点:
(1)Δθ 是旋转向量,其||Δθ || 就是由 k -1时刻,到k时刻转过的角度
(2)Δθ = [ Δθx, Δθy, Δθz ] T = ∫ ωbib(t) dt , 就是陀螺的输出角增量。
(3)[k -1, k] 时间内,旋转向量的分量,就是三轴陀螺的输出角的增量!其长度就是旋转角度,其微分就是陀螺三轴角速度!(有点难想象)
(4)对Δθ求导,得到 (Δθ)' = [ (Δθx)', (Δθy)', (Δθz)' ] T = [ ωbib,x , ωbib,y , ωbib,z]T
(5)最后不要忘记了,将b系测到的坐标,转到i系下, Vi = qibVbqib*
旋转向量的分量 vs 三轴陀螺的输出角的增量
首先有旋转向量Δθ,||Δθ|| 为旋转角度。
由方向余弦矩阵与【旋转向量】之间的关系:
C = I + sinΦ*μX + (1-cosΦ)(μX)²
假设μ为旋转向量,是【单位向量】,旋转角度为Φ
那么当Φ接近0时(必要条件),有:
C = I + Φ *μX
同时,使用 陀螺三轴输出,当作欧拉角进行旋转,又有:
Cb(t)b(t+Δt) =I + [ΔΦ,Δθ,Δψ]T X= I + [ Δθx,Δθy,Δθz]T X
C = I + Φ *μX = I + (Φ *μ) X
因此:[ Δθx,Δθy,Δθz]T X = Φ *μX
Φ *μ = Δθ
因此:
(1)在绕旋转单位向量μ,旋转小角度Φ, [ Δθx,Δθy,Δθz]T 也是小值的时候
Φ*μ = Δθ。
(2)换句话说,Δθ = [ Δθx,Δθy,Δθz]T 是旋转向量 μ,模长为Φ = ||Δθ|| 。
(3) Φ = ||Δθ|| ,Φ就是绕μ旋转的角度。
因此:
qb(t)b(t+Δt) = [ cos(||Δθ||/2), Δθ / ||Δθ|| * sin ( ||Δθ|| /2) ]
qb(t)b(t+Δt) 的Δθ = [ Δθx,Δθy,Δθz]T就是陀螺的输出