主要内容

减少包含可变块的模型

笔记

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

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

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

考虑模型变型减速器. 该模型包含一个变异源块,变体水槽块,不同的子系统用这些不同的选择阻塞:

  • 变异源v == 1v == 2

  • 变体水槽W==1W==2,W==3

  • 不同的子系统v == 1v == 2

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

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

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

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

  3. 减少模式第节,选择:

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

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

      笔记

      在减少期间,最后一个所选配置的控制变量值存储在全局工作空间中。

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

      笔记

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

    笔记

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

  4. 编译模式, 选择模拟编译模型以进行模拟或Codegen.要将代码生成模式中的模型编译为减少模型的一部分。如果模型包含具有变体块的变量控制方式参数设置为SIM Codegen切换,你可以选择Codegen.在简化模型中保留块的代码生成分支。默认值模拟,变体减速器编译并保留顶级模型中的仿真分支。

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

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

    笔记

    要生成详细的摘要,您必须拥有金宝appSimulink报告生成器执照。

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

  8. 指定要存储缩小模型的输出文件夹。

    笔记

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

  9. 点击降低.现在创建了所需配置的简化模型。如果模型包含解析的库链接或引用的模型,则指定配置的相应父类将减少,并在模型中引用。简化模型、简化引用模型和简化库从相应的模型、引用模型或库中获得它们的名称_r模型后缀)。

考虑包含A的变体模型金宝appSimulink功能块上具有可变条件金宝appSimulink功能块作为V V = = 1 | | = = 2|| V==3 || V==4.如果模型因任何或组合的可用变量条件而缩减,则金宝appSimulink功能简化模型中的块是无条件的。例如,如果模型因变量条件而简化,v = 1,v = 2,v = 3, 这金宝appSimulink功能减少模型中的块是无条件的。而且,如果模型减少了变体条件,v = 1,v = 2,v = 5, 这金宝appSimulink功能简化模型中的块仍然是有条件的V V = = 1 | | = = 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'})
  • 通过以变量控制变量结构的形式指定配置来简化模型。

    金宝appSimulink.VariantManager。reducemodel.('iv_model', 'VariableConfigurations', {'V',1,'W',[1 2]})

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

  • 通过指定变量控制值来减少模型,其中'W.'是全范围变体控制值。

    金宝appsimulink.variantmanager.reducemodel('slexvariatreducer','variableconfigurations',{'v',1},'fullangevariables',{'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: \ \ variantReducerRpt模型

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

变型减速器概述

考虑和限制

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

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

  • 存储缩小模型的输出文件夹不得在下面matlabroot

  • 如果输出文件夹包含variant_reducer.log.从以前的模型减少文件,还原器将覆盖该输出中可用的所有文件,以便任何后续减少。

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

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

  • 信号属性(数据类型,复杂性,尺寸)来自StumenFlow图表中的非活动元素可能不会保留在缩小模型中。

未简化的模型组件

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

  • 回拨代码:

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

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

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

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

  • 变量参数对象(对象的实例)金宝app仿真软件。VariantVariable类)不会减少。

相关例子

更多关于