第3章基于梯度下降法的RBF神经网络控制
离散神经网络控制系统中,常采用梯度下降法实现神经网络权值的学习,有代表性的研究工作如文献[1,2]。
3.1基于RBF神经网络的监督控制
3.1.1RBF监督控制
图3.1为基于RBF神经网络的监督控制系统,其控制思想为: 初始阶段采用PD反馈控制,然后过渡到神经网络控制。在控制过程中,如出现较大的误差,则PD控制起主导作用,神经网络控制起调节作用。
图3.1基于RBF神经网络的监督控制系统
设径向基向量为h=h1,…,hmT,hj为高斯函数,则
hj=exp-‖xk-cj‖22b2j(3.1)
其中,i=1; j=1,…,m; xk为RBF网络的输入; cj=c11,…,c1m; b=b1,…,bmT。
设权值向量为
w=w1,…,wmT(3.2)
RBF神经网络的输出为
un(k)=h1w1+…+hjwj+…+hmwm(3.3)
其中,m为隐含层节点的个数。
总控制输入为uk=unk+upk,误差指标为
Ek=12[unk-uk]2(3.4)
采用梯度下降法,网络权值学习算法为
Δwjk=-ηEkwjk=η[unk-uk]hjk
wk=wk-1+Δwk+α[wk-1-wk-2](3.5)
其中,η∈0,1为学习速率,α∈0,1为动量因子。
3.1.2仿真实例
设控制对象为
G(s)=1000s3+87.35s2+10470s
取采样周期为1ms,对上述对象进行离散化,可得
y(k)=-den(2)yk-1-den(3)y(k-2)+
num(2)u(k-1)+num(3)u(k-2)
取神经网络的结构为141,理想跟踪指令为ydk,网络输入为yd(k),网络的初始权值取[0,1]之间的随机数,根据网络的输入范围,高斯函数参数取c=[-2-112]T,bj=0.5。 取学习速率η=0.30,动量因子α=0.05。
仿真结果如图3.2和图3.3所示。RBF监督控制的仿真程序为chap3_1.m,详见附录。
图3.2方波跟踪效果
图3.3神经网络输入、PD控制输入及总控制输入
3.2基于RBF神经网络的模型参考自适应控制
3.2.1控制系统设计
图3.4为基于RBF神经网络的模型参考自适应控制系统框图。
图3.4基于RBF神经网络的模型参考自适应控制系统
设理想跟踪指令为ymk,则定义跟踪误差为
ek=ymk-yk(3.6)
网络权值学习误差指标为
Ek=12ek2(3.7)
控制输入为RBF网络的输出:
u(k)=h1w1+…+hjwj+…+hmwm(3.8)
其中,m为隐含层的节点个数; wj为节点的权值; hj为高斯基函数的输出。
在RBF网络中,x=x1,…,xnT为网络输入, h=h1,…,hmT,hj为高斯函数:
hj=exp-‖x-cj‖22b2j(3.9)
其中,i=1,…,n; j=1,…,m。bj>0,cj=cj1,…,cji,…,cjn,b=b1,…,bmT。
设权值向量为
w=w1,…,wmT(3.10)
由梯度下降法,网络的学习算法为
Δwj(k)=-ηE(k)w=ηec(k)y(k)u(k)hj
wj(k)=wj(k-1)+Δwj(k)+αΔwj(k)(3.11)
其中,η为学习速率; α为动量因子; η∈0,1,α∈0,1。
同理可得
Δbjk=-ηEkbj=ηeckykukukbj
=ηeckykukwjhj‖x-cij‖2b3j(3.12)
bj(k)=bj(k-1)+ηΔbjk+α[bj(k-1)-bj(k-2)](3.13)
Δcijk=-ηEkcij=ηeckykukukcij
=ηeckykukwjhjxi-cijb2j(3.14)
cij(k)=cij(k-1)+ηΔcijk+α[cij(k-1)-cij(k-2)](3.15)
其中,ykuk为Jacobian阵,表征系统输出对控制输入的灵敏度。
3.2.2仿真实例
取离散被控对象为
yk=[-0.10yk-1+uk-1]/[1+yk-12]
其中,采样周期为ts=1ms,参考模型为 ymk=0.6ymk-1+ydk,理想跟踪指令为yd(k)=0.50sin2πk×ts。
取RBF神经网络的输入为ydk、eck和yk,学习速率为η=0.35,动量因子为α=0.05。
根据网络的输入范围,高斯函数参数值为c=-3-2-1123
-3-2-1123
-3-2-1123T,b=[2,2,2,2,2,2]T,网络初始权值取[0,1]之间的随机值。
仿真结果如图3.5和图3.6所示。基于RBF神经网络的模型参考自适应控制程序为chap3_2.m。
图3.5正弦跟踪
图 3.6控制输入
3.3RBF自校正控制
3.3.1系统描述
考虑被控对象为
yk+1=gyk+ykuk(3.16)
其中,yk为系统输出; uk控制输入。
设ydk为理想跟踪指令。如果g·和·为已知的,设计自校正控制器为
uk=-g··+ydk+1·(3.17)
在实际工程中g·和·通常是未知的,控制器式(3.17)难以实现,采用RBF神经网络逼近g·和·,可有效解决这一难题。
3.3.2RBF控制算法设计
如果g·和·未知,可利用RBF网络逼近g·和·,从而得到g·和·的估计值,记为Ng·和N·,则自校正控制器为
uk=-Ng·N·+ydk+1N·(3.18)
其中,Ng·和N·为RBF神经网络的逼近输出。
分别采用两个RBF神经网络逼近g·和·,W和V分别为两个神经网络的权值。在RBF网络设计中,取yk为网络输入,h=h1,…,hmT,hj为高斯函数:
hj=exp-‖yk-cj‖22b2j(3.19)
其中,i=1; j=1,…,m; bj>0; cj=c11,…,c1m; b=b1,…,bmT。
设RBF网络的权值为
W=w1,…,wmT(3.20)
V=v1,…,vmT(3.21)
两个RBF网络的输出分别为
Ng(k)=h1w1+…+hjwj+…+hmwm(3.22)
N(k)=h1v1+…+hjvj+…+hmvm(3.23)
其中,m为隐含层节点的个数。
基于RBF神经网络逼近的输出为
ymk=Ngyk-1;Wk+Nyk-1;Vkuk-1(3.24)
基于神经网络Ng·和N·逼近的自适应控制系统框图如图3.7所示。
图3.7基于RBF逼近的自适应控制系统
用于权值调整的误差指标为
Ek=12[yk-ymk]2(3.25)
根据梯度下降法,网络权值学习算法为
Δwjk=-ηwEkwjk=ηw[yk-ymk]hjk
Δvjk=-ηvEkvjk
=ηv[yk-ymk]hjkuk-1
Wk=Wk-1+ΔWk
+α[Wk-1-Wk-2](3.26)
Vk=Vk-1+ΔVk
+α[Vk-1-Vk-2](3.27)
其中,ηw和ηv为学习速率; α为动量因子。
3.3.3仿真实例
取被控对象为
y(k)=0.8sin[y(k-1)]+15u(k-1)
其中,gyk=0.8sinyk-1,yk=15。
理想跟踪指令为ydt=2.0sin(0.1πt),RBF神经网络的结构为161,网络的初始权值和高斯函数参数分别设置为 W=[0.5,0.5,0.5,0.5,0.5,0.5]T,V=[0.5,0.5,0.5,0.5,0.5,0.5]T,cj=-2-10012T,b=5,5,5,5,5,5T。
取学习速率为η1=0.15,η2=0.50,动量因子为α=0.05。仿真结果如图3.8~图3.10所示。RBF神经网络自校正控制程序为chap3_3.m,详见附录。
图3.8正弦指令的跟踪
图3.9g(x,t)及其估计值g^(x,t)
图3.10f(x,t)及其估计值f^(x,t)
梯度下降法的优点是设计过程简单,但收敛效果取决于初值的选取,采用该方法调整神经网络权值易陷入局部最优,不能保证闭环系统的全局稳定性,因此有很大的局限性。
附录仿真程序
3.1.2节的程序
RBF监督控制仿真程序: chap3_1.m
%RBF Supervisory Control
clear all;
close all;
ts=0.001;
sys=tf(1000,[1,50,2000]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
y_1=0;y_2=0;
u_1=0;u_2=0;
e_1=0;
xi=0;
x=[0,0]';
b=0.5*ones(4,1);
c=[-2 -1 1 2];
w=rands(4,1);
w_1=w;
w_2=w_1;
xite=0.30;
alfa=0.05;
kp=25;
kd=0.3;
for k=1:1:1000
time(k)=k*ts;
S=1;
if S==1
yd(k)=0.5*sign(sin(2*2*pi*k*ts)); %Square Signal
elseif S==2
yd(k)=0.5*(sin(3*2*pi*k*ts)); %Square Signal
end
y(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
e(k)=yd(k)-y(k);
xi=yd(k);
for j=1:1:4
h(j)=exp(-norm(xi-c(:,j))^2/(2*b(j)*b(j)));
end
un(k)=w'*h';
%PD Controller
up(k)=kp*x(1)+kd*x(2);
M=2;
if M==1 %Only Using PID Control
u(k)=up(k);
elseif M==2%Total control output
u(k)=up(k)+un(k);
end
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
%Update NN Weight
d_w=-xite*(un(k)-u(k))*h';
w=w_1+d_w+alfa*(w_1-w_2);
w_2=w_1;
w_1=w;
u_2=u_1;
u_1=u(k);
y_2=y_1;
y_1=y(k);
x(1)=e(k); %Calculating P
x(2)=(e(k)-e_1)/ts; %Calculating D
e_1=e(k);
end
figure(1);
plot(time,yd,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('Position tracking');
legend('Ideal position signal','Tracking position signal');
figure(2);
subplot(311);
plot(time,un,'k','linewidth',2);
xlabel('time(s)');ylabel('un');
legend('Control input with RBF');
subplot(312);
plot(time,up,'k','linewidth',2);
xlabel('time(s)');ylabel('up');
legend('Control input with P');
subplot(313);
plot(time,u,'k','linewidth',2);
xlabel('time(s)');ylabel('u');
legend('Total control input');
3.2.2节的程序
基于RBF神经网络的模型参考自适应控制: chap3_2.m
%Model Reference Adaptive RBF Control
clear all;
close all;
u_1=0;
y_1=0;
ym_1=0;
x=[0,0,0]';
c=[-3 -2 -1 0 1 2 3;
-3 -2 -1 0 1 2 3;
-3 -2 -1 0 1 2 3];
b=2;
w=rands(1,7);
xite=0.35;
alfa=0.05;
h=[0,0,0,0,0,0,0]';
c_1=c;c_2=c;
b_1=b;b_2=b;
w_1=w;w_2=w;
ts=0.001;
for k=1:1:3000
time(k)=k*ts;
yd(k)=0.50*sin(2*pi*k*ts);
ym(k)=0.6*ym_1+yd(k);
y(k)=(-0.1*y_1+u_1)/(1+y_1^2); %Nonlinear plant
for j=1:1:7
h(j)=exp(-norm(x-c(:,j))^2/(2*b^2));
end
u(k)=w*h;
ec(k)=ym(k)-y(k);
dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));
d_w=0*w;
for j=1:1:7
d_w(j)=xite*ec(k)*h(j)*dyu(k);
end
w=w_1+d_w+alfa*(w_1-w_2);
%Return of parameters
u_1=u(k);
y_1=y(k);
ym_1=ym(k);
x(1)=yd(k);
x(2)=ec(k);
x(3)=y(k);
w_2=w_1;w_1=w;
end
figure(1);
plot(time,ym,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('ym,y');
legend('Ideal position signal','Tracking position signal');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('time(s)');ylabel('Control input');