基于可执行领域特定建模语言xSHS的CPS动态行为建模与仿真方法与流程

文档序号:16898469发布日期:2019-02-19 17:42阅读:358来源:国知局
基于可执行领域特定建模语言xSHS的CPS动态行为建模与仿真方法与流程

本发明涉及一种建模与仿真方法,尤其涉及一种基于可执行领域特定建模语言xshs的cps动态行为建模与仿真方法。



背景技术:

信息物理融合系统(cyberphysicalsystem,cps)是在传统的嵌入式系统上发展起来的一种复杂系统,是计算过程和物理过程的整合。cps建模需要刻画计算进程与物理环境进行之间如何交互以及它们融合时所表现出的行为。cps涉及连续的物理环境和离散的计算系统,两者实时交互,相互作用,故混成性是cps系统行为的一个重要性质。随机性是cps系统行为的另一重要性质,物理环境和用户行为的不确定性都会造成cps系统的动态行为具有随机性。信息物理融合系统普遍应用于国防、交通、航空航天、医疗卫生等安全攸关的领域,对我国的信息化建设和工业发展起了巨大的推动作用。

模型驱动是对象管理组织omg在2002年提出的,以建模和模型转换为主要途径,目标是将开发者的注意力从代码转移到模型上来,与传统的软件开发方法相比,模型驱动开发更加关注为不同的领域知识构造其抽象描述,即领域模型(domainmodel),并基于这些代表领域概念的模型刻画软件系统,然后通过自动或半自动的相关技术完成转换,实现从设计到实现的过渡,最终完成整个系统的开发。模型驱动的优势在于,它使用便于人们理解的模型,尤其是可视化模型,将设计人员的注意力集中到业务逻辑上,而不用过早地考虑平台相关的细节。模型驱动强调使用领域特定建模语言(domain-specificmodelinglanguage,dsml)构造领域模型,实现领域专家、设计人员等组织成员的有效沟通。模型的可执行性(modelexecutability)是mde中的另一热点,它希望为新构建的领域特定建模语言提供完整的执行环境,旨在为系统早期的确认和验证(validationandverification)提供支持。具体表现为,领域专家不仅能构建新的领域特定建模语言,而且能够仿真相应的实例模型。

gemoc是eclipse的孵化产品,旨在开发各种技术、框架和环境,以促进构建可执行领域特定建模语言。它提供了一个通用框架,用于设计和集成基于eclipse建模框架(eclipsemodelingframework,emf)的建模语言,同时该通用框架提供了一个通用的接口,用于插入与特定建模语言相关的执行引擎。gemoc主要分为两个平台:语言平台,语言设计人员可以构建或合成新的可执行领域特定建模语言;建模平台,领域设计人员可以创建、执行和协同符合可执行领域特定建模语言的实例模型。目前,gemoc仅支持离散语义的执行,所以当它仿真具有混成性质的cps动态行为模型时,gemoc不能为连续部分的仿真提供支持。为了解决这个问题,scilab相关jar包被集成到gemoc中以支持cps动态模型中连续部分的仿真。

scilab是由法国国家信息、自动化研究院(inria)的科学家们开发的开源软件,用户不仅可以在scilab的许可条件下自由使用该软件,还可以根据自身需求修改源代码。与matlab相似,scliab是一种科学工程计算软件,主要有两个功能:数值计算以及计算结果图形化显示。



技术实现要素:

本发明的目的是对cps系统的随机和混成行为进行建模与仿真。

本发明提出一种基于可执行领域特定建模语言xshs的cps动态行为建模与仿真方法,该方法通过实现一种可执行领域特定建模语言xshs,支持用户在gemoc建模平台上创建cps动态行为模型,并对模型进行仿真,具体步骤如下:

s1:分析并抽象出建模cps动态行为模型所需的建模元素及关系,并使用ecore元语言以xshs元模型的形式定义建模元素及关系,用于表示可执行领域特定建模语言xshs的抽象语法;

s2:使用sirius给出xshs元模型中各个建模元素及关系的图形化表示,用于表示可执行领域特定建模语言xshs的具体语法;

s3:分析cps动态行为模型的领域特定动作,并使用kermeta3和xtend编程语言实现具体的执行变量和执行函数,用于表示可执行领域特定建模语言xshs的操作语义;

s4:使用melange组合语法及语义,实现完整的可执行领域特定建模语言xshs;

s5:使用可执行领域特定建模语言xshs创建cps动态行为实例模型;

s6:基于gemocdsa执行器和scilabode求解器对cps动态行为实例模型进行仿真。

所述步骤s1,具体包括:

s11:分析cps动态行为模型的随机行为及混成行为,混成行为包括离散行为及连续行为;抽象出能建模离散行为和随机行为的状态图,以及能建模连续行为的常微分方程;

s12:基于gemoc的语言平台,创建元模型项目,使用ecore元语言以xshs的元模型的形式定义抽象出的相关建模元素及关系,用于表示xshs的抽象语法。

所述步骤s2,具体包括:

s21:分析建模元素及关系的通用图形表示,包括形状、大小,并设计可读性高的图形;

s22:基于gemoc的语言平台,创建sirius项目,实现xshs元模型中各元素及关系的图形化表示,用于表示xshs的具体语法。

所述步骤s3,具体包括:

s31:分析cps动态行为模型的领域特定动作,包括模型的初始化、模型调用ode、模型状态跳转,这些特定动作由执行变量和执行函数来表示;

s32:基于gemoc的语言平台,创建语义项目,使用kermeta3和xtend编程语言实现具体的执行变量和执行函数,用于表示xshs的操作语义。

所述步骤s4,具体包括:

s41:基于gemoc的语言平台,创建melange项目,导入s12的xshs元模型实现语法引入;

s42:基于gemoc的语言平台,创建melange项目,导入s32的xshs操作语义实现语义引入,以组合的方式实现完整的可执行领域特定建模语言xshs。

所述步骤s5,具体包括:

s51:分析具体的cps中包含的随机行为和混成行为;

s52:基于gemoc的建模平台,创建建模项目,使用可执行领域特定建模语言xshs来建模cps动态行为实例模型。

所述步骤s6,具体包括:

s61:scilabjar包在使用eclipse转化成标准插件后被集成到gemoc,以支持对cps动态行为模型中连续部分ode的仿真,旨在弥补gemoc只能支持离散语义执行的不足;具体的scilab插件包括:org.scilab.modules.javasci.jar、org.scilab.modules.types.jar、org.scilab.modules.jvm.jar;

s62:基于gemocdsa执行器和scilabode求解器对创建的cps动态行为实例模型进行仿真,更好地认识系统行为。

本发明公开的一种基于可执行领域特定建模语言xshs的cps动态行为建模与仿真方法,一方面,能有效地建模cps的动态行为,包括混成行为和随机行为,且支持用户基于gemoc工具对cps动态行为模型进行仿真,scilab插件被集成到gemoc中以弥补gemoc只能执行离散语义的不足,另一方面,本发明为建模与仿真领域特定问题提供了一种有效的方法。

附图说明

图1为本发明框架图;

图2为本发明使用ecore元语言实现的xshs元模型图;

图3为本发明使用sirius实现的xshs图形化表示示意图;

图4为本发明提出的xshs的操作语义的执行流程图;

图5为本发明基于melange实现的xshs语法引入示意图;

图6为本发明基于melange实现的xshs语义引入示意图;

图7为本发明实施的使用xshs建模的温度控制系统动态行为模型图;

图8为本发明实施的gemoc成功集成scilab插件后的插件示意图;

图9为本发明实施例的仿真平台示意图;

图10为本发明实施例的仿真结果1示意图;

图11为本发明实施例的仿真结果2示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。

实施例

温度控制系统是典型的cps应用系统,其动态行为具有随机和混成性质。下面结合具体实施例和附图,对本发明提出的一种基于可执行领域特定建模语言xshs的cps动态行为建模与仿真方法,作进一步说明。

本发明的框架图如图1所示,主要分为三个部分:xshs语言设计、xshs模型创建及xshs模型仿真。首先,基于gemoc的语言平台实现xshs的各个组成部分,包括:抽象语法、具体语法及操作语义。如图1,其中,xshs的具体语法和操作语义的实现需要依赖于xshs的抽象语法(黑色带箭头虚线表示依赖关系)。然后,基于gemoc的建模平台使用xshs创建温度控制系统的动态行为模型(黑色带箭头实线表示创建的实例模型需与xshs的抽象语法、具体语法及操作语义一致)。最后,使用xshs模型仿真器对输入的实例模型进行仿真,xshs模型仿真器的执行依赖于gemocdsa执行器和scilabode求解器。

1、为建模带有随机和混成性质的cps动态行为模型,需要分析并抽象出模型所需的各种建模元素以及关系。cps的离散行为和随机行为通常可由状态图(statechart)进行建模,主要包括状态、变量、概率值及迁移;cps的连续行为来源于物理环境变量的连续变化,通常可由常微分方程(ordinarydifferentialequation,ode)刻画。

在gemoc语言平台上,以xshs元模型(xshsmetamodel)的形式定义xshs的抽象语法。基于emf,创建元模型项目并使用ecore元语言来实现xshs的元模型。

图2为使用ecore元语言实现的可执行领域特定建模语言xshs的元模型示意图,必要的建模元素和关系包括:状态(state)、迁移(transition)、变量(variable)和常微分方程(ode)。一个系统(system)有若干状态、迁移、变量和ode,并且系统会指明初始状态(initialstate)和相关的全局变量(relatedvariable)。状态用于记录某个时刻系统的相关信息;迁移用于连接一个源状态和一个目标状态;变量表示系统的物理环境变量(例如,温度控制系统中的温度);常微分方程用于刻画cps系统中物理环境变量的连续变化。一个源状态可包含多条出边,一个目标状态可包含多条入边。一个state可以关联一个常微分方程ode(由关联关系slaveode指明),关联的ode则刻画了在该状态下某个物理连续变量的动态变化。迁移有四个属性:名称(name),事件(event),约束(guard)和动作(action)。迁移是抽象类,能泛化出两类更具体的迁移类型:普通迁移(comtransition)和概率迁移(probtransition),普通迁移用于表示在触发事件发生时,某个状态只有一条出边满足约束,而概率迁移表示当触发事件发生时,某个状态有多条出边能满足约束,这时,该状态会不确定地选择其中一条迁移边进行状态的跳转。因此,概率迁移有一个额外的属性——概率值(probability),概率值是0至1之间的一个浮点数,用于表示该迁移能被触发的可能性的大小。ode由function类、condition类和interval类组成:function表示常微分方程的函数,具体包括自变量(indevariable)、因变量(devariable)和函数右式(fright);condition表示求解常微分方程的约束条件;interval表示常微分方程的求解区间,它的属性包括左区间值(left)、右区间值(right)和步长(subinterval)。同时,考虑到建模具有一定规模的系统时,没有分层会使得系统模型变得庞大且难以理解,因此,xshs允许模型分两层,即父层和子层。如图2所示,一个state可以由若干子状态(substates),子迁移(subtransitons),子变量(subvariables)和子ode(subodes)组成,通常将具有子系统的状态被称作精化状态。

有了上述的抽象语法,在gemoc的建模平台上,用户才能在建模项目中刻画温度控制系统的状态、状态上的常微分方程、状态间的迁移等建模元素及关系。

2、为建模带有随机和混成性质的cps动态行为模型,需要给出xshs元模型中各建模元素及关系的图形化表示(xshsrepresentation)。

xshs的具体语法使用sirius实现,各元素及各元素之间关系的图形化表达如图3所示,例如,状态的形状是圆角矩形;状态间的普通迁移用黑色带箭头实线表示;状态间的概率迁移用黑色带箭头虚线表示;ode的背景是自定义的折角矩形,折角矩形中可显示由关键字提示的具体内容,具体内容包括函数、自变量、因变量、函数右式、约束条件和求解区间。

有了上述的具体语法,在gemoc的建模平台上,用户才能图形化地建模温度控制系统的动态行为模型。

3、为了使带有随机和混成性质的cps动态行为模型能够仿真,需要在gemoc的语言平台实现可执行领域特定建模语言xshs的操作语义,具体的操作语义由kermeta3和xtend编程语言来实现。这里给出操作语义的执行流程,参见图4,主要包括模型初始化的语义,处理ode的语义以及状态迁移的语义。

4.为了实现完整的可执行领域特定建模语言xshs,需要在gemoc的语言平台上创建melange项目,通过导入xshs的元模型来引入语法,如图5所示。

5.为了实现完整的可执行领域特定建模语言xshs,需要在gemoc的语言平台上创建melange项目,通过导入xshs的操作语义来引入语义,以组合的方式实现完整的xshs,如图6所示。

6、为了建模温度控制系统的动态行为模型,需要打开gemoc的建模平台(即创建一个eclipseapplication),然后在建模项目中创建符合可执行领域特定建模语言xshs的cps动态行为模型。

使用xshs建模的温度控制系统动态行为模型如图7所示。

假设场景是在炎热的夏季,房间温度在自然状态下会受外界高温影响逐渐变高,在房间内有一个智能管家可以控制空调和电扇的开关。通常,让人体感到舒适的温度在21℃至32℃之间,故而当房间温度大于32℃时,智能管家会打开制冷家电(空调或者电扇)进行降温,当温度下降至21℃以下时,制冷家电会被关闭。此外,空调有两个档位:强档(strong)和弱档(weak),房间的初始温度为21℃。整个温度控制系统动态行为模型分两层:父层和子层。在父层中,off:warming状态表示智能管家没有打开任何制冷家电,房间温度受室外高温的影响持续变高,温度的连续变化由关联的ode刻画。当房间温度超过32℃时,智能管家会打开一种制冷家电,空调被选择的概率为0.6,电扇被选择的概率为0.4,且不同的状态关联了不同的ode,以刻画不同的降温过程。当房间温度被降至低于21℃时,智能管家则会关闭制冷家电,这时,状态又重新变为off:warming,房间温度又会持续变高。

7、为了实现在eclipseapplication中仿真带有随机和混成性质的cps动态行为模型,scilabjar包在创建的eclipse插件项目中转换成标准插件后被集成到gemoc以支持cps动态行为模型中连续部分的仿真,具体的scilab插件包括:org.scilab.modules.javasci.jar、org.scilab.modules.types.jar、org.scilab.modules.jvm.jar。gemoc安装scilab插件成功后,将如图8所示。在仿真时,scilab会被调用,scilab输出框能显示物理环境变量的连续变化过程,仿真平台示意图如图9所示。

8、温度控制系统动态行为模型的一次仿真结果如图10所示。房间初始温度为21℃,自然状态下房间温度值持续变高(如黑色实线所示),当时间t为32.2时,温度值为32.01706℃,已超过32℃,空调被智能管家打开,房间温度在空调强档下持续降低(如黑色疏点虚线所示)。当t为36.4时,温度值为23.84920℃,空调切换到弱档,温度仍然持续降低(如灰色实线所示),但相比强档,弱档下温度降低的速率会变慢一些。当t为39.3时,温度值降为20.96336℃,智能管家关闭空调,房间温度又会重新变高。在前两次的温度循环中,智能管家随机选择了空调,在第三次循环中,智能管家随机选择了电扇,温度下降过程如黑色密点虚线所示。

9、为了更好地反映温度控制系统动态行为模型中的智能管家选择的随机性,这里给出了有10次温度循环的仿真结果示意图,如图11所示,可以发现,空调被随机选择了6次,电扇被随机选择了4次,这与实例模型中概率迁移上设置的概率值是一致的。

以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1