主要内容

金宝appSimulink.VariantVariableclass

包:金宝app

创建一个变量参数对象

描述

金宝appSimulink.VariantVariable类创建一个变量参数对象。您可以指定多个值为每个对象。您还可以指定属性维度等数据类型,等等。每个值对象的变异条件表达式。设置参数值和属性的对象,然后引用对象的块。

在你创建一个新的金宝appSimulink.VariantVariable对象,创建一个金宝appSimulink.VariantControl对象代表了不同控制变量中使用金宝appSimulink.VariantVariable对象。

请注意

您可以创建变体参数对象只有在基地或在数据字典。

创建

P= 金宝appSimulink.VariantVariable创建一个空对象变量参数。

P= 金宝appSimulink.VariantVariable (名称,值)创建一个变量参数所指定的一个或多个对象名称,值对参数。使用这种语法,您可以指定多个值的对象,并将每个值与变异条件表达式。您还可以指定数据类型等属性的对象,存储类,尺寸等等。

输入参数

全部展开

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“规范”、“Pspec’,‘选择’,{V = = 1, 4.5 V = = 2, 9.5}

变异参数对象的属性,如数据类型,尺寸,存储类,等等,指定为金宝appSimulink.Parameter对象。默认的存储类金宝appSimulink.Parameter对象是汽车。如果你指定的存储类汽车,的值对象内联文本值在生成的代码中。如果您指定对象的存储类以外的任何东西汽车,对象表示为可调参数在生成的代码中使用符号名称。有关更多信息,请参见选项代表变异参数生成的代码(嵌入式编码)

例子:“规范”、“Pspec”

变异条件和值,指定为一个结构体。在模拟,当条件的求值结果为一个变体真正的,其相关值变得活跃。当条件的求值结果为一个变体,其相关值变得不活跃的。没有两个相同的变量参数的值必须与条件相同的变体。

您可以指定条件变体作为布尔MATLAB®包含一个或多个操作数和运算符表达式。看到类型的变量控制变量参数(操作数)的变体参数类型的运营商变体

您可以指定数字的值、枚举或金宝appSimulink.Parameter类型。看到的,数值变量控制参数值快速原型的变体,提高代码的可读性变体使用枚举类型参数,使用仿真软件重用变异参数值从手写代码。金宝app参数变量

例子:“选择”,{V = = 1, 4.5,“V = = 2”, 9.5}

方法

全部展开

例子

全部折叠

数值允许您快速原型变量值时仍然构建模型。数值帮助你更加关注建筑变异值比发展中激活这些选择的表达式。

您可以定义数字控制中列出的值位置存储位置变异控制变量(操作数)的变体

打开slexVariantParameters模型。

open_system (“slexVariantParameters”)

在MATLAB编辑器中,指定变体选择最简单的形式的数值金宝appSimulink.VariantVariable对象K1K2

K1 = 金宝appSimulink.VariantVariable (“选择”,{“V = = 1”,3.5,“V = = 2”,8.5})
K1 = VariantVariable 2选择:条件价值_____ _____ V = = 1 3.5000 V = = 2 8.5000规范:“使用getChoice、setChoice addChoice, removeChoice访问,修改、添加或删除选项
K2 = 金宝appSimulink.VariantVariable (“选择”,{“V = = 1”,4.5,“V = = 2”,9.5})
K2 = VariantVariable 2选择:条件价值_____ _____ V = = 1 4.5000 V = = 2 9.5000规范:“使用getChoice、setChoice addChoice, removeChoice访问,修改、添加或删除选项

一旦你成功地创建金宝appSimulink.VariantVariable对象,可以用描述的方法修改它们公共方法或从VariantVariable对话框。

激活一个变量值通过定义一个控制变量,V,并设置它的值1在一个金宝appSimulink.VariantControl对象。

V = 金宝appSimulink.VariantControl (“价值”,1“ActivationTime”,“更新图”)
V = VariantControl属性:值:1 ActivationTime:“更新图”

当你模拟模型,条件V = = 1计算结果为真正的K1分配一个值的3.5K2分配一个值的8.5

sim卡(“slexVariantParameters”)

如果你改变的价值V2,仿金宝app真软件®设置的值K1K24.59.5在模拟。你可以改变的价值V使用这个命令或金宝appSimulink.VariantControl对话框。

V。Value = 2; sim (“slexVariantParameters”)

如果您打算为模型生成代码包含变异参数,指定变量作为控制变量金宝appSimulink.Parameter对象。金宝appSimulink.Parameter对象允许您指定其他属性,比如数据类型和存储类,和控制变量控制的外观和位置变量生成的代码。

  • 您可以定义一个变量控制变量的类型金宝appSimulink.Parameter只有在基本工作空间或在数据字典。定义金宝appSimulink.Parameter面具或模型中的控制变量类型的变体工作区不支持。金宝app为控制变量存储位置变量的更多信息,见存储位置变异控制变量(操作数)的变体

  • 金宝appSimulink.Parameter以外的对象的内部结构和数据类型金宝appSimulink.Bus不支持对象。金宝app

打开slexVariantParameters模型。

open_system (“slexVariantParameters”)

在MATLAB编辑器中,定义一个金宝appSimulink.Parameter对象。

VSS_MODE = 金宝appSimulink.Parameter;VSS_MODE。价值= 1; VSS_MODE.DataType =“int32”;VSS_MODE.CoderInfo。StorageClass =“自定义”;VSS_MODE.CoderInfo。CustomStorageClass =“定义”;VSS_MODE.CoderInfo.CustomAttributes。HeaderFile =“demo_macros.h”;

变量定义为控制变量金宝appSimulink.Parameter列出的对象可以有任何存储类存储类激活时间为不同的变体(嵌入式编码)

你也可以一个标量变量控制变量转换成一个金宝appSimulink.Parameter对象。有关更多信息,请参见不同控制变量转换成仿真软件。金宝app参数对象

指定对象作为版本控制金宝appSimulink.VariantVariable对象K1K2

K1 = 金宝appSimulink.VariantVariable (“选择”,{“V = = 1”,3.5,“V = = 2”,8.5})
K1 = VariantVariable 2选择:条件价值_____ _____ V = = 1 3.5000 V = = 2 8.5000规范:“使用getChoice、setChoice addChoice, removeChoice访问,修改、添加或删除选项
K2 = 金宝appSimulink.VariantVariable (“选择”,{“V = = 1”,4.5,“V = = 2”,9.5})
K2 = VariantVariable 2选择:条件价值_____ _____ V = = 1 4.5000 V = = 2 9.5000规范:“使用getChoice、setChoice addChoice, removeChoice访问,修改、添加或删除选项

一旦你成功地创建金宝appSimulink.VariantVariable对象,可以用描述的方法修改它们公共方法或从VariantVariable对话框。

激活一个变量值通过定义一个控制变量V并将它的值设置为VSS_MODE在一个金宝appSimulink.VariantControl对象。

V = 金宝appSimulink.VariantControl (“价值”VSS_MODE,“ActivationTime”,代码编译的)
V = VariantControl属性:价值:[1 x1仿真软件。金宝app参数]ActivationTime:代码编译的

当你模拟模型,条件V = = 1计算结果为真正的K1分配一个值的3.5,K2分配一个值的8.5

sim卡(“slexVariantParameters”)

如果你改变的价值VSS_MODE2,仿金宝app真软件®设置的值K1K24.59.5在模拟。你可以改变的价值V使用这个命令或金宝appSimulink.VariantControl对话框。

VSS_MODE。价值= 2; V.Value = VSS_MODE; sim (“slexVariantParameters”)

从模型中生成代码。关于如何生成代码的信息,请参阅使用嵌入式编码器生成代码(嵌入式编码)

生成的代码包含两种线性非线性选择预处理条件#如果# elif因为代码编译激活时间。变异的控制变量V使用宏定义-#定义指令-在头文件demo_macros.h。你可以控制的外观和位置V在生成的代码中,防止优化消除存储V使用存储类属性。有关更多信息,请参见存储类激活时间为不同的变体(嵌入式编码)

% demo_macros.h% / *导出的数据定义* /%% / *定义自定义存储类:定义* /% # define V 2 / *引用:% * < Root > /获得的% * < Root > / Gain1”% * /% # endif / * RTW_HEADER_demo_macros_h_ * /%% / *

识别模型需要的变量值之后,您可以构建复杂的变异条件控制激活你的变异参数值通过定义变量条件金宝appSimulink.Variant对象。金宝appSimulink.Variant对象允许您跨模型和重用常见变异条件帮助你封装复杂的变异条件表达式。

  • 您可以定义一个变量控制变量的类型金宝appSimulink.Variant只有在基本工作空间或在数据字典。定义金宝appSimulink.Variant面具或模型中的控制变量类型的变体工作区不支持。金宝app为控制变量存储位置变量的更多信息,见存储位置变异控制变量(操作数)的变体

  • 金宝appSimulink.Variant在不支持结构。金宝app

打开slexVariantParameters模型。

open_system (“slexVariantParameters”)

在MATLAB®编辑器中,封装变异控制表达式金宝appSimulink.Variant对象。

LinearController 金宝app= Simulink.Variant (“V = = 1”);NonLinearController 金宝app= Simulink.Variant (“V = = 2”);

指定金宝appSimulink.Variant控制在一个对象的变体金宝appSimulink.VariantVariable对象K1K2

K1 = 金宝appSimulink.VariantVariable (“选择”,{“LinearController”,3.5,“NonLinearController”,8.5})
K1 = VariantVariable 2选择:___________________ _____ LinearController条件值3.5000 NonLinearController 8.5000规范:“使用getChoice、setChoice addChoice, removeChoice访问,修改、添加或删除选项
K2 = 金宝appSimulink.VariantVariable (“选择”,{“LinearController”,4.5,“NonLinearController”,9.5})
K2 = VariantVariable 2选择:___________________ _____ LinearController条件值4.5000 NonLinearController 9.5000规范:“使用getChoice、setChoice addChoice, removeChoice访问,修改、添加或删除选项

一旦你成功地创建金宝appSimulink.VariantVariable对象,可以用描述的方法修改它们公共方法或从VariantVariable对话框。

通过定义一个激活其中一个变量值金宝appSimulink.VariantControl对象V并将它的值设置为1

V = 金宝appSimulink.VariantControl (“价值”,1“ActivationTime”,“更新图”)
V = VariantControl属性:值:1 ActivationTime:“更新图”

当你模拟模型,条件V = = 1计算结果为真正的K1分配一个值的3.5,K2分配一个值的8.5

sim卡(“slexVariantParameters”)

如果你改变的价值V2,仿金宝app真软件®设置的值K1K24.59.5在模拟。你可以改变的价值V使用这个命令或金宝appSimulink.VariantControl对话框。

V。Value = 2; sim (“slexVariantParameters”)

使用这种方法,您可以开发复杂的变异条件表达式是可重用的。

扩展功能

版本历史

介绍了R2021a