ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

[Note-simulink]封装子系统

[Note-simulink]封装子系统 本文记录如何在 Simulink 中封装带参数设置和图标显示的子系统并分享排查 MaskDisplay 报错的经验。如有错误欢迎指正1、功能判断输入的电压是否在合理范围若在则输出0不在输出1并将该逻辑封装成子系统供多出使用2、逻辑实现此处逻辑是比较简单的按功能搭建模型即可3、封装1参数设置新增参数设置参数名称、初始值、提示设置后2关于参数初始化值的编写3设置封装后图标显示disp(Voltage\nWindow);这里尝试了好几种只有用disp能显示出来其他的要不就是报错要不就是不显示bug提示可不看一开始我是想子系统上可以显示标称电压之类的信息就用了如下但是发现一直报错一开始以为是变量名不对后来检查发现都没问题就是一直报错但是可以封装好如下图三text(0.5,0.5,sprintf(∈[%g,%g]\n1出窗,Nominal*(1UpperTol),Nominal*(1-LowerTol)),HorizontalAlignment,center);后来经查资料说是新版simulink不支持旧版本Mask初始化变量导致的识别不了这个计算结果就改的简单了但是也还是会报错上图2text(0.5,0.5,Voltage Window,HorizontalAlignment,center);经排查一个是缓存导致的——Simulink 缓存了旧的 MaskDisplay 脚本就算你现在图标页已经改成静态 text旧脚本还留在模块内部保存 / 刷新模型就继续报这个错。所有先删除图标里面的内容“text(0.5,0.5,Voltage\nWindow,HorizontalAlignment,center);”就是这一行图标编辑框保持完全空白什么代码都不要写然后保存封装然后去刷新这个模块刷新这个模块选中这个 VoltageWindowFault 模块MATLAB 命令行输入set_param(gcb,MaskDisplay,);再重新打开封装编辑器 → 图标页写入静态文字text(0.5,0.5,Voltage\nWindow,HorizontalAlignment,center);这样操作之后就可以显示静态文本了4最终封装之后如下图5双击封装后的子系统设置标称值即比较的基础值6封装后的系统调整右键——封装可以编辑封装查看封装内部封装参数编辑封装4、应用1直接复制刚封装好的 VoltageWindowFault默认只存在当前这个 slx 模型画布上不会自动出现在 Simulink 库浏览器只在当前模型里面复用最简单2永久放到库浏览器所有模型都能直接拖拽工程推荐电源、故障诊断模块统一建库步骤新建自定义库文件Simulink 首页 →新建 → 库Library不是普通模型 Model把你已经封装好的VoltageWindowFault模块从当前模型画布复制粘贴进这个空白库画布保存库文件命名PowerDiagnosisLib.slx后缀 slx库文件图标和普通模型不一样MATLAB 主页 → 设置路径把这个库所在文件夹添加到 MATLAB 搜索路径打开库浏览器快捷键CtrlShiftL点浏览器左上角刷新按钮F5 刷新库你的自定义库就会出现在左侧列表直接拖拽模块到任意模型。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进