APP下载

基于ARM+CPLD的UAV飞行控制系统设计

2010-08-05曹林平吴文超蚩军祥

电光与控制 2010年9期
关键词:舵机控系统控制算法

宋 磊, 曹林平, 吴文超, 蚩军祥

(空军工程大学工程学院,西安 710038)

0 引言

飞行控制系统是无人机的重要组成部分,是飞行控制算法的运行平台,它的性能好坏直接关系着无人机能否安全可靠地飞行。随着航空技术的发展,无人机飞行控制系统正向着多功能、高精度、小型化、可复用的方向发展。高精度要求无人机控制系统的精度高、稳定性好,能够适应复杂的外界环境,因此控制算法比较复杂、计算速度快、精度高;小型化则对控制系统的重量和体积提出了更高的要求,要求控制系统的性能越高越好,体积越小越好[1-2]。此外,无人机飞行控制系统还要具有实时性、可靠性、低成本和低功耗的特点。基于以上考虑,本文从实际工程应用出发,设计了一种基于ARM+CPLD的无人机飞行控制系统。

1 飞控系统总体设计

飞行控制系统在无人机上的功能主要有两个:一是飞行控制,即无人机在空中保持飞机姿态与航迹的稳定,以及按地面无线电遥控指令或者预先设定好的高度、航线、航向、姿态角等改变飞机姿态与航迹,保证飞机的稳定飞行,这就是通常所谓的自动驾驶;二是飞行管理,即完成飞行状态参数采集、导航计算、遥测数据传送、故障诊断处理、应急情况处理、任务设备的控制与管理等工作。

飞行控制系统主要完成3个功能任务,其层次构成:最底层的任务是提高无人机运动和突风减缓的固有阻尼——3个轴方向的阻尼器功能;第2层的任务是稳定无人机的姿态角——基本驾驶仪的功能(主要进行角运动控制);第3层的任务是控制飞行高度、航迹和飞行速度,实现较高级自动驾驶功能[3]。飞行控制系统原理框图见图1。

图1 飞行控制系统原理框图Fig.1 The principle of flight control system for UAV

由上述分析易知,飞行控制系统主要由飞行控制器、传感器(或敏感元件)、舵机3部分组成。无人机飞行控制系统的基本架构如图2所示。

图2 无人机飞行控制系统的基本架构Fig.2 Structure of flight control system for UAV

飞行控制器是以ARM+CPLD为核心的控制计算机,它是无人机的中央控制单元,负责飞机上各个单元的协调工作,并与地面站之间进行数据传输。同时根据控制算法和地面站的命令,保持飞机以一定的姿态飞行。

传感器包括电子罗盘、角速率传感器、高度传感器、加速度计和GPS接收机等。电子罗盘选用霍尼韦尔HMR3300,它可以测量航向、倾角和翻滚角,输出方式为SPI串行输出。角速率传感器采用的是ADI公司的ADXRS300,其输出电压与偏航角速率成正比。高度传感器选择利用半导体材料的压阻效应原理制造的MPX4115A大气压力传感器。加速度计采用的是ADI公司的ADXL203,它是电容式加速度计,具有高精度、高稳定性和低功耗等特点,输出电压经信号调理后正比于加速度值。GPS接收机选用GPS-G03A(H),它是一款超低功耗的GPS天线接收一体机,可给出经纬度,时间和速度等信息,以RS232串口形式传输数据。

舵机包括升降舵、方向舵、副翼。舵机的控制信号是脉宽调制信号,便于和飞控计算机进行接口。

2 飞控计算机硬件电路设计

无人机的飞行控制计算机是无人机飞行控制系统的核心,其硬件结构如图3所示。按照功能分配,将其设计成ARM模块和CPLD模块两大部分,两者通过一片双口RAM进行数据交换。另外还包括一个电源模块来提供系统所需的各类电压和供电电池进行管理[4-6]。

图3 飞控计算机的硬件结构Fig.3 Hardware structure of flight control computer

2.1 ARM 模块

ARM模块的主要功能是保持与地面站的通讯、采集姿态角数据和GPS定位数据、读取CPLD模块的数据、发送控制命令给CPLD模块、运行相关的飞行控制算法和导航控制算法。

ARM模块由ARM处理器芯片和一些外围接口电路组成,其组成如图4所示。ARM芯片和FLASH,RAM共同构成了系统最小核心板。ARM处理器选用ARM9系列芯片的STR912,其资源主要有:内存控制器、FLASH控制器、时钟和电源管理、6个PWM输出、3个UART异步串口、2路SPI接口、1个CAN2.0接口、8路10位A/D通道、30个中断引脚、多达80个GPIO、支持JTAG、ISP接口调试等。

图4 ARM模块组成框图Fig.4 Block diagram of ARM module

外围接口电路主要由10 M以太网接口、RS232接口、GPS接口、SD卡接口、FLASH、SDRAM 等组成。ARM处理器扩展了FLASH器件AM29LV320和SDRAM器件HY57V281620HCT。ARM模块预留了一个以太网接口,主要用于软件调试和升级,以太网控制器采用的是CS8900A芯片。ARM处理器的3个串口分别连接无线通信模块、GPS接收机和PC机,GPS和PC串口连接均需要1片MAX232芯片进行电平转换。SD卡用于存放飞行参数及图像数据。双口RAM采用CY7C024V芯片,作为ARM模块和CPLD模块的数据交换区。

2.2 CPLD 模块

CPLD模块的主要功能是采集与测量传感器的数据、接收ARM模块的命令与驱动舵机。CPLD模块分担了一部分原可以采用ARM模块来实现的任务,使ARM处理器有更多的时间用于运行算法,以提高系统的整体性能。

CPLD模块的结构如图5所示。它包括一片Altera MAX II系列的CPLD芯片EPM1270和一些接口电路,主要有:8路传感器信号采集通道、4路舵机驱动通道、1路发动机转速测量通道、1路电池电压检测通道等。其中舵机驱动、无线接收机信号检测、信号控制等功能均由CPLD芯片的内部逻辑电路来实现,采用Verilog HDL语言编写。鉴于飞行控制和导航精度的要求,该模块选用了TI公司的AD芯片TLC3548,用来采集三轴加速度计、高度传感器、三角速率陀螺输出的电压信号。TLC3548采集的数据由EPM1270进行预处理,然后存放到双口RAM中。同时EPM1270还从双口RAM的指定位置读取命令数据,从而根据命令执行相应的控制功能。

图5 CPLD模块组成框图Fig.5 Block diagram of CPLD module

3 软件设计

由于飞控计算机运行的程序复杂,信息量大,对实时性和稳定性要求高,采用单任务顺序机制的编程方式已不能满足飞控系统的要求,因此飞控软件采用了实时嵌入式操作系统μC/OS-Ⅱ。μC/OS-Ⅱ是专门为计算机的嵌入式应用而设计的实时操作系统,是可裁减的,基于静态优先级的可剥夺型多任务实时内核,具有高度可移植性,特别适合于微处理器和微控制器,其实时性能和内核的健壮性已在大量的实际应用中得到了证实[7]。

3.1 μC/OS-Ⅱ的移植

嵌入式实时操作系统μC/OS-Ⅱ具备良好的可移植性,可以在不同组成结构的硬件平台上运行。移植工作实际上就是对与处理器有关的代码进行重写或修改。

1)OS_CPU.H文件的修改。在OS_CPU.H中设置与STR912相关的常量、宏和类型定义。

2)OS_CPU_C.C文件的修改。μC/OS-Ⅱ的移植需要编写以下10个简单的C函数:OSTaskStkInit(),OSTaskCreateHook(),OSTaskDelHook(),OSTimeTick-Hook(),OSTaskSwHook(),OSTaskStatHook(),OSTaskIdleHook(),OSInitHookBegin(),OSInitHookEnd(),OSTCB-InitHook()。其中只有OSTaskStkInit()在μC/OS-Ⅱ中是必要的,其他函数对系统扩展时才使用,可不包含任何代码,但必须声明。

3)OS_CPU_A.S文件的修改。在 OS_CPU_A.S中改写4个汇编语言函数:OSStartHighRdy(),OSCtx-Sw(),OSIntCtxSW(),OSTickISR()。

3.2 应用程序

对飞控系统进行有效的任务划分并分配任务的优先级是基于μC/OS-Ⅱ系统方案设计的重要内容。正确合理的任务划分和优先级分配可以充分利用实时操作系统可剥夺型内核,提高整个程序的实时性能和执行效率。根据无人机飞控系统的任务流程,可以将软件划分为以下几个任务。1)初始化任务Task_Init。完成μC/OS-Ⅱ、数字I/O的初始化以及定时器和参数的设置。任务优先级为7。2)数据采集任务。Task_Data:完成对加速度计、高度传感器和GPS模块的数据采集,获得无人机控制需要的姿态和位置数据。任务优先级为8。3)姿态控制任务。Task_Pose:实现无人机的姿态控制、保证无人机的正常飞行姿态。任务优先级为10。4)高度控制任务。Task_Alti:实现无人机的高度控制,包括定高飞行、俯仰等运动。任务优先级为12。5)航迹控制任务。Task_Course:实现无人机的航迹控制,包括航向保持、定高转弯等。任务优先级为14。6)遥测发送任务。Task_Send:发送无人机的姿态信息到地面控制站,任务优先级为16。7)紧急情况处理任务。Task_Emerge:异常状态的处理,判断是否需要中止系统的运行,重新开始无人机的控制。优先级最高任务为6)。

飞控系统的应用程序分为初始化模块、数据采集模块、控制解算模块、姿态读取模块、GPS接收模块、遥测发送模块、控制量输出模块。任务与功能模块资源之间的关系如图6所示。

飞行控制系统开始运行时,飞控计算机在完成自检后,首先进行惯性导航系统的初始对准及任务诸元装订,接收初始对准装置发送的初始姿态和位置信息,然后等待控制系统的启动命令[8-10]。飞控系统启动后进行初始化设置,根据任务优先级、调用相应的程序模块完成预定任务,各个任务之间的公共数据采用共享变量的方式进行协同,但需要采取一定的保护措施。

4 实验分析

为验证系统设计的可行性和可靠性,对所设计的飞控系统进行了试飞。图7是无人机从爬升到平飞过程的过渡曲线。

图7 仿真与试飞数据对比Fig.7 Comparision between simulation result and flight-test data

图中实线为实际试飞数据曲线,虚线为试飞后根据试飞数据在相同状态下复现的仿真数据曲线,从图中可以看出过渡过程较为一致,系统设计满足要求。

5 结论

基于ARM+CPLD的无人机飞控系统具有体积小、精度高、运算速度快、可剪裁性的优点,特别是软件上采用μC/OS-Ⅱ实时操作系统,使飞控系统具有实时性的特点。本文所设计的飞控系统已在某型无人机上得到了应用,飞行验证表明系统设计满足要求。本文设计的飞控系统具有一定的工程应用价值,为飞控系统的设计提供了借鉴。

[1]刘波,何清华.无人机飞行控制技术初探[J].飞行力学,2007,27(2):5-8.

[2]曹云峰,苏丙未.无人机飞行控制系统先进设计技术评述[J].飞机设计,2001(46):5-8.

[3]苏永振,胡延霖,赵菲.AT91M55800A在无人机飞行控制系统中的应用[J].航空兵器,2005(4):16-19.

[4]高建尧,卢京潮.某型无人机导航/飞控系统设计与仿真[J].计算机测量与控制,2006,14(6):759-761.

[5]胡勇,丁万山.基于DSP的某型无人机飞控系统硬件平台的设计[J].计算机技术与应用,2004,24(5):35-38.

[6]李海洋,刘建业.基于FPGA的微小型导航计算机数据采集系统设计[J].微计算机应用,2006,27(1):94-97.

[7]任哲.嵌入式实时操作系统μC/OS-Ⅱ原理及应用[M].北京:北京航空航天大学出版社,2005.

[8]吴成富,段晓军,吴佳楠,等.基于Matlab和VxWorks的无人机飞控系统半物理仿真平台研究[J].西北工业大学学报,2005,23(3):336-338.

[9]KIM H J,SHI D H,SASTRY S.A flight control system for aerial robots:algorithm and expriments[J].Control Engineering Practice,2003,11(12):1389-1400.

[10]LEE Il-hyoung,LEE Dongjin,BANG H.A small scale rotor UAV autonomous flight control system design and verification[C]//AIAA2007-2786:1-8.

猜你喜欢

舵机控系统控制算法
关于DALI灯控系统的问答精选
联调联试中列控系统兼容性问题探讨
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于ARM+FPGA的模块化同步控制算法研究
基于高速同步485总线通信的多通道舵机控制器设计
一种新型列控系统方案探讨
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
基于云模型的舵机同步控制
一种非圆旋转工件支撑装置控制算法