您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于PLC的单神经元PID控制器的实现2
基于PLC的单神经元PID控制器的实现任俊杰自动化学院,北京联合大学,北京,100101,中国zdhtjunjie@buu.edu.cn摘要:考虑到复杂的控制系统非线性,纯滞后,大惯性,以及随时间变化的特点,传统的PID控制算法通常未能获得较好的控制效果。将神经网络控制算法与传统的PID控制算法结合起来,神经元自适应PID控制能有效地提高了系统的性能。本文设计的基于PLC的是一个单一的神经元PID控制器。该控制系统的结构是简单的。实现单神经元PID算法的功能块程序写在结构控制语言(SCL)。该函数块具有常用和方便的特点。实验结果表明,这种方法不仅高效,而且实用。关键词:单神经元,PID,PLC,SCLI.简介由于PID控制算法简单,易于实施和良好的鲁棒性,它被广泛应用于工业过程控制系统。但是,对于一个复杂的控制系统的非线性,纯时间延迟,大惯量和随时间变化的特性,传统的PID控制算法通常不能获得更好的控制效果。添加先进的智能控制传统的PID控制算法,控制效果会更理想。具有近似任意连续有界非线性函数的功能,神经网络是一种来解决非线性系统和不确定的系统有效的方式[1]。在本文中,神经网络与传统的PID控制结合为应用PLC的神经自适应PID控制器。他们发挥各自的优势。与传统的PID控制相比,它具有超调小,控制高精度,抗干扰性能强的优点。II.基于PLC的控制系统的结构单神经元PID控制器被应用到控制系统。它具有传统PID的优点,并且还具有神经网络的优点,如并联结构,结构简单,学习和记忆功能和以及容易实现的特点[2]。图1显示了用PLC作为控制器的单神经元PID控制系统。图1中的虚线表示的是单个神经元PID控制器。实际输出值y用计量装置转换为1-5V的电压信号或4-20mA的电流信号。模拟信号连接到PLC的AI模块进行A/D转换。用户程序中,比较了测量值y与设定值r,误差e测量和转换为三个输入信号的单神经元对应的比例,也比较了积分和差的功能。通过单神经元PID算法操作,可以获得输出操作信号u。由D/A转换模块它被转换成一个模拟信号驱动致动器来实现控制的过程。III.单神经元PID控制算法传统的连续PID控制算法u(t)=kp[e(t)+1/T1∫0te(t)dt+Td*de(t)/dt](1)其中KP为比例系数,TI和Td是重要的的时间常数和微分时间常数。对于离散时间系统,当T为采样期内,本算法描述u(k)=kpe(k)+ki∑e(j)+kd[e(k)-e(k-1)](2)其中的Kp,Ki,Kd分别为比例,积分和微分系数分别为E(K)是在时间kT的错误,U(k)是在时间kT的产值。增量式PID控制算法可以写成由⊿u(k)=kp[e(k)-e(k-1)]+ki*e(k)+kd[e(k)-2e(k-1)+e(k-2)](3)三态变量对应的比例,积分和微分功能被选择作为输入神经元控制器的信号。单神经元PID控制器如图1所示。图1单神经元PID控制系统的结构根据设定值值r(k)和实际输出值Y(K),三种状态变量可以通过状态转换获得。本文中的控制器的三种状态变量的控制器可按如下选择:X1(k)=e(k)X2(k)=e(k)-e(k-1)(4)X3(k)=e(k)-2e(k-1)+e(k-2)在控制器的输出可以被写为U(k)=u(k-1)+⊿u(5)Wi(k)=wi(k)/∑|wi(k)|(6)其中wi(k)和Wi(k)(i=1,2,3)是互连重量和欧几里德范数权重向量,和K是控制器的增益。从公式3和5,可以得到Kp=kw2(k)Ki=kw1(k)(7)Kd=kw3(k)因此,神经元控制器具有PID控制器的特性。通过宽度调整和提高控制参数它可以实现自适应,自组织的功能[3]。通过采用相关的学习算法策略,调整上线宽度。在该系统中采用一种改进的Hebb学习算法。该调节宽度过程被描述为W1(k)=w1(k-1)+ηie(k)u(k)[2e(k)-e(k-1)]W2(k)=w2(k-1)+ηpe(k)u(k)[2e(k)-e(k-1)](8)W3(k)=w3(k-1)+ηde(k)u(k)[2e(k)-e(k-1)]其中ηI,ηP和ηD学习率。IV.控制算法编程西门子S7系列PLC非常广泛地应用于工业领域。编程软件STEP7不仅支持梯形图(LAD),指令表(STL),功能块图(FBD)的编程,它也提供结构化控制语言(SCL)编程。SCL非常适合于复杂的控制算法编程[4]。在该系统中,用S7300PLC作为控制器,单神经元PID控制算法应用功能块FB3。A.控制算法流程图应用功能块FB3的单个神经元的PID控制算法流程图如图2所示。图2单神经元PID控制算法流程图B.单神经元PID功能块一旦SCL源文件已经没有任何编译错误,单神经元PID的功能块FB3就可以被创建。可将功能块存储在S7程序块存储器中。它可以由其它程序调用,也可以使用由其他用户创建的标准的功能块。该LAD中的功能块FB3如图3所示。输入参数是在左边,输出参数的右侧。参数说明如表1。当FB3被调用时,实例数据块也应分配给功能块。图3FB3(单神经元PID功能块)表一参数FB3ParsmeterDataTypeDescriptionSVREALSetpointvaluePVREALProcessvariablexitePREALProportionallearningratexiteIREALIntegrallearningratexiteDREALDerivativelearningrateKREALProportionalgainMODEINTModeoflearningalgorithm1:UnsupervisedHebblearningalgorithm;2:SupervisedDeltalearningalgorithm;3:SupervisedHebblearningalgorithm;4:ImprovedHebblearningalgorithmLimitHighREALManipulatedvaluehighlimitLimitLowREALManipulatedvaluelowlimitwKp_1REALProportionalweightwKi_1REALIntegralweightwKd_1REALDerivativeweightOutREALManipulatedvalueV.单神经元PID控制的应用为了测试单神经元PID的调节作用控制,应用S7300作为控制器,控制程序实现水箱液位调节。程序调用了FB3。设定值是200mm。最初的学习率ηP=0.01,ηI=0.001,ηD=0.01,增益K=300和初始宽度wKp_1=0.015,wKi_1=0.82,wKd_1=0.16。采样周期为2秒。我们获得的实时响应如图4。图4上线的液位控制曲线与设定值=200MM(单神经元PID)为了比较控制效果,标准的PID控制功能块FB41Z在另一个程序中实现传统的PID控制。产生的响应如图5所示。图4显示了零超调,稳定时间155sec和稳态误差为±1毫米;图5显示了超调是7%,稳定时间为155sec和稳态误差为±2毫米。很显然,超调和稳态误差在单神经PID控制系统中明显减少。因此,单神经元PID算法可以有效地提高系统的性能。图5上线的液位控制曲线与设定值=200MM(传统的PID)VI.结论神经网络与传统PID控制相结合,形成一个单一的神经元PID控制器。互连单一的神经元的权重,对应于三个传统的PID控制参数。控制参数通过学习算法可以被修改为实时控制参数[5]。在PLC控制系统,很容易获得具有SCL编程语言和单神经元PID控制功能块的单神经元PID算法是常见并且方便的。相对于传统的PID控制算法,基于PLC的单神经元PID控制器是自适应[6]。超调和稳态误差显着降低,可以得到良好的控制效果。致谢这项工作是北京联合大学(号zk200920x)的研究项目。参考文献[1]黄金燕,葛华敏,唐明君,“研究PIDBP神经网络“,微电脑控制的基础上信息(嵌入式系统及SOC),2006年9月,第22卷,278-280.[2]韩冰心,刘立宪,冯涛,“神经网络应用PLC控制系统“,微计算机信息(控制与自动化),2007年11月,第23卷,第63页-64,68.[3]刘朱金坤先进PID控制MATLAB仿真,北京:出版社的电子Industry.2004.153-154。[4]RenJunjie,ZuoQuan,LiHongxing,“StructureControlLanguageanditsApplicationinControlAlgorithmProgramming”,MeasuringTechnologyandMechatronicsAutomation(ICMTMA),2010,3pp.508-511.[5]孙坚,“电阻炉智能温度控制系统基于单神经元PID“,硕士论文。大连,辽宁,中国:大连理工大学.2008,12,6。[6]徐菱花,李捍东,曹敏,“单神经元PLC的PID算法在液位控制“,现代制造工程2009年10月,第116-119页。
本文标题:基于PLC的单神经元PID控制器的实现2
链接地址:https://www.777doc.com/doc-2571482 .html