主要内容

模型参考变异体

这个例子展示了如何使用模型引用变体。模型块用于从另一个Simulink模型引用一个Simulink®模型。金宝app变体子系统块可以包含模型块作为变体。一个变体描述了一个N变体子系统块可以在其中运行的可能模式。每个变量引用一个特定模型及其相关的特定模型参数。对于给定的变型子系统块,在仿真期间只有一个变型是活动的。您可以通过更改基本工作空间中变量的值或使用“变量子系统”块对话框手动重写变量选择来切换活动变量。

切换积极的变异

sldemo_mdlref_variants模型包含一个名为Controller的变体子系统块,它引用了两个模型。

open_system (“sldemo_mdlref_variants”

要查看变体选择,右键单击名为Controller的变体子系统块并选择块参数(子系统).的值决定活动变量CTRL变量在MATLAB®基础工作空间。定义CTRL = 1激活名为Linear的模型块,并定义CTRL = 2激活名为“非线性”的模型块。

打开sldemo_mdlref_variants模型运行PreLoadFcn模型回调,它设置CTRL2

为了模拟使用线性控制器,定义CTRL = 1在基本工作空间中,然后模拟模型。

CTRL = 1;sim卡(“sldemo_mdlref_variants”);

为了模拟使用非线性控制器,定义CTRL = 2在基本工作空间中,然后模拟模型。

CTRL = 2;sim卡(“sldemo_mdlref_variants”);

枚举和重用

sldemo_mdlref_variants_enum模型表明金宝app仿真软件。变体对象的功能:

  • 枚举:可以用MATLAB的枚举类来提高条件的可读性变体对象。

  • 重用:变体对象可以在不同的变体子系统块中重用。

该模型中的Variant子系统模块要求在MATLAB基础工作空间中定义以下变量:

  • VE_LINEAR_CONTROLLER = 金宝appSimulink.Variant(“E_CTRL = = sldemo_mrv_CONTROLLER_TYPE.LINEAR”)

  • VE_NONLINEAR_CONTROLLER = 金宝appSimulink.Variant(“E_CTRL = = sldemo_mrv_CONTROLLER_TYPE.NONLINEAR”)

  • E_CTRL = sldemo_mrv_CONTROLLER_TYPE。线性

  • VE_PROTOTYPE = 金宝appSimulink.Variant(“E_CURRENT_BUILD = = sldemo_mrv_BUILD_TYPE.PROTOTYPE”)

  • VE_PRODUCTION = 金宝appSimulink.Variant(“E_CURRENT_BUILD = = sldemo_mrv_BUILD_TYPE.PRODUCTION”)

  • E_CURRENT_BUILD = sldemo_mrv_BUILD_TYPE。生产

每个变量都与一个金宝app仿真软件。变体对象的sldemo_mrv_BUILD_TYPE.msldemo_mrv_CONTROLLER_TYPE.m枚举类中。

变体对象有一个条件属性,该属性是表达式。表达式计算为布尔值并确定哪个变量是活动的。表达式可以由标量变量、枚举、等式、不等式、&&、||和~组成。括号()可用于优先分组。变量可以是标准的MATLAB变量或金宝app仿真软件。参数对象。

打开模型sldemo_mdlref_variants_enum运行PreLoadFcn回调模型。此回调被设置为使用变体子系统块所需的变量填充基本工作空间。

open_system (“sldemo_mdlref_variants_enum”

VE_PROTOTYPEVE_PRODUCTION变体对象在名为Filter1、Filter2和Filter3的变体子系统块中重用。

变体子系统块的块参数对话框显示条件相关财产变体对象。

另请参阅

||

相关的话题