摘要
飞行控制系统多以高性能CPU为处理器和Vxworks为设计内核,存在成本高、体积大、内核源码不公开等问题,因此设计一款低成本、高可靠性的小型无人机飞行控制系统。基于STM32F4芯片开发一套由微型控制器、各种传感器和执行机构构成的飞行控制硬件系统,实现对无人机的姿态和舵机位置的控制;引入源码公开的FreeRTOS嵌入式实时系统作为软件平台开发飞行控制软件,实现飞行控制、自主导航、飞行管理等功能;通过固定翼航模的飞行试验对该飞行控制系统进行验证。结果表明:该系统具有良好的稳定性、实时性,控制精度高。
随着航空电子技术的发展,无人机越来越受关注,作为无人机系统的控制核心,国内外对飞行控制系统的研发也逐渐深入。无人机飞行控制硬件架构的发展经历了从DSP到MCU+FPGA、SOPC等发展阶段。Fuller
运行在飞行控制计算机的飞行控制软件开发通常基于嵌入式操作系统VxWorks平台。Murray
STM32F4系列处理器是一种基于Cortex-M4系列ARM内核的微型控制器,外设资源丰富,支持实时多任务处理,功耗低;FreeRTOS是一个完全免费的多任务实时操作系
综合制造成本、源码可见等因素,本文对由硬件与软件两部分组成的飞行控制系统进行设计,选用STM32F427VIT6Z作为主控器,通过搭建串口通讯、舵机控制、A/D采集等外围电路,构建飞控计算机硬件平台;在此基础上移植FreeRTOS操作系统,设计飞行控制软件架构,并通过固定翼航模的飞行试验对该飞行控制系统进行验证。
本文设计的飞行控制系统以两片微型控制器STM32F427VIT6为核心处理器,工作频率可达180 MHz,与各传感器、执行机构共同构成闭环控制系统,硬件结构框图如

图1 飞行控制系统硬件结构框图
Fig.1 Block diagram of flight control hardware
两个ARM控制器独立运行,并通过串行外围接口SPI总线通信,可以手动或者自动实现双ARM的主副切
飞行控制系统需要具备串口通信能力,用于采集GPS位置信息、传感器的各种信号、其他航电设备数据,并且和地面数传电台通信等,采用RS422串口通信方式,硬件原理如

图2 串口通信电路图
Fig.2 Circuit diagram of serial communication
舵机是飞行控制系统的执行机构,通过舵机驱动舵面的偏转实现无人机姿态的改变,而舵机位置由脉冲宽度调制(PWM)信号控制,选用STM32F4处理器自带的定时器外设,产生并改变PWM信号的占空比,从而使舵机输出轴偏转一定角度并保持在该角度。STM32F4输出的PWM信号为3.3 V,如

图3 PWM电压转换电路图
Fig.3 Circuit diagram of pulse width modulation voltage
飞行控制系统实时监测模拟量输出的信号包括俯仰、滚转、油门舵机反馈、纵向舵机反馈、横向舵机反馈、航向舵机反馈和28 V电源电压等信号。STM32F4处理器只能采集数字信号,模拟信号经过滤波后,须通过A/D转换才能作为输

图4 28 V模拟电压采集电路图
Fig.4 Circuit diagram of 28 V analog voltage acquisition
飞行控制系统结构框图如

图5 飞行控制系统结构框图
Fig.5 Block diagram of flight control system
硬件驱动层在软件结构的最底层,对 I/O PWM、A/D采集、串口、嵌套中断控制器等硬件资源进行驱动,为上层软件提供接口调用。操作系统层向应用程序层提供内存管理、任务调度、任务通信与同步、文件系统功能。应用程序层位于最上层,采用模块化设计分为:飞行管理、航路控制、数据采集、控制律解算、余度管理、机内自检等功能模块。飞行管理负责无人机飞行模态的切换;控制率解算与航路控制,负责无人机的内外环控制,进行航迹、无人机姿态的调节,算法采用PID算法,控制周期为10 ms,数据采集负责无人机航电系统、任务系统、数据链遥控信息的解析,机内自检与余度管理相结合,对无人机的高度、姿态等关键信息进行实时监控与切换。
飞行控制软件要求高实时性,选用FreeRTOS为操作系统平台,进行各个软件周期任务的实时调度。FreeRTOS任务调度通过STM32F4处理器自带的系统定时器(systick)触发可挂起的系统调用(PendSV)异常实现,每产生一次定时器中断,FreeRTOS检查当前正在运行的任务环境,从而判断是否需要进行任务切换。如果需要,则触发PendSV,通过在PendSV中断进行上下文切换来实现任务的调度。在该软件环境下,选用抢占式调度和时间片两种调度方
飞行控制计算机作为无人机的控制中心,需要实时接收并处理来自无人机航电设备的大量数据,飞行控制软件内部通过中断的方式接收数据。为了提高中断和任务以及任务间的同步效率,使用FreeRTOS自带的任务通知量(TaskNotify)功能进行周期实时任务同步,如

图6 周期实时任务同步机制示意图
Fig.6 Periodic real-time task synchronization diagram
数据通信管理是飞行控制软件极其关键的功能之一。飞行控制系统作为无人机的大脑,地面测控站发来的控制命令和数据、机载传感器测量的各个有关的无人机运动参数、GPS信号、任务单元数据等都由飞行控制计算机进行处
为了提高飞行控制系统的可靠性,常采用故障建模与分析技
1) 串口监测,连续5个帧周期未收到正确数据(包括未收到数据,帧头错误,校验和错误),则报告串口故障。
2) 模拟量监测,机载计算机的电压值为12 V,模拟量采集电压值是否在(12±1) V电压范围内,两者误差超过给定值,则报告模拟量故障。
3) 两个CPU交叉对比故障信息,若一个CPU监测信息正常,另外一个CPU监测信息故障,则切换到监测信息正常的CPU。
针对高度的余度管理,在GPS有效且信号良好的情况下,飞行控制系统选用差分GPS高度为实测飞行高度,以气压高度为备份。
此外,STM32F4处理器集成了看门狗电路,在软件程序中引入看门狗模块,当程序“跑飞”或者死机后,使软件自动复位;如果表决机制确定一个CPU故障,自动停止喂狗信号,使系统复位,重新进行CPU故障检测。
为验证飞行控制系统的功能和性能,将飞行控制计算机安装在航模上,选用微型电子机械系统(MEMS)传感

图7 无人机飞行航模
Fig.7 Flight trial model of UAV
试验流程如下:
1) 地面准备阶段,飞行控制计算机上电自检,地面控制站发送自检控制指令,舵偏控制正常,传感器姿态正常,GPS定位正常,电机大、中小马力正常,地面控制站发送空中任务航线与返航航线。
2) 起飞阶段,地面控制站发送一键起飞指令,无人机滑跑起飞,当到达起飞速度后,控制舵面使无人机抬头,从地面飞向空中,中间保持爬升姿态,爬升到200 m后,到达安全高度。
3) 航线任务阶段,地面控制站发送程控指令,无人机切到自主控制状态,依次完成圆盘航线与8字圆盘航线的飞行。圆盘航线如

图8 无人机圆盘飞行航迹
Fig.8 UAV drone disc flight track

图9 无人机圆盘飞行航迹偏差
Fig.9 UAV disc flight track deviation
参数 | 数值 | 参数 | 数值 |
---|---|---|---|
航偏平均值/m | 1.55 | 滚转角最小值/(°) | -6.98 |
滚转角最大值/(°) | -0.14 |
8字圆盘航线如

图10 无人机8字圆盘飞行航迹
Fig.10 UAV 8 disc flight track

图11 无人机8字圆盘飞行航迹偏差
Fig.11 UAV 8 disc flight track deviation
方向 | 航偏平均值/m | 滚转最大值/(°) | 滚转角最小值/(°) |
---|---|---|---|
顺时针 | -1.94 | 7.03 | -2.45 |
逆时针 | 2.14 | 3.64 | -5.86 |
4) 返航阶段,当无人机完成任务航线后,自动执行返航航线任务,无人机飞往返航航线,并按照程序设定下滑到地面,将电机转速降为0。
1) 本文设计的基于STM32F4与FreeRTOS的无人机飞行控制系统,具有开发成本低、可移植性强等优点,提高了无人机飞行控制技术的自主性。
2) 为了提高飞行控制系统的安全性,还需要增加对FreeRTOS操作系统内存分配、堆栈溢出等方面的安全保护检测。
后续研究可以完善飞行控制软件架构,增加I/O中间件层,通过一套Linux/Posix风格的open()、read()、write()、ioctl()类型的标准接口来统一访问底层驱动和文件系统。
参 考 文 献
FULLER B, KOK J, KELSON N, et al. Hardware design and implementation of a MAVLink interface for an FPGA-based autonomous UAV flight control system[C]∥ Austra-lasian Conference on Robotics and Automation. Melbourne, Australia: IEEE, 2014: 1-11. [百度学术]
PARK B J, KANG Y S, YOO C S, et al. Development of operational flight program for smart UAV[J]. Journal of the Korean Society for Aeronautical & Space Sciences, 2013, 41(10): 403-412. [百度学术]
张小林. 基于PC104 的飞行控制系统[J]. 测控技术, 2000, 19(12): 24-25. [百度学术]
ZHANG Xiaolin. A flight control system based on PC104[J]. Measurement and Control Technology, 2000, 19(12): 24-25.(in Chinese) [百度学术]
方传中, 卢利斌. 基于PC/104的无人机飞行控制系统的数据采集[J]. 战术导弹技术, 2006(2): 71-74. [百度学术]
FANG Chuanzhong, LU Libin. The data acquisition of flight control system in UAV based on PC/104[J]. Tactical Missile Technology, 2006(2): 71-74.(in Chinese) [百度学术]
周文霞, 胡志忠, 肖前贵, 等. 基于ARM的某型无人机飞控计算机设计[J]. 计算机测量与控制, 2009, 17(7): 1286-1288. [百度学术]
ZHOU Wenxia, HU Zhizhong, XIAO Qiangui, et al. Research on UAV flight control computer based on ARM[J]. Computer Measurement and Control, 2009, 17(7): 1286-1288.(in Chinese) [百度学术]
MURRAY C J. VxWorks OS takes helm of NASA craft[J]. Electronic Engineering Times, 2001(2): 124-132. [百度学术]
施晓颖, 褚双双. 基于VxWorks 与RTW Embedded Coder 的无人直升机机载飞控软件系统[J]. 电子设计工程, 2012, 20(4): 45-51. [百度学术]
SHI Xiaoying, CHU Shuangshuang. Design of a flight control software system based on VxWorks and RTW Embedded Coder[J]. Electronic Design Engineering, 2012, 20(4): 45-51.(in Chinese) [百度学术]
张朋, 李春涛. 基于VxWorks的小型无人机飞行控制软件设计[J]. 计算机测量与控制, 2014, 22(8): 2687-2691. [百度学术]
ZHANG Peng, LI Chuntao. Flight control software design for small unmanned aerial vehicle based on VxWorks[J]. Computer Measurement and Control, 2014, 22(8): 2687-2691.(in Chinese) [百度学术]
BARRY R. Using the FreeRTOS real time kernel: a practical guide[R]. US: Real Time Engineers Ltd., 2010. [百度学术]
张龙彪, 张果, 王剑平, 等. 嵌入式操作系统FreeRTOS的原理与移植实现[J]. 信息技术, 2012(11): 31-34. [百度学术]
ZHANG Longbiao, ZHANG Guo, WANG Jianping, et al. Principle and implementation of porting RTOS FreeRTOS[J]. Information Technology, 2012(11): 31-34.(in Chinese) [百度学术]
刘滨, 王琦, 刘丽丽. 嵌入式操作系统 FreeRTOS的原理与实现[J]. 单片机与嵌入式应用, 2005( 7): 8 -11 [百度学术]
LIU Bin, WANG Qi, LIU Lili. Principles and implementation of embedded operating system FreeRTOS[J]. Microcontrollers & Embedded Systems, 2005(7): 8-11.(in Chinese) [百度学术]
孙斌, 胡跃黎, 王昆. SPI总线用于双处理器通信的数据链层设计及其实现[J]. 上海大学学报(自然科学版), 2012, 18(5): 513-518. [百度学术]
SUN Bin, HU Yueli, WANG Kun. Data link layer design and implementation based on spi bus for dual-processor communication[J]. Journal of Shanghai University (Natural Science Edition), 2012, 18(5): 513-518.(in Chinese) [百度学术]
何湘智, 吴晖, 王荣春. 基于μC/OS-II的无人机飞控系统软件设计[J]. 机械与电子, 2010(8): 34-36. [百度学术]
HE Xiangzhi, WU Hui, WANG Rongchun. Design of UAV control system software based on μC/OS-II[J]. Machinery & Electronics, 2010(8): 34-36. (in Chinese) [百度学术]
罗霄, 薛亚洲, 张乐. 一种无人机飞控计算机硬件平台的设计实现[J]. 电子测量技术, 2021, 44(1): 50-54. [百度学术]
LUO Xiao, XUE Yazhou, ZHANG Le. Design and implementation of a small UAV flight control computer hardware platform[J]. Electronic Measurement Technology, 2021, 44(1): 50-54.(in Chinese) [百度学术]
尹伟, 韩光辉, 肖前远, 等. 面向民用飞机的复杂航电系统软件研制与管理方法[J]. 航空工程进展, 2023, 14(4): 158-167. [百度学术]
YIN Wei, HAN Guanghui, XIAO Qianyuan, et al. Software development and management methods for complex avionics systems for civil aircraft[J]. Advances in Aeronautical Science and Engineering, 2023, 14(4): 158-167.(in Chinese) [百度学术]
LIN C K , WANG B Y. Analyzing FreeRTOS scheduling behaviors with the spin model checker[EB/OL]. [2023-03-24]. https:∥ arxiv.org/abs/2205.07480. [百度学术]
ZHENG Zheng, XIAO Guanping. Evolution analysis of a UAV real-time operating system from a network perspective[J]. Chinese Journal of Aeronautics, 2019, 32(1): 176-185. [百度学术]
胡泽龙, 孙刚, 徐智. 基于VxWorks的无人直升机飞控应用软件改进与实现[J]. 直升机技术, 2018(4): 24-28. [百度学术]
HU Zelong, SUN Gang, XU Zhi. Improvement and realization of UAV flight control system software based on VxWorks[J]. Helicopter Technique, 2018(4): 24-28.(in Chinese) [百度学术]
温晓玲, 姜梦岑, 艾笑天, 等. 基于系统架构与运行框图的机载软件故障建模与分析应用[J]. 航空工程进展, 2023, 14(4): 168-176. [百度学术]
WEN Xiaoling, JIANG Mengcen, AI Xiaotian, et al. Airborne software fault modeling and analysis application based on system architecture and operation diagram[J]. Advances in Aeronautical Science and Engineering, 2023, 14(4): 168-176.(in Chinese) [百度学术]
潘计辉, 张盛兵, 王党辉. 高空长航时无人机飞控机容错技术研究[J]. 西北工业大学学报, 2018, 36(4): 761-767. [百度学术]
PAN Jihui, ZHANG Shengbing, WANG Danghui. Research on fault-tolerant flight control computer for high altitude long endurance unmanned air vehicle[J]. Northwestern Polytechnical University, 2018, 36(4): 761-767.(in Chinese) [百度学术]
雷金奎, 原丹丹, 李海生. 基于ARM的双冗余微小型无人机飞行控制系统的设计[J]. 电子设计工程, 2016, 24(1): 102-105. [百度学术]
LEI Jinkui, YUAN Dandan, LI Haisheng. Dual redundant flight control system design for small UAV based on ARM[J]. Electronic Design Engineering, 2016, 24(1): 102-105.(in Chinese) [百度学术]
张永孝. 飞控系统余度信号奇异故障处理策略研究[J]. 航空工程进展, 2023, 14(6): 1-13. [百度学术]
ZHANG Yongxiao. Research on singular fault handling strategies of redundant signals in flight control systems[J]. Advances in Aeronautical Science and Engineering, 2023, 14(6): 1-13.(in Chinese) [百度学术]
田湧, 李天, 蔡云鹏. 一种小型无人机高度传感器余度设计方法[J]. 沈阳工业大学学报, 2012, 34(3): 349-353. [百度学术]
TIAN Yong, LI Tian, CAI Yunpeng. Redundancy design method for altitude sensor of a small UAV[J]. Journal of Shenyang University of Technology, 2012, 34(3): 349-353.(in Chinese) [百度学术]