主要内容

块变异控制模式变体

一个模型的组件金宝app®模型包含变异激活或不激活基于变体的选择,你选择。

模型中的每个变体的选择有关版本控制。变异控制确定哪些变量选择是活跃。通过改变变量的值控制,可以切换活动变体的选择。虽然每个变体的选择与控制一个变体有关,只有一个版本控制可以评估真正的。当控制评估一个变体真正的,仿金宝app真软件激活的变体选择对应版本控制。一个简单的例子,请参阅介绍了版本控制

控制模式变体块类型的变体

这些都是类型的变体在仿真软件控制方式:金宝app

  • 表达式——在表达式模式,模型选金宝app择积极的变异基于变异条件的评估。当一个表达式计算条件真正的选择变得活跃,相应的变体。当一个表达式计算条件选择变得不活跃,相应的变体。看到块之间切换选择使用条件表达式的变体

  • 标签——在标签模式,模型选金宝app择积极的变异基于名称的变体。版本控制是一个字符串,并且不需要创建任何工作空间变量。看到选择在变体使用标签之间切换

  • sim codegen切换——自动切换变异模拟和代码生成工作流没有创建任何工作空间变量,使用sim codegen切换模式。当你模拟模型,模型自动选择金宝appsim卡分支的主动选择。同样的,当你做一个software-in-the-loop (SIL)或processor-In-Loop(公益诉讼)模拟,生成代码,或使用外部模式,模型自动选择金宝appcodegen分支。这种模式不支持模型配置一个ERT-金宝appbased系统目标文件和服务代码接口。看到仿真和代码生成工作流之间切换选择不使用控制变量变异块

类型的变量控制模式的例子。在表达模式中,变异控制可以是一个布尔条件表达式,仿真软件。金宝app不同对象,或选择一个默认的变体。在标签模式中,变异控制是一个字符串,在sim codegen切换模式,变异控制(sim)和(codegen)关键字。

块之间切换选择使用条件表达式的变体

表达式模式,模型选金宝app择积极的变异基于变异条件的评估。当一个表达式计算条件真正的选择变得活跃,相应的变体。当一个表达式计算条件选择变得不活跃,相应的变体。

您可以使用表达式控制类型的变体在变体块和变异参数。

请注意

你可以从模型模拟和生成代码包含一个变体块变量控制方式设置为表达式模式。生成的代码可以包含活跃的和不活跃的封装在预处理条件的选择#如果# elif,或定期如果条件。

使用表达式变异类型的变体控制块

指定块变体的变异条件表达式:

  • 右键单击变体块徽章,选择块的参数,然后指定的变异条件表达式变异控制表达式参数块的参数对话框。

    变量控制方式:表达式

  • 使用此命令。

    set_param ('模型/控制器/线性控制器”、“VariantControl”、“VSS_MODE= = 1”)
    在这个命令,模型/控制器/线性控制器是变异的完整路径的选择,然后呢VSS_MODE = = 1是表达与变体相关的选择。

控制类型的变体表达式模式

版本控制可以:

  • 布尔为快速成型条件表达式。例如,= = 1,~ = B,& & B = = 1,等等。

  • 一个金宝appSimulink.Variant对象,该对象包含条件表达式条件重用。看到金宝appSimulink.VariantObjects for Variant Condition Reuse of Variant Blocks

  • 一个默认的变量控制评估,如果没有一个选择真正的。最多可以指定一个变体选择的默认值。在仿真中,如果没有一个变异控制评估真正的仿真金宝app软件使用默认的变体作为活跃变体的选择。设置一个变量作为默认选择,选择(默认)关键字的变异控制表达式列的选择。

在这里,一个B是操作数称为不同的控制变量+,= =,& &运营商在条件表达式。条件表达式可以包含一个或多个这样的变异控制变量和运营商。支持的类型和信息存储位置的变异控制变量金宝app,看看控制变量类型的变体(操作数)的变体存储位置变异控制变量(操作数)的变体。运营商的信息,请参阅类型的运营商不同活化时间的变体块

请注意

你可以控制通过注释掉的变体%象征在控制表达式。在仿真中,如果相应的变体的选择是主动的,模型忽略了变量选择。金宝app然而,仿真软件继续金宝app执行块回调函数内部变量的选择。

控制变量类型的变体(操作数)的变体

表达式模式中,您可以指定这些类型的变体一样控制变量,从原型时使用选项选择从模型生成代码所必需的。

规范 目的 例子
金宝appSimulink.VariantControl 关联变异前后一致地激活时间开关选择 = = 1,在那里一个是一个金宝appSimulink.VariantControl对象。看到金宝appSimulink.VariantControlVariables for Coherent Switching of Choices in Variant Blocks
标量变量 快速原型

= = 1,在那里一个是一个标量变量。看到标量变量控制变量快速原型的变体

金宝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

请注意

一个变体装配子系统块不支持金宝app金宝appSimulink.Variant控制变量类型的变体。

结构体 控制变量组相关的变体 控制器。线性= = 1,在那里控制器是一个结构体线性是它的领域。看到结构组相关变量控制变量的变异

的所有实例的列表,请参阅使用变量控制变量变异块

存储位置变异控制变量(操作数)的变体

您可以定义变量控制变量根据您的需求在不同的存储位置。

请注意

变体块中的所有变量控制变量必须源自相同的存储位置。

存储位置 用于存储位置 金宝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商:

    • 括号进行分组

    • 关系运算符逻辑运算符,如表中列出。

      此表列出了MATLAB运营商和他们的代表在生成的代码中。在这些例子中,一个B是表达式,表达式的计算结果为整数。

      金宝app支持运营商变异条件表达式 等效的表达式在常规如果生成的代码
      关系

      A = =

      A = =

      ~ = B

      一个= B !
      逻辑
      ~一个 !,在那里一个不是整数
      & & B & & B
      一个| | B 一个| | B

请注意

在街区变体启动激活时间:

  • 变异的控制变量,源自面具或模型工作区不能用于函数调用操作符等idivide,bitand等等形式表达式。

  • AUTOSAR post-build变异仅支持金宝app= =& &操作符。有关更多信息,请参见AUTOSAR软件组件配置Postbuild变异条件(AUTOSAR Blockset)

在不同变体激活时间评估变异条件表达式

表达式模式中,您可以指定如果在模型仿真软件必须评估条件表金宝app达式编译、simulation-loop、代码编译,或启动阶段的仿真模型和代码生成工作流使用变体激活时间。信息的模拟和代码生成阶段激活时间和支持的变体金宝app表达式模式中,看到激活变体在不同阶段的模拟和代码生成工作流

自动识别不同地区使用变异传播条件

金宝app活跃在仿真模型确定模型组件的过程变异条件下传播。这个过程评估变体上指定的变量控制块和自动传播的变异条件连接块。变异条件可以通过信号线路传播,巴士和函数调用到其他块模型。失活过程与活动相关联的模型组件的选择,他们不参与模拟。你可以停止条件传播模型中定义区域变体。

您可以使用条件传奇传播形象化变异条件变体,激活每个变体的选择。金宝app动态仿真模块注释模型组件如果有条件变体,和变异条件传说显示条件,对应于每个注释。

有关更多信息,请参见变异条件下传播概述

选择在变体使用标签之间切换

标签模式,模型选金宝app择积极的变异基于名称的变体。版本控制是a字符串并且不需要你创建变量在任何工作区。

请注意

标签模式,激活时间设置为变量的块更新图默认情况下。换句话说,当你或从模型生成代码模拟模型,模型确定活动的模型中选择编译阶段和生成代码只有积极的选择。金宝app看到激活变体在不同阶段的模拟和代码生成工作流

使用标签模式变体块

指定标签变体选择的块,右键单击变体块徽章,选择块的参数,然后指定的标签变异控制标签参数块的参数对话框。

变量控制方式:标签

设置主动选择使用变异控制标签

你可以按照这些方法积极的选择标签模式:

  • 指定一个名称为每个变体的选择变异控制标签变体块的参数对话框。列出了所有您所指定的名称标签模式积极的选择下拉。从列表中选择的标签成为活动的选择。

  • 右键单击变体块上的徽章和选择标签模式积极的选择

  • 从面具工作区使用初始化代码。使用面具初始化代码,您可以指定活动选择变体块或任何子系统的层次结构。面具的主动选择你指定初始化代码覆盖您指定使用的积极选择标签模式积极的选择下拉或标签模式积极的选择菜单项。有关更多信息,请参见面具一个变种子系统

  • 使用这个命令:

    set_param (blockName,“LabelModeActiveChoice”、“variantChoiceLabel”)
    在哪里blockName的名字是块和变体variantChoiceLabel是标签与变体相关的选择。

仿真和代码生成工作流之间切换选择不使用控制变量变异块

自动切换选择模拟和代码生成工作流没有创建任何工作空间变量,使用sim codegen切换变量控制方式。

请注意

sim codegen切换模式,只有更新图更新图分析所有的选择激活时间支持。金宝app换句话说,当你模拟或生成代码从一个模型,模型确定活动的模型中选择编译阶段和生成的代码只选择。金宝app看到的,激活变体在不同阶段的模拟和代码生成工作流

使用sim codegen切换模式变体块

为变量指定模拟和代码生成分支选择,右键单击变体块徽章,选择块的参数,然后指定(sim)(codegen)关键字的变异控制开关参数块的参数对话框。

模拟模型在正常时,加速器,或快速加速器模式,模型自动选择金宝app(sim)分支的主动选择。同样的,当你做一个software-in-the-loop(银),processor-In-Loop(公益诉讼)模拟或生成代码或使用外部模式,模型自动选择金宝app(codegen)分支。生成的代码只有在积极的选择。不活跃的选择是不包括在生成的代码中。在这种模式下,你可以在变种最多只有两个选择。

变量控制方式:sim codegen切换

比较不同类型的变体块控制模式变体

这个表解释不同的变体控制模式的功能来帮助你选择一个满足您的需求。

变量控制方式 功能

表达式——金宝app模型选择积极的变异根据评估条件的变体。当一个表达式计算条件真正的选择变得活跃,相应的变体。当一个表达式计算条件选择变得不活跃,相应的变体。

使用表达式模式:

标签——金宝app模型选择积极的变异基于名称的变体。版本控制是一个字符串,不需要您创建变量在任何工作区。

使用标签模式:

  • 控制活动不创建任何工作空间变量的选择。

  • 只有活动选择的模型生成代码。

sim codegen切换——当你模拟模型在正常,加速器,或快速加速器模式,那么模型自动选择金宝appsim卡分支的主动选择。同样的,当你做一个software-in-the-loop(银),processor-In-Loop(公益诉讼)模拟或生成代码或使用外部模式,模型自动选择金宝appcodegen分支。

使用sim codegen切换切换模式:

  • 自动切换选择模拟和代码生成工作流没有创建任何工作空间变量。

  • 只有活动选择的模型生成代码。

变体激活时间控制模式变体块不同的变体

这个表解释了变体激活时间控制模式变体块支持不同的变体。金宝app变体信息激活时间,看到激活变体在不同阶段的模拟和代码生成工作流

变体激活时间
变体块 变量控制方式 更新图 更新图分析所有的选择 代码编译 启动
不同的子系统,变体模型,变异来源,变体水槽 表达式
标签 x x x
sim codegen切换 x x
不同的连接器(Simscape),手动变异来源,手动变体水槽 表达式 x x x
标签 不支持金宝app
sim codegen切换 不支持金宝app
金宝app仿真软件的功能,初始化函数,重置功能,终止函数 表达式 x
标签 不支持金宝app
sim codegen切换 不支持金宝app

相关的例子

更多关于