Simulink模型转换为DIVINE模型(2012)

在CoCoSim中,提到将Simulink模型转换为Lustre模型。除了这种方式外,Simulink模型还能转换为其他模型检测工具的输入模型,比如DIVINE。下面将介绍2012年的一份相关工作。

在面对复杂的系统行为和时序属性验证时,单纯依靠Simulink自身的功能难以实现全面深入的验证。DIVINE是一款用于离散分布式系统的显式状态LTL线性时序逻辑模型检查和可达性分析工具。相较于符号模型检查工具,显式状态模型检查在分布式内存环境中具有更好的可扩展性。

参考

详细内容,可参考Barnat, Jiri & Beran, Jan & Brim, Luboš & Kratochvíla, Tomas & Ročkai, Petr. (2012). Tool Chain to Support Automated Formal Verification of Avionics Simulink Designs. 10.1007/978-3-642-32469-7_6.

将Simulink模型转换为DIVINE模型主要包括中间语言转换、生成符合CESMI接口的代码以及与DIVINE工具集成等步骤:

中间语言转换

为了实现Simulink模型到DIVINE模型的转换,首先需要将Simulink模型转换为一种特定的中间语言。这种中间语言是一种适用于描述同步数据电路的EDS嵌入式领域特定编程语言,基于C++实现。

在转换过程中,会由专门的编译器处理Simulink设计,生成中间语言的代码。该中间语言支持创建块和块之间的连接,其中块分为原子块和复合块。原子块的实现需要用C++代码编写基本操作。

复合块则对应实际的数据流程序或子程序,并且复合块可以作为构建更复杂复合块的基础,从而轻松实现模块化设计。在Simulink模型转换中,复合块自然对应 Simulink中的子系统以及整个系统设计,很好地保留了Simulink模型的层级结构和功能模块划分。

生成符合CESMI接口的代码

生成中间语言代码后,下一步是将其编译为符合 CESMI(Common Explicit-State Model Interface,通用显式状态模型接口)规范的共享对象。这一步骤通过标准的C++编译器完成。CESMI接口对于DIVINE工具来说,它定义了模型检查工具与待验证模型之间的交互方式。​

CESMI接口要求在二进制文件中定义一系列必要的函数,以支持DIVINE对模型的解读和验证。这些函数包括:​

  • 初始状态函数:一个无参函数,用于提供模型的初始状态,是DIVINE进行状态搜索的起点。
  • 后继状态函数:一个从状态到状态集合的函数,能够根据当前状态计算出所有可能的后续状态,为DIVINE遍历系统状态空间提供支持。
  • 接受状态和目标状态判断函数:两个一元布尔函数,分别用于判断一个状态是否为接受状态和目标状态,这服务于LTL模型检查中确定系统是否满足特定属性。

此外,如果要在LTL验证中让DIVINE内部计算属性自动机,还需要扩展基本的 CESMI接口,增加用于评估LTL公式中使用的原子命题在各个系统状态下有效性的函数。通过生成符合CESMI接口的代码,确保了转换后的模型能够被DIVINE工具正确识别和处理,为后续的验证工作提供基础。

与DIVINE工具集成

在获得符合CESMI接口的共享对象后,就可以将其与DIVINE工具进行集成,开展模型验证工作。

相关推荐
可编程芯片开发8 天前
基于GA遗传优化PI控制器的无刷直流电机最优控制系统simulink建模与仿真
simulink·最优控制·ga遗传优化·pi控制器·无刷直流电机·ga-pi
维度攻城狮15 天前
Python控制系统仿真案例-串联PID控制
python·simulink·pid·串级pid
可编程芯片开发22 天前
基于PSO粒子群优化PI控制器的无刷直流电机最优控制系统simulink建模与仿真
人工智能·算法·simulink·pso·pi控制器·pso-pi
原野风霜32423 天前
如何从Simulink模型导出ARXML文件
simulink·swc·arxml
天涯铭1 个月前
线控与斩控MATLAB分析
matlab·simulink·线控·斩控·fft分析
bu_shuo1 个月前
MATLAB中的两种自动保存文件格式
matlab·simulink·自动保存
TTGGGFF1 个月前
控制系统建模仿真(九):PID 控制器的底层实现以及调优
matlab·simulink·pid
TTGGGFF1 个月前
控制系统建模仿真(八):PID 控制器的参数整定
matlab·simulink·pid
TTGGGFF1 个月前
控制系统建模仿真(六):非线性控制系统的建模与仿真
matlab·simulink
TTGGGFF1 个月前
控制系统建模仿真(七):控制系统的经典设计方法
matlab·simulink