Simulink模型转换为UPPAAL模型(2016)

在CoCoSim中,提到支持将Simulink模型转换为Lustre模型。Simulink模型,还能转换为为其他模型检测工具的模型,比如下面提到的UPPAAL模型。

MATLAB/Simulink 作为汽车系统建模的主流工具,虽能通过仿真助力开发,但在复杂系统的形式化验证上仍有局限。而 UPPAAL 统计模型检查器在随机混合系统分析上的优势,为解决这一难题提供了新路径。下面将介绍2016年一项Simulink模型转换为UPPAAL模型的工作。

参考

详细内容,可参考Filipovikj, Predrag & Marinescu, Raluca & Seceleanu, Cristina & Ljungkrantz, Oscar & Lönn, Henrik. (2016). Simulink to UPPAAL Statistical Model Checker: Analyzing Automotive Industrial Systems. 9995. 748-756. 10.1007/978-3-319-48989-6_46.

Simulink本身已具备验证能力(如 Simulink Design Verifier,SDV)。但SDV在可扩展性和需求覆盖方面存在不足。相比之下,UPPAAL SMC的优势能弥补这些不足:

  • 支持随机混合自动机网络建模,能同时刻画连续时间行为、离散逻辑和随机特性。​

  • 基于统计模型检查,可高效分析大型模型。​

  • 支持概率化查询。

Simulink转换为UPPAAL

工作提出了模式化转换与执行顺序保障"方案,换过程中保留Simulink的执行语义,如块的执行顺序、输入输出逻辑,同时适配 UPPAAL的stochastic timed/hybrid automata模型。

从块到自动机的语义映射

Simulink模型的组成是Block,每个块可视为一个原子动态系统;而UPPAAL的组成是自动机网络,每个自动机通过状态、迁移、变量刻画行为。转换是将Simulink块的语义映射到UPPAAL自动机的数学定义上。

分类型设计自动机模式

Simulink块主要分为离散时间块和连续时间块,两者的行为特性差异较大,因此工作设计了两种不同的自动机模式。​

(1)离散时间块的自动机模式

离散块的作用是按固定采样时间执行计算,其自动机包含3个状态:​

  • Start(初始状态):块初始化,加载参数。
  • Offset(延迟状态):通过局部时钟t模拟采样间隔,当t达到ts时,触发迁移到 Operate 状态;
  • Operate(运行状态):执行块的核心计算逻辑,输出结果后,重置局部时钟t,回到Offset状态,进入下一个采样周期。

此外,模式中引入全局时钟记录仿真时间,通过执行顺序编号与块间到达时间计算自动机的启动时间,确保与Simulink的执行节奏一致。

(2)连续时间块的自动机模式

连续块的作用是实时无间断执行,其模式与离散块的关键区别在Operate状态。不依赖固定采样时间,而是通过指数速率刻画连续行为。

连续变量的演化通过UPPAAL的延迟函数F定义,如模拟微分方程,而非离散块的周期性更新。​

两种模式的统一设计,确保了无论Simulink块是离散还是连续类型,都能被UPPAAL自动机刻画。

Simulink的执行顺序不变

Simulink在仿真时,会通过slist函数生成块的执行顺序,编号越小,优先级越高,这直接影响系统的行为正确性。如果转换后UPPAAL自动机的执行顺序错乱,整个模型的语义会完全失真。​

论文通过两个手段解决这一问题:​

(1)自动展平子系统,生成原子块的全局执行顺序​

Simulink模型常包含嵌套的子系统,论文设计了展平算法,递归解析slist输出,将嵌套子系统中的原子块提取出来,并赋予全局唯一的执行顺序编号。​确保无论块嵌套多少层,都能明确其在整个模型中的执行优先级。​

(2)在UPPAAL中通过同步机制强制执行顺序​

转换后的UPPAAL自动机网络中,通过以下规则保障执行顺序:​

  • 初始化阶段:按执行顺序编号依次启动自动机,编号小的先初始化;
  • 运行阶段:当多个自动机同时满足执行条件时,通过执行顺序仲裁,优先触发编号小的自动机;
  • 数据完整性:针对RateTransition块单独设计转换逻辑,避免因执行顺序导致的数据读写冲突。
相关推荐
可编程芯片开发24 天前
六自由度Stewart并联机器人simulink建模与模拟仿真
机器人·simulink·stewart·并联机器人
凌晨7点1 个月前
拓展:simulink中将仿真环境离散化
matlab·simulink
Dillon Dong2 个月前
Simulink仿真-model Setting关键配置
simulink
微小冷3 个月前
simscape中坐标系和坐标变换Frames and Transforms
matlab·transform·simulink·simscape·multibody
曹勖之3 个月前
simuilink和ROS2数据联通,Run后一直卡在Initializting
windows·matlab·simulink·ros2
电力程序小学童3 个月前
IEEE5节点系统潮流仿真模型(simulink+matlab全功能模型)
matlab·毕设·仿真·simulink·5节点系统·ieee 5·三相仿真模型
可编程芯片开发3 个月前
基于PEMFC质子交换膜燃料电池系统的simulink建模与仿真
simulink·pemfc·质子交换膜燃料电池
曹勖之4 个月前
在MATLAB中使用自定义的ROS2消息
开发语言·matlab·机器人·ros·simulink·ros2
mirandali4 个月前
simulink mask、sfunction和tlc的联动、接口
matlab·simulink·tlc