1、在代码中,使用不完全微分,代码如下:
IF NOT MAN_ON AND D_SEL THEN (*不完全微分作用投入*)
Verstaerk := rTd / ( rCycle * 0.5 + rTmLag ) ;
Danteil := ( Diff - sRueck ) * Verstaerk ; (*计算微分量*)
RueckAlt := sRueck ;
RueckDiff := rCycle / rTd * Danteil + sRestDif ;
sRueck := RueckDiff + RueckAlt ;
sRestDif := RueckAlt - sRueck + RueckDiff ; (*同积分一样计算微分误差量*)
ELSE
求教各位大侠,这个怎么看?我怎么跟离散化的公式对不起来呢?(请详细解释一下,多谢)
2、下面这段代码的理论依据是什么呢?
IF rTi < rCycle * 0.5 THEN (*积分时间必须 >= 采样时间的0.5倍*)
rTi := rCycle * 0.5 ;
END_IF;
IF rTd < rCycle THEN (*微分时间必须 >= 采样时间*)
rTd := rCycle ;
END_IF;
IF rTmLag < rCycle * 0.5 THEN (*微分作用延时时间必须 >= 采样时间的0.5倍*)
rTmLag := rCycle * 0.5 ;
END_IF;