基于JSBSim的可视化飞行仿真系统

2021-09-23 05:59张绍泽
现代导航 2021年4期
关键词:摇杆油门解码

张绍泽,任 磊,程 翔

基于JSBSim的可视化飞行仿真系统

张绍泽,任 磊,程 翔

(中国电子科技集团公司第二十研究所,西安 710068)

为了模拟一个具有高真实感飞行动力学模型,并且扩展后可以与联合作战仿真系统中其它武器装备进行交互的飞行器,本文使用Unity开发了一套基于JSBSim飞行动力学模型的可视化飞行仿真系统。该仿真系统先对输入设备的输入数据进行解析,然后利用JSBSim飞行动力学模型进行计算,最后根据计算结果对飞机的姿态、位置和速度等信息进行更新,可实现飞机姿态控制、状态信息及三维地形显示等功能。实验结果表明,开发的飞行仿真系统可以有效地模拟飞机的横滚、俯仰、偏转和加油等操作,实现飞机的可视化飞行仿真。经过扩展后,该仿真系统还可用于联合作战仿真中飞机的模拟。

JSBSim;Unity;联合作战仿真;飞行仿真

0 引言

现代信息技术的飞速发展促使当今军事领域作战模式不断发生着变革。作战模式从以往的单一作战模式发展到了目前高技术条件下的海、陆、空、天、电多维一体的诸军兵种联合作战模式。联合作战已经逐渐成为高技术条件下局部战争的主要形式,而采用计算机仿真技术模拟联合作战是研究联合作战的重要手段[1]。

在联合作战仿真中,需要模拟海、陆、空等不同军种的武器装备,飞机作为空军武器装备的主要组成部分,其模拟程序的开发成为研究热点。FlightGear是一款开源、跨平台的飞行模拟程序,主要使用YASim、JSBSim和UIUC三种飞行动力学模型,提供了极具真实感的实时飞行视景和座舱显示[2]。除此之外,FlightGear还提供多种开放接口,可由Matlab、STA32等程序驱动,实现飞行仿真或试飞数据回放等[3]。已有多位学者利用FlightGear进行飞行仿真系统的开发。黄华等[4]利用Matlab/Simulink模拟非线性六自由度飞行模型,使用飞行航迹/姿态等仿真数据驱动FlightGear进行可视化飞行仿真。王领等[5]与黄华等方法类似,建立了一种用于空战的可视化飞行仿真系统。蔚海军等[6]和刘鹏等[7]利用FlightGear建立直升机的动力学模型,并进行可视化飞行仿真。但是以上飞行仿真系统主要用于飞机的飞行仿真,没有考虑将系统接入联合作战仿真系统,并与系统中其它武器装备进行交互,因此不适合模拟联合作战仿真中的飞机。

为了解决以上问题,本文基于JSBSim飞行动力学模型,使用Unity开发了一套可视化飞行仿真系统。实验结果表明,该飞行仿真系统不仅可以有效地模拟飞机飞行,扩展后还可以与联合作战仿真系统中其它武器装备进行交互,可用于飞行仿真训练、联合作战仿真环境中的飞机模拟等。

1 JSBSim简介

JSBSim是一个开源的六自由度非线性飞行动力学模型,可以在不同操作系统中编译运行[8]。其主要功能是根据输入的数据对飞行器的空气动力特性进行计算,解算飞行器的六自由度运动方程以及对因大气环境变化、飞行器起落架和襟翼收放等构形变化对飞行造成的影响进行仿真和解算。

从文件组成上,JSBSim模型主要包括基于C++语言编写的代码文件和基于XML语言编写的配置文件两部分。代码文件定义了JSBSim模型动力学仿真的实现方法;而飞行器的配置文件定义了不同类型飞行器的几何、质量、气动、推进、控制及起落装置等动力学特征以及模型需要的参数配置。JSBSim模型的程序代码和模型数据分离,只需修改XML文件中有关飞行器的配置数据,就能实现不同飞行器的仿真[9]。

JSBSim没有原生的图形界面,可以根据初始状态参数和运行脚本单独运行,实现离线非实时仿真;也可以作为子程序或子函数由其它外部程序调用,实现外部程序所需的在线实时仿真或离线非实时仿真。其仿真结果可按配置文件要求输出相应数据到指定的文件或网络端口,便于分析处理和网络应用[3]。

本系统将JSBSim作为系统的子程序调用,利用其进行飞行动力学计算,并通过网络端口与其进行数据交互。

2 总体框架

该仿真系统通过飞行摇杆和油门模拟控制器对飞机进行控制,控制信息经过解析后利用基于JSBSim的飞行动力学模型进行飞行动力学计算,计算结果对三维飞机模型的姿态和位置等信息进行更新,并将相关信息显示在平视显示器(Head Up Display,HUD)上,最后对三维飞机模型、三维地形和HUD等进行渲染显示。系统框图如图1所示。

图1 系统框图

2.1 输入设备数据解析

飞行摇杆和油门模拟控制器成本低、易上手,通过它可以实现方向舵、升降舵、副翼以及油门控制等飞行操作,因此选择它作为输入设备对飞机进行控制。飞行摇杆和油门模拟控制器通过USB接口与计算机连接,利用SharpDX.DirctInput.dll提供的API接口实现飞行摇杆和油门状态数据的获取解析。

2.2 飞行动力学计算

飞行动力学计算模块基于JSBSim飞行动力学模型实现。该模块先根据飞机的配置文件和初始化文件调用JSBSim程序创建飞机的动力学模型;然后将解析的输入数据编码为JSBSim的控制命令并通过网络通信模块发送给JSBSim进行解算;最后,解算结果中所需的属性通过网络通信模块发送给JSBSim输出解码模块进行解码。该模块的框图如图2所示。

图2 飞行动力学计算模块框图

(1)JSBSim程序调用

调用JSBSim时,以飞机名称及初始化文件名称作为参数,然后JSBSim根据参数寻找对应的飞机配置文件和初始化文件创建飞机动力学模型并开始模拟[10]。

(2)网络通信

JSBSim可以通过TCP/IP和UDP方式进行网络通信,实现控制命令接收及飞行动力学计算结果输出[11]。本文使用UDP的方式进行网络通信,创建了UDP客户端和UDP服务器。其中,UDP客户端用来向JSBSim发送控制命令,UDP服务器用来接收JSBSim的输出数据。

(3)JSBSim命令编码

根据摇杆和油门不同操作绑定的功能将解析的输入数据编码为JSBSim的控制命令,然后通过网络通信模块的UDP客户端发送给JSBSim。

(4)JSBSim输出解码

JSBSim输出解码模块根据飞机配置文件中输出属性的顺序及编码方式对从网络通信模块中UDP服务器接收的数据进行解码,从而得到飞行姿态、飞行高度和飞行速度等信息。

2.3 飞机三维模型控制

该模块根据JSBSim的输出解码结果对飞机三维模型的飞行姿态(如俯仰、偏转和横滚等)、可控部分的位置及旋转角度(如副翼、升降舵、方向舵、尾喷口和起落架等)、地理位置(如经度、纬度和高度等)等进行控制,使飞机三维模型反映出当前飞机的状态。

2.4 HUD

HUD显示的信息包括高度、速度、航向、俯仰和位置等,其通过Unity中的Image和Text组件实现。在程序运行时,HUD根据JSBSim输出解码的结果对显示的信息进行更新,使用户直观地了解当前的飞行状态。

2.5 三维地形创建

该系统中的三维地形创建主要包含地形网格创建和纹理创建两部分。其中,地形数据使用FlightGear程序中的BTG格式的高程数据,纹理使用Google地图的纹理数据。创建地形时,先根据每个BTG文件对应的地形块高程数据创建地形网格;然后根据地形块的经纬度范围创建相应的纹理,并将纹理贴到地形块上;最后将多个地形块按经纬度排列拼接实现三维地形的创建。

2.6 渲染显示

利用Unity的渲染系统对飞机三维模型、三维地形和HUD等进行渲染显示,实现飞行仿真的可视化。

3 实验及结果

为了验证开发系统的有效性,本文以F/A-18C飞机为例进行了仿真实验。实验在Windows7 X64位环境下运行,使用的Unity版本为5.6.0f3,电脑配置为:Intel Core i7-4790 3.6 GHz CPU,16 GB内存,NVIDIA GeForce GTX 1070显卡。操控设备为罗技X52 Professional HOTAS油门和摇杆模拟控制器。

飞机在机场跑道上起飞前的初始姿态如图3所示。根据摇杆及油门控制器的输入可以对飞机副翼、升降舵、方向舵、发动机喷口和起落架等进行控制,从而实现横滚、俯仰、偏转、加减推力和收放起落架等操作,结果如图4~图6所示。与图3相比,图4~图6中的飞机加大了油门,并收起了起落架。图7显示了HUD,可以获取包括高度、速度、方位、俯仰和经纬度等信息。

图3~图7表明,该仿真系统可以创建高真实感的三维地形并有效地模拟飞机飞行。

该仿真系统添加雷达、武器和通信等模块并接入自研的联合作战仿真系统后,还可以与仿真系统中的其它武器装备进行交互。如显示探测到的敌我双方兵力、锁定目标和发射导弹打击目标等。结果如图8~图9所示。

图3 飞机初始姿态

图4 控制副翼实现左倾

图5 控制方向舵实现右转

图6 控制升降舵实现爬升

图7 HUD

图8 显示探测的敌我双方兵力并锁定目标

图9 发射导弹打击目标

图8(a)显示了雷达探测到的敌我双方兵力,图8(b)中飞机上方显示的方框为锁定的目标。图9中飞机下方的方框框选的物体为打击目标发射的导弹。图8~图9表明该仿真系统可与联合作战仿真系统中其它武器装备进行交互,可用于联合作战仿真中飞机的模拟。

4 结语

本文基于JSBSim飞行动力学模型开发了一套可用于联合作战仿真的可视化飞行仿真系统。该仿真系统根据控制信息使用JSBSim进行飞行动力学计算,并根据计算结果对飞机姿态、位置和速度等信息进行更新,可实现飞机姿态控制、状态信息及三维地形显示等功能。实验结果表明,开发的可视化飞行仿真系统可以有效地模拟飞机横滚、偏转、俯仰和加油等操作,可用于飞机模拟仿真训练和联合仿真系统中飞机的模拟等。

[1] 胡晓峰,杨镜宇,司光亚,等. 战争复杂系统仿真分析与实验[M]. 北京:国防大学出版社,2008.

[2] The FlightGear Flight Simulator [P/OL]. https://www. flightgear.org/Docs/.

[3] 刘红,张雷. 基于JSBSim/Flightgear的六自由度飞行仿真研究[J]. 中国民航飞行学院学报,2018,29(03):44-48.

[4] 黄花,徐幼平,邓志武. 基于Flightgear模拟器的实时可视化飞行仿真系统[J]. 系统仿真学报,2007(19):4421-4423.

[5] 王领,张斌,左星星. 一种空战任务可视化仿真系统的开发[J]. 计算机仿真,2012,29(05):42-46.

[6] 蔚海军. 基于FlightGear的直升机飞行模拟系统研究[D]. 大连:大连理工大学,2008.

[7] 刘鹏. 基于FlightGear的无人直升机飞行仿真技术研究[D]. 南京:南京航空航天大学,2011.

[8] Jon S Berndt. JSBSim: An Open Source Flight Dynamics Model in C++[C]. Proceeding of AIAA, 2004: 4919-4923.

[9] 岳显,吉华,王强,等. 基于JSBSim模型飞行能力初步评估系统的研究与实践[J]. 计算机应用与软件,2015,32(04):96-99,190.

[10] Jon S Berndt. Progress on and Usage of the Open Source Flight Dynamics Model Software Library, JSBSim[J]. AIAA, 2009: 2009-5699.

[11] Jon S Berndt and the JSBSim Development Team. JSBSim Reference Manual[K]. 2011.

Visual Flight Simulation System Based on JSBSim

ZHANG Shaoze, REN Lei, CHENG Xiang

In order to simulate an aircraft with high realism flight dynamics model, and after expansion, it can interact with other weapons in joint operation simulation. The paper develops a visual flight simulation system based on JSBSim flight dynamics model with Unity. The simulation system first analyzes the input data of the input device, then uses JSBSim flight dynamics model to calculate, and finally updates the aircraft attitude, position, speed and other information according to the calculation results. It can realize the functions of aircraft attitude control, state information and 3D terrain display. The experimental results show that the developed flight simulation system can effectively simulate the roll, pitch, yaw, refueling and other operations of the aircraft, and realize visual flight simulation of the aircraft. After expansion, the simulation system can also be used for aircraft simulation in joint operation simulation.

JSBSim; Unity; Joint Operation Simulation; Flight Simulation

V211

A

1674-7976-(2021)-04-271-05

2021-02-22。张绍泽(1985.06-),黑龙江富锦人,博士,工程师,主要研究方向为三维场景仿真和VR仿真。

猜你喜欢
摇杆油门解码
《解码万吨站》
曲柄摇杆机构的急回程度分析与探讨*
驾哥
曲柄与摇杆摆角的关系
基于ANSYS的曲柄摇杆机构的仿真分析及优化设计
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
汽车改装车上装油门的几种控制方法
曲柄摇杆行星系取苗机构参数匹配与优化