主要内容

浮点模型转换为定点

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

  • 浮点系统转换为一个等价的定点表示。

    定点工具自动化的任务指定定点系统中的数据类型。在这个例子中,该工具收集范围的数据模型对象,要么从设计明确指定的最小值和最大值信号和参数,或登录时产生的最大和最小值模拟。基于这些价值观,最大化的工具提出了定点数据类型精度和覆盖范围。该工具允许您检查数据类型的建议,然后将它们应用在模型中对象的选择性。

  • 不支持替换块与一个查找表近似转换。万博1manbetx

    在准备阶段的转换,定点工具隔离任何模块不支持定点的转换通过将这些块包围在一个子系统万博1manbetx数据类型转换块。您可以使用查找表优化器将不支持的模块替换为一个查找表近似。万博1manbetx

一个视觉演练的这些步骤,看视频:

建立了模型

打开模型,为定点转换配置它。

open_system (“ex_fixed_point_workflow”)

模型由一个源,一个控制器子系统,您想要转换为定点,和一个范围可视化子系统输出。配置模型以这种方式帮助您确定系统上的定点数据类型的影响。使用这种方法,您将只有子系统,因为这是系统的兴趣。不需要转换源或定点范围。

这种配置允许您修改多个刺激的输入和收集仿真数据。然后你可以检查子系统的行为与你的不同的输入范围和规模定点数据类型提供最大精度同时容纳完整的模拟范围。

比较之前和之后的行为转换,使信号输出的日志记录系统的设计。

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. 模拟输入,您可以指定万博1manbetxSimulink.SimulationInput对象来锻炼你的设计对其完整的操作范围。在这个例子中,集模拟输入使用默认模型的输入

  6. 为系统指定公差,在桌子下信号公差,指定公差对任何信号与信号模型中启用日志记录。有关更多信息,请参见指定信号公差

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

  7. 在将来发布,点击准备。定点工具检查系统设计兼容转换过程和报告任何问题发现在模型中。在可能的情况下,不兼容的定点工具自动更改设置。有关更多信息,请参见使用定点工具准备转换的系统

    定点工具的屏幕截图后成功完成准备阶段。

    在设计包含一个子系统经验值块,不支持定点数据类型。万博1manbetx定点工具围绕这一块数据类型转换块和地方在一个子系统。当你完成转换子系统的其余部分不动点,你可以用一个查找表取代子系统近似的经验值函数。

    控制器子系统的截图和Exp子系统的内容突出显示数据类型转换块周围的一个经验值块。

收集范围

默认情况下,定点工具使用当前数据类型覆盖在模型上设置。对于这个示例,覆盖在模型中数据类型与双精度范围收集运行。

  1. 扩大收集范围按钮箭头并选择双精度

  2. 点击收集范围模拟模型。

定点工具覆盖模型中的数据类型与双打和收集每个对象的最小和最大值发生在仿真模型。定点工具这个范围信息存储在一个名为运行BaselineRun。你可以把收集到的范围SimMinSimMax电子表格的列,或者在结果细节窗格。

仿真数据的可视化面板提供了另一个视图的仿真结果。选择探索定点额外的工具的工具的标签排序和过滤电子表格中的数据和可视化。

截图的可视化仿真数据窗格显示系统设计范围直方图。

转换数据类型

使用定点工具提出定点数据类型适当配置块基于双精度仿真结果存储在运行BaselineRun

  1. 转换将来发布的部分,单击提出数据类型按钮。

    定点工具分析了比例的所有定点块锁输出数据类型设置定点对变化的工具参数不是选中。

    定点工具使用默认的建议设置提出数据类型与16位字长和best-precision分数长度和更新电子表格中的结果。

    您可以通过单击编辑建议设置设置按钮转换将来发布之前提议的类型。

  2. 工具中显示该数据类型ProposedDT列的表格。

    默认情况下,它选择接受复选框每个结果,提出数据类型不同于当前对象的数据类型。如果你使用数据类型,提出的工具应用这些数据类型下的系统设计。

  3. 检查结果来解决任何问题,并确保你想接受拟议的每个结果的数据类型。的仿真数据的可视化窗格中显示的结果将包含溢出或下溢的红色或黄色三角形,分别。下溢可以数值来源问题,但有时可以安全地忽略。

    定点工具显示结果与另一种类型的数据类型冲突提出一个红色图标。在这个例子中,没有包含冲突的结果。有关更多信息,请参见检查结果来解决冲突

  4. 在审查结果,并确保没有问题,你准备申请该数据类型的模型。点击应用数据类型写该数据类型的模型。

    定点工具数据类型建议适用于块下的系统设计。

验证新设置

接下来,再使用新的定点设置模拟模型。然后使用仿真数据督察绘图功能比较浮点数的结果BaselineRun与定点运行的结果。

  1. 点击模拟与嵌入的类型。定点工具模拟了模型使用新的定点数据类型和运行信息存储在一个新的名为运行EmbeddedRun

    后来,定点工具显示登录定点数据块的信息。的CompiledDT列的运行表明,该控制器子系统模块使用新的定点数据类型。

  2. 检查的直方图仿真数据的可视化面板,以确认没有溢出或饱和度。溢出和饱和度的标识为一个红色的三角形

  3. 工作流浏览器显示所有您指定公差传递信号。

  4. 点击比较结果检查员打开模拟数据。在仿真数据检查,选择一个登录查看定点仿真信号的行为。

    仿真数据检查显示选中的记录信号和公差带。

不支持的模块替换为一万博1manbetx个查找表近似

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

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

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

    DataTypeWorkflow.findDecoupledSubsystems函数返回一个表,其中包含任何子系统的块路径是由定点工具隔离一个不受支持的。万博1manbetx

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

  3. 客观的查找表的页面优化,选择万博1manbetx仿真软件块或子系统。点击下一个

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

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

    查找表优化器设置面板。

  6. 指定要使用的约束的优化。对于这个示例,使用默认值。要创建查找表,点击优化。点击下一个

  7. 点击取代原始的函数。查找表优化器取代了数学函数经验值块用一个新的变体子系统包含查找表近似。

    截图的子系统原始Exp块换成了附近地区。

验证系统的行为和查找表近似

现在被设计是完全转换系统,验证系统仍然满足公差你之前指定的转换。

  1. 在定点工具,验证将来发布的部分,点击模拟与嵌入的类型

    定点工具模拟模型,目前包含了查找表近似,并保存结果EmbeddedRun_2

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

    截图工作流浏览器显示一个绿色的复选标记EmbeddedRun_2旁边。

相关的话题