Abstract
This chapter introduces two kinds of adaptive discrete neural network controllers for discrete nonlinear system, including a direct RBF controller and an indirect RBF controller. For the two control laws, the adaptive laws are designed based on the Lyapunov stability theory; the closed-loop system stability can be achieved.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Jagannathan S, Lewis FL (1994) Discrete-time neural net controller with guaranteed performance. In: Proceedings of the American control conference, pp 3334–3339
Ge SS, Li GY, Lee TH (2003) Adaptive NN control for a class of strict-feedback discrete- time nonlinear systems. Automatica 39(5):807–819
Yang C, Li Y, Ge SS, Lee TH (2010) Adaptive control of a class of discrete-time MIMO nonlinear systems with uncertain couplings. Int J Control 83(10):2120–2133
Ge SS, Yang C, Dai S, Jiao Z, Lee TH (2009) Robust adaptive control of a class of nonlinear strict-feedback discrete-time systems with exact output tracking. Automatica 45(11):2537–2545
Yang C, Ge SS, Lee TH (2009) Output feedback adaptive control of a class of nonlinear discrete-time systems with unknown control directions. Automatica 45(1):270–276
Yang C, Ge SS, Xiang C, Chai T, Lee TH (2008) Output feedback NN Control for two classes of discrete-time systems with unknown control directions in a unified approach. IEEE Trans Neural Netw 19(11):1873–1886
Ge SS, Yang C, Lee TH (2008) Adaptive robust control of a class of nonlinear strict- feedback discrete-time systems with unknown control directions. Syst Control Lett 57:888–895
Ge SS, Yang C, Lee TH (2008) Adaptive predictive control using neural network for a class of pure-feedback systems in discrete time. IEEE Trans Neural Netw 19(9):1599–1614
Zhang J, Ge SS, Lee TH (2005) Output feedback control of a class of discrete MIMO nonlinear systems with triangular form inputs. IEEE Trans Neural Netw 16(6):1491–1503
Ge SS, Zhang J, Lee TH (2004) State feedback NN control of a class of discrete MIMO nonlinear systems with disturbances. IEEE Trans Syst, Man Cybern (Part B) Cybern 34(4):1630–1645
Ge SS, Li Y, Zhang J, Lee TH (2004) Direct adaptive control for a class of MIMO nonlinear systems using neural networks. IEEE Trans Autom Control 49(11):2001–2006
Ge SS, Zhang J, Lee TH (2004) Adaptive MNN control for a class of non-affine NARMAX systems with disturbances. Syst Control Lett 53:1–12
Ge SS, Lee TH, Li GY, Zhang J (2003) Adaptive NN control for a class of discrete-time nonlinear systems. Int J Control 76(4):334–354
Lee S (2001) Neural network based adaptive control and its applications to aerial vehicles. Ph.D. dissertation, School of Aerospace Engineering, Georgia Institute of Technology, Atlanta, GA
Shin DH, Kim Y (2006) Nonlinear discrete-time reconfigurable flight control law using neural networks. IEEE Trans Control Syst Technol 14(3):408–422
Zhang J, Ge SS, Lee TH (2002) Direct RBF neural network control of a class of discrete-time non-affine nonlinear systems. In: Proceedings of the American control conference, pp 424–429
Fabri SG, Kadirkamanathan V (2001) Functional adaptive control: an intelligent systems approach. Springer, New York
Author information
Authors and Affiliations
Appendix
Appendix
10.1.1 Programs for Sect. 10.2.3
Simulation program: chap10_1.m
%Discrete neural controller
clear all;
close all;
L=9; %Hidden neural nets
c=[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2;
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2];
b=2;
w=rand(L,1);
w_1=w;
u_1=0;
x1_1=0;x1_2=0;
x2_1=0;
z=[0,0]';
Gama=0.01;rou=0.001;
L*(1+rou)*Gama %<=1/g1-1/k0
(L+rou)*Gama %<=1.0
for k=1:1:10000
time(k)=k;
ym(k)=sin(pi/1000*k);
y(k)=x1_1; %tol=1
e(k)=y(k)-ym(k);
M=2;
if M==1 %Linear model
x1(k)=x2_1;
x2(k)=u_1;
elseif M==2 %Nonlinear model
x1(k)=x2_1;
x2(k)=(x1(k)*x2_1*(x1(k)+2.5))/(1+x1(k)^2+x2_1^2)+u_1+0.1*u_1^3;
end
z(1)=x1(k);z(2)=x2(k);
for j=1:1:L
h(j)=exp(-norm(z-c(:,j))^2/(2*b^2));
end
w=w_1-Gama*(h'*e(k)+rou*w_1);
wn(k)=norm(w);
u(k)=w'*h';
%u(k)=0.20*(ym(k)-x1(k)); %P control
x1_2=x1_1;
x1_1=x1(k);
x2_1=x2(k);
w_1=w;
u_1=u(k);
end
figure(1);
plot(time,ym,'r',time,x1,'k:','linewidth',2);
xlabel('k');ylabel('ym,y');
legend('Ideal position signal','Position tracking');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('k');ylabel('Control input');
figure(3);
plot(time,wn,'r','linewidth',2);
xlabel('k');ylabel('Weight Norm');
10.1.2 Programs for Sect. 10.3.5.1
Simulation program: chap10_2.m
%Discrete RBF controller
clear all;
close all;
ts=0.001;
c1=-0.01;
beta=0.001;
epcf=0.003;
gama=0.001;
G=50000;
b=15;
c=[-1 -0.5 0 0.5 1];
w=rands(5,1);
w_1=w;
u_1=0;
y_1=0;
e1_1=0;
e_1=0;
fx_1=0;
for k=1:1:2000
time(k)=k*ts;
yd(k)=sin(2*pi*k*ts);
yd1(k)=sin(2*pi*(k+1)*ts);
%Nonlinear plant
fx(k)=0.5*y_1;
y(k)=fx_1+u_1;
e(k)=y(k)-yd(k);
x(1)=y_1;
for j=1:1:5
h(j)=exp(-norm(x-c(:,j))^2/(2*b^2));
end
v1_bar(k)=beta/(2*gama*c1^2)*h*h';
e1(k)=(-c1*e1_1+beta*(e(k)+c1*e_1))/(1+beta*(v1_bar(k)+G));
if abs(e1(k))>epcf/G
w=w_1+beta/(gama*c1^2)*h'*e1(k);
elseif abs(e1(k))<=epcf/G
w=w_1;
end
fnn(k)=w'*h';
u(k)=yd1(k)-fnn(k)-c1*e(k);
%u(k)=yd1(k)-fx(k)-c1*e(k); %With precise fx
fx_1=fx(k);
y_1=y(k);
w_1=w;
u_1=u(k);
e1_1=e1(k);
e_1=e(k);
end
figure(1);
plot(time,yd,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('yd,y');
legend('Ideal position signal','Position tracking');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('time(s)');ylabel('Control input');
figure(3);
plot(time,fx,'r',time,fnn,'k:','linewidth',2);
xlabel('time(s)');ylabel('fx and fx estimation');
legend('Ideal fx','fx estimation');
10.1.3 Programs for Sect. 10.3.5.2
Simulation program with known f(x(k − 1)): chap10_3.m
%Discrete controller
clear all;
close all;
ts=0.001;
c1=-0.01;
u_1=0;y_1=0;
fx_1=0;
for k=1:1:20000
time(k)=k*ts;
yd(k)=sin(k*ts);
yd1=sin((k+1)*ts);
%Nonlinear plant
fx(k)=0.5*y_1*(1-y_1)/(1+exp(-0.25*y_1));
y(k)=fx_1+u_1;
e(k)=y(k)-yd(k);
u(k)=yd1-fx(k)-c1*e(k);
y_1=y(k);
u_1=u(k);
fx_1=fx(k);
end
figure(1);
plot(time,yd,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('yd,y');
legend('Ideal position signal','Position tracking');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('time(s)');ylabel('Control input');
Simulation program with unknown f(x(k − 1)): chap10_4.m
%Discrete RBF controller
clear all;
close all;
ts=0.001;
c1=-0.01;
beta=0.001;
epcf=0.003;
gama=0.001;
G=50000;
b=15;
c=[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2];
w=rands(9,1);
w_1=w;
u_1=0;
y_1=0;
e1_1=0;
e_1=0;
fx_1=0;
for k=1:1:10000
time(k)=k*ts;
yd(k)=sin(k*ts);
yd1(k)=sin((k+1)*ts);
%Nonlinear plant
fx(k)=0.5*y_1*(1-y_1)/(1+exp(-0.25*y_1));
y(k)=fx_1+u_1;
e(k)=y(k)-yd(k);
x(1)=y_1;
for j=1:1:9
h(j)=exp(-norm(x-c(:,j))^2/(2*b^2));
end
v1_bar(k)=beta/(2*gama*c1^2)*h*h';
e1(k)=(-c1*e1_1+beta*(e(k)+c1*e_1))/(1+beta*(v1_bar(k)+G));
if abs(e1(k))>epcf/G
w=w_1+beta/(gama*c1^2)*h'*e1(k);
elseif abs(e1(k))<=epcf/G
w=w_1;
end
fnn(k)=w'*h';
u(k)=yd1(k)-fnn(k)-c1*e(k);
%u(k)=yd1(k)-fx(k)-c1*e(k); %With precise fx
fx_1=fx(k);
y_1=y(k);
w_1=w;
u_1=u(k);
e1_1=e1(k);
e_1=e(k);
end
figure(1);
plot(time,yd,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('yd,y');
legend('Ideal position signal','Position tracking');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('time(s)');ylabel('Control input');
figure(3);
plot(time,fx,'r',time,fnn,'k:','linewidth',2);
xlabel('time(s)');ylabel('fx and fx estimation');
10.1.4 Programs for Sect. 10.3.5.3
Simulation program: chap10_5.m
%Discrete RBF controller
clear all;
close all;
ts=0.001;
c1=-0.01;
beta=0.001;
epcf=0.003;
gama=0.001;
G=50000;
b=15;
c=[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2;
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2];
w=rands(9,1);
w_1=w;
u_1=0;y_1=0;y_2=0;
e1_1=0;e_1=0;
x=[0 0]';
fx_1=0;
for k=1:1:10000
time(k)=k*ts;
yd(k)=sin(k*ts);
yd1(k)=sin((k+1)*ts);
%Linear model
fx(k)=1.5*y_1*y_2/(1+y_1^2+y_2^2)+0.35*sin(y_1+y_2);
y(k)=fx_1+u_1;
e(k)=y(k)-yd(k);
x(1)=y_1;x(2)=y_2;
for j=1:1:9
h(j)=exp(-norm(x-c(:,j))^2/(2*b^2));
end
v1_bar(k)=beta/(2*gama*c1^2)*h*h';
e1(k)=(-c1*e1_1+beta*(e(k)+c1*e_1))/(1+beta*(v1_bar(k)+G));
if abs(e1(k))>epcf/G
w=w_1+beta/(gama*c1^2)*h'*e1(k);
elseif abs(e1(k))<=epcf/G
w=w_1;
end
fnn(k)=w'*h';
u(k)=yd1(k)-fnn(k)-c1*e(k);
%u(k)=yd1(k)-fx(k)-c1*e(k); %With precise fx
%u(k)=0.10*(x1d(k)-x1(k)); %P control
fx_1=fx(k);
y_2=y_1;
y_1=y(k);
w_1=w;
u_1=u(k);
e1_1=e1(k);
e_1=e(k);
end
figure(1);
plot(time,yd,'r',time,y,'k:','linewidth',2);
xlabel('time(s)');ylabel('yd,y');
legend('Ideal position signal','Position tracking');
figure(2);
plot(time,u,'r','linewidth',2);
xlabel('time(s)');ylabel('Control input');
figure(3);
plot(time,fx,'r',time,fnn,'k:','linewidth',2);
xlabel('time(s)');ylabel('fx and fx estimation');
Rights and permissions
Copyright information
© 2013 Tsinghua University Press, Beijing and Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Liu, J. (2013). Discrete Neural Network Control. In: Radial Basis Function (RBF) Neural Network Control for Mechanical Systems. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-34816-7_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-34816-7_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-34815-0
Online ISBN: 978-3-642-34816-7
eBook Packages: EngineeringEngineering (R0)