初学者四轴飞行器-学习笔记 1

基础知识

写在最前
大二电子专业小白一名,平时闲来无事在学校老师实验室自学,自学过程中发现一些有困扰到自己的地方,所以特来此记录。一是当作自己学习笔记;二是有幸帮助到有和自己遇到相同问题的童鞋,也是一大善事。因个人水平能力有限,错误之处还请及时纠正。

学习原因

一是因为高中时期对四轴飞行器就充满了向往。二是因为全国大学生电子设计竞赛,片面的从学校实验室老师口中得知每年四旋翼的题做的人不是很多,但是入手之后发现里面是很大的坑,既然进了也不想这么轻易的放弃,还是要挣扎以下的。

选择资源(飞控、电机、电调等)

纯小白入门,选择了到手飞套装(无名创新 TI整机到手飞)主控芯片为TI-TM4123G
到手后测试建议(其它品牌适用,到手飞系列)
1.压制住好奇心,新手一定要观看卖家提供视频,我们因为好奇没有观看完整视频就拿到实验室楼下试飞 产生了比较严重的炸机事件(飞机飞到五层楼左右撞墙坠落,导致四个机桨、两个起落架、一个机架、线性稳压电源等全部损坏,现在还处于不能维修状态)。
2.选择空旷场地,低空!!
3.准备好足够的资金(这个比较重要,因为我们现在还处于犹豫状态因为它实在是太太太贵了)。

相关知识准备

单片机知识

一定要有单片机的基础,作者大一下的时候在实验室学学习的是51单片机,让我知道了C语言的重要性,大一寒假的时候学习了C语言的相关课程,并且学校在大一下的时候也开设了C语言课程,并在18年的3月份考取了计算机二级证书(C语言),大一下学习了正点原子的STM32的教程,大二上班学习和下班学期使用STM32单片机做了一些小作品,还算是有一定的积累。
最为重要:C语言(⭐⭐⭐⭐⭐⭐)

其它知识(软件编程类)

滤波算法

四元数欧拉角

飞行器动力学原理

工作原理
以下为X模式

四轴飞行器基本原理是通过飞控控制四个电机旋转带动浆叶产生升力,分别控制每一个电机和浆叶产生不同的升力从而控制飞行器的姿态和位置。 四轴在空中可以实现八种运动,分别为垂直上升、 垂直下降、 向前运动、向后运动、向左运动、向后运动、顺时针改变航向、逆时针改变航向。 下面分别介绍实现的这些动作的原理。
不同的书或者资料可能电机的标号不相同但原理相同(见解,如果后面学习中发现不同会及时修改)
初学者四轴飞行器-学习笔记 1_第1张图片
垂直上升和垂直下降
四轴飞行在空中自稳后, M1、 M2、 M3、 M4 四个电机同时转速增大或同时转速减小,即可发生垂直上升运动或垂直下降运动。
向前运动和向后运动
四轴飞行在空中自稳后, M2、 M3 转速增大 M1、 M4 转速不变或减小即可实现向前运动。 相反, M2、M3 转速减小或不变 M1、 M4 转速增加即可实现向后运动。
** 向左运动和向后运动**
四轴飞行在空中自稳后, M1、 M2 转速增大 M3、 M4 转速不变或减小即可实现向左运动。 相反, M1、 M2 转速减小或不变 M3、 M4 转速增加即可实现向右运动。
顺时针改变航向和逆时针改变航向
四轴飞行在空中自稳后, M1、 M3 转速增大 M2、 M4 转速不变或减小即可实现顺时针改变航向。 相反, M1、 M3 转速减小或不变 M2、 M4 转速增加即可实现逆时针改变航向。


节选自正点原子《ATK-MiniFly 开发指南》

PID

PID控制理论

作者在大一下的时候有片面的学习过单级PID调节,所以了解起来比较容易,只是做了简单的小项目(温度控制),并没有系统的验证过,推荐使用电机转速测试,比较直观。初学者四轴飞行器-学习笔记 1_第2张图片
比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。
比例公式
Kp:比例增益–>根据不同的场景调试
e(t):误差–>e(t)=期望值-当前值
不同比例增益下,系统对阶跃信号的响应
初学者四轴飞行器-学习笔记 1_第3张图片

积分(I)控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对于只有比例控制的系统存在稳态误差,为了消除稳态误差,在控制器中必须引入“积分项”。积分项是误差对时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例积分(PI)控制器,可以使系统在进入稳态后无稳态误差。 积分项输出

积分公式
Ki:积分增益–>根据不同的场景调试
公式解释误差的代数和>开始到现在
>0: 过去大多数时候未达标
=0:过去控制效果较理想
<0: 过去大多数时候已经超标

不同积分增益下,系统对阶跃信号的响应
初学者四轴飞行器-学习笔记 1_第4张图片
微分(D)控制
在微分控制中,控制器的输出与输入误差信号的微分成正比关系。微分调节就是偏差值的变化率。使用微分调节能够实现系统的超前控制。如果输入偏差值线性变化,则在调节器输出侧叠加一个恒定的调节量。大部分控制系统不需要调节微分时间。因为只有时间滞后的系统才需要附加这个参数。
积分公式
Kd:微分增益–>根据不同的场景调试

初学者四轴飞行器-学习笔记 1_第5张图片

单级PID

初学者四轴飞行器-学习笔记 1_第6张图片
期望角度:遥控器获得。
测量角度:传感器测得的飞行器角度(Roll/Pitch/Yaw 三个角度),在PID计算的时候是相互独立的。
PID控制器:即MCU程序计算,按照PID理论计算中公式软件实现
PWM输出:将计算值转换为PWM输出至电机(电调)

串级PID

初学者四轴飞行器-学习笔记 1_第7张图片
期望角度:遥控器获得。
测量角度:传感器测得的飞行器角度(Roll/Pitch/Yaw 三个角度),在PID计算的时候是相互独立的。
角度环PID控制器:即MCU程序计算,按照PID理论计算中公式软件实现,即单级中PID控制器。
将角度通过计算转换为期望角速度
期望角速度:通过角度环PID控制器,即MCU计算出应输出期望角速度。
测量角速度:传感器测得的角速度
角度环PID控制器:即MCU程序计算,按照PID理论计算中公式软件实现。
PWM输出:将计算值转换为PWM输出至电机(电调)

串级PID即将两个PID按照串联的方式连接起来,前一个的输出作为后一个的输入两者共同控制控制对象,外环角度,内环角速度。外环:输入是角度,输出是角速度;内环:输入是角速度,输出是PWM增量。
为什么外环输入的是角度,输出的就是角速度了?
一般的思维总会这样想,角度得到角速度肯定时角度的变化量比上时间才对,其实这样理解就片面了,其实是与后面的PID控制器有关,前一个PID输出的还是角度,只是后级pid把它当作角速度,为什么这么说,举个例子:加入期望的横滚角为零度,而此时传感的当前角度值为负值,那么误差为期望值减去当前值为正值,这个值经过前级PID计算,计算出结果就是后级PID的输入(即要改变的角度,先有角速度变化的趋势才会产生角度的变化),后级PID没有用遥控器的期望值,他的期望值就是前级PID的输出值,这个输出值经过后级PID的计算就是飞行器现在需要的角速度,映射为PWM量,因为是电机的升力提供的角速度。
这个角速度是干什么用的
要把它和期望值–遥控器输入值联系起来,期望是横滚角为零,加速度的方向肯定时纠正现有误差的。如果程序没错的话姿态会被慢慢校正,,这个过程是最初期望角和姿态角相差最大,那么前级PID输出的值也大,后级PID输出角度也大,但是随着被纠正前级的PID输出减小,后级也一样减小,直至误差为零,那么角速度也为零,没有角速度飞机就是平稳状态。


引用某论坛,是在PDF上看到的所以没有标注具体的信息,侵权删。

2019年6月10日

姿态表示方式

坐标系

初学者四轴飞行器-学习笔记 1_第8张图片
地面坐标系
在地面上选一点 Og;
使 Xg 轴在水平面内并指向某一方向;
Zg 轴垂直于地面并指向地心;
Yg 轴在水平面内垂直于 Xg 轴,其指向按右手定则确定;
机体坐标系
原点 O 取在飞机质心处,坐标系与飞机固连;
X 轴在飞机对称平面内并平行于飞机的设计轴线指向机头;
Y 轴垂直于飞机对称平面指向机身右方;
Z 轴在飞机对称平面内,与 X 轴垂直并指向机身下方;

欧拉角

定义
俯仰角(pitch) :机体坐标系 X 轴与水平面的夹角,围绕 X 轴旋转。 当 X 轴的正半轴位于过坐标原点的水平面之上(抬头)时,俯仰角为正,否则为负。
偏航角(yaw) :机体坐标系 X 轴在水平面上投影与地面坐标系 Xg 轴之间的夹角,围绕 Y 轴旋转。机头右偏航为正,反之为负。
滚转角(roll) :机体坐标系 Z 轴与通过机体 Z 轴的铅垂面间的夹角, 围绕 Z 轴旋转。机体向右滚为正,反之为负。
滚转角Φ、俯仰角Θ、偏航角Ψ


第一种情况机体系和地面坐标系重合
初学者四轴飞行器-学习笔记 1_第9张图片

旋转矩阵
四元数

你可能感兴趣的:(初学者四轴飞行器-学习笔记 1)