目录
前言
子系统double自动转single操作步骤
总结
前言
在基于模型的开发建模中,模块大多默认的数据类型是double,很多MCU支持的是单精度的浮点,生成代码的部分需要把double转成single数据类型,当然在建模的时候可以配置每一个模型的数据类型。这里提供一种解决方法,对于建好的模型如果是double型的,可以自动把double转成single,也可以方便建模的时候不用改数据类型,直接通过double建好模型后直接替换成single数据类型而不需要一步一步修改。
子系统double自动转single操作步骤
如下,是一个PFC的模型,里面很多是double的数据类型,需要把下面的子系统生成代码,实际硬件需要的是单精度的浮点。
1.找到APPS->Single Precision Converter
2. 选择需要转换的子系统,这里选择要生成代码的部分
如果遇到错误信息,根据错误信息调整
这里会自动把可变步长转成定步长,需要注意定步长模型仿真不会出错,不然就像下面一样了,对模型进行一定的调整
调整后又报了一些错误,可以把报错的模块先注释掉
还报了下面的错误,这时候去命令窗口看看有什么提示
发波模块和功率模块不支持,我们关注的是生成代码的子系统,所以可以把功率回路,PWM发波模块全注释掉,保留信号输入输出和生成代码的子系统,再试一次
这次只有几个模块没有成功,子系统里的double都转换成single了,双击没有成功的模块
如下,常数模块需要手动去改数据类型,直接跳转然后手动改就可以了
最后,转换完成所后子系统里的所有double都变成single了,而其他数据类型不受影响
总结
这种方法比一个模块一个模块的手动调整效率高太多了,只是操作过程中需要注意备份模块,不要改完后发现仿真不了了,在转换的过程中数据的输入输出会自动添加convert模块传递不出子系统之间的数据。功率回路和PWM都是double类型的。