主要内容

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

在本例中,学习如何:

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

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

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

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

建立模型

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

开放式系统(“ex_fixed_point_workflow”)

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

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

要比较转换前后的行为,请在设计中的系统输出端启用信号记录。

ph=获取参数(“ex_固定点_工作流/控制器子系统”,“PortHandles”); 设置参数(ph输出端口(1),“数据记录”,“开”)设置参数(ph输出端口(2),“数据记录”,“开”)

准备转换系统

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

  1. 应用程序艺术馆ex_固定点_工作流模型中,选择定点工具

  2. 在“定点”工具中的新的工作流,选择迭代不动点转换

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

  4. 在下面范围收集模式,选择模拟范围作为范围收集方法。

  5. 在下面模拟输入,你可以指定万博1manbetx模拟输入对象在其整个工作范围内执行您的设计。在本例中,设置模拟输入使用默认模型输入

  6. 要指定系统的公差,请在下的表格中信号容差,为启用信号记录的模型中的任何信号指定公差。有关详细信息,请参阅指定信号容差

    设置相对公差(雷尔托尔酒店)您记录的信号中有15%。

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

    正在设计的子系统包含一个经验值块,它不支持定点数据类型。固定点工具将此块包万博1manbetx围在数据类型转换块并将其放入子系统中。当您完成将子系统的其余部分转换为固定点时,您可以用查找表的近似来替换子系统经验功能。

收集范围

默认情况下,“定点”工具使用模型上设置的当前数据类型替代。对于本例,对于范围收集运行,使用双精度替代模型中的数据类型。

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

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

定点工具使用双精度替换模型中的数据类型,并收集模拟期间模型中每个对象的最小值和最大值。定点工具将此范围信息存储在标题为基线运行. 您可以在中查看收集的范围辛敏辛马克斯电子表格的列,或结果详情窗格。

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

转换数据类型

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

  1. 转换在toolstrip的部分中,单击建议数据类型按钮

    “定点”工具将分析所有定点块的缩放比例,这些块具有根据定点工具的更改锁定输出数据类型设置参数未被选中。

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

    您可以通过单击设置按钮转换建议类型之前的toolstrip部分。

  2. 该工具将在中显示建议的数据类型提议的电子表格中的列。

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

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

    “定点工具”指示其建议的数据类型与另一个带有红色图标的类型冲突的结果. 在本例中,没有结果包含冲突。有关详细信息,请参阅检查结果以解决冲突

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

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

验证新设置

接下来,使用新的定点设置再次模拟模型。然后,可以使用“模拟数据检查器”的打印功能来比较浮点运算的结果基线运行使用定点结果运行。

  1. 点击使用嵌入类型进行模拟.定点工具使用新的定点数据类型模拟模型,并将运行信息存储在新运行的标题中嵌入式运行

    之后,“定点”工具将显示有关记录定点数据的块的信息。这个编译的运行列显示控制器子系统块使用新的定点数据类型。

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

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

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

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

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

  1. 要获取固定点工具为转换而解耦的所有子系统的列表,请在命令行中输入:

    解耦=DataTypeWorkflow.findDecoupledSubsystems(“ex_fixed_point_workflow”)
    解耦=1×2表ID块路径

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

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

  3. 客观的页,选择万博1manbetxSimulink块或子系统. 点击下一个

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

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

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

  7. 点击替换原有功能.查找表优化器将替换数学函数经验具有包含查找表近似值的新变量子系统的块。

使用查找表近似值验证系统的行为

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

  1. 在定点工具,在验证在“工具条”的剖面中,单击使用嵌入类型进行模拟

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

  2. 这个工作流浏览器显示具有指定公差的信号使用查找表近似通过模型。

相关的话题