基于PLC的单神经元PID控制器的设计与实现

来源:互联网

点击:3423

A+ A-

所属频道:新闻中心

关键词:PLC PID控制器 设计

    0 引言

      PID控制由千其算法简单、容易实现和鲁棒性好等特点,被广泛应用于工业过程控制并取得了良好的控制效果。但当被控对象数学模型复杂,尤其对于大滞后、时变和非线性的复杂系统,常规PID控制显得无能为力,其应用受到很大的限制和挑战,因此,需要在传统的PID控制上加人先进的智能控制算法,使得控制效果更为理想。神经网络具有逼近任意连续有界非线性函数的能力,对于非线性系统和不确定性系统,是一种解决问题的有效途径川。本文将神经网络与常规PID控制相结合,发挥各自的优势,形成神经元自适应PID控制器,并在PLC中设计实现。与传统PID相比较,具有响应速度快、抗干扰能力强和超调量小等特点。

    1 基于PLC的单神经元PID控制系统结构

      控制系统采用单神经元组成的PID控制器,它具有传统PID控制器的优点,也具有神经网络的并行结构和学习记忆功能,并且结构简单,易于实现I21。

      以PLC作为控制器构成的单神经元PID控制系统如图1所示。虚线部分为单神经元PID控制器。检测元件将被控量实际值Y测量转换为I-SY电压信号或4-20mA电流信号,该模拟信号接至PLC的AI模块,进行A1D转换。将测量值Y与给定值;比较,通过二者的偏差e(t)进行单神经元PID算法的运算得到输出操作信号u(t),经PLC的AO模块进行D/A转换,用于驱动执行机构,实现对被控对象的控制。

    2 单神经元PID控制器算法原理

      将偏差的比例、积分和微分的三个分量作为单神经元的输入量,就构成量单神经元PID控制器,其结构如图1虚线部分所示。

      图1中,根据给定输人信号r(k)和实际输出信号y(k),经状态转换器转换为神经元的输入量x1(k),  x2(k),  x3(k),即对应积分、比例和微分的三个分量

      比较式(3)和(5)可以看出PID参数分别为Kp= Kw'(k), K= Kw1'(k), Kd=Kw3'(k)。故该神经元控制器具有PID控制器的特性,它通过对加权系数的调整来实现自适应、自组织功能,从而可以达到改善控制系统的控制性能的目的。

      权系数的调整可以按不同的学习规则实现,在本系统中单神经元自适应PID控制器采用改进的有监督的Hebb学习规则。

    3 基于SCL的单神经元PID控制算法功能块设计


      西门子S7系列PLC在国内工控领域中使用很广,它的编程软件STEP7除了支持梯形图(LAD) ,指令表((STL)和功能块(FDB)语言编程,还提供结构控制语言SCL (Structure Control Language)编程,SCL非常适合复杂控制算法的编程。以S7300PLC作为控制器,采用SCL语言编写了功能块FB3来实现单神经元PID控制算法。

      3.1 变量声明及初始化

      采用SCL编写单神经元PID算法时,先要进行变量声明及初始化。变量包括输人变量、输出变量及中间变量。

    根据单神经元PID控制算法,定义的输入变量包括设定值、过程值、学习速率、权系数、神经元的比例系数以及单神经元PID控制器输出的最大值最小值,并且在变量声明时给出了变量数据类型和初始值。

      输出变量传送当前输出值到产生调用的块。单神经元PID控制算法的输出操作值即为输出变量。

      3.2 单神经元PID控制算法SCL编程

      实现单神经元PID控制算法的SCL程序编程步骤如下:

      1)计算偏差e(k);

      2)计算神经元输人x;(k);

      3)计算加权系数的调整值w;(k);

      4)对w;(k)的归一化处理,计算可(k),

      5)计算控制器的输出u(k),并进行限幅处理。

      对SCL源程序文件进行编译,编译成功就生成单神经元PID功能块FB3,并保存在S7程序中的Blocks文件夹中,可以被其他程序调用,也可以作为通用功能块被其他用户使用。左侧为输入参数,对应输入变量;右侧为输出参数,对应输出变量。在调用FB3时要对相应的参数赋实参,还需要指定一个背景数据块。

    4 单神经元PID控制器应用实例


      采用S7300 PLC控制器,以一个典型的双容液位过程为被控对象,以后一个容器液位为被控量,用STEP 7编写控制程序调用功能块FB3进行液位单神经元PID调节。

      液位设定值为200mm,采用单神经元PID控制,设初始学习速率ηp=0.01, η1=0.001,ηD=0.01,增益K=300,加权系数初值wKp_1}.015, wKi_10.82, wKd_l}.lb,采样周期2s。

      采用传统PID控制时的实时响应曲线如图4所示。

      由图3和图4可知,单神经元PID控制器超调大大减小,稳态性能也得到提高。

    5 结论

      将神经网络与常规PID调节器控制思路相结合,产生了单神经元PID控制器,单神经元结构的连接权值与常规PID的三个参数一一对应,可以在线进行PID参数的学习。以PLC为控制器,利用SCL编程语言实现单神经元PID算法比较简单,而且编写的单神经元PID控制功能块具有通用性。与传统PID控制器比较,基于PLC的单神经元PID控制器具有自学习和自适应能力超调量和稳态误差显著减小,控制效果良好。


    (审核编辑: 智汇张瑜)