SuperAPI AI 工具集

inject-faults

通用与其它

查看项目

更新于 10-16 09:31

技能介绍

用途:通过 evaluate_matlab_code 配合 Simulink.fault API,以编程方式向 Simulink 模型注入故障,在模块端口处覆盖信号值,模拟硬件失效、传感器故障与执行器故障,用于安全性分析和鲁棒性验证。适用于传感器卡死/噪声/偏差分析、FMEA 失效模式仿真验证、控制器对传感器或执行器故障的鲁棒性测试、添加故障占位符以支持 FMEA 可追溯性、配置触发条件(定时、条件、常开)、创建自动化测试故障场景、对比正常与故障行为、关联 FMEA 失效模式、生成故障规格报告、导出内嵌故障行为的模型、注册自定义故障行为库、从被引用模型/子系统/链接库同步故障信息。不适用场景:创建 FMEA 表格或安全分析文档、构建或编辑模型结构、运行普通仿真、编写通过/失败测试。

主要能力:故障附加到模块端口而非模块本身,需通过 get_param(blockPath, 'PortHandles') 获取端口句柄;支持有行为故障和无行为占位故障;触发类型包括常开、定时、条件、手动;故障元数据保存于 <ModelName>_faultInfo.xml。工作流:先用 model_overview 和 model_read 识别目标信号路径,做编译前检查确认信号兼容性,获取端口句柄,调用 Simulink.fault.addFault(portHandle, Name=..., Description=...) 添加故障,调用 addBehavior(fault, modelName, FaultBehavior='mwfaultlib/...') 添加行为,设置 fault.TriggerType 及对应属性,调用 Simulink.fault.save('ModelName') 保存,再用 Simulink.fault.injection(mdl, true) 启用注入并仿真。

限制与约束:故障名须为合法 MATLAB 标识符,不能用空格、斜杠或特殊字符,推荐 camelCase 或 PascalCase;不要直接编辑 _faultInfo.xml,须用 MATLAB API;不要用 Simulink.fault.Fault() 构造函数;不要用 deleteAll 或 deleteFault 切换故障,删除会永久销毁故障对象、行为模型 .slx 及可追溯链接,应改用 Simulink.fault.injection(model, false/true) 全局切换、Simulink.fault.enable(modelElement, false) 关闭特定元素;Stateflow 图、故障模型或观测器模型内部不支持故障;连续时间信号注入需参考高级操作的决策树;同一端口同一时刻只有一个故障激活。启用共享模型上的故障、删除已有故障、修改设计模型、设置 fault.Persistent = true 前需先确认。

其他事实暂未提供:具体安装命令、价格与平台信息未在资料中说明。