SuperAPI AI 工具集

fix-sldv-incompatibility

设计与创作

查看项目

更新于 10-16 06:45

技能介绍

用途:当 Simulink 模型与 Simulink Design Verifier 不兼容(sldvcompat 返回 false,或 SLDV 分析因不支持的构造报错)时,诊断并应用对应修复,使模型可被分析。适用于用户询问模型为何不兼容、要求使其兼容,或测试生成/设计错误检测因不支持构造中断的场景。

主要能力:先运行诊断工具 sldv_diagnose_incompatibility('<model_path>'),它会创建 <model>_sldv_compatible.slx 副本并运行 sldvcompat,返回 compatible、copyPath、copyName、findings、compiles、buildError 等字段。随后依据 references/incompatibility-rules.md 中的规则目录,按 msgid 与 blockType 匹配修复。对泛化且指向容器的发现,可用 sldv_localize_incompatibility 逐层定位到具体子系统。

使用方式:块级修复通过 model_edit 完成;配置/模型根级修复(如变步长求解器、InitFcn、并发执行)是唯一例外,需用 evaluate_matlab_code 直接 set_param。替换块前需检查并可能禁用 BlockReduction,避免块被优化删除。修复后再次运行 sldvcompat 验证,兼容后 save_system 并 close_system,报告副本路径。

适用场景:模型已能正常编译但 SLDV 不兼容;需要让模型先可分析再交回原工作流。

限制:模型必须能在普通 Simulink 编译下构建且外部依赖齐全;若外部资源确实缺失(数据字典、被引用模型、数据文件等),不应改写模型,而应请用户提供后重跑诊断;若资源存在但对 SLDV 不透明(受保护 .slxp、外部自定义代码、S-function),则通过打桩处理。模型已兼容、或任务本身是运行 SLDV 分析模式、或用户有意保留不支持构造时,不应使用本技能。需要 Simulink 与 Simulink Design Verifier R2023b 或更高版本。行为一致性检查为可选,仅在任务明确需要时加载 references/consistency-check.md。