一种基于STM32 的航模直升机飞控系统设计*
2012-12-22陈贻国钱金芳潘日敏
陈贻国,钱金芳,潘日敏
(浙江师范大学数理信息与工程学院,浙江 金华321004)
直升机由其独特的飞行性能在军用和民用领域获得了越来越广泛的应用。小型无人直升机具有直升机和无人机的共同优点,而且还有体积小,机动性强等特点。但由于小型无人直升机体积小,受气流影响大等原因,导致其飞行控制系统的设计面临着很多挑战。主要表现在以下几方面[1]。
(1)直升机本身和它的飞行动力学模型具有很强的非线性特点;
(2)直升机的运动量之间存在着严重的耦合;
(3)直升机的自稳定性不足,飞行状态在很多情况下是不稳定的;
(4)直升机易受外界气动环境的干扰;
(5)直升机存在着多种飞行模态,不同的飞行模态下控制规律存在差异。
本文就上述直升机存在的问题,提出了一种基于多传感器和自适应PID 控制策略的飞行控制系统的设计方法。并设计了基于STM32 微控制器的飞控电子设备和基于主从模式的地面控制软件,通过在型号为TREX450SE 的直升机航模上进行飞行实验,实现了悬停和低速状态下的自主飞行。
1 飞行控制系统的硬件设计
图1 飞行控制硬件系统机载部分示意图
飞行控制系统采用如图1 所示的硬件系统。采用了基于RAM 内核的STM32F103RB 微控制器,该控制器具有128 kbit 的Flash 存储器和64 kbyte 的数据存储器,有串口,IIC 总线等丰富的外设资源[2]。采用了LM7805 等三端集成稳压芯片为系统提供5 V 和3.3 V 的直流电源,系统分为机载部分和地面控制部分,两部分通过nRF905-33E 无线通信模块进行数据交换,可以实现空旷区3 km 范围内的可靠通信。
机载部分采用了三轴电子罗盘HMC5883L 和三轴加速度传感器ADXL345 组成飞行姿态测量系统。电子罗盘和加速度传感器采用的是IIC 总线方式与微控制器相连,微控制器通过访问不同的服务地址实现对不同传感器的数据通信和控制。由芯片的数据手册可得电子罗盘的服务地址为0x3c,加速度传感器的服务地址为0xa6。HMC5883L 电子罗盘采用的是霍尼韦尔各向异性磁阻技术,因而具有在轴向高灵敏度和线性精度高的特点,罗盘的航向精度可达到1°。采用了超声波和数字气压计MS5540-CM 两个传感器来对航模的飞行高度进行精确的测量,由于气压计测量的是距离海平面的绝对高度,与航模的实际距地面的飞行高度有一定的差距,而且测量的精度有限[3],因而系统采用了超声波测距模块,该模块可以在2cm 到3m 范围内精确测量出航模距地面的实际距离。导航系统则采用了GPS模块,该模块通过RS232 串口与微控制器相连。
对于地面基站部分则采用了STM32F103RB 微控制器和nRF24L01 组成,微控制器通过USB 口直接和上位机相连。
2 飞行控制数学模型辨识
绝大部分的直升机航模都是通过自动倾斜器来实现对主旋翼的横向周期变距、纵向周期变距、总变距的控制的。首先需要知道控制自动倾斜器的三个舵机的操纵量与总距、横向周期变距、纵向周期变距之间的关系。
对于控制主旋翼的倾斜器的三个舵机的操纵量δ1、δ2、δ3舵机作用点与周期变距角φ1、φ2,主旋翼的总距角φz的关系如图2 所示,其中在TREX450SE直升机航模中φ1=φ2=30°,而舵机3 与倾斜器的链接点与Y 轴重合。
图2 航模直升机主旋翼与总距角关系示意图
图2中,R 为舵机作用点到倾斜器中心的距离,φ1为舵机1 作用点与倾斜器X 轴夹角,φ2为舵机2作用点与倾斜器X 轴夹角,φx为横向周期变距角,φy为纵向周期变距角,φz为总距角,V 为航模飞行方向。
若不考虑机械结构的弹性和惯性以及操作过程中的动态响应,仅从运动的几何关系考虑,在主旋翼的总距角为φz时,当三个舵机的操纵量分别为δ1、δ2、δ3,主旋翼的轴距角变化为φ0,则由图中可知舵机位移与桨距的关系如式(1):
可以认为当变化量很小,即φ0很小时,当直升机平稳飞行时φx,φy,φz都很小[5],则由式(1)可得式(2)。
即
上式体现了舵机的位移与直升机航模操纵量——总距、横向周期变距、纵向周期变距之间的关系。依据式(2),可以得出操纵控制需要的舵机位移量和需要转动的角度。
由于直升机航模飞行的动力学模型呈非线性特点,而且实际航模的飞行平衡方程是一个多阶的非线性方程组[4]。求解相对复杂,可以采用以下简化的方程组来近似估算航模飞行的配平值。假设航模飞行在悬停的飞行状态下,并且航模的姿态角都是小角度变化,认为姿态角的正弦值为其本身,则直升机航模悬停时的平衡方程可以简化为式(3)[6]。具体参数定义可见参考文献[6]。
由上式可得航模机悬停时的配平部分结果如表1。
表1 航模机悬停时的配平部分结果 单位:(°)
3 自适应PID 控制策略设计
自适应PID 控制策略指的是在传统的PID 控制策略上添加了与系统模态相关的控制量,同时为了满足系统控制门限的要求,在PID 的输出端增加了控制的门限区[6]。系统的自适应PID 控制策略采用的是增量式PID,增量式PID 只是控制输出的增量,与位置式PID 相比能有效地减小微控制器误动作造成的影响。自适应增量式PID 的参数运算方程如下[7]。
其中P、I、D 分别为比例项、积分项和微分项的控制参数,当其为0 时表示该参数项不起作用。KP为比例项系数,K 为积分项系数,KD为微分项系数。Δe 为输入偏差量、Δel为上一次输入偏差量,Δep为上上次输入偏差量。为减少控制的振荡,系统设定了一个偏差量的不灵敏度门限,即当输入的偏差量小于该门限值时则不进行PID 控制。同时传感器的测量值通常会在一个小范围内波动,增加不灵敏度门限有利于减少这种波动所带来的操纵误动作。
4 悬停和低速飞行状态下的操纵控制
对于TREX450SE 直升机航模,共有4 个控制舵机,分别用于控制自动倾斜器和尾翼的桨距。由于直升机航模运动量之间存在着严重的耦合,对其中某一个操纵量进行控制的同时需要考虑到该操纵控制对其它操纵量的影响。例如自动倾斜器是由三个舵机进行控制的,由式(2)可以看到舵机的操纵量δ1、δ2、δ3与周期变距角、总距角存在着较严重的耦合关系,即单独控制舵机的操纵量会同时影响到周期变距和总距。因而必须对三个舵机同时进行控制以避免这种耦合关系所带来的影响。
4.1 飞行姿态的控制
主旋翼是单旋翼带尾翼式直升机的主要操纵面,也是航模姿态控制中的主要控制对象。对主旋翼的控制是航模姿态控制的重点。对主旋翼的控制其实就是对自动倾斜器的控制。本系统设计如图3所示的闭环控制。
图3 主旋翼控制原理示意图
主旋翼的控制包括横向周期变距的控制,纵向周期变距的控制和总距的控制。
首先由微控制器读取加速度传感器ADXL345 的测量的航模的飞行姿态数据,该数据为航模的横向倾斜角和纵向倾斜角,首先将数据进行滤波,将滤波后的数据与设定的航模悬停配平值进行求差,得到角度的偏差,再通过自适应PID 控制算法求得控制的增量,通过操纵量与周期变距和总距的关系式(2)可得到每个舵机的操纵偏差量,将得到的操纵偏差量叠加到原先的控制量控制舵机的偏转角度,进而达到调整航模飞行姿态的目的。
总距的控制,航模主旋翼的总距的增加不仅会上升力增加,同时也会增加电机的负载,单独的增加旋翼总距而不提高电机的输出功率,则会造成功率不匹配。因而要航模保持平衡就必须在增加总距的同时,增加电机的输出功率,也即需要增加油门操纵。
4.2 航向的控制
尾翼的作用主要是产生航模飞行的侧力,从而形成偏航力矩,用以配平旋翼反扭矩并实施航向操纵,以实现对航模进行航向控制。系统设计了如下的一个基于HMC5883L 电子罗盘传感器的尾翼控制闭环控制。
图4 尾翼控制原理示意图
5 飞控系统软件设计
飞行控制软件系统采用了模块化设计的思路,将系统分为数据采集模块、轨迹控制模块、飞行控制计算模块、舵机控制模块等四个主要模块。在数据采集模块中进行三轴倾角、磁偏角、GPS、飞行高度等数据采集工作。轨迹控制模块中应用数据采集模块得到的飞行状态数据和地面控制指令计算出飞行高度指令和航向控制指令。而在飞行控制计算模块中,则通过姿态控制算子和航向控制算子计算航模四个舵机的控制量。舵机控制模块则根据每个舵机的控制量来改变PWM 波发生模块的相应PWM 波的占空比,从而实现舵机转角控制。
图5 飞控系统软件流程图
6 飞行仿真验证及飞行试验
飞行控制系统的仿真应用了MatLab 软件[12]将多次飞行试验得到的数据进行分析、建模[7-11]并在此基础上对PID 控制系统的参数进行整定,最终得到较为理想的控制参数。
图6 给出了航模控制系统对高度控制指令的跟随响应,可以看到航模高度控制具有一定的延时性和较强的跟随性[7],同时可以看到其在逼近指定高度时有一定的过冲和振荡,但在随后的过程中能很快的保持稳定。
图6 航模飞行定高飞行仿真图
图7给出了尾翼总距随着油门舵机的输出量的增加所产生的响应,从该图可以看出尾翼总距随着电机输出功率的增加而增大,符合航模在上升时旋翼反扭矩增大的规律[6]。
图7 尾翼控制方波信号响应图
图8给出了航模在起飞时,横向侧倾角,俯仰角、旋翼总距随着航模的抖动时发生的变化,可以看到系统对抖动噪声有较强的拟制作用,同时可以看到旋翼总距在一个小角度内发生变化,只是在横向侧倾角和纵向俯仰角同时增大时增大,说明旋翼总距只有在航模加速或减速时才会发生变化,降低了横向侧倾角、俯仰角和旋翼总距之间耦合所产生的影响,符合实际控制的要求。
图8 横纵向侧倾角与旋翼总距试飞数据图
7 结束语
经过多次实际飞行测试表明该小型自主飞行的航模机控制系统可以实现悬停飞行和定点飞行。在精度要求不高的情况下,可以完成一些特定的任务。但由于本系统受传感器特别是加速度传感器的精度影响较大,很难做到高精度的飞行。因而下一步的研究重点是提高数据滤波器的滤波特性和优化控制算法,同时在硬件上采用精度更高的加速度传感器,以实现更高精度的定点自动控制飞行。
[1] 施建昌.小型无人直升飞机飞行控制电路设计[D]:[硕士学位论文].北京:北京交通大学,2008.6.1-2.
[2] 王永虹,徐炜,郝立平.STM32 系列ARM Cortex-M3 微控制器原理与实践[M].北京:北京航空航天大学出版社,2008:11-25.
[3] 家裕,裴海龙. 一种小型无人机高度定位方法的研究与实现[J].天津:自动化与仪表,2010,12:1-6.
[4] 宋宝泉. 小型无人直升机非线性建模与控制算法研究[D]:[博士学位论文].长沙:国防科技大学,2010,4:13-40.
[5] 张鹏.基于VxWorks 的无人直升机操纵控制系统设计与实现[D]:[硕士学位论文].南京:南京航空航天大学,2007,6:26-27.
[6] 高正,陈仁良. 直升机飞行动力学[M]. 北京:科学出版社,2003:65-69.
[7] 刘金琨.先进PID 控制MATLAB 仿真[M]. 北京:电子工业出版社,2004:1-27.
[8] 戴宁,司云玲.基于MATLAB 的直升机飞行控制系统建模与仿真[J].系统仿真学报,2005,10:240-242.
[9] 王洋,张京娟.基于自适应控制器的无人机飞行控制系统研究[J].弹箭与制导学报,2009,9:17-18.
[10] 李宜达. 控制系统设计与仿真[M]. 北京:清华大学出版社,2004:268-291.
[11] Stingu E,Lewis F L.A Hard Ware Platform for Research in Helicopter UAV Control[J].Journal of Intelligent & Robotic Systems,2009,54(1-3):387-406.
[12] 刘为国.MATLAB 程序设计教程[M]. 北京:中国水利水电出版社,2004:99-129.