以编程方式控制掩码
万博1manbetxSimulink®定义了一组参数,用于帮助设置和编辑掩码。要从MATLAB®命令行设置和编辑掩码,您可以使用万博1manbetx仿真软件。面具
而且万博1manbetx仿真软件。面具Parameter
类方法。你也可以使用get_param
而且set_param
函数设置和编辑掩码。但是,由于这些函数使用的分隔符不支持Unicode®(非英文)字符,因此建议您使用万博1manbetx万博1manbetx仿真软件。面具
而且万博1manbetx仿真软件。面具Parameter
类方法来控制掩码。
使用万博1manbetx仿真软件。面具
而且万博1manbetx仿真软件。面具Parameter
使用方法万博1manbetx仿真软件。面具
而且万博1manbetx仿真软件。面具Parameter
类来执行以下掩码操作:
创建、复制和删除掩码
创建、编辑和删除掩码参数
确定拥有掩码的块
获取为掩码定义的工作空间变量
在本例中
万博1manbetxSimulink.Mask.create
方法用于创建块掩码:
new_system (“mask_example”);add_block (“内置/子系统”,“mask_example /子系统”);save_system;open_system (“mask_example”);maskObj = 万博1manbetxSimulink.Mask.create(gcb);
在这个例子中,mask对象被赋值给variablemaskObj
使用万博1manbetxSimulink.Mask.get
方法:
maskObj = 万博1manbetxSimulink.Mask.get(gcb);maskObj
maskObj =带有属性的掩码:类型:"描述:"帮助:"初始化:" selfmodiitable: 'off' ImageFile: "显示:" IconFrame: 'on' IconOpaque: 'opaque' RunInitForIconRedraw: 'analyze' IconRotate: 'none' PortRotate: 'default' IconUnits: 'autoscale'参数:[0x0 Simulink.]万博1manbetxMaskParameter] PortIdentifiers: [0x0 万博1manbetxSimulink.Mask.]PortIdentifier] ParameterConstraints: [0x0 万博1manbetxSimulink.Mask.]CrossParameterConstraints: [0x0 Simulink.Mask万博1manbetx.][0x0 Simulink.Mask.]万博1manbetxPortConstraint] BaseMask: [0x0 万博1manbetxSimulink.]面具)
有关其他掩码操作的示例,如创建和编辑掩码参数以及复制和删除掩码,请参见万博1manbetx仿真软件。面具
而且万博1manbetx仿真软件。面具Parameter
.
使用get_param
而且set_param
的set_param
而且get_param
函数具有用于设置和控制掩码的参数。你可以使用这些函数来基于MATLAB命令行传递的值来设置模型或库中任何块的掩码:
set_param (gcb),“MaskStyleString”,编辑,编辑的,...“MaskVariables”,' maskparameter1 = @1; maskparameter2 = 2;,...“MaskPromptString”,'掩码参数1:|掩码参数2:',...“MaskValues”,{' 1 ',' 2 '});get_param (gcb),“MaskStyleString”);set_param (gcb),“MaskStyles”,{“编辑”,“编辑”},“MaskVariables”,...' maskparameter1 = @1; maskparameter2 = 2;,“MaskPrompts”,...{'掩码参数1:','掩码参数2:'},...“MaskValueString”,‘1 | 2);get_param (gcb),“MaskStyles”);
在哪里
|
为掩码参数分离单个字符向量值。@
指示对参数字段进行计算。&
指示不计算参数字段,而是将其赋值为字符向量。
请注意
当你使用
get_param
为了得到价值
的掩码参数,Simulink将使用掩码对话万博1manbetx框返回最后应用的值。控件时,已在掩码对话框中输入但未应用的值将不反映get_param
命令。若要以编程方式指定掩码参数的值,建议使用
set_param
命令面具参数而不是使用set_param
在MaskValues.
要以编程方式控制R2014a之前版本的掩码属性,请参见面具参数.
限制使用set_param
和屏蔽链接块上的对象api
万博1manbetx在修改掩码参数时,Simulink施加了某些约束set_param
以及屏蔽链接块上的对象api。在不可自修改的链接块上,您可以更改掩码参数的属性,例如价值
,可见
,启用
.在可自我修改的链接块上,除了价值
,可见
,启用
.
以编程方式创建掩码参数和对话框
这个例子展示了如何创建这个简单的掩码对话框、向对话框添加控件以及更改控件的属性。
步骤1:为您在模型中选择的块创建掩码。
步骤2:要自定义对话框并使用选项卡代替默认组,请删除参数组框。
maskObj.removeDialogControl (“ParameterGroupVar”);open_system (“mask_example /子系统”);
万博1manbetx控件的时候,Simulink仍然保留子对话框控件(本例中的两个复选框)ParametersGroupVar
群围住他们。这些控件是无法使用对话框控件方法删除的参数。
可以使用以下方法删除参数removeAllParameters
,属于万博1manbetx仿真软件。面具
类。
步骤3:创建一个标签容器并获取它的句柄。
tabgroup = maskObj.addDialogControl(“tabcontainer”,“tabgroup”);
步骤4:在选项卡容器中创建选项卡。
tab1 = tabgroup.addDialogControl(“标签”,“tab1”);tab1。提示=“第一”;maskObj.addParameter (“类型”,“复选框”,“提示”,选项1的,...“名字”,“option1”,“容器”,“tab1”);maskObj.addParameter (“类型”,“复选框”,“提示”,选项2的,...“名字”,“option2”,“容器”,“tab1”);tab2 = tabgroup.addDialogControl(“标签”,“tab2”);tab2。提示=“第二”;tab3 = tabgroup.addDialogControl(“标签”,“tab3”);tab3。提示=“第三(看不见的)”;
使第三个选项卡不可见。
tab3。可见=“关闭”;tab3
tab3 =带有属性的Tab:名称:tab3提示:'Third(不可见)' Enabled: 'on' Visible: 'off' alignprompt: 'off' DialogControls: [0x0 Simulink.dialog.Control]万博1manbetx
控件可以更改对话框上参数的位置和其他属性万博1manbetxSimulink.dialog.Control
命令。
例如,要更改对话框布局选项,请考虑添加一个带有名为Parameter2的弹出参数的Gain块。的实例可以设置参数的对话框布局选项万博1manbetxSimulink.dialog.parameter.Popup
类。下面的代码展示了如何在对话框布局中设置提示符的位置:
add_block (“内置/增益”,“mask_example / gain2”);maskobj = 万博1manbetxSimulink.Mask.create(gcb);set_param (gcb),“MaskStyleString”,“弹出”,...“MaskVariables”,“maskparameter2 = 2;,...“MaskPromptString”,'掩码参数2:');a = 万博1manbetxSimulink.Mask.get(“mask_example / gain2”);d = a.Parameters(1).DialogControl;d
d =弹出属性:Name: 'Parameter1' PromptLocation: 'left' Row: 'new' HorizontalStretch: 'on' Tooltip: "
现在,设置PromptLocation
属性,使用命令:
d.PromptLocation =“左”;
这将设置PromptLocation
作为“左
”。可用的值为“左”
而且“高级”
.的输出确认了更改PromptLocation
物业价值左
:
d
d =弹出属性:Name: 'Parameter1' PromptLocation: 'left' Row: 'new' HorizontalStretch: 'on' Tooltip: "
save_system;
有关对话框控件及其属性的更多信息,请参见万博1manbetxSimulink.dialog.Control
.