题 目: 基于 STM32F4 的四轴飞行器控制系统
关键词: STM32F4 Discovery 四轴飞行器 航姿参考系统 数据融合
PID 算法
摘要
四轴飞行器作为低空低成本的遥感平台,在各个领域应用广泛。与其他类
型的飞行器相比,四轴飞行器硬件结构简单紧凑,但是软件算法复杂,从数据融
合到姿态解算,以及最后稳定和快速的控制算法,都无疑使得四轴飞行器更加有
魅力。为了实现对四轴的控制,本作品使用了 ST 公司推出的 STM32 作为处理
器,STM32F4 Discovery 开发板作为遥控器接收板,MPU6050 作为姿态传感
器,软塑料机架,空心杯电机,两对正反桨,锂电池,以及四轴遥控器。最后,
经过相关调试工作,设计出能够遥控稳定飞行、具有一定的快速性和鲁棒性的小
型四轴飞行器。
1. 引言
随着微电子机械系统(MEMS)的蓬勃兴起,配合高速的低功耗处理器,使得
开发和研制四轴飞行器有了重大突破;特别是四轴飞行器潜在的应用前景和使用
价值,都激发了人们研究它的热情。今天,四轴飞行器已经应用到各个领域,如
军事打击,公安追捕,灾害搜救,农林业调查,输电线巡查,广告航拍,航模玩
具等。目前广泛应用的飞行器还有:固定翼飞行器和单轴的直升机。与固定翼飞
行器相比,四轴飞行器机动性好,动作灵活,可以垂直起飞降落和悬停,缺点是
续航时间短的多,飞行速度不快;而与单轴直升机比,四轴飞行器的机械简单,
无需尾桨抵消反力矩,成本低。
本文主要就小型四轴飞行器,介绍一种四轴飞行器的实现方案,可以通过遥
控实现四轴飞行器平稳起飞和平稳降落,控制前进后退,左侧翻右侧翻,左旋转
右旋转以及悬停这一系列基本动作。
四轴飞行器系统涉及空气动力学,飞行器建模分析,机械设计,MEMS 惯性
器件姿态检测,数据融合,导航和控制,电机驱动等领域的相关技术,是一门学
科交叉的技术。结合本系统实现对四轴飞行器的控制,主要解决飞行器建模分析,
MEMS 器件姿态检测,数据滤波和数据融合,姿态解算的 Matlab 仿真,四轴平
稳控制的问题,通过不断优化算法,使得四轴具有一定的抗干扰性和快速恢复平
稳的功能。
2. 系统方案
本作品设计的是小型四轴飞行器,采用一体化的设计思路,就是机身和处理
器板作为一个整体,小型四轴器的处理器使用 STM32F103 芯片,传感器使用
MPU6050,接收板使用 STM32F4 Discovery 开发板,使用 IIC 总线的方式与处理
器连接;遥控板上面使用 NRF24L01 无线芯片,通过上位机利用自己定义的协议
来完成小型四轴飞行器的姿态显示和控制;采用空心杯电机和两对正反桨,电池
使用 4.1V 的锂电池;整个系统的电源控制部分采用 662K 稳压芯片,这样可以
确保供电的稳定性,保证系统稳定可靠的运行。
STM32F103 处理器主要负责传感器数据的获取,原始数据滤波,数据融合,
四元数姿态解算算法,PID 闭环控制算法和 NRF24L01 遥控信号的解码
STM32F4 Discovery 开发板作为遥控器接收板,用来接收和发送数据和命令。系
统总体设计框图如图 1 所示:
STM32
处理器
MPU6050
IIC
电源
管理
锂电
池
电机1 电机2
电机3 电机4
无线
通信
图 1:系统框图
3. 系统硬件设计
(1)电源管理电路
系统由 4.2V 的锂电池供电,但是单片机和 MPU6050 是需要 3.3V 供电的,
另外电池电量也是在不断发生变化的,所以为了提供一个精确稳定的电源,使用
了稳压芯片 662K,框图如图 2 所示:
4.2V
锂电池
662K
稳压芯片
MCU和
传感器
图 2:电源电路框图
电源稳压芯片之所以不选择 LM1117-3.3,是因为电池电量在使用一段时间后
会降低,这样输入输出之间的压降差就会变得比较小,使用 LM1117-3.3 可能不
能够满足稳定输出的压降差,相比较而言,662K 需要的压降差更小一点,更能
够保证 3.3V 的稳定输出,因此本系统选用 662K 稳压芯片。
(2)传感器接口电路
本系统使用传感器 MPU6050,MP 采用 IIC 的连接方式和 MCU 通讯,获取
加速度信号和陀螺仪信号用于姿态解算,框图如图 3 所示:
MPU
6050
MCU
单元
IIC
图 3:传感器接口框图
之所以选用 MPU6050 作为姿态检测传感器,是因为它是一款全球首例整合 6
轴运动处理组件,这样就免除了组合陀螺仪与加速器的问题,减少了大量的包装
空间;其次可以选用 IIC 接口通讯,简单可靠;角速度感测范围可以方便的切换,
这样就可以准确追踪快速与慢速动作,并且可以程式控制加速度器感测范围;最
后,MPU6050 作为一款姿态检测单元,其用户群体也是很广泛的,资料也比较多,
更方便入手掌握。
(3)空心杯电机驱动电路
空心杯电机采用 NMOS 管来驱动,具体的驱动电路框图如图 4 所以:
PWM
输入
NMOS
管
续流二
极管
空心杯
电机
图 4:空心杯电机驱动框图
系统软件设计
(1)数据滤波
数据滤波的功能是滤去由于四轴飞行过程中震动产生的高频噪声,这样有利
于四轴获得准确的姿态信息,从而进行精确的控制。这本设计中,采用均值滤波
的方式,取窗长度为 20,经过测试,得到了很好的滤波效果。程序流程图如图 5
所示:
读取传感器数据
数据存入数组
均值滤波
图 5:数据滤波程序流程图
(2)互补滤波法实现姿态解算
计算姿态主要用到 3 个传感器:陀螺仪、加速度机和电子罗盘。加速度计测
量对象为比力,受运动加速度影响大,特别是受飞行器机架的振动的影响。电子
罗盘测量磁场强度,受环境影响也很大,特别是受电子调速器、电机等大电流器
件影响。而陀螺仪则受外部影响弱,稳定性好,但输出量为角速度,需要积分才
能得到姿态,无法避免误差的累积。为了得到稳定的。近实时的姿态,对各传感
器的数据补长取短,需要研究各种数据融合方法。
Mark Euston 提出了运算量比梯度下降法更小的互补滤波法。相比梯度下降
法用加速度和磁场强度计算姿态的梯度,互补滤波法是吧加速度和磁场强度的误
差构造成纠正旋转,叠加到陀螺测出的角增量上,实现高效的数据融合。
统一到同一坐标系后,规范化的加速度和磁场强度的测量值和常量值可以作
一个叉积,叉积的模为角度误差的正弦,小角度情况下认为正比于角度,方向根
据右手法则,可以作为纠正的旋转轴,乘上一个系数后,可以与陀螺算出的角增
量叠加。
首先算出两个叉积:
( )
1
A
E E
m
a A c
A
m
a
c R q a
a
-
= ´
v
v v
g
v
( )
1
A
E E
m
h A c
A
m
h
c R q h
h
-
= ´
v
v
v
g
v
然后,把叉积乘以一个系数,加到陀螺的角增量上,
g
和
l
分别为加速度和
磁场的纠正系数,一般取接近 0 的数:
a h
g t c c
j g l
= ×D + × + ×
v
v v v
然后构造旋转增量,更新姿态:
1
2 2 2
1 1 1 1
1
2 2 2 2
n
n
T
A
A n
r x y z x y z
j j j j j j
-
é ù
= - + +
ê ú
ë û
v v v v v v
1
1
n
n n n
A
E E
A A A n
q q r
-
-
= Ä
可以看出这个方法的复杂性较简单,运算量也小。互补滤波的流程如图 6 所示: