发布于 2014-10-09 22:24:35
2楼
这是浮点数当两个数据相差到一个数量级是产生的计算误差,西门子FB41里积分使用的算法较好
本次累积量=本次积分量+上一次计算误差
当前累计值=上一次累计值+本次累计量
当前计算误差=上一次累计值-当前累计值+本次累计量
试验代码如下:
L MD 0 //当前瞬时量
L MD 4 //上一次的计算误差
+R
T MD 8
+R
L MD 12 //上一次的累计值
+R
T MD 16 //当前累计值
L MD 12
TAK
-R
L MD 8
+R
T MD 4
L MD 16
T MD 12