应用uC/OS进行无人机仿真系统的探究与设计

描述

无人机(Unmanned Aerial Vehicle,缩写为UAV)是由无人机驾驶平台加载侦察设备或攻击系统实施侦察、监视或攻击的一种航空作战系统错误!未找到引用源。。伴随着无人机技术的快速发展,无人机仿真系统也得到了重视,它可以用来设计无人机控制律,验证无人机飞控系统性能和可靠性,为无人机系统开发提供支持,本文设计与实现了一种基于uC/OS 嵌入式操作系统的无人机仿真系统。

一 无人机仿真系统总体设计

无人机系统一般由飞机本体、飞控系统、数据链路和地面控制站组成,据此,搭建了由一台飞行仿真PC 上位机,一台地面控制站PC 机和包含ARM7 芯片的EasyARM2138 开发板组成的无人机仿真系统,PC 机和ARM7 芯片通过串口进行信息交换。飞行仿真PC 上位机在MATLAB 环境中编写上位机飞行仿真软件用于飞行仿真,该软件通过串口接收控制下位机传来的控制律,根据控制律实时计算无人机飞行状态,并把飞行在状态参数传给控制下位机。通过ADS 软件在EasyARM2131 的ARM7 芯片中设计下位机控制软件,该软件通过串口接收飞行仿真软件传来的飞行状态参数和地面站指控软件传来的飞行航路点信息,实时计算控制律并发送给飞行仿真PC 上位机。地面控制站 PC 机在VC 环境中编写地面站指控软件用于无人机终端控制,该软件能够实时显示飞行状态参数,并通过向下位机控制软件传送飞行航路点来指挥无人机按规划的航迹飞行。仿真系统总体功能框图如图1 所示:

上位机
图 1 仿真系统总体功能框图

二 各分系统的设计与实现

2.1 上位机仿真软件设计与实现

上位机仿真软件在 MATLAB 中编程实现,用于实现无人机的飞行仿真,仿真软件利用MATLAB 中设备控制工具箱实现串口通信功能错误!未找到引用源。。上位机仿真软件具备的功能如下:

(1) 具有串口接收发送功能:能够接收下位机传来的无人机控制律并且向下位机发送无人机飞行状态参数;

(2) 具有气动力和力矩计算功能:根据下位机传来的控制律控制无人机副翼、方向舵、升降舵偏转量和油门杆的位置,结合无人机飞行状态和大气参数计算出无人机所受的气动力和气动力矩;

(3) 具有飞行状态实时计算功能:根据无人机所受的气动力、力矩和无人机当前飞行状态值计算出无人机下一点的飞行状态值;上位机仿真软件总体流程图如图 2 所示。

上位机
图2 上位机仿真软件流程

2.2 下位机控制软件设计与实现

下位机控制软件采用 uC/OS 嵌入式操作系统。uC/OS 嵌入式操作系统是一个完整的可移植、固化、裁剪的占先式实时多任务内核。uC/OS 内核是用ANSI 的C 语言编写的,包含一小部分汇编语言代码,使之可供不同架构的微处理器使用,如今,从8 位到64 位,uC/OS已在超过40 种不同架构的微处理器上运行错误!未找到引用源。

在下位机控制软件设计过程中,采用软件模块化设计思想,把软件分为初始化模块、接收模块、导航模块、控制律计算模块、发送模块和地面控制站通信模块,其中接收模块、导航模块、控制律模块和发送模块构成系统的主控模块。初始化模块的主要功能是单片机初始化和开机自检;接收模块接收上位机传来的无人机状态参数值;导航模块根据无人机当前方位值和无人机飞行目标点坐标值计算出无人机的导航信息;控制律计算模块根据导航信息和无人机的飞行状态计算出无人机的控制律;发送模块把控制律通过串口发送给上位机用于无人机飞行状态计算;地面控制站通信模块完成下位机和地面控制站的通信功能。

下位机控制软件采用了嵌入式实时操纵系统 uC/OS,把整个程序分成了合作的多任务形式,即把软件划分为三个优先级不同的任务。第一个任务是初始化任务Iint(),由程序的初始化模块构成,这是整个程序中优先级最高的任务。第二个任务是Work(),这个任务的优先级仅次于Iint()任务,此任务主要包括主控模块,该任务是一个无限循环的任务。第三个任务是Station(),是程序中优先级最低的任务,主要包括地面控制站通信模块。

本系统中定义的三个任务的调度和通信是这样实现的:系统上电后执行的第一个任务是初始化任务,定义为优先级最高的任务,但此任务只执行一次,利用uC/OS 的OSTaskDel()函数将这个任务删除,此时Work()成为优先级最高的任务并将会一直执行。Work()程序运行本身占用的时间较少,任务每执行完一次后使用OSTimeDly()函数延时20ms,即任务Work()将自己挂起20ms,将CPU 的控制权交给Station()任务。由于Work()和Station()之间需要任务间的通信机制,在系统中定义了一个邮箱DataTransMbox,Work()任务执行完后向Station()发送一条消息,消息中包含了飞机状态参数,发完消息后Work()任务被挂起,执行Station()任务,Station()执行完毕后,当延迟时间到时,又将控制权交回给高优先级任务Work()。下位机控制软件的工作流程如图3 所示:

上位机
图3 下位机控制软件工作流程

2.3 地面站指控软件设计与实现

在地面控制站PC 机中利用VC 软件编写地面站指控软件[4],主要实现如下功能:

(1)指令发送功能:利用VC 中的MSCOMM 控件实现串口通信,接收下位机发来的飞行数据,并能向下位机发送控制指令,指挥无人机向新目标点飞行。

(2)航迹规划功能:设计了基于粒子群算法的无人机航迹规划算法,根据无人机飞行环境信息,规划从出发点到目标点满足某种指标值最小的航迹。

(3)飞参显示功能:设计了基于航空仪表ActiveX 控件的无人机飞参显示界面,以虚拟仪表形式实时显示飞行参数,如空速、高度等,平面实时显示无人机的飞行航迹。

三 仿真试验

使用无人机仿真系统进行航迹规划、跟踪航迹和指令发送的仿真试验,飞机模型采用国产某型歼击机,气动参数表和发动机特性数据表导入matlab 中。通过串口连接PC 机和EasyARM2131 开发板,依次打开上位机仿真软件,地面站指控软件,并把下位机控制软件烧写到ARM7 中,使系统处于准备工作阶段,此时系统如图4 所示:


图 4 无人机仿真系统

在指控软件中可以设定出发点坐标和目标点坐标,点击指控软件中的航迹规划键,指控软件即用粒子群算法规划出从出发点到目标点的由一系列航迹点构成的最优航迹,然后将航迹点发送给下位机控制软件。下位机控制软件接收到地面站指控软件发送的航迹点后,就开始控制无人机沿航迹飞行。系统运行时地面站指控软件界面如图5 所示,图中虚线表示规划航迹,实线为无人机实际飞行航迹。


图5 系统运行时地面站指控软件界面

结论

本文设计与实现了基于 uC/OS 嵌入式操作系统的无人机仿真系统,该仿真系统由飞行仿真PC 上位机、地面控制站PC 机和控制下位机组成,构成一个闭环仿真系统。通过引入uC/OS 嵌入式操作系统,把下位机软件按软件实现功能把软件分为三个任务,利用操作系统进行任务切换、调度和通信,提高下位机软件工作可靠性。下一步将进一步完善仿真系统,添加各种型号无人机数学模型,增添A/D 采集板、D/A 采集板等设备,使其能够更加逼真地模拟无人机的飞行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分