主要内容

减少包含可变块的模型

请注意

你需要一个金宝app®设计验证器™许可证,以减少您的模型。

一个可变模型可以包含多个可变结构和一个固定结构。将可变结构和固定结构组合起来创建模型取决于您所选择的变量选择的不同组合。变体选择的每个组合都可以存储为变体配置。

根据所选的变量配置,可以将变量模型简化为简化的独立模型。此外,所有相关文件和变量依赖项也会简化。这些简化的构件会打包到用户指定的输出文件夹中。

考虑到模型变型减速器. 该模型包含一个变异源街区变异水槽块,和一个变型子系统使用以下变量选项阻止:

  • 变异源V = = 1V = = 2

  • 变异水槽W==1W==2,及W==3

  • 变型子系统V = = 1V = = 2

假设模型有两个预定义的变量配置,名为配置1V = = 1 & & W = = 2)及配置2V = = 2 & & W = = 2).这些配置保存在一个变体配置数据对象中,varConfig

要简化模型,请执行以下步骤:

  1. 右键单击变体徽标,然后选择在变体管理器中打开。变量管理器打开,显示预定义的配置。

  2. 点击简化模型。将打开“变型减速器”对话框。

  3. 还原模式第节,选择:

    • 当前变量控制值:根据全局工作区中的变量控制变量值减少模型。

    • 指定变量配置:减少与变量配置数据对象关联的模型以及要保留在简化模型中的配置。

      请注意

      在缩减过程中,来自最后选择的配置的控制变量值存储在全局工作区中。

    • 指定变量控制值:根据变量控制变量值减少模型。您可以根据不同配置创建多个变量组。单击新变量组设置变量控制变量的值。您可以指定变量控制值或选择全程忽略从下拉列表中。将变量控制值指定为向量还允许您为该变量的所有组合简化模型。例如,如果您指定值V = 1W=[1,2],然后针对配置对模型进行简化{V==1,W==1}{V==1,W==2}.如果您选择全程作为变量控制值,参考值列被激活,以输入成功编译模型所需的参考值。对于指定变量控制变量的所有有效值,模型都会减少。如果选择忽略作为变量控制值,则在简化模型时不考虑该变量控制变量。

      请注意

      要使用全量程变型控制变量,变体激活时间在“块参数”对话框中,必须将使用该变量控制变量的块设置为代码编译

    请注意

    如果您通过指定变量组来调用变量减少,则减少的模型将具有与关联的变量组相对应的变量配置。这将覆盖原始模型中存在的任何现有变体配置。

  4. 从…起编译模式中,选择模拟编译模型以进行模拟或codegen以代码生成模式编译模型,作为减少模型的一部分。如果模型包含变量块变量控制模式参数设置为sim codegen切换,您可以选择codegen保留简化模型中块的代码生成分支。默认值模拟, Variant Reducer编译并保留顶级模型中的模拟分支。

  5. 选择保护信号属性在原始模型和简化模型之间保留编译后的信号属性。选择此选项后,Variant Reducer将通过在简化模型中的适当块端口添加信号规范块,尝试在原始模型和简化模型之间保留已编译的信号属性。编译的信号属性包括信号数据类型、信号维度、编译的采样时间等。

  6. 选择生成详细摘要在输出文件夹中生成Variant Reducer摘要。变体减速器摘要包含的摘要变型减速器选项原始和简化的模型差异依赖伪影回调警告.有关更多信息,请参见生成变量摘要

    请注意

    要生成详细摘要,您必须具有金宝app仿真软件报告生成器许可证。

  7. 属性中的后缀指定一个值模型后缀领域模型后缀值将附加到简化模型、数据字典和相关构件中。默认情况下,_r是后缀。

  8. 指定用于存储简化模型的输出文件夹。

    请注意

    选择开放的简化模型复选框将当前工作文件夹更改为输出文件夹。

  9. 点击减少。现在已创建所需配置的简化模型。如果模型包含已解析的库链接或引用模型,则将为指定配置简化相应的父级,并在模型中引用。简化模型、简化引用模型和简化库的名称来自相应的模型,引用的模型,或具有_r模型后缀)附加在它后面。

考虑包含A的变体模型金宝app仿真软件的功能块上具有可变条件金宝app仿真软件的功能块作为V==1 || V==2 || V==3 || V==4.如果模型因任何或组合的可用变量条件而缩减,则金宝app仿真软件的功能简化模型中的块是无条件的。例如,如果模型因变量条件而简化,V=1 V=2 V=3,金宝app仿真软件的功能简化模型中的块是无条件的。然而,如果模型在变条件下被简化,V=1 V=2 V=5,金宝app仿真软件的功能简化模型中的块保持有条件V==1 | | V==2作为变式条件。

以编程方式简化模型

要以编程方式简化模型,请使用以下语法:

金宝appSimulink.VariantManager.reduceModel(模型,

例如

  • 基于模型的变异性控制全局工作空间中的变量值。

    金宝appSimulink.VariantManager.reduceModel('sldemo\u variant\u Subsystem'))
  • 根据模型在全局工作空间中的变量控制变量值将模型缩减到指定的文件夹中。

    金宝appSimulink.VariantManager.reduceModel('sldemo\u variant\u Subsystem','OutputFolder','outdir')
  • 减少与变量配置数据对象关联的模型,并减少要保留在简化模型中的配置。

    金宝appSimulink.VariantManager.reduceModel('sldemo\u variant\u Subsystem','NamedConfiguration',{'LinInterStd','NonLinExterHighFid'})
  • 通过以变量控制变量结构的形式指定配置来简化模型。

    金宝appreduceModel('iv_模型','VariableConfiguration',{'V',1,'W',[12]})

    这里,指定了两种配置,分别对应于{V=1,W=1}{V = 1, W = 2},分别。

  • 通过指定变量控制值来减少模型,其中'w’是全量程变型控制值。

    金宝appSimulink.VariantManager.reduceModel(‘slexVariantReducer’,‘VariableConfigurations’,{‘V’,1},FullRangeVariables, {' W ', 1});

    这里,计算对应的四种构型{V==1,W==1},{V==1,W==2},{V==1,W==3}{V==1,W==0}分别。

有关以编程方式简化模型的详细信息,请参见reduceModel

生成变量摘要

Variant Reducer提供了一个选项,可以将简化过程的详细报告生成为HTML文件。该报告保存在保存简化工件的输出文件夹中。

请注意

一个金宝appSimulink报告生成器™生成变体摘要需要许可证。

变体减速器摘要可用于:

  • 验证用于缩减的输入和输出选项,例如输入变量配置和输出文件夹位置。

  • 分析原始模型和简化模型之间的差异,例如:

    • 已插入、删除或修改的块。

    • 已修改的掩码。

    • 已被修改的相关数据文件或Simulink缓存文件金宝app。

  • 识别任何警告。

  • 确定代码生成分支的模型是否简化。

  • 确定没有减少的组件,并确定可能需要的手动更新,例如,回调代码和状态流®变体转换。

  • 导航原始模型和简化模型的交互视图。

要从“变型减速器”对话框生成报告,请选择生成详细摘要在还原时勾选。要在以编程方式减少模型的同时生成报告,请设置“生成摘要”将值参数命名为真的。例如,此命令生成摘要并将其保存到路径L:\Models\variantReducerRpt

addpath(完整文件(matlabroot、,“例子”“金宝appsimulink_变体”“主要的”))开放式系统(“SlexvariantDucer”); 金宝appSimulink.VariantManager.reduceModel...“SlexvariantDucer”“名称配置”, {“config1”},“生成摘要”,真的,“OutputFolder”'L:\Models');

变型减速器概述

考虑和限制

  • 减少包含以下内容的模型:不同的连接器不支持块。金宝app

  • 使用变体激活时间参数设置为启动不支持。金宝app

  • 存储简化模型的输出文件夹必须不在下面草根

  • 如果输出文件夹包含variant_reducer.log文件,减少器将覆盖该输出中所有可用的文件,以进行后续的减少。

  • 附加块将自动添加到简化模型中,以确保一致的模拟语义。附加块可以包括信号规格用于一致信号属性(数据类型、维度、复杂度)的块或地面终结者未连接信号的块。

  • 在模型简化过程中,活动路径上的注释块将被保留,而非活动路径上的注释块将被删除。

  • 来自状态流图中非活动元素的信号属性(数据类型、复杂性、维度)可能不会保留在简化模型中。

对未缩减的零部件进行建模

这些模型组件不会自动减少,可能需要人工干预。要识别此类工件,通过选择生成详细摘要在模型简化过程中,选中“变量减速器”对话框中的复选框。

  • 回拨代码:

    • 回调,例如InitFcn预加载后装,掩码初始化码和掩码参数回调码必须手动修改。

    • 已删除非活动变量组件中的回调代码。这可能会导致简化模型中出现意外行为。

  • 在模型简化过程中,不会修改Stateflow画布中的元素,包括变量转换。

  • 如果模型依赖于位于下的文件草根(金宝appSimulink图书馆,.m文件夹,.mat文件,或.sldd文件),它们不会在模型简化期间被修改或复制到输出文件夹。

  • 变量参数对象(对象的实例)金宝app模拟变量类)不减少。

相关的例子

更多关于