一种基于端口反向生成的组合建模方法转让专利

申请号 : CN202210897193.X

文献号 : CN115062550B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵景张聪张翼

申请人 : 湖南高至科技有限公司

摘要 :

本发明公开了一种基于端口反向生成的组合建模方法,通过自顶向下进行组合架构建模,自底向上进行组合实现建模,构建组合模型的内部模型之间的交互关系,以及内部模型与组合模型的交互关系,实现基于交互关系反向生成组合模型端口以及匹配关系,从而自底向上进行模型组装,能够支持多种实现粒度的组合建模,并引入了端口数据的节点和关联,提升了端口匹配的语义描述和可理解性,加快了建模的人性化和建模速度。

权利要求 :

1.一种基于端口反向生成的组合建模方法,其特征在于,所述方法包括以下步骤:步骤S100:根据预设的场景和问题确定建模本体、想定、输入和输出信息,根据所述输出信息自顶向下建立组合模型架构;

步骤S200:根据所述建模本体、想定、输入和输出信息进行端口数据黑板建模;

步骤S300:根据所述组合模型架构和所述端口数据黑板采取由底至上的方式进行组合实现建模,得到组合后的主模型和子模型;

步骤S400:根据预设的匹配原则分别完成所述组合后的主模型和子模型的端口标签和端口类型的匹配检查,当匹配检查通过后,进行所述组合后的主模型和子模型的端口反向生成以及各端口间的匹配关系的生成,根据所述各端口和端口间的匹配关系得到最终的组合模型;

步骤S500:根据所述最终的组合模型生成组合模型的对偶模型和所述组合模型的原子交互模型,根据所述最终的组合模型、所述对偶模型和所述原子交互模型进行仿真测试,得到测试结果;

步骤S400中进行所述组合后的主模型和子模型的端口反向生成以及各端口间的匹配关系的生成,包括:步骤S410:按照端口数据与子模型的连接方向,确定主模型端口的输入输出类型;若箭头指向子模型,则主模型端口为输入端口,若箭头指向端口数据或主模型,则主模型端口为输出端口;

步骤S420:根据端口数据与子模型的连接端口类型,确定主模型端口类型,主模型的端口类型与端口数据与子模型连接的端口类型相同;

步骤S430:根据端口数据的名称确定主模型的端口名称,主模型端口名称与该端口数据的名称相同;

步骤S440:根据端口数据的类型确定主模型的端口数据类型,主模型的端口数据类型与该端口数据的类型相同;

步骤S450:统一整合端口名称和类型,合并重复端口,完成端口生成;

步骤S460:完成主模型端口生成后,进行主模型端口与子模型端口的匹配,采取按照端口数据交互关系的匹配方式,进行内部关联匹配。

2.根据权利要求1所述的方法,其特征在于,步骤S100中的组合模型架构包括各模型的名称以及各模型之间的组合关系。

3.根据权利要求2所述的方法,其特征在于,步骤S200包括:

根据所述建模本体、想定、输入和输出信息明确端口数据名称、数据间的组合关系、端口类型、数据类型和端口数据标签,其中,所述数据间的组合关系包括逻辑关系和计算关系,所述端口类型包括配置端口、消息端口、状态端口、服务端口和驱动端口,所述数据类型包括整型和小数;所述端口数据标签包括实体、活动、状态、事件和属性。

4.根据权利要求3所述的方法,其特征在于,步骤S300包括:

步骤S310:根据所述组合模型架构和所述端口数据黑板得到各端口数据间的交互关系;

步骤S320:根据所述各端口数据间的交互关系采取由底至上的方式连接原子模型端口与端口数据,连接子模型与子模型,从而得到组合后的主模型和子模型。

5.根据权利要求4所述的方法,其特征在于,预设的匹配原则包括属性标签对应配置端口或状态端口,事件标签对应消息端口,实体、活动和状态标签对应状态端口。

6.根据权利要求5所述的方法,其特征在于,步骤S500包括:

步骤S510:生成所述组合模型的对偶模型和所述组合模型内部原子交互模型;

步骤S520:当所述对偶模型建立完毕后,将所述组合模型和所述对偶模型同名称、类型相反的端口相互连接,实现所述对偶模型与所述组合模型的端口匹配;

步骤S530:多层级的组合模型进行逐层展开,将所述组合模型中的原子模型实例化,并进行关联,实例化的原子模型命名为“原子模型_”+序号,并基于生成的组合模型端口以及连接关系,建立原子模型实例之间以及与顶层组合模型的端口连接关系;

步骤S540:采用仿真引擎,执行所述组合模型测试,得到测试结果。

7.根据权利要求6所述的方法,其特征在于,所述原子交互模型是原子模型实例之间以及与主模型之间的交互关系,包括五种端口类型之间的交互。

8.根据权利要求6所述的方法,其特征在于,所述组合模型的对偶模型为组合模型的对偶实现,所述对偶模型的端口与所述组合模型的端口一一对应,除端口类型相反外,其他均一致;当所述对偶模型只具备属性端口、驱动端口和状态端口时,所述对偶模型为值对象模型,无需定义该对偶模型的实现,当所述对偶模型具备消息端口时,由于需要所述对偶模型对于消息进行逻辑处理,或生成并发布消息,采取编程建模的方式对对偶模型进行实现建模。

说明书 :

一种基于端口反向生成的组合建模方法

技术领域

[0001] 本发明属于系统建模与仿真领域,特别是涉及一种基于端口反向生成的组合建模方法。

背景技术

[0002] 建模与仿真(Modeling and Simulation,M&S)是一门新兴学科,建模是将现实中的数据、过程、限制等抽象为各种模型,而仿真则是模型的执行。随着计算机技术的不断发展,建模与仿真研究已经与理论研究、实验研究一起,作为科学研究的三种主要手段,受到广泛的关注和发展。特别是在军事系统仿真的研究中,建模与仿真技术已经服务于战略、战术、战法、训练、试验、分析、辅助决策等众多研究领域,而且应用范围还在不断扩展,研究层次也在不断深入。
[0003] 随着作战仿真系统的规模在不断扩大,复杂度、精确度、时效性的要求也在不断提高,研究人员开始关注如何有效降低仿真系统开发成本、节约开发时间、提高仿真水平的问题。一些系统设计原则和相关支撑理论不断涌现,其中最为关注的两个方面就是仿真组件的重用与组合。重用是指仿真组件能够应用于不同的仿真系统,而组合是指多个仿真组件能够以一定的形式组合形成新的仿真系统,从而满足特定的仿真需求。
[0004] 组合仿真技术借鉴了软件工程领域中的软件组件和模块化设计的思想,最早由美国国防部提出,并应用到可组合行为技术(Composable Behavioral Technologies,CBT)的研究之中,之后联合仿真系统(Joint Simulation System,JSIMS)将组合作为主要研究方向,并开始了基于模型的仿真组合(Model Based Simulation Composition,MBSC)计划,成为JSIMS系统构建的原型组合环境。此外,美国国防部的建模仿真办公室于 2002 年开始的可组合使命空间研究项目,也被认为是组合仿真技术最早的研究和应用之一。
[0005] 经过多年的发展,组合仿真以其特有的优势,得到了充分的认可,并且已经成为建模与仿真领域的研究热点。
[0006] 在组合仿真的方法上,主要包括:基于公共模型库(Common Library Approach,CLA)的方法、基于产品线(Product Line,PL)的方法、基于模型驱动架构(Model Driven Architecture,MDA)的方法,以及基于互操作协议(Interoperability Protocol Approach,IPA)的方法等。
[0007] 基于公共模型库的方法的典型代表是联合建模仿真系统(Joint Modeling and Simulation System,JMASS)和Sim2000,该方法通过标准的文件格式和数据传输协议,建立公共的可重用模型库,然后根据特定需求进行模型的组合,但是该方法对数据交互的格式进行了限定,往往仅针对特定的仿真系统结构和应用环境,并且缺乏端口数据的语义约束。
[0008] 基于产品线的方法的典型代表是单一半自动兵力仿真系统(One SemiAutomated Force,OneSAF),该方法的基本思路是通过对已有产品族的组装或者改造来构建仿真系统,不同于基于公共模型库的方法,它支持以注释的形式对仿真组件元数据的描述,使得组件模型具备部分语义信息,但是在严格性上不够完备,容易导致二义性,因此并不能够完全支持语义层次的组合。
[0009] 基于模型驱动架构的方法,通过平台无关模型 PIM(Platform Independent Model)以及平台相关模型 PSM(Platform Specific Model)的应用,区分了仿真组件的建模层次,提升了模型组件的抽象水平,使得模型的概念描述与具体的实现细节相隔离,提高了仿真组合的灵活性,为实现异构仿真平台之间的互操作提供了支持。但是,MDA 缺乏对仿真组件模型行为逻辑的描述和定义,难以直接在语义、语用层次上为模型的描述和组合提供支持。
[0010] 当前,组合建模的方式大多采取基于端口连接组合的方法,如基于DEVS的模型组合,首先声明原子模型的类型、端口等信息,然后进行模型之间的连接,最后进行模型端口的匹配。然而这种技术存在以下几点不足:
[0011] 1、语义的表达能力不足。由于端口描述只是代表了模型能够提供的交互能力,端口与端口的连接并不具备模型之间关系语义描述及端口之间连接语义描述的能力,如雷达的输入端口连接了飞机的输出端口,并不显式的代表雷达对于飞机有探测能力,其中“探测”即为语义信息。
[0012] 2、组合的人性化程度不足。由于采取的是端口连接,是一种至底向上的组合方式,缺乏顶层设计和规划,与人类的思维习惯不相符,因此领域专家在使用时,往往要从众多模型中找出需要组合的模型,再进行端口连接,过程繁琐,工作量巨大。
[0013] 3、模型实现粒度灵活性不足。由于多粒度建模的需求,在组合前的模型框架确定后,其交互端口就已经确定,模型实现只能在此端口范围内进行操作,无法实现实现粒度的自由伸缩。
[0014] 因此,需要研究一种新型的组合建模方法,支持基于语义的多粒度模型敏捷组合。

发明内容

[0015] 针对以上技术问题,本发明提供一种基于端口反向生成的组合建模方法。
[0016] 本发明解决其技术问题采用的技术方案是:
[0017] 一种基于端口反向生成的组合建模方法,方法包括以下步骤:
[0018] 步骤S100:根据预设的场景和问题确定建模本体、想定、输入和输出信息,根据输出信息自顶向下建立组合模型架构;
[0019] 步骤S200:根据建模本体、想定、输入和输出信息进行端口数据黑板建模;
[0020] 步骤S300:根据组合模型架构和端口数据黑板采取由底至上的方式进行组合实现建模,得到组合后的主模型和子模型;
[0021] 步骤S400:根据预设的匹配原则分别完成组合后的主模型和子模型的端口标签和端口类型的匹配检查,当匹配检查通过后,进行组合后的主模型和子模型的端口反向生成以及各端口间的匹配关系的生成,根据各端口和端口间的匹配关系得到最终的组合模型;
[0022] 步骤S500:根据最终的组合模型生成组合模型的对偶模型和组合模型的原子交互模型,根据最终的组合模型、对偶模型和原子交互模型进行仿真测试,得到测试结果。
[0023] 优选地,步骤S100中的组合模型架构包括各模型的名称以及各模型之间的组合关系。
[0024] 优选地,步骤S200包括:
[0025] 根据建模本体、想定、输入和输出信息明确端口数据名称、数据间的组合关系、端口类型、数据类型和端口数据标签,其中,数据间的组合关系包括逻辑关系和计算关系,端口类型包括配置端口、消息端口、状态端口、服务端口和驱动端口,数据类型包括整型和小数;端口数据标签包括实体、活动、状态、事件和属性。
[0026] 优选地,步骤S300包括:
[0027] 步骤S310:根据组合模型架构和端口数据黑板得到各端口数据间的交互关系;
[0028] 步骤S320:根据各端口数据间的交互关系采取由底至上的方式连接原子模型端口与端口数据,连接子模型与子模型,从而得到组合后的主模型和子模型。
[0029] 优选地,预设的匹配原则包括属性标签对应配置端口或状态端口,事件标签对应消息端口,实体、活动和状态标签对应状态端口。
[0030] 优选地,步骤S400中进行组合后的主模型和子模型的端口反向生成以及各端口间的匹配关系的生成,包括:
[0031] 步骤S410:按照端口数据与子模型的连接方向,确定主模型端口的输入输出类型;若箭头指向子模型,则主模型端口为输入端口,若箭头指向端口数据或主模型,则主模型端口为输出端口;
[0032] 步骤S420:根据端口数据与子模型的连接端口类型,确定主模型端口类型,主模型的端口类型与端口数据与子模型连接的端口类型相同;
[0033] 步骤S430:根据端口数据的名称确定主模型的端口名称,主模型端口名称与该端口数据的名称相同;
[0034] 步骤S440:根据端口数据的类型确定主模型的端口数据类型,主模型的端口数据类型与该端口数据的类型相同;
[0035] 步骤S450:统一整合端口名称和类型,合并重复端口,完成端口生成;
[0036] 步骤S460:完成主模型端口生成后,进行主模型端口与子模型端口的匹配,采取按照端口数据交互关系的匹配方式,进行内部关联匹配。
[0037] 优选地,步骤S500包括:
[0038] 步骤S510:生成组合模型的对偶模型和组合模型内部原子交互模型;
[0039] 步骤S520:当对偶模型建立完毕后,将组合模型和对偶模型同名称、类型相反的端口相互连接,实现对偶模型与组合模型的端口匹配;
[0040] 步骤S530:多层级的组合模型进行逐层展开,将组合模型中的原子模型实例化,并进行关联,实例化的原子模型命名为“原子模型_”+序号,并基于生成的组合模型端口以及连接关系,建立原子模型实例之间以及与顶层组合模型的端口连接关系;
[0041] 步骤S540:采用仿真引擎,执行组合模型测试,得到测试结果。
[0042] 优选地,原子交互模型是原子模型实例之间以及与主模型之间的交互关系,包括五种端口类型之间的交互。
[0043] 优选地,组合模型的对偶模型为组合模型的对偶实现,对偶模型的端口与组合模型的端口一一对应,除端口类型相反外,其他均一致;当对偶模型只具备属性端口、驱动端口和状态端口时,对偶模型为值对象模型,无需定义该对偶模型的实现,当对偶模型具备消息端口时,由于需要对偶模型对于消息进行逻辑处理,或生成并发布消息,采取编程建模的方式对对偶模型进行实现建模。
[0044] 上述一种基于端口反向生成的组合建模方法,通过自顶向下进行组合架构建模,自底向上进行组合实现建模,构建组合模型内部模型交互关系,以及内部模型与组合模型的交互关系,实现基于交互关系生成组合模型端口,从而自底向上进行模型组装。相较于传统的方法,具备语义建模直观、多粒度支持、组合快速敏捷等特点。

附图说明

[0045] 图1为本发明一实施例中一种基于端口反向生成的组合建模方法流程图;
[0046] 图2为本发明一实施例中基于端口数据的组合模型元模型的示意图;
[0047] 图3为本发明另一实施例中各模型名称和组合关系的示意图;
[0048] 图4为本发明另一实施例中端口数据黑板建模示意图;
[0049] 图5为本发明另一实施例中组合建立上车时间计算模型的示意图;
[0050] 图6为本发明另一实施例中组合建立承载人数计算模型的示意图;
[0051] 图7为本发明另一实施例中组合建立车辆全重计算模型的示意图;
[0052] 图8为本发明另一实施例中组合建立上车模型的示意图;
[0053] 图9为本发明另一实施例中上车模型的原子交互模型示意图。

具体实施方式

[0054] 为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
[0055] 在一个实施例中,如图1所示,一种基于端口反向生成的组合建模方法,方法包括以下步骤:
[0056] 步骤S100:根据预设的场景和问题确定建模本体、想定、输入和输出信息,根据输出信息自顶向下建立组合模型架构。
[0057] 在一个实施例中,步骤S100中的组合模型架构包括各模型的名称以及各模型之间的组合关系。
[0058] 具体地,当组合模型名称确定后,其主要的建模目的、主要功能、涉及的要素范围等内容也相应确定。
[0059] 步骤S200:根据建模本体、想定、输入和输出信息进行端口数据黑板建模。
[0060] 在一个实施例中,步骤S200包括:根据建模本体、想定、输入和输出信息明确端口数据名称、数据间的组合关系、端口类型、数据类型和端口数据标签,其中,数据间的组合关系包括逻辑关系和计算关系,端口类型包括配置端口、消息端口、状态端口、服务端口和驱动端口,数据类型包括整型和小数;端口数据标签包括实体、活动、状态、事件和属性。
[0061] 具体地,数据黑板中的数据类型采用树型结构组合管理,数据类型有复合、枚举、序列、小数、整型、文本、集合等类型。数据具有数据标签,表明数据的描述对象类型。数据标签有实体、活动、状态、事件、属性,为节省图形空间,在图形化中分别以词语的首字简化代替,如“实体”简化为“实”。
[0062] 实体是指在建模场景中客观存在,生命周期存在一定时间的个体,是顶层的数据建模对象。活动是指模型的执行活动,接收外部信息,进行逻辑计算,并进行输出,是顶层的数据建模对象。状态是对能够保持一段时间的实体或活动的描述,能够跟随时间或在其他因素的作用下实现状态更新。事件是一种瞬时的对于实体或活动信息的描述,表现形式为事件发生消息,一般为枚举类型,可附带事件参数。属性是对于实体或活动模型的静态配置,描述模型的功能或性能,同一个数据能够同时具备状态和属性标签,表明该数据既是配置信息,又能够动态更新。
[0063] 在组合建模中,数据黑板中的数据能够穿透各个层级的组合模型,实现全局数据读写与数据共享。模型和模型之间没有数据交互关系,只存在触发关系,所有模型之间的数据交互利用数据黑板交互。
[0064] 步骤S300:根据组合模型架构和端口数据黑板采取由底至上的方式进行组合实现建模,得到组合后的主模型和子模型。
[0065] 具体地,基于端口数据的组合建模增加端口输入、输出数据层,进行端口数据语义的描述,作为端口与端口之间的连接。该方法增加了图形化内容的信息量,同时更便于用户直观建模。基于端口数据的组合模型元模型如图2所示。
[0066] 组合建模采用线框图的方式进行建模,主要要素为节点和连线。其中,节点可分为模型节点和端口数据节点;连线可分为数据连线和触发连线。
[0067] 模型可为原子模型或组合模型,是执行计算和逻辑处理的基础,一般由编程语言实现,表现形式为动态库或可执行程序。端口数据为模型端口的输入或输出数据,端口数据可以是基础数据类型或复合数据类型,端口数据的集合组成了模型更新的“黑板”,即黑板上的数据为所有模型全局可见的。数据连线为端口数据与模型之间的连线,代表数据传递关系。触发连线为模型与模型之间的连线,代表模型之间的触发关系。触发关系为有向连线,来源模型为前驱模型,目的模型为后继模型。前驱组合模型与后继子模型之间的触发关系为组合模型开始时触发;子模型之间的触发关系为前驱模型结束后触发;前驱子模型与后继组合模型的触发关系,代表组合模型的触发输出。
[0068] 在一个实施例中,步骤S300包括:
[0069] 步骤S310:根据组合模型架构和端口数据黑板得到各端口数据间的交互关系;
[0070] 步骤S320:根据个端口数据间的交互关系采取由底至上的方式连接原子模型端口与端口数据,连接子模型与子模型,从而得到组合后的主模型和子模型。
[0071] 步骤S400:根据预设的匹配原则分别完成组合后的主模型和子模型的端口标签和端口类型的匹配检查,当匹配检查通过后,进行组合后的主模型和子模型的端口反向生成以及各端口间的匹配关系的生成,根据各端口和端口间的匹配关系得到最终的组合模型。
[0072] 在一个实施例中,预设的匹配原则包括属性标签对应配置端口或状态端口,事件标签对应消息端口,实体、活动和状态标签对应状态端口。
[0073] 具体地,在组合建模完成后,需要进行端口与数据标签的匹配检查,是否存在不匹配的情况。按照IOCM模型规范,模型的端口有配置、消息、状态、服务和驱动五种端口类型,其中属性标签对应配置端口或状态端口,事件标签对应消息端口,实体、活动和状态标签对应状态端口。下面,对于IOCM中的五类端口的功能描述进行介绍:
[0074] 配置端口:包括配置输入和配置输出端口两种类型,用于仿真模型初始化,实现配置和模型实现分离。一般情况下,由于仿真的初始化工作由仿真平台进行,因此模型一般只具备配置输入端口。消息端口:包括消息输入和消息输出端口两种类型,用于进行实时数据交互,数据为发送端主动推送,接收端被动触发接收。服务端口:包括服务输入端口和服务输出端口两种类型,用于中断式远程方法调用,数据包括申请数据与回复数据。驱动端口:包括驱动输入端口和驱动输出端口,用于实现触发式工作流,按照一定逻辑驱动运行。状态端口:包括状态输入端口和状态输出端口,用于获取模型状态,数据为主动拉取式获取,拉取的数据为异步数据。当建立状态输出端口与状态输入端口的匹配后,对于状态输入端口的读取或写入,均会映射到状态输出端口的端口数据中。
[0075] 在匹配检查完成后,即可实现组合模型的端口生成与端口匹配。
[0076] 在一个实施例中,步骤S400中进行组合后的主模型和子模型的端口反向生成以及各端口间的匹配关系的生成,包括:
[0077] 步骤S410:按照端口数据与子模型的连接方向,确定主模型端口的输入输出类型;若箭头指向子模型,则主模型端口为输入端口,若箭头指向端口数据或主模型,则主模型端口为输出端口;
[0078] 步骤S420:根据端口数据与子模型的连接端口类型,确定主模型端口类型,主模型的端口类型与端口数据与子模型连接的端口类型相同;
[0079] 步骤S430:根据端口数据的名称确定主模型的端口名称,主模型端口名称与该端口数据的名称相同;
[0080] 步骤S440:根据端口数据的类型确定主模型的端口数据类型,主模型的端口数据类型与该端口数据的类型相同;
[0081] 步骤S450:统一整合端口名称和类型,合并重复端口,完成端口生成;
[0082] 步骤S460:完成主模型端口生成后,进行主模型端口与子模型端口的匹配,采取按照端口数据交互关系的匹配方式,进行内部关联匹配。
[0083] 具体地,内部关联匹配,即端口数据与子模型端口如何连接,基于该端口数据生成的主模型端口与子模型端口就如何连接,完成整个组合模型的端口生成与匹配。
[0084] 步骤S500:根据最终的组合模型生成组合模型的对偶模型和组合模型的原子交互模型,根据最终的组合模型、对偶模型和原子交互模型进行仿真测试,得到测试结果。
[0085] 在一个实施例中,步骤S500包括:
[0086] 步骤S510:生成组合模型的对偶模型和组合模型内部原子交互模型;
[0087] 步骤S520:当对偶模型建立完毕后,将组合模型和对偶模型同名称、类型相反的端口相互连接,实现对偶模型与组合模型的端口匹配;
[0088] 步骤S530:多层级的组合模型进行逐层展开,将组合模型中的原子模型实例化,并进行关联,实例化的原子模型命名为“原子模型_”+序号,并基于生成的组合模型端口以及连接关系,建立原子模型实例之间以及与顶层组合模型的端口连接关系;
[0089] 步骤S540:采用仿真引擎执行测试,得到测试结果。
[0090] 具体地,驱动模型运行和负责模型之间数据交互的是仿真引擎,在形成仿真引擎输入成果之前,需要生成组合模型的对偶模型和组合模型内部原子交互模型,分别负责提供数据值对象,持久化数据状态和建立原子模型实例的交互关系。
[0091] 在一个实施例中,组合模型的对偶模型为组合模型的对偶实现,对偶模型的端口与组合模型的端口一一对应,除端口类型相反外,其他均一致;当对偶模型只具备属性端口、驱动端口和状态端口时,对偶模型为值对象模型,无需定义该对偶模型的实现,当对偶模型具备消息端口时,由于需要对偶模型对于消息进行逻辑处理,或生成并发布消息,采取编程建模的方式对对偶模型进行实现建模。
[0092] 在一个实施例中,原子交互模型是原子模型实例之间以及与组合模型之间的交互关系,包括五种端口类型之间的交互。
[0093] 本发明提出了一种基于端口反向生成的组合建模方法,采取“由顶向下架构设计,由底至上实现组合”的思路,相比基于端口连接的组合建模方式,不首先声明端口,利用组合实现反向进行端口生成,能够支持多种实现粒度的组合建模,并引入了端口数据的节点和关联,提升了端口匹配的语义描述和可理解性,加快了建模的人性化和建模速度。组合建模成果能够生成对偶模型和原子交互模型,支持组合模型执行测试,形成了模型建立闭环。该建模方法为领域无关建模技术,该技术及系统能够在体系仿真、系统仿真等领域得到广泛应用,发挥社会和经济价值。
[0094] 下面以一个人员登车的具体的场景,展示基于模型端口反向生成进行组合建模的过程。
[0095] 场景和问题描述为:
[0096] 本体:车辆是一种实体;车辆是能够在陆地上行动的移动的载体;运输车是一种车辆;人能够坐在运输车内去想去的地方;运输车空载重量为2000kg;一个人上运输车会消耗10分钟时间;上运输车是逐个衔接的过程。
[0097] 想定:乘坐运输车到达目的地,有一辆车。
[0098] 输入:乘车人数、单人重量。
[0099] 输出:上车时间、运输车总重、承载人数。
[0100] 首先,至顶向下对各模型的名称和组合关系进行明确如图3所示。一共包括四个模型,四个模型的名称分别为上车、上车时间计算、运输车总重计算和承载人数计算,模型间的组合关系为上车包括上车时间计算、运输车总重计算和承载人数计算。
[0101] 其次,进行端口数据黑板建模如图4所示。比如对于运输车模型,其具备的端口数据包括运输车重量、承载人数和运输车全重,运输车重量为属性数据,承载人数和运输车全重为状态数据。上车模型,其具备的端口数据包括乘车人数、单人重量和单人上车时间,乘车人数为属性数据,单人重量和单人上车时间为状态数据。车辆全重计算模型,其具备的端口数据包括人员重量,人员重量为状态数据。
[0102] 再次,针对组合模型,采取由底至上的方式进行组合实现建模,如图5‑8所示。图5中,上车时间计算为组合模型,内部由乘法原子模型组合而成,基于已经声明的上车时间计算端口数据(乘车人数、单人上车时间、上车时间)和乘法原子模型的端口数据(乘数1、乘数2、结果)进行端口数据之间的关联映射,形成组合模型内部的交互关系建模,组合模型框与乘法原子模型有一个单向箭头,为驱动输入,即组合模型运行时触发乘法模型运行。图6‑8的模型同理。
[0103] 进行端口标签与端口类型的匹配检查通过后,可进行组合模型的端口反向生成与匹配。模型生成的端口采取表格的方式进行展示,如下表所示。
[0104] 根据端口名称和端口数据与端口的连接关系,生成的模型端口匹配关系为:
[0105] 上车时间计算模型子模型与组合模型交互关系如下表所示:
[0106]
[0107] 承载人数计算模型子模型与组合模型交互关系如下表所示:
[0108]
[0109] 车辆全重计算模型子模型与组合模型交互关系如下表所示:
[0110]
[0111] 上车模型子模型与组合模型交互关系如下表所示:
[0112]
[0113] 最后,进行组合模型测试,需要生成上车模型的对偶模型和该模型的原子交互模型。
[0114] 上车模型的对偶模型端口与上车模型端口类型相反如下表所示:
[0115]
[0116] 由于对偶模型是一个值对象模型,因此无需模型内部实现。
[0117] 对偶模型与组合模型的连接关系为端口同名连接如下表所示:
[0118]
[0119] 上车组合模型的原子交互模型为如图9所示。
[0120] 以上对本发明所提供的一种基于端口反向生成的组合建模方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。