块变异控制模式变体
一个模型的组件金宝app®模型包含变异激活或不激活基于变体的选择,你选择。
模型中的每个变体的选择有关版本控制。变异控制确定哪些变量选择是活跃。通过改变变量的值控制,可以切换活动变体的选择。虽然每个变体的选择与控制一个变体有关,只有一个版本控制可以评估真正的
。当控制评估一个变体真正的
,仿金宝app真软件激活的变体选择对应版本控制。一个简单的例子,请参阅介绍了版本控制。
控制模式变体块类型的变体
这些都是类型的变体在仿真软件控制方式:金宝app
表达式
——在表达式
模式,模型选金宝app择积极的变异基于变异条件的评估。当一个表达式计算条件真正的
选择变得活跃,相应的变体。当一个表达式计算条件假
选择变得不活跃,相应的变体。看到块之间切换选择使用条件表达式的变体。标签
——在标签
模式,模型选金宝app择积极的变异基于名称的变体。版本控制是一个字符串,并且不需要创建任何工作空间变量。看到选择在变体使用标签之间切换。sim codegen切换
——自动切换变异模拟和代码生成工作流没有创建任何工作空间变量,使用sim codegen切换
模式。当你模拟模型,模型自动选择金宝appsim卡
分支的主动选择。同样的,当你做一个software-in-the-loop (SIL)或processor-In-Loop(公益诉讼)模拟,生成代码,或使用外部模式,模型自动选择金宝appcodegen
分支。看到仿真和代码生成工作流之间切换选择不使用控制变量变异块。
块之间切换选择使用条件表达式的变体
在表达式
模式,模型选金宝app择积极的变异基于变异条件的评估。当一个表达式计算条件真正的
选择变得活跃,相应的变体。当一个表达式计算条件假
选择变得不活跃,相应的变体。
您可以使用表达式
控制类型的变体在变体块和变异参数。
请注意
你可以从模型模拟和生成代码包含一个变体块变量控制方式设置为表达式
模式。生成的代码可以包含活跃的和不活跃的封装在预处理条件的选择#如果
和# elif
,或定期如果
条件。
使用表达式
变异类型的变体控制块
指定块变体的变异条件表达式:
右键单击变体块徽章,选择块的参数,然后指定的变异条件表达式变异控制表达式参数块的参数对话框。
使用此命令。
set_param ('模型/控制器/线性控制器”、“VariantControl”、“VSS_MODE= = 1”)
控制类型的变体表达式
模式
版本控制可以:
布尔为快速成型条件表达式。例如,
= = 1
,~ = B
,& & B = = 1
,等等。一个
金宝appSimulink.Variant
对象,该对象包含一个条件表达式条件重用。看到金宝appSimulink.VariantObjects for Variant Condition Reuse of Variant Blocks。选择默认的变体如果没有选择评估
真正的
。
在这里,一个
和B
是操作数称为不同的控制变量。+
,= =
,& &
运营商在条件表达式。条件表达式可以包含一个或多个这样的变异控制变量和运营商。支持的类型和信息存储位置的变异控制变量金宝app,看看控制变量类型的变体(操作数)的变体和存储位置变异控制变量(操作数)的变体。运营商的信息,请参阅类型的运营商不同活化时间的变体块。
控制变量类型的变体(操作数)的变体
在表达式
模式中,您可以指定这些类型的变体一样控制变量,从原型时使用选项选择从模型生成代码所必需的。
规范 | 目的 | 例子 |
---|---|---|
标量变量 | 快速原型 |
|
金宝appSimulink.Parameter 对象 |
为代码生成生成预处理条件 | Vssmode = = 1 ,在那里Vssmode 是一个金宝appSimulink.Parameter 对象。看到金宝appSimulink.ParameterType of Variant Control Variables for Code Generation in Variant Blocks。 |
金宝app仿真软件枚举 | 提高代码的可读性,因为条件值表示为有意义的名字,而不是整数 | 水平= = Level.Advanced ,在那里水平 是一个基于整数枚举类和先进的 枚举值。看到枚举类型来改善代码的可读性变异控制变量的变异。 |
金宝appSimulink.Variant 对象 |
重用条件变体 | LinearController = = 1 ,在那里LinearController 是一个金宝appSimulink.Variant 对象,该对象封装了条件表达式燃料= = 2 & &工作= = 1 。看到金宝appSimulink.VariantObjects for Variant Condition Reuse of Variant Blocks。 |
金宝appSimulink.VariantControl |
关联变异激活时间 | = = 1 ,在那里一个 是一个金宝appSimulink.VariantControl 对象。看到块将激活时间与控制变量的变体。 |
的所有实例的列表,请参阅使用变量控制变量变异块。
存储位置变异控制变量(操作数)的变体
您可以定义变量控制变量根据您的需求在不同的存储位置。
请注意
变体块中的所有变量控制变量必须源自相同的存储位置。
存储位置 | 用于存储位置 | 金宝app控制变量(见支持类型的变体控制变量类型的变体(操作数)的变体) | 的更多信息 |
---|---|---|---|
基本工作空间 | 时存储变量与临时模型实验 | 标量变量,金宝appSimulink.Variant ,金宝appSimulink.Parameter 枚举类型,金宝appSimulink.VariantControl |
临时数据:基本工作空间 |
面具的工作区 | 永久存储数据的局部块的面具。 | 标量变量、枚举类型金宝appSimulink.VariantControl |
方法控制活跃变体选择的一个变体块工作区使用面具或模型 |
模型的工作空间 | 永久存储数据是本地的一个模型 | 标量变量、枚举类型金宝appSimulink.VariantControl |
方法控制活跃变体选择的一个变体块工作区使用面具或模型 |
数据字典 | 永久存储全局数据模型之间的数据共享,并跟踪数据所做的更改。 | 标量变量,金宝appSimulink.Variant ,金宝appSimulink.Parameter 枚举类型,金宝appSimulink.VariantControl |
什么是数据字典? |
为每个存储位置的功能和优势,明白了确定在哪里存储变量和对象模型模型金宝app
类型的运营商不同活化时间的变体块
变异条件表达式可以包含MATLAB®运营商提供的表达式的求值结果为一个布尔值。
变体街区,运营商,您可以使用它们来形成一个变体取决于条件表达式变体激活时间。
当你指定变体激活时间为:
更新图
——评估任何条件表达式真正的
或假
。更新图分析所有的选择
或代码编译
-支持的运营金宝app商:括号进行分组
算术运算符,关系运算符,逻辑运算符,位操作操作,如表中列出。
此表列出了MATLAB运营商和他们的代表在生成的代码中。在这些例子中,
一个
和B
表达式,表达式的计算结果为整数,x
是一个常数整数文字。MATLAB支持代预处理条件的表达式金宝app 生成的代码的等价表达式C预处理器条件 算术 A + B
+一个
A + B
一个
A - B
——一个
A - B
——一个
A * B
A * B
idivide (A, B)
A / B
如果第二个操作数的值(
B
)是0
行为是未定义的。快速眼动(A, B)
% B
如果第二个操作数的值(
B
)是0
行为是未定义的。关系 A = =
A = =
~ = B
一个= B !
< B
< B
A >
A >
< = B
< = B
A > =
A > =
逻辑 ~一个
!
,在那里一个
不是整数& & B
& & B
一个| | B
一个| | B
位( 一个
和B
不能一直都是整数文字)bitand (A, B)
A和B
bitor (A, B)
A |
bitxor (A, B)
A ^
bitcmp (A)
~一个
bitshift (A, x)
< < x
bitshift (- x)
> > x
启动
-支持的运营金宝app商:
请注意
在街区变体启动
激活时间:
变异的控制变量,源自面具或模型工作区不能用于函数调用操作符等
idivide
,bitand
等等形式表达式。AUTOSAR post-build变异仅支持金宝app
= =
和& &
操作符。有关更多信息,请参见AUTOSAR软件组件配置Postbuild变异条件(AUTOSAR Blockset)。
在不同变体激活时间评估变异条件表达式
在表达式
模式中,您可以指定如果在模型仿真软件必须评估条件表金宝app达式编译、simulation-loop、代码编译,或启动阶段的仿真模型和代码生成工作流使用变体激活时间。信息的模拟和代码生成阶段激活时间和支持的变体金宝app表达式
模式中,看到激活变体在不同阶段的模拟和代码生成工作流。
自动识别不同地区使用变异传播条件
金宝app活跃在仿真模型确定模型组件的过程变异条件下传播。这个过程评估变体上指定的变量控制块和自动传播的变异条件连接块。变异条件可以通过信号线路传播,巴士和函数调用到其他块模型。失活过程与活动相关联的模型组件的选择,他们不参与模拟。你可以停止条件传播模型中定义区域变体。
您可以使用条件传奇传播形象化变异条件变体,激活每个变体的选择。金宝app动态仿真模块注释模型组件如果有条件变体,和变异条件传说显示条件,对应于每个注释。
有关更多信息,请参见变异条件下传播概述。
选择在变体使用标签之间切换
在标签
模式,模型选金宝app择积极的变异基于名称的变体。版本控制是a字符串
并且不需要你创建变量在任何工作区。
请注意
在标签
模式,激活时间设置为变量的块更新图
默认情况下。换句话说,当你或从模型生成代码模拟模型,模型确定活动的模型中选择编译阶段和生成代码只有积极的选择。金宝app看到激活变体在不同阶段的模拟和代码生成工作流。
使用标签
模式变体块
指定标签变体选择的块,右键单击变体块徽章,选择块的参数,然后指定的标签变异控制标签参数块的参数对话框。
设置主动选择使用变异控制标签
你可以按照这些方法积极的选择标签
模式:
指定一个名称为每个变体的选择变异控制标签变体块的参数对话框。列出了所有您所指定的名称标签模式积极的选择下拉。从列表中选择的标签成为活动的选择。
右键单击变体块上的徽章和选择标签模式积极的选择。
从面具工作区使用初始化代码。使用面具初始化代码,您可以指定活动选择变体块或任何子系统的层次结构。面具的主动选择你指定初始化代码覆盖您指定使用的积极选择标签模式积极的选择下拉或标签模式积极的选择菜单项。有关更多信息,请参见面具一个变种子系统。
使用这个命令:
set_param (blockName,“LabelModeActiveChoice”、“variantChoiceLabel”)
仿真和代码生成工作流之间切换选择不使用控制变量变异块
自动切换选择模拟和代码生成工作流没有创建任何工作空间变量,使用sim codegen切换
变量控制方式。
请注意
在sim codegen切换
模式,只有更新图
和更新图分析所有的选择
激活时间支持。金宝app换句话说,当你模拟或生成代码从一个模型,模型确定活动的模型中选择编译阶段和生成的代码只选择。金宝app看到的,激活变体在不同阶段的模拟和代码生成工作流。
使用sim codegen切换
模式变体块
为变量指定模拟和代码生成分支选择,右键单击变体块徽章,选择块的参数,然后指定(sim)
和(codegen)
关键字的变异控制开关参数块的参数对话框。
模拟模型在正常时,加速器,或快速加速器模式,模型自动选择金宝app(sim)
分支的主动选择。同样的,当你做一个software-in-the-loop(银),processor-In-Loop(公益诉讼)模拟或生成代码或使用外部模式,模型自动选择金宝app(codegen)
分支。生成的代码只有在积极的选择。不活跃的选择是不包括在生成的代码中。在这种模式下,你可以在变种最多只有两个选择。
比较不同类型的变体块控制模式变体
这个表解释不同的变体控制模式的功能来帮助你选择一个满足您的需求。
变量控制方式 | 功能 |
---|---|
|
使用
|
|
使用
|
|
使用
|
变体激活时间控制模式变体块不同的变体
这个表解释了变体激活时间控制模式变体块支持不同的变体。金宝app变体信息激活时间,看到激活变体在不同阶段的模拟和代码生成工作流。