将浮点模型转换为定点模型

在这个例子中,学习如何:

  • 将浮点系统转换为等效的定点表示法。

    定点工具自动化了在系统中指定定点数据类型的任务。在本例中,工具收集模型对象的范围数据,这些数据来自您为信号和参数显式指定的设计最小值和最大值,或者来自模拟期间发生的日志最小值和最大值。基于这些值,该工具提出了最大限度地提高精度并覆盖范围的定点数据类型。该工具允许您检查数据类型建议,然后有选择地将它们应用于模型中的对象。

  • 用查找表近似替换不支持转换的块。万博1manbetx

    在转换的准备阶段,定点工具隔离不支持定点转换的任何块,方法是将这些块放置在一个子系统中万博1manbetx数据类型转换块。可以使用查找表优化器(Lookup Table Optimizer)用查找表近似值替换不支持的块。万博1manbetx

建立模型

打开模型并将其配置为定点转换。

open_system (“ex_fixed_point_workflow”

该模型由一个源、一个希望转换为固定点的Controller子系统和一个用于可视化子系统输出的作用域组成。以这种方式配置模型可以帮助您确定定点数据类型对系统的影响。使用这种方法,您只转换子系统,因为这是感兴趣的系统。不需要将源或范围转换为定点。

此配置允许您修改输入并收集多个刺激的模拟数据。然后,您可以检查具有不同输入范围的子系统的行为,并缩放定点数据类型,以提供最大精度,同时容纳完整的模拟范围。

为了比较转换前后的行为,在所设计的系统输出处启用信号测井。

Ph = get_param(“ex_fixed_point_workflow /控制器子系统”“PortHandles”);set_param (ph.Outport (1),“数据采集”“上”) set_param (ph.Outport (2),“数据采集”“上”

准备转换系统

要将模型转换为定点,请使用定点工具。

  1. 应用程序展览馆ex_fixed_point_workflow模型中,选择定点的工具

  2. 在定点工具中,在工作流,选择迭代定点转换

  3. 设计中的系统(SUD),选择要转换为定点的子系统。在本例中,选择控制器子系统

  4. 范围采集模式中,选择模拟范围如范围收集方法。

  5. 模拟输入,您可以指定万博1manbetx仿真软件。SimulationInput对象在其全部操作范围内执行您的设计。本例中为set模拟输入使用默认模型输入

  6. 要指定系统的公差,请参见下表信号公差,在启用信号记录的情况下,指定模型中任何信号的公差。

    设置相对公差(Rel托尔)你记录到15%的信号。

  7. 在工具条中,单击准备.定点工具检查设计中的系统与转换过程的兼容性,并报告在模型中发现的任何问题。如果可能,定点工具会自动更改不兼容的设置。有关更多信息,请参见使用定点工具准备转换系统

    所设计的子系统包含一个经验值块,该块不支持定点数据类型。万博1manbetx定点工具围绕这个块数据类型转换器块,并将其放置在子系统中。完成子系统的其余部分到定点的转换后,可以用查找表近似地替换子系统经验值函数。

收集范围

单击收集范围按钮模拟模型。定点工具用双精度变量覆盖模型中的数据类型,并收集模拟期间模型中每个对象的最小值和最大值。定点工具将此范围信息存储在一个名为BaselineRun.可以在SimMin而且SimMax列中的结果细节窗格。

仿真数据可视化窗格提供模拟结果的另一个视图。选择探索“定点工具”选项卡中的其他工具,用于对电子表格和可视化中的数据进行排序和过滤。

转换数据类型

根据运行中存储的双精度模拟结果,使用定点工具为适当配置的块提出定点数据类型BaselineRun

  1. 转换工具条中的建议数据类型按钮。

    定点工具分析所有定点块的缩放锁定输出数据类型设置,防止由定点工具更改参数未选中。

    Fixed-Point Tool使用默认建议设置来建议具有16位字长和最佳精度分数长度的数据类型,并更新电子表格中的结果。

    方法编辑提议设置设置按钮。转换在提出类型之前,请参阅工具条的部分。

  2. 方法中显示建议的数据类型ProposedDT表格中的列。

    默认情况下,它选择接受对于建议的数据类型与对象的当前数据类型不同的每个结果,请选中复选框。如果应用数据类型,该工具将这些建议的数据类型应用于所设计的系统。

  3. 检查结果以解决任何问题,并确保您希望接受每个结果的建议数据类型。的仿真数据可视化窗格用红色或黄色三角形分别指示将包含溢出或下溢的结果。欠流可能是数字问题的根源,但有时可以安全地忽略。

    定点工具用红色图标指示建议的数据类型与另一类型冲突的结果.在本例中,没有结果包含冲突。有关更多信息,请参见检查结果以解决冲突

  4. 在检查结果并确保没有问题之后,您就可以将建议的数据类型应用于模型了。点击应用数据类型将建议的数据类型写入模型。

    定点工具将数据类型建议应用于正在设计的系统中的块。

验证新设置

接下来,使用新的定点设置再次模拟模型。然后使用Simulation Data Inspector绘图功能来比较来自浮点的结果BaselineRun使用定点结果运行。

  1. 验证部分,单击使用嵌入式类型进行模拟.定点工具使用新的定点数据类型来模拟模型,并将运行信息存储在一个名为新的运行中EmbeddedRun

    然后,定点工具显示记录定点数据的块的信息。的CompiledDT列显示Controller子系统块使用新的定点数据类型。

  2. 的直方图仿真数据可视化窗格以验证没有溢出或饱和。溢流和饱和度用红色三角形标记

  3. 工作流浏览器指示通过了您指定的公差的所有信号。

  4. 右键单击EmbeddedRun然后点击开放的SDI打开模拟数据检查器。在仿真数据检查器中,选择一个记录信号以查看定点仿真行为。

用查找表近似替换不支万博1manbetx持的块

准备转换系统步骤的工作流程,定点工具放置经验值块,不支持转换万博1manbetx数据类型转换块。在此步骤中,您将用查找表近似替换子系统。

  1. 要得到定点工具解耦转换的所有子系统的列表,在命令行输入:

    去耦= datatypeworkflow . finddecoupling (“ex_fixed_point_workflow”
    解耦BlockPath = 1×2表ID  __ ____________________________________________________ 1 {' ex_fixed_point_workflow /控制器子系统/ Exp '}

    DataTypeWorkflow.findDecoupledSubsystemsfunction返回一个表,其中包含由定点工具创建的用于隔离不支持的块的任何子系统的块路径。万博1manbetx

  2. 打开查找表优化器.在应用程序画廊,选择查找表优化器

  3. 客观的页的“查找表优化器”,选择万博1manbetx仿真软件块.点击下一个

  4. 块的信息,从命令行复制,并将路径粘贴到由定点工具创建的子系统。

  5. 单击从模型中收集当前值按钮更新模型图,并允许优化器自动收集优化过程所需的信息。点击下一个

  6. 指定要在优化中使用的约束。对于本例,使用默认值。如需创建查找表,请单击优化.点击下一个

  7. 点击替换原函数的查找表近似的新子系统替换已解耦的子系统数学函数经验值块。

用查找表近似法验证系统行为

现在设计中的系统已经完全转换,验证系统仍然满足转换前指定的公差。

  1. 在定点工具中,在验证部分,单击使用嵌入式类型进行模拟

    定点工具模拟该模型,该模型现在包含查找表近似,并将结果保存为EmbeddedRun_2

  2. 工作流的浏览器显示具有指定公差的信号使用查找表近似在模型中传递。

相关的话题