资源描述
基于BP神经网络的PID控制器的研究与实现
课程名称:人工神经网络
目录
前言 2
一、BP神经网络 3
二、模拟PID控制系统 5
三、基于BP神经网络的PID控制器 6
四、仿真程序 10
五、运行结果 17
六、总结 18
参考文献 19
前言
人工神经网络是以一种简单神经元为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统。不仅如此,人工神经网络还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索的功能。不同领域的科学家,对人工神经网络有着不同的理解、不同的研究内容,并且采用不同的研究方法。对于控制领域的研究工作者来说,人工神经网络的魅力在于:①能够充分逼近任意复杂的非线性关系,从而形成非线性动力学系统,以表示某种被控对象的模型或控制器模型;②能够学习和适应不确定性系统的动态特性;③所有定量或定性的信息都分布储存于网络内的各神经单元,从而具有很强的容错性和鲁棒性;④采用信息的分布式并行处理,可以进行快速大量运算。对于长期困扰控制界的非线性系统和不确定性系统来说,人工神经网络无疑是一种解决问题的有效途径。正因为如此,把人工神经网络引入传统的 PID 控制,将这两者结合,则可以在一定程度上解决传统 PID 调节器不易在线实时整定参数、难于对一些复杂过程和参数慢时变系统进行有效控制的不足。
一、BP神经网络
BP神经网络是一种有隐含层的多层前馈网络,其结构如图1-1所示。如果把具有M个输入节点和L个输出节点的BP神经网络看成是从M维欧氏空间到L维欧氏空间的非线性映射,则对于具有一定非线性因数的工业过程被控对象,采用BP网络来描述,不失为一种好的选择。在BP神经网络中的神经元多采用S型函数作为活化函数,利用其连续可导性,便于引入最小二乘学习算法,即在网络学习过程中,使网络的输出与期望输出的误差边向后传播边修正加权系数,以期使误差均方值最小。BP神经网络的学习过程可分为前向网络计算和反向误差传播——连接加权系数修正两个部分,这两个部分是相继连续反复进行的,直至误差满足要求。不论学习过程是否已经结束,只要在网络的输入节点加入输入信号,则这些信号将一层一层向前传播;通过每一层时要根据当时的连接加权系数和节点的活化函数与阈值进行相应计算,所得的输出再继续向下一层传输。这个前向网络计算过程,既是网络学习过程的一部分,也是将来网络的工作模式。在学习过程结束之前,如果前向网络计算的输出和期望输出之间存在误差,则转入反向传播,将误差沿着原来的连接通路回送,作为修改加权系数的依据,目标是使误差减小。
图1-1
二、模拟PID控制系统
PID控制是最早发展起来的控制策略之一,它以算法简单、鲁捧性好、可靠性高等优点而梭广泛应用于工业过程控制中。
PID控制系统结构如图1-2所示:
图1-2
它主要由PID控制器和被控对象所组成。而PID控制器则由比例、积分、微分三个环节组成。它的数学描述为:
式中,为比例系数;
为积分时间常数:
为微分时间常数。
简单说来,PID控制器各校正环节的主要控制作用如下:
1.比例环节即时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。
2.积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
3.微分环节能反映偏差信号的变化速率,并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。
PID控制器有如下特点:原理简单,实现方便,是一种能够满足大多数实际需要的基本控制器;控制器能适用于多种截然不同的对象,算法在结构上具有较强的鲁棒性,在很多情况下,其控制品质对被控对象的结构和参数摄动不敏感。
三、基于BP神经网络的PID控制器
PID控制要取得好的控制效果,就必须对比例、积分和微分三种控制作用进行调整以形成相互配合又相互制约的关系,这种关系是从变化无穷的非线性组合中找出最佳的关系。神经网络具有任意的非线性表示能力,可以通过对系统性能的学习实现具有最佳组合的
PID控制器。
图1-3
BP神经网络由于其具有逼近任意非线性函数的能力,而且结构和学习算法简单明确,因此在神经网络控制中常采用BP网络结构来建立控制器。通过BP神经网络自身的学习,从而可以找到某一最优控制律下的参数。基于BP神经网络的PID控制系统结构如图1-3所示,控制器由两部分缀成:
①经典的控制器:直接对被控对象进行闭环控制,并且三个参数为在线整定;
②神经网络NN:根据系统的运行状态对应于控制器的三个可调参数,,。通过神经网络的自学习、调整权系数,从而使其稳定状态对应于某种最优控制律下的PID控制器参数。
PID的控制算式为:
式中,分别为比例、积分、微分系数。将看为依赖于系统运行状态的可调系数时,可
将(3.12)式描述为:
式中是与等有关的非线性函数,可以用 BP神经网络NN通过训练和学习来找出一个最佳控制规律。
假设BP神经网络NN是一个三层BP网络,其结构如图3.4所示,有M个输入节点、Q个隐层节点、三个输出节点。输出节点分别对应控制器的三个可调参数。其激发函数为非负的Sigmoid函数。而隐含层的激发函数可取正负对称的Sigmoid函数。
神经网络的前向算法如下:设PID神经网络有M个输入,3个输出(), 上标(1)(2)(3)分别代表输入层、隐含层和输出层,该PID神经网络在任意采样时刻k的前向计算公式如下所述:
网络输入层的输入:=,(,;
网络隐含层的输入、输出算法如式(3.2.2)所示:
,
式(3.2.2)中表示隐含层第个神经元到第个神经元的加权系数,隐含层神经元活化函数取正负对称的Sigmoid函数:
网络输出层的输入、输出算法如式(3.3.4)所示:
式中为隐含层到输出层加权系数,输出层神经元活化函数取非负Sigmoid函数:
(=)
性能指标函数:
根据最速下降法修正网络的加权系数,并附加一使搜索快速收敛全局极小的惯性项,则有:
式中为学习速率;为惯性系数。
=
由于式(8)中的未知,所以可以近似用符号函数取代。
由数字PID控制律式(2)可以求得:
再令:
=,
可得BP神经网络输出层的加权系数计算公式为
同理可得隐含层加权系数的计算公式为
其中 =,
基于BP神经网络PID控制算法可以归纳为:①选定BPNN的结构,即选定输入层节点数M和隐含层节点数Q,并给出各层加权系数的初值,选定学习速率和惯性系数;②采样得到和,计算;③对进行归一化处理,作为BPNN的输入;④计算BPNN的各层神经元的输入和输出,输出层的输出即为PID控制器的3个参数;⑤计算PID控制器的输出,参与控制和计算;⑥计算修正输出层的加权系数;⑦计算修正隐含层的加权系数:⑧置.返回②。
四、仿真程序
%BP based PID Control
clear all;
close all;
xite=0.25;
alfa=0.05;
S=1; %Signal type
IN=4;H=5;Out=3; %NN Structure
if S==1 %Step Signal
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
-0.8603 -0.2013 -0.5024 -0.2596;
-1.0749 0.5543 -1.6820 -0.5437;
-0.3625 -0.0724 -0.6463 -0.2859;
0.1425 0.0279 -0.5406 -0.7660];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
-0.1146 0.2949 0.8352 0.2205 0.4508;
0.7201 0.4566 0.7672 0.4962 0.3632];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end
if S==2 %Sine Signal
wi=[-0.2846 0.2193 -0.5097 -1.0668;
-0.7484 -0.1210 -0.4708 0.0988;
-0.7176 0.8297 -1.6000 0.2049;
-0.0858 0.1925 -0.6346 0.0347;
0.4358 0.2369 -0.4564 -0.1324];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;
0.1716 0.5811 1.1214 0.5067 0.7370;
1.0063 0.7428 1.0534 0.7824 0.6494];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end
x=[0,0,0];
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
y_1=0;y_2=0;y_3=0;
Oh=zeros(H,1); %Output from NN middle layer
I=Oh; %Input to NN middle layer
error_2=0;
error_1=0;
ts=0.001;
for k=1:1:6000
time(k)=k*ts;
if S==1
rin(k)=1.0;
elseif S==2
rin(k)=sin(1*2*pi*k*ts);
end
%Unlinear model
a(k)=1.2*(1-0.8*exp(-0.1*k));
yout(k)=a(k)*y_1/(1+y_1^2)+u_1;
error(k)=rin(k)-yout(k);
xi=[rin(k),yout(k),error(k),1];
x(1)=error(k)-error_1;
x(2)=error(k);
x(3)=error(k)-2*error_1+error_2;
epid=[x(1);x(2);x(3)];
I=xi*wi';
for j=1:1:H Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))); %Middle Layer
end
K=wo*Oh; %Output Layer
for l=1:1:Out K(l)=exp(K(l))/(exp(K(l))+exp(-K(l))); %Getting kp,ki,kd
end
kp(k)=K(1);ki(k)=K(2);kd(k)=K(3);
Kpid=[kp(k),ki(k),kd(k)];
du(k)=Kpid*epid;
u(k)=u_1+du(k);
if u(k)>=10 % Restricting the output of controller
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
dyu(k)=sign((yout(k)-y_1)/(u(k)-u_1+0.0000001));
%Output layer
for j=1:1:Out
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
end
for l=1:1:Out
delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);
end
for l=1:1:Out
for i=1:1:H
d_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);
end
end
wo=wo_1+d_wo+alfa*(wo_1-wo_2);
%Hidden layer
for i=1:1:H
dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
end
segma=delta3*wo;
for i=1:1:H
delta2(i)=dO(i)*segma(i);
end
d_wi=xite*delta2'*xi;
wi=wi_1+d_wi+alfa*(wi_1-wi_2);
%Parameters Update
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_2=y_1;y_1=yout(k);
wo_3=wo_2;
wo_2=wo_1;
wo_1=wo;
wi_3=wi_2;
wi_2=wi_1;
wi_1=wi;
error_2=error_1;
error_1=error(k);
end
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('time(s)');ylabel('cin');
figure(2);
plot(time,error,'r');
xlabel('time(s)');ylabel('error');
figure(3);
plot(time,u,'r');
xlabel('time(s)');ylabel('cout');
figure(4);
subplot(311);
plot(time,kp,'r');
xlabel('time(s)');ylabel('KP');
subplot(312);
plot(time,ki,'g');
xlabel('time(s)');ylabel('KI');
subplot(313);
plot(time,kd,'b');
xlabel('time(s)');ylabel('KD');
五、运行结果
六、总结
随着科学技术的发展,智能控制技术必会日趋完善,并且能够在更多的领域上应用。本人在学习了以上这些内容之后,结合经典的PID控制算法,形成一种改进型BP神经网络的自适应PID算法。这一算法的本质是应用BP神经网络建立系统参数模型,将时变参数系统的参数变化规律转化为神经网络参数模型,反映了参数随状态而变的规律,即当系统变化后,可直接由模型得到系统的时变参数,而无需辨识过程。通过在计算机上对线性和非线性系统进行Matlab仿真,结果表明了这种自适应PlD控制算法的有效性。
参考文献:
[1] 陶永华等. 新型 PID 控制及其应用[M]. 北京: 机械工业出版社,2000.
[2] 聂建华等. 智能 PID 控制[J]. 北京: 工业仪表与自动化装置,1999(6).
[3] 杨行峻等. 人工神经网络[M]. 北京: 高等教育出版社,1998.
[4] 胡守仁主编. 神经网络应用技术[M]. 长沙: 国防科技大学出版社,1998.
[5] 谭永红. 基于 BP 神经网络的自适应控制[J]. 北京: 控制理论与应用,1999(11)
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文