资源简介

使用MATLAB软件中的simulink模块,进行RBF神经网络PID控制仿真,实测成功!!

资源截图

代码片段和文件信息

function [sys x0 str ts] = nnrbf_pid( txuflagTnnK_pid...
    eta_pid xite alfa beta0 w0)
switch flag
case 0 [sys x0 str ts] = mdlInitializeSizes( Tnn) ;
case 2 sys = mdlUpdates( u) ;
case 3 sys = mdlOutputs( t x u T nn K_pideta_pid...
        xite alfa beta0 w0) ;
case { 1 4 9} sys = [] ;
otherwise error ( [‘Unhandled flag = ‘  num2str(flag)]);
end

function [sysx0strts] = mdlInitializeSizes(T nn)
sizes = simsizes; 
sizes. NumContStates = 0; 
sizes.NumDiscStates = 3;
sizes. NumOutputs = 4+ 5* nn; 
sizes.NumInputs = 9+15* nn;
sizes. DirFeedthrough = 1; 
sizes. NumSampleTimes =1;
sys= simsizes( sizes) ; 
x0= zeros( 3 1) ; str= [ ] ; ts=[T 0] ;

function sys = mdlUpdates( u)
sys= [ u(1) - u(2) ; u(1) ; u(1) + u(3) - 2* u(2) ];

function sys = mdlOutputs( t x uT nn K_pid eta_pid...
    xite alfa beta0 w0)
ci3= reshape( u(7: 6+ 3* nn)  3 nn) ; ci2= reshape(u( 7+ 5* nn: 6+ 8* nn)  3 nn) ;
ci1= reshape( u( 7+ 10* nn: 6+ 13* nn)  3 nn) ;
bi3= u( 7+ 3* nn: 6+ 4* nn) ; bi2= u( 7+ 8*nn: 6+ 9* nn) ;
bi1= u( 7+ 13* nn: 6+ 14* nn) ; w3= u( 7+ 4* nn: 6+ 5* nn) ;
w2= u( 7+ 9* nn: 6+ 10* nn) ; w1= u( 7+ 14* nn: 6+ 15* nn) ; xx= u( [ 6; 4; 5] ) ;
if t== 0
ci1= w0( 1) * ones( 3 nn) ; bi1= w0( 2) *ones( nn 1) ;
w1= w0( 3) * ones( nn 1) ; K_pid0= K_pid;
else K_pid0= u( end-2: end) ; 
end
for j= 1: nn
h(j 1) = exp( - norm( xx- ci1( :  j) )^2/(2* bi1(j) * bi1(j))) ;
end
dym= u(4) - w1‘* h; 
w= w1+ xite* dym* h+alfa* (w1- w2) + beta0*( w2- w3) ;
for j= 1: nn
dbi(j1) = xite* dym* w1(j) * h(j) * (bi1(j) ^(- 3)) * norm( xx- ci1(:j))^2;
dci( : j) = xite*dym* w1(j)* h(j) * (xx- ci1(:j)) * (bi1(j)^(- 2) );
end
bi= bi1+ dbi+ alfa* (bi1- bi2) + beta0*(bi2- bi3) ;
ci= ci1+ dci+ alfa* (ci1- ci2) + beta0*(ci2- ci3) ;
dJac= sum( w.*h.*( - xx (1) + ci (1:)‘ ) ./bi.^2) ; % Jacobian
KK(1)= K_pid0(1)+ u(1) * dJac* eta_pid(1)* x(1);
KK(2)= K_pid0(2)+ u(1) * dJac* eta_pid(2)* x(2); 
KK(3)= K_pid0(3)+ u(1) * dJac* eta_pid(3)* x(3); 
sys= [ u( 6) + KK* x; KK‘; ci( : ) ; bi( : ) ; w( : ) ] ;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2102  2012-04-10 16:31  nnrbf_pid.m
     文件       34314  2012-04-11 16:46  RBF_PID.mdl

评论

共有 条评论