APP下载

基于STK和X-Plane软件的二次开发应用*

2020-08-11张鹏强

计算机与数字工程 2020年6期
关键词:该软件姿态界面

张鹏强 王 鹏

(中国飞行试验研究院 西安 710089)

1 引言

飞行试验是航空装备定型的最后环节。试飞阶段,为了尽可能地暴漏问题,作战效能尽可能地最大化,飞行员必须进行风险性极高的飞行试验来取得有效数据。一个完整的飞行试验,包括飞行任务规划、飞行任务实施和试飞数据判读。任务规划决定了实施的具体内容,任务实施的完成度决定了试飞结果的有效性。在实际的飞行试验执行期间,由于各种不确定外界因素或出于飞行安全考虑,导致任务无法有效完成,无法充分验证各种状态下的设备性能。针对该问题,本文对STK软件和X-Plane软件进行二次开发,实现操控X-Plane软件的飞机姿态,验证STK场景中各种飞行状态下的机载电子设备功能的方法。

2 方法简介

该方法包括三部分:1)X-Plane飞行模拟软件,该部分利用UDP协议,实时输出飞行平台的飞行参数;2)STK软件,该部分利用各种模块实现飞行任务(通信、雷达、电子战、目标特性等)场景设计;3)转换软件,该部分首先与XPLANE软件建立UDP连接,并对X-Plane软件发送的数据流转化为所需的飞行参数,譬如经度、纬度、高度、俯仰角、横滚角和偏航角等;其次通过引用STK的COM(Component Object Model)组件与STK软件建立连接,准实时地将转换完成的飞行参数传递至STK软件,为STK软件场景中的飞行平台飞行状态准实时更新。方法框图见表1。

图1 方法框图

2.1 X-Plane软件介绍

X-Plane软件是由Laminar Research生产一款模拟飞行软件,为用户提供军用、商用机型、逼真的三维地形和各种复杂气象选择。该软件提供各种气象条件的设置,通过加载真实的飞机模型和性能指标,可获得各种气象条件下的飞参数据。该软件为用户基于该软件的第二次开发提供了飞机飞行参数的输出端口,用户可自由选择所需飞行参数数据,设置通信端口、发送数据类型和发送频率,通过UDP协议与第三方应用软件进行交互。

2.2 STK软件介绍

STK的全称是“Satellite ToolKit卫星软件工具包”,是由美国AGI公司开发的一款在航天工业领域应用的商业化分析软件。它作为一种可以方便快捷地分析复杂的陆、海、空、天、电(磁)任务的专业仿真平台,能够提供简单易懂的图表和文本形式的分析结果,来确定最优方案。STK提供分析引擎用于计算数据,并可显示多种形式的二维地图和对象目标等。STK还可以提供三维可视化模块,进行生成位置和姿态数据、可见性和覆盖分析。STK专业版还提供了轨道预报算法、姿态定义、遥感器类型和高级约束条件定义,以及卫星、城市、地面站和恒星数据库等,STK是一款用于全球卫星定位系统仿真中的强大工具[1]。该软件是一个经过任务验证的软件,主要应用于航天任务、自动化指挥系统(C4ISR)、无人驾驶飞机(Unmanned Aerial Vehicle,UAV)、导弹防御和电子系统的建模、工程化和操作。该软件包含基础模块、分析模块、综合数据模块和扩展集成接口模块[2]。

利用该软件的相关模块,如通信分析模块(STK/Comm)、链路分析模块(STK/Chains)、姿态控制模块(STK/Attitude)、航空器任务建模模块(Aircraft Misson Modeler,AMM)、三维地形模块(STK/Terrain),可完成飞行试验中的通信、雷达、电子站、航路规划、演示验证等科目的试飞,为飞行航线合理规划、飞行动作制定提供指导意义,最大程度地暴漏被试对象的设计缺陷。在实际的飞行仿真试验中,通过加载被试对象的战机指标、飞机的飞行性能指标,可最大程度地提供仿真准确度。

STK为用户提供两种二种开发接口:一种利用TCP/IP协议与第三方软件进行连接交互;一种是通过STK提供的COM组件接口实现,该模块通过不同的类或接口实现可对场景中的对象进行属性设置,为用户的二次开放提供了更大的操作自由度。两种接口均可通过CONNECT命令与第三方软件进行交互[3~5]。

2.3 转换软件

转换软件由C#语言编写完成,开放平台为Vi-sual Studio 2013,主要实现三项功能,首先按照约定端口与X-Plane软件建立UDP连接,其次对接收到字节数据转换为可读飞行参数,最后通过STK的COM组件与STK软件建立连接并将可读飞行参数准实时得发送给STK软件,为场景中的飞行器提供位置、高度和姿态数据[7]。

转换软件通过C#语言中的UdpClient类与X-Plane软件建立UDP连接;转换软件仅接收X-Plane发送的数据,因此IP地址设为IPAddress。执行语句如下:

IPEndPoint ipep=new IPEndPoint(IPAddress.Any,49003);

UdpClient newsock=new UdpClient(ipep);

其中发送数据通信端口号为49003。

依据X-Plane输出数据的格式定义,4个字节代表1为浮点数值,且4个字节按照高字节进行排序。因此,转换软件接X-Plane发送的字节数据后,需要将每四个字节进行转置,按照低字节排序后转换为浮点数值。该步骤可通过c#语言中的BitConverter.ToSingle()语句完成。

转换软件利用STK的COM组件与STK建立交互。所需添加的COM组件为AGI.STKGraphics、AGI.STKObjects、AGI.STKUtil、AGI.STKVgt、AGI.STKX、AGI.Ui.Application和 AGI.Ui.Core。与 STK软件建立连接语句如下:

StkX=new AGI.Ui.Application.AgUiApplication();

StkX.LoadPersonality(“STK”);

stkRootObject=(AGI.STKObjects.AgStkObjectRoot)StkX.Personality2;

this.stkRootObject.ExecuteCommand(“New/Scenario Test”);

在建立的场景中添加飞行器,命令如下:

stkRootObject.ExecuteCommand(“New/ */Aircraft XPlaneFlight”);

STK软件中飞行器对象的轨迹传播模式包含Great Arc、Aviator、Stk External和 Real Time。为实现数据的实时传递,需要设置传输模式RealTime,C#语句如下:

stkRootObject.ExecuteCommand(“RealTime*/Aircraft/XPlaneFlight SetProp”);

为实现飞行器在2D、3D界面下姿态、位置等信息更新,首先需执行以下命令:

stkRootObject.ExecuteCommand(“BatchGraphics*On”);

3 应用实例

本节利用STK软件建立超短波电台空地通信场景,机载超短波电台的天线辐射为全向天线,但由于机体遮挡操作实际的方向性图并非全向,因此利用AzEI Mask工具对机载下天线进行方向性建模[2]。飞行器的姿态和位置信息由X-Plane软件准实时提供。仿真界面见图2和图3,其中图2中(a)为STK软件的任务场景界面,图2中(b)为X-Plane飞行界面,图3自编软件界面。

图2 任务场景和飞行界面

图3 飞行参数数据界面

4 结语

通过对STK软件和X-Plane软件的二次开放,实现了不同姿态下进行机载电子设备验证的目的。该方法是飞行试验的一种补充,为预判涉及安全而无法有效完成的试飞内容,提供了一种方法,未来可利用X-Plane组网功能和STK的雷达、武器等模块,实现实时对抗、兵力演示验证等场景仿真。飞机气动布局真实准确下,利用X-Plane提供的各种气象条件下的飞参数据,结合STK软件的航空器任务建模模块(Aircraft Misson Modeler,AMM),可实现试飞员在复杂气象条件下的飞行培训工作和试飞平台在复杂气象条件下的性能试飞。该方法在飞行试验中应用前景广阔,希望能起到抛砖引玉的作用。

猜你喜欢

该软件姿态界面
不同截面类型钢管RPC界面粘结性能对比研究
微重力下两相控温型储液器内气液界面仿真分析
简单灵活 控制Windows 10更新更方便
攀爬的姿态
国企党委前置研究的“四个界面”
遗留或损坏 软件卸载没商量
另一种姿态
以文青的姿态回归主流——对《后悔无期》的两重解读
捉拿李鬼
阅读是最美的姿态