主要内容

万博1manbetx仿真软件。VariantControl类

包:万博1manbetx

创建一个变量控制变量对象

描述

万博1manbetx仿真软件。VariantControl类创建一个变量控制变量对象,以将变量控制变量的值与变量激活时间关联起来。使用万博1manbetx仿真软件。VariantControl对象,以确定在仿真过程中可变参数的主动值。

创建

variantControlVariable=仿万博1manbetx真软件。VariantControl创建一个没有值和的变量控制变量对象“ActivationTime”设置为“更新图表”

variantControlVariable=仿万博1manbetx真软件。VariantControl (名称,值创建指定的变量控制变量对象名称,值对参数。使用此语法,可以创建一个对象,并将其值与变量激活时间关联起来。

输入参数

全部展开

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'Value', 1, 'ActivationTime', 'update diagram'

变量控制变量对象的值,指定为标量变量、枚举类型或万博1manbetx仿真软件。参数对象。

请注意

为变量控制变量对象启动不支持指定枚举类型的值。万博1manbetx

例子:“价值”1

万博1manbetx®可在仿真和代码生成工作流的不同阶段设置可变参数的活动值。基于您使用此属性指定的阶段,Simulink确定生成的代码是否必须只包含活动值或同时包含活动值和非活动值万博1manbetx变量参数。属性还决定是否分析信号属性中不兼容的变量参数的所有值。为在仿真和代码生成工作流的不同阶段激活变量

当你指定变量激活时间为:

  • “更新图表”Sim万博1manbetxulink不分析信号属性不兼容的变量参数值。它仅为变量参数的活动值生成代码。

  • “更新图表分析所有选择”Sim万博1manbetxulink分析信号属性中的不兼容变量参数的活动值和非活动值,然而它只生成变量参数的活动值的代码。

  • 代码编译的Sim万博1manbetxulink分析信号属性中的不兼容变量参数的活动和非活动值,它也为变量参数的活动和非活动值生成代码。这些值被封装在C预处理器条件语句中#如果# endif在编译生成的代码时进行有条件编译。

  • “启动”–S万博1manbetximulink分析变量参数的活动值和非活动值,以确定信号属性中的不兼容性,并为变量参数的活动值和非活动值生成代码。这些值包含在正则表达式中如果内部条件model_initialize函数,该函数在运行由该代码构建的可执行文件时有条件地计算。

例子:“ActivationTime”、“代码编译的

方法

全部展开

例子

全部折叠

标量MATLAB®变量允许您快速原型变量值时,您仍在构建您的模型。它们帮助你更专注于建立你的不同价值观,而不是开发激活那些选择的表达方式。

中列出的位置中可以定义标量控制变量变量条件表达式中的变量控制变量(操作数)的存储位置

在MATLAB编辑器中,将变量选择的最简单形式指定为标量变量万博1manbetx模拟变量对象。

vpObj =仿万博1manbetx真软件。VariantVariable (“选择”, {“VCtrl = = 1”, 1000,'VCtrl==2'2000})
vpObj = VariantVariable with 2 choices: Condition Value __________ _____ VCtrl == 1 1000 VCtrl == 2 2000规格:使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项

通过定义一个控制变量来激活其中一个变量值,VCtrl,并将其值设置为1在一个万博1manbetx仿真软件。VariantControl对象。此条件激活该值1000并把这个值赋给vpObj

VCtrl =仿万博1manbetx真软件。VariantControl (“价值”, 1“ActivationTime”“更新图表”
VCtrl = VariantControl with properties: Value: 1 ActivationTime: 'update diagram'

如果你改变VCtrl2, 万博1manbetxSimulink®设置的值vpObj2000

VCtrl.值=2;

使用枚举类型为用作变量控制值的整数提供有意义的名称。

可以在存储位置中定义枚举类型的变量控制变量,如变量条件表达式中的变量控制变量(操作数)的存储位置

在MATLAB®Editor中,定义将枚举值映射到有意义名称的类。

在这里,EngType是从内置数据类型派生的基于整数的枚举类,int32.该类有两个枚举值,.这些枚举值具有基础整数值12

类型EngType.m
classdef EngType
                   

将名称指定为变量选项万博1manbetx模拟变量对象。

vpObj =仿万博1manbetx真软件。VariantVariable (“选择”, {' VCtrl = = EngType。小的, 3.5,' VCtrl = = EngType。大的, 8.5})
vpObj=VariantVariable,有2个选项:条件值\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

通过定义控制变量来激活其中一个变量值VCtrl并将其值设置为EngType。小在一个万博1manbetx仿真软件。VariantControl对象。此条件激活该值3.5并把这个值赋给vpObj

注意:对于变量控制变量对象启动的不支持指定枚举类型的值。万博1manbetx

VCtrl =仿万博1manbetx真软件。VariantControl (“价值”, EngType。小,“ActivationTime”代码编译的
VCtrl = VariantControl with properties:值:Small ActivationTime: 'code compile'

使用枚举类型简化了生成的代码,因为它包含值的名称而不是整数。

如果您想为包含变量参数值的模型生成代码,请指定变量控制变量为MATLAB®变量或万博1manbetx仿真软件。参数对象。万博1manbetx仿真软件。参数对象允许您指定生成代码所需的其他属性(如数据类型)。

请注意

  • 您可以定义类型为的变量控制变量万博1manbetx仿真软件。参数仅在基本工作空间或数据字典中。定义万博1manbetx仿真软件。参数不支持掩码或模型工作区中的变体控制变量类型。万博1manbetx有关变体控制变量的存储位置的更多信息,请参见变量条件表达式中的变量控制变量(操作数)的存储位置

  • 万博1manbetx仿真软件。参数结构中的对象,并且具有除万博1manbetx仿真软件。公共汽车对象不受支持。万博1manbetx

在MATLAB编辑器中,定义万博1manbetx仿真软件。参数对象。

VSSMODE = 万博1manbetxSimulink.Parameter;VSSMODE。价值= 1; VSSMODE.DataType =“int32”;VSSMODE.CoderInfo.StorageClass =“自定义”;VSSMODE.CoderInfo.CustomStorageClass =“导入定义”;VSSMODE.CoderInfo.CustomAttributes.HeaderFile =“rtwdemo_importedmacros.h”

变量控制变量定义为万博1manbetx仿真软件。参数对象可以有以下其中一个存储类:

  • 定义或ImportedDefine指定了头文件

  • CompilerFlag

  • SystemConstant(AUTOSAR)

  • 将数据定义为宏的自己的存储类

还可以将标量变量控制变量转换为万博1manbetx仿真软件。参数对象。有关更多信息,请参见在Simulink中转换变量控制变量。万博1manbetx参数对象

控件将对象指定为变体控件万博1manbetx模拟变量对象。

vpObj =仿万博1manbetx真软件。VariantVariable (“选择”, {“VCtrl = = 1”, 1000,《VCtrl = = 2》2000});

通过定义控制变量来激活其中一个变量值VCtrl并将其值设置为VSSMODE在一个万博1manbetx仿真软件。VariantControl对象。此条件激活该值1000并把这个值赋给vpObj

VCtrl =仿万博1manbetx真软件。VariantControl (“价值”VSSMODE,“ActivationTime”代码编译的
VCtrl = VariantControl with properties: Value: [1x1万博1manbetxActivationTime: 'code compile'
介绍了R2021a