【飞控算法】四旋翼飞行器控制原理与设计入门

从动力学建模和几个四旋翼核心算法角度分析半自主飞控系统的建立,即实现传统四旋翼的姿态控制和高度控制的过程,文章主要借鉴了北航多旋翼设计课程、正点原子minifly微型四旋翼的资料、《四旋翼无人飞行器设计》清华出版社,代码示例来自正点原子。但是吧,后两个资料在理论部分都有点东拼西凑的感觉,有些错误,看起来很伤…总之,本文多处为个人理解,如有错误,感谢指出。

目录

一、相关理论知识

1.坐标系与欧拉角

2.旋转矩阵

3.四元数及其与欧拉角的关系

二、控制模型建立

1.四旋翼动力学模型

2.简化为控制模型

3.四旋翼控制分配模型

三、控制算法及实现

1.姿态解算

2.串级PID控制

3.控制分配


一、相关理论知识

1.坐标系与欧拉角

进行动力学建模之前首先建立坐标系,在此建立地球坐标系O_{e}-x_{e}y_{e}z_{e}和机体坐标系O_{b}-x_{b}y_{b}z_{b},如图所示,这里地球系z轴方向向下指向地心,机体系x轴为机头方向。

当描述一个三维空间内的刚体转动时,需要选用三个独立的角度来表示刚体的相对位置。即,刚体绕固定点的旋转可以看成是若干次旋转的合成,旋转方法不是唯一的,所以欧拉角有多种取法,不同的取法、不同的转动顺序都会对于不同的旋转矩阵。在研究四旋翼时,为了与四旋翼的滚转、俯仰、偏航相对应,可以取绕x旋转角度为φ(滚转,右滚为正),绕y轴旋转角度为θ(俯仰,仰头为正),绕z轴旋转为ψ(偏航,右偏为正)。

由地球坐标系转到机体坐标系为xyz旋转,又称卡尔丹角。实际上理论分析时,旋转顺序不是很重要,zyx、zxy都可以,虽然最后姿态解算时四元数与欧拉角的关系式不同,但是都可以进行解算。

2.旋转矩阵

绕x轴旋转的旋转矩阵为,

C_{x}(\phi )=\begin{bmatrix} 1 & 0 & 0\\ 0 &cos\phi &sin\phi \\ 0& -sin\phi & cos\phi \end{bmatrix}

绕y轴旋转的旋转矩阵为,

C_{y}(\theta )=\begin{bmatrix} \cos \theta & 0&-\sin \theta \\ 0& 1 &0 \\ \sin \theta & 0 &\cos \theta \end{bmatrix}

绕z轴旋转的旋转矩阵为,

C_{z}(\psi )=\begin{bmatrix} \cos \psi & \sin \psi &0 \\ -\sin \psi &\cos \psi&0 \\ 0& 0 &1 \end{bmatrix}

这样,xyz旋转时,一个向量由地球系的表示转为机体系的表示,可以写成,

\underset{b^{b}}{\rightarrow}=C_{z}( \phi )\cdot C_{y}(\theta )\cdot C_{x}(\phi )\cdot \underset{b^{e}}{\rightarrow}= C_{e}^{b}\cdot \underset{b^{e}}{\rightarrow}

C_{e}^{b}=\begin{bmatrix} \cos\theta \cos \psi &\sin \phi \sin \theta \cos \psi +\cos \phi \sin \psi & -\cos \phi \sin \theta \cos \psi +\sin \phi \sin \psi \\ -\cos \theta \sin \psi & -\sin \phi \sin \theta \sin \psi +\cos \phi \cos \psi & \cos \phi \sin \theta \sin \psi +\sin \phi \cos \psi \\ \sin \theta &- \sin \phi \cos \theta & \cos \phi\cos \theta \end{bmatrix}

由机体系转向地球系的姿态矩阵为,C_{b}^{e}=(C_{e}^{b})^{-1}=(C_{e}^{b})^{T}

{C_{x}(\phi )}^{-1}=C_{x}(-\phi )={C_{x}(\phi )}^{T}

3.四元数及其与欧拉角的关系

关于四元数的详细定义等参见秦永元的《惯性导航》,非常详细,这里不搬了。

以zyx旋转顺序为例,此时其旋转矩阵

  • 43
    点赞
  • 284
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值