您现在的位置是:首页 > PLC技术 > PLC技术
脉冲发生器FB 43的三级控制器仿真程序
来源:艾特贸易2017-12-28
简介例程“ PID_FB43 ”中的闭环控制系统由 PID 连续控制器 FB 41 、脉冲发生器 FB 43 、模拟电动调节阀的双向积分器和模拟被控对象的 FB 100 组成(见图 10-34 )。 图 10-34 三级控制器闭环仿真系
例程“PID_FB43”中的闭环控制系统由PID连续控制器FB 41、脉冲发生器FB 43、模拟电动调节阀的双向积分器和模拟被控对象的FB 100组成(见图10-34)。
图10-34 三级控制器闭环仿真系统的结构
电动调节阀是典型的积分型执行机构,它的两个开关量输入脉冲信号用来控制电动阀的伺服电动机的正转和反转,使调节阀的开度(即阀门阀芯的位置)增大或减小。
(1) OB1与OB100
与项目“PID控制”相同,OB1中的T8和T9组成振荡电路(见图10-18),产生方波给定信号。设定值SP_INT的幅度为20.0%和70.0%,周期为80s。具体的程序见随书光盘中的项目“PID_FB43”。
在OB100中调用FB 100、FB 41和FB 43,完成了下列操作:
1)令各FB的启动标志COM_RST为TRUE,将它们的内部参数复位为默认值。
2)设置FB 41和FB 100的采样周期CYCLE和FB 43的PER_TM周期为500 ms。
3)设置被控对象( FB100)的增益和时间常数,被控对象的传递函数为3/[(3s+1)(s+1)]。
4)设置PID控制器的参数GAIN、TI和TD的初始值。控制器输出下限值为-100.0%,上限值为默认的100.0%。
5)设置FB 43的采样时间CYCLE和最小脉冲时间P_B_TM均为20 ms,比率系数RACIOFAC为1.0,STEP3_ON为TURE(三级控制器)。
6)在退出OB100之前,将3个FB的启动标志位COM_RST复位。
(2) OB35中的程序
在硬件组态工具中设置OB35的循环执行周期为20 ms。每20 ms调用一次OB35,将“中断计数器”MW10加1,中断次数小于25时跳转到程序段5的标号m001处,执行一次FB 43和模拟电动调节阀的双向积分器程序。
经过500 ms后,中断次数等于25,不再跳转,“中断计数器”被清零。此时除了执行FB 43,还要执行程序段2~4中的FB 100和FB 41。调用FB 41的程序与项目“PID控制”的基本上相同,其区别在于控制器的输出不是直接送给被控对象FB 100,而是送给FB 43的输入变量INV。FB 43分别用Q1.0和Q1.1输出开阀的正脉冲和关阀的负脉冲。程序段6用数字双向积分器来模拟电动调节阀,积分器的输出值为被控对象的输入信号INV(见图10-34)。如果Q1.0和Q1.1均为0,数字双向积分器的输出值不变。
假设连续开阀时(FB 43的输入INV恒为100%),从全关到全开需要10s,平均每20 ms阀门开度变化量为0.2%。因此在Q1.0为1时将积分器的输出加0.2;在Q1.1为1时将积分器的输出减0.2。下面是OB35的程序。
程序段1:
L “中断计数器”
+ 1
T “中断计数器” //中断次数计数器MW10加1
L 25
>=I
JCN m001 //中断次数小于25次(500 ms)时跳转
程序段2:调用被控对象仿真程序FB100,每500 ms执行一次程序段2~4
L 0
T “中断计数器”
CALL “过程对象”,”过程对象DI” //调用FB 100
INV := //程序段6令积分器的输出值作为被控对象的
//输入值INV
DISV := //扰动量,初始值为0.0
GAIN := //比例系数,初始值为3.0
TM_LAG1 := //时间常数1,初始值为3s
TM_LAG2 := //时间常数2,初始值为1 s
TM_LAG3 := //时间常数3,初始值为0s
COM_RST := //启动标志,在OB100被复位
CYCLE := //采样周期,初始值为T#500MS
OUTV :=“PID_DI”.PV_IN //被控对象输出,作为PID控制器的反馈值
程序段3:计算微分操作的延迟时间,TM_LAG=TD/5
L “PID_DI”.TD
L 5. 000000e+ 000
/R
T ”PID_DI”.TM_LAG
程序段4:调用连续PID控制器FB 41,见例程“PID控制”
CALL ”CONT_C”,”PID_DI”
程序段5:每20 ms中断时调用一次FB 43
m001:CALL “PULSEGEN”,“脉冲_DI” //调用FB 43
INV :=“PID_DI”.LMN //来自FB 41的PID浮点数输出
PER_TM .= //周期时间,默认值为500 ms
P_B_TM .= //最小脉冲时间,初始值为20 ms
RATIOFAC := //比率系数,初始值为1.0
STEP3_ON .= //初始值为TRUE,三级控制器
ST2BI_ON .= //默认值为FALSE,不是二级控制器
MAN_ON := //默认值为FALSE,自动模式
POS_P_ON := //手动模式的正脉冲输入
NEG_P_ON:= //手动模式的负脉冲输入
SYN_ON .= //同步打开,默认值为TRUE
COM_RST .= //启动标志,在OB100被复位
CYCLE := //采样时间,初始值为20ms
QPOS_P :=Q1.0 //开阀输出信号
QNEG_P :=Q1.1 //关阀输出信号
程序段6:用于模拟电动调节阀的双向积分器
A Q 1.0
JCN 002
L “对象DI”.INV //Q1.0为1则被控对象的输入INV加0.2%
L 2. 000000e - 001
+R
T “对象DI”.INV
_002:A Q 1.1
JCN 003
L “对象DI”.INV //Q1.1为1则被控对象的输入INV减0.2%
L 2. 000000e - 001
-R
T “对象DI”.INV
003:NOP 0
图10-35是经过反复调试后得到的较好的响应曲线,PID参数如下:比例系数为0.3,积分时间为20 s,微分时间为4s,FB 43的脉冲输出周期为500ms。
图10-35 三级PID控制器响应曲线
(部分原创文章应编辑稿费需求,每篇需要收取2元的稿费,如需查看全文请联系客服索取,谢谢理解!在线客服:)
点击排行
