[发明专利]一种Simulink图形模型的形式验证方法在审
申请号: | 201410313539.2 | 申请日: | 2014-07-02 |
公开(公告)号: | CN104091013A | 公开(公告)日: | 2014-10-08 |
发明(设计)人: | 邹亮;詹乃军;王淑灵 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;孟卜娟 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 simulink 图形 模型 形式 验证 方法 | ||
1.一种Simulink图形模型的形式验证方法,其特征在于实现步骤如下:
(1)对Simulink图进行分析,构建Simulink图在Java中的对应对象;
(2)以步骤(1)中获得的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-1)首先,考虑一个角标为i的单个连续模块,定义该模块经转化后的对应HCSP进程,假定该模块拥有pi个输出信号和Qi个功能模式;同时,该模块的通讯中断集合为Ii,该角标为i的单个连续模块经转化后的HCSP进程PC如下:
如上面进程定义中所示,参数ini表示输入信号,outi表示输出信号,initi表示输出信号的初始化值,psi表示模块的用户配置参数;进程定义首先是一系列对pi个输出信号的初始化赋值语句的顺序组合(Piniti),然后是Qi个功能模块对应的微分方程的顺序组合(Pi)的重复组合(如*所示),其中对所有的1≤k≤Qi,每个微分方程Fik定义第k个功能模式所对应的连续演化过程,其中Bik表示该连续过程连续变量的定义域;Fik具有来自于Ii的通讯中断,即当Ii中的某个通讯ioj发生时,该连续过程被打断,执行进程skip;
(3a-2)假设子图中含有n个连续模块,对于每个模块1≤i≤n,按照(3a-1)步骤所示的转换,得到一个HCSP进程;然后,将子图中所有连续模块1到n进行(3a-1)所示转换得到的n个HCSP进程按照以下方式组合,获得该子图对应的HCSP进程,其中,SEQ算子将所有进程顺序组合起来;
如上面进程定义中所示,参数in表示输入信号集合,out表示输出信号集合,init表示输出信号的初始化值的集合,ps表示模块的用户配置参数集合;对于每个i,in[i]表示第i个模块的输入信号,out[i]表示第i个模块的输出信号,init[i]表示第i个模块的输出信号的初始化值,ps[i]表示第i个模块的用户配置参数集合,Qi、Piniti和Ffi对应于(3a‐1)中定义的对应项。
4.根据权利要求1所述的Simulink图形模型的形式验证方法,其特征在于:所述步骤(3)中对离散子图的转化方法如下:
(3b-1)首先,考虑一个角标为i的单个离散模块,定义该模块经转化后的对应HCSP进程,假定该模块拥有ri个输入信号、pi个输出信号和Qi个离散模块,该角标为i的单个离散模块经转化后的HCSP进程PD如下:
参数ini表示输入信号,outi表示输出信号,initi表示输出信号的初始化值,psi表示模块的用户配置参数,sti表示模块的样本时间,cini和couti分别表示对应输入输出信号的通讯通道;进程定义首先是一系列对pi个输出信号的初始化赋值语句的顺序组合(Piniti),然后是一个顺序进程Pi的重复组合.该顺序进程Pi的一次执行方式如下:首先是ri个输入数据采集通讯语句Pini,然后是Qi个条件语句构成的计算进程Pcompi,pi个控制输出通讯语句Pouti,最后等待样本时间sti;
(3b-2)假设子图中含有n个离散模块,对于每个模块1≤i≤n,按照(3b-1)步骤所示的转换,得到一个HCSP进程;然后,将子图中所有离散模块1到n进行(3b-1)所示转换得到的n个HCSP进程按照以下方式组合,获得该子图对应的HCSP进程;其中,OSEQ算子将所有依据离散模块间的依赖关系将对应的Pcomp进程顺序组合起来,由于Simulink图不容许离散模块产生循环依赖,所以该顺序总能找到;
如上面进程定义中所示,参数in表示输入信号集合,out表示输出信号集合,init表示输出信号的初始化值的集合,ps表示模块的用户配置参数集合,st表示模块的样本时间集合。对于每个i,in[i]表示第i个模块的输入信号,out[i]表示第i个模块的输出信号,init[i]表示第i个模块的输出信号的初始化值,ps[i]表示第i个模块的用户配置参数集合,st[i]表示第i个模块的样本时间,Piniti、Pini和Pouti对应于(3b‐1)中定义的对应项,t表示该子图的局部时钟,temp记录上一次计算过程的执行时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410313539.2/1.html,转载请声明来源钻瓜专利网。