使用掩码参数对象的掩码变体汇编子系统块中的控制变体选择
这个例子展示了如何在一个屏蔽中指定变量选项和设置活动选项变体装配子系统块使用掩码参数对象。
探索模型
打开模型slexVariantAssemblySubsystemWithMask
,其中包含一个被屏蔽的变体汇编子系统块,控制器
.
open_system (“slexVariantAssemblySubsystemWithMask”)
为参考模型定义类
在本例中,vas_controller
类是一个超类,包含一个属性和两个方法。的getVariantChoices
方法返回要添加到变量汇编子系统块的变量选择单元格数组。从选项列表中,setActiveVariant
方法设置选择,指定为subsystemFile
,要积极。
类型vas_controller.m
classdef (Abstract) vas_controller properties subsystemFile char end methods (Static) function list = getVariantChoices() list ={'线性控制器','非线性控制器'};函数setactivevvariant (obj,blk) set_param(blk,'LabelModeActiveChoice',obj. subsystemfile) end end end
这两个类vas_linearController
而且vas_nonlinearController
继承的vas_controller
超类。的vas_linearController
类将活动选项的名称存储为linearController
在继承财产中subsystemFile
.该类还存储在线性控制器模型的离散传输Fcn块中使用的分子和分母值。
类型vas_linearController.m
classdef vas_linearController < vas_controller属性分子分母结束方法函数obj = vas_linearController() obj。分子= [1 .7];obj.分母= [1 .09 0.5];obj。subsystemFile =“linearController”;结束结束结束
类似地,vas_nonlinearController
类将活动选项的名称存储为nonlinearController
在subsystemFile
.该类还存储在非线性控制器模型的一维查找表中使用的断点和表值。
类型vas_nonlinearController.m
classdef vas_非线性控制器< vas_controller属性断点表结束方法函数obj = vas_非线性控制器()断点= 5;obj。表=双曲正切(5);obj。subsystemFile =“nonlinearController”;结束结束结束
在“父模型”中设置“对象值”
双击控制器
块以打开掩码对话框。
指定的值vssObj
在掩码对话框中映射到掩码参数对象obj
.
使用obj
,您可以实例化该类vas_linearController
或vas_nonlinearController
.然后你可以调用它的方法,getVariantChoices
而且setActiveVariant
.
例如,要指定Controller块的变量选择,可以使用变体的选择说明符参数参考“块参数”对话框的“块参数”页签设置为obj.getVariantChoices ()
.
要在变体程序集子系统块中设置活动选择,可以使用obj.setActiveVariant ()
方法在其掩码初始化代码中使用。
通过使用掩码参数对象实例化类来设置主动选择
案例1:线性控制器是活动的,非线性控制器是不活动的
当你指定vssObj
作为vas_linearController
,该值vas_linearController
映射到掩码参数对象obj
.的变体的选择说明符参数值obj.getVariantChoices ()
计算为包含文件名的单元格数组linearController
而且nonlinearController
作为变量选项添加到Controller块中。obj.setActiveVariant (gcb)
在掩码初始化代码中设置linearController
子系统处于活动状态。
vssObj = vas_linearController;= sim卡(“slexVariantAssemblySubsystemWithMask”);情节(。吹捧,out.yout);包含(的时间(秒)) ylabel (“数据”)
情况2:线性控制器是不活动的和非线性控制器是活动的
当你指定vssObj
作为vas_nonlinearController
,该值vas_nonlinearController
映射到掩码参数对象obj
.的变体的选择说明符参数值obj.getVariantChoices ()
计算为包含文件名的单元格数组linearController
而且nonlinearController
作为变量选项添加到Controller块中。obj.setActiveVariant (gcb)
在掩码初始化代码中设置nonlinearController
子系统处于活动状态。
vssObj = vas_nonlinearController;= sim卡(“slexVariantAssemblySubsystemWithMask”);情节(。吹捧,out.yout);包含(的时间(秒)) ylabel (“数据”)