杨 萌,雷建和,胡廷轩,宫汝林(青岛理工大学 自动化工程学院,山东 青岛 266520)
基于STM32的四旋翼飞行器控制系统设计
杨萌,雷建和,胡廷轩,宫汝林
(青岛理工大学自动化工程学院,山东青岛266520)
四旋翼飞行器控制系统的性能决定了飞行效果的优劣,如何改善飞行控制系统使其拥有更良好的表现成为近几年的研究热点。根据四旋翼飞行器的飞行原理,设计了一种新型四旋翼飞行器控制系统。该系统以STM32作为主控制器,配合各姿态传感器实现飞行器姿态及位置的控制,并结合以姿态角为主要误差源的双环结构PID控制器,提高了飞行器的平稳性。经实际飞行验证,该飞行控制系统方案能够取得较稳定的飞行效果。
四旋翼;飞行控制;STM32;PID控制
目前,以精确的电子技术取代复杂的机械结构已成为一种趋势,四旋翼飞行器(four-rotor)以机载电子设备控制机身的姿态及运动,机械结构得到简化,降低了生产成本及维护成本。它可以实现垂直起降、悬停等空中动作,飞行速度为每秒几米甚至十几米,具有较高的机动性与操控性,与其他类型飞行器相比具有较明显的优势,在军工、警用、民用等诸多领域有广泛的应用前景。
四旋翼飞行器具有4个输入力,但却有6个状态输出,是一个欠驱动系统,具有非线性、强耦合、多变量等特性,因此对控制器的设计要求较高[1]。根据四旋翼飞行器结构特点及实际需求,选用意法半导体公司生产的STM32F405RG微处理器作为控制系统的主控制器,其强大的运算处理能力及丰富的片上资源能够满足四旋翼控制的需求。
四旋翼飞行器结构形式是一种最直观、最简单的稳定控制形式。四旋翼飞行器机身为两根刚性支架呈十字形交叉结构,飞控板、外部设备及电池等安装在支架的交叉处,作为飞行器动力来源的4个电机及旋翼轴对称地安装在支架的4个末端,相邻两个旋翼旋转方向相反,空中平衡飞行时相邻旋翼产生的反作用力相互抵消,防止机身自旋[2]。通过控制4个旋翼的转速,产生升力的变化,便可实现飞行器空中姿态的控制。四旋翼飞行器有6种基本的运动状态,分别是:垂直运动、前后运动、侧向运动、俯仰运动、滚转运动和偏航运动。基于以上基本运动状态,四旋翼可以完成各种复杂动作[3]。四旋翼的结构形式如图1所示。
图1 四旋翼的结构形式
四旋翼飞行器的控制系统主要由主控制器、各种姿态传感器、数据传输模块、电机及其驱动模块组成。主控器通过SPI、IIC总线采集各姿态传感器的数据,实时计算飞行器相对于地面的姿态角和航向角的变化,结合相应的控制律与任务指令输出恰当的PWM波信号,电调根据PWM波处理产出相应的电压信号输入给4个电机,以此控制电机转速,实现自动调整飞行器在空中的姿态与位置。四旋翼飞行器飞行控制系统设计方案如图2所示。
图2 飞行控制系统设计方案
2.1主控制器
四旋翼控制系统对实时性、稳定性及低功耗具有较高要求,因此选用一款高性能的芯片作为其主控制器尤为重要。STM32F405RG基于32位ARMCortex-M4内核开发,主频可达168MHz,处理单条指令速度可达1.25DMIPS/MHz,满足对数据处理速度的要求。它具有功耗动态调整功能,能够在运行模式下和从Flash存储器执行时实现低至238A/MHz的电流消耗。多达15个高速通信接口,包括6个USART、3个SPI和3个IIC等,可用于将各传感器模块采集的姿态数据传输给主控制器。STM32集成多个PWM定时器,可实现多路PWM脉冲信号的输出。用户可使用SWD或JTAG两种模式下载和调试程序。
2.2陀螺仪传感器
陀螺仪是飞行器惯导系统中的核心器件,用于检测俯仰、滚转和偏航3个方向的角速度,积分后可得到相应的倾斜角度[4]。控制器对倾斜角的控制使飞行器在受到外界干扰(如气流等)时能保持姿态的平稳。
系统采用体积小、功耗低的MAX21000型号3轴数字输出陀螺仪。用户可设定±31.25~±2 000dps的量程范围,灵敏度可达960digit/dps。通过10MHz的SPI接口向STM32提供测得的角速度数据。陀螺仪工作时存在一定的温度漂移,需通过软件对陀螺仪中立点进行实时修正来提高数据的精准度。MAX21000陀螺仪电路原理如图3所示。
图3陀螺仪电路
2.3加速度传感器
本系统采用ST公司的LSM303D加速度计。该芯片整合了一个3轴加速度计和一个3轴磁场传感器。通过SPI接口向STM32提供数据。LSM303D加速度计电路原理如图4所示。
图4 加速度计电路
加速度传感器用于检测飞行器轴向的加速度,积分可得飞行速度与距离。陀螺仪的数据因为存在“温漂”,在积分作用下,较长时间后数据将不可靠,加速度计传感器的数据可以对陀螺仪的误差进行矫正。但同时加速度传感器对震动比较敏感,加入简单的滤波会降低数据的实时性,因此精确的姿态采集需多传感器配合实现。
2.4高度计
HC-SR04超声波测距模块只需提供一个10μm以上的脉冲触发信号,将自动发射8个40kHz方波,同时检测是否有返回波,根据发射信号与检测到返回信号的时间差可计算模块与障碍物的距离。该模块测量飞行器离地高度精度可达3mm,在精度上优于气压计,但是也有其缺陷,当地面为草坪或被测障碍物表面不平整时,返回的信号太弱。同时该模块测距范围为2~400cm,只能用于较低高度的检测。
飞行器在户外飞行时,高度易超出超声波模块的测量范围,则系统采用MS5611气压传感器测量高度[5]。上电时,气压传感器测量当前的稳定气压并保存为0m气压,此后飞行器高度改变,在此参数基础上进行叠加。该芯片集成了一个24位AD转换器,将气压值转换成数字信号输出,测距精度可达10cm。
选择合适的坐标系有利于四旋翼飞行器飞行状态的分析。如图1所示,本文选择地面坐标系为E(OXYZ),机体坐标系为B(oxyz)。地面坐标系与机体坐标系的关系为滚转角φ、俯仰角θ和偏航角ψ,表示分别绕Bx、By、Bz旋转到Ex、Ey、Ez轴的角度。从机体坐标系B到地面坐标系E的旋转矩阵R可表示为:
定义 Fi(i=1,2,3,4)表示第 i个旋翼产生的升力。在机体坐标系下,飞行器所受的拉力为:
代入旋转矩阵R可转换为飞行器在地面坐标系中的受力:
定义l为飞行器臂长,Mφ、Mθ、Mψ分别为飞行器绕机体坐标系3个轴的转矩,Iφ、Iθ、Iψ分别为飞行器绕机体坐标系3个轴的转动惯量,ωi为旋翼i转速,则飞行器在滚转、俯仰、偏航3个方向上的转矩为:
由欧拉方程可得,四旋翼飞行器在地面坐标系中的角加速度方程式为:
令:
式(7)为四旋翼飞行器控制系统的 4个输入力,U1、U2、U3、U4分别为飞行器的滚转力、俯仰力、偏航力及升力。结合式(4)、式(6)和式(7)可得四旋翼飞行器的动力学模型为:
该动力学模型忽略了空气阻力、机体形变、重力加速度随高度的改变而变化等对系统影响较小的因素,相对于实际飞行状态,该模型进行了简化,有利于控制算法的设计。
本系统采用双环PID设计,内回路为姿态PID回路,外回路为位置PID回路[6]。给出预期位置指令后,位置PID回路计算出所需改变的姿态角,输入给姿态回路,姿态回路计算出电机的控制量。姿态的改变可引起飞行器线性的运动,因此实施闭环设计以精确控制飞行器的姿态。位置控制回路的设计可以使飞行更精确、快速地按照设定轨迹飞行。PID控制器结构如图5所示。
图5 PID控制器结构
四旋翼平衡飞行时,PID控制器以倾斜角作为其主要的误差来源,通过将偏差量的比例、积分和微分进行线性组合,构成控制量。比例参数的大小决定了控制器的响应速度,但参数过大会使系统不稳定;对角速度积分后可得飞行器的倾斜角度,从而产生抵抗力,消除倾斜角,直到飞行器达到平衡位置;飞行器偏差的产生与控制器的响应之间存在微秒级的滞后,微分环节能提前抑制倾斜角的偏差,但是过强的微分会放大传感器的噪声干扰,降低控制器的抗干扰性能。因此设定恰当的PID控制参数才能保证飞行器达到稳定的飞行状态。
飞行实验在室内进行,实验过程中,地面监控站接收飞行器通过串口模块传送的实时飞行数据,并将其保存,同时设定悬停高度为2m。手动操控四旋翼飞行器起飞至2m左右,切换到平衡模式,使其进行悬停飞行,在此过程中,飞控系统对飞行器的滚转角、俯仰角及高度进行自主控制。飞行实验时间约为2min,实验结果如图6~8所示。
图6 滚转角曲线
图7 俯仰角曲线
图8 高度曲线
从图6和图7可以看出,飞行器的滚转角度和俯仰角度基本控制在±2°以内,俯仰角的稳定性略高于滚转角,两个姿态角都达到了较理想的控制效果。
图8为高度曲线,从图中可以看出,飞行器在最初的几秒内自主调整到设定的高度位置,之后的时间稳定在1.9m到2.1m之间。飞行器高度的自主调整在0.2m的范围波动,但总体仍在目标高度附近。
本文提出了一套四旋翼飞行器控制系统的设计方案,经悬停飞行实验验证,飞行器能够成功实现滚转、俯仰和高度的自主控制,各个模块性能可靠、稳定,达到了设计要求。飞行控制系统以STM32为主控制器,与传统单片机相比具有较明显优势,其丰富的片上资源有利于系统功能的进一步扩展,为后续课题的研究提供了良好的平台。四旋翼飞行器操控难度低、飞行角度灵活,在军事侦查、安全巡检、低空航拍等众多领域具有广泛的应用前景。
[1]刘乾,孙志锋.基于ARM的四旋翼无人飞行器控制系统[J].机电工程,2011(10):1237-1240.
[2]殷强.四旋翼无人机自主控制系统研究[D].天津:天津大学,2011.
[3]杨明志,王敏.四旋翼微型飞行器控制系统设计[J].计算机测量与控制,2008,16(4):485-490.
[4]韩涛.四倾转旋翼机直升机模式飞行控制系统研究[D].哈尔滨:哈尔滨工业大学,2012.
[5]冀明,卢京潮.基于Cortex-M4的四旋翼飞行控制系统设计[J].计算机测量与控制,2013,21(7):1816-1821.
[6]宿敬亚,樊鹏辉,蔡开元.四旋翼飞行器的非线性 PID姿态控制[J].北京航空航天大学学报,2011,37(9):1054-1058.
Design for control system of four-rotor aircraft based on STM32
Yang Meng,Lei Jianhe,Hu Tingxuan,Gong Ruling
(School of Automation Engineering,Qingdao Technological University,Qingdao 266520,China)
The performance of control system of four-rotor aircraft determines the flight effect,how to improve the flight control system enables it to have better performance has become the hotspot of research in recent years.According to the flight principle of four-rotor aircraft,a four-rotor aircraft control system is designed.The system uses STM32 as the main controller,with each attitude sensor to achieve the control of posture and position of aircraft,and combined with the double loop structure of PID controller which the main error source depends on attitude angle,improving stability of aircraft.The actual flight shows that the flight control system can obtain stable flight effect.
four-rotor;flight control;STM32;PID control
TP391.8
A
1674-7720(2015)12-0076-04
2015-01-30)
杨萌(1990-),通信作者,男,硕士研究生,主要研究方向:控制理论及应用。E-mail:33385024@qq.com。
雷建和(1961-),男,副教授,硕士生导师,主要研究方向:控制理论及应用、机器人技术、模式识别与智能系统。