wth181897853 发表于 2011-8-20 09:32

ref神经PID控制器的参数调节问题

我按照薛定宇那本<<控制系统计算机辅助设计-matlab语言与应用>>设计的REF神经PID控制器,直接把他的控制器用在我的模型上面,但控制效果很差,不知道调节那个参数,请高手指点一下,还有上面的参数nn表示什么意思,能不能把他的程序给详细说明一下?    哪位大侠能来指点一二,非常感谢,

这是他的s函数,请问其中nn代表什么,他的是几层的神经网络?输入,输出各是什么?
function =nnrbf_pid(t,x,u,flag,T,nn,K_pid,...
   eta_pid,xite,alfa,beta0,w0)
switch flag,
   case 0, = mdlInitializeSizes(T,nn);
   case 2, sys = mdlUpdates(u);
   case 3,   sys = mdlOutputs(t,x,u,T,nn,K_pid,eta_pid,...
                         xite,alfa,beta0,w0);
   case {1, 4, 9}, sys = [];
   otherwise, error(['Unhandled flag = ',num2str(flag)]);
end
%初始化函数
function = 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=;
%离散状态变量更新函数
function sys = mdlUpdates(u)
sys=;
%输出量计算函数
function sys = mdlOutputs(t,x,u,T,nn,K_pid,eta_pid,...
                        xite,alfa,beta0,w0)
ci_3=reshape(u(7: 6+3*nn),3,nn); ci_2=reshape(u(7+5*nn: 6+8*nn),3,nn);
ci_1=reshape(u(7+10*nn: 6+13*nn),3,nn);
bi_3=u(7+3*nn: 6+4*nn); bi_2=u(7+8*nn: 6+9*nn);//这些事什么意思啊?
bi_1=u(7+13*nn: 6+14*nn); w_3= u(7+4*nn: 6+5*nn);
w_2= u(7+9*nn: 6+10*nn); w_1= u(7+14*nn: 6+15*nn); xx=u();
if t==0
    ci_1=w0(1)*ones(3,nn);bi_1=w0(2)*ones(nn,1);
    w_1=w0(3)*ones(nn,1);K_pid0=K_pid;
else, K_pid0=u(end-2:end); end
for j=1: nn% Gaussian basis h
    h(j,1)=exp(-norm(xx-ci_1(:,j))^2/(2*bi_1(j)*bi_1(j)));
end
dym=u(4)-w_1'*h; w=w_1+xite*dym*h+alfa*(w_1-w_2)+beta0*(w_2-w_3);
for j=1:nn
   d_bi(j,1)=xite*dym*w_1(j)*h(j)*(bi_1(j)^(-3))*norm(xx-ci_1(:,j))^2;
   d_ci(:,j)=xite*dym*w_1(j)*h(j)*(xx-ci_1(:,j))*(bi_1(j)^(-2));
end
bi=bi_1+d_bi+alfa*(bi_1-bi_2)+beta0*(bi_2-bi_3);
ci=ci_1+d_ci+alfa*(ci_1-ci_2)+beta0*(ci_2-ci_3);
dJac=sum(w.*h.*(-xx(1)+ci(1,:)')./bi.^2); % Jacobian
KK=K_pid0+u(1)*dJac*eta_pid.*x; sys=;

yufeng 发表于 2011-8-21 08:46

3层网络nn我记得是隐层的节点数 输出比较多了 有u pid 以及相关的权值阈值 输入就是各误差信息 权值阈值 这些你结合介绍看比较清楚
页: [1]
查看完整版本: ref神经PID控制器的参数调节问题