分享

Simulink一个被忽视的新功能

 基算仿真 2023-05-30 发布于江苏

从MATLAB 2022b开始,Simulink更新了一个被很多人忽视的新功能,那就是——显示对话框参数的计算值

如果你还对这个功能没有概念,看看下面这个例子就会明白了

在以往的版本中,当我们在simulink模块的参数框中引用工作区的变量时,无法直接查看该变量的数值,而现在变量的数值会直接在对应参数框中显示。

在属性检查器(Property Inspector)同样会显示

在参数框中输入表达式,其计算结果也会同步显示出来


应用案例

显然,对于简单模型来说,找出参数值相对容易,可以在基础工作区中键入它或查看数据字典。而对一些复杂模型进行建模或修改时,该功能的价值就会体现出来。

为了说明这个特性在复杂项目中的价值,这里使用Simulink附带的Four Hydraulic Cylinder Simulation示例。

可以在MATLAB命令行输入以下命令打开该模型

openExample('simulink_general/sldemo_hydcyl4Example')

可以看到在液压缸2模型中,Ac^2/K的值为5e-12

而在液压缸3模型中,Ac^2/K的值为8e-11

我们查看工作区发现Ac = 0.001 K = 50000,那么Ac^2/K = 2e-10,为什么会出现这种情况呢?

造成该问题的原因是对子模型进行封装时,将工作区中的变量Ac、K经过运算后重新命名为Ac、K,因此在不同的子模型中变量Ac、K并不相等:

查看Mask Editor以查看哪个对话框参数对应于Ac和K,可以看到在液压缸2子模型将工作区中的变量K和Ac均除以4后重新命名为了K、Ac。

在封装子系统的对话框中查看传递给每个块的封装对话框的参数

可以看到液压缸2子模型内的变量K实际为工作区中的变量K/4 = 12500 ,Ac为Ac/4 = 0.00025

因此Ac^2/K的值为5e-12

可以想象如果有多层嵌套的封装子系统,按照上述操作检查参数值的复杂性会成倍提升。

自定义MATLAB对象

如果使用 MATLAB 类来定义模型参数,那么评估后的值将显示为一个超链接,该超链接会打开自动生成的类文档,其中包括打开源代码的超链接。


如何关闭该功能

在MATLAB 2022b及以上版本,该功能默认开启,如果需要关闭,可以在simulink preference中取消勾选对应选项。

总结

个人感觉该功能可以有效减少我们在建模过程中看MATLAB工作区的次数,特别是需要展开才能检查参数的结构数组。

在MATLAB 2023a中该功能进一步支持了simscape物理建模,让simulink和simscape建模的体验更加统一。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多