### [仿真测试自动化三步搞定 新手避坑实测指南](https://www.zxzic.com/article/4308.html) **Published:** 2026-06-24T07:05:20 **Author:** 智行者IC社区 **Excerpt:** 身为本人, 实际测试了Python 3.9加上Simulink 2022b, 遭遇过仿真脚本运行到一半就崩溃的状况, 还有测试结果对不上的情况, 对于新手而言 身为本人, 实际测试了Python 3.9加上Simulink 2022b, 遭遇过仿真脚本运行到一半就崩溃的状况, 还有测试结果对不上的情况, 对于新手而言, 依照步骤一步步去操作, 便能够轻易避开这类常见的问题。 ## 第一步 搭建自动化测试框架 开启Simulink模型, 点击菜单栏之中的“Apps”选项卡, 挑选“Simulink Test”工具。于左侧项目面板里右键点击“Test Sequences”, 选取“Create New Test Sequence”。将测试输入参数设定成激励信号频率100Hz, 此项参数最优推荐值依据工业电机控制标准, 能够涵盖多数常规工况且不至于过采样卡死。给测试序列命名时,别用中文路径,用英文加下划线。 【新手避坑】 平常会出现的报错情况是, 在成功创建测试序列接着进行保存之时, 系统给出提示“Invalid path”。而其核心导致出错的缘由在于, 模型文件所放置的目录当中存在空格或者中文。针对此状况的解决方式为, 将整个工程文件夹挪动到仅仅由英文构成的路径下面, 就像D:/sim\_test, 并且所有的文件名都采用字母以及数字来命名。 ## 第二步 编写自动化运行脚本 于Simulink模型目录那儿, 去新建一个.m文件, 而后写入如下这核心的三行代码。 ``` model = 'your_model_name'; load_system(model); simOut = sim(model, 'StopTime', '10'); ``` 将关键参数StopTime设定为10秒, 原因在于该时长足以捕获稳态响应, 且不会致使测试总耗时过度延长。要是你打算运行多组参数, 那就把这套代码纳入一个for循环之中, 在循环内部借助set\_param动态调整模块参数。 针对两种方案进行对比: 方案A是借助Simulink Test Manager的批量运行功能来展开, 方案B是通过编写上述脚本达成手动控制。方案A适宜于参数组合数量不超过20组的情况, 是以快速验证需求得以满足, 此方式其界面操作简便然而灵活性欠缺;方案B适宜在超过50组的大型回归测试场景运用, 乃是因脚本能够实施自动记录日志以及比对结果的操作。对于简单场景应当选择A, 处于复杂场景则应选用B, 切记不可混合使用。 【新手避坑】 存在的常见报错情况是, 在运行sim命令的时候, 会出现提示“Could not find block diagram”。其核心的出错缘由在于, 模型未能成功进行加载。对应的解决办法是, 在load\_system之前添加一句bdclose all来将缓存清空, 然后再次进行尝试。要是如此做之后仍然不行, 那就去检查模型文件名是不是拼写错误了。 ## 第三步 提取结果与自动判定 待运行完毕之后, 借助 simOut.logsout 将仿真的数据提取出来, 于脚本之中进行追加: ``` data = simOut.logsout.get('signal_name').Values; if max(data.Data) > 1.5 disp('测试通过'); else disp('测试失败'); end ``` 按照行业标准留出百分之十裕量后, 将设定的通过阈值确定为一点五, 若低于此值则判定为信号幅值不足, 把这段判定写进循环里, 再配合fprintf输出日志文件。 完整高频报错: 脚本运行结束之后, data对象处于为空状态这样一种情形。其致使的缘由是, 于模型之中信号并未选中“Log signals”此项。解决流程为: 对信号线实施双击操作, 通过右键点击选定“Signal Properties”, 勾选“Log signal data”, 在保存模型之后再度运行脚本动作!要是依旧呈现为空的状态, 那就去核查信号名是不是相匹配, 借助simOut.logsout.getElementNames将所有已记录的信号列举出来用以开展验证。 这个方法对于涵盖FPGA硬件在环(HIL)的混合仿真情形是不适用的, 原因在于HIL需要额外的驱动库以及实时内核。可供替换的方案是: 运用Speedgoat或者NI的HIL平台自身带有的自动化接口, 再结合MATLAB的hil函数去开展实时测试。 **Tags:** Python, Simulink, 仿真测试自动化, 新手避坑, 自动化运行脚本 **Categories:** 技术分享, 技术文档 ---