AB-PID教程 点击:2407 | 回复:1



GavinLei

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 32回
  • 年度积分:21
  • 历史总积分:568
  • 注册:2015年10月01日
发表于:2017-07-26 17:23:08
楼主


一、新建一个数据类型为PID的标签,名为Test、P101_PV……如下图:

 

二、下边为我编的一个程序截图,可以让PID指令周期性执行,你可以根据你的工艺情况设定时间,当然也可以不要,不要的话就是连续型(周期时间可以设定,一般不能小于扫描时间-20ms)任务,即PID指令不停的扫描输出。根据我对你星期五的叙述,我觉得你们的设计可以有点问题,因为通过阀门一般是调节气量的,因为里边是静压。所以阀门应该一直开到最大,执行机构应该是空压机的油门大小。。。。。。

 

三、配置PID参数

1、块界面参数配置

Prosess Variable 指定过程变量,一般为模拟量输入,在这里也就是你压力变送器读来的过程值,已经转换好的工程量。比如0.3Bar 记好数据类型为浮点型。在这里你可以将变量输入PID块里。

Tieback 指定手动控制站手动控制跟随变量,一般为模拟量输入,即这个变量为PID手动跟随变量,与输出有关,比如阀门开度设定等。

Control Variable 指定PID控制变量,在这里应该是对应你的AO,也就是你的阀门开度的通道变量,我在这里给你建了的V101_SP,你可以把这个变量和硬件地址对应起来。在这里你可以将变量输入PID块里。

 

PID Master Loop 这个与串级PID有关系,也就是多个PID串路,这里你可以默认。

Inhold Bit 这个决定输出初始值是否保持在上次的终值,这个位可以实现启动的平滑过渡,即PID运行后,输出的初始值有关。

Inhold Value 输出初始值保持在上一次的终值上

SetPoint 给定量SP的显示值。如下图,你可以通过一个浮点型变量将设定值给PID的这个变量,这样你就在线可以看到你的设定值。在线监控方便。

 

Process Variable 过程变量PV的显示值,目的为在线监控方便。

Output% 控制变量CV的百分比显示值,这里会显示经过PID计算后给定阀门开度。比如4-20ma对应阀门开度0-100.

2、Tuning 界面参数配置如下图

 

上边Setpoint(SP)、Set output、Output Bias、Manual、Software Muaual在这里可以直接配置,不过一般用变量比较方便,因为一般调试都会通过上位机对应变量调试比较方便,比如你可以在Setpoint(SP)这里输入0.3与我上边程序里的直接对应变量赋值结果是一样的,你在建的PID数据类型里可以查看与PID块相关的所有变量,而且可以读写。 

下边这三个参数我就不用介绍了,是比例、积分、微分,一般没有滞后的话,微分默认为0.前边两个参数先调比例,因为比例与偏差大小相关,比例值设的约大,会根据偏差放大,也就是说输出幅度会大,这个参数调节平稳后。接下来再调积分参数,积分是时间参数,也就是积分项里的积分时间,也就是把比例调节后,平稳的波形偏差部分积分计算影响输出。

3、Configuration界面,如下图:

 

PID Equation PID控制模式 在这里我们选择独立增益,这里对应的是不同的微分方程的数学模型,独立增益; Output = Kp (E) + Ki∫(E)dt + Kd × d(E)/dt + Bias.增益: Output = Kc [ (E) + 1/Ti∫(E)dt + Td × d(PV)/dt ] + Bias

Control Action 控制方向,决定控制环的反馈极性,这里我们选择SP-PV,即负方向,有的系统叫反比例。

Derivative of 微分对象选择,对PV进行微分,减少SP给定引起的冲击,对偏差微分,获得对SP变化量的快速响应。

Loop Update Time 回路更新时间,不能为0或者负数,即PID运算周期时间,你可以根据工艺情况设定这个参数,或者在PID前加一个时间周期位都可以的,参考上边截图。

CV high limit 输出上限,至于%号与工程量有关系,后边会讲到。

CV Low limit 输出下限。

Deadband Value 死区值,PID会根据你这里设定的死区值,决定在这个范围,不输出变化。

4、Alarms

你可以根据你情况配置

5、定标,如下图

 

Process Variable 关于过程变量

Unscaled max:模拟量模块输入通道的最大定标值,即模拟量模块中的工程定标定标最大值。如下图:也就是20ma对应的那个工程最大值,比如你是100kpa,你就填100.

 

Unscaled min:模拟量模块输入通道的最小定标值,即模拟量模块中的工程定标定标最小值。同上图所示。

Engineering Unit Max :PV在PID中再次标定的工程定标最大值,比如你是1bar,你就就设1,或者100,对应100KPA即可。

Engineering Unit Min:与上类似。

Control Variable 关于控制变量

Max(at 100%):控制变量最大值,PID计算结果。百分比最大值所对应的模拟量模块输出通道的工程定标最大值。因为你是阀门,一般习惯为100,你直接设100即可。

Min (at  0%):控制变量最小值,PID计算结果。百分比最大值所对应的模拟量模块输出通道的工程定标最小值。

Tieback 关于手动控制跟踪变量,这里你可以填和CV一样。



补充一下,你刚谈到的初始值问题,你先把PID调节原理看下,网上资料很多的。然后你应该通过监控可以看到流量值的,比如你现在的流量是800,你的PID块还没有运行,你可以先看下阀门开度是多少,比如是45%,你这个时候通过阀门输出上下限解决这个问题,也就是你块的配置画面里将上下限设为46-44,然后慢慢再设PID参数,然后再增大上下限区间。。。。。。。








依旧捌陆

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 22回
  • 年度积分:0
  • 历史总积分:83
  • 注册:2018年4月18日
发表于:2018-09-11 00:10:39
1楼

学习下,谢谢楼主!


热门招聘
相关主题

官方公众号

智造工程师