如何避免Simulink中的数据类型溢出?

如何避免Simulink中的数据类型溢出?,simulink,Simulink,我在Simulink中有一个溢出问题,我在Simulink中制作了一个模型,请参见所附图片 如果端口2(const ticks_des)为256,则内存块溢出,时间溢出无法激活以触发重置。如何更改模型以避免数据类型溢出 数据类型溢出的一个简单解决方案是使用数据类型转换块。将数据类型转换块添加到输入2的输出。那么 在数据类型转换块中,必须选择整数溢出饱和参数。当信号太大而无法放入输出数据类型时,数据类型转换块进行换行 simulink(例如,求和)块通常会有一个复选框,表示“在整数溢出时饱和”

我在Simulink中有一个溢出问题,我在Simulink中制作了一个模型,请参见所附图片

如果端口2(const ticks_des)为256,则内存块溢出,时间溢出无法激活以触发重置。如何更改模型以避免数据类型溢出


数据类型溢出的一个简单解决方案是使用数据类型转换块。将数据类型转换块添加到输入2的输出。那么

在数据类型转换块中,必须选择整数溢出饱和参数。当信号太大而无法放入输出数据类型时,数据类型转换块进行换行

simulink(例如,求和)块通常会有一个复选框,表示“在整数溢出时饱和”

如果没有,您可以通过将每个算术运算的数据类型强制转换为足够大的数据类型来修复它,以包含算术运算可能产生的最大值。您可以使用输出数据类型的最大值获取该算术运算结果的模


例如,如果将两个uint8相加,则将每个uint16都转换为一个uint16,然后使用255(即finalresult=mod(uint16(a)+uint16(b),255)取该相加的模.

输入端口2永远不能是256。您已将其定义为范围为0到255的uint8。内存块永远不会溢出,它只将输入传递到输出(延迟一个时间段)。您的意思是求和块溢出吗?如果每次尝试添加一个求和块,则无法避免此情况,除非您添加更多逻辑,以便在第一个输入已在255处时不会添加1。