主管单位:中华人民共和国工业和信息化部
主办单位:西北工业大学  中国航空学会
地       址:西北工业大学友谊校区航空楼
网刊加载中。。。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读

基于STM32F4与FreeRTOS的无人机飞行控制系统  PDF

  • 周志广 1
  • 许孟孟 2
  • 石梅林 3
  • 李青原 4
  • 王梵 5
1. 航天时代飞鸿技术有限公司, 北京 100094; 2. 航空工业西安航空计算技术研究所 民机事业部, 西安 710065; 3. 中国航天科工集团第二研究院 706所, 北京 100854; 4. 西安爱生技术集团有限公司, 西安 710065; 5. 陕西科技大学 电子信息与人工智能学院, 西安 710021

中图分类号: V249

最近更新:2024-08-07

DOI:10.16615/j.cnki.1674-8190.2024.04.11

  • 全文
  • 图表
  • 参考文献
  • 作者
  • 出版信息
EN
目录contents

摘要

飞行控制系统多以高性能CPU为处理器和Vxworks为设计内核,存在成本高、体积大、内核源码不公开等问题,因此设计一款低成本、高可靠性的小型无人机飞行控制系统。基于STM32F4芯片开发一套由微型控制器、各种传感器和执行机构构成的飞行控制硬件系统,实现对无人机的姿态和舵机位置的控制;引入源码公开的FreeRTOS嵌入式实时系统作为软件平台开发飞行控制软件,实现飞行控制、自主导航、飞行管理等功能;通过固定翼航模的飞行试验对该飞行控制系统进行验证。结果表明:该系统具有良好的稳定性、实时性,控制精度高。

0 引 言

随着航空电子技术的发展,无人机越来越受关注,作为无人机系统的控制核心,国内外对飞行控制系统的研发也逐渐深入。无人机飞行控制硬件架构的发展经历了从DSP到MCU+FPGA、SOPC等发展阶段。Fuller

1基于FPGA架构设计飞行控制计算机用于高速运算和数据通信;Park2基于PowerPC处理器进行智能无人机的飞行控制计算机开发;张小3基于PC104总线体系结构设计飞行控制系统;方传中4基于PC104总线进行某无人机飞行控制系统的数据采集。虽然上述设计方案中处理器功能强大、可靠性高、开放性好,但设计过程复杂、开发周期长、工作量5

运行在飞行控制计算机的飞行控制软件开发通常基于嵌入式操作系统VxWorks平台。Murray

6基于VxWorks操作系统开发了X-38太空救生船的控制系统;施晓颖7基于Vxworks操作系统构建无人直升机机载飞行控制软件系统;张朋8开发了一套基于VxWorks实时操作系统的小型无人机飞行控制软件。然而Vxworks系统价格昂贵,没有完全公开源码,在软件测试取证方面存在困难。

STM32F4系列处理器是一种基于Cortex-M4系列ARM内核的微型控制器,外设资源丰富,支持实时多任务处理,功耗低;FreeRTOS是一个完全免费的多任务实时操作系

9,源码公开、可移植、可裁剪、调度策略灵活,方便移植到STM32F4处理器10-11。FreeRTOS操作系统内核占用内存空间小,避免了STM32系列处理器内存空间小的缺点。

综合制造成本、源码可见等因素,本文对由硬件与软件两部分组成的飞行控制系统进行设计,选用STM32F427VIT6Z作为主控器,通过搭建串口通讯、舵机控制、A/D采集等外围电路,构建飞控计算机硬件平台;在此基础上移植FreeRTOS操作系统,设计飞行控制软件架构,并通过固定翼航模的飞行试验对该飞行控制系统进行验证。

1 飞行控制系统硬件平台

1.1 硬件系统结构

本文设计的飞行控制系统以两片微型控制器STM32F427VIT6为核心处理器,工作频率可达180 MHz,与各传感器、执行机构共同构成闭环控制系统,硬件结构框图如图1所示。

图1  飞行控制系统硬件结构框图

Fig.1  Block diagram of flight control hardware

两个ARM控制器独立运行,并通过串行外围接口SPI总线通信,可以手动或者自动实现双ARM的主副切

12;通用I/O单元用于离散信号的采集与输出;数模转换单元用于模拟量的采集和数字量的转换输出;定时器用于各个舵机的PWM控制输出;电源模块将外部的电源经过滤波模块转换成系统可用的电源,输入电压范围0~ 36 V,输出电压3.3、5.0、12.0 V,整个电源系统功耗小于6 W;W25Q128 FLASH作为程序及数据的存储介质。

1.2 串口通信模块

飞行控制系统需要具备串口通信能力,用于采集GPS位置信息、传感器的各种信号、其他航电设备数据,并且和地面数传电台通信等,采用RS422串口通信方式,硬件原理如图2所示,利用STM32F4处理器自带的异步通信串口,通过max3488芯片将TTL串行数据转换为RS422数据格式,同时为了匹配传输路线和终端阻抗,在RS422差分线并联端接100 Ω电

13

图2  串口通信电路图

Fig.2  Circuit diagram of serial communication

1.3 舵机控制模块

舵机是飞行控制系统的执行机构,通过舵机驱动舵面的偏转实现无人机姿态的改变,而舵机位置由脉冲宽度调制(PWM)信号控制,选用STM32F4处理器自带的定时器外设,产生并改变PWM信号的占空比,从而使舵机输出轴偏转一定角度并保持在该角度。STM32F4输出的PWM信号为3.3 V,如图3所示,采用SN74LVCH245芯片将3.3 V 电压转换为5 V PWM信号,传送到无刷电子调速器,从而改变电机转

14

图3  PWM电压转换电路图

Fig.3  Circuit diagram of pulse width modulation voltage

1.4 A/D转换模块

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

13;STM32F4处理器内部采集模拟电压的范围是0~3.3 V,调理模拟信号电路如图4所示,采用同相比例运放电路换算采集28 V电压。

图4  28 V模拟电压采集电路图

Fig.4  Circuit diagram of 28 V analog voltage acquisition

2 飞行控制系统软件设计

飞行控制系统结构框图如图5所示,飞行控制软件采用层次架

15,由硬件驱动层、FreeRTOS操作系统层和应用程序层组成。

图5  飞行控制系统结构框图

Fig.5  Block diagram of flight control system

硬件驱动层在软件结构的最底层,对 I/O PWM、A/D采集、串口、嵌套中断控制器等硬件资源进行驱动,为上层软件提供接口调用。操作系统层向应用程序层提供内存管理、任务调度、任务通信与同步、文件系统功能。应用程序层位于最上层,采用模块化设计分为:飞行管理、航路控制、数据采集、控制律解算、余度管理、机内自检等功能模块。飞行管理负责无人机飞行模态的切换;控制率解算与航路控制,负责无人机的内外环控制,进行航迹、无人机姿态的调节,算法采用PID算法,控制周期为10 ms,数据采集负责无人机航电系统、任务系统、数据链遥控信息的解析,机内自检与余度管理相结合,对无人机的高度、姿态等关键信息进行实时监控与切换。

2.1 任务调度

飞行控制软件要求高实时性,选用FreeRTOS为操作系统平台,进行各个软件周期任务的实时调度。FreeRTOS任务调度通过STM32F4处理器自带的系统定时器(systick)触发可挂起的系统调用(PendSV)异常实现,每产生一次定时器中断,FreeRTOS检查当前正在运行的任务环境,从而判断是否需要进行任务切换。如果需要,则触发PendSV,通过在PendSV中断进行上下文切换来实现任务的调度。在该软件环境下,选用抢占式调度和时间片两种调度方

16-17。优先级相同时,使用时间片调度方法,优先级相同的任务轮流执行。优先级不同时,使用抢占式调度方法,优先级高的任务优先进入运行态。

飞行控制计算机作为无人机的控制中心,需要实时接收并处理来自无人机航电设备的大量数据,飞行控制软件内部通过中断的方式接收数据。为了提高中断和任务以及任务间的同步效率,使用FreeRTOS自带的任务通知量(TaskNotify)功能进行周期实时任务同步,如图6所示。相比使用二值信号量,其同步效率提高45%,并且使用的RAM更少,通过任务通知量进行周期任务的调度和同步,当任务获取到任务通知量后,进入运行状态。

图6  周期实时任务同步机制示意图

Fig.6  Periodic real-time task synchronization diagram

2.2 数据通信管理

数据通信管理是飞行控制软件极其关键的功能之一。飞行控制系统作为无人机的大脑,地面测控站发来的控制命令和数据、机载传感器测量的各个有关的无人机运动参数、GPS信号、任务单元数据等都由飞行控制计算机进行处

18。为了提高数据处理的效率,采用STM32F4空闲中断和直接存储器存取(DMA)结合的方法进行数据采集。串行通信模块按照功能需求划分为串行通信收发模块和串行通信帧提取模块,串行通信收发模块放在中断服务程序中,串行通信帧提取模块包括传感器数据采集、GPS数据采集、地面测控站数据采集等实时任务,且优先级高于周期任务。当CPU通过DMA和空闲中断接收数据后,会立即通知数据采集任务,进行通信帧数据的提取。

2.3 余度管理

为了提高飞行控制系统的可靠性,常采用故障建模与分析技

19监测故障、余度技术来实现系统容20。目前采用两个方面的余度管理,双ARM余度体21和高度的余度管22。双ARM余度体系中,两个ARM控制器工作状态完全一致,同时接收外部输入的数据,通过表决机制来选择其中一个ARM处理器为主CPU。设计过程中,CPUA的优先级高于CPUB。每个CPU进行故障自检测,主要是串口故障检测和模拟量检测,通过SPI总线交叉传输比较故23。工作方式为:

1) 串口监测,连续5个帧周期未收到正确数据(包括未收到数据,帧头错误,校验和错误),则报告串口故障。

2) 模拟量监测,机载计算机的电压值为12 V,模拟量采集电压值是否在(12±1) V电压范围内,两者误差超过给定值,则报告模拟量故障。

3) 两个CPU交叉对比故障信息,若一个CPU监测信息正常,另外一个CPU监测信息故障,则切换到监测信息正常的CPU。

针对高度的余度管理,在GPS有效且信号良好的情况下,飞行控制系统选用差分GPS高度为实测飞行高度,以气压高度为备份。

此外,STM32F4处理器集成了看门狗电路,在软件程序中引入看门狗模块,当程序“跑飞”或者死机后,使软件自动复位;如果表决机制确定一个CPU故障,自动停止喂狗信号,使系统复位,重新进行CPU故障检测。

2.4 FATFS

关键的飞行参数需要周期地记录到非易失存储器(SPI Flash)中,包括故障信息记录、系统事件记录和掉电保护数据记录等。为了方便进行文件读写,将FATFS(文件分配表文件系统)底层接口与W25Q128芯片的读写接口适配,文件系统上层接口与FreeRTOS操作系统适配,从而实现文件存取功

24。移植步骤如下:下载FATFS源码,并将FATFS文件映射底层W25Q128芯片的读、写、擦除接口;调用FreeRTOS操作系统函数ff_open、ff_read、ff_wrtie等封装FATFS的文件打开、读写等函数;挂载FATFS,进行读写测试,并移植到上层应用程序。

3 飞行试验验证

为验证飞行控制系统的功能和性能,将飞行控制计算机安装在航模上,选用微型电子机械系统(MEMS)传感

25,三轴姿态角、角速率、加速度最小分辨率分别为0.01°、0.01 (°)/s、 0.01 m/s2。无人机飞行航模如图7所示,调试航模舵机和遥控器,进行飞行试验。

图7  无人机飞行航模

Fig.7  Flight trial model of UAV

试验流程如下:

1) 地面准备阶段,飞行控制计算机上电自检,地面控制站发送自检控制指令,舵偏控制正常,传感器姿态正常,GPS定位正常,电机大、中小马力正常,地面控制站发送空中任务航线与返航航线。

2) 起飞阶段,地面控制站发送一键起飞指令,无人机滑跑起飞,当到达起飞速度后,控制舵面使无人机抬头,从地面飞向空中,中间保持爬升姿态,爬升到200 m后,到达安全高度。

3) 航线任务阶段,地面控制站发送程控指令,无人机切到自主控制状态,依次完成圆盘航线与8字圆盘航线的飞行。圆盘航线如图8所示,无人机首先从A点沿虚线朝圆心飞去,当无人机距离圆心距离小于(r+600) m时,飞机航向改为正切于圆弧的方向,无人机进入圆弧航线跟踪状态,圆盘过程中航迹偏差平均值与滚转角统计如图9表1所示,可以看出:航迹偏差小于10 m,滚转角偏转小,控制精度高。

图8  无人机圆盘飞行航迹

Fig.8  UAV drone disc flight track

图9  无人机圆盘飞行航迹偏差

Fig.9  UAV disc flight track deviation

表1  跟踪误差与滚转角统计表
Table 1  Tracking error and roll angle statistical
参数数值参数数值
航偏平均值/m 1.55 滚转角最小值/(°) -6.98
滚转角最大值/(°) -0.14

8字圆盘航线如图10所示,飞机首先从A点沿虚线飞向圆心o1,当无人机到达距圆心距离<r+600) m时,进入圆弧航线跟踪,飞机到达线段o1o2的中心点时,飞机切换目标航线,以圆心o2为中心,r2为半径,进行逆时针飞行,圆盘一周后,再次到达线段o1o2的中心点,再次切换航线,以圆心o1为中心,r1为半径进行顺时针飞行,从而完成8字圆盘航线,无人机8字圆盘飞行航迹偏差如图11所示,整个飞行过程中航迹偏差平均值与滚转角统计如表2所示。

图10  无人机8字圆盘飞行航迹

Fig.10  UAV 8 disc flight track

图11  无人机8字圆盘飞行航迹偏差

Fig.11  UAV 8 disc flight track deviation

表2  跟踪误差与滚转角统计表
Table 2  Tracking error and roll angle statistical
方向航偏平均值/m滚转最大值/(°)滚转角最小值/(°)
顺时针 -1.94 7.03 -2.45
逆时针 2.14 3.64 -5.86

4) 返航阶段,当无人机完成任务航线后,自动执行返航航线任务,无人机飞往返航航线,并按照程序设定下滑到地面,将电机转速降为0。

4 结 论

1) 本文设计的基于STM32F4与FreeRTOS的无人机飞行控制系统,具有开发成本低、可移植性强等优点,提高了无人机飞行控制技术的自主性。

2) 为了提高飞行控制系统的安全性,还需要增加对FreeRTOS操作系统内存分配、堆栈溢出等方面的安全保护检测。

后续研究可以完善飞行控制软件架构,增加I/O中间件层,通过一套Linux/Posix风格的open()、read()、write()、ioctl()类型的标准接口来统一访问底层驱动和文件系统。

参 考 文 献

1

FULLER BKOK JKELSON Net 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, AustraliaIEEE20141-11. [百度学术] 

2

PARK B JKANG Y SYOO C Set al. Development of operational flight program for smart UAV[J]. Journal of the Korean Society for Aeronautical & Space Sciences20134110): 403-412. [百度学术] 

3

张小林. 基于PC104 的飞行控制系统[J]. 测控技术20001912): 24-25. [百度学术] 

ZHANG Xiaolin. A flight control system based on PC104[J]. Measurement and Control Technology20001912): 24-25.(in Chinese) [百度学术] 

4

方传中卢利斌. 基于PC/104的无人机飞行控制系统的数据采集[J]. 战术导弹技术20062): 71-74. [百度学术] 

FANG ChuanzhongLU Libin. The data acquisition of flight control system in UAV based on PC/104[J]. Tactical Missile Technology20062): 71-74.(in Chinese) [百度学术] 

5

周文霞胡志忠肖前贵. 基于ARM的某型无人机飞控计算机设计[J]. 计算机测量与控制2009177): 1286-1288. [百度学术] 

ZHOU WenxiaHU ZhizhongXIAO Qianguiet al. Research on UAV flight control computer based on ARM[J]. Computer Measurement and Control2009177): 1286-1288.(in Chinese) [百度学术] 

6

MURRAY C J. VxWorks OS takes helm of NASA craft[J]. Electronic Engineering Times20012): 124-132. [百度学术] 

7

施晓颖褚双双. 基于VxWorks 与RTW Embedded Coder 的无人直升机机载飞控软件系统[J]. 电子设计工程2012204): 45-51. [百度学术] 

SHI XiaoyingCHU Shuangshuang. Design of a flight control software system based on VxWorks and RTW Embedded Coder[J]. Electronic Design Engineering2012204): 45-51.(in Chinese) [百度学术] 

8

张朋李春涛. 基于VxWorks的小型无人机飞行控制软件设计[J]. 计算机测量与控制2014228): 2687-2691. [百度学术] 

ZHANG PengLI Chuntao. Flight control software design for small unmanned aerial vehicle based on VxWorks[J]. Computer Measurement and Control2014228): 2687-2691.(in Chinese) [百度学术] 

9

BARRY R. Using the FreeRTOS real time kernel: a practical guide[R]. USReal Time Engineers Ltd.2010. [百度学术] 

10

张龙彪张果王剑平. 嵌入式操作系统FreeRTOS的原理与移植实现[J]. 信息技术201211): 31-34. [百度学术] 

ZHANG LongbiaoZHANG GuoWANG Jianpinget al. Principle and implementation of porting RTOS FreeRTOS[J]. Information Technology201211): 31-34.(in Chinese) [百度学术] 

11

刘滨王琦刘丽丽. 嵌入式操作系统 FreeRTOS的原理与实现[J]. 单片机与嵌入式应用20057): 8 -11 [百度学术] 

LIU BinWANG QiLIU Lili. Principles and implementation of embedded operating system FreeRTOS[J]. Microcontrollers & Embedded Systems20057): 8-11.(in Chinese) [百度学术] 

12

孙斌胡跃黎王昆. SPI总线用于双处理器通信的数据链层设计及其实现[J]. 上海大学学报(自然科学版)2012185): 513-518. [百度学术] 

SUN BinHU YueliWANG Kun. Data link layer design and implementation based on spi bus for dual-processor communication[J]. Journal of Shanghai University (Natural Science Edition)2012185): 513-518.(in Chinese) [百度学术] 

13

何湘智吴晖王荣春. 基于μC/OS-II的无人机飞控系统软件设计[J]. 机械与电子20108): 34-36. [百度学术] 

HE XiangzhiWU HuiWANG Rongchun. Design of UAV control system software based on μC/OS-II[J]. Machinery & Electronics20108): 34-36. (in Chinese) [百度学术] 

14

罗霄薛亚洲张乐. 一种无人机飞控计算机硬件平台的设计实现[J]. 电子测量技术2021441): 50-54. [百度学术] 

LUO XiaoXUE YazhouZHANG Le. Design and implementation of a small UAV flight control computer hardware platform[J]. Electronic Measurement Technology2021441): 50-54.(in Chinese) [百度学术] 

15

尹伟韩光辉肖前远. 面向民用飞机的复杂航电系统软件研制与管理方法[J]. 航空工程进展2023144): 158-167. [百度学术] 

YIN WeiHAN GuanghuiXIAO Qianyuanet al. Software development and management methods for complex avionics systems for civil aircraft[J]. Advances in Aeronautical Science and Engineering2023144): 158-167.(in Chinese) [百度学术] 

16

LIN C KWANG B Y. Analyzing FreeRTOS scheduling behaviors with the spin model checker[EB/OL]. [2023-03-24]. https:∥ arxiv.org/abs/2205.07480. [百度学术] 

17

ZHENG ZhengXIAO Guanping. Evolution analysis of a UAV real-time operating system from a network perspective[J]. Chinese Journal of Aeronautics2019321): 176-185. [百度学术] 

18

胡泽龙孙刚徐智. 基于VxWorks的无人直升机飞控应用软件改进与实现[J]. 直升机技术20184): 24-28. [百度学术] 

HU ZelongSUN GangXU Zhi. Improvement and realization of UAV flight control system software based on VxWorks[J]. Helicopter Technique20184): 24-28.(in Chinese) [百度学术] 

19

温晓玲姜梦岑艾笑天. 基于系统架构与运行框图的机载软件故障建模与分析应用[J]. 航空工程进展2023144): 168-176. [百度学术] 

WEN XiaolingJIANG MengcenAI Xiaotianet al. Airborne software fault modeling and analysis application based on system architecture and operation diagram[J]. Advances in Aeronautical Science and Engineering2023144): 168-176.(in Chinese) [百度学术] 

20

潘计辉张盛兵王党辉. 高空长航时无人机飞控机容错技术研究[J]. 西北工业大学学报2018364): 761-767. [百度学术] 

PAN JihuiZHANG ShengbingWANG Danghui. Research on fault-tolerant flight control computer for high altitude long endurance unmanned air vehicle[J]. Northwestern Polytechnical University2018364): 761-767.(in Chinese) [百度学术] 

21

雷金奎原丹丹李海生. 基于ARM的双冗余微小型无人机飞行控制系统的设计[J]. 电子设计工程2016241): 102-105. [百度学术] 

LEI JinkuiYUAN DandanLI Haisheng. Dual redundant flight control system design for small UAV based on ARM[J]. Electronic Design Engineering2016241): 102-105.(in Chinese) [百度学术] 

22

张永孝. 飞控系统余度信号奇异故障处理策略研究[J]. 航空工程进展2023146): 1-13. [百度学术] 

ZHANG Yongxiao. Research on singular fault handling strategies of redundant signals in flight control systems[J]. Advances in Aeronautical Science and Engineering2023146): 1-13.(in Chinese) [百度学术] 

23

田湧李天蔡云鹏. 一种小型无人机高度传感器余度设计方法[J]. 沈阳工业大学学报2012343): 349-353. [百度学术] 

TIAN YongLI TianCAI Yunpeng. Redundancy design method for altitude sensor of a small UAV[J]. Journal of Shenyang University of Technology2012343): 349-353.(in Chinese) [百度学术] 

24

高兆强王绍举徐伟. FATFS在嵌入式操作系统FreeRTOS中的移植与应用[J]. 现代电子技术2017406): 67-70. [百度学术] 

GAO ZhaoqiangWANG ShaojuXU Wei. Transplantation and application of FATFS in embedded operating system FreeRTOS[J]. Modern Electronics Technique2017406): 67-70.(in Chinese) [百度学术] 

25

史红伟蔡永恒李新华. 某型无人机滑跑起降纠偏控制改进分析[J]. 航空工程进展2021123): 102-111. [百度学术] 

SHI HongweiCAI YonghengLI Xinhua. Research on simulation and analysis of UAV ground taxiing[J]. Advan-ces in Aeronautical Science and Engineering2021123): 102-111.(in Chinese) [百度学术]