坐标系是如何旋转的:
首先建立一个三维坐标系。从三维坐标系指向方向(XYZ轴中任意一轴)向坐标系原点(O)看去。逆时针旋转该轴为转动一个正角度、顺时针旋转该轴为转动一个负角度。
如下图
左上角是旋转前的坐标系,当把坐标系以x轴为轴心旋转90°,就得到左下角的坐标系。
当把坐标系以x轴为轴心旋转 -90°,就得到右上角的坐标系;
坐标中的一个点,假设以x轴顺时针旋转90°,就相当于该点不动,整个坐标系的x轴逆时针旋转90°;
仍以上图为例,假设原坐标系下存在点 a(0,1,0);
若点a沿着x轴顺时针旋转90°,就相当于坐标系的x轴旋转90°时(x轴逆时针旋转90°),点a的坐标变为(0,0,-1);
若点a沿着x轴逆时针旋转90°,就相当于坐标系的x轴旋转-90°时(x轴顺时针旋转90°),点a的坐标变为(0,0,1);
空间中一个点a,变换到另一个点b,都可以看作整个坐标系平移,然后绕XYZ轴旋转后得到;这里我们只考虑a的模|a|不变的情况,那么只考虑坐标系旋转;坐标系变换在导航以及伺服天线跟踪方面的应用很多;
三个轴的旋转矩阵
仍然以上图为例,点a坐标(0,1,0);
若点a沿着x轴顺时针旋转90°,就相当于坐标系的x轴旋转90°时(x轴逆时针旋转90°),点a的坐标变为(0,0,-1);则用公式表示这一过程则为:
若点a沿着x轴逆时针旋转90°,就相当于坐标系的x轴旋转-90°时(x轴顺时针旋转90°),点a的坐标变为(0,0,1); 则用公式表示这一过程则为:
应用情况说明:
假设载体上装备一个天线,指向固定方向;如下图所示:
只有当天线直线为1中的指向角时,天线才能接收到信号;当我们的载体发生转动时,载体相对于大地坐标系发生转动,若天线和载体之间保持静止,天线相对于大地坐标系也发生了转动,则此时天线的绝对指向发生了变化,天线接收不到信号;如2;
当载体发生转动时,天线相对于载体发生转动,载体相对于大地坐标系是静止的;此时天线的绝对指向未发生变化;天线仍可以接收到信号;
其中天线相对于载体发生转动,这段文字加粗,这部分就是我们所需要求算的;因为很多应用场景,都是以载体来进行坐标系的标定的;
假设一个空间直角坐标系(相当于载体)以及空间中一点(点和原点形成向量,代表天线指向)。若我们将坐标系和点整体进行转动,虽然向量相对于该坐标系没有变化,但是绝对向量发生了变化,相当于上图中的2;
若我们只将坐标系进行转动,则绝对向量不变,相当于上图中的3;天线指向未变;
一个点的坐标就代表一个空间向量;假设点为Vold,旋转后的为Vnew
刚才我们计算单轴旋转时计算过:
我们在求解时需要用到惯导,惯导可以输出俯仰角 FY,偏航角PH以及横滚角HG(直接来简单粗暴的简写);代表三个轴的旋转角度,则:
其中需要注意两点;
第一:矩阵相乘的顺序,这是由惯导决定的,一般我们使用的惯导都是东北天惯导;
欧拉角的旋转顺序为 偏航(Z)俯仰(X)横滚(Y),因而矩阵的相乘顺序如上
第二:惯导输出的偏航角需要加 负号 带入矩阵计算;这是由于输出的数据正负的方向标定方式所导致的。
不带负号也是可以;网上还有欧拉角旋转矩阵;Rx(俯仰)Ry(横滚)和上面的坐标轴旋转矩阵相同,Rz如下: