主要内容

激活变体在不同阶段的模拟和代码生成工作流

使用变体激活时间,仿真软件金宝app®集在变体块主动选择和变异参数在不同阶段的模拟和代码生成工作流。

主动选择设置:

  • 在编译阶段的模型,或simulation-loop阶段仿真的工作流。

  • 在模型编译阶段,代码编译阶段,或者启动阶段的代码生成工作流模型。

看到阶段设置在变体块主动选择和变异参数

设置活动的选择,模型评估在工作区中您指定的变量控制浏金宝app览器,在命令行中,或者回调,等InitFcn,PreLoadFcn,PostLoadFcn。在回调函数的更多信息,见模型的回调

设置活动选择在中间阶段提高了仿真的速度和代码生成工作流,可以重用工件从之前的运行。它还使您能够分析变异选择不兼容,比如数据类型和尺寸不匹配,前仿真和代码生成。

例如,生成的代码代码编译激活时间包含所有的选择。代码编译前,您可以指定变量的值控制变量。基于不同控制变量的值,仿真软件集主动选择和有条件地编译代码只有在积极的选择。金宝app您可以重用相同的代码每次你改变变异控制变量的值。条件编译的代码为给定的主动选择。

同样,你的代码生成启动激活时间还包含所有的选项。运行的可执行代码之前,您可以指定活动选择通过改变变量的值控制变量。您可以重用相同的可执行每次你改变变异控制变量的值。可执行条件运行给定的主动选择。此外,启动激活时间允许您跳过重新编译,直接开始模拟模型。重新编译所需的模型不准确的结果。

请注意

只能激活一个选择任何阶段的模拟和代码生成工作流。

评估每个激活时间的变异控制不同的模拟和代码生成阶段

阶段设置在变体块主动选择和变异参数

这些表描述的阶段模型集变体块的主动选择和变异参数在仿真和代码生成工作流。金宝app

阶段的模拟工作流程 描述 变体激活时间
模型编译 这是第一阶段的仿真流程。在这个阶段中,块参数表达式和回调函数模型的评估,信号属性,样品时间属性,并阻止执行顺序决定,块优化来提高仿真速度。
simulation-loop 仿真软件金宝app先后计算系统的状态和输出间隔从仿真开始时间到结束时间。 启动

在仿真工作流程阶段的更多信息,见在动态系统仿真阶段

代码生成阶段的工作流程 描述 变体激活时间
模型编译 这是第一阶段的仿真流程。在这个阶段中,块参数表达式和回调函数模型的评估,信号属性,样品时间属性,并阻止执行顺序决定,块优化来提高仿真速度。
代码编译 C代码翻译成机器代码。 代码编译
模式启动 中央处理单元执行模型的机器代码指令。 启动

块类型的变体激活时间变异和变异参数

金宝app仿真软件集变体块的主动选择和变异参数在不同阶段的模拟和代码生成工作流使用这些变体激活时间:

更新图

在仿真中,仿真软件集和保留模型的主动选金宝app择开始编译阶段前的信号属性传播到街区。不活跃的选择从模拟工作流中删除。信号属性然后传播积极的选择,所以只有主动选择参与后续阶段的模拟。分析了信号属性不是模型的一致性。

代码生成工作流仿真工作流程一样。因为只有积极的选择是保留和不活跃的模型中选择删除编译阶段,codegen阶段生成的代码只包含积极的选择。

如何使用信息更新图激活时间变体块和变异参数,看看变体激活时间ActivationTime

更新图分析所有的选择

在仿真中,仿真软件传播信号属性所有变体金宝app的选择。的信号属性的选择进行了分析,以检查是否每一块可以接受的信号连接到它的输入。金宝app仿真软件然后集和保留活动选择在模型编译阶段。不活跃的选择从仿真工作流程,所以只有积极选择参与后续阶段的模拟。

代码生成工作流仿真工作流程一样。因为只有积极的选择是保留和不活跃的模型中选择删除编译阶段,codegen阶段生成的代码只包含积极的选择。

如何使用信息更新图分析所有的选择激活时间变体块和变异参数,看看变体激活时间ActivationTime

代码编译

仿真工作流程是一样的更新图分析所有的选择

在代码生成,仿真软件传播信号属性所有变体的选择。金宝app信号的属性在所有的选择进行了分析,以检查是否每一块可以接受的信号连接到它的输入。所有的选项参与codegen阶段的工作流程。因此,生成的代码包含了所有的选项。在代码中,C预处理器的选择是封闭的条件#如果其他#

金宝app仿真软件设置主动选择只有当你编译代码来生成一个可执行的。换句话说,当你编译代码,编译器接受积极的选择作为输入。编译器编译预处理条件的主动选择和生成一个可执行的主动选择。这个选项不需要您重新生成代码下次你指定一个不同的主动选择。生成的代码只有一次,你可以指定一个不同的主动选择代码编译和构建可执行之前,主动选择。

请注意

代码编译:

  • 您必须安装金宝app仿真软件编码器™来生成代码只活跃的选择模型。

  • 您必须安装嵌入式编码器®为活跃的和不活跃的选择生成代码模型。

如何使用信息代码编译激活时间变体块和变异参数,看看变体激活时间编译代码有条件地对所有变量参数的值相同和不同的维度

启动

在仿真中,仿真软件传播信号属性所有变体金宝app的选择。信号的属性在所有的选择进行了分析,以检查是否每一块可以接受的信号连接到它的输入。金宝app仿真软件然后集和保持积极的选择和删除活动选择simulation-loop阶段。只有主动选择参与simulation-loop阶段。这个选项不需要你下次编译模型改变活动的选择。你只编译一次模型,您可以指定一个不同的积极选择simulation-loop前阶段和模拟模型。金宝app仿真软件先后计算模型的状态和输出的积极选择。

在代码生成,仿真软件传播信号属性的所有变量的选择金宝app。信号的属性在所有的选择进行了分析,以检查是否每一块可以接受的信号连接到它的输入。所有的选择参与codegen阶段工作流和因此,生成的代码包含了所有的选项。在代码中,常规的选择是封闭的如果条件。

金宝app仿真软件设置主动选择只有当你运行是建立从生成的可执行代码。换句话说,当您运行可执行,中央处理单元接受积极的选择作为输入。处理器执行如果条件主动选择和生成的输出只有主动选择。使用此选项的优点是,你不需要重新生成可执行下次你指定一个不同的主动选择。你只生成可执行一次。您可以指定一个不同的活动选择之前运行的可执行文件,然后生成输出活动的选择。

请注意

启动,您必须安装金宝app仿真软件编码器或者嵌入式编码器来生成代码的活跃的和不活跃的选择模型。

启动激活时间,您可以:

对信息的局限性启动激活时间,看到已知的限制启动变体激活的时间

说明不同的变体激活时间

这个图显示的阶段模型集的主动选择激活乘以不同的变体。金宝app

详细视图的活跃的和不活跃的选择变体块和变异参数在不同阶段的模拟和代码生成每个激活时间了

块变体激活时间变体

本节解释如何指定变量的激活时间,所支持的版本控制模式,和变异条件下传播块不同活化时间的变体。金宝app

块使用变体激活时间变体

这个例子说明了如何使用变量指定活动选择激活时间变体。

考虑这个模型。不同的子系统VSS1有两个潜在的变体,线性非线性。与相关的变异条件表达式线性V = = 1。与相关的变异条件表达式非线性V = = 2。的对话框VSS1,变体激活时间参数被指定为代码编译

当你从这个模型生成代码,生成的代码包含了所有变量的选择VSS1。在代码中,C预处理器的选择是封闭的条件语句#如果# elif。在你编译代码生成一个可执行文件,您可以指定一个值V作为一个编译器的输入。在编译的代码,编译器接受的价值V评估每个预处理条件语句。基于评估的条件真正的,编译器设置主动选择,然后生成可执行的积极选择。例如,如果您为编译器提供的输入1、可执行文件只包含线性变体的选择。

生成的可执行文件非线性变体的选择,改变编译器的输入值2和重新编译生成的代码。

如何设置不同的激活时间的一个例子变体

金宝app支持不同活化时间变体

本节列出了不同活化时间支持的每种类型的变体:金宝app

此表列出了不同活化时间块在不同控制模式下支持的变体。金宝app

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

请注意

操作符,您可以使用它们来形成一个变异条件表达式在变体块激活时间取决于其变体。看到类型的运营商不同活化时间的变体块

变异条件块传播不同活化时间的变体

变异条件允许您指定传播条件表达式外部变异块连接块来提高性能。传播条件变体外块时,不选择不要运行仿真过程中,可以提高性能,尤其是在大型模型。传播的变异条件变体外块激活时间的不同而变化。信息,请参阅传播变异条件变体以外的子系统

通过级联传播条件块在复合条件下结果。金宝app仿真软件不支持从变体块复合条件金宝app启动代码编译变体激活时间。有关更多信息,请参见注意事项和限制启动变体激活时间了

变体激活时间变异参数

本节解释如何指定变量的激活时间,和变异的支持版本控制模式参数。金宝app

使用变体激活时间变异参数

这个例子说明了如何使用变量指定活动选择激活时间变量参数。

考虑这个模型。的获得参数的获得块参数的值设置为一个变体K。的变量K有两个值:3.58.5。的变体激活时间K被指定为代码编译使用金宝appSimulink.VariantControl。这种设置意味着您可以指定代码编译开始前主动选择。

的一个例子在变异参数如何设置不同的激活时间

V = 金宝appSimulink.VariantControl (“价值”,1“ActivationTime”,代码编译的)K = S金宝appimulink.VariantVariable (“选择”,{“V = = 1”,3.5,“V = = 2”,8.5})

当你从这个模型生成代码,生成的代码包含两个活跃的和不活跃的选择K。在代码中,C预处理器的选择是封闭的条件语句#如果# elif。当你编译这个代码来生成一个可执行文件,编译器接受的价值V作为输入来评估每个预处理条件语句。基于评估的条件真正的,编译器设置主动选择,然后生成可执行的积极选择。例如,如果您为编译器提供的输入1,构建可执行K设置为3.5

生成一个可执行的K设置为8.5,改变编译器的输入值2并再次编译生成的代码。你不需要重新生成代码来生成一个可执行不同的变量值。

金宝app支持不同活化时间变异参数

此表列出了变体激活时间用于变量参数。

请注意

运营商,您可以使用它们来形成一个变异条件表达变异参数中列出参数类型的运营商变体

变量控制方式 变体激活时间
更新图 更新图分析所有的选择 代码编译 启动
表达式
标签 不支持金宝app
sim codegen切换 不支持金宝app

存储类激活时间为不同的变体

当你指定一个条件表达式来确定主动选择,每个变量表达式的控制变量都有一个与之关联的存储类。使用存储类控制变异的外观和位置控制变量在生成的代码中。存储类也防止存储的优化,如消除变异控制变量在生成的代码中。有关更多信息,请参见选择存储类数据表示控制生成的代码(金宝app仿真软件编码器)

变异条件表达式中使用的变量必须满足这些标准来生成代码金宝app仿真软件编码器或嵌入式编码器。

  • 变异的变异控制变量条件表达式必须有这些存储类。

  • 如果激活时间的控制变量被设置为一个变体启动,然后指定其存储类的这些不支持:金宝app

    • 存储类等定义生成的宏代码。

    • 存储类等常量在代码中生成常数合格变量。

  • 利用标量MATLAB®变量变异控制变量变异块没有任何存储类的代码生成、选择可调随着默认参数的行为模型设置代码生成>优化。这个标准并不适用于AUTOSAR构建变体。

相关的话题