只有在库中的屏蔽子系统驻留在此复选框被启用。检查此选项将允许块初始化代码来修改掩蔽子系统的内容(也就是说,它让代码添加或删除的块,并设置这些块的参数)。否则,当掩蔽库块试图以任何方式修改其内容,产生一个错误。要设置在MATLAB这个选项®提示,选择自修改块并输入以下命令。
set_param (gcb,‘MaskSelfModifiable’,‘上’);
然后保存该块。
您可以创建蒙面库块可以修改其结构内容。这些自我修改的模板允许您:
修改掩盖子系统基于面具对话框参数内容,或者当子系统最初从库中拖入一个新的模式。
改变多端口S-功能块上的端口的数量驻留在库中。
要使用模板编辑创建一个自修改面膜:
创建命令行一个自修改掩模:
使用以下命令解锁库:
set_param(GCS, '锁定', '关闭')
指定该块是通过使用下面的命令自修改:
set_param(block_name, 'MaskSelfModifiable', '上')
哪里block_name
是库中块的完整路径。
图书馆selfModifying_example
包含一个蒙面子系统,修改其数量基于子系统面具对话框中所做的选择输入端口。
在库窗口中,图书馆选项卡,单击锁定库解锁库。
在子系统模块选项卡,面具组中,单击编辑蒙版。打开模板编辑。
面具编辑器参数与对话窗格定义参数努敏
其存储的价值inports数选项。此面膜对话框回调添加或删除基于所做的选择的屏蔽器子系统内输入端口inports数列表。
为了让对话框回调函数正常,允许库块修改其内容选项在遮罩编辑器初始化窗格中选择。如果不选择此选项,复制库块不能修改其结构内容。此外,更改的选择inports数名单将产生一个错误。
这个例子显示了如何强制的Simulink万博1manbetx®评估自修改掩码内的块。
万博1manbetxSimulink的评估包含以下顺序面具模型元素:
面膜对话框
面膜初始化代码
面具下的模块或子系统蒙面
假设一个名为myBlock
内部子系统mySubsys
掩模的自修改掩模取决于掩模参数myParam
更新本身。
myParam
通过暴露给用户面具参数对话框。mySubsys
通过写在MATLAB代码更新面膜初始化窗格。
在这个模型中,更新的顺序如下:
你修改myParam
通过面罩对话框。
掩码初始化代码接收此更改并进行修改mySubsys
下面具。
myBlock
,它位于mySubsys
,根据对的更改修改自身myParam
。
在这个序列中,Simulink中不评万博1manbetx估myBlock
,它位于mySubsys
当掩码初始化代码执行时。相反,Simuli万博1manbetxnk只评估和更新屏蔽的子系统mySubsys
。与此同时,myBlock
保持不变。
属性强制Simulink提前万博1manbetx计算这些块万博1manbetxSimulink.Block.eval
方法中被掩蔽子系统的初始化代码。
万博1manbetxSimulink.Block.eval( 'mySubsys / myBlock');