回复:浓缩物料控制

平淡是福

  • 帖子

    940
  • 精华

    5
  • 被关注

    5

论坛等级:侠士

注册时间:2006-06-27

普通 普通 如何晋级?

发布于 2009-09-28 09:18:58

15楼

quote:以下是引用eastar在2009-09-26 09:51:29的发言:
X1:= fValvePositionSV- fValvePositionPV;
IF X1>0.0 THEN k1:=1.0;END_IF;
IF X1<0.0 THEN k1:=-1.0;END_IF;
IF X1=0.0 THEN k1:=0.0;END_IF;
IF X1>=-0.001 AND X1<=0.001 THEN temp:=temp+K1*0.01;END_IF;
IF ((X1>=-0.005 AND X1<-0.001) OR ( X1>0.001 AND X1<=0.005))THEN temp:=temp+k1*0.02;END_IF;
IF ((X1>=-0.01 AND X1<-0.005) OR ( X1>0.005 AND X1<=0.01))THEN temp:=temp+k1*0.05;END_IF;
IF ((X1>=-0.03 AND X1<-0.01) OR ( X1>0.01 AND X1<=0.03))THEN temp:=temp+k1*0.1;END_IF;
IF ((X1>=-0.06 AND X1<-0.03) OR ( X1>0.03 AND X1<=0.06))THEN temp:=temp+k1*0.2;END_IF;
IF ((X1>=-0.1 AND X1<-0.06) OR ( X1>0.06 AND X1<=0.1))THEN temp:=temp+k1*0.3;END_IF;
IF ((X1>=-0.2 AND X1<-0.1) OR ( X1>0.1 AND X1<=0.2))THEN temp:=temp+k1*0.5;END_IF;
IF ((X1>=-0.4 AND X1<-0.2) OR ( X1>0.2 AND X1<=0.4))THEN temp:=temp+k1*0.8;END_IF;
IF ((X1>=-0.6 AND X1<-0.4) OR ( X1>0.4 AND X1<=0.6))THEN temp:=temp+k1*1.0;END_IF;
IF ((X1>=-0.8 AND X1<-0.6) OR ( X1>0.6 AND X1<=0.8))THEN temp:=temp+k1*1.2;END_IF;
IF ((X1>=-1.0 AND X1<-0.8) OR ( X1>0.8 AND X1<=1.0))THEN temp:=temp+k1*1.5;END_IF;
IF ((X1>=-2.0 AND X1<-1.0) OR ( X1>1.0 AND X1<=2.0))THEN temp:=temp+k1*2.0;END_IF;
IF ((X1>=-3.0 AND X1<-2.0) OR ( X1>2.0 AND X1<=3.0))THEN temp:=temp+k1*4.0;END_IF;
IF ((X1>=-5.0 AND X1<-3.0) OR ( X1>3.0 AND X1<=5.0))THEN temp:=temp+k1*6.0;END_IF;
IF ((X1>=-7.0 AND X1<-5.0) OR ( X1>5.0 AND X1<=7.0))THEN temp:=temp+k1*8.0;END_IF;
IF ((X1>=-10.0 AND X1<-7.0) OR ( X1>7.0 AND X1<=10.0))THEN temp:=temp+k1*12.0;END_IF;
IF ((X1>=-13.0 AND X1<-10.0) OR ( X1>10.0 AND X1<=13.0))THEN temp:=temp+k1*30.0;END_IF;
IF ((X1>=-16.0 AND X1<-13.0) OR ( X1>13.0 AND X1<=16.0))THEN temp:=temp+k1*15.0;END_IF;
IF ((X1>=-20.0 AND X1<-16.0) OR ( X1>16.0 AND X1<=20.0))THEN temp:=temp+k1*20.0;END_IF;
IF ((X1>=-25.0 AND X1<-20.0) OR ( X1>20.0 AND X1<=25.0))THEN temp:=temp+k1*25.0;END_IF;
IF ((X1>=-30.0 AND X1<-25.0) OR ( X1>25.0 AND X1<=30.0))THEN temp:=temp+k1*30.0;END_IF;
IF ((X1>=-100.0 AND X1<-30.0) OR ( X1>30.0 AND X1<=100.0))THEN temp:=temp+k1*35.0;END_IF;

Output:=temp;
IF Output<0.0 THEN
Output:= 0.0;
ELSE
IF Output>100.0 THEN
Output:=100.0;
END_IF;
END_IF;

可以试一下这个,或许能解决问题,没有了pid调节那种过调刹车式的波动,随时调节。



这个在PLC里做更好,如果系统没有延迟或延迟小用这个应该响应快的
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。