首页> 中国专利> 一种基于端口封装的仿真对象可视化开发环境实现方法

一种基于端口封装的仿真对象可视化开发环境实现方法

摘要

一种基于端口封装的仿真对象可视化开发环境实现方法,步骤为:(1)配置仿真对象描述文件内容;(2)构建仿真计算模型资源管理模块,自动遍历仿真计算模型资源文件夹,将仿真计算模型导入仿真计算模型管理模块,将仿真计算模型图元加载到仿真计算模型资源管理面板上;(3)构建仿真对象功能组装图元面板,将初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元加载到仿真对象功能组装图元面板上;(4)构建基于端口封装的仿真对象可视化组装模块,依次实现组成该模块的子模块;(5)构建仿真对象描述文件自动生成模块。本发明具有操作简便、支持仿真对象的独立开发、提高仿真对象开发效率、提高仿真对象可重用性等优点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-01

    授权

    授权

  • 2015-02-04

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20140930

    实质审查的生效

  • 2015-01-07

    公开

    公开

说明书

技术领域

本发明主要涉及到建模与仿真技术领域,特指一种基于端口封装的仿真对象可视化开发环境实现方法。

背景技术

自20世纪90年代欧美等发达国家开始对并行离散事件仿真技术进行研究以来,相继推出了多个并行离散事件仿真运行支撑环境,如SPEEDES、Parsec、YH-SUPE等。这些并行离散事件仿真支撑环境广泛应用于大规模生态环境仿真、计算系统生物学仿真、国家与国防战略研究、危机预测预警与处置决策等复杂系统仿真应用中,为复杂系统及复杂性问题的研究提供了重要的科学实验方法和工具。

并行离散事件仿真(PDES,Parallel Discrete Event Simulation)采用事件驱动的建模方式,对组成复杂系统的各仿真对象(Simulation Object)进行建模,仿真对象间通过事件调度实现数据交换和通信,整个仿真系统通过并行事件处理得以推进。基于并行离散事件仿真技术的大规模复杂系统仿真应用的组成结构如图1所示,这类仿真应用往往由大量的仿真对象构成,每一个仿真对象的实现由一个初始化函数(Initial Function)与多个事件处理函数(Event Handling Function)构成。其中,初始化函数用于对仿真对象的进行初始化处理,事件处理函数内部包含多个仿真计算模型(Simulation Computational Model),通过调度这些仿真计算模型的执行实现仿真对象的行为处理逻辑。

随着复杂系统仿真应用的不断深入,仿真对象的规模越来越大,仿真对象包含的仿真计算模型越来越复杂,需要配置的模型信息越来越多,由于缺乏直观、高效的仿真计算模型组装方法,导致仿真对象的开发效率低、难度大。其次,这些仿真对象往往涉及众多不同领域的专业知识,且仿真对象之间存在复杂的交互关系,这就需要不同领域专家共同协商才能实现仿真对象内部功能与外部交互关系,从而难以满足仿真对象分布式独立开发的需求。同时,由于复杂系统仿真分析需求的不断变化,这类仿真应用需要不断的集成仿真对象,在这个过程中仿真开发人员往往希望将开发好的仿真对象重用到这类仿真应用中以缩短应用开发周期,而重用这些仿真对象意味着需要修改其已经实现好的外部交互关系,增大了仿真对象在不同仿真应用间的重用工作量。因此,实现复杂系统仿真应用高效开发的重点和难点在于如何直观、快速、独立地开发仿真对象,并支持其在不同仿真应用间的零修改重用。

传统“堆砌代码”式的开发方法往往需要仿真建模人员深入学习并行离散事件仿真的基础理论知识,熟练掌握并行离散事件仿真相关平台技术,导致仿真对象的开发门槛高、周期长。可视化开发技术具有比代码更高的抽象层次而且更贴近问题域,利用已有的仿真计算模型可视化组装成仿真对象,并屏蔽并行处理、事件调度等并行离散事件仿真技术细节,从而能够有效降低复杂系统仿真应用的开发门槛,提高开发效率。近年来,国内外对并行离散事件仿真可视化开发技术非常重视,取得了多项成果,包括FLAMES、Pave、VisKit等。

FLAMES(Flexible Analysis, Modeling and Exercise System)是美国Ternion公司推出的一款商业化的仿真可视化集成系统。仿真建模人员通过直接继承FLAMES提供的模型基类手动编码实现具体的仿真对象事件处理逻辑。不足之处就在于:无法满足将已有计算模型可视化组装为仿真对象的需求,并且基于FLAMES的仿真对象耦合紧密,难以将已开发好的仿真对象重用到多个不同仿真应用中。

Pave(Parsec Visual Environment)是美国UCLA提出的一种面向Parsec平台的仿真应用可视化开发环境。Pave采用控制流图CFG(Control Flow Graph)作为离散事件仿真系统的可视化描述范式,其采用仿真实体作为基本建模元素。然而其不足之处就在于:CFG不宜于直观描述离散事件系统,且Pave不能满足利用已有计算模型可视化组装为仿真对象的需求;并且基于Pave开发的仿真对象,其交互关系需要预先实现,如果使其在不同仿真应用间重用,则需要修改的工作量较大。

VisKit是美国海军研究生院提出的面向离散事件系统仿真的可视化开发环境。VisKit在事件图建模范式中引入面向对象的建模思想,提出了监听事件图对象(LEGO, Listener Event Graph Objects)。LEGO可以用于描述仿真对象,LEGO之间通过监听机制进行交互。其不足之处就在于:VisKit往往需要手动编程在事件处理逻辑中添加计算模型的调度逻辑,不能满足将计算模型可视化组装为仿真对象的需求。同时,“监听”对象需要与“被监听”对象成对出现,因而限制了仿真对象的独立性与可重用性。

总之,目前支持仿真对象可视化开发的平台环境正处于研究发展之中,已有的仿真对象可视化开发环境主要存在以下三个方面的问题:

(1)不能满足将仿真计算模型可视化组装为仿真对象的需求;

(2)不能满足仿真对象分布式独立开发的需求;

(3)不能满足仿真对象在不同仿真应用中零修改重用的需求。

因此,迫切需要一种新的仿真对象可视化开发环境,以促进复杂系统仿真应用的发展。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、支持仿真对象的独立开发、提高仿真对象开发效率、提高仿真对象可重用性的基于端口封装的仿真对象可视化开发环境实现方法。

为解决上述技术问题,本发明采用以下技术方案:

一种基于端口封装的仿真对象可视化开发环境实现方法,其步骤为:

(1)配置仿真对象描述文件内容;确定在可视化组装仿真对象过程中必须配置的信息,作为仿真对象描述文件的内容,进而构成仿真对象描述文件的元模型; 

(2)构建仿真计算模型资源管理模块,自动遍历仿真计算模型资源文件夹,将仿真计算模型导入仿真计算模型管理模块,并将仿真计算模型图元加载到仿真计算模型资源管理面板上;

(3)构建仿真对象功能组装图元面板,将初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元加载到仿真对象功能组装图元面板上;

(4)构建基于端口封装的仿真对象可视化组装模块,依次实现组成该模块的子模块,包括仿真对象事件流可视化配置面板、仿真对象事件可视化配置面板、仿真计算模型可视化配置面板、初始化函数可视化配置面板、输入/输出端口可视化配置面板、事件调度可视化配置面板、事件取消可视化配置面板;

(5)构建仿真对象描述文件自动生成模块,实现仿真对象描述文件自动生成的算法,将采用端口封装方式构建的可视化仿真对象信息存储到仿真对象描述文件中,然后通过重用该仿真对象描述文件实现仿真对象在不同仿真应用之间的重用。

作为本发明的进一步改进:所述仿真对象描述文件的元模型包括仿真对象基本信息集、仿真对象初始化信息集、仿真对象事件信息集、输入/输出端口信息集;仿真对象基本信息集,用于描述仿真对象的基本信息,包括仿真对象名称、仿真对象功能及仿真对象备注说明;仿真对象初始化信息集,用于描述仿真对象的初始化信息,包括仿真对象属性集、仿真计算模型初始化参数集及仿真对象初始调度的事件集;仿真对象事件信息集,用于描述仿真对象中包含的所有事件的信息,包括事件名称、事件功能、输入参数集、局部变量集、调度仿真计算模型集、调度仿真对象事件集、取消仿真对象事件集;输入/输出端口信息集,用于描述该仿真对象包含的输入输出端口信息,包括端口名称、端口类型(输入端口/输出端口)、与端口关联的事件名称。

作为本发明的进一步改进:所述步骤(2)的具体步骤为:

(2.1)创建仿真计算模型链表,并初始化仿真计算模型链表;

(2.2)判断仿真计算模型资源文件夹是否为空,若为空,则转(2.6),否则转(2.3);

(2.3)依次选取仿真计算模型资源文件夹中的计算模型文件夹;

(2.4)解析仿真计算模型资源文件夹中的仿真计算模型描述文件,将仿真计算模型初始化参数、输入参数、工作参数、输出参数信息存储于仿真计算模型链表中,供仿真计算模型可视化配置时使用;

(2.5)判断所有计算模型文件夹是否遍历完毕?如果遍历完毕,则转(2.6),否则转(2.3);

(2.6)构建仿真计算模型资源面板;

(2.7)判断仿真计算模型数据链表中的仿真计算模型是否为空,若为空则转(2.11),否则转(2.8);

(2.8)依次选取仿真计算模型链表中的仿真计算模型;

(2.9)将该仿真计算模型对应的图元加载到仿真计算模型资源面板上;

(2.10)判断仿真计算模型链表是否遍历完毕,如果遍历完毕,则转(2.11),否则转(2.8);

(2.11)仿真计算模型资源管理模块构建完成,结束退出。

作为本发明的进一步改进:所述步骤(3)中,选择采用不同的图形形状或图片表示初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元,并且自动将初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元加载到仿真对象功能组装面板上,为仿真对象可视化组装提供必要的功能组装图元。

作为本发明的进一步改进:所述步骤(3)的具体步骤为:

(3.1)构建仿真对象功能组装图元面板;

(3.2)在仿真对象功能组装图元面板上加载初始化图元;

(3.3)判断初始化图元是否加载成功,如果加载成功,则转(3.4),否则转(3.12);

(3.4)在仿真对象功能组装图元面板上加载事件图元;

(3.5)判断事件图元是否加载成功,如果加载成功,则转(3.6),否则转(3.12);

(3.6)在仿真对象功能组装图元面板上加载事件调度图元;

(3.7)判断事件调度图元是否加载成功,如果加载成功,则转(3.8),否则转(3.12);

(3.8)在仿真对象功能组装图元面板上加载事件取消图元;

(3.9)判断事件取消图元是否加载成功,如果加载成功,则转(3.10),否则转(3.12);

(3.10)在仿真对象功能组装图元面板上加载输入/输出端口图元;

(3.11)判断输入/输出端口图元是否加载成功,如果加载成功,则转(3.13),否则转(3.12)

(3.12)提示仿真图元加载失败,结束退出;

(3.13)仿真对象功能组装图元面板构建完成,结束退出。

作为本发明的进一步改进:所述步骤(4)的具体步骤为:

(4.1)构建仿真对象事件流可视化设计面板; 

(4.2)构建事件可视化配置面板;

(4.3)构建仿真计算模型可视化配置面板;

(4.4)构建初始化函数可视化配置面板;

(4.5)构建输入/输出端口信息可视化配置面板;

(4.6)构建事件调度可视化配置面板;

(4.7)构建事件取消可视化配置面板。

作为本发明的进一步改进:所述步骤(5)的具体步骤为: 

(5.1)建立存储仿真对象信息的数据结构;

(5.2)在仿真对象可视化组装面板中选择组成仿真对象的可视化图元;

(5.3)判断该图元是否属于初始化图元?如果是初始化图元,则转(5.4),否则转(5.5);

(5.4)将已配置的仿真对象初始化信息存储于仿真对象数据结构;

(5.5)判断该图元是否属于输入/输出端口图元?如果是输入/输出端口图元,则转(5.6),否则转(5.7);

(5.6)将已配置的输入/输出端口信息存储于仿真对象数据结构;

(5.7)判断该图元是否属于事件图元,如果是事件图元,则转(5.8),否则转(5.14);

(5.8)将已配置的事件信息存储于仿真对象数据结构;

(5.9)进入该事件对应的仿真计算模型配置面板

(5.10)选取该仿真计算模型配置面板中的仿真计算模型图元;

(5.11)在仿真对象数据结构中添加该事件包含的仿真计算模型配置信息;

(5.12)判断仿真计算模型配置面板中的仿真计算模型图元是否遍历完毕,如果遍历完毕,则转(5.13),否则转(5.10);

(5.13)退出仿真计算模型配置面板,返回到仿真对象可视化组装面板,转(5.20);

(5.14)判断该图元是否事件调度图元,如果是事件调度图元,则转(5.15),否则转(5.17)

(5.15)搜索与该事件调度图元相连的源事件(事件调度图元的源端);

(5.16)在仿真对象数据结构中添加该源事件包含的事件调度配置信息;

(5.17)判断该图元是否事件取消调度图元,如果是事件取消调度图元,则转(5.18),否则转(5.20);

(5.18)搜索与该事件取消图元相连的源事件(事件取消图元的源端);

(5.19)在仿真对象数据结构中添加该源事件包含的事件取消配置信息;

(5.20)判断仿真对象可视化组装面板中所有图元是否遍历完毕?如果是,则转(5.19),否则转(5.2);

(5.21)将仿真对象数据结构写入仿真对象描述文件,结束退出。

与现有技术相比,本发明的优点在于:

本发明采用端口可视化封装仿真对象,实现一个仿真对象可视化开发环境。在使用所述可视化开发环境构建仿真对象时,能够充分利用所述可视化开发环境中已有的仿真计算模型可视化组装仿真对象,屏蔽并行处理、事件调度等并行离散事件仿真技术细节,降低仿真对象的开发门槛,提高仿真对象的开发效率。本发明采用端口封装的方法能够实现仿真对象之间的分离,满足仿真对象分布式独立开发及在不同仿真应用中的零修改重用。

附图说明

图 1是基于复杂系统仿真应用组成的结构原理示意图。

图 2是本发明方法的流程示意图。

图 3是本发明中仿真计算模型描述文件信息元模型示意图。

图 4是本发明中仿真计算模型资源管理模块构建流程示意图。

图 5是本发明中仿真对象功能组装图元面板的构建流程示意图。

图 6是本发明中仿真对象可视化组装模块的构建流程示意图。

图 7是本发明中仿真对象描述文件自动生成算法的流程示意图。

图 8是采用本发明方法在一个具体应用实例中的基于端口封装的可视化组装示意图。

图 9是采用本发明方法在一个具体应用实例中的仿真计算模型配置示意图。

具体实施方式

以下将结合说明书附图和具体实施例对本发明做进一步详细说明。

如图2所示,本发明的基于端口封装的仿真对象可视化开发环境实现方法,其步骤为:

(1)配置仿真对象描述文件内容;确定在可视化组装仿真对象过程中必须配置的信息,作为仿真对象描述文件的内容,进而构成仿真对象描述文件的元模型;它包括仿真对象基本信息集、仿真对象初始化信息集、仿真对象事件信息集、输入/输出端口信息集。参见图3,其具体组成为:

仿真对象基本信息集,用于描述仿真对象的基本信息,包括仿真对象名称、仿真对象功能及仿真对象备注说明。

仿真对象初始化信息集,用于描述仿真对象的初始化信息,包括仿真对象属性集、仿真计算模型初始化参数集及仿真对象初始调度的事件集。仿真对象属性集,用于描述该仿真对象在初始化函数中需要赋初始值的所有属性信息,包括属性名称、属性类型及属性说明。仿真计算模型初始化参数集,用于描述该仿真对象在初始化函数中需要赋初始值的所有仿真计算模型的初始化参数信息,包括参数名称、参数类型及参数说明。仿真对象初始调度的事件集,用于描述该仿真对象在初始化函数中调度的仿真对象事件,包括被调度事件的名称、事件调度的时间、事件调度的输入参数集。其中,事件调度的输入参数集,用于描述调度事件传递给被调度事件的输入参数集合,每一个参数包括参数名称、参数类型及参数说明。

仿真对象事件信息集,用于描述仿真对象中包含的所有事件的信息,包括事件名称、事件功能、输入参数集、局部变量集、调度仿真计算模型集、调度仿真对象事件集、取消仿真对象事件集。输入参数集,用于描述该事件对应的事件处理函数的输入参数集合,每一个输入参数的描述包括参数名称、参数类型及参数说明。局部变量集,用于描述该事件对应的事件处理函数中包含的局部变量集合,每一个局部变量的描述包括变量名称、变量类型及变量说明。调度仿真计算模型集,用于描述该事件对应的事件处理函数中包含的所有仿真计算模型及仿真计算模型的先后执行关系,包括仿真计算模型的执行序号、仿真计算模型类名称、仿真计算模型实例名称、仿真计算模型输入参数集、仿真计算模型工作参数集、仿真计算模型输出参数集。仿真计算模型输入参数集,用于描述该仿真计算模型执行所需要的输入参数集合,每一个输入参数描述包括参数名称、参数类型及参数说明。仿真计算模型工作参数集,用于描述该仿真计算模型执行所需要的工作参数集合,每一个工作参数描述包括参数名称、参数类型及参数说明。仿真计算模型输出参数集描述该仿真计算模型执行所需要的输出参数集合,每一个输出参数描述包括参数名称、参数类型及参数说明。调度仿真对象事件集,用于描述该仿真对象事件调度的仿真对象内部的其它事件,包括被调度事件的名称、事件调度的仿真时间、事件调度的输入参数集。事件调度的输入参数集,用于描述该仿真对象事件传递给被调度事件的输入参数集合,每一个输入参数描述包括参数名称、参数类型及参数说明。取消仿真对象事件集,用于描述该事件取消执行已经调度的仿真对象内部的其它事件,包括被取消的事件名称、事件取消的仿真时间。

输入/输出端口信息集,用于描述该仿真对象包含的输入/输出端口信息集合,包括端口名称、端口类型(输入端口/输出端口)、与端口关联的事件名称。

(2)构建仿真计算模型资源管理模块,自动遍历仿真计算模型资源文件夹,将仿真计算模型导入仿真计算模型管理模块,并在仿真计算模型资源管理面板上加载仿真计算模型图元;仿真计算模型图元是仿真计算模型的一种图形化表示方式,例如用正方形表示仿真计算模型图元。在具体操作过程中,可以支持使用鼠标对仿真计算模型图元进行选择与拖拽操作,为仿真对象可视化组装提供必要的仿真计算模型资源。如图4所示,在具体应用实例中,详细步骤为:

(2.1)创建仿真计算模型链表,并初始化仿真计算模型链表;

(2.2)判断仿真计算模型资源文件夹是否为空,若为空,则转(2.6),否则转(2.3);

(2.3)依次选取仿真计算模型资源文件夹中的计算模型文件夹;

(2.4)解析仿真计算模型资源文件夹中的仿真计算模型描述文件,将仿真计算模型初始化参数、输入参数、工作参数、输出参数信息存储于仿真计算模型链表中,供仿真计算模型可视化配置时使用;

(2.5)判断所有计算模型文件夹是否遍历完毕?如果遍历完毕,则转(2.6),否则转(2.3);

(2.6)构建仿真计算模型资源面板;

(2.7)判断仿真计算模型数据链表中的仿真计算模型是否为空,若为空则转(2.11),否则转(2.8);

(2.8)依次选取仿真计算模型链表中的仿真计算模型;

(2.9)将该仿真计算模型对应的图元加载到仿真计算模型资源面板上;

(2.10)判断仿真计算模型链表是否遍历完毕,如果遍历完毕,则转(2.11),否则转(2.8);

(2.11)仿真计算模型资源管理模块构建完成,结束退出。

(3)构建仿真对象功能组装图元面板,将初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元加载到仿真对象功能组装图元面板。在具体应用实例中,可以选择采用不同的图形形状或图片表示初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元,并且自动将初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元加载到仿真对象功能组装面板上,为仿真对象可视化组装提供必要的功能组装图元。如图5所示,在具体应用实例中,详细流程为:

(3.1)构建仿真对象功能组装图元面板;

(3.2)在仿真对象功能组装图元面板上加载初始化图元;

(3.3)判断初始化图元是否加载成功,如果加载成功,则转(3.4),否则转(3.12);

(3.4)在仿真对象功能组装图元面板上加载事件图元;

(3.5)判断事件图元是否加载成功,如果加载成功,则转(3.6),否则转(3.12);

(3.6)在仿真对象功能组装图元面板上加载事件调度图元;

(3.7)判断事件调度图元是否加载成功,如果加载成功,则转(3.8),否则转(3.12);

(3.8)在仿真对象功能组装图元面板上加载事件取消图元;

(3.9)判断事件取消图元是否加载成功,如果加载成功,则转(3.10),否则转(3.12);

(3.10)在仿真对象功能组装图元面板上加载输入/输出端口图元;

(3.11)判断输入/输出端口图元是否加载成功,如果加载成功,则转(3.13),否则转(3.12)

(3.12)提示仿真图元加载失败,结束退出;

(3.13)仿真对象功能组装图元面板构建完成,结束退出。

在上述过程中,初始化图元为仿真对象初始化处理逻辑的一种图形化表示方式,例如用椭圆形表示初始化图元;事件图元为仿真对象事件处理逻辑的一种图形化表示方式,例如用圆形表示事件图元;事件调度图元为事件调度逻辑的一种图形化表示方式,例如用带箭头的单向实线表示事件调度图元;事件取消图元为事件取消逻辑的一种图形化表示方式,例如用带箭头的单向虚线表示事件取消图元;输入/输出端口图元为仿真对象之间交互通道的一种图形化表示方式,例如用三角形表示输入/输出端口图元。

(4)构建基于端口封装的仿真对象可视化组装模块,依次实现组成该模块的子模块,包括仿真对象事件流可视化配置面板、仿真对象事件可视化配置面板、仿真计算模型可视化配置面板、初始化函数可视化配置面板、输入/输出端口可视化配置面板、事件调度可视化配置面板、事件取消可视化配置面板。仿真计算模型是指被仿真的系统、过程或功能的计算机程序实现;仿真对象是指用来模拟复杂系统实体行为的计算机程序实现。仿真对象事件(或简称事件)是指由一个仿真对象(源仿真对象)产生,传递给另一个仿真对象(目标仿真对象)的数据;在经过一定的仿真时间延迟后,目标仿真对象将对数据进行相应的处理。如图6所示,在具体应用实例中,详细流程为:

(4.1)构建仿真对象事件流可视化配置面板。该面板支持用户通过鼠标拖拽的方式将初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元加载到仿真对象事件流可视化编辑面板上;支持使用事件调度图元建立初始化图元与事件图元、事件图元与事件图元、事件图元与端口图元之间的关联关系;支持使用事件取消图元建立事件图元与事件图元、事件图元与端口图元之间的关联关系。通过采用可视化图元表示仿真计算模型及仿真对象初始化逻辑、事件处理逻辑、事件调度逻辑、事件取消逻辑及仿真对象交互通道,从而支持仿真对象的可视化组装。通过采用端口可视化表示仿真对象与外部仿真对象之间的交互通道,解耦合仿真对象之间的交互关系,从而可以实现仿真对象的分布式独立开发。

(4.2)构建事件可视化配置面板,该面板支持对事件名称、功能描述及事件输入参数的配置。支持通过双击事件图元进入该仿真事件对应的仿真计算模型可视化配置面板。

(4.3)构建仿真计算模型可视化配置面板,支持通过鼠标拖拽对仿真计算模型图元进行加载;支持通过鼠标连线的方式构建仿真计算模型图元之间的调度关系;支持对仿真计算模型调度信息的可视化配置。该面板通过组装仿真计算模型实现对事件处理逻辑的可视化开发。

(4.4)构建初始化函数可视化配置面板,支持通过双击初始化图元弹出仿真对象初始化函数可视化配置面板,支持对仿真对象初始化信息的可视化配置。该面板实现对仿真对象初始化处理逻辑的可视化开发。

(4.5)构建输入/输出端口可视化配置面板,支持通过双击输入/输出端口图元弹出输入/输出端口可视化配置面板,支持对输入/输出端口信息的可视化配置。该面板实现对仿真对象交互通道的可视化开发。

(4.6)构建事件调度可视化配置面板,支持通过鼠标双击事件调度图元弹出事件调度可视化配置面板,支持对事件调度信息的可视化配置。该面板实现对仿真对象事件调度逻辑的可视化开发。

(4.7)构建事件取消可视化配置面板,支持通过鼠标双击事件取消图元弹出事件取消可视化配置面板,支持对事件取消信息的可视化配置。该面板实现对仿真对象事件取消逻辑的可视化开发。

在上述过程中,事件处理是指事件处理函数的执行,事件的处理会改变仿真对象的状态。(每一个事件一一映射一个事件处理函数);事件调度是将仿真对象(源仿真对象)产生的事件传递给目标仿真对象的活动。事件取消是在事件处理函数执行之前,取消该事件处理函数的执行。

(5)构建仿真对象描述文件自动生成模块,实现仿真对象描述文件自动生成的算法,将采用端口封装方式构建的可视化仿真对象信息存储到仿真对象描述文件中,然后通过重用该仿真对象描述文件实现仿真对象在不同仿真应用之间的重用。本发明的端口封装是指在仿真对象可视化组装过程中采用端口封装的方式建立与其它仿真对象交互的事件调度通道,使得仿真对象成为一个独立开发的实体,从而支持仿真对象的独立开发。同时,仿真对象之间通过端口互连实现信息交互,在不同仿真应用情景中,同一个仿真对象能够与其它不同仿真对象之间通过端口互连构建不同仿真应用系统,从而实现同一个仿真对象在不同仿真应用中的重用。如图7所示,在具体应用实例中,详细流程为:

(5.1)建立存储仿真对象信息的数据结构;

(5.2)在仿真对象可视化组装面板中选择组成仿真对象的可视化图元;

(5.3)判断该图元是否属于初始化图元?如果是初始化图元,则转(5.4),否则转(5.5);

(5.4)将已配置的仿真对象初始化信息存储于仿真对象数据结构;

(5.5)判断该图元是否属于输入/输出端口图元?如果是输入/输出端口图元,则转(5.6),否则转(5.7);

(5.6)将已配置的输入/输出端口信息存储于仿真对象数据结构;

(5.7)判断该图元是否属于事件图元,如果是事件图元,则转(5.8),否则转(5.14);

(5.8)将已配置的事件信息存储于仿真对象数据结构;

(5.9)进入该事件对应的仿真计算模型配置面板

(5.10)选取该仿真计算模型配置面板中的仿真计算模型图元;

(5.11)在仿真对象数据结构中添加该事件包含的仿真计算模型配置信息;

(5.12)判断仿真计算模型配置面板中的仿真计算模型图元是否遍历完毕,如果遍历完毕,则转(5.13),否则转(5.10);

(5.13)退出仿真计算模型配置面板,返回到仿真对象可视化组装面板,转(5.20);

(5.14)判断该图元是否事件调度图元,如果是事件调度图元,则转(5.15),否则转(5.17)

(5.15)搜索与该事件调度图元相连的源事件(事件调度图元的源端);

(5.16)在仿真对象数据结构中添加该源事件包含的事件调度配置信息;

(5.17)判断该图元是否事件取消调度图元,如果是事件取消调度图元,则转(5.18),否则转(5.20);

(5.18)搜索与该事件取消图元相连的源事件(事件取消图元的源端);

(5.19)在仿真对象数据结构中添加该源事件包含的事件取消配置信息;

(5.20)判断仿真对象可视化组装面板中所有图元是否遍历完毕?如果是,则转(5.19),否则转(5.2);

(5.21)将仿真对象数据结构写入仿真对象描述文件,结束退出。

本发明正是通过上述步骤(1)~(5),实现了基于端口封装的仿真对象可视化开发环境。在上述过程中,本发明通过采用可视化图元表示仿真计算模型及仿真对象初始化逻辑、事件处理逻辑、事件调度逻辑、事件取消逻辑及仿真对象交互通道,并进一步实现对相应图元的可视化配置,从而支持仿真对象的可视化组装。本发明通过采用端口可视化表示仿真对象与其它仿真对象之间的交互通道,解耦合仿真对象之间的交互关系,从而可以实现仿真对象的分布式独立开发,同时也为仿真对象在不同仿真应用中的重用作铺垫。

为了进一步阐述本发明的具体应用,下面以一个具体应用实例来对本发明做进一步说明。例如,车载雷达是一种通过测量主车与目标车的相对距离、相对速度及相对方位角的信息,并将这些参数传递给主车的预警设备及制动系统以防止交通事故发生的装置。由于人们对交通安全的重视,车载雷达已成为各国的研制热点。通过构建车载雷达仿真对象并对其进行仿真实验分析是研制车载雷达相关参数的一种重要途径。

下面使用基于本发明实现的仿真对象可视化开发环境构建车载雷达仿真对象。

(1)构建仿真计算模型资源管理模块,导入回波信号滤波模型、模数转换计算模型、回波信号处理模型资源,并在仿真计算模型资源面板上加载回波信号滤波模型图元、模数转换计算模型图元、回波信号处理模型图元,如图8左侧模块所示。

(2)构建仿真对象功能组装图元面板,加载可视化组装仿真对象需要的仿真对象功能组装图元,包括初始化图元、事件图元、事件调度图元、事件取消图元、输入/输出端口图元等,如图8上侧模块所示。

(3)构建仿真对象可视化组装模块,使用初始化图元可视化表示仿真对象的初始化处理逻辑,使用事件图元可视化表示仿真对象事件处理逻辑,使用事件调度图元可视化表示仿真对象内部事件之间的调度关系,使用输入/输出端口图元表示仿真对象与其它仿真对象之间的交互通道。如图8右侧模块所示,车载雷达仿真对象包含脉冲信号发射事件、回波信号计算事件、回波信号处理事件。该仿真对象在初始化函数中调度脉冲信号发射事件,并通过输出端口1与其它仿真对象(目标车)进行交互。输入端口1接收其它仿真对象(目标车)的信息并分别交由回波信号计算事件处理,之后将计算结果送到回波信号处理事件进行处理,然后通过输出端口2与输出端口3与其它仿真对象(如预警设备、制动系统)进行交互。通过鼠标双击回波信号处理事件图元,可以构建如图9所示的仿真计算模型配置界面,通过配置回波信号滤波模型、模数转换计算模型、回波信号处理算法模型来构建回波信号处理事件对应的事件处理逻辑。本发明通过采用可视化图元可视实现仿真对象的可视化组装,从而提高仿真对象的开发效率;同时,采用端口图元对仿真计算模型进行封装,可以实现仿真对象之间的解耦合,从而支持仿真对象的分布式独立开发。

(4)实现仿真对象描述文件自动生成算法,用于将基于端口封装的可视化仿真对象信息自动写入仿真对象描述文件,生成的仿真对象描述文件内容如图3所示。由于采用端口封装的方式实现了仿真对象之间的解耦合,因此,通过重用该仿真对象描述文件实现仿真对象在不同仿真应用之间的重用。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号