主要内容

基于派生范围提出数据类型

控件提供基于静态范围的定点数据类型定点转换器当你提出基于派生范围的数据类型时,不需要提供测试文件来练习你的算法在其全部操作范围。运行这样的测试文件通常需要很长时间。您可以通过派生范围来节省时间。

请注意

非标量变量不支持派生范围分析。万博1manbetx

先决条件

此示例需要以下产品:s manbetx 845

创建一个新文件夹并复制相关文件

  1. 例如,创建一个本地工作文件夹,c: \ dti

  2. 改变docroot \工具箱\ fixpoint \例子文件夹。在MATLAB命令行,输入:

    CD(fullfile(docroot,'工具箱','fixpoint','simear'))

  3. 复制dti.mdti_test.m.文件到本地工作文件夹。

    最好的做法是创建一个单独的测试脚本来进行预处理和后处理,例如:

    • 加载输入。

    • 设置输入值。

    • 输出测试结果。

    类型 名称 描述
    功能代码 dti.m 入口点MATLAB功能
    测试文件 dti_test.m. matlab脚本测试dti.m

DTI功能

dti_test函数

打开定点转换器应用程序

  1. 导航到包含此示例的文件的工作文件夹。

  2. 在Matlab Toolstrip上应用选项卡,在代码生成,单击“应用”图标。

选择源文件

  1. 增加入口点功能Dti.对于项目,浏览到该文件dti.m,然后单击打开。默认情况下,该应用程序将此项目的信息和设置保存在命名的文件中的当前文件夹中dti.prj

  2. 点击下一个定义输入类型的一步。

    应用程序屏幕dti.m用于代码违规和定点转换准备问题。该应用程序找不到问题dti.m

定义输入类型

  1. 在这一点定义输入类型页面,添加dti_test.作为测试文件,浏览到dti_test.m.,然后单击打开

  2. 点击Autodefine输入类型

    测试文件运行。该应用从输入类型的测试文件确定u_in双(1x1)

  3. 点击下一个转换为固定点的一步。

转换为固定点

  1. 该应用程序为您的入口点MATLAB函数生成录取的MEX函数。该应用程序将显示编译的信息类型,大小和复杂性 - 用于代码中的变量。有关更多信息,请参阅查看和修改变量信息

    如果函数不支持定点转换,应用程序显示它们在万博1manbetx功能替换标签。

  2. 点击分析箭头

    1. 选择使用派生范围分析分析范围

    2. 清除使用仿真分析范围复选框。

    使用派生范围分析需要设计范围。

  3. 在这一点转换为固定点页面,在变量标签,输入u_in, 选择静态分并将它设置为-1。放静态马克斯1

    要计算派生的范围信息,至少必须为所有输入变量指定静态最小值和最大值或建议的数据类型。

    请注意

    如果手动输入静态范围,这些手动输入的范围优先于仿真范围。该应用程序使用手动输入的范围来提出数据类型。您还可以修改并锁定建议类型。

  4. 点击分析

    范围分析计算派生的范围并显示它们变量标签。使用这些派生范围,分析为基于默认类型提议设置提出每个变量的固定点类型。该应用程序将显示它们提出的类型柱子。

    在里面Dti.功能,函数剪辑_status.输出具有最小值-2最大值为2

    %计算输出如果(u_state> limit_upper)y = limit_upper;clip_status = -2;eleesif(u_state> = limit_upper)y = limit_upper;clip_status = -1;eleesif(u_state < limit_lower) y = limit_lower;clip_status = 2;eleesif(u_state <= limit_lower)y = limit_lower;clip_status = 1;其他的y = u_state;clip_status = 0;结束

    当您派生范围时,应用程序分析该功能并计算这些最小值和最大值剪辑_status.

    该应用程序提供了一个快速推导范围分析选项和选项以在分析需要很长时间内指定超时的选项。看到计算出范围

  5. 要将浮点算法转换为固定点,请单击兑换

    在定点转换过程中,软件验证所建议的类型并在codegen \ dti \ mixpt在本地工作目录下的文件夹:

    • dti_fixpt.m- 固定点版本dti.m

    • dti_wrapper_fixpt.m.-这个文件将测试文件提供的浮点数据值转换为在转换期间为输入确定的定点类型。应用程序将这些定点值转换成定点设计,dti_fixpt.m

    • dti_fixpt_report.html.- 此报告显示生成的固定点代码和固定点仪表结果。

    • dti_report.html.- 本报告显示了原始算法和定点仪表结果。

    • dti_fixpt_args.mat- mat文件,包含输入参数的结构,输出参数的结构和定点文件的名称。

    如果在验证期间发生错误或警告,他们就会显示输出标签。看到验证类型

  6. 在里面输出文件列表中,选择dti_fixpt.m。该应用程序显示生成的定点代码。

  7. 使用模拟数据检查器绘制浮点和定点结果。

    1. 点击设置箭头

    2. 扩大策划和报告设置和设置用模拟数据检查器绘制是的

    3. 点击测试箭头。选择为比较图记录输入和输出。点击测试

      该应用程序运行您用于定义输入类型以测试固定点MATLAB代码的测试文件。(可选)您可以添加测试文件,然后选择运行多个测试文件以测试数字。该软件运行浮点和固定点模拟,然后计算输出变量的错误y。因为您选择要记录比较图的输入和输出并使用模拟数据检查器进行这些绘图,所以将打开仿真数据检测器。

    4. 您可以使用模拟数据检查器查看浮点和定点运行信息并比较结果。例如,要比较输出的浮点和定点值y, 选择y。点击比较。放基线到原来的跑和相比于转换器运行。点击比较

      模拟数据检制器显示针对固定点运行的基线浮点的曲线图以及它们之间的差异。

  8. 在这一点验证输出选项卡,该应用程序提供了固定_Point报告的链接。

    要打开该报告,请单击“dti_fixpt_report.html.链接。

  9. 点击下一个完成工作流程页面。

    在这一点完成工作流程页面上,该应用程序显示一个项目摘要,并链接到生成的输出文件。

集成定点代码

要将代码的定点版本集成到系统级模拟中,请生成一个MEX函数来加速定点算法。调用这个MEX函数,而不是原始的MATLAB算法。

  1. 复制dti_fixpt.m到您的本地工作文件夹。

  2. 得到FIMATH.输入参数的属性,查看get_fimath.功能在dti_fixpt.m

    功能FM = get_fimath()'roundingmethod',“地板”,“OverflowAction”,'裹','ProductMode','fulteprecision','maxproductwordlength',128,“SumMode”,'fulteprecision','maxsumwordlength', 128);结束

  3. 获取输入的固定点数据类型u_in,看类型提案报告。

  4. 生成MEX功能dti_fixpt.m

    fm = fimath('roundingmethod',“地板”,“OverflowAction”,'裹','ProductMode','fulteprecision','maxproductwordlength',128,“SumMode”,'fulteprecision','maxsumwordlength', 128);FIACCEL.dti_fixpt.arg游戏{fi(0,1,16,14,fm)}

    FIACCEL.生成MEX功能,dti_fixpt_mex.,在当前文件夹中。

  5. 现在可以调用这个MEX函数来代替原来的MATLAB算法。