一种Simulink图形模型的形式验证方法

文档序号:6552099阅读:458来源:国知局
一种Simulink图形模型的形式验证方法
【专利摘要】一种Simulink图形模型的形式验证方法,如下:对Simulink图进行分析,构建Simulink图在Java中的对应对象;以获得的Java对象为基础,将该Java对象表示的Simulink图划分得到一个子图的集合,使对于子图集合中的每个子图仅包含连续模块或离散模块;对获得的每个子图进行转化,构建每个子图对应的混成通讯顺序进程(HCSP)的语法树;根据获得的语法树输出符合混成霍尔逻辑(HHL)证明器语法的混成通讯顺序进程。最后,这样得到的混成通讯顺序进程作为混成霍尔逻辑证明器的输入,可以直接应用该证明器进行形式化验证,从而实现了原Simulink图形模型的形式验证。本发明确保了Simulink图的安全性。
【专利说明】-种Simu I ink图形模型的形式验证方法

【技术领域】
[0001] 本发明涉及一种Simulink图形模型的形式验证方法,特别涉及大规模Simulink 图形模型的形式验证。

【背景技术】
[0002] Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分 析的集成环境。该工具使用图形化的建模方式对动态系统建模,因而无需大量书写程序,而 只需要通过简单直观的鼠标操作便可构造出复杂的系统。Simulink具有适应面广、结构和 流程清晰及仿真精细、贴近实际、效率高、灵活等优点。基于以上优点,Simulink已被广泛 应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应 用于Simulink。Simulink因其本身强大的表达能力以及良好的仿真效果在工业界已经得 到广泛的使用。然而由于在语义等理论方面不能得到充足的支撑,使得它的使用暂时停步 在仿真阶段,还没有比较好的形式化验证支持。
[0003] 混成系统的设计通常涉及各种复杂的内容,其状态空间通常为不可数无穷。由于 仿真分析具有其天生的不完备性,因而不能确保设计模型的安全性。混成通讯顺序进程 (HCSP)是一种用于描述大型混成系统的可组合的形式化建模语言,已经有成熟的工具对 HCSP进程的形式化验证进行支持。因此将Simulink图形转化为HCSP模型再进行形式化验 证是一个有效的途径。所以开发一个将Simulink图形转化到HCSP进程的工具有非常重要 的实际需要。
[0004] 国际上已经有一些学者对Simulink的形式化进行了研究。部分工作提供 了 Simulink图的形式化语义,以将Simulink图形式化:2012年Bouissou等人提供了 Simulink的操作语义,Hamon等人分别于2004-2007年间提供了 Simulink及其Statef low 插件的操作和指称语义。通过使用Simulink的形式语义,可以很精确的理解Simulink图 的含义,然而我们还不能对其进行形式化验证。另一方面,Tripakis等人于2003-2005年 间将离散的Simulink图转化为Lustre形式化语言进行验证,Cavalcanti等人于2005年 将离散的Simulink图转化成Circus形式化语言进行验证,Meenakshi等人于2006年将部 分离散的Simulink图转化为NuSMV模型检测器进行形式化验证。这些工作都只能应用于 离散的Simulink图而不能应用于连续的Simulink图。Dong等人于2009年将Simulink图 转化为带时间的区间演算(Timed Interval Calculus)进行形式化分析,虽然该工作可以 应用于连续Simulink图,但是该方法只能应用于当连续模型的解可求的情况。因此,对于 Simulink图进行形式化分析的普适方法具有迫切的需求。


【发明内容】

[0005] 本发明技术解决问题:克服现有技术的不足,提供一种Simulink图形模型的形式 验证方法,以确保Simulink图的安全性。
[0006] 本发明技术解决方案:首先提供将Simulink图形转化为HCSP进程,然后应用已有 的混成霍尔逻辑(HHL)证明器对转换后的进程进行形式化验证,从而提供一种Simulink图 模型的形式化验证技术。实现步骤如图1所示,如下:
[0007] (1)对Simulink图进行分析,构建Simulink图在Java中的对应对象;
[0008] (2)以步骤(1)中获得的Java对象为基础,将该Java对象表示的Simulink图划 分得到一个子图的集合,使对于子图集合中的每个子图仅包含连续模块或离散模块,分别 称之为连续子图或离散子图;
[0009] (3)对步骤(2)中获得的每个子图进行转化,构建每个子图对应的HCSP进程。这 里子图的转化分为两类:对连续子图的转化,以及对离散子图的转化;
[0010] (4)将步骤(3)中获得的各个子图转化后的HCSP进程通过并发组合作为整个 Simulink图对应的HCSP进程,然后在给定待验证安全性质时,该进程可以直接应用HHL证 明器进行形式化验证,来验证该进程是否满足这个安全性质,从而实现Simulink图形模型 的形式验证。
[0011] 所述步骤(2)图分划方法步骤如下:
[0012] (2 - 1)将Simulink图中所有连接连续模块与离散模块得到的信号边确定为通讯 信号边,将其它边确定为数据共享信号边;
[0013] (2-2)先将通讯边从Simulink图中删除,然后利用深度优先算法找出Simulink图 中所有的连通分量,由于连续模块和离散模块间的通讯边已经被删除,所以每个联通分量 只会仅包含连续模块或离散模块,确保获得的各联通分量对应的子图仅包含连续模块或仅 包含离散模块,这些子图即作为步骤(2)的输出。
[0014] 所述步骤(3)中对连续子图的转化方法步骤如下:
[0015] (3a_l)首先,考虑一个角标为i的单个连续模块,定义该模块经转化后的对应 HCSP进程,假定该模块拥有pi个输出信号和Qi个功能模式;同时,该模块的通讯中断集合 为Ii,该角标为i的单个连续模块经转化后的HCSP进程PC如下:

【权利要求】
1. 一种Simulink图形模型的形式验证方法,其特征在于实现步骤如下: (1) 对Simulink图进行分析,构建Simulink图在Java中的对应对象; (2) 以步骤⑴中获得的Java对象为基础,将该Java对象表示的Simulink图划分,得 到一个子图的集合,使对于子图集合中的每个子图仅包含连续模块或离散模块,以下分别 称之为连续子图或离散子图; (3) 对步骤(2)中获得的每个子图进行转化,构建每个子图对应的混成通讯顺序进程 (HCSP)的进程;这里子图的转化分为两类:对连续子图的转化以及对离散子图的转化; (4) 将步骤(3)中各个子图转化后获得的HCSP进程通过并发组合作为整个Simulink 图对应的HCSP进程,然后在给定待验证安全性质时,该HCSP进程可以直接应用混成霍 尔逻辑(HHL)证明器进行形式化验证,来验证该进程是否满足这个安全性质,从而实现 Simulink图形模型的形式验证。
2. 根据权利要求1所述的Simulink图形模型的形式验证方法,其特征在于:所述步骤 (2) 实现如下: (2 - 1)将Simulink图中所有连接连续模块与离散模块得到的信号边确定为通讯信号 边,将其它边确定为数据共享信号边; (2-2)先将通讯边从Simulink图中删除,然后利用深度优先算法找出Simulink图中所 有的连通分量,由于连续模块和离散模块间的通讯边已经被删除,所以每个联通分量只会 仅包含连续模块或离散模块;这里确保获得的各联通分量对应的子图仅包含连续模块或仅 包含离散模块,这些子图即作为步骤(2)的输出。
3. 根据权利要求1所述的Simulink图形模型的形式验证方法,其特征在于:所述步骤 (3) 中对连续子图的转化方法实现如下: (3a-l)首先,考虑一个角标为i的单个连续模块,定义该模块经转化后的对应HCSP进 程,假定该模块拥有pi个输出信号和Qi个功能模式;同时,该模块的通讯中断集合为Ii,该 角标为i的单个连续模块经转化后的HCSP进程PC如下:
如上面进程定义中所不,参数丨叫表不输入信号,〇111^表不输出信号,化^^表不输出 信号的初始化值,pSi表示模块的用户配置参数;进程定义首先是一系列对Pi个输出信号 的初始化赋值语句的顺序组合(PinitJ,然后是Qi个功能模块对应的微分方程的顺序组合 (Pi)的重复组合(如*所示),其中对所有的1 < k < Qi,每个微分方程Fik定义第k个功 能模式所对应的连续演化过程,其中Bik表示该连续过程连续变量的定义域;F ik具有来自于 Ii的通讯中断,即当Ii中的某个通讯i〇j发生时,该连续过程被打断,执行进程skip ; (3a-2)假设子图中含有η个连续模块,对于每个模块1 < i < n,按照(3a-l)步骤所 示的转换,得到一个HCSP进程;然后,将子图中所有连续模块1到η进行(3a-l)所示转换 得到的η个HCSP进程按照以下方式组合,获得该子图对应的HCSP进程,其中,SEQ算子将 所有进程顺序组合起来; 如上面进程定义中所不,参数in表不输入信号集合,out表不输出信号集合,init表 示输出信号的初始化值的集合,ps表示模块的用户配置参数集合;对于每个i,in[i]表示 第i个模块的输入信号,out [i]表示第i个模块的输出信号,init[i]表示第i个模块的 输出信号的初始化值,ps[i]表示第i个模块的用户配置参数集合,Qp Pinih和Ffi对应于 (3a - 1)中定义的对应项。
4.根据权利要求1所述的Simulink图形模型的形式验证方法,其特征在于:所述步骤 (3)中对离散子图的转化方法如下: (3b-l)首先,考虑一个角标为i的单个离散模块,定义该模块经转化后的对应HCSP进 程,假定该模块拥有ri个输入信号、Pi个输出信号和Qi个离散模块,该角标为i的单个离 散模块经转化后的HCSP进程ro如下:
参数irii表不输入信号,outi表不输出信号,inih表不输出信号的初始化值,pSi表 不模块的用户配置参数,sh表不模块的样本时间,cirii和couti分别表不对应输入输出 信号的通讯通道;进程定义首先是一系列对pi个输出信号的初始化赋值语句的顺序组合 (Piniti),然后是一个顺序进程Pi的重复组合.该顺序进程Pi的一次执行方式如下:首先 是ri个输入数据采集通讯语句Pirii,然后是Qi个条件语句构成的计算进程PcomPi,pi个 控制输出通讯语句Poutp最后等待样本时间sti ; (3b-2)假设子图中含有η个离散模块,对于每个模块1 < i < n,按照(3b-l)步骤所 示的转换,得到一个HCSP进程;然后,将子图中所有离散模块1到η进行(3b-l)所示转换 得到的η个HCSP进程按照以下方式组合,获得该子图对应的HCSP进程;其中,0SEQ算子将 所有依据离散模块间的依赖关系将对应的Pcomp进程顺序组合起来,由于Simulink图不容 许离散模块产生循环依赖,所以该顺序总能找到;
如上面进程定义中所示,参数in表示输入信号集合,out表示输出信号集合,init表示 输出信号的初始化值的集合,ps表示模块的用户配置参数集合,st表示模块的样本时间集 合。对于每个i,in[i]表不第i个模块的输入信号,out[i]表不第i个模块的输出信号, init [i]表示第i个模块的输出信号的初始化值,ps[i]表示第i个模块的用户配置参数集 合,st[i]表示第i个模块的样本时间,PinitpPirii和Pouti对应于(3b -1)中定义的对应 项,t表示该子图的局部时钟,temp记录上一次计算过程的执行时间。
【文档编号】G06F17/50GK104091013SQ201410313539
【公开日】2014年10月8日 申请日期:2014年7月2日 优先权日:2014年7月2日
【发明者】邹亮, 詹乃军, 王淑灵 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1