基于SysML的作战场景监测仿真研究

2023-02-11 09:20黄玉钱胡保坤刁湾湾夏征华
关键词:校验组件建模

黄玉钱,胡保坤,刁湾湾,夏征华

(杭州师范大学信息科学与技术学院,浙江 杭州 311121)

0 引言

技术进步使当今世界的作战场景变化多端,为国家强大而研发新型作战系统的任务日益复杂和困难.作战系统包括战略、战术、训练和资源(如工具,供应和设施)[1]等方面.设计开发这类新型作战系统通常包括5个步骤:概念设计、设计验证、原型制作、评估和测试.完成和实现这些步骤需要花费大量的时间和金钱,因为在每个步骤中都使用独自的方法和技术.拥有强大国防力量的国家在概念设计阶段就开始使用建模和仿真技术[2-3]以减少作战系统开发的时间和成本.建模和仿真技术的另一个优点是:可以通过考虑各种作战要素,回顾作战过程中实时变化的数据,为武器的设计和研发带来便利性和高效性.为此还需要一个能够获取作战过程实时数据的方法,以减少因数据变化而导致的反复实验.

基于模型的系统工程(Model Based System Engineering,MBSE)[4-6]是一种使用模型表达设计的系统工程方法.为了对MBSE进行更好的支持,对象管理组织 (Object Management Group, OMG)和国际系统工程学会 (International Council of Systems Engineering, INCOSE)联合开发了系统建模语言SysML[7-8].SysML是领域无关的建模语言,可以通过SysML的可扩展性[9]对其进行扩展,以形成领域相关建模语言(Domain-specific Modeling Language,DSML).

目前基于模型的系统工程概念已被工业界广泛研究,并于航天、航空、作战、动车等领域得到一定应用[10-12].彭斯明[3]等研究人员提出了将系统建模语言(SysML)用于作战概念的可视化和规范化描述的方法,并分析了将国防部体系结构框架(Department of Defense Architecture Framework,DoDAF)和SysML相结合用于作战概念描述的思想,采用多视图产品的形式对作战概念的作战背景、能力需求、体系构成和作战活动等多个方面进行规范化描述,最后通过“分布式杀伤”作战概念作为实例,论证了其所提方法的有效性和可行性.谢文才[13]等研究人员针对当前体系结构的建模方法不是基于统一的元模型规范,提出了基于元模型的军事信息系统体系结构建模方法,能够实现不同体系结构框架方法论及体系结构工具下所开发体系结构的可理解、可比较、可交换等优点,促进了体系结构数据的共享和重用.苏瑾[14]等研究人员探索了车辆显控系统智能构建方案中基于元模型的需求建模方法,通过扩展标准系统建模语言定义显控领域的专用语言,在此基础上构造包含需求域元任务的可重用模型库,使系统能够依照战场任务目标自动确定显控信息内容和提供布局方案.该模型的优点是使用了元模型建模,使开发过程更加高效率、规范化,并且可以支持后续的任务功能分解和显控界面布局.但缺点是当战场上的任务目标变化时,需要重新修改模型中的数据再次实验,实验过程繁琐,造成一定的局限性.

综上所述,在作战领域中基于MBSE方法和任务建模方面已有较多相关研究.但在数据交互上仍存在一定的局限性,为解决该问题,本文以作战场景监测为研究对象,提出基于SysML的作战场景监测仿真的统一流程框架,研究基于元模型的构建方法,并且在仿真模型的基础上,探索了模型与外部平台之间的数据交互方式,实现模型数据动态变化功能.

1 总体流程

本文拟定将作战场景监测仿真系统应用于海上军事系统中.假设该系统包括:监测系统、中央指控系统、作战系统、武器系统.本文假设系统之间的交互如下:监测系统能够监听到其他客户端发出的数据信号,捕获该数据信号并且发送数据信息给中央指控系统.中央指控系统处理数据,再把数据发送给作战系统.作战系统接收数据并分析各个数据,根据结果发送信号给武器系统.收到信号的武器系统做出进一步操作.总体流程如图1所示.

图1 作战场景监测仿真设计流程Fig.1 Combat scene monitoring simulation design process

针对本文的研究内容和领域,可以进一步细分为以下步骤:

1)需求表达,采用基于模型的需求图和约束组件,表达作战场景的功能领域相关需求;

2)系统上下文关系表达,采用基于模型的模块定义图,表达系统上下文之间关系;

3)设计领域元模型,采用基于模型的构造型组件《stereotype》,设计一套作战场景领域元模型;

4)信息流表达,采用基于模型的内部模块图,表达作战场景功能之间的信息流内容;

5)接口表达,采用基于端口的组件,表达作战场景的对外接口以及接口之间的连接;

6)数据监听,采用JAVA代码对软件进行二次开发,基于通讯协议,获取外部界面传递来的相关数据;

7)数据赋值,采用JAVA代码对软件添加数据接收功能,基于SysML语言底层代码逻辑,将外部数据传到模型系统中;针对以上内容,提出了总体设计方案,如图2所示.本文采用JAVA语言中的Socket通讯框架实现数据交互,为了提高通讯的性能以及考虑到代码与建模软件的适配性,选择异步与非阻塞方式(AIO)进行数据的捕获与发送.

基于SysML模型的作战场景建模与仿真,通过对元模型的扩展进行模型搭建.详细方案如图3所示,步骤如下:

首先,深入学习、总结专家的作战领域知识,定义作战场景的功能模型集合和组件库,将领域知识充分应用在仿真模型中.

其次,在建模语言SysML(System modeling language)原本的元模型基础上,充分利用它的扩展机制,根据仿真的需求扩展领域元模型并且遵守元模型搭建原则(MOF),包括在活动(Activity)的基础上扩展功能类型、在类(Class)的基础上扩展组件元模型、在端口(Port)的基础上扩展适合表达作战场景监测领域的新端口类型.本文以在活动(Activity)的基础上扩展功能元模型为例.

最后,基于扩展的元模型,搭建作战场景监测仿真模型.并且在模型基础上,扩展其数据交互功能.

图2 作战场景监测仿真总体设计方案Fig.2 Combat scene monitoring simulation overall design scheme

图3 模型驱动作战场景设计技术方案Fig.3 Model driven combat scene design technical scheme

2 基于SysML的武器作战场景元模型

元模型是模型系统建模的基础,领域元模型是在基于领域知识的基础上建立的,它描述了领域相关的模型内容以及它们之间的关系,并规范这些模型元素的使用方法.

2.1 元模型构造方法

元对象机制Meta-Object Facility(简称MOF),它起源于统一建模语言(Unified Modeling Language,UML).MOF是模型驱动架构(Module Driven Architecture, MDA)4个标准之一,它共包含4个模型层次:元元模型层、元模型层、模型层、对象层.

元元模型层:元元模型层位于顶部,它是MOF建立元模型的基础,是为了描述元模型而定义的一种“抽象语言”.一个元元模型可以定义多个元模型,在本文中可以将元元模型理解为SysML语言.

元模型层:元模型层由元元数据组成,元数据的组件和语义由元元数据定义,元模型是元元数据的集合.在本文中可以将元模型理解为构造的领域模型库,用于搭建领域内一类产品的模板.

模型层:模型层包含各种模型,元模型层的实例就是它们的结构.模型层是为了描述模型层而定义的抽象语言,一个模型即是元模型的一个实例.在本文中可理解为领域内一类产品的模板.

对象层:对象是由我们希望描述的数据组成,这些数据可以是特定领域中数据,主要职责是描述领域中的详细信息.在本文中可以理解为领域内一个具体型号的产品.

2.2 SysML扩展

SysML是一种领域无关的建模语言,为了使模型能够更加贴切地表达作战场景领域的相关需求和功能,需要基于SysML进行扩展以构建领域相关建模语言.构建生成的领域元模型库需要能够为同一型号模型复用,以减少设计阶段的工作量.目前,SysML的扩展方法主要有两种:

1)轻量级扩展方法:主要是在SysML语言所提供的模型元素基础上,创建一些包含领域相关语义模型元素的构造类型(Stereotype),通过创建的构造类型定义相关领域模型.

2)重量级扩展方法:将SysML语言的元模型根据自身的需求进行修改,创造符合特定领域的全新模型元素.

轻量级扩展方法具有效率高、灵活性强等特点.但是轻量级方法是在SysML语言元素基础上通过继承的方式进行扩展,其局限性比较大,可扩展范围小.重量级扩展方法需要了解SysML元模型内部结构,从而对其进行相应的修改,其扩展空间比轻量级扩展方法大,但是工作量大,效率低.两者各有其优缺点,本文依据作战场景领域的扩展内容和需求,选择SysML轻量级扩展方法进行研究.

2.3 作战场景领域元模型

基于上述元模型的生成原理以及SysML元模型轻量级扩展方法,设计出图4所示的功能元模型以及对应的功能类型和流类型.

功能是系统的核心,功能表示系统应该实现某种预期的行为,与功能最贴切的SysML模型元素是Activity.故而此处选择SysML中的Activity作为它的基类.

1)function表示的是作战场景中的系统功能,它的类型是functionType.其中最为关键的功能是信号传递、数据捕获.

·信号传递:一个组件从等候的状态进入执行状态,需要依靠信号进行数据或者消息传输,因此信号传递的功能在仿真系统中是必不可少的.例如本文的研究内容,在中央指控系统中发送“数据信号”给作战系统.

·数据捕获:在本次研究中,外部数据捕获起着重要作用,只有它的成功执行才能真正实现仿真系统与外部平台软件之间的交互,将外部数据传入到模型系统中,实现数据的实时变化,将仿真系统由单一模型向多元交互的方向发展.

(2)inputFlow表示的是输入流,从输入数据到输出数据的数据转换是一个产品在系统设计层主要强调的.因此,关键的一个任务是指定功能的输入流,其类型为flowType.例如作战系统发送“X-x防空导弹发射”给武器系统,这里的“X-x防空导弹发射”就是作为输入流输入到武器系统中.

(3)outputFlow表示的是输出流,它和inputFlow类似,用于指定复杂产品在系统设计层面表示的输出元素,通常以流的形式呈现.输出流的类型也是flowType.

SysML提供的<>组件,具有枚举的功能.如图4所示,“functionType”中列举了作战场景领域的主要功能:信号传递、数据捕获、导弹数量查询、外部数据通讯、数据格式修改等.

同样的,通过<>自定义了“flowType”,它主要是用来表示inputFlow和outputFlow的构造类型.如图4所示,使用“flowType”表示“inputFlow”和“outputFlow”的类型.

图4 基于SysML构造类型定义的功能元模型、功能类型和流类型Fig.4 Construct the functional metamodel, functional types, and flow types of type definitions based on SysML

图5 功能元模型Fig.5 Functional metamodel

表1 数据流参数Tab.1 Data flow parameter

具体的功能元模型如图5所示,“复杂功能”和“元功能”构造类型是由“功能”构造类型继承而来.“元功能”再进一步可以细分为驱动、数据传递、制动、输入、输出、支撑、辅助功能等元功能,其中辅助功能也可再进一步细分为信号监测、异端传输、信号传递、数据捕获等元功能.

模型中的流,则是继承了来自SysML中的Parameter构造类型.对于流又可以进一步分为输入流、输出流和信号流.本文中对于流中的数据字段,设定了一个名为Block的类,该类中包含isEnable、missileCount、isReady和isCaptureTargeted 4个参数.参数描述和类型如表1所示.

3 武器作战场景系统建模

元功能是模型系统中较为重要的一部分,它是系统中各个功能的基石.因此元功能设计在整个过程中是十分重要的环节,元功能的设计需要依据以下原则:

1)元功能应尽量达到各资源实体的要求.每个元功能是由具体的资源实体来承担的,因此元功能不能超过各资源实体的能力范围,否则不能被有效执行,即分解失效.

2)元功能需要明确且独立.首先元功能作为资源实体执行的不可再分的功能单元,必须要明确目标,才能匹配对应的资源实体.其次元功能必须独立,以减少功能之间的耦合度.

基于上述元功能设计原则,构建作战场景监测的元功能模型.首先创建Activity组件,对于复杂的任务需要将其分解为多个子任务.其次根据每个Activity所担任的功能将其命名为所要创建的元功能名称.

图6展示了功能分解关系.在模型中条件校验功能可以被认为是父任务,信号接收、发射环境校验、发送信号、导弹发射状态校验、导弹数量校验、捕获目标校验、数据捕获则被认为是子任务.

图6 条件校验功能详细信息及其关系Fig.6 Conditional verification function details and relationships

4 作战场景监测仿真系统及验证

4.1 定制化作战场景监测原型系统

为了推进模型的多样化发展,本文在上述内容的基础上研究了模型与外部平台之间的数据交互功能.基于Cameo Systems Modeler软件,研发了“SIM”插件,使该插件能够兼容Cameo Systems Modeler软件并且实现模型与外部平台之间的数据交互.

4.2 定制化作战场景监测系统流程

图7 定制化作战场景监测流程及原理Fig.7 Customized battle scene monitoring process and principle

本文通过Java代码模拟外部平台的数据发送,定制化作战场景监测流程及原理如图7所示.具体步骤如下:

1)在java代码中编写异步且非阻塞(Asynchronous IO)的Socket通信代码,并且监听指定IP地址和端口号;

2)在软件中通过插件的方式导入开发功能,并且开启数据监听;

3)在外部平台中发送missileCount、isReady、isEnabled、isCaptureTargeted等数据,数据的发送同样是基于Socket通信的基本原理,并且采用异步非阻塞的方式进行;

4)监测系统捕获到所有数据,通过中央指控系统进行数据的处理.

4.3 系统验证

为验证上述方法的有效性,本文建立了如下遐想任务:在某一作战场景中,雷达系统监测到前方存在非法入侵,数据传送系统将数据发送至指定IP及端口,具体内容为如下:前方30 n mile发现非法入侵船只,正在向西南方向以30 Knot的速度行驶.我方导弹状况数据:’missileCount’:15,’isEnabled’:true,’isReady’:true,’isCaptureTargeted’:true.

首先在模型中通过开启监听任务,之后将对应数据赋值到模型指定位置中,替换旧的数据同时开启仿真.以上文的“条件校验功能”为例,由上文可知,条件校验功能可视为父任务,其还可以具体细分为发射环境校验、状态校验、导弹数量校验、捕获目标校验等子功能.如图8所示,该图为模型中的状态图,在通过初始化检查后,可分别对数据信号中的missileCount、isReady、isEnabled、isCaptureTargeted参数进行校验.

图8 条件校验状态图Fig.8 Conditional check status diagram

图9 发射环境校验活动图Fig.9 Launch environment verification activity diagram

图9为发射环境校验的具体内容,在校验过程中,采用readSelf组件获取信号,使用readStructuralFeature组件读取信号中的对应参数(注意此时该参数已经替换为最新数据).当isEnabled参数的值为false时,则通过OpaqueAction组件在控制台输出“当前环境不符合发射条件”,并且退出整个系统.反之在控制台输出“当前环境符合发射条件”,之后进入下一个参数校验.

图10 发送信号活动图Fig.10 Send signal activity diagram

当所有的参数都校验成功后,进入“发送信号”状态中,图10为发射信号状态下的具体内容,在该部分,通过StartObjectBehavior启动“导弹系统”(在此之前导弹系统是处于等待状态),然后在参数中添加一个名为“launch”的参数并通过addStructuralFeatureValue组件给该参数赋值为true.最后通过“sent_signal”发送信号到导弹系统中,其中“send_signal”中编写的代码为“ALH.sentSignal(sig,o)”,最终再由导弹系统完成发射指令操作.

本次实验,以“条件校验功能”行为为例,在模型中开启数据监听,系统能够成功收到其他客户端发来的数据,在数据解析后顺利地将数据赋值到模型对应的组件中,使模型在仿真的过程能够读取到最新的数据.该实验验证了外部平台与模型之间数据交互的可行性.当系统的数据量十分庞大时,就能体现出该方法的优越性,能够极大地减少劳动时间和劳动量,并且降低手动修改模型的次数,在一定程度上为模型仿真提升了效率.

5 结论

以MBSE思想为基础,以基于SysML模型的作战场景监测仿真为研究对象,研究了作战场景监测仿真构建方案中基于元模型的建模方法,扩展了标准的SysML语言,通过创建构造类型的方式,建立系统功能的领域元模型,基于领域元模型搭建作战场景监测仿真模型.并且实现了将模型中的数据与外部数据进行交互的功能.在数据交互方面,将单一化的模型向多元化的方向发展.

在未来的研究中,将继续探索和实践模型多元化方法.拟在现有的基础上,一是提升软件自动化建模能力,减少建模花费的人力物力及时间,提高建模效率.二是进一步提升数据交互的多样性,研究将模型的数据实时传递到外部客户端的方法.形成多平台模型关联的智能建模方案,为完成作战任务建模提供先进的技术手段.

猜你喜欢
校验组件建模
无人机智能巡检在光伏电站组件诊断中的应用
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
炉温均匀性校验在铸锻企业的应用
风起新一代光伏组件膜层:SSG纳米自清洁膜层
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法