第3章
CHAPTER 3


基于梯度下降法的


RBF神经网络控制




离散神经网络控制系统中,常采用梯度下降法实现神经网络权值的学习,有代表性的研究工作如文献[12]。

3.1基于RBF神经网络的监督控制
3.1.1RBF监督控制

图3.1为基于RBF神经网络的监督控制系统,其控制思想为: 初始阶段采用PD反馈控制,然后过渡到神经网络控制。在控制过程中,如出现较大的误差,则PD控制起主导作用,


图3.1基于RBF神经网络的监督控制系统

神经网络控制起调节作用。


设径向基向量为h=h1,h2,…,hmT,hj为高斯函数,则
hj=exp-‖xk-cj‖22b2j(3.1)
其中,i=1; j=1,2,…,m; xk为RBF神经网络的输入; cj=[c11,c12,…,c1m]; b=[b1,b2,…,bm]T。

设权值向量为
w=w1,w2,…,wmT(3.2)
RBF神经网络的输出为

un(k)=h1w1+…+hjwj+…+hmwm(3.3)
其中,m为隐含层节点的个数。

总控制输入为uk=unk+upk,误差指标为
Ek=12[unk-uk]2(3.4)
采用梯度下降法,网络权值学习算法为
Δwjk=-ηEkwjk=η[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)
取神经网络的结构为141,理想跟踪指令ydk取幅值为0.5的大波信号,网络输入为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,x2,…,xnT为网络输入, h=h1,h2,…,hmT,hj为高斯函数: 
hj=exp-‖x-cj‖22b2j(3.9)
其中,i=1,2,…,n; j=1,2,…,m。bj>0,cj=cj1,…,cji,…,cjn,b=b1,b2,…,bmT。

设权值向量为
w=w1,w2,…,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=-ηEkbj=ηeckykukukbj
=ηeckykukwjhj‖x-cij‖2b3j(3.12)
bj(k)=bj(k-1)+ηΔbjk+α[bj(k-1)-bj(k-2)](3.13)
Δcijk=-ηEkcij=ηeckykukukcij
=ηeckykukwjhjxi-cijb2j(3.14)
cij(k)=cij(k-1)+ηΔcijk+α[cij(k-1)-cij(k-2)](3.15)

其中,ykuk为Jacobian阵,表征系统输出对控制输入的灵敏度。
在学习算法中,y(k)u(k)值可采用差分求得,不精确部分可通过权值的调整来修正。可用Δy(k)Δu(k)的正负号来代替y(k)u(k),这样可使算法更加简单。


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=fyk+buk(3.16)

其中,u和y分别为输入和输出,b为已知实数。

若f(·)已知,则根据确定性等价原则,自校正控制算法为

uk=-f(·)+ydk+1b(3.17)


采用控制律式(3.17),系统的输出yk能精确地跟踪输入ydk。

3.3.2RBF控制算法设计

若f(·)未知,则可通过在线训练神经网络辨识器,得到f(·)的辨识值Nφ(·),此时自校正控制算法为

uk=-Nφ(·)+ydk+1b(3.18)


采用RBF神经网络可实现未知函数项f(·)的辨识。在RBF神经网络结构中,取网络的输入为yk,hj为网络第i个输入第j个结点高斯函数输出: 

hj=exp-‖y(k)-c1j‖22b2j(3.19)

其中,i=1,j=1,…,m,bj为节点j的宽度参数,bj>0,cij为网络第i个输入第j个结点的中心点坐标值。

网络的权向量为W=w1,w2,…,wmT,RBF神经网络的输出为

Nφk=∑mj=1hjwj(3.20)

其中,m为RBF网络隐层神经元的个数。

辨识后,对象的输出为

ynk=Nφyk-1+buk-1(3.21)


神经网络调整的性能指标为

Ek=12yk-ynk2(3.22)


采用梯度下降法调整网络的权值: 

Δwjk=-ηEkwjk=ηyk-ynkhjk

神经网络权值的调整过程为

Wk=Wk-1+ΔWk+αWk-1-Wk-2(3.23)

其中,η为学习速率,α为动量因子。

由式(3.16)和式(3.21)可得 

yk-ynk=fyk-1-Nφyk-1


通过梯度下降法,可实现t→∞时,Ek→0,Nφyk-1→fyk-1,从而实现未知函数f(·)的辨识。

3.3.3仿真实例

被控对象为

y(k)=0.8sin[y(k-1)]+15u(k-1)

其中,fyk=0.8sinyk-1。

输入信号为正弦信号ydk=sin(0.1πt)。取yk作为网络的输入,网络隐含层神经元个数取m=5,网络结构为151,网络的初始权值每个值取1.0,bj=5.0。

采用控制律式(3.18),网络权值学习参数为η=0.10,α=0.05。RBF神经网络自校正控制程序为chap3_3.m。仿真结果如图3.7~图3.9所示。
仿真程序为chap3_3.m,详见附录。



图3.7正弦位置跟踪




图3.8输出y及其逼近yn




图3.9fx,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));      %Sine 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 PD');

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');


3.3.3节的程序

RBF神经网络自校正控制: chap3_3.m

clear all;

close all;

xite=0.10;

alfa=0.05;

 

w=ones(5,1);

cij=[-2 -1 0 1 2];

bj=15;

h=zeros(5,1);

 

w_1=w;w_2=w_1;

u_1=0;y_1=0;

ts=0.02;

for k=1:1:5000

time(k)=k*ts;

yd(k)=sin(0.1*pi*k*ts);

 

%Practical Plant;

f(k)=0.8*sin(y_1);

b=15;

y(k)=f(k)+b*u_1;

 

for j=1:1:5

h(j)=exp(-norm(y(k)-cij(:,j))^2/(2*bj^2));

end



fn(k)=w'*h;

yn(k)=fn(k)+b*u_1;

 

e(k)=y(k)-yn(k);

 

d_w=0*w;

for j=1:1:5

d_w(j)=xite*e(k)*h(j);

end

w=w_1+d_w+alfa*(w_1-w_2);

 

u(k)=(-fn(k)+yd(k))/b;

 

u_1=u(k);

y_1=y(k);

 

w_2=w_1;

w_1=w; 

end

figure(1);

plot(time,yd,'r',time,y,'-.k','linewidth',2);

xlabel('Time');ylabel('y and yd');

figure(2);

plot(time,y,'r',time,yn,'-.k','linewidth',2);

xlabel('Time');ylabel('y and yn');

figure(3);

plot(time,f,'r',time,fn,'-.k','linewidth',2);

xlabel('Time');ylabel('f and fn');


参考文献

[1]NORIEGA J R,WANG H. A direct adaptive neural network control for unknown nonlinear systems and its application[J]. IEEE Transactions on Neural Networks,1998,9(1): 2734.

[2]SUYKENS J A K,VANDEWALLE J P L,DEMOOR  B L R. Artificial neural networks for modeling and control of nonlinear systems[M].Boston: Kluwer Academic,1996.

[3]刘金琨.智能控制[M].2版.北京: 电子工业出版社,2012.