代码如下:
FUNCTION_BLOCK Positionc_PID_Cycle_Period_First_shock (* 位置 PID带第一次冲击 液压滞后处理闭环系统 应用液压伺服控制 *)
(* U(t) = KP(err(t) + Σ(t)*dt/TI+TD*derr(t)/dt ) ;
err(t) = rin(t)-rout(t) ;
Σ(t) = err(t)+ err(t+1)+┈┈ ;
derr(t) = err(t)- err(t-1) ;
dt = 采样 循环周期 S
Kp为比例带,TI为积分时间,TD为微分时间 ;
*)
VAR_INPUT
Set:REAL; (* 设定值 *)
Actual:REAL; (* 实际值 *)
Cycle_time:REAL; (* 采样循环周期 单位:S *)
Blind_spot:REAL ; (* 死区 默认值转向角度1.0% *)
KP :REAL; (* 比例带 单位:% *)
TI :REAL; (* 积分时间 单位:S *)
Integral_limit :REAL; (* 积分 累计值限幅 Σ(t) 默认绝对值为300 *)
TD :REAL; (* 微分时间 单位:S *)
OUT_Manual:REAL; (* 手动 输出值 *)
OUT_OFFSET:REAL; (* 输出修正值 *)
OUT_MIN:REAL; (* 输出范围最小值 *)
OUT_MAX