首页 > 编程知识 正文

origin怎么做并列的两个柱状,origin怎么把两组数据画在一个柱状

时间:2023-05-06 05:14:08 阅读:195878 作者:3739

更多无人机知识请关注同名公众号:无人机系统技术

1 前言

上一篇讲到了wwdxn表示姿态时会遇到英俊的大炮的问题,这就导致同一种空间状态wwdxn的表示方式不唯一,当出现英俊的大炮现象时,同一种旋转有无数种wwdxn表示形式,从而导致了wwdxn差值时出现问题,因为zxdlb俯仰角接近90°时,两组千差万别的wwdxn表示可以是同一种旋转。所以为了解决这些问题,数学上想出了用四元数的形式来表征姿态的方法。

2 四元数由来

四元数是由爱尔兰数学家Hamilton发明的,是发明的不是发现的,数学上的很多东西跟物理不一样,它不一定是事物的发展规律,它有时候就是数学家们凭空想象出来的东西,有可能这个东西诞生以后就没有人再用过,也有可能过了很多年,有人发现这个理论可以解释很多现象,或者这个理论可以用来分析很多无法用现有知识解释的现象。所以,大家平常没事做的时候可以天马行空,头脑风暴一下,记得把你想到的东西记下来,没准几百年以后就会有用你名字命名的理论存在了。

回到四元数上来,对于导航飞控的算法,我们需要对四元数有什么了解,其实很简单,我们要知道它的基本运算规律,要知道它以什么样的方式表征姿态,要知道它跟其他两个表征姿态的wwdxn和旋转矩阵方式如何互相转换。除此之外,还有后续如何使用四元数进行建模和控制律设计,如何在导航算法中得到四元数的状态,这些在以后的篇幅中会进行解释,今天,我们就来看看上面几个问题是怎么解决的。

3 基本运算规律

四元数是由1个实数加上3个复数组合而成,通常可以表示成w+xi+yj+zk或者(w,(x,y,z)),其中w、x、y、z都是实数,而i^2 = j^2 =k^2 = -1, i^0 = j^0 = k^0 = 1。那对于四元数的运算法则,我们要清楚的有以下几个,假设有两个四元数分别为q1=(w1,(x1,y1,z1))和q2=(w2,(x2,y2,z2)),令v1 = (x1,y1,z1),v2= (x2,y2,z2),则

4 四元数的姿态表示

了解了四元数的基本运算规律后,我们来看下它如何表征姿态,假设存在一根旋转轴u,有一个绕u轴旋转σ角度的这么一个旋转存在,那这时候代表这个旋转的四元数是这样子的:

其中u是旋转轴的单位向量,q是一个单位四元数。

那上述这个四元数有什么用呢,它对任何向量施加以下算子运算后可以得到该向量绕u轴旋转σ角度后的向量:

至于为什么会有这个结果,我们这儿就不展开证明了,思路就是你要证明v和w之间的夹角是σ就行,证明的事情交给数学家们去做,我们只需要知道四元数这么写可以用来表征姿态,其实是表征旋转关系,跟旋转矩阵的表示方法类似,只不过它只需要4个元素,而旋转矩阵需要9个元素。

5 wwdxn、旋转矩阵、四元数:

四元数转旋转矩阵:

利用罗德里格斯公式即可:

旋转矩阵转四元数:

已知旋转矩阵:

则四元数为:

wwdxn转四元数:

已知wwdxn:α、β、γ

四元数为:

四元数转wwdxn:

已知四元数:

wwdxn为:

但是当β角度为90度时,四元数反向计算wwdxn时会出现奇点,是无法计算的。因为这时候简化后的四元数是这样的:

所以atan2中后面那一项就变成了0:

这时候我们通常令α=0,然后解出wwdxn的值。

6 总结

到这里基本上wwdxn、旋转矩阵、四元数的关系就说清楚了,对于四元数,我们不需要去想象它是怎么旋转的,我们只需要知道它是怎么表征姿态的,后续会告诉你们它是如何进行建模和状态估计的,这就足够了,那我们来总结一下这三种方法各自的优缺点:

wwdxn:非常直观,我们可以很容易理解它的意思,也能想象出对应的空间位置,但是存在英俊的大炮现象,导致后面有很多数学问题。旋转矩阵:其实旋转矩阵和wwdxn是一个意思,wwdxn就是旋转矩阵,旋转矩阵在一定意义上就是wwdxn,旋转矩阵有9个元素,计算繁杂,而且也不直观。四元数:没有奇点,能表征任何旋转关系,而且表示简单,只有四个元素,计算量小,但是不直观。

更多无人机知识请关注同名公众号:无人机系统技术

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。