万向锁与欧拉角
附赠自动驾驶学习资料和量产经验:链接
前言
上一篇中我们讲了欧拉角与旋转变化,最后留了一个悬念,就是欧拉角在俯仰角为±90°时会出现万向锁现象,这是欧拉角表征飞行器姿态的一个局限性,今天我们就来谈谈这个局限性是怎么产生的,以及如何解决这个问题。
陀螺仪
为了能够清晰得看到欧拉旋转产生的万向锁现象,我们来观察一个三轴的万向节装置,它也是一个陀螺仪:
大家可以看到中间是一根竖轴穿过一个盘子,而盘子处于高速旋转状态,是陀螺的转子,根据陀螺的定轴性,竖轴也就是陀螺的自转轴在惯性空间内的方向保持不变。在这里我们要说明一点,我们拿陀螺仪出来说明欧拉角的万向锁现象不是因为我们飞机上用的陀螺仪就是这个样子,而是欧拉角中的欧拉旋转与我们陀螺仪的这个旋转状态是一样的,我们拿陀螺仪来解释万向锁产生的原因,而我们之所以称呼它为万向锁,也是因为这是三轴万向节装置中会出现的现象。
接下来我们先来看看这个陀螺仪的旋转状态。我们把飞行器放到陀螺仪旁边进行对比。首先,我们先来解释一下上面那个旋转的陀螺仪的三个环是怎么旋转的,每一个环都连有一根或者两根轴,这根轴就是每个环的旋转轴,我们可以看到最外面那个环旋转不会影响里面两个环的位置,中间那个环的旋转不会影响最里面那个环的位置,但是最外面的那个环会跟着动,而最里面那个环旋转会影响到外面两个环的位置,这种现象跟我们上一次讲欧拉旋转里的三次旋转是一样的,这也是我们拿陀螺仪来解释欧拉角万向锁现象的原因。
万向锁
我们先来看一下最外侧那个环的旋转情况,我们上次采用的是ZYX的顺序进行旋转,所以最外面那个环对应的就是绕X轴的旋转,对应的是飞行器的滚转运动:
俯仰运动:
偏航运动:
但是如果我们的飞机俯仰角到达±90°时,你会发现此时绿色代表的滚转运动和蓝色代表的偏航运动他们的旋转轴重合了,这时候你必须要改变最里面自转轴的角度才能够达到你需要的空间位置,而这是违背陀螺定轴性规律的,所以下图陀螺仪中运动的那个方向其实是被锁住了的,你在俯仰角达到±90°时就不可能有这个方向的运动,这是因为当你俯仰角达到±90°时,你改变了第三个要旋转的轴的方向,它与你第一次旋转的Z轴重合了,所以在空间中失去了一个自由度:
这就是欧拉角的万向锁现象,为了更好的理解这个现象,我们再用自己的手机做一个试验,你把手机屏幕朝上,手机的长边为X轴,短边为Y轴,Z轴垂直屏幕向下,那你先绕Z轴旋转一下手机,假设旋转30度,然后再把手机绕Y轴旋转90度,也就是把手机长边接触桌面竖立起来,这时候你再绕手机的短边旋转,你会发现手机的长边一直定在桌面上不可能脱离桌面,这就是万向锁现象。
数学解释
最后,再让我们用数据公式来解释一下万向锁现象产生的原因,我们来回顾一下昨天的旋转矩阵:
如果俯仰角为±90°,那么公式就变成了:
这说明你改变φ和ψ的值都是一个效果,而矩阵的第一行和最后一列始终是保持不变,这说明无论你怎么改变φ和ψ,你的旋转轴一直是Z轴不变,要想改变φ和ψ有不同的效果,你只能是去改变θ的值,以上就是用数学方法来解释为什么俯仰角在±90°时欧拉角出现万向锁的过程。