基于DSP和FPGA的无人直升机飞行控制系统

2015-12-23 00:55吴爱国郭润夏
计算机工程与设计 2015年7期
关键词:经纬度舵机顶层

江 涛,吴爱国,郭润夏,崔 巍,张 洁

(1.天津大学 电气与自动化工程学院,天津300072;2.中国民航大学 航空自动化学院,天津300300)

0 引 言

相较于简单的PID 控制,先进飞行控制算法 (如非线性控制、智能控制等)考虑了无人直升机强耦合、非线性、时变的特点,能提高无人直升机的飞行性能、抗扰性和可靠性[1-3]。为了实现涉及复杂计算的先进飞行控制算法,本文设计出基于DSP和FPGA 的无人直升机飞行控制系统。

与通用型嵌入式微处理器相比,DSP采用了独特的体系结构,具备硬件乘法器、哈佛结构并提供独立的双总线结构,因此它具有很强的数字信号处理能力,可用于实现复杂的控制算法[4,5]。然而,DSP采集、处理传感器信息,生成舵机驱动信号,并无优势,反而会影响控制的实时性,而FPGA的突出特点是超高速和并行性[6,7],可并发地生成舵机驱动信号,采集、处理多个传感器的信息,具有很好的实时性。所设计系统结合DSP和FPGA的优点,实现了合理的任务分配,具有计算能力强、实时性好、灵活度高的特点,为实现无人直升机的先进控制算法提供了良好的硬件基础。

1 飞行控制系统架构设计

如图1所示,无人直升机飞行控制系统的核心是飞行控制器。以飞行控制器为基础,增加各类机载设备和模型直升机即构成无人直升机飞行控制系统。

图1 无人直升机飞行控制系统架构

飞行控制器的主控芯片采用TI 公司的DSP 芯片TMS320F28335 和 Altera 公司的 FPGA 芯片EP3C16E144I7。TMS320F28335 是浮点型 DSP,具 备150M 的高速处理能力[8,9],可高效地实现包含大量浮点数运算的飞行控制算法。EP3C16E144I7 具有丰富资源:15408个LE (逻辑单元),85个用户可使用I/O 口,516096位的内部存储器资源。因此它可灵活配置一定数量的UART 接口、SPI接口等硬件功能模块,与各类底层设备进行有效的数据通讯。

飞行控制器中,DSP是主控芯片,它通过外部存储器接口访问FPGA 内双口RAM。DSP仅需简单地读写双口RAM 内的寄存器即可获取传感器信息、操纵舵机以及与地面站通信。因此DSP可将大部分运行时间用于飞行控制算法,保证控制实时性不受底层驱动程序影响。

FPGA作为DSP的协处理器,处于DSP和底层设备之间,简化了DSP和底层设备的交互作用过程。这具体表现为:①FPGA从IMU (惯性测量模块)、GPS和气压高度计分别获取无人直升机的姿态、经纬度和高度信息,然后存入双口RAM 供DSP读取;②FPGA通过无线电接收机获取遥控器信息;③FPGA根据飞行模式、遥控器信息和DSP内控制算法生成的舵机控制量,产生舵机的PWM 驱动信号,实现无人直升机的飞行控制;④FPGA 通过无线模块与地面站进行数据通信,以实现地面站对无人直升机的监控。

综上所述,飞行控制系统中DSP 主要用于实现飞行控制算法,FPGA 协助DSP高效地操纵底层设备。这种分工合作考虑DSP和FPGA 各自的特点,使二者各尽其长,充分实现资源利用最大化。

2 飞行控制系统软件设计

飞行控制系统软件设计包括地面站、FPGA 和DSP 这3部分。地面站监控软件负责发布命令至飞行控制器,还用于接收、显示并保存来自飞行控制器的飞行信息。以下重点介绍FPGA 和DSP的软件设计。

2.1 FPGA软件设计

FPGA 的最大特点是并行性。如图2所示,本文将FPGA 软件设计为互相影响、并发执行的几个功能模块:姿态采集模块、经纬度采集模块、高度采集模块、PWM 模块、地面站通信模块以及顶层控制模块。

图2 FPGA 软件中各功能模块连接及对外引脚

由于各模块并发运行,系统的运行速度不受底层设备的数量影响,因而具有很好的实时性。各模块的功能及实现细节如下所述。

2.1.1 姿态采集模块

姿态采集模块通过UART 接口从IMU (惯性测量单元)采集无人直升机的姿态信息。本系统所选IMU 由荷兰Xsens Technologies B.V.公司制造,其采样周期可设置。为保证采样精度,将IMU 采样周期设置为舵机工作周期(22ms)的一半 (11ms)。IMU 每隔11ms向FPGA 发送一个姿态帧,姿态帧依次包括帧头、横滚角、俯仰角、偏航角和校验和。一个舵机工作周期内,姿态采集模块可接收两组姿态角数据并进行平均滤波,然后向顶层控制模块发送姿态更新请求。

2.1.2 经纬度采集模块

经纬度采集模块通过UART 接口从GPS采集无人直升机所处的经纬度。经纬度采集模块和GPS按照NMEA0183协议进行通信。NMEA 0183定义了很多语句,经纬度采集模块仅接受GPRMC语句。

GPRMC语句中经纬度以字符串表示,飞行控制算法却需要浮点数表示的经纬度。因此经纬度采集模块接收到GPRMC语句后,先分离出经纬度字符串,然后将其转化为对应的浮点数,最后向高度采集模块发送高度采集通知。

2.1.3 高度采集模块

标准海平面附近,大气压和海拔高度近似呈线性关系,即大气压每下降1hPa,海拔高度就升高8.43m[10,11]。因此高度采集模块通过SPI接口从气压高度计采集大气压,再采用线性变换将其换算成无人直升机所处高度。

由于温度影响压力的测量,本系统所选气压高度计MS5611-01BA03同时具备压力和温度传感器,以实现压力测量的温度补偿。

经纬度和高度同属无人直升机的位置信息,因此它们的采集过程应该同步。高度采集模块从经纬度采集模块接收到高度采集通知后,读取大气压和温度测量值并对大气压测量值进行温度补偿,然后将大气压变换为无人直升机的高度,最后向顶层控制模块发送位置更新请求。

2.1.4 PWM 模块

PWM 模块从顶层控制模块获取飞行模式和舵机控制量,从无线电接收机获取遥控器信息,并根据飞行模式、舵机控制量和遥控器信息产生舵机的PWM 驱动信号,实现无人直升机的飞行控制。

PWM 模块根据飞行模式选择PWM 信号生成策略。本系统具有手动、姿态和位置3种飞行模式。手动模式下,所有PWM 驱动信号的脉宽由遥控器信息决定。姿态模式下,对于总距舵机和油门舵机的PWM 驱动信号,其脉宽由遥控器信息决定;对于纵向变距舵机、横向变距舵机和尾桨舵机的PWM 驱动信号,其脉宽由舵机控制量决定。位置模式下,所有PWM 驱动信号的脉宽由舵机控制量决定。

2.1.5 地面站通信模块

地面站通信模块在顶层控制模块的控制下,通过无线模块与地面站进行数据通信,以实现地面站对无人直升机的监控。这具体表现为:①为使地面站能监视无人直升机,地面站通信模块接收到顶层控制模块的飞行信息上传命令后,会将无人直升机姿态、所处经纬度和高度以及舵机控制量等发送至地面站;②为使地面站能控制无人直升机,地面站通信模块接收地面站发送的飞行模式切换、姿态给定或者位置给定命令字,然后向顶层控制模块发送命令字处理请求。

2.1.6 顶层控制模块

顶层控制模块处于各模块之间,协调它们有序工作,实现它们和DSP之间的信息传递。顶层控制模块的工作流程如图3所示。

图3 顶层控制模块的流程

为了实现信息传递,FPGA 内设置双口RAM 以保存需要传递的信息。该双口RAM 的容量为256×16位,被映射至DSP的地址空间,可由DSP和顶层控制模块读写。

如图3所示,顶层控制模块通过双口RAM 实现的信息传递过程有如下几类:

(1)姿态信息传递:顶层控制模块接收到姿态更新请求后,将姿态采集模块采集的姿态信息写入双口RAM,然后通知DSP读取已更新的姿态信息。

(2)位置信息传递:顶层控制模块接收到位置更新请求后,将经纬度采集模块采集的经纬度信息和高度采集模块采集的高度信息写入双口RAM,然后通知DSP 读取已更新的位置信息。

(3)舵机控制信息:DSP 将保存在双口RAM 内的舵机控制量更新后,顶层控制模块从双口RAM 内读取飞行模式和舵机控制量,再将它们下发至PWM 模块。

(4)飞行信息传递:DSP 将保存于双口RAM 内的舵机控制量更新后,顶层控制模块将姿态信息、位置信息、舵机控制量等飞行信息和飞行信息上传命令下发至地面站通信模块。

(5)命令信息传递:顶层控制模块接收到命令字处理请求后,从地面站通信模块获取命令字,根据命令字类型修改保存在双口RAM 内的飞行模式、姿态给定和位置给定。

2.2 DSP软件设计

DSP软件主要实现无人直升机的姿态控制算法和位置控制算法。如图4所示,DSP软件主要包括DSP时钟初始化、看门狗初始化、外部存储器接口初始化以及主循环。

图4 DSP软件的流程

主循环根据飞行模式选择控制策略。手动模式下,任何控制算法都不执行,无人直升机的飞行由遥控器控制。姿态模式下,仅姿态控制算法执行,无人直升机的飞行姿态由姿态控制算法控制。位置模式下,姿态控制算法和位置控制算法都执行,无人直升机的飞行姿态和位置分别由姿态控制算法和位置控制算法控制。

从DSP软件流程可知,由于FPGA 的协助,DSP无需实现简单繁琐的设备驱动程序,只需简单地读写FPGA 内双口RAM,即可获取姿态和位置等信息,更新舵机控制量。这大大减少了DSP操纵底层设备的时间开销,使DSP有足够的CPU 时间用于控制算法。

3 试飞实验

实现先进的飞行控制算法不仅需要良好的硬件基础,还需对控制理论有深入研究。由于控制理论水平的限制,本实验DSP内姿态控制算法仍采用PID 控制。实验前将横滚角、俯仰角和偏航角的给定设为0。手动模式下,通过遥控器操纵直升机起飞并使其水平悬停。然后将系统切入姿态模式,进行无人直升机的姿态控制实验。实验完成后,地面站保存的姿态数据如图5、图6和图7所示。

图5 横滚角试飞数据

图6 俯仰角试飞数据

图7 偏航角试飞数据

图5、图6和图7中出现的姿态角突变由机体震动等因素引起,其幅值并不大,在可接受范围内。实验结果表明,所设计飞行控制系统能将无人直升机的3个姿态角控制在0度附近;其中,俯仰角和滚转角的控制效果最好,偏航角的控制效果差一些。这验证了设计方案的有效性。

4 结束语

为实现先进飞行控制算法,本文设计了基于DSP 和FPGA 的无人直升机飞行控制系统。DSP 的数字信号处理能力强,主要实现复杂的飞行控制算法。FPGA 的突出特点是高速性和并行性,主要实现简单繁琐的设备驱动程序,协助DSP高效地操纵底层设备。由于双核架构和合理的任务分配,所设计系统与传统的单核飞行控制系统相比,计算能力更强、实时性更好、灵活性更高,为实现先进飞行控制算法提供了良好的硬件基础。

本文受控制理论水平的限制,仅采用传统的PID 控制进行了姿态控制的试飞实验,验证了设计方案的有效性。因此下一步研究的重点是研究可行的先进飞行控制算法,然后将其在所设计系统上实现并进行实验验证。

[1]SUN Xiuyun,FANG Yongchun,SUN Ning.Backsteppingbased adaptive attitude and height control of a small-scale unmanned helicopter [J].Control Theory & Applications,2012,29 (3):381-388 (in Chinese).[孙秀云,方勇纯,孙宁.小型无人直升机的姿态与高度自适应反步控制 [J].控制理论与应用,2012,29 (3):381-388.]

[2]WANG Yong,GUO Runxia.Attitude control of unmanned helicopter based on improved SDRE [J].Computer Measurement & Control,2013,21 (9):2480-2485 (in Chinese).[王勇,郭润夏.基于改进SDRE的无人直升机姿态控制 [J].计算机测量与控制,2013,21 (9):2480-2485.]

[3]GUO Shushan,YUAN Suozhong.Study of landing control over the unmanned helicopter [J].Electronic Sci & Tech,2010,23 (9):110-121 (in Chinese).[郭署山,袁锁中.基于神经网络的舰载无人直升机着舰控制研究 [J].电子科技,2010,23 (9):110-121.]

[4]LUO Qiufeng,GAO Zhen,LI Yong.Implementation of flight control computer based on dual DSP28335 [J].Journal of Terahertz Science and Electronic Information Technology,2014,12 (1):123-126 (in Chinese).[罗秋凤,高振,李勇.基于DSP28335双核飞控计算机的实现 [J].太赫兹科学与电子信息学报,2014,12 (1):123-126.]

[5]DOU Qinqin,TAN Libin,REN Shangkun.Designed on nondestructive detection system based on DSP28335 [J].Journal of Yichun College,2013,35 (6):1-4 (in Chinese).[豆勤勤,谈莉斌,任尚坤.基于DSP28335的无损检测仪系统设计[J].宜春学院学报,2013,35 (6):1-4.]

[6]WEN Changbao,ZHANG Yingchao,LI Jianhua.Rotational frequency measurement system of rotating object based on FPGA [J].Computer Engineering and Design,2014,35 (2):473-477 (in Chinese).[文常保,张颖超,李建华.基于FPGA 的轴转物体转速测量系统设计 [J].计算机工程与设计,2014,35 (2):473-477.]

[7]XIAO Jitao,MA Youming,ZHOU Mingzheng,et al.Design of high-speed data acquisition system based on FPGA [J].Computer Technology and Development,2012,22 (6):217-220 (in Chinese).[肖积涛,马幼鸣,周鸣争,等.基于FPGA 的高速数据采集系统的设计 [J].计算机技术与发展,2012,22 (6):217-220.]

[8]HU Guowen,WANG Yinjie,WANG Lin.Optimization design of wind-solar hybrid power generation system based on DSP28335 [J].Electronic Design Engineering,2012,20(20):102-125 (in Chinese).[胡国文,王银杰,王林.基于DSP28335的风光互补发电系统的优化设计 [J].电子设计工程,2012,20 (20):102-105.]

[9]LIU Lingshun, GAO Yanli,ZHANG Shutuan,et al.TMS320F28335 DSP principle and programming [M].Beijing:Beihang University Press,2011:1-4 (in Chinese).[刘陵顺,高艳丽,张树团,等.TMS320F28335DSP 原理及开发编程 [M].北京:北京航空航天大学出版社,2011:1-4.]

[10]WANG Zhigang,TANG Fei,WANG Xiaohao,et al.Design of altimeter system based on MS5534B.MEMS Device &Technology,2008,45 (6):351-355 (in Chinese). [王志刚,唐飞,王晓浩,等.基于MS5534B的气压高度计系统的设计 [J].微纳电子技术,2008,45 (6):351-355.]

[11]ZHANG Jinyan,LIU Gaoping,YANG Ruxiang.Implementation of height measurement system based on pressure sensor BMP085 [J].Microcomputer &Its Application,2014,33(6):64-67 (in Chinese).[张金燕,刘高平,杨如祥.基于气压传感器BMP085的高度测量系统实现 [J].微型机与应用,2014,33 (6):64-67.]

猜你喜欢
经纬度舵机顶层
汽车顶层上的乘客
含齿隙弹载舵机的全局反步模糊自适应控制
基于经纬度范围的多点任务打包算法
基于dsPIC单片机的飞艇舵机控制实现
自制中学实验操作型经纬测量仪
基于高速同步485总线通信的多通道舵机控制器设计
澳洲位移大,需调经纬度
加快顶层设计
基于云模型的舵机同步控制
健康卡“卡”在顶层没联网