恭喜,你发布的帖子
发布于 2022-10-10 10:30:15
19楼
数学水平比较差,综合你们的内容我理解:
输出 Out = In + (Out-In).e^(-sampletime/Lagtime)
其中sampletime = 采样时间
lagtime = 延迟时间
公式中e^(-sampletime/Lagtime) 是线性外插的系数,代码中的浮点精度误差“sRest”同样也是外插系数,被用作了截距。
代码中
Hvar:=(INV - RueckAlt) * H / (1.0 + H); H/(1.0+H)即e^(-sampletime/Lagtime) 的近似表达,采取了双线性替代,但我们之前推断了,这个地方少了一个*2.0,我认为这个少的2.0跟代码中
RueckDiff:=2.0 * Hvar + sRest;
这个2.0,有点关系
-----------------------------------
为保证系数在0-1之间,程序做了Lag time的下限设置
IF rTmLag < rCycle * 0.5 THEN rTmLag:=rCycle * 0.5; END_IF;
请填写推广理由:
分享
只看
楼主