最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

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

发布时间:2013-12-20 作者:任俊杰  来源:万方数据
关键字:PLC PID 控制器 
本文对于大滞后、时变和非线性的复杂系统,常规PID控制显得无能为力。将神经网络与常规PID控制相结合,构成单神经元自适应PID控制器。给出了基于PLC的单神经元PID控制系统结构,重点介绍了单神经元PID控制算法原理,并用结构控制语言编写了单神经元PID控制算法功能块,该控制功能块具有通用性且易于移植。经实例证明,与传统PID控制器相比较,单神经元PIO控制器可以显著改善系统的性能。

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

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

  3.1 变量声明及初始化

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

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

代码

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


代码

  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文件夹中,可以被其他程序调用,也可以作为通用功能块被其他用户使用。单神经元PID功能块FB3被调用时的梯形图如图2所示,左侧为输入参数,对应输入变量;右侧为输出参数,对应输出变量。在调用FB3时要对相应的参数赋实参,还需要指定一个背景数据块。

单神经元PID控制算法功能块
图2单神经元PID控制算法功能块

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。