四旋翼无人机毕业设计 下载本文

四旋翼无人机设计与制作

5 四旋翼飞行器系统软件设计

5.1 系统程序设计

5.1.1 姿态参考系统软件设计

姿态参考系统的软件部分主要是对MEMS传感器数据和三轴数字电子罗盘传感器的数据进行处理和数据融合,图5.1给出了姿态参考系统的软件流程图。

开始系统初始化初始化IIC接口初始化MEMS传感器初始化数字电子罗盘读取传感器ID是否正确?Y配置MEMS传感器参数N配置地磁传感器参数读取加速度数据读取陀螺仪数据读取地磁传感器数据低通滤波or平均滤波卡尔曼滤波去极值滤波四元数姿态结算姿态结算互补滤波输出姿态角结束

图 5.1 姿态参考系统程序流程图

–29–

四旋翼无人机设计与制作

通过软件流程图可以清楚地看到,系统首先完成MCU内部初始化的工作,即配置STM32使用到的外设,包括时钟系统、NVIC中断控制器、USART串口通信、I2C接口、定时器;然后进行硬件初始化以及系统的姿态解算,采用模块化的设计,具体包括以下4个部分:(1)初始化硬件;(2) MEMS惯性测量单元的数据采集模块;(3)多传感器数据融合的姿态解算模块;(4)姿态信息输出模块。

首先开启定时器中断,在2.5ms的计时中断实现通过I2C接口读取MEMS传感器和三轴数字电子罗盘的测量数据,根据传感器的特点进行滤波后,再利用初始校正所得到的校正数据对读取的数据作校正,校正完后转换成实际的物理量,再对其做加权平均减小误差,然后进行四元数姿态解算和地磁数据校准,最后进行数据融合输出姿态角信息。

5.1.2 PID控制算法设计

根据四旋翼飞行器的工作原理知,因为其结构对称,所以改变电机的转速差能够实现对飞行器的姿态控制,而飞行器的位置控制要靠电机的总升力和飞行器姿态改变的[40]。所以,将飞行控制系统分为位置控制系统和姿态控制系统分别进行控制设计。由于飞行器姿态会直接影响到飞行器的位置,认为飞行器姿态控制器为内环控制器,位置控制器为外环控制器。这种数字式PID控制有位置式PID控制算法和增量式PID控制算法两种形式,这里采用的是增量式PID算法[41],其表达式为:

k?e(k)?Ik?(ek)?Dk[?(ek)??(e?k??u(k)?P ? (5-1)

?1)?u(k)??u(k)?u(k其中,kP为比例系数,kI为积分系数,kD微分系数。u(k)是第k次采样时刻计算的PID输出值,e(k)是第k次采样时刻控制器输入的偏差。

?e(k)?e(k)?e(k?1),?e(k?1)?e(k?1)?e(k?2)

四旋翼飞行器的姿态可分为俯仰角、横滚角和偏航角,针对每一个自由度都是一个二阶系统[42]。对每个姿态角都进行PID控制,这样就可以将复杂的非线性多变量输入多变量输出控制问题化简为两变量输入单变量输出的问题[43]。如式5-2所示。

?P1???P2? ??P3??P??4PP??P??Ph??PP??P??Ph?? (5-2)

PP??P??Ph??PP??P??Ph??–30–

四旋翼无人机设计与制作

这里P1、P2、P3、P4代表的是控制四个电机所需要的PWM值,Ph表示的是飞行器停留在空中需要的PWM值,可以由遥控器输入或者自动高度修正,P?、P?、P?分别表示的是俯仰角偏差、横滚角偏差和航向角偏差、及其变化率所需的PWM值,把PWM限制在一定的范围之内。

P?、P?、P?采用串级PID控制算法,内回路是角速度控制回路,外回路是角度控制回路。三个角度的控制规律是一致的,以俯仰角的控制为例,如图5.2所示,其中?为控制飞行器的期望俯仰角,?和??分别表示飞行器俯仰角角度和俯仰角角速

r度。?1是外环PID的输出值,?out是内环PID控制器的输出值,且?out?P?。

期望的欧拉角? +r +角度PID控制-??1-??角速度PID控制?out电机四旋翼飞行器姿态

图 5.2 串级PID控制图

首先需要求出四旋翼飞行器姿态误差信号也就是期望值的姿态角与当前获取到的姿态角的差值,然后通过串级PID控制算法求得各个电机的调整量,将调整信号传递给四个旋转电机,改变电机的转速来控制整个系统的姿态,使其姿态误差始终趋于最小,形成双级闭环回路控制系统。

–31–

四旋翼无人机设计与制作

结论

通过本次毕业设计我从中学到了很多实际应用的知识,掌握了四旋翼飞行器的原理,也学到了很多算法,能够真正把理论结合到实践当中去,获益良多;在这中间也遇到了许许多多的问题,在老师和学长的帮助下都一个一个的解决了,这个过程也是真正学习和进步的过程。四旋翼飞行器因其结构简单、控制方便,不用考虑复杂的流体力学等结构而非常受欢迎。本次设计主要做了如下的工作:

(1)了解了四旋翼飞行器的国内外的研究现状;

(2)详细介绍了四旋翼飞行器的飞行原理、动作原理和姿态控制原理等; (3)完成了姿态测量系统的选型工作并且基于这些传感器设计了电路原理图并且做出了电路板,搭建了硬件平台,对飞行器的机架、电机、电子调速器、螺旋桨、电源等硬件结构系统进行了配型和搭建;

(4)通过阅读大量的文献资料完成了对四旋翼飞行器姿态算法的研究工作,从坐标系的建立和坐标变换到四元数姿态矩阵的推导都有详细的说明,针对加速度数据、陀螺仪数据和地磁数据的特点分别给出了合适的滤波算法,在数据融合方面对地磁数据进行姿态解算得出航向角,然后对四元数得到的航向角进行校正;

(5)使用串级PID控制算法一定程度上使得控制效果更好,对定高控制系统进行了简要的介绍说明,完成了对四旋翼飞行器的参数调试和整定工作。

虽然在飞行器试飞过程中,能够很好地实现飞行功能,但是仍有一些不足之处需要改善,主要有以下几个方面:

(1)因为电机和机架的震动较大,加速度计对姿态的干扰无法消除,当遥控器没有给出遥控指令的时候,飞行器会往一边偏移。

(2)陀螺仪累积误差导致姿态的误差会越来越大。

(3)四旋翼飞行器的稳定飞行对四个电机和电子调速器性能的一致性要求较高。 (4)需要上位机实时返回四旋翼飞行器的飞行参数,然而我们还没有作这方面的工作。

–32–