找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
想学一下增量式PID,谁能帮忙将下面S1200的库程序转换成S7 200或 smart200 。谢谢
Sv:REAL;//设定值
Pv:REAL;//采样值
Kp:REAL:=1.0;//比例系数
Ki:REAL:=0.01;//积分系数
Kd:REAL:=0.0;//微分系数
LimitHigh:REAL:=100.0;//输出最大值
LimitLow:REAL:=0;//输出最小值
AM:BOOL;//手自动
MV:REAL;//手动值
SQ:REAL;//死区
Mode:BOOL;//正反作用选择
FF:REAL;//前馈信号
MAXE:REAL:=50;//积分分离阙值
以下程序
IF Mode = true THEN
e:=(Pv-Sv);
ELSE
e:=(Sv-Pv);
END_IF;
IF ABS(e)e:=0;
ELSIF ABS(e)>MAXE THEN
B:=0.0;
ELSE b:=1.0;
END_IF;
IF AM=TRUE THEN
KP_V:=Kp*(e-e1);
KI_V:=B*Ki*e;
KD_V:=Kd*(e-2*e1+e2);
FF_LAST:=FF-FF_LAST1;
OutLast:=KP_V+KI_V+KD_V+FF_LAST+OutLast;
MV:=OUTLAST;
ELSE
OutLast:=MV;
SV:=PV;
END_IF;
IF OutLast>LimitHigh THEN
OutLast:=LimitHigh;
ELSIF OutLastOutLast:=LimitLow;
END_IF;
e2:=e1;
e1:=e;
FF_LAST:=FF;
FF_LAST1:=FF_LAST;
Out:=OutLast;
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
200PLC 的PID就是增量式PID 你没有必要写个,除非你想超过8个PID的限制. 200PLC自带向导生成的PID数量只有8个,你自己写PID那确实可以超过8个的。控制程序里面的PID都是离散式的PID。也就是和扫描周期有关系。从本质上来说,PID是当次、上次、上上次的偏差的加权平均值,对于增量和非增量的(阀位式的)的区别就在于输出结果 。阀位式的 将偏差进行PID运算得出结果直接作为输出。而增量式的是阀位式的当此和上次的阀位式输出之间的差值再加上此时的实际阀位的值得出的和作为输出值的。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!