闫晓兵 陈春梅 白雪艳 刘鹏
摘 要:四轴航拍飞行器能够在空中长时间稳定飞行,且携带载荷类型多样,在日常生活中具有广泛的用途。利用STM32F4处理器并且综合四元数法和PID控制算法进行四轴飞行器的设计是当前普遍的做法,如何做好软硬件之间的接口关系协调是进行设计时需要重点关注的问题;基于STM32F4处理器并综合使用MPU6050传感器能够实现设计出可以稳定飞行的四轴飞行器样机,并且具有灵活机动的转弯和升降能力,能够满足长航时、多广角航拍的需要。
关键词:四轴飞行器;STM32F4处理器;四元数法
中图分类号:TP273;V221 文献标识码:A 文章编号:2096-4706(2021)05-0052-04
Design of Quadcopter Control System Based on STM32F4 Processor
YAN Xiaobing1,CHEN Chunmei1,BAI Xueyan2,LIU Peng2
(1.School of Communication Engineering,Taishan College of Science and Technology,Taian 271000,China;
2.School of Intelligent Engineering,Taishan College of Science and Technology,Taian 271000,China)
Abstract:Aerial quadcopter can fly stably in the air for a long time,and carry a variety of loads,which has a wide range of purpose in daily life. Using STM32F4 processor and combining quaternion method and PID control algorithm to design quadcopter is a common practice at present. How to coordinate the interface relationship between software and hardware is a key issue when designing. Based on STM32F4 processor and comprehensive use of MPU6050 sensor,a quadcopter prototype that can flight stably can be designed,and it has flexible turning and lifting ability,which can meet the needs of long sailing time and multi wide angle aerial photography.
Keywords:quadcopter;STM32F4 processor;quaternion method
0 引 言
四轴航拍飞行器采用旋翼飞行方式在空中进行飞行,可以同步完成空中航拍任务,这种飞行器具有飞行稳定性强、操作简单、适用范围广的特点[1],因此是当前航拍技术的主要实现载体,同时也吸引了很多研究者。近年来,随着人工智能技术的进步,四轴航拍飞行器采用更加智能的方法进行飞行控制,进一步提升了飞行稳定性,有利于实现长航时、多广角、连续航拍的目标。作者在工作中,主要借助四轴飞行器完成航拍任务,对于飞行器的飞行稳定性有较高的要求;另外,在实际工作中发现很多型号的四轴飞行器进行遥控操作时信号延迟现象比较明显,导致基于遥控手段进行飞行器控制时牺牲了飞行器的灵活性,不利于扩大其应用范围。因此,在进行四轴航拍飞行器设计时,需要重点关注这些问题并想办法解决。
进行四轴飞行器设计时,需要利用惯性组件保证其平稳飞行和垂直升降,同时尽量采用简易的飞行结构以控制其设计成本,另外在进行设计时可以利用外观对称性和整体质心压心相对位置关系等进一步降低设计难度[2,3]。因此,进行四轴飞行器设计时既可以借鉴固定翼飞行器的成熟设计方法,也需要注意四轴飞行器不同的飞行特点。四轴飞行器旋翼布局方式能够克服机身自旋带来的不稳定性,进行控制系统设计时需要重点关注姿态变化引起的失稳现象,同时需要注意硬件与软件的接口关系。进行软件算法开发时,对于MPU6050姿态传感器傳入STM32F4处理器的姿态角信息需要进行转换和控制,以确保处理器能够获得正确的姿态角信息。
1 飞行器飞行原理及系统总体概况
1.1 四轴飞行器飞行原理
四轴飞行器是相对来说飞行稳定性较强的一种飞行器,由电机驱动四个呈十字状布局的旋翼提供升力,四个旋翼的旋转方向遵循“相邻旋翼不同、相对旋翼相同”的原则,这样可以避免机身产生自旋。四轴飞行器除了可以进行传统飞行器的俯仰、偏航和滚动运动之外,还可以进行垂直、前后和侧向运动,丰富了运动状态的形式,有利于执行更多的任务[4-6]。
四轴飞行器的结构布局如图1所示。其中mg为飞行器的重力,坐标E(OXYZ)为惯性坐标系,θ、φ、ψ分别为飞行器相对惯性坐标系的俯仰、偏航和滚转角,1、2、3、4为旋翼编号,箭头方向表示旋转方向。
旋翼是飞行器产生动力和升力的主要装置,四轴飞行器具有四个旋翼,每个旋翼所产生的升力可以表示为:
Ti=ρπR4CT =b (1)
式中,b=ρπR4CT表示升力系数,ρ表示空气密度,R表示旋翼半径,CT表示升力系数,Ωi表示螺旋桨的转速。
由此产生的升力力矩可以表示为:
τi=ρACDR3=d (2)
式中,d=ρACDR3表示升力矩系数,A表示旋翼面积,CD表示力矩因子。
当四个旋翼的升力和升力矩不一致时,就可以控制飞行器做出不同的飞行状态。
2 四轴飞行器系统总体概况
进行四轴航拍飞行器设计时,需要统筹考虑硬件兼容性和软件先进性。本文进行四轴航拍飞行器设计时,采用STM32F4处理器作为核心处理器,同时利用MPU6050传感器进行飞行位置探测和定位,利用蓝牙串口通信模块实现信息融合和共享;STM32F407处理器通过控制飞行器的电动調节装置和云台舵机的旋转从而实现机动飞行状态的调整,电源实时对硬件设备进行供电;操作人员可以使用遥控器发射远程遥控信号,四轴飞行器接收到遥控信号后按照软件系统解调出的动作指令进行运动控制。整个四轴飞行器的硬件接口拓扑关系如图2所示。
软件部分,控制算法采用四元数法进行飞行姿态变换,然后利用PID控制算法实现飞行稳定控制;同时,还需要对不同硬件之间的接口关系进行动态调动,这些也需要由软件部分来完成。进行软件开发时,首先需要做好输入信号分析,对于MPU6050传感器接收到的姿态角信号需要进行解耦分析,接触俯仰、偏航、滚转姿态角之间的耦合关系,使这三个角度信息相互独立,然后对其进行单独运算处理;在计算过程中,对于角度信息需要进行模数转换,将感知到的模拟量转换成数字量进行计算。
3 飞行器系统控制系统设计方法
控制系统是飞行器的核心部件,其控制程序烧录在STM32F4芯片中,利用MPU6050传感器探测到姿态位置实施调整,确保按照预定航迹飞行和飞行过程中的稳定性。对其进行设计时,可以基于飞行模型进行MATLAB仿真,然后在仿真的基础上烧录硬件程序实现样机飞行。
3.1 硬件选型
进行飞行器控制设计时,需要进行硬件选型。四轴飞行器控制系统的硬件主要是由主控器STM32F407IG处理器、各种传感器(加速度传感器LSM303、陀螺仪传感器MAX21000、气压传感器MS5611等)、信号接收机、无线数据传输模块、电子调速器无刷电机、遥控器、接收机、电源及稳定系统模块等组成。具体组成如图3所示。
由图3可以看出,主控器STM32F4通过各种传感器采集飞行器相对于惯性坐标系的姿态角,在相应控制律的作用下输出稳定的控制命令驱动电机控制旋翼产生相应的升力和升力矩(即式(1)和式(2)),利用各个旋翼的升力和升力矩之差实现飞行器的俯仰、偏航、滚动以及垂直、前后和侧向飞行。四轴飞行器采用锂电源进行供电,稳定输出电压为11.4 V,采用电压转换转置转换成3.8 V的电源后供飞行器各个硬件设备使用。同时采用电源管理软件进行电压分配管理,确保输出电力能够稳定地供应到各个硬件单机。同时,电源管理部分还包括过电压保护装置,当硬件设备的输入电源超过额定电压时会自动进行熔断,达到过热保护的目的。
3.2 飞行控制算法
四轴飞行器的飞行控制模块主要采用姿态角作为被控制量,由传感器对姿态角进行测量,然后输入STM32F4处理器进行处理,利用处理结果控制舵机进行姿态调整,同时基于云台进行稳定补偿。整个飞行控制系统的工作原理如图4所示。
图4中,姿态角的解算采用四元数法完成。STM32F4处理器实时采集姿态角传感器传来的姿态角信息,经过FIR滤波后对四元数进行初始化和归一化,并且建立四元数与俯仰、偏航、滚动通道姿态的对应关系,基于加速度计量测得的加速度数值结合计算向量积的方法求得估算方向向量与测量方向向量之间的误差,以此作为误差控制向量,将不同通道的向量误差输入校正陀螺仪进行校正和更新,进行数值迭代从而得到由四元数表示的俯仰、偏航和滚动通道的姿态信息。
四轴飞行器的飞行稳定主要靠PID控制算法实现。PID是经典的消除控制误差的方法,具有较强的鲁棒性和抗干扰性能,在工程实践中得到了广泛的应用。进行飞行稳定性控制时,将实时测量的姿态角与稳定飞行时的姿态角(定义为理想姿态角,下同)的差值作为被控量,将被控量输入PID控制器,利用比例变换关系实现对静误差的消除,利用微分环节消除动态误差对飞行稳定性的影响;本设计中加入了前馈控制系统,有效改善了系统的实时性并且提高了控制响应速度。控制系统框图如图5所示。
4 四轴飞行器试飞
按照以上硬件选型和软件控制算法设计出来的四轴飞行器实物如图6所示。
试飞前检查好飞行器的接口状态,确保电源电量满足飞行任务需要。一切就绪后,利用遥控器控制飞行器起飞,并且实时监测飞行状态。四轴飞行器具有遥控操作和自定义飞行两种模式可供选择。遥控操作由遥控信号控制飞行器飞行,利用无线数据传输模块来实现信号的实时传输,减少信号在传输过程中的延迟,在试飞过程中需要注意遥控器与飞行器的距离,一般来说遥控信号可以控制10 m的范围内,也就是说需要始终确保遥控器在飞行器半径10 m的范围内发射信号,这样飞行器才能够稳定飞行;自定义飞行模块可以提前将飞行控制参数烧录在硬件设备中,在飞行器的遥控开关中选择“自主飞行”模式,就可以使飞行器按照提前预设的程序进行飞行,这样有利于飞行器执行特定任务,比如飞行至人迹罕至的野外执行航拍任务并自动返航,进一步扩大了飞行器的飞行适应性。
本文对飞行器试飞分别进行了遥控飞行和自主飞行两种模式的实验,各飞行了10分钟;在这个飞行过程中,通过对飞行姿态的监测可以看出,本文设计的控制系统工作稳定,在累积长达20分钟的续航过程中机体晃动较小,航拍出的图像像素清晰,能够满足使用要求。
5 结 论
本文基于四元数法和PID控制算法,进行了四轴飞行器设计方法的研究,利用STM32F4处理器完成了硬件之间的有效连接和飞行控制算法的在线处理,并且对设计出的四轴飞行器进行了飞行试验,取得了良好的飞行效果,证明了本文所提出设计方法的正确性。
参考文献
[1] 文豪.四轴飞行器的设计与研究 [J].电子技术与软件工程,2016(2):128.
[2] 周建阳,陈家乐,薛斌,等.基于STM32四轴飞行器的设计 [J].钦州学院学报,2015,30(2):30-33.
[3] 宋权霖,张伟,刘业钊,等.四轴飞行器系统设计与制作 [J].电子制作,2020(7):20-22.
[4] 许震,毛丽民,刘同连,等.四轴飞行器控制系统设计 [J].常熟理工学院学报,2013,27(2):109-113.
[5] 解琛.基于STM32四轴飞行器的设计 [J].科学家,2017,5(17):61-62.
[6] 彭玲,薛凌云.基于STM32的四轴飞行器的设计与实现 [J].教育现代化,2016(2):161-161.
作者简介:闫晓兵(1975—),男,汉族,山东泰安人,高级工程师,硕士研究生,研究方向:电子信息工程。