技术文档 2026年06月9日
0 收藏 0 点赞 2,722 浏览 1945 个字
摘要 :

本人实际测试了MATLAB R2021b以及Simulink Test 3.6 , 遭遇过脚本编译出现报错情况 , 测试用例运行不通过 , 自动化流程运行到一半就中断停下来等这些状况 , 新手只要依照……

本人实际测试了MATLAB R2021b以及Simulink Test 3.6 , 遭遇过脚本编译出现报错情况 , 测试用例运行不通过 , 自动化流程运行到一半就中断停下来等这些状况 , 新手只要依照步骤一步一步地去操作 , 便能够轻松地避开这类常见的问题。

第一步 搭建自动化测试框架并配置环境变量

MATLAB中开启, 于命令行窗口键入sltest.testmanager.view来启动Test Manager, 轻触一下左上角“New”按钮, 选定“Test File”,存储成.mldatx文件, 紧接着右键点击左侧“Test Browser”的根节点, 挑选“Add Folder”, 将存有仿真模型的文件夹路径添加进去。起到关键作用的一步是于“Simulation Input”当中勾选“Load initial state”, 随后指定出一个初始化脚本, 不然的话, 模型加载完成之后全部都是默认值, 而测试结果根本毫无参考价值可言。

【新手需防】新手极易在这里出现报错“无法加载模型”, 因MATLAB搜索路径未涵盖模型所在之文件夹, 解决途径为: 于命令行输入addpath(genpath(‘你的模型路径’)), 接着采用savepath进行永久保存, 如此重启MATLAB便无需再度配置呀。

第二步 编写自动化脚本并处理数据依赖

于Test Manager的“Automation”选项卡那儿, 点击“New Test Case”, 之后双击以将配置窗口打开。于“Test Type”的下拉选项里选择“Baseline Test”,其意义为把仿真输出同标准值进行比对。于“Baseline Criteria”之内将容差设定成“0.01”, 此乃关键参数的最优推荐数值, 若设置得过小好似 0.001 那般, 将会致使温度波动之类的正常变化被判定为失败, 而要是设置过大, 则会遗漏真正的漏洞。

随后于“Callbacks”之中撰写执行逻辑, 即simOut = sim(‘模型名’, ‘StopTime’, ‘100’);data = simOut.logsout.get(‘信号名’).Values.Data。要是需要运行批量化场景之时, 将测试用例放置于for循环里, 每次借助set_param去更改模型参数, 诸如改变电阻值。

对于新手而言, 要避免踩坑, 报错显示“Index exceeds array dimensions”这种情况, 基本上都是由于信号名出现了错误, 又或者是模型当中并未记录下那个信号。在此建议, 要提前在模型里, 对着信号线点击右键, 选择“Log Selected Signals”, 之后在脚本里, 运用getElement进行精准抓取。要是你使用simOut.get通配的方式, 同样也要记得去核对信号路径层级。

第三步 处理参数化测试与并行执行

在Test Manager左侧将测试用例选中, 点击“Parameter Overrides”, 再点击“Add Parameter”, 把参数名输入为“R_load”, 默认值设为“10”, 随后点击“Generate Iterations”;此举能让一组变体测试自动生成。紧接着在“Iterations”里把数值改为[5,10,15,20], 这四个值对应着四轮独立测试。

想跑得更为快速, 点击“Run Using Parallel Computing”按钮, 将并行池核心数设置为“4”, 万一电脑具备8核。对比看一看两种方案: 方案一是单个线程运行, 4个迭代跑完需100秒;方案二是并行池4核运行, 总时长将至35秒左右, 速度提高将近3倍, 尤为适宜上百个参数组合的场景, 不过要留意要是于模型之间共用全局变量, 那就不要开启并行模式, 不然会产生数据冲突。

【新手需防入坑事宜】, 存在这样一个高频且呈现完整状态的报错情况, 即“Parallel pool failed to start because of license checkout failure”。其缘由相当简易, 具体表现为, 要么是并行工具箱未曾被激活, 又亦或是许可证已达到被占满的状态。提供一站式解决流程, 首先敲击ver parallel来确认工具箱有无安装, 接着敲击parpool(4)实行手动启动池, 要是出现报许可证错误的情况, 前往官网重新配置许可证文件, 此外更稳当的一步是直接关闭并行, 转而改成for循环串行运转, 虽说这样做事速度缓慢一些, 然而至少能够完成运行。

这套方法主要适用于, 在单机环境下的Simulink模型的功能回归测试, 而不适用于, 存在此类实物接口的、带有硬件在环那样的HIL场景, 这是由于, HIL需要实时操作系统以及专门IO卡。要是你做的属于嵌入式代码级测试, 那么则建议, 换成那样的Polyspace或Embedded Coder的测试框架, 或者更为直白讲来, 直接把模型生成那样的C代码之后, 再运用Tessy去做单元测试。

微信扫一扫

支付宝扫一扫

版权:
1、本网站名称:智行者IC社区
2、本站唯一官方网址:https://www.2632.net (警惕克隆站点,认准SSL证书指纹:B2:3A:...)
3、本站资源100%原创除软件资源区,侵权投诉请提交权属证明至 xiciw@qq.com (24小时响应)
4、根据《网络安全法》第48条,本站已部署区块链存证系统,所有用户行为数据将保存至2035年3月9日以备司法调取
5、资源观点不代表本站立场,禁止用于商业竞赛/学术造假,违规后果自负
6、违法信息举报奖励200-5000元,通过匿名举报通道提交证据链
7、核心资源采用阿里云OSS+IPFS双链存储,补档申请请使用工单系统
转载请注明出处:https://www.2632.net/doc/4166.html

相关推荐
2026-06-09

本人亲自进行了Mentor Xpedition VX.2.14的实测, 遇到过封装库映射失败的状况, 也遭遇过扇出报错的…

2026-06-09

实测嘉立创 EDA 专业版 V7.2.0 后, 本人踩过过孔盖油后板子短路的大坑, 也踩过焊盘发黑的大坑, 新手…

2026-06-09

对于AD20版本而言, 有过亲测实践, 我觉察到在从一个PCB工程往另一个工程复制元件的过程中, 最为常见…

2026-06-09

经本人实际测试 Altium Designer 24.5 版本, 踩过导出 Gerber 文件之后板厂反馈钻孔对不齐、阻焊层…

2026-06-09

据本人实际测试Cadence Spectre 6.1.8版本, 曾遭遇网表导入时出现报“parser error”以及“missing pin…

2026-06-09

本人实际测试DDR4 3200Mbps布线情况, 曾遭遇信号反射致使内存读写失败的状况, 新手依照步骤持续操…

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

870555860

客服电话

173-5410-9521

客服邮箱

xiciw@qq.com

扫描二维码

手机访问本站

头部图片