Simulink自动把所有的double数据转换成single数据

目录

前言

子系统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类型的。

猜你喜欢

转载自blog.csdn.net/weixin_42665184/article/details/131391411