[发明专利]一种将SysML模型进行仿真验证的方法有效
申请号: | 201810367004.1 | 申请日: | 2018-04-23 |
公开(公告)号: | CN108664241B | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 钟雯;陈小红 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F8/34 | 分类号: | G06F8/34 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200241 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sysml 模型 进行 仿真 验证 方法 | ||
1.一种将SysML模型进行仿真验证的方法,其特征在于,该方法包括以下具体步骤:
步骤1:定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则;
步骤2:以模块定义图的XMI文档为输入进行解析,获取模块定义图中基本元素即模块以及模块的值属性信息;
步骤3:以活动图的XMI文档为输入进行解析,获取活动图基本元素即活动分区、活动参数、节点以及边的信息;
步骤4:根据转换规则将获取的SysML活动图和模块定义图的基本元素转换成Modelica模型中的元素;
步骤5:将转换后的Modelica模型导入仿真工具,根据活动图中决定节点上的条件表达式和所覆盖分支上的监值确定仿真参数,之后进行仿真验证;其中:
步骤1中,SysML模块定义图以及活动图元素到Modelica模型元素的转换规则为:
()模块定义图的中的每一个模块对应一个Modelica模型,模块拥有的值属性对应Modelica模型声明区的变量、参数;
() 活动图中每一个活动分区对应一个Modelica模型;基本动作以及发送信号动作转换为方程;等待时间动作节点根据不同类型的时间事件分别进行转换,绝对时间事件的等待时间动作转换为 when语句,相对时间事件的等待时间动作需要在声明区先声明一个Timer 类型实例,之后转换为 if 语句;接受事件动作转换为 Modelica模型中的 if 语句;决定节点与其分支转换为if 语句;合并节点与决定节点组合形成的循环结构转换为while 语句;
步骤2中,模块定义图XMI文档所需要解析的为:packagedElement标签,ownedAttribute标签,defaultValue标签,type标签;
步骤3中,活动图XMI文档所需要解析的为:group标签,node标签,ownedParameter标签,edge标签,guard标签;
步骤4具体包括:
先通过解析活动图XMI文档获取所有活动分区集合、节点集合以及边集合;为每一个活动分区创建一个Modelica模型,并通过解析模块定义图XMI文档获取对应模块的变量集合以及参数集合,依次在模型声明区对这些变量和参数进行声明;若活动图中包含相对时间事件的等待时间动作,则在模型声明区声明一个Timer实例;然后,从活动分区的开始节点出发向下遍历,并根据不同的节点类型在模型algorithm区域输出不同的内容,包括选择、循环以及并发结构;并发结构的处理方法是每个并发分支单独进行转换,选择结构和循环结构则分别通过选择结构处理方法和循环结构处理方法;
在步骤5中,所述根据活动图中决定节点上的条件表达式和所覆盖分支上的监值确定仿真参数,具体包括:
条件表达式的形式为
()op,所覆盖分支上的监值为false时,E1的取值为大于E2;所覆盖分支上的监值为true时,E1的取值为小于E2;
()op ,所覆盖分支上的监值为false时,E1的取值为小于E2;所覆盖分支上的监值为true时,E1的取值为大于E2;
()op为==,E2为数值,所覆盖分支上的监值为false时,E1取值为不等于E2;所覆盖分支上的监值为true时,E1取值为等于E2;
()op为==,E2为布尔值,所覆盖分支上的监值为false时,E1取值为false;所覆盖分支上的监值为true时,E1取值true。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810367004.1/1.html,转载请声明来源钻瓜专利网。