装备仿真软件可视化开发平台设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
装备仿真软件开发平台的设计与实现
侯春龙卫翔齐新战
(海军潜艇学院作战指挥系,青岛, 266071 )
摘要:首先分析了当前装备仿真软件开发面临的主要问题,从开发者角度深入探讨了装备仿真软件的逻辑组成,确立了装备仿真软件开发平台的功能定位和特点,设计了开发平台的框架结构,阐述了开发平台主要组成部分的主要功能和技术实现。
关键词:装备仿真软件开发平台机理
作者简介:侯春龙(1976-),男,硕士,讲师,虚拟仿真
引言
武器装备仿真训练软件是为武器装备受训人员提供的,以武器装备操作使用、协同训练、保障支援等训练任务为基础的,在商业货架计算机软硬件平台上运行的,以操作训练为主要目的的计算机软件。该类软件通过对仿真对象的操作界面、内部逻辑的仿真,实现武器装备的操作训练功能。但这种训练软件的开发与研制面临着诸多问题:(1)缺乏统一的开发标准和规范导致仿真系统难以实现互操作,出现了大量“烟囱式”系统;(2)缺乏科学的工作流程导致开发周期长、质量不高;(3)复杂仿真系统往往涉及多个部门分布式开发,系统集成难度大,导致大量相似模块的重复开发;(4)在传统的建模仿真概念框架下建立的仿真模型难以在不同的仿真系统中应用,已开发的仿真模型升级维护难度大[1]。
所以开发一个功能全面、界面友好、通用性强的装备仿真软件开发支撑平台是十分必要和有意义的。
1.装备仿真开发平台的功能及特点
装备仿真软件开发平台是为各类仿真装备的操作界面和内部机理模型的开发、编译及运行管理而提供的一个可视化的支撑环境。区别于一般商用的大型复杂仿真开发平台,本开发平台具有以下特点:
1.1可视化
为简化和规范仿真软件开发过程,使专业人员无需深入了解复杂的编程语言代码,就能使用平台进行软件开发,可视化是最关键的特点之一。该平台将大量开发工作内容和流程进行梳理,形成规范化的操作界面和序列化的操作命令工具,屏蔽了开发工作中的繁枝缛节,因而大大简化了仿真软件开发的难度。
1.2简便性
本平台并未采取一体化集成方式,而是序列化工具组合方式。虽然前者的集成度高、组合性强,但过多功能集合在一个软件界面中,各种命令种类繁多,开发工作头绪复杂,不便调试和排错。序列化工具组合方式依照仿真软件的开发流程,在不同阶段提供相应的开发工具,使开发过程更明晰,流程更连贯,而且每种工具功能针对性很强,便于阶段性的开发和调试。
1.3开源性
为便于仿真软件的功能拓展和二次开发,平台对公共元件和模型计算部分的代码进行了开源设计。对前者的开源设计便于用户掌握常用标准元件的设计原理,并在此基础上开发具有特殊功能的自定义元件,提高元件的可重用性,扩充元件库。对模型计算的开源设计便于用户从程序员角度分析和调试代码,并在此基础上进行二次开发,提高仿真模型的可移植性和重用性。
1.4支持并行开发
利用该平台可同时进行人机界面开发、仿真模型开发和特殊元件开发,各部分的开发结果最后合并到装备仿真软件架构中,在该架构中对各开发模块进行关联校正、冗余剔除和排错处理。平台支持软件模块的多次合并重组和拆分,有利于加快开发进度、提高开发效率。
2.装备仿真软件的逻辑组成
2.1面板与场景
装备仿真训练系统开发可以分为界面设计、内部机理建模两大部分。人机界面可分
为二维平面人机界面和三维立体人机界面,构成二维界面的是面板,构成三维界面的是场景,如果要构建二三维结合的装备仿真系统,则是两者的结合。面板和场景则分别由平面元件和立体元件组成。
2.2元件
元件是仿真面板和仿真场景的构成单元,也是仿真控制和计算的基本单元,它可以接受操作者的控制指令、启动仿真计算、反映仿真结果。元件可以分为主动元件和被动元件。主动元件可以接受操作者指令并产生输出参数从而控制其他元件的行为,被动元件不产生输出参数,只接受外部控制并根据控制信号反映某种状态。
2.3仿真参数
仿真参数是进行仿真计算的变量,是仿真元件之间、面板之间、场景之间相互联系和作用的纽带。仿真参数分为系统参数、元件参数和过程参数。系统参数用于控制和表示装备仿真系统的仿真状态和流程,如仿真时间、仿真速度、仿真状态、诊断信息等。元件参数用于设置元件的输入输出状态,也用于表示元件的中间状态。过程参数是进行仿真计算过程中设置的临时参数。
2.4仿真模块
装备仿真软件的内部机理建模依托仿真模块进行,模块分为计算模块、线程模块和显示模块。由输入参数触发,经过与中间参数进行计算,计算过程通过流程控制语句即可完成的模块称为计算模块。由输入参数触发,经过与中间参数进行计算,计算过程需要另辟线程才能完成的模块称之为线程模块。由输入参数触发,经过与中间参数计算,计算过程围绕绘制图形、显示图像等工作进行,需要不断刷新界面的模块称之为显示模块。计算模块和线程模块均有输出参数,用于显示计算结果或触发另一模块。显示模块无输出参数,其计算绘制的图形图像即是模块的输出内容。
图1:装备仿真训练系统组成结构图
3.装备仿真软件开发平台组成
装备仿真软件开发平台由开发支撑组件和附属工具组件组成。
开发支撑组件主要由机理设计器和界面设计器组成,分别提供机理模块和仿真界面开发功能。附属工具包括元件设计器、元件测试器。这种把内部机理和外部界面分开进行设计符合对客观对象的认识,也有助于将开发工作层次化,同时可以支撑两者的并行开发。其中,机理开发是重点,它反映的是仿真对象内部运行原理,而界面只是内部原理的一种可视化表示[2]。
图2:开发支撑平台逻辑结构
3.1机理设计器
机理设计器用于设计仿真装备的内部机理,包括装备系统机理架构开发、仿真参数的定义和仿真模型的开发和设计。
系统机理架构是在对仿真装备进行理论抽象的基础上,分析并设计其包含的面板/场景结构、仿真参数构成、仿真模块构成、仿真元件构成。面板结构包含的面板数量、叠放次序、各面板尺寸;场景结构包括场景数量、导入顺序、叠放次序等;仿真参数构成包括系统参数、局部参数、测试参数以及这些参数的层次类型;仿真模块包括模块类型、模块数量、模块参数引用等;仿真元件构成包括每个面板/场景包含的元件类型与个数等。其他需要设计的问题还包括为完成仿真开发需要导入/加载的资源,例如包含文件、动态链接库以及响应消息等。
仿真参数是对仿真对象内部机理状态量化静态表述,仿真参数分为全局参数(也叫系统参数)和局部参数,全局参数反映的是整个仿真对象的整体态势,局部参数反映的是仿真对象某个部位或某个阶段的状态。局部参数的一个特例就是元件参数,它表示构成仿真对象的基本单元即元件的状态。仿真参数的定义包括参数名称、类型、初始值、ID号、参数说明等内容。参数类型包括整型、浮点型、字符型、指针型、空类型、矩阵型、时间型等。ID号是各种参数在参数库中的唯一标识号,为保证参数ID号的唯一性、合法性,系统自动产生该值并对其进行验证。
仿真模型则表示对象从一种状态向另一种状态转变的过程,对应的是一组仿真参数经过模型计算之后如何影响另一组仿真参数,前者是模型输入参数,后者是模型输出参数[3]。为表述方便,在机理设计器中将系统仿真模型的各个计算单元称为模块。模块一般由模块名称、输入输出参数、模块函数、临时变量、模块资源组成。其中模块输入输出参数是从整个仿真参数库抽取的,任一输入参数值的变化都将触发该模块的调用,模块计算结果表示为部分或全部输出参数值的变化。计算过程通过函数进行,函数一般包括加载函数、卸载函数、触发函数和用户自定义函数。加载函数主要完成该模块的变量初始化和资源加载工作,卸载函数则完成资源释放和销毁工作。触发函数是输入参数变化时直接触发的函数,用户自定义函数是为完成本模块的计算而设置需要调用的其他自定义函数。临时变量是为完成本模块计算或临时记录某些值而设定的变量,这些变量在模块调用结束完成之后自动销毁。
根据模块计算方式和结构化语句类型,可将模块分为计算模块、显示模块、线程模块。计算模块根据输入参数变化经过结构化控制语句进行计算后直接影响模块输出参数。线程模块是在系统仿真进程的某个阶段,为完成某些发杂计算过程而开辟的除主线程外的另一线程,线程模块除包含加/卸载函数、触发函数和自定义函数以外,还包括线程初始化函数、线程运行函数、线程销毁函数。显示模块也叫绘制模块,该模块一般没有输出参数,只根据输入参数的变化在指定窗体上绘制图形或显示图像,该模块除包含加/卸载函数、触发函数和自定义函数以外,还包含一个绘制函数,并提供一个设备上下文作为绘制图像的承载体。
3.2界面设计器
面板设计器主要完成面板背景设置、场景模型的导入和设置、元件布局和属性设置。
面板背景设置主要完成面板尺寸设置、背景色设置、面板背景图片资源选择、面板背景图位置风格。
元件设置主要完成元件尺寸设置、位置设置、激活设置、可见性设置、叠放次序设置以及资源图的加载等。
三维装备仿真软件需要三维模型作为可视化表示。三维视图表示包括场景、模型、灯光、相机、模型碰撞检测等。其中场景设计包括场景视角切换、场景信息选项、场景移动及旋转、场景缩放、场景填充模式等内容;模型设计主要包括模型导入、模型点面过滤、模型移动及选装、模型缩放、模型材质设置、光照设置、透明度设置等。灯光主要包括光源位置设置、光源类型设置、镜面反射设置等内容。相机则包括相机类型、相机轨迹、相机速度和广角设置等[4]。
三维元件构造是三维视图界面设计中工作量较大的一项工作。三维元件不同于一般的二维元件可以在元件库中设计,必须针对模型的某个部位进行重新构造。构造工作包括对模型中的材质、纹理进行变换、模型的缩放、扭曲、拉伸、旋转、移位等,从而在界面上实现状态灯、开关、按钮、数码管等效果。
4 结束语
该开发平台是为装备仿真软件开发提供的一个支撑平台,它主要具有以下优点:
1. 操作简单、易学易用。该平台为用户提供可视化的开发环境,简化了开发流程,降低了开发难度,可使所有熟悉专业装备的人员直接参与装备仿真软件开发工作。