我在Simulink有一个溢出问题,我在Simulink做了一个模型,看到附图。
如果端口2(const ticks_des)为256,则内存块溢出,并且time_over_flg无法激活以触发复位。我怎么能改变我的模型,以便可以避免数据类型溢出?
答案 0 :(得分:0)
数据类型溢出的一种简单解决方案是使用数据类型转换块。将数据类型转换块添加到输入2的输出中。然后,
在“数据类型转换”块中,必须选择“整数溢出时饱和”参数。当信号太大而无法容纳输出数据类型时,数据类型转换块将自动换行。
答案 1 :(得分:0)
simulink(例如求和)块通常具有一个复选框,其作用是“在整数溢出时饱和”。
如果没有,则可以通过将每个算术运算的数据类型强制转换为足以容纳该算术运算可能产生的最大值的数据类型,来自行修复。您将把算术运算结果的模数与输出数据类型的最大值相乘。
例如,如果将两个uint8加在一起,则将每个都转换为一个uint16,然后使用255取该加法的模数(即finalresult = mod(uint16(a)+ uint16(b),255 )。