基于STM32的四旋翼飞行器设计与实现

2016-09-14 09:17:48王丽丹李梦柯洪成昌江东风
电子设计工程 2016年2期
关键词:陀螺仪旋翼飞行器

颜 平,王丽丹,李梦柯,洪成昌,江东风

(西南大学 重庆 400715)

基于STM32的四旋翼飞行器设计与实现

颜 平,王丽丹,李梦柯,洪成昌,江东风

(西南大学 重庆400715)

本四旋翼飞行器以STM32F103RCT6为核心控制器,通过硬件连接快速接收MPU6050模块实时检测的飞行器姿态数据,经过UpdataIMU算法得到对应的姿态角四元数,互补滤波后进行PID算法计算得出PWM波控制电机,得到稳定的飞行姿态。文中主要介绍了四旋翼飞行器的硬件设计、软件设计以及调试方法,反复的试验证明本方法能设计出稳定飞行的四旋翼飞行器。随着研究的深入,四旋翼飞行器应用前景广阔。

四旋翼飞行器;UpdataIMU算法;互补滤波;PID算法

近年来,四旋翼飞行器凭借优良的飞行性能和巨大的应用潜力日益得到关注。四旋翼飞行器融合了直升机与固定翼飞行器的优点,同时能在各种复杂地形飞行,现已发展为集军用、商用、民用多位一体的实用工具,因此具有很高的科研价值。因此本项目结合现有的四旋翼飞行器的理论与技术基础,选用常用的STM32控制芯片结合流行的姿态控制芯片,利用合适的算法自主设计四旋翼飞行器。通过对四旋翼飞行器主要介绍和对四旋翼工作模式与控制参数的研究,进行实际的控制算法和实物结合,从硬件搭建和软件调试介绍了四旋翼飞行器飞行姿态控制的研发。

1 四旋翼的硬件设计

四旋翼飞行器的设计主要包括两个部分:机架结构和飞行控制系统。机架构造是四旋翼的基础,为了保证飞行器在飞行过程中能经历更高的强度完成更多的功能,本项目选择碳纤维材料做机架,碳纤维质轻,强度高不易破损;在拓展功能中轻巧的机身使得旋翼可以搭载更多其他设备完成摄像,探测等任务。飞行控制系统由主控制器、姿态传感器、无线通信和电机驱动等部分组成。姿态传感器用来测量四旋翼飞行器的飞行状态信息 ,主控制器通过高速数模、模数转换I/O口接收姿态传感器反馈回来的状态信息,并结合预定值经过算法得出最直接的四路输出量PWM值控制电机转速,调整飞行器的姿态,并不断进行反馈调节,得到适当力矩达到稳定。整个四旋翼飞行器控制系统主要分为硬件连接和软件控制两个部分。

1.1主控模块

本项目采用STM32开发板对系统进行控制,主控芯片STM32F103RCT6具有32位高精度高速度的浮点处理单元,72 MHz高速处理能力,112个高速I/O口,多达21个3×12-bit,1 μsA/D、D/A转换通道,以及多路PWM输出通道;它负责接收传感器检测到的姿态角速率等数据、三轴的线加速度,气压传感器测得的高度和航向信息并结合控制算法和滤波处理[1]计算输出控制量并不断进行循环检测和计算以达到系统的稳定性,并通过无线通信模块与上位机进行数据的交换,实现数据交互和飞行姿态控制[2]。

图1 硬件设计整体框图Fig.1 Overall block diagram of the hardware design

主控模块供电模块采用线性元器件PTN78000WAH构成电压转换电路结合tps62160稳压,为单片机其他模块供电,发热小,纹波小,综合效能高

1.2传感器模块

由四旋翼飞行器的简单物理模型可知,在一固定时刻,四旋翼的状态由6个物理量来描述,包括在三维坐标中的3个位置量和沿3个轴的姿态量,这些姿态数据的采集则由MPU6050模块来实现。惯性传感器有两种类型:陀螺仪和加速度计。陀螺仪起到测量四旋翼飞行器的角速率的作用。因此,精度和稳定性可作为陀螺仪选型的重要原则,MPU6050所测得的数据误差较结合的陀螺仪和加速度计误差更小、运用和控制更方便。MPU6050是三轴陀螺仪和三轴加速器的结合,MPU6050的角速度全格感测范围设定为±250、±500等,可准确追踪快速与慢速动作,传输可透过最高至400 kHz的IC。惯性导航中,导航参数会随着传感器的测量误差积累而发散[3],另外为了更加准确,本四旋翼增加了三轴加速度计、GY-63气压传感模块和陀螺仪6D0F模块与MPU6050所得数据进行校准,以期更好地控制飞行。

1.3无线通信模块

为了实现四旋翼飞行器和地面控制中心之间的通信必须使用无线通信模块。本项目采用nRF24L01单片机无线收发芯片,工作在2.4~2.5 GHz的ISM频段的单片无线收发器芯片。无线收发模块包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器,能较好地完成通信。也可以利用WIFI进行通信,通过电脑内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,同样能够实现电脑与WIFI芯片的无线数据传输,同时WIFI信息传送数据速率可以达到600Mb,并且配置和使用也简单,但是在手动控制飞行器的时候不如手持式无线终端灵活,但最终仍然能实现上位机对其的数据采集和实时操控。

1.4电机、电调控制模块

本项目采用直接利用成品AL-ITW电调,控制无刷电机方案,实现了STM32输出PWM脉冲控制电调,从而对电机达到线性控制目的。控制方式为主控芯片根据采集的姿态数据调整输出PWM周期,最大油门值为2 ms高电平。

2 飞行控制器的软件设计

软件使用 keil,uvision4.1.0集成开发环境,工具链为RealViewMDK-ARM Version4.12,驱动采用官方的MPU6050驱动inv_mpu.c和inv_mpu_dmp_motion_driver.c。

本飞行控制器的软件控制主要包括以下几个方面。

1)STM32单片机获取mpu6050传感器的初始数据,通信方式采用I2C通信方式;

2)得到飞行器的实时姿态,滤波方式采用互补滤波;

3)与此同时,用HC06蓝牙模块接收到上位机发送的数据,解算得到期望姿态;

4)之后将实时姿态和期望姿态作差,差值送入PID闭环控制器。

控制过程如图2所示。

图2 飞行控制器主要控制过程图Fig.2 Flight controller main control process chart

2.1读取mpu6050初值

根据mpu6050数据手册的各寄存器地址,采用GPIO模拟I2C通信方式,读取重力加速计和陀螺仪的各个分量。本飞行控制器传感器采样率设置为200 Hz;陀螺仪量程为±2 000°/s,加速计量程为±2g。量程不宜太大,量程越大取值越不准确。

2.2滤波和姿态融合

采用互补滤波,融合时,飞行器的瞬时运动情况很大程度上由陀螺仪的积分运算决定,陀螺仪产生的误差由重力加速度计长时间累积不断矫正,最终得到准确的机身姿态。

为了得到姿态角所对应的四元数,本控制器采用Madgwick提供的UpdateIMU算法[4],之后经过简单运算将四元数转换为实时欧拉角,转换方式[5]如下:

首先定义四元数

通过旋转轴和绕该轴旋转的角度可以构造一个四元数:

其中是绕旋转轴旋转的角度,cos(βx)、cos(βy)、cos(βz)为旋转轴在x、y、z方向的分量(由此确定了旋转轴)。欧拉角到四元数的转换公式如下:

2.3获取期望姿态

让用户介入控制,通过HC-06蓝牙模块接连到STM32的串口1,再无线连接到控制端,获得控制端不断发送的数据包,并实时更新期望姿态角。需要注意输出的姿态角和实时姿态角方向是否一致以及数据包的校验。

2.4PID算法控制

本飞行控制系统引入PID控制器来更好的纠正系统。

PID基本要素包括 “比例proportional”、“积分integral”、“微分derivative”,每一项完成不同的任务,对系统功能产生不同的影响。P代表控制系统的响应速度,P越大响应越快;I用来累积过去时间内的误差,修正P无法达到的期望姿态值(静差);D加强对机体变化的快速响应,对P有抑制作用。

2.5输出PWM信号

完成PID计算后,通过STM32自带的定时器调制输出四路pwm信号,本控制器采用50 Hz的电调pwm,设置0.5~2.5 ms的高电平持续时间。

至此,一个基于stm32和mpu6050搭建的飞控系统已经实现。

3 系统调试与飞行测试

系统模型的建立通过数学模型模拟飞行器的飞行,但是系统模型并不能十分精确的展现飞行器的真实飞行状况,理论分析所获取的各类参数往往与实际参数会有些差错,需要进一步通过对系统进行调试使飞行器达到最佳的飞行效果。本项目采用Matlab开发的的上位机程序控制四旋翼飞行,从而获得适合于四旋翼飞行的最佳控制参数。

3.1开机检测

1)电压值检测

四旋翼飞行器需要在一定的电压范围内才能保证其正常的飞行,当电池电压低于11.3 V时,电动马达驱动电压过低,会使得飞行器不能够正常飞行,在电池上安装电压报警器设备对电池电压进行监控,调节报警电压为11.3 V,当电池电压低于设定值时,报警器被触发响铃,提醒及时充电。

2)超声波检测

利用主控计算机的GPIO端口读取超声波传感器输出的脉冲宽度,将其转换为宽度。当宽度小于设定的初始值时,主控芯片会调节PWM的输出,改变四旋翼飞行器原先的飞行状态,从而达到避障功能。

3.2PID控制参数的设置

图3 PID控制基本框图Fig.3 PID control of the basic block diagram

通过MPU-6050传回主控芯片的姿态数据结合PID算法对四旋翼飞行姿态进行控制,图3为PID控制基本框图。

其中error表示飞机各个姿态角和预设姿态角之间的偏差,送入上述框图计算得到控制调整信号输出给控制芯片编程PWM送出调整电机转速进行姿态调整。

根据PID系统的结构图,通过matlab搭建Simulink仿真,经过调试,得到以下参数取值表。

表1 PID仿真参数值Tab.1 PID simulation parameters

通过大量仿真实验,当P=3,i=0.7,d=20时飞行器能够保持稳定状态飞行。

图4 Matlab仿真图Fig.4 Matlab simulation map

4 结束语

本项目结合四旋翼飞行器的器件选择,硬件电路设计和控制系统程序实现等方面系统地给出了设计步骤和方法,经实验证明本套方案能设计出一套能稳定起飞并且能在手持遥控器控制下平稳飞行的四旋翼。鉴于各方面的突出优势,如今四旋翼飞行器在生活很多地方都可以看到应用,它是一种有巨大商业潜力和极宽应用范围的技术,这项技术的研究能拓展更多的科研价值,在智能飞行、自主飞行方向的发展能更进一步。

[1]Hamel T,Mahony R,Lozano R,et al.Dynamic modeling and configuration stabilization for an X4-Flyer[C].15th Triennial World Congress,Barcelona,Spain,2002:665-670.

[2]Bouabdallah S.Design and control of quadrotors with applicationto autonomous fIying[D].Ecole Polytechnique Federale de Lausanne,2007.

[3]周权.四旋翼飞行平台飞行控制和惯性导航研究 [D].南京:南京航空航天大学,2008.

[4]IMU[EB/OL].[Online]Available:http://developer.mbed.org/ cookbook/IMU(2015-10-3).

[5]Conversion between quaternions and Euler angles[EB/OL].Available:http://www.cnblogs.com/wqj1212/archive/2010/11/ 21/1883033.html(2015-10-3).

[6]代晓巍,李振兴,赵丽莉.飞行器外测数据连续型野值的抽取剔除方法[J].电子设计工程,2015(12):68-70.

The design and achievement of quadrotor based on STM32

YAN Ping,WANG Li-dan,LI Meng-ke,HONG Cheng-chang,JIANG Dong-feng
(Southwest University,Chongqing 400715,China)

The main controller of this Quadrotor is STM32F103RCT6,and we can quickly acquire quadrotor’s attitude data through hardware connection between MPU6050 module and controller;Then we use UpdataIMU algorithm to convert original data to corresponding attitude angle quaternion,complementary filter will deal with those data.At last,through PID algorithm,there will be PWM output wave to adjust speed of the motors,so that we succeeded in a stable flight attitude.This paper describes the quadrotor’s hardware design,software design and debugging methods,from repeated tests,this method can design a stable quadrotor aircraft.With further research,quadrotor aircraft has a broad application prospects.

quadrotor;updataIMU algorithm;complementary filter;PID algorithm

TN99

A

1674-6236(2016)02-0187-03

2015-03-09稿件编号:201503121

国家级大学生创新训练项目资助(201410635080)

颜 平(1993—),女,重庆人。研究方向:通信工程。

猜你喜欢
陀螺仪旋翼飞行器
高超声速飞行器
基于EMD的MEMS陀螺仪随机漂移分析方法
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
基于STM32的四旋翼飞行器的设计
电子制作(2019年9期)2019-05-30 09:41:48
复杂飞行器的容错控制
电子制作(2018年2期)2018-04-18 07:13:25
我国著名陀螺仪专家——林士谔
微机械陀螺仪概述和发展
四旋翼无人机动态面控制
MEMS三轴陀螺仪中不匹配干扰抑制方法