CN104007659A - Bp神经网络在s7-300系列plc中的实现方法 - Google Patents
Bp神经网络在s7-300系列plc中的实现方法 Download PDFInfo
- Publication number
- CN104007659A CN104007659A CN201410230726.4A CN201410230726A CN104007659A CN 104007659 A CN104007659 A CN 104007659A CN 201410230726 A CN201410230726 A CN 201410230726A CN 104007659 A CN104007659 A CN 104007659A
- Authority
- CN
- China
- Prior art keywords
- data block
- neural network
- output
- take out
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 10
- 230000006870 function Effects 0.000 claims abstract description 4
- 238000013459 approach Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明公开了BP神经网络在S7-300系列PLC中的实现方法,在S7-300系列PLC系统中定义12个数据块(DB1~DB12),使其和BP神经网络迭代算式中的输入变量、隐含节点输入、隐含节点输出、输出节点输入、输出变量、权值wij、权值wjk、阈值aj、阈值bk、误差ek、学习效率η、期望输出等若干变量一一对应,将BP神经网络迭代算式中若干变量的存取操作转化为PLC系统对应数据块中变量的存取操作。使用PLC系统的指令系统,直接实现BP神经网络的迭代运算,通过提供单次迭代、误差限结束、限次结束三种运行模式,以适应PLC系统的多种应用场合,避免BP神经网络的运行时间过长而影响PLC系统的正常扫描功能。
Description
技术领域
本发明属于自动化技术领域,涉及BP神经网络在S7-300系列PLC中的实现方法。
背景技术
可编程序控制器(PLC),工业控制微机(主要是IPC)、集散控制系统(DCS)/现场总线控制系统(FCS)和智能控制仪表,是工业自动化领域常用的四大类控制装置。其中,PLC凭借其高可靠性和易用性,在工业自动化工程中的应用最为广泛。大中型PLC主要用于复杂生产线控制、顺序控制、批量控制和流程工业控制。在众多的大中型PLC系统中,西门子的S7-300或S7-400系列PLC凭借其良好的体系结构、网络功能、集成技术和技术支持,已成为我国广泛应用的大中型PLC系统之一。
BP网络是1986年由Rumelhart和McCelland为首的科学家小组提出,该网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络采用最速下降法学习规则,能学习和存贮大量的输入/输出模式映射关系,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(Input Layer)、隐含层(Hide Layer)和输出层(Output Layer)。BP神经网络广泛应用于工业过程建模、软测量、优化控制、变量预测等场合。
当前广泛使用的PLC系统按照IEC61131-3国际标准提供编程语言和指令系统,各PLC系统厂家尚未提供BP神经网络模块或指令库。鉴于此,BP神经网络的研究或应用多采用基于PC的Matlab平台或C语言平台。现有技术必须首先从PLC系统等控制设备中获取过程数据,接着通过PC机的Matlab平台,完成BP神经网络的训练,建立模型,根据模型进行预报,最后根据预报结果修改控制参数或控制量,将结果再回传到PLC,由PLC系统优化控制等任务。因此,现有技术存在明显不足:其一,需要周而复始地从PLC系统获取数据和传输结果信息到PLC系统,需要借助于通信网络和PC平台,网络故障,尤其是固有存在的网络时延都将影响神经网络控制的实际效果。其二,过于复杂,神经网络计算时间的不确定性和工业过程控制追求的实时性、确定性存在冲突,过度延长PLC系统的扫描周期还会降低PLC系统的可靠性。其三,工业环境的高要求也对PC平台的运行环境提出了挑战,增加的PC平台还会导致系统的成本的增加。因此,如何直接在PLC系统中实现BP神经网络是自动化工程界一直追求的目标。
发明内容
本发明的目的在于提供BP神经网络在S7-300系列PLC中的实现方法,解决了目前BP神经网络在PLC中过于复杂,成本高的问题。
本发明采用的技术方案如下:
第一步,在S7-300系列PLC中定义12个数据块:
数据块DB1~DB12分别存放BP神经网络迭代算式中的输入变量、隐含节点输入、隐含节点输出、输出层输入、输出变量、权值wij、权值wjk、阈值aj、阈值bk、误差ek、学习效率η和期望输出;
第二步,初始化数据块:
BP神经网络样本中的输入变量传送到DB1,样本中的输出变量传送到DB12,数据块DB6和DB7中的各变量初值设为零,数据块DB8和DB9中的各变量初值设为0.05,DB11中的学习效率初值设为0.5;
第三步,计算隐含层输入:
分别从数据块DB1和DB6中取出xi和wij,按下式计算隐含层的输入HIj:
第四步,计算隐含层输出:
分别从数据块DB2和DB8取出HIj和aj,按下式计算隐含层的输出HOj:
第五步,计算输出层输入:
分别从数据块DB3和DB7中取出HOj和wjk,按下式计算输出层的输入PIk:
第六步,计算输出层输出:
分别从数据块DB4和DB9中取出PIk和bk,按下式计算输出层的输出POk:
POk=PIk-bk k=1,2,…,m;
第七步,计算预测误差:
分别从数据块DB5和DB12中取出POk和yk,按下式计算预测误差ek:
ek=yk-POk k=1,2,…,m;
第八步,更新权值wij和wjk:
分别从数据块DB7、DB11、DB3和DB10中取出wjk、η、HOj和ek,按下式更新权值wjk:
wjk=wjk+ηHOjek j=1,2,…,l;k=1,2,…,m;
分别从数据块DB6、DB11、DB3、DB1、DB7和DB10中取出wij、η、HOj、xi、wjk和ek,按下式更新权值wij:
第九步,更新阈值aj和bk:
分别从数据块DB8、DB11、DB3、DB7和DB10中取出wij、η、HOj、wjk和ek,按下式更新阈值aj:
分别从数据块DB9和DB10中取出bk和ek,按下式更新阈值bk:
bk=bk+ek k=1,2,…,m;
第十步,判断循环与结束:
PLC系统实现的BP网络程序根据Mode标志的三种取值进行判断,Mode=0为单次迭代运行模式,Mode=1为限次迭代模式,Mode=2为误差限运行模式。
进一步,将BP神经网络迭代算式中若干变量的存取操作转化为PLC系统对应数据块中变量的存取操作,提供单次迭代、误差限结束、限次结束三种运行模式,以适应PLC系统的多种应用场合,有效避免BP神经网络的运行时间过长而影响PLC系统的正常扫描功能。
本发明使用西门子S7-300系列PLC系统的指令系统,直接在PLC中实现BP神经网络,使得现有的PLC系统可以直接利用BP神经网络实现工业过程建模和优化控制。
附图说明
图1是本发明采用BP神经网络结构图;
图2是DB1的定义示意图;
图3是DB6的定义示意图;
图4是BP神经网络在S7-300系列PLC系统中的实现流程图;
图5是使用PLC系统中的BP网络逼近对象特性图;
图6是使用PLC系统中的BP网络逼近对象特性时的误差图;
图7是使用Matlab提供的BP网络逼近对象特性图;
图8是使用Matlab提供的BP网络逼近对象特性的误差图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
第一步:在S7-300系列PLC中定义12个数据块。
定义的12个数据块存取BP网络的所有参数。数据块是S7-300系列PLC系统数量最多的软元件,不同的CPU,其数据块的容量及其数量不尽相同,S7-300的数据块容量可达64kB,数据块数量可达1024个。为此,使用PLC系统中的数据块来存取BP神经网络迭代算式中所需参数。
如图1所示的BP网络结构,采用S7-300系列PLC的Step7编程软件,在S7-300系列PLC中定义表1所示的12个数据块,数据块的名称依次为DB1,DB2,……DB12。数据块DB1~DB12分别存放BP神经网络迭代算式中的输入变量、隐含节点输入、隐含节点输出、输出层输入、输出变量、权值wij、权值wjk、阈值aj、阈值bk、误差ek、学习效率η和期望输出。图2和图3给出了两个数据块的定义实例,其他数据块的定义与此类似。12个数据块中的每个变量均为浮点数类型(即Real类型,占4个字节)。数据块DB1~DB12的变量个数见表1。n为输入变量个数(输入层节点数),l为隐含层节点数,m为输出变量个数(输出层节点数),r为样本个数。
表1数据块DB1~DB11的用途与变量个数
第二步:初始化数据块
使用PLC系统的传送指令初始化数据块DB1~DB12。将样本中的输入变量传送到DB1,样本中的输出变量传送到DB12。数据块DB6和DB7中的各变量初值可以为零;数据块DB8和DB9中的各变量初值为0.05;DB11中的学习效率初值为0.5。其余数据块存放计算过程的中间结果,不需初始化。
第三步:计算隐含层输入
分别从数据块DB1和DB6中取出xi和wij,按下式计算隐含层的输入HIj:
将HIj存入数据块DB2中。循环计算次数等于隐含层节点数l。
第四步:计算隐含层输出
分别从数据块DB2和DB8取出HIj和aj,按下式计算隐含层的输出HOj:
将HOj存于数据块DB3中。循环计算次数等于隐含层节点数l。
第五步:计算输出层输入
分别从数据块DB3和DB7中取出HOj和wjk,按下式计算输出层的输入PIk:
将PIk存于数据块DB4中,循环次数等于输出层节点数m。
第六步:计算输出层输出
分别从数据块DB4和DB9中取出PIk和bk,按下式计算输出层的输出POk:
POk=PIk-bk k=1,2,…,m
将POk存于数据块DB5中,循环次数等于输出层节点数m。
第七步:计算预测误差
分别从数据块DB5和DB12中取出POk和yk,按下式计算预测误差ek:
ek=yk-POk k=1,2,…,m
将ek存于数据块DB10中,循环次数等于输出层节点数m。
第八步:更新权值wij和wjk
分别从数据块DB7、DB11、DB3和DB10中取出wjk、η、HOj和ek,按下式更新权值wjk:
wjk=wjk+ηHOjek j=1,2,…,l;k=1,2,…,m
公式左边的wjk表示更新后的权值,右边的wjk表示更新前的权值。将更新后的wjk存回到数据块DB7。
分别从数据块DB6、DB11、DB3、DB1、DB7和DB10中取出wij、η、HOj、xi、wjk和ek,按下式更新权值wij:
公式左边的wij表示更新后的权值,右边的wij表示更新前的权值。将更新后的wij存回到数据块DB6。
第九步:更新阈值aj和bk
分别从数据块DB8、DB11、DB3、DB7和DB10中取出wij、η、HOj、wjk和ek,按下式更新阈值aj:
公式左边的aj表示更新后的阈值,右边的aj表示更新前的阈值。将更新后的阈值aj存回到数据块DB8。
分别从数据块DB9和DB10中取出bk和ek,按下式更新阈值bk:
bk=bk+ek k=1,2,…,m
公式左边的bk表示更新后的阈值,右边的bk表示更新前的阈值。
将更新后的bk存回到数据块DB9。
第十步:判断循环与结束
PLC系统实现的BP网络程序根据Mode标志的三种取值进行判断。Mode=0为单次迭代运行模式,Mode=1为限次迭代模式,Mode=2为误差限运行模式。上述第三步到第九步为BP神经网络的迭代计算步骤。当Mode=0时,程序执行完第三步到第九步后即可退出,即PLC系统的一个扫描周期只进行算法的一次迭代操作,BP神经网络的整个迭代计算则通过PLC系统的若干个扫描周期来完成,该模式可以避免PLC系统的扫描周期由此延长而降低PLC系统的扫描性能。当Mode=1,且循环次数小于指定的迭代次数时,则循环执行第三步至第九步的迭代计算操作,反之则退出迭代计算。该模式虽然时间相对较长,但其时间是确定的,仅和指定的迭代次数有关,便于用户根据使用情况调整迭代次数,使其不至于影响PLC系统的扫描性能即可。当Mode=2时,如果BP神经网络的预测误差大于指定的误差限,则循环执行第三步至第九步的迭代计算操作,直至BP神经网络的预测误差小于或等于指定的误差限为止。该模式的运行时间不确定,但预测精度较好,适用于以计算结果为条件的PLC控制系统。BP神经网络在S7-300系列PLC系统中的实现流程如图1所示。
应用与验证:通过BP神经网络逼近一个对象来检验PLC系统中的BP神经网络,并将其和Matlab环境中的BP神经网络进行对比。拟逼近对象的差分方程如下:
取步长为2ms,输入信号为u(k)=0.5sin(6πt),让输入信号按2ms的间隔变化,取400组输入信号,根据对象的差分方程计算得到400组输出数据。将输入数据存于数据块DB1,输出数据存于数据块DB12。BP神经网络的权值wij,wjk的初始值均取0,取η=0.5,aj和bk均取0.05,使用PLC系统的BP网络限次训练400次,得到400组预测数据。
将400组期望输出和预测输出数据转换为400秒的趋势曲线,借助于WinCC导出400组期望输出和预测输出数据,再使用EXCEL拟合出所逼近对象的期望输出、预测输出以及预测误差曲线,如图5和图6所示。同时,图7和图8给出了Matlab提供的BP神经网络逼近该对象的期望输出曲线、预测输出曲线和误差曲线。
通过比较PLC系统的BP网络和Matlab平台的BP网络可知,PLC系统实现的BP网络和Matlab环境下设计的BP网络具有相似的效果。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。
Claims (2)
1.BP神经网络在S7-300系列PLC中的实现方法,其特征在于按照以下步骤进行:
第一步,在S7-300系列PLC中定义12个数据块:
数据块DB1~DB12分别存放BP神经网络迭代算式中的输入变量、隐含节点输入、隐含节点输出、输出层输入、输出变量、权值wij、权值wjk、阈值aj、阈值bk、误差ek、学习效率η和期望输出;
第二步,初始化数据块:
BP神经网络样本中的输入变量传送到DB1,样本中的输出变量传送到DB12,数据块DB6和DB7中的各变量初值设为零,数据块DB8和DB9中的各变量初值设为0.05,DB11中的学习效率初值设为0.5;
第三步,计算隐含层输入:
分别从数据块DB1和DB6中取出xi和wij,按下式计算隐含层的输入HIj:
第四步,计算隐含层输出:
分别从数据块DB2和DB8取出HIj和aj,按下式计算隐含层的输出HOj:
第五步,计算输出层输入:
分别从数据块DB3和DB7中取出HOj和wjk,按下式计算输出层的输入PIk:
第六步,计算输出层输出:
分别从数据块DB4和DB9中取出PIk和bk,按下式计算输出层的输出POk:
POk=PIk-bk k=1,2,…,m;
第七步,计算预测误差:
分别从数据块DB5和DB12中取出POk和yk,按下式计算预测误差ek:
ek=yk-POk k=1,2,…,m;
第八步,更新权值wij和wjk:
分别从数据块DB7、DB11、DB3和DB10中取出wjk、η、HOj和ek,按下式更新权值wjk:
wjk=wjk+ηHOjek j=1,2,…,l;k=1,2,…,m;
分别从数据块DB6、DB11、DB3、DB1、DB7和DB10中取出wij、η、HOj、xi、wjk和ek,按下式更新权值wij:
第九步,更新阈值aj和bk:
分别从数据块DB8、DB11、DB3、DB7和DB10中取出wij、η、HOj、wjk和ek,按下式更新阈值aj:
分别从数据块DB9和DB10中取出bk和ek,按下式更新阈值bk:
bk=bk+ek k=1,2,…,m;
第十步,判断循环与结束:
PLC系统实现的BP网络程序根据Mode标志的三种取值进行判断,Mode=0为单次迭代运行模式,Mode=1为限次迭代模式,Mode=2为误差限运行模式。
2.按照权利要求1所述BP神经网络在S7-300系列PLC中的实现方法,其特征在于:将BP神经网络迭代算式中若干变量的存取操作转化为PLC系统对应数据块中变量的存取操作,提供单次迭代、误差限结束、限次结束三种运行模式,以适应PLC系统的多种应用场合,有效避免BP神经网络的运行时间过长而影响PLC系统的正常扫描功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410230726.4A CN104007659B (zh) | 2014-05-28 | 2014-05-28 | Bp神经网络在s7-300系列plc中的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410230726.4A CN104007659B (zh) | 2014-05-28 | 2014-05-28 | Bp神经网络在s7-300系列plc中的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104007659A true CN104007659A (zh) | 2014-08-27 |
CN104007659B CN104007659B (zh) | 2016-08-24 |
Family
ID=51368369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410230726.4A Expired - Fee Related CN104007659B (zh) | 2014-05-28 | 2014-05-28 | Bp神经网络在s7-300系列plc中的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104007659B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202753A (zh) * | 2016-07-15 | 2016-12-07 | 重庆科技学院 | 基于bp神经网络与遗传算法实现盾构砂浆性能优化方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09147017A (ja) * | 1995-11-27 | 1997-06-06 | Mitsubishi Electric Corp | 生産計画システム |
CN1542658A (zh) * | 2003-04-30 | 2004-11-03 | 东北大学 | 基于神经网络的冶金生产过程动态成本控制方法 |
KR100832424B1 (ko) * | 2001-11-30 | 2008-05-26 | 주식회사 포스코 | 신경회로망을 이용한 연속주조공정의 품질안정화 방법 |
CN101539781A (zh) * | 2009-04-22 | 2009-09-23 | 北京中冶设备研究设计总院有限公司 | 电镀锌锌层厚度bp神经网络控制方法及其在plc上的应用 |
CN102393884A (zh) * | 2011-10-12 | 2012-03-28 | 杭州电子科技大学 | 基于bp神经网络的热连轧电磁感应加热温度预测方法 |
CN103198354A (zh) * | 2013-02-28 | 2013-07-10 | 重庆科技学院 | 一种利用bp神经网络与nsga2实现油田抽油机采油节能增产优化方法 |
-
2014
- 2014-05-28 CN CN201410230726.4A patent/CN104007659B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09147017A (ja) * | 1995-11-27 | 1997-06-06 | Mitsubishi Electric Corp | 生産計画システム |
KR100832424B1 (ko) * | 2001-11-30 | 2008-05-26 | 주식회사 포스코 | 신경회로망을 이용한 연속주조공정의 품질안정화 방법 |
CN1542658A (zh) * | 2003-04-30 | 2004-11-03 | 东北大学 | 基于神经网络的冶金生产过程动态成本控制方法 |
CN101539781A (zh) * | 2009-04-22 | 2009-09-23 | 北京中冶设备研究设计总院有限公司 | 电镀锌锌层厚度bp神经网络控制方法及其在plc上的应用 |
CN102393884A (zh) * | 2011-10-12 | 2012-03-28 | 杭州电子科技大学 | 基于bp神经网络的热连轧电磁感应加热温度预测方法 |
CN103198354A (zh) * | 2013-02-28 | 2013-07-10 | 重庆科技学院 | 一种利用bp神经网络与nsga2实现油田抽油机采油节能增产优化方法 |
Non-Patent Citations (2)
Title |
---|
刘星桥 等: "基于神经网络控制的三相电机同步系统", 《江苏大学学报 (自然科学版)》 * |
姚立忠 等: "神经网络模型的透明化及输入变量约简", 《计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202753A (zh) * | 2016-07-15 | 2016-12-07 | 重庆科技学院 | 基于bp神经网络与遗传算法实现盾构砂浆性能优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104007659B (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408518B (zh) | 基于粒子群优化算法的神经网络学习优化方法 | |
CN110481536B (zh) | 一种应用于混合动力汽车的控制方法及设备 | |
CN105527965A (zh) | 基于遗传蚁群算法的路径规划方法及系统 | |
CN105509749A (zh) | 基于遗传蚁群算法的移动机器人路径规划方法及系统 | |
CN103226741A (zh) | 城市供水管网爆管预测方法 | |
CN101782743A (zh) | 神经网络建模方法及系统 | |
CN111221312A (zh) | 机器人在生产线的优化方法、系统及在数字孪生的应用 | |
CN110824923A (zh) | 一种基于深度学习与云计算的污水处理控制方法及其系统 | |
SE1950924A1 (en) | Improved machine learning for technical systems | |
CN105487376A (zh) | 一种基于数据驱动单网络结构的最优控制方法 | |
CN111460726B (zh) | 一种煤泥流化床锅炉脱硝系统氨逃逸的优化方法 | |
CN111443599A (zh) | 优化pid参数的核电站汽轮机转速控制方法 | |
CN106991493A (zh) | 基于灰色神经网络组合模型的污水处理出水参数预测方法 | |
CN102645894B (zh) | 模糊自适应动态规划方法 | |
CN109581864A (zh) | 参数自整定的mimo异因子偏格式无模型控制方法 | |
CN117031950A (zh) | 深度调峰火电机组控制系统建模的方法及装置 | |
Marti et al. | Adaptive stochastic path planning for robots–real-time optimization by means of neural networks | |
CN103399488B (zh) | 基于自学习的多模型控制方法 | |
CN115765050A (zh) | 一种电力系统安全校正控制方法、系统、设备及存储介质 | |
CN104834285B (zh) | 对角递归神经网络控制器在多平台中的实现方法 | |
CN104134103A (zh) | 利用修正的bp神经网络模型预测热油管道能耗的方法 | |
CN106200379A (zh) | 一种非自衡对象的分布式动态矩阵控制方法 | |
CN109782586A (zh) | 参数自整定的miso异因子紧格式无模型控制方法 | |
Huang et al. | Error-driven chained multiple-subnetwork echo state network for time-series prediction | |
Pistikopoulos et al. | Towards the integration of process design, control and scheduling: Are we getting closer? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160824 |