神经网络模型与二次型单神经元PID并行控制方法 【技术领域】
本发明涉及一种智能控制方法,特别涉及一种神经网络模型与二次型单神经元PID并行控制方法。
背景技术
PID(Proportion Integration Differentiation)控制器作为最早实用化的控制器已有50多年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。但是PID在控制非线性、时变、耦合及参数和结构不确定的复杂过程时,工作效果不理想。最重要的是,如果PID控制器不能控制复杂过程,通过调参数将没有任何效果。
随着专家系统、模糊控制、神经网络等智能控制理论的发展,形成了多种智能控制与PID控制相结合的智能PID控制策略。由于神经网络具有自组织、自学习、自适应的能力,基于神经网络的控制已成为智能控制中最重要的一种方式。CMAC(Cerebellum Model Articulation Controller,以下简称CMAC)神经网络是一种模拟小脑功能的神经网络模型,是一类联想网络,具有局部泛化能力,相似的输入将产生相似的输出,而远离的输入将产生几乎独立的输出。CMAC从总体看是一种非线性的映像,但其自适应学习是线性映像部分,所以其学习算法是一种简单的线性优化,收敛速度比BP(BackPropagation,误差反向传播)算法快得多,且不存在局部极小值问题。由于CMAC神经网络具有上述优越性能,比一般神经网络具有更好的非线性逼近能力,因此更适合复杂环境下的非线性实时控制。
【发明内容】
本发明是针对PID控制器对复杂过程控制效果不佳的问题,提出了一种神经网络模型与二次型单神经元PID并行控制方法,提出利用CMAC神经网络具有学习算法简单、收敛速度快、局域泛化等优点,同时把二次型性能指标的思想,神经元非线性映像和权值的自适应修正功能引入到PID控制器,此方法具有更好的稳定性和抗干扰能力。
本发明的技术方案为:一种神经网络模型与二次型单神经元PID并行控制方法,包括CMAC神经网络模型,方法包括如下步骤:
1)设定控制的输入与输出:CMAC神经网络模型输入为设定值rin,输出为un;二次型单神经元PID的输入为误差e,即控制输入rin与输出测量值yout的差,二次型单神经元PID的输出为up;u为控制器总输出;
2)确定CMAC神经网络以及单神经元网络参数:CMAC神经网络参数:维数N,泛化参数c,网络学习速率η,惯性量α;单神经元网络参数:比例系数K;输出误差的加权系数P;控制增量的加权系数Q;比例、积分、微分三部分加权系数学习速率分别取为ηP,ηI,ηD;PID三个参数的初始化值wP,wI,wD;
3)确定CMAC神经网络以及单神经元网络性能指标:
CMAC的调整指标为:
E(k)=12(u(k)-un(k))2·αic,]]>
Δw(k)=ηu(k)-un(k)cαi=ηup(k)cαi,]]>
w(k)=w(k-1)+Δw(k)+α(w(k)-w(k-1));
二次型单神经元性能指标:E(k)=12(P(rin(k)-yout(k))2+QΔ2up(k)),]]>rin(k)和yout(k)为k时刻的参考输入和输出;
4)分别计算CMAC神经网络输出un(k)=Σi=1cwiαi]]>以及二次型单神经元PID控制输出up(k)=up(k-1)+KΣi=13wi′(k)xi(k),;]]>
5)控制系统总输出为u=up+un。
所述单神经元控制输出:up(k)=up(k-1)+KΣi=13wi′(k)xi(k),]]>
其中,wi(k)(i=1,2,3)为加权系数,wi′(k)=wi/Σi=13|wi(k)|,(i=1,2,3),]]>
w1(k)=w1(k-1)+ηIK(Pb0z(k)x1(k)-QKΣi=13(wi(k)xi(k))x1(k));]]>
w2(k)=w2(k-1)+ηPK(Pb0z(k)x2(k)-QKΣi=13(wi(k)xi(k))x2(k));]]>
w3(k)=w3(k-1)+ηDK(Pb0z(k)x3(k)-QKΣi=13(wi(k)xi(k))x3(k));]]>
式中,
x1(k)=e(k);
x2(k)=e(k)-e(k-1);
x3(k)=e(k)-2e(k-1)+e(k-2);
z(k)=e(k);
b0=yout(1)。
所述每一控制周期结束时,CMAC神经网络模型输出un与总控制输出u相比较,修正权重,进入学习过程,数据存入,CMAC神经网络模型记忆库。
CMAC是一种表达复杂非线性函数的表格查询型自适应神经网络,该网络可通过学习算法改变表格的内容,具有信息分类存储的能力。
CMAC把系统的输入状态作为一个指针,把相关信息分布式地存入一组存储单元。其本质上是一种用于映像复杂非线性函数的查表技术。具体作法是将输入空间分成许多分块,每个分块指定一个实际存贮器位置:每个分块学习到的信息分布式地存储到相邻分块的位置上;存储单元数通常比所考虑问题的最大可能输入空间的分块数少得多,故实现的是多对一的映射,即多个分块映像到同样一个内存地址上。
CMAC已被公认为是一类联想记忆神经网络的重要组成部分,能够学习任意多维非线性映像。CMAC算法可有效地用于非线性函数逼近、动态建模、控制系统设计等,CMAC的基本思想在于:在输入空间中给出一个状态,从存储单元中找到对应于该状态的地址,将这些存储单元中的内容求和得到CMAC的输出;将此响应值与期望输出值进行比较,并根据学习算法修改这些已启动的存储单元的内容。
本发明的有益效果在于:本发明神经网络模型与二次型单神经元PID并行控制方法,将神经网络模型与二次型单神经元PID方法结合,针对系统中的非线性、不确定性和复杂性,提高系统控制的稳定性,也提高了系统的抗干扰能力。
【附图说明】
图1为CMAC神经网络结构示意图;
图2为本发明基于CMAC与二次型单神经元PID的并行控制原理框图;
图3为本发明过热汽温串级控制原理框图;
图4为本发明基于CMAC与二次型单神经元PID并行控制在过热汽温中的原理框图;
图5为本发明方法下系统单位阶跃响应曲线图;
图6为本发明方法下系统扰动响应曲线图。
【具体实施方式】
CMAC的设计方法分为以下三步:
(1)量化(概念映射)
在输入层对N维输入空间进行划分,每一个输入都降落到N维网络基的一个超立方体单元内。中间层由若干个判断区间构成,对任意一个输入只有少数几个区间的输出为非零值,非零值区间的个数为泛化参数c,规定了网络内部影响网络输出的区域大小。
(2)地址映像(实际映像)
采用除余数法,将输入样本映像至概念内存地地址,除以一个数,得到的余数作为实际内存的地址值。即将概念内存中的c个单元映像至实际内存的c个地址。
(3)CMAC的函数计算(CMAC输出)
将输入映像至实际内存的c个单元,每个单元中存放着相应权值,CMAC的输出c个实际内存单元加权之和。
CMAC的结构如图1所示,其中U输出空间为与CMAC并行控制器的输出。CMAC的控制算法为:
un(k)=Σi=1cwiαi---(1)]]>
式中,αi为二进制选择向量,c为CMAC网络的泛化参数,un为CMAC产生相应的输出。
CMAC的调整指标为:
E(k)=12(u(k)-un(k))2·αic---(2)]]>
Δw(k)=ηu(k)-un(k)cαi=ηup(k)cαi---(3)]]>
w(k)=w(k-1)+Δw(k)+α(w(k)-w(k-1)) (4)
式中,η为网络学习速率,η∈(0,1);α为惯性量,α∈(0,1)。
神经网络应用于控制系统设计主要是针对系统的非线性、不确定性和复杂性。由于神经网络的适应能力、并行处理能力和鲁棒性,使得采用神经网络的控制系统具有更强的适应性和鲁棒性。神经元作为构成神经网络的基本单元具有自学习和自适应的能力,而且结构简单易于计算。传统的PID调节器也具有结构简单、调整方便和参数整定与工程指标联系密切等特点,将两者结合,便可以在一定程度上解决传统PID调节器不易在线实时整定参数和难于对一些复杂过程和参数慢时变系统进行有效控制的不足。
在最优控制理论中,采用二次型性能指标来计算控制律可以得到所期望的优化效果。在神经元学习算法中,也可借助最优控制中二次型性能指标的思想,在加权系数的调整中引入二次型性能指标,使输出误差和控制增量加权平方和为最小来调整加权系数,从而间接实现对输出误差和控制增量加权的约束控制。单神经元PID自适应控制器是通过对加权系数的调整来实现自适应、自组织功能。
二次型性能指标:
E(k)=12(P(rin(k)-yout(k))2+QΔ2up(k))---(5)]]>
式中,P,Q分别为输出误差和控制增量的加权系数,rin(k)和yout(k)为k时刻的参考输入和输出。
单神经元控制器输出:
up(k)=up(k-1)+KΣi=13wi′(k)xi(k)---(6)]]>
其中,wi(k)(i=1,2,3)为加权系数。
wi′(k)=wi/Σi=13|wi(k)|,(i=1,2,3)---(7)]]>
w1(k)=w1(k-1)+ηIK(Pb0z(k)x1(k)-QKΣi=13(wi(k)xi(k))x1(k))---(8)]]>
w2(k)=w2(k-1)+ηPK(Pb0z(k)x2(k)-QKΣi=13(wi(k)xi(k))x2(k))---(9)]]>
w3(k)=w3(k-1)+ηDK(Pb0z(k)x3(k)-QKΣi=13(wi(k)xi(k))x3(k))---(10)]]>
式中,
x1(k)=e(k) (11)
x2(k)=e(k)-e(k-1) (12)
x3(k)=e(k)-2e(k-1)+e(k-2)(13)
z(k)=e(k) (14)
b0=yout(1) (15)
ηI,ηP,ηD分别为积分、比例、微分的学习速度,K为神经元的比例系数,K>0。对积分I、比例P和微分D分别采用了不同的学习速率ηI,ηP,ηD,以便对不同的权系数分别进行调整。
提出利用CMAC神经网络具有学习算法简单、收敛速度快、局域泛化等优点,同时把二次型性能指标的思想,神经元非线性映像和权值的自适应修正功能引入到PID控制器,由CMAC控制器实现前馈控制,二次型单神经元PID控制实现反馈控制。
基于CMAC与二次型单神经元PID的并行控制原理框图如图2所示,CMAC控制器的输入为设定值rin以及二次型单神经元PID控制器的输出up,CMAC控制器的输出为un;二次型单神经元PID的输入为误差e,输出为up;u为控制器总输出;yout为输出测量值。每一控制周期结束时,CMAC输出un与总控制输出u相比较,修正权重,进入学习过程。学习的目的是使总控制输出与CMAC的输出之差最小,即使系统的总控制输出主要由CMAC控制器产生。
基于CMAC与二次型单神经元PID的并行控制设计步骤如下:
(1)控制器输入/输出:二次型单神经元PID控制器输入变量为误差e,输出为up;CMAC控制器输入变量为输入设定值rin、系统误差e以及二次型单神经元PID输出up,输出变量为un;系统总输出为u;
(2)分别确定CMAC神经网络以及单神经元网络参数:CMAC神经网络参数:维数N,泛化参数c,网络学习速率η,惯性量α。单神经元网络参数:比例系数K;输出误差的加权系数P;控制增量的加权系数Q;比例、积分、微分三部分加权系数学习速率分别取为ηP,ηI,ηD;PID三个参数的初始化值wP,wI,wD;
(3)分别确定CMAC神经网络以及单神经元网络性能指标;
(4)分别计算CMAC神经网络输出un以及二次型单神经元PID控制输出up;
(5)求得控制系统总输出变量u。
现代锅炉的过热器是在高温,高压条件下工作的,锅炉出口的过热蒸汽温度是整个汽水行程中工质的最高温度,对电厂的安全经济运行有重大影响。电厂过热汽温控制系统具有大惯性,大延迟和时变性等特点,因此为了保证电厂运行的高效率和高负荷跟踪性,过热汽温控制系统是必不可少的。采用常规PID串级控制方法难以获得满意的控制效果。对于锅炉过热汽温这类具有大惯性的对象,采用常规的PID调节器,在工作点附近的小范围内,由于其动态特性近似于线性,有可能控制得较好;但当大范围改变给定值或受外界环境(包括工况)太大扰动时,就需要实时修正PID参数,否则将达不到控制要求。
目前,绝大多数火电厂过热汽温采用图3所示的串级控制方案,图中,W1(s)为惰性区传递函数;W2(s)为导前区传递函数;PI为内回路比例-积分控制器;PID为外回路比例-积分-微分控制器;d1为输出测量干扰;d2为控制量干扰;rin为给定值;yout为输出测量值;e为给定值与输出值之间的误差。
外回路及主调节器的任务是维持过热汽温稳定,在工业上一般采用PI和PID调节器。内回路及副调节器的任务是快速消除内扰,一般可选用纯比例调节器。现场整定通常基于经验和试凑法。当负荷在整定值附近时,结果较好。但当在其他负荷情况下,控制性能就较差了,甚至要从自动控制切换到手动调节。
以某电厂过热汽温为例,其导前区传递函数为:W2(s)=8(1+15s)2,]]>其惰性区传递函数为:W1(s)=1.125(1+25s)3.]]>
将CMAC与二次型单神经元PID并行控制方案应用于该电厂过热汽温控制系统。仿真结果表明,该控制系统具有良好的控制品质,其控制原理框图如图4所示。
基于CMAC与二次型单神经元PID的过热汽温控制系统设计步骤如下:
(1)控制器输入/输出:二次型单神经元PID控制器输入变量为误差e,输出为up;CMAC控制器输入变量为过热汽温设定值rin、系统误差e以及二次型单神经元PID输出up,输出变量为un;系统总输出为u;
(2)分别确定CMAC神经网络以及单神经元网络参数:CMAC神经网络参数:维数N=300,泛化参数c=5,网络学习速率η=0.1,惯性量α=0.04;二次型性能指标学习算法的单神经元自适应智能PID控制器采用PD控制,使CMAC的学习仅仅依赖于误差的当时测量值及变化值。神经元的比例系数K=0.2;输出误差的加权系数P=2;控制增量的加权系数Q=1;比例、积分、微分三部分加权系数学习速率分别取为ηI=0,ηP=500,ηD=500;wP,wI,wD为PID三个参数的初始化值,分别为wP=1.2,wI=0,wD=0.45。
(3)分别确定CMAC神经网络以及二次型单神经元网络性能指标:
CMAC的调整指标为:E(k)=12(u(k)-un(k))2·αic;]]>
二次型单神经元性能指标:E(k)=12(P(rin(k)-yout(k))2+QΔ2up(k));]]>
(4)分别计算CMAC神经网络输出un(k)=Σi=1cwiαi]]>以及二次型单神经元PID控制输出up(k)=up(k-1)+KΣi=13wi′(k)xi(k);]]>
(5)控制系统总输出为u=up+un。
通过传统PID控制器、CMAC-PID并行控制以及CMAC与二次型单神经元PID控制的仿真可以得到如下单位阶跃响应曲线,如图5所示。
由图5可以明显看出,传统PID控制的过渡过程时间为1350s,以及5%的超调量;CMAC-PID并行控制的过渡过程时间为400s,以及7%的超调量;而CMAC与二次型单神经元PID并行控制方案过渡过程时间仅为250s,系统几乎没有超调量,也更稳定。
当系统加入单位阶跃扰动时,由图6所示,CMAC与二次型单神经元PID控制器的超调量为8%,过渡过程时间为200s,相较传统PID控制以及CMAC-PID并行控制,此方法具有更好的稳定性和抗干扰能力。