动态蒙面子系统

允许图书馆座地修改其内容

只有在库中的屏蔽子系统驻留在此复选框被启用。检查此选项将允许块初始化代码来修改掩蔽子系统的内容(也就是说,它让代码添加或删除的块,并设置这些块的参数)。否则,当掩蔽库块试图以任何方式修改其内容,产生一个错误。要设置在MATLAB这个选项®提示,选择自修改块并输入以下命令。

set_param (gcb,‘MaskSelfModifiable’,‘上’);

然后保存该块。

为库块创建自修改的遮罩

您可以创建蒙面库块可以修改其结构内容。这些自我修改的模板允许您:

  • 修改掩盖子系统基于面具对话框参数内容,或者当子系统最初从库中拖入一个新的模式。

  • 改变多端口S-功能块上的端口的数量驻留在库中。

创建使用模板编辑自我修改的面具

要使用模板编辑创建一个自修改面膜:

  1. 解锁库(见锁定和解锁库)。

  2. 在库中选择块。

  3. 选项卡,面具组中,单击编辑蒙版。打开模板编辑。

  4. 在掩码编辑器中初始化窗格中,选择允许库块修改其内容选项。

  5. 在掩码中输入修改掩码子系统的代码初始化窗格。

    不要在对话框参数回调中输入结构上修改掩码子系统的代码(参见添加蒙版代码)。这样做触发,当你编辑的参数错误。

  6. 请点击应用应用更改或好吧以应用更改,并关闭模板编辑。

  7. 锁定库。

从命令行创建自修改掩码

创建命令行一个自修改掩模:

  1. 使用以下命令解锁库:

    set_param(GCS, '锁定', '关闭')

  2. 指定该块是通过使用下面的命令自修改:

    set_param(block_name, 'MaskSelfModifiable', '上')

    哪里block_name是库中块的完整路径。

创建自修改面膜

图书馆selfModifying_example包含一个蒙面子系统,修改其数量基于子系统面具对话框中所做的选择输入端口。

  1. 在库窗口中,图书馆选项卡,单击锁定库解锁库。

  2. 子系统模块选项卡,面具组中,单击编辑蒙版。打开模板编辑。

  3. 面具编辑器参数与对话窗格定义参数努敏其存储的价值inports数选项。此面膜对话框回调添加或删除基于所做的选择的屏蔽器子系统内输入端口inports数列表。

  4. 为了让对话框回调函数正常,允许库块修改其内容选项在遮罩编辑器初始化窗格中选择。如果不选择此选项,复制库块不能修改其结构内容。此外,更改的选择inports数名单将产生一个错误。

评估自修改掩模下的块

这个例子显示了如何强制的Simulink万博1manbetx®评估自修改掩码内的块。

万博1manbetxSimulink的评估包含以下顺序面具模型元素:

  1. 面膜对话框

  2. 面膜初始化代码

  3. 面具下的模块或子系统蒙面

假设一个名为myBlock内部子系统mySubsys掩模的自修改掩模取决于掩模参数myParam更新本身。

myParam通过暴露给用户面具参数对话框。mySubsys通过写在MATLAB代码更新面膜初始化窗格。

在这个模型中,更新的顺序如下:

  1. 你修改myParam通过面罩对话框。

  2. 掩码初始化代码接收此更改并进行修改mySubsys下面具。

  3. myBlock,它位于mySubsys,根据对的更改修改自身myParam

在这个序列中,Simulink中不评万博1manbetx估myBlock,它位于mySubsys当掩码初始化代码执行时。相反,Simuli万博1manbetxnk只评估和更新屏蔽的子系统mySubsys。与此同时,myBlock保持不变。

属性强制Simulink提前万博1manbetx计算这些块万博1manbetxSimulink.Block.eval方法中被掩蔽子系统的初始化代码。

万博1manbetxSimulink.Block.eval( 'mySubsys / myBlock');

相关的话题