收稿日期:2015-12-10基金项目:湖北省大学生创新创业训练计划项目(项目编号:201510920033);湖北理工学院大学生创新项目(项目编号:14cx02);湖北理工学院校级科研项目(项目编号:14xjz01C)。作者简介:汤洋,本科生。*通讯作者:章磊,副教授,博士,研究方向:无线通信与网络。doi:10.3969/j.issn.2095-4565.2016.02.002四旋翼飞行器的设计与制作汤洋,章磊*,张瑶(湖北理工学院电气与电子信息工程学院,湖北黄石435003)摘要:四旋翼飞行器是一种不同于直升机的多旋翼飞行器,其机械结构简单,但具有不稳定、非线性和强耦合的特性。设计了一种基于STM32F103C8的四旋翼飞行器,并详细阐述了其硬件结构、控制系统和算法实现过程。所设计与制作的四旋翼飞行器具有飞行稳定和易于控制等优点。关键词:四旋翼飞行器;MPU6050;HMC5883L;PID算法中图分类号:TP368.2文献标识码:A文章编号:2095-4565(2016)02-0005-04DesignandFabricationoftheQuad-rotorAircraftTangYang,ZhangLei*,ZhangYao(SchoolofElectricalandElectronicInformationEngineering,HubeiPolytechnicUniversity,HuangshiHubei435003)Abstract:Thequad-rotoraircraftisamultiplerotoraircraftwhichisdifferentfromthehelicopter.Itsphysi-calconstructionissimple,butithassuchfeaturesasinstabilities,nonlinearandstrongcouplingproperties.Aquad-rotoraircraftbasedonSTM32F103C8T6isdesigned.Thehardwarestructure,controlsystemandalgo-rithmimplementationprocessareintroducedindetail.Thedesignedquad-rotoraircrafthastheadvantageofflightstabilityandiseasytocontrol.Keywords:Quad-rotoraircraft;MPU6050;HMC5883L;PIDalgorithm0引言四旋翼飞行器因具有体积小、机械结构简单、控制灵活和单位体积能够产生更大升力等优点,所以无论是在民用还是军事领域它都具有非常广阔的应用前景,特别适合在地理环境恶劣、空间狭小的地方执行任务[1]。四旋翼飞行器同直升机等多旋翼飞行器相比较,机械结构更简单,但具有不稳定、非线性和强耦合的特性。本文阐述了四旋翼飞行器的硬件组成和姿态算法理论,以及相应控制系统的实现原理,并系统描述了算法的实现过程,设计制作的四旋翼飞行器具有飞行稳定和易于控制等优点。1四旋翼飞行器的基本原理四旋翼飞行器主要由主控板、呈X型交叉的4个电子调速器、无刷电机和桨叶组成,整个系统由航模电池供电。主控采集数据后经过数据融合和姿态解算来控制4个电机维第32卷第2期2016年4月湖北理工学院学报JOURNALOFHUBEIPOLYTECHNICUNIVERSITYVol.32No.2Apr.2016ChaoXing持飞行器的平衡稳定。四轴飞行器结构简图如图1所示,因为整个飞行器机体转矩需要维持平衡,所以采用正反桨设计,其中1号和3号旋桨逆时针旋转,2号和4号旋桨顺时针旋转。在维持四轴平衡时,同时加大或减小4个电机的输出功率,实现四轴的升降运动;同时增大或减小1,2(3,4)号桨叶转速实现横滚运动;同时增大或减小1,4(2,3)号桨叶转速实现俯仰运动;同时增大或减小1,3(2,4)号桨叶转速实现偏航运动[2]。图1四轴飞行器结构简图2系统硬件设计2.1主控制器本设计采用ST公司的32位微控制器STM32F103C8为主控制器,该处理器采用ARMv7-M架构、Cortex-M3内核,是一款低功耗处理器,具有中断延迟短、门数目少、调试成本低等特点[3]。在智能家居、实时控制、虚拟技术、可穿戴设备和空调控制系统等多领域都有广泛的应用[4]。2.2惯性测量单元(IMU)本设计采用MPU6050作为六轴加速度传感器,它是三轴陀螺仪与三轴加速度的结合体,同时它本身也具有一定的运算能力,搭载有DMP(DigitalMotionProcessor),并且采用IIC接口,可以方便地实现与其他具有IIC接口的传感器进行连接,如磁力计。使用MPU6550的3个16位ADC得到陀螺仪和加速度计数据,实现了模数的转换。为了满足不同用户对精度的要求,用户可以自行配置其测量范围,其可测范围为±250,±500,±1000和±2000°/s(dps);加速度计可测量范围为±2,±4,±8和±16g。2.3三轴磁场传感器与超声波传感器三轴磁场传感器HMC5883L是一种采用表面贴装技术的弱磁传感器芯片。它采用IIC接口,主要应用于低成本指南针与磁场检测领域;同时,其配有放大器、偏差校准器、消磁驱动器和能使电子罗盘精度控制在1~2°的12位ADC。本设计利用HMC5883L采集到的三轴磁场数据对四旋翼飞行器的姿态进行校准,以解决四轴飞行器飞行过程中姿态不稳定的问题。利用U-100超声波传感器实现四轴飞行器的定高飞行。US-100是一款超声波传感器,测量范围为2cm到4m,且输入电压范围较宽:2.4~5.5V,适合与5V或3.3V单片机设备连接;同时,它还具有低功耗的优点,静态功耗仅为2mA。US-100搭载有温度传感器,以适应不同温度的工作环境,并提供串口和GPIO2种连接方式,其工作稳定,可以为四轴飞行器的定高功能提供可靠的数据来源。2.4无线通信模块NRF24L01+是一款单片无线收发器芯片,它工作在2.4~2.5GHz频段,其基本组成有频率发生器、功率放大器、晶体振荡器、调制器和解调器等;同时NRF24L01+配备了SchockBurst模式控制器,以增加通信距离,使通信质量更加稳定[5];其采用SPI配置方式,并且输出功率频道可设。本设计中该模块主要起到与四轴地面站系统交换数据的作用,通过它来调整飞控PID参数,显示各个传感器数据以及完成一键起飞等功能。2.5无刷电机驱动部分本设计采用好盈天行者40A带UBEC无刷电调,它是一款三相六臂MOS管全桥无刷电机驱动,主要应用于航模飞行器,在降低电流波动与转矩脉动上有着良好的性能,使电机输出较大的转矩[6]。3姿态控制原理3.1姿态解算原理3.1.1主要滤波算法本系统同时采用了卡尔曼滤波和IIR滤6湖北理工学院学报2016年ChaoXing波算法。前者主要是为了减小外界磁场对磁场传感器的干扰;后者则是对MPU6050采集到的数据进行滤波优化,并同时考虑系统的精确性和实时性。卡尔曼滤波器是一种寻求最优化自回归数据处理算法,不同于其他算法简单地对误差积累迭代,它每次迭代的是误差的协方差,可以在短时间内得到较准确的预测和变化趋势,因此广泛应用于智能识别及采样滤波方面[7]。数字单元HMC5883L可以敏感测量出周围磁场变化,但易受外界诸如电机转动产生的磁场的影响,影响精确性。通过引入卡尔曼滤波,调整卡尔曼滤波中的外界白噪声,可以有效地解决磁场影响问题。IIR滤波是一种迭代滤波器,主要用于数字信号处理方面。根据所需频率,可以设置成高通和低通等类型滤波器,其优点是稳定性好、阶次低和计算量小[8]。为了实现对四轴姿态的实时精确控制,必须保证高采样率。考虑到MPU6050的采样及转换速率,本设计采用500Hz的采样频率,此频率下采样数据会受到电源纹波等影响。为了保证四轴结构的精简,本设计利用IIR滤波直接I型低通滤波器很好地解决了电源纹波对采样数据的干扰。3.1.2数据融合章动角α、旋进角(即进动角)θ和自转角μ是组成欧拉角的3个独立角参量,主要用于确定定点转动的刚体位置。确定了这3个角就可以确定一个物体在地理坐标系中按相应规则旋转后得到的机体坐标系姿态。四元数是一种简单的超复数,用四元数可以实现欧拉角的非奇异表达(欧拉角表达存在万向节死锁),通过四元数的逆转置,即可得到与四轴相对的地理坐标系的姿态角[9]。以下为四元数到欧拉角的转换公式:q=wxyz=cos(α/2)cos(θ/2)cos(μ/2)+sin(α/2)sin(θ/2)sin(μ/2)cos(α/2)sin(θ/2)cos(μ/2)+sin(α/2)cos(θ/2)sin(μ/2)cos(α/2)cos(θ/2)sin(μ/2)-sin(α/2)sin(θ/2)cos(μ/2)sin(α/2)cos(θ/2)cos(μ/2)+cos(α/2)sin(θ/2)sin(μ/2)αθμ=arctan2(2(wz+xy),1-2(z^2+x^2))arcsin(2(wx-yz))arctan2(2(wy+zx),1-2(x^2+y^2))由于MPU6050惯性单元测出的三轴加速度是重力加速度和运动加速度的合成,根据重力分量和几何关系得出的姿态角存在误差。本设计通过引入三轴陀螺仪数据和三轴地磁数据计算误差,并按采样周期的一半积分补偿姿态角。此时得到的姿态是相对于自身机体坐标系的角度,再经过逆转置,即可得到控制需要的相对于地理坐标系的姿态角。3.1.3双闭环PID姿态控制PID控制是当今流行的基于反馈闭环自动控制技术。传统四旋翼飞行器一般采用单级速度PID控制,由于没有对加速度环进行控制,速度为零而加速度不为零时,存在响应速度慢、飞行中漂移等现象。双闭环PID控制过程简图如图2所示,本系统采用串级PID,以单级PID的速度输出作为加速度级控制的输入,达到控制加速度的目的,加强了四轴飞行过程中的稳定性和抗干扰能力[10]。图2双闭环PID控制过程简图3.1.4单闭环PID高度控制有别于姿态控制,对高度控制采用单级PID即可达到目的。考虑到四轴的响应速度,宜采用长周期慢调节控制,避免超调。第2期汤洋,章磊,张瑶:四旋翼飞行器的设计与制作7ChaoXing3.2系统功能设计STM32的C语言程序设计有寄存器方式和库函数方式,前者的执行效率较高,但是使用不方便,再加上STM32的运行速度很快,使用库函数的方式可增加代码的可读性,更利于不同成员之间的合作交流,可减小开发周期。本设计采用了库函数方式,飞控程序流程图如图3所示。图3飞控程序流程图四轴飞行器的调试需要进行大量室外实验,利用手持地面站可以方便调试。本设计中地面站采用德国segger公司的emwin5.22,其控件丰富,具有很强的实用价值。此外,stm32拥有足够的flash存储空间,可以模拟EEPROM储存数据,达到实时调节参数且保存的目的。地面站程序流程图如图4所示。图4地面站程序流程图4调试与测试首先对各个模块进行单独的调试,确保各个模块正常工作。在联合调试时,发现电源纹波对MPU6050等传感器存在干扰,导致飞行器无法稳定飞行;于是对电源进行了优化,但是这样仍然无法得到理想的传感器数据;最后通过同时采用卡尔曼滤波和IIR滤波算法解决了电源纹波对MPU6050等传感器的干扰问题。所设计与制作的四旋翼飞行器能实现稳定悬停,并完成了在狭长楼道的稳定飞行。参考文献[1]王俊,鲁晓天.对四轴飞行器基于姿态算法的分析与实现[J].河南科技,2015(2):51-53.[2]朱阳,王伟成,王明慧.基于MPU9150的四轴飞行器姿态控制系统设计[J].制造业自动化,2015,37(5):46-48.[3]常国权,戴国强.基于STM32的四轴飞行器飞控系统设计[J].单片机与嵌入式系统应用,2015,15(2):29-32