Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

是时候从find_system转换到Simulink.findBlock金宝apps了

如果您正在以编程方式创建、编辑或分析Simulink模型,您可能熟悉金宝app find_system
虽然这根本没有什么问题 find_system 在这篇文章中,我想强调一组功能,它们提供了类似的功能,并提高了可用性。
在MATLAB R2018a中,我们介绍:
让我们来看看为什么我相信这些新的api提供了一个更好的可用性。

两个等价查询

让我们先看一个典型的例子。使用示例 sldemo_fuelsys ,让我们比较一下代码,找出唯一的 数学函数 该模型中的Block:
mdl =“sldemo_fuelsys”
load_system (mdl);
使用find_system:
blksFindSystem = find_system(mdl,“LookUnderMasks”“所有”“FollowLinks”“上”“BlockType”“数学”
blksFindSystem =1×1单元格数组
{' sldemo_fuelsys /油门↵命令/数学↵函数”}
使用Simu金宝applink.findBlocksOfType:
opts = 金宝appSimulink.FindOptions;
选择。FollowLinks = true;
blksFindBlocks = 金宝appSimulink.findBlocksOfType(mdl,“数学”、选择);
getfullname (blksFindBlocks)
ans =
“sldemo_fuelsys/油门命令/数学函数”
在查看这段代码时,您可能想知道为什么我认为第二个选项在可用性方面更好。毕竟,这是3行代码而不是1行。
让我们更详细地研究一下。

find_system -循序渐进

让我们回顾一下我写这行代码时的思考过程 find_system .首先输入返回变量,等号然后输入" find_ “直到建议机制提供 find_system:
一旦我接受了这一点,我输入模型名称,并看到下面的建议:
的函数样式 find_system , MATLAB编辑器能够列出不同的语法,但不能列出参数值。首先,我可能会选择:
blksFindSystem = find_system(mdl,“BlockType”“数学”
blksFindSystem = 0×1空单元格数组
因为它没有返回任何东西,所以我查看 find_system文档 欲知详情。我确定的第一件事是我正在寻找的块位于库链接中,因此我添加 FollowLinks 选择。
我从文档中复制了选项名称,并将其粘贴到我的代码行中
blksFindSystem = find_system(mdl,“FollowLinks”“上”“BlockType”“数学”
blksFindSystem = 0×1空单元格数组
还是什么都没有。回到文档,我找到了 LookUnderMasks 选项
这一次,我成功了:
blksFindSystem = find_system(mdl,“FollowLinks”“上”“LookUnderMasks”“所有”“BlockType”“数学”
blksFindSystem =1×1单元格数组
{' sldemo_fuelsys /油门↵命令/数学↵函数”}
有一件事要承认:即使在写完代码之后 find_system 20年来,即使我确切地知道我需要的选项,我也总是打开文档,从那里复制选项名称。原因可能是打字错误太频繁,更喜欢复制粘贴,而不是什么都打出来。

金宝appSimulink.findBlocksOfType- Step by Step

让我们用同样的思路 金宝appSimulink.findBlocksOfType .和前面的例子一样,我开始输入第一行
我接受这个建议。
opts = 金宝appSimulink.FindOptions;
一旦完成,我可以将鼠标悬停在“opts”上,立即看到选项:
快速浏览它们,我能看到这一点 LookUnderMasks 已设置为" 所有 ”,但 FollowLinks 没有启用,所以我开始输入:
我接受这个建议,完成这句话:
选择。FollowLinks = true;
我开始输入最后一行,并一直伴随着代码建议:
blksFindBlocks = 金宝appSimulink.findBlocksOfType(mdl,“数学”选择)
blksFindBlocks = 719.0001
我收到的是一个块句柄,它可以传递给其他函数,如 set_param get_param hilite_system 等。如果你想看到块路径为 find_system 返回时,使用 getfullname
getfullname (blksFindBlocks)
ans =
“sldemo_fuelsys/油门命令/数学函数”

最后比较

我希望我已经说明了如何,感谢MATLAB编辑器中对制表符补全和代码建议的最新增强, 金宝app仿真软件。FindBlocks 并且相关的功能可以提高编码的体验。这是3行代码而不是1行,但它们更容易编写,第一眼看起来也很容易理解。
还有一个好处就是当我需要打电话的时候 金宝appSimulink.findBlocks 很多次了。在大多数情况下,我将能够创建 金宝app仿真软件。FindOptions 对象只有一次,并在我的代码中重用它多次,使事情更加简化。

现在轮到你了

我花了很长时间才意识到 金宝appSimulink.findBlocks 与相关功能相比提高了我的工作流程 find_syste m.一开始,我对需要调用额外的函数感到厌烦 金宝appSimulink.findOptions .然而,在强迫自己使用了几次之后,我很快就改变了主意,放弃了 find_system
试一试 金宝appSimulink.finBlocks 以及相关功能,请在下面的评论中告诉我们你的想法。
|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。