概述
一、Overflow: 当数据发生溢出时,开发人员有三种处理方法:
当选择 saturate(饱和)模式时,将数据饱和在正的最大值或负的最小值,也就是当我们数据发生溢出时候,我们只得到我们在极限时候的数据,而对溢出无视。有符号四位数据: +7(0111) ~ -8(1000)
当选择 wrap 模式时, 做绕回处理,即最大值加1结果是最小值,最小值减1得到最大值;也就是溢出时候直接给上一位进位。有符号四位数据:本来最大是 0111(+7),发生溢出变为 1000(-8)
当选择 Flag as error 模式时,将数据溢出标记到 simulink 的错误报告中。
二、Quantization: 当出现量化误差时,开发人员有两种处理方式:
当选择 Round(四舍五入) 模式时,将数据四舍五入到最接近的开发人员定义精度可表示的数值上;
当选择 Truncate(截短) 模式时,直接将开发人员定义精度无法表示部分数值丢弃。
For Example
EX1
二进制 十进制
4 bits in / 4 bits out 6 + 3 0110 -7
Wrap + 0011
1001
Wrap : 最大值加1,变为最小值,也就是当我们是四位有符号数时,我们的最大值就是4‘b0111 = 7, 当我们超过这个最大值时候,数据发生溢出,变为4’b1000,其为补码形式,这时候就是有符号数的最小值,为 -8
我们定义为有符号数,所以数据有效位只有三位,最高位为符号标志位, 当我们定义为 4 bits, 其最大值为 4‘b0111 = +7, 然后加1,就变为 4’b1000 = -8
我们无符号的实际结果为9,所以我们要加2,也就是 4‘b1001 , 补码就是 -7
二进制 十进制
4 bits in / 4 bits out 6 + 3 0110 7
Saturate + 0011
0001
Saturate:饱和,我们将数据卡在一个饱和区间,对于四位有符号数,其数据为区间为: +7(0111) ~ -8(1000),超过该区间的数,也就是溢出时候的数据,都被饱和为该区间的极限数据
二进制 十进制
4 bits in / 5 bits out 6 + 3 0110 9
Saturate + 0011
1001
数据没有发生溢出的结果为 9
Ex2
当我们设置如下图的流程时,我们将采样时候设置为 0.01s, sine 函数 的频率为 1Hs,幅值为140,停止仿真时间设置为 2s
当我们将 Gateway In 参数设置为 wrap时候,其仿真图如下:
当我们将 Gateway In 参数设置为 saturate 时候,其仿真图如下:
最后
以上就是怕黑中心为你收集整理的matlab simulink 参数设置,matlab simulink 中 gateway 参数设置的全部内容,希望文章能够帮你解决matlab simulink 参数设置,matlab simulink 中 gateway 参数设置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复