此示例显示如何使用浮点乘法来处理净斜率校正。当将浮点数据类型转换为生成的代码中的固定点数据类型时,净斜率校正是一种缩放定点数据类型的一种方法。缩放定点数据类型避免溢出条件并最大限度地减少量化错误。
对于支持有效乘法的处理器,使用浮点乘法处金宝app理净斜率校正,提高了代码效率。如果净斜率校正具有两个不是两个功率的值,则使用司改善精度。
笔记:此示例需要固定点Designer™许可证。
在模型中RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTE.,转换块将输入信号从浮点数据类型转换为固定点数据类型。净斜率校正具有值3.
。
模型='RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION';Open_System(型号);
为构建和检查过程创建一个临时文件夹。
CurrentDir = PWD;[〜,cgdir] = rtwdemodir();
构建模型。
RTWBuild(型号)
###启动模型的构建过程:RTWDEMO_FLOAT_MUL_FOR_NER_NORE_SLOPE_CORRECTION ###成功完成模型构建过程:RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION
在这些线条RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION.C.
代码,代码生成器划分输入信号3.0f.
。
cfile = fullfile(cgdir,'RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION_ERT_RTW'那......'RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION.C');RTWDEMODBTYPE(CFILE,'/ *模型步骤'那'/ *模型初始化',1,0);
/ *模型步骤函数* / void RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION_STEP(void){/ * OUTPORT:'/输出'包含:* dataTypeconversion:' / /数据类型转换'* INPORT:' /输入'* /RTY.OUTPUT =(INT16_T)(REAL32_T)底楼((real_t)(RTU.INPUT / 3.0F));}
打开配置参数对话框。
在这一点数学和数据类型窗格,选择使用浮点乘法来处理净斜率校正。此优化默认情况下。
或者,您可以使用命令行API来实现优化。
set_param(型号,'umerfloatmulnetslope'那'在');
RTWBuild(型号)
###启动模型的构建过程:RTWDEMO_FLOAT_MUL_FOR_NER_NORE_SLOPE_CORRECTION ###成功完成模型构建过程:RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION
在优化的代码中,代码生成器将输入信号乘以倒数3.0f.
, 那是0.333333343f.
。
RTWDEMODBTYPE(CFILE,'/ *模型步骤'那'/ *模型初始化',1,0);
/ *模型步骤函数* / void RTWDEMO_FLOAT_MUL_FOR_NET_SLOPE_CORRECTION_STEP(void){/ * OUTPORT:'/输出'包含:* dataTypeconversion:' / /数据类型转换'* INPORT:' /输入'* /RTY.OUTPUT =(INT16_T)(REAL32_T)楼层((real_t)(RTU.INPUT * 0.33333334F));}
关闭模型和代码生成报告。
BDCLOSE(模型)RTWDEMOCLEAN;CD(CurrentDir)