主要内容

提高代码效率通过合并多个插值使用Prelookup块

您可以使用模型变压器工具重构建模模式来提高生成的代码的效率。变压器的模型识别和合并多个插值使用Prelookup块具有相同的输入信号从Prelookup块的输出连接到一个插值使用Prelookup块。

模型变压器工作的性质插值使用Prelookup块是相同的除了表数据。减少插值使用Prelookup块的数量在一个模型减少了代码中的变量分配的数量,使生成的代码的效率。您可以使用模型变压器应用或编程命令来重构模型。

变压器可以替代多个模型插值使用Prelookup:

  • 有相同的输入信号连接到Prelookup块相同的指数和部分参数

  • 输出信号连接到相同的吗多端口切换

  • 有相同的断点规范、价值观和数据类型

  • 有相同的算法参数

  • 对部分参数有相同的数据类型吗

合并模型插值使用Prelookup块使用变压器应用

这个例子展示了如何使用该模型变压器使用Prelookup块识别冗余的插值,然后重构模型。

该模型ex_interpolation_optimize使用Prelookup块几个插值使用Prelookup块的输入信号。这些插值模块的输出连接到一个多端口切换块。

在本例中,您确定插值使用Prelookup块符合转换,代之以一个插值使用Prelookup块和常数块连接到多端口的交换机。

  1. 保存模型到你的工作目录。

  2. 应用程序选项卡上,单击模型变压器

  3. 转换文件夹,选择代替插值使用Prelookup块检查。

  4. 选择跳过Interpolation-ND块在图书馆从这个转换选项,以避免更换插值使用Prelookup块与一个图书馆。

  5. 前缀的转换模型字段中,指定一个前缀的重构模型。

  6. 点击运行这个检查。顶部结果表包含超链接使用Prelookup插值模块和相应的多端口开关组端口指数。

  7. 清除复选框候选人的团体组,你不想变换。

  8. 点击重构模型。的结果表包含一个链接到新模型。表包含超链接共享插值使用Prelookup块和相应的多端口切换阻塞端口。该工具还创建了一个m2m_ex_interpolation_optimize包含新文件夹gen_ex_interpolation_optimize.slx模型。

这两个Prelookup和Prelookup1 Prelookup块gen_ex_interpolation_optimize.slx模型连接到单一插值使用Prelookup块和固定块连接到多端口给开关组端口表数据作为输入。

通过编程方式合并插值使用Prelookup块

使用编程模型变压器,使用:

  1. 保存模型ex_interpolation_optimize在当前工作目录中。

  2. 确定候选人资格转换,使用函数金宝appSimulink.ModelTransform.CommonSourceInterpolation.identifyCandidates创建的对象transformResults

    transformResults = 金宝appSimulink.ModelTransform.CommonSourceInterpolation.identifyCandidates (“ex_interpolation_optimize”)
    transformResults =结果与属性:候选人:[1×1 struct]

    transformResults对象都有一个属性,候选人,这是一个结构有两个字段,InterpolationPortsSwitchPorts

    transformResults。候选人= struct with fields: InterpolationPorts: [4×1 struct] SwitchPorts: [4×1 struct]

  3. 查看InterpolationPorts字段。

    transformResults.Candidates。InterpolationPorts =
    4×1结构体数组字段:阻塞端口

    InterpolationPorts字段包含两个数组,港口。类似地,SwitchPorts具有相同的属性。

  4. 转换Candidates.InterpolationPortsCandidates.SwitchPorts字段表。

    struct2table (transformResults.Candidates.InterpolationPorts) struct2table (transformResults.Candidates.SwitchPorts)
    ans = 4×2表块港口_____________________________________________ ____ {' ex_interpolation_optimize /插值使用Prelookup↵'} 0 {' ex_interpolation_optimize /插值使用Prelookup1↵'} 0 {' ex_interpolation_optimize /插值使用Prelookup2↵'} 0 {' ex_interpolation_optimize /插值使用Prelookup3↵'} 0 ans = 4×2表块港口______________________________ ____ {' ex_interpolation_optimize / Multiport_Switch '} 1 {' ex_interpolation_optimize / Multiport_Switch '} 2 {' ex_interpolation_optimize / Multiport_Switch '} 3 {' ex_interpolation_optimize / Multiport_Switch '} 4

    使用SwitchPorts看到这插值使用Prelookup块多端口开关组端口连接。

  5. 重构模型,使用函数金宝appSimulink.ModelTransform.CommonSourceInterpolation.refactorModel。这个函数使用的对象transformResultsidentifyCandidate函数。

    refactorResults = 金宝appSimulink.ModelTransform.CommonSourceInterpolation.refactorModel (transformResults)
    refactorResults = refactorResults属性:ModelName: ex_interpolation_optimize ModelDirectory:”TraceabilityInfo: [4×1 containers.Map]

    ModelNameModelDirectory的属性refactorResults对象列表的名称和位置的重构模型。TraceabilityInfo是一个containers.Map对象列表块跟踪信息。

条件和限制

变压器不能替代模型插值使用Prelookup块如果:

  • 插值使用Prelookup块注释掉地区或不活跃的变体。

  • 插值使用Prelookup块蒙面。

  • 变压器的应用不能替代模型插值使用Prelookup各地块的边界原子子系统,引用的模型,或library-linked块。

相关的话题