PID的算法的传递函数如下:
现在我们看看他的每一部分的具体组成
fE := fSetpointValue - fActualValue;(*误差*)
1. 保存前一个控制周期的值
2. 比例部分P
fYp:=fKp*fE; (*比例部分就是增益和误差的乘积*)
3. 积分部分
fYI := fYI_1 + (fKp * fCtrlCycleTime) * (fE + fE_1) / (2.0 * fTn) ;
这种积分没有使用梯形积分,就是简单的矩形积分。
4. 微分部分
(略)
5.控制器的输出
fY := fYP + fYI + fYD;
5.把当参数保存,用以下个周期的计算
fE_1 := fE;
fY_1 := fY;
fYI_1 := fYI;
fYD_1 := fYD;