本书结合典型机械系统控制的实例,系统地介绍了神经网络控制的基本理论、基本方法和应用技术。本书是作者多年来从事控制系统教学和科研工作的结晶,同时融入了国内外同行近年来所取得的新成果。
全书共分16章,包括绪论、RBF神经网络的设计与仿真、基于梯度下降法的RBF神经网络控制、自适应RBF神经网络控制、RBF神经网络滑模控制、基于模型整体逼近的自适应RBF控制、基于局部逼近的自适应RBF控制、基于RBF神经网络的动态面自适应控制、数字RBF神经网络控制、离散神经网络控制、自适应RBF观测器设计及滑模控制、基于RBF神经网络的反演自适应控制、基于RBF神经网络的自适应容错控制、基于RBF神经网络的自适应量化控制、基于RBF神经网络的控制输出受限控制和基于RBF神经网络的控制方向未知的状态跟踪。每种控制方法都通过MATLAB进行了仿真分析。
本书各部分内容既相互联系又相对独立,读者可根据需要选择学习。本书适用于从事生产过程自动化、计算机应用、机械电子和电气自动化领域的工程技术人员阅读,也可作为大专院校工业自动化、自动控制、机械电子、自动化仪表、计算机应用等专业的教学参考书。
第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');
目录
第1章绪论
1.1神经网络控制
1.1.1神经网络控制的提出
1.1.2神经网络控制概述
1.1.3自适应RBF神经网络概述
1.2RBF神经网络
1.3机器人RBF神经网络控制
1.4控制系统S函数设计
1.4.1S函数介绍
1.4.2S函数基本参数
1.4.3实例
1.5简单自适应控制系统设计实例
1.5.1系统描述
1.5.2自适应控制律设计
1.5.3仿真实例
附录仿真程序
参考文献
第2章RBF神经网络设计与仿真
2.1RBF神经网络算法及仿真
2.1.1RBF神经网络算法设计
2.1.2RBF神经网络设计实例及MATLAB仿真
2.2基于梯度下降法的RBF神经网络逼近
2.2.1RBF神经网络逼近
2.2.2仿真实例
2.3高斯基函数的参数对RBF网络逼近的影响
2.4隐含层节点数对RBF网络逼近的影响
2.5RBF神经网络的建模训练
2.5.1RBF神经网络训练
2.5.2仿真实例
2.6RBF神经网络逼近
附录仿真程序
参考文献
第3章基于梯度下降法的RBF神经网络控制
3.1基于RBF神经网络的监督控制
3.1.1RBF监督控制
3.1.2仿真实例
3.2基于RBF神经网络的模型参考自适应控制
3.2.1控制系统设计
3.2.2仿真实例
3.3RBF自校正控制
3.3.1系统描述
3.3.2RBF控制算法设计
3.3.3仿真实例
附录仿真程序
参考文献
第4章自适应RBF神经网络控制
4.1基于神经网络逼近的自适应控制
4.1.1系统描述
4.1.2自适应RBF控制器设计
4.1.3仿真实例
4.2基于神经网络逼近的未知参数自适应控制
4.2.1系统描述
4.2.2自适应控制设计
4.2.3仿真实例
4.3基于RBF神经网络的直接鲁棒自适应控制
4.3.1系统描述
4.3.2理想反馈控制和函数逼近
4.3.3控制器设计及分析
4.3.4仿真实例
4.4基于RBF神经网络的单参数直接鲁棒自适应控制
4.4.1系统描述
4.4.2仿真实例
附录仿真程序
参考文献
第5章RBF神经网络滑模控制
5.1经典滑模控制器设计
5.2基于RBF神经网络的二阶SISO系统的滑模控制
5.2.1系统描述
5.2.2基于RBF网络逼近f(·)的滑模控制
5.2.3仿真实例
5.3基于RBF逼近未知函数f(·)和g(·)的滑模控制
5.3.1引言
5.3.2仿真实例
5.4基于神经网络最小参数学习法的自适应滑模控制
5.4.1问题描述
5.4.2基于RBF网络逼近的自适应控制
5.4.3仿真实例
附录仿真程序
参考文献
第6章基于模型整体逼近的自适应RBF控制
6.1基于RBF神经网络补偿的机器人自适应控制
6.1.1系统描述
6.1.2RBF网络逼近
6.1.3RBF网络控制和自适应律设计及分析
6.1.4仿真实例
6.2基于滑模鲁棒项的RBF神经网络机器人控制
6.2.1系统描述
6.2.2RBF逼近
6.2.3控制律设计及稳定性分析
6.2.4仿真实例
6.3基于HJI理论和RBF神经网络的鲁棒控制
6.3.1HJI定理
6.3.2控制器设计及稳定性分析
6.3.3仿真实例
附录仿真程序
参考文献
第7章基于局部逼近的自适应RBF控制
7.1基于名义模型的机械臂鲁棒控制
7.1.1系统描述
7.1.2控制器设计
7.1.3稳定性分析
7.1.4仿真实例
7.2基于局部模型逼近的自适应RBF机械手控制
7.2.1问题描述
7.2.2控制器设计
7.2.3稳定性分析
7.2.4仿真实例
7.3工作空间机械手的神经网络自适应控制
7.3.1关节角位置与工作空间直角坐标的转换
7.3.2机械手的神经网络建模
7.3.3控制器的设计
7.3.4仿真实例
附录仿真程序
参考文献
第8章基于RBF网络的动态面自适应控制
8.1简单动态面控制的设计与分析
8.1.1系统描述
8.1.2动态面控制器的设计
8.1.3动态面控制器的分析
8.1.4仿真实例
8.2飞行器航迹角自适应神经网络动态面控制
8.2.1系统描述
8.2.2自适应神经网络动态面控制设计
8.2.3稳定性分析
8.2.4仿真实例
8.3柔性关节机械手自适应RBF网络动态面鲁棒控制
8.3.1问题描述
8.3.2自适应RBF网络动态面控制器设计
8.3.3闭环系统稳定性分析
8.3.4仿真验证
附录仿真程序
参考文献
第9章数字RBF神经网络控制
9.1自适应RungeKuttaMerson法
9.1.1引言
9.1.2仿真实例
9.2SISO系统的数字自适应控制
9.2.1引言
9.2.2仿真实例
9.3两关节机械手的数字自适应RBF控制
9.3.1引言
9.3.2仿真实例
附录仿真程序
参考文献
第10章离散神经网络控制
10.1引言
10.2一类离散非线性系统的直接RBF控制
10.2.1系统描述
10.2.2控制算法设计和稳定性分析
10.2.3仿真实例
10.3一类离散非线性系统的自适应RBF控制
10.3.1系统描述
10.3.2经典控制器设计
10.3.3自适应神经网络控制器设计
10.3.4稳定性分析
10.3.5仿真实例
附录仿真程序
参考文献
第11章自适应RBF观测器设计及滑模控制
11.1自适应RBF观测器设计
11.1.1系统描述
11.1.2自适应RBF观测器设计
11.1.3仿真实例
11.2基于RBF自适应观测器的滑模控制
11.2.1滑模控制器设计
11.2.2仿真实例
附录仿真程序
参考文献
第12章基于RBF神经网络的反演自适应控制
12.1一种二阶非线性系统的反演控制
12.1.1基本原理
12.1.2仿真实例
12.2一种三阶非线性系统的反演控制
12.2.1系统描述
12.2.2反演控制器设计
12.2.3仿真实例
12.3基于RBF网络的二阶非线性系统反演控制
12.3.1基本原理
12.3.2RBF网络原理
12.3.3控制算法设计与分析
12.3.4仿真实例
12.4高阶非线性系统反演控制
12.4.1系统描述
12.4.2反演控制器的设计
12.5基于RBF网络的高阶非线性系统自适应反演控制
12.5.1系统描述
12.5.2反演控制律设计
12.5.3自适应律的设计
12.5.4仿真实例
附录仿真程序
参考文献
第13章基于RBF神经网络的自适应容错控制
13.1SISO系统执行器自适应容错控制
13.1.1控制问题描述
13.1.2控制律的设计与分析
13.1.3仿真实例
13.2基于RBF网络的自适应容错控制
13.2.1控制问题描述
13.2.2RBF神经网络设计
13.2.3控制律的设计与分析
13.2.4仿真实例
附录仿真程序
参考文献
第14章基于RBF神经网络的自适应量化控制
14.1执行器自适应量化控制
14.1.1系统描述
14.1.2量化控制器设计与分析
14.1.3仿真实例
14.2基于RBF神经网络的执行器自适应量化控制
14.2.1系统描述
14.2.2RBF神经网络设计
14.2.3量化控制器设计与分析
14.2.4仿真实例
附录仿真程序
参考文献
第15章基于RBF神经网络的控制输出受限控制
15.1输出受限引理
15.2基于位置输出受限控制算法设计
15.2.1系统描述
15.2.2控制器的设计
15.2.3仿真实例
15.3基于RBF神经网络的输出受限控制
15.3.1系统描述
15.3.2RBF神经网络原理
15.3.3控制器的设计
15.3.4仿真实例
附录仿真程序
参考文献
第16章基于RBF神经网络的控制方向未知的状态跟踪
16.1基本知识
16.2控制方向未知的状态跟踪
16.2.1系统描述
16.2.2控制律的设计
16.2.3仿真实例
16.3基于RBF神经网络的控制方向未知的状态跟踪
16.3.1系统描述
16.3.2RBF神经网络设计
16.3.3控制律的设计
16.3.4仿真实例
附录仿真程序
参考文献