王智超 胡溥瑞
针对无人机操作手日常训练的成本限制和环境限制,文中设计了一种飞行模拟训练系统。介绍了该系统的组成和特点,建立了飞机飞行动力学计算数学模型、控制模型和训练仿真数据库模型。在Windows系统中采用基于Visual Studio开发环境用C#语言和VC++中的ATL控件技术实现了飞行仿真软件,并通过仿真验证,取得了较好的训练效果。
无人机是无人驾驶飞机( Unmanned Aerial Vchicle)的简称,它是一种由动力驱动,机上无人驾驶,可重复使用的航空器。随着无人机驾驶技术的发展以及无人机的广泛应用,无人机操作手越来越受到重视。而培养一名合格的操作手需要大量的训练,传统的训练方法要使用真实的无人机训练,资金和物资消耗很大,并且用真实的无人机飞行对于特定的环境和状态不能进行反复的演练。
针对这种情况,本文提出了一种无人机飞行训练系统的仿真建模方法,阐述了该训练仿真模型的建立理论及方法,并开发出了某型无人机飞行训练系统的仿真模型。
系统总体模型及实现
某型无人机飞行训练仿真系统主要由模型计算机、视景计算机和控制计算机三部分组成。其中模型计算机和视景计算机直接面向操作手,供操作手实际操作训练使用;控制计算机主要供无人机的教练员操控,可直接读取和修改数据库数据,可为操作手设置训练科目及飞行故障,为操作手打分。本系统采用分布式结构,各个客户端计算机分别运行不同的系统。三台计算机相互间通过网络交换设备,以百兆以太网方式连接到局域网,总体模型框图如图1所示。
(1)视景计算机主要任务是负责显示无人机机载摄像头的回传图像,即模拟真实无人机在飞行中,由图传链路回传的图像。视景计算机显示的图像数据通过网络通讯直接从控制计算机系统终端获取并显示。
(2)模型计算机主要用来模拟操作手操控界面,即真实的模拟仿真某无人机地面控制站操控软件,包括主界面外观、飞机参数显示、仪表盘系统显示、地图信息显示、操作输入系统显示、航跡航点管理等功能。真实的体现操作手的人机交互操作。模型计算机有动力学模型仿真模块,因此动力学计算、飞行参数显示、飞机操控等都由这个计算机完成。
(3)控制计算机主要用来供教练员使用,教练员可以控制整个系统的开始、暂停及回放,设置操作手的训练内容及训练环境,设置无人机的故障指令,对操作手操作情况进行评定给出成绩,并保存到数据库内。在该计算机上,可以实时仿真显示3D飞机模型在三维空间的各种飞行姿态。通过视景切换,教练员可以在控制计算机上切换到操作手操控界面,实时观看操作手操作过程。
(4)数据库将训练的各种数据资料进行存储管理,资料内容包括无人机飞行原始参数数据管理、飞行航点管理、飞行航线管理、操作手信息管理、无人机记录管理和评分系统管理等。
(5)网络通讯负责三合计算机的数据交换。本系统采用无连接的数据报文方式(即UDP协议),三台计算机程序中网络通讯模块都是由UDP类来完成的。
模型构建
软件实现
该飞行仿真训练系统软件实现涉及到软件编程和数学建模,飞行仿真系统的数学模型相当繁杂,为了提高效率,增强系统的可移植性和可维护性,采用面向对象的编程思想进行设计。对系统进行总体分析,合理的划分软件的系统模块。根据系统功能和软件编程实现方式,划分了视景仿真模块、数据解算模块以及数据库模块。
视景仿真模块采用基于Visual Studio开发环境的XNA技术,采用C#编程语言。XNA是Microsoft Visual Studio集成开发环境( IDE)的一个扩展,它也是微软继DirectX之后开发的又一个主要用于三维图形程序的软件。可以实现三维场景的渲染,如天空、地形、机场、植被等模型的加载与显示;特效方面的显示,包括雨、雪、雾、阴影以及飞行仿真常用的尾焰核爆炸等。
数据解算模块采用基于面向对象的VC++编程语言,建立飞机飞行动力学模型。采用微软ATL组件技术及面向对象建模方法对飞行动力学计算算法进行分类,设计和开发飞行动力学计算组件,用于飞行仿真系统的研发。由于组件具有良好的模块化、可重用性、可扩充性及跨平台应用等特点,本系统的动力学数据解算模块可以在不同仿真平台上应用。
数据库模块采用SQL Server 2008数据库,使用ADO.NET实现,用连接类SqIConnection创建连接。要打开一个数据库连接,需要提供某种形式的连接参数,这些参数在数据库配置文件中存放。
飞行动力学模型
无人机动力学模型的建立是依据飞机飞行动力学原理和自动控制理论,通过VC++编程进行仿真计算。在这一模块中,利用了VC++中的ATL( ActiveTemplate Library)控件技术,把这一模块中的功能封装成COM组件,为其他模块提供所需要的服务接口。最终将以.dll文件格式输出,显示功能模块可以调用此文件,来获取COM提供的服务。利用这一技术,实现了程序的安全性,外部只能提供或者调用该模块的数据,而无法修改该模块的功能,同时具有很好的跨平台性和移植性。在版本更新时,在接口不变的前提下系统将不用做出修改,只需将组件替换成最新版本即可,完全符合面性对象思想,便于后期维护。
在这一模块中,建立了控制类Control和飞行类Dynamic两个基本类。由飞行类解算飞机的实时姿态和位置,提供给控制类使用。而由控制类根据飞机的实时飞行情况和控制标识符操纵飞机的飞行,通过控制参数反馈给飞行类,循环解算飞机飞行。同时控制类也提供了用户需要的输入、输出接口供其他模块使用。该模块内部数据交换和运作过程如图2所示,
飞行类解算模型
动力学解算仿真模型是整个仿真训练系统的数据流解算核心模块,系统无人机的实时位置、姿态以及状态参数都是通过该模块解算,因此建立合适的动力学数学模型尤为重要。在建立动力学解算数学模型时,我们假设飞机是刚体,地面坐标视为惯性坐标,视地球表面为平面,并且重力加速度不随飞行高度的变化而变化,根据牛顿第二定律建立六自由度动力学微分方程,再由飞机受到的合外力和力矩得到飞机的加速度和角加速度,逐步对时间的积分进而得到飞机位置和姿态,如图3所示。
这里飞机受到的合外力包括气动力、发动机推力、地面滑跑时作用于起落架上的摩擦力以及飞机的自身重力;合外力矩包括气动力矩、发动机力矩以及地面滑跑时起落架力矩等。其中,气动力和气动力矩是通过给定无人机的气动系数表计算得到,发动机推力和力矩是根据发动机原始性能参数数据表计算,这些数据表都是飞机的原始试飞曲线或风洞中的吹风试验数据,能更好的仿真飞机性能。
控制类模型
控制固定翼飞机的飞行过程主要通过操纵机构来操纵飞机的舵面与油门开度来实现的,无论是有人机还是无人机。通常我们利用副翼、方向舵、升降舵及油门舵机来实现对飞机运动的控制。其中副翼、方向舵、升降舵及油门杆的偏转角分别用δx、δv、δz和δb来表示,作为被控对象的飞机,我们把姿态控制中的三个姿态角ν(滚转角)、6(俯仰角阳y(偏航角)以及航迹控制中飞行高度H、Zd相对位置和飞行速度V作为被控量。
以无人机的纵向姿态俯仰角控制回路为例,当进行俯仰给定或保持时,该功能将当前无人机的俯仰角姿态作为基准予以保持,任何相对于该基准的俯仰角姿态变化都会通过俯仰角控制回路立刻予以修正。俯仰角控制回路原理如图4所示。
由俯仰角控制回路原理图可以得到无人机的俯仰角给定与保持控制率:
俯仰角控制回路主要是控制无人机的爬升和下滑性能,来实现飞机的飞行性能。首先通过俯仰角指令给定俯仰角,与当前俯仰角差值,结合飞机实际俯仰角速率作为控制输入量,通过一些调整系数来转变成升降舵控制指令,输出到升降舵机来控制升降舵,从而实现俯仰角的控制。
飞行仿真训练数据库模型
利用数据库技术对仿真原始数据进行管理是研制飞行仿真系统时较为关键的一项技术。鉴于飞行实时仿真系统需要大量的建模数据,采用数据库技术来进行管理是非常必要的。尤其是气动数据、发动机推力数据和环境大气数据等需要采用数据库管理,在仿真中实时地进行查询等计算处理。气动数据常常是由多维数据表构成,如何在实时环境中快速准确地进行计算关系到整个仿真系统的性能和逼真度。该软件系统中,创建了一个用来存储和管理原始数据的数据库,保证程序对数据高效率的调用。该数据库由数据输出、数据输入、数据索引和数据表系统等组成,结构如图5所示,
数据输入是对数据库中进行数据输入的程序接口。数据输出是实现从数据库中获取所需数据等功能。数据索引能够将欲检索的行在数据库中快速地检索到。数据表由一系列表单组成,是整个数据库的核心部分。我们按照飞机型号分为通用数据表和型号专用数据表。通用数据表包括大气数据表和用户数据等;型号专用数据表存贮的是表征无人机特征的数据表,包括該型无人机的飞机的气动数据表、发动机系统数据表以及飞机质量和惯性矩数据表、需要设置的故障参数表等。
仿真结果
本系统为针对培训某型无人机操作手而开发的一套仿真系统,仿真操作手地面站操控界面,如图6所示,主要为系统提供飞行仿真中控制指令、航点编辑,并以图形和文字形式反馈无人机实时的状态信息;仿真无人机实时飞行姿态以及飞行环境,如图7所示,为教练员实时监控飞机、设置飞行故障以及评估飞行操作手训练效果提供更直观的操作。
结论
本文介绍了某型无人机飞行仿真训练系统的整体设计方案,阐述了该系统的主要设计思想及实现方法。模拟了某无人机的真实的操作界面,包飞机的主界面、飞机参数显示、仪表系统、地图显示系统、操作输入系统、航迹航点管理等功能;同时按照某无人机的真实的尺寸进行建模并在系统中根据动力学模型的数据模拟出飞机各种动作;并加设了教练员操控界面,实现了故障动态设置与模拟功能,教练员可以通过教练员终端,在操作手正在训练的同时,随机触发各种无人机的故障或非正常状态,以训练操作手的应急反应能力。这对于评估无人机操作手的操作品质,提高训练员的飞行水平,节省研制费用有极其重要的意义。