亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? npccon1.m

?? matlab中的神經網絡控制系統工具箱
?? M
?? 第 1 頁 / 共 2 頁
字號:
% ----------------------------------   NPCCON1.M    -------------------------------
%
%  This program simulates a predictive controller applied to a process
%  modelled by a nonlinear neural network model. 
%
%  Minimization of the predictive control criterion:
%
%                     N2                              Nu
%                    ---         ^        2           ---                    2
%       J(t,U)  =    >   (r(t+k)-y(t+k|t))   +  rho * >   (u(t+k-1)-u(t+k-2))
%                    ---                              --- 
%                    k=N1                             k=1
%
%  is done with a Quasi-Newton method using the BFGS-algorithm for
%  approximating the inverse Hessian. The algorithm is implemented with
%  the "soft" line search described in:
%                   K. Madsen: "Optimering uden bibetingelser." (in Dansih)
%                   IMM, Technical University of Denmark, 1984
%
%  The proposed algorithm is inspired by the considerations in:
%    J.E. Dennis & J.J More: "Quasi-Newton Methods, Motivation and Theory"
%    SIAM Review 19, pp. 46-89, 1977
%
%  All design parameters must be defined in the file 'npcinit.m'
%
%  Programmed by Magnus Norgaard, IAU/EI/IMM, Technical Univ. of Denmark
%  LastEditDate: Feb. 12, 1996


%----------------------------------------------------------------------------------
%-------------------         >>>  INITIALIZATIONS  <<<        ---------------------
%----------------------------------------------------------------------------------

%>>>>>>>>>>>>>>>>>>>>>>      READ VARIABLES FROM FILE       <<<<<<<<<<<<<<<<<<<<<<<
clear plot_a plot_b
global ugl
npcinit
eval(['load ' nnfile]);                % Load neural network


% >>>>>>>>>>>>>>>>>>>>>>>>   DETERMINE REGRESSOR STRUCTURE   <<<<<<<<<<<<<<<<<<<<<<   
na      = NN(1);                       % # of past y's to be used in TDL
nb      = NN(2);                       % # of past u's to be used in TDL
nk      = NN(3);                       % Time delay in system
d       = NN(3);                       % Time delay in addition to the usual 1 
N1      = d;                           % N1<>d not fully implemented yet. 
inputs  = na+sum(nb);                  % Total number of inputs to network
outputs = 1;                           % # of outputs is 1 (SISO system)
phi     = zeros(inputs,1);             % Initialize regressor vector


% >>>>>>>>>>>>>>>>>    DETERMINE STRUCTURE OF NETWORK MODEL     <<<<<<<<<<<<<<<<<<<
hidden   = length(NetDef(1,:));        % Number of hidden neurons
L_hidden = find(NetDef(1,:)=='L')';    % Location of linear hidden neurons
H_hidden = find(NetDef(1,:)=='H')';    % Location of tanh hidden neurons
y1       = zeros(hidden,N2-N1+1);      % Hidden layer outputs
yhat     = zeros(outputs,1);           % Network output


%>>>>>>>>>>>>>>>>>>>>>>>        INITIALIZE VARIABLES        <<<<<<<<<<<<<<<<<<<<<<
% Determine length of reference filter polynomials
nam = length(Am);
nbm = length(Bm);

% Initialization of past signals
maxlen = 5;
ref_old    = zeros(maxlen,1);
y_old      = zeros(N2,1);
yhat_old   = zeros(N2,1);
u_old      = zeros(maxlen,1);

% Initialization of constant gain PID parameters
if strcmp(regty,'pid'),
  B1 = K*(1+Ts*Wi/2);
  A1 = Ts*Wi;
  B2 = (2*Td+Ts)/(2*alf*Td+Ts);
  A2 = 2*Ts/(2*alf*Td+Ts);
  I1 = 0;
  I2 = 0;
  uimin = -10; uimax = 10;
end

% Miscellaneous initializations
df  = ones(hidden,1);
dUtilde_dU = eye(Nu);
dUtilde_dU(1:Nu-1,2:Nu)=dUtilde_dU(1:Nu-1,2:Nu)-eye(Nu-1);
dY_dU      = zeros(Nu,N2-N1+1);  % Initialize matrix of partial derivatives
y0         = 0;                  % The output up to time t<=0
u          = 0;                  % The controls up to time t<=0
up         = u(ones(Nu,1));      % Initial future controls
upmin      = up;
beta0      = 0.9;                % Associated with the line search
t = -Ts;
delta2     = delta*delta;
fighandle=progress;

% Initialization of Simulink system
if strcmp(simul,'simulink')
  eval(['[sizes,x0] = ' sim_model '([],[],[],0);']);
end


%>>>>>>>>>>>>>>>>    CALCULATE REFERENCE SIGNAL & FILTER IT     <<<<<<<<<<<<<<<<<<
if strcmp(refty,'siggener'),
  ref = zeros(samples+N2,1);
  for i = 1:samples+N2,
    ref(i) = siggener(Ts*(i-1),sq_amp,sq_freq,sin_amp,sin_freq,dc,sqrt(Nvar));
  end
elseif strcmp(refty,'none'),
  ref = zeros(samples+N2,1);
else
  eval(['ref = ' refty ';']);
  ref=ref(:);
  i=length(ref);
  if i>samples+N2,
    ref=ref(1:samples+N2);
  else
    ref=[ref;ref(i)*ones(samples+N2-i,1)];
  end
end
ref=filter(Bm,Am,ref);


% Initializations of vectors used for storing old data
ref_data    = ref(1:samples);
u_data      = zeros(samples,1);
y_data      = zeros(samples,1);
yhat_data   = zeros(samples,1);
t_data      = zeros(samples,1);
e_data      = zeros(samples,1);


% Data vectors used in control algorithm
% u_vec : First element is u(t-d+N1-nb+1), last element is u(t-d+N2)
% Index to time t is thus: tiu=d-N1+nb ("t index u_vec")
u_vec = u(ones(N2-N1+nb,1));
tiu   = d-N1+nb;
upi   = [1:Nu-1 Nu(ones(1,N2-d-Nu+2))];     % [1 2 ... Nu Nu ... Nu] 
uvi   = [tiu:N2-N1+nb];

% y_vec: First element is y(t-na), last element is y(t-1)
% Index to time t is: tiy=na+1
y_vec = y0(ones(na,1));
tiy   = na+1;

% yhat_vec: First element is yhat(t), last element is yhat(t+N2)
% Index to time t is: tiyh=1
yhat_vec = y0(ones(N2+1,1));
tiyh = 1;


%------------------------------------------------------------------------------
%-------------------         >>>   MAIN LOOP   <<<           ------------------
%------------------------------------------------------------------------------
for i=1:samples,
  t = t + Ts;
  
%>>>>>>>>>>>>>>>>>>>>>>>>    PREDICT OUTPUT FROM PLANT  <<<<<<<<<<<<<<<<<<<<<<<
  phi            = [y_vec(na:-1:1);u_old(d:d+nb-1)];
  h1             = W1(:,1:inputs)*phi + W1(:,inputs+1);  
  y1(H_hidden,1) = pmntanh(h1(H_hidden)); 
  y1(L_hidden,1) = h1(L_hidden);
  yhat           = W2(:,1:hidden)*y1(:,1) + W2(:,hidden+1);
  yhat_vec(tiyh) = yhat;


%>>>>>>>>>>>>>>>>>>>>>>>>    READ OUTPUT FROM PLANT     <<<<<<<<<<<<<<<<<<<<<<<
  if strcmp(simul,'simulink')
    utmp=[t-Ts,u_old(1);t,u_old(1)];
    [time,x0,y] = rk45(sim_model,[t-Ts t],x0,[1e-3 Ts/2000 Ts/50 0 0 2],utmp);
    x0 = x0(length(x0),:)';
    y  = y(length(y),:)';
  elseif strcmp(simul,'matlab')
    ugl = u_old(1);
    [time,x] = ode45(mat_model,t-Ts,t,x0);
    x0 = x(length(time),:)';
    eval(['y = ' model_out '(x0);']);
  elseif strcmp(simul,'nnet')
    y = yhat;
  end

 
  %--------------------------------------------------------------------------------
  %----------     >>>  FIND NEW CONTROL SIGNAL BY OPTIMIZATION    <<<    ----------
  %--------------------------------------------------------------------------------
  upmin0   = upmin([2:Nu Nu]);
  einitval = eval(initval);     % Evaulate inival string
  for tr=1:length(einitval),
    up=upmin0;                  % Initial value for numerical search for a new u  
    up(Nu)=einitval(tr);
    u_vec(uvi) = up(upi);  
    dw = 1;                     % Flag specifying that up is new
    lambda = 0.1;               % Initialize Levenberg-Marquardt parameter
  
  
  %>>>>>>>>>>>>>>> COMPUTE PREDICTIONS FROM TIME t+N1 TO t+N2 <<<<<<<<<<<<<<<<
    for k=N1:N2,
      %----- Determine prediction yhat(t+k) -----
      phi              = [yhat_vec(tiyh+k-1:-1:tiyh+k-min(k,na)) ; ...
               y_vec(tiy-1:-1:tiy-max(na-k,0)) ; u_vec(tiu-d+k:-1:tiu-d+1-nb+k)];
      h1               = W1(:,1:inputs)*phi + W1(:,inputs+1);  
      y1(H_hidden,k-N1+1) = pmntanh(h1(H_hidden)); 
      y1(L_hidden,k-N1+1) = h1(L_hidden);
      yhat_vec(tiyh+k) = W2(:,1:hidden)*y1(:,k-N1+1) + W2(:,hidden+1);
    end
  
  
  %>>>>>>>>>>>>>>>>>>>>>>    EVALUATE CRITERION    <<<<<<<<<<<<<<<<<<<<<<
    duvec = u_vec(tiu:tiu+Nu-1)-u_vec(tiu-1:tiu+Nu-2);
    evec  = ref(i+N1:i+N2) - yhat_vec(tiyh+N1:tiyh+N2);
    J = evec'*evec + rho*(duvec'*duvec);
    
    
  %>>>>>>>>>>>>>>>>>>>>>>>>      DETERMINE dyhat/du       <<<<<<<<<<<<<<<<<<<<<<<<<
    for k=N1:N2
      % tanh'(x)
      df(H_hidden)  = (1-y1(H_hidden,k-N1+1).*y1(H_hidden,k-N1+1));
      for l=0:min(k-d,Nu-2)
         %                                 min(k-d-l,na)
         %                                     ---        dy(t+k-1)
         % h(k,l,j) =    w              +      >   w      --------
         %                j,na+k-d-l+1         ---   j,i   du(t+l)
         %                                     i=1
         % 
         imax1 = min(k-d-l,na);
         if l>=k-d-nb+1,
          if imax1>=1, 
            hj_vec = W1(:,1:imax1)*dY_dU(l+1,k-N1:-1:k-imax1-N1+1)'...
                          + W1(:,na+k-d-l+1);;
          else
            hj_vec=W1(:,na+k-d-l+1);
          end
         else
           hj_vec = W1(:,1:imax1)*dY_dU(l+1,k-N1:-1:k-imax1-N1+1)';
         end
    
         %          hidden     
         % dy(t+k)   ---
         % ------- =  >  W  * f'(y1(j)) * h(k,l,j)
         % du(t+l)   ---  j
         %           j=1
         dY_dU(l+1,k-N1+1)  = W2(1:hidden)*(df.*hj_vec);
      end
    
      if k>=Nu
         l=Nu-1;
         %       min(k-d-Nu+2,nb)          min(k-d-l,na)
         %             ---                    ---        dy(t+k-1)
         % h(k,l,j) =  >   w           +      >   w      --------
         %             ---  j,na+i            ---   j,i   du(t+l)
         %             i=1                    i=1
         % 
         imax1 = min(k-d-l,na);
         imax2 = min(k-d-Nu+2,nb);
         if imax2>1,
           if k==Nu,
             hj_vec = sum(W1(:,na+1:na+imax2)')';
           else
             hj_vec = W1(:,1:imax1)*dY_dU(l+1,k-N1:-1:k-imax1-N1+1)'...
                                                    + sum(W1(:,na+1:na+imax2)')';
           end
         else
           if k==Nu,
             hj_vec = W1(:,na+1:na+imax2);
           else
             hj_vec = W1(:,1:imax1)*dY_dU(l+1,k-N1:-1:k-imax1-N1+1)'...
                                                    + W1(:,na+1:na+imax2);
           end
         end
                                                
                                                    
         %          hidden     
         % dy(t+k)   ---
         % ------- =  >  W  * f'(y1(j)) * h(k,l,j)
         % du(t+l)   ---  j
         %           j=1     
         dY_dU(l+1,k-N1+1)  = W2(1:hidden)*(df.*hj_vec);
       end 
     end

  %>>>>>>>>>>>>>>>>>>>>>>>>>>>>    DETERMINE dJ/du     <<<<<<<<<<<<<<<<<<<<<<<<<<<<
  dJdu   = 2*(-dY_dU*evec + rho*(dUtilde_dU*duvec));


  %>>>>>>>>>>>>>>>>>>>>>>    DETERMINE INVERSE HESSIAN    <<<<<<<<<<<<<<<<<<<<<<<<<
  B = eye(Nu);                  % Initialize Hessian to I


  %>>>>>>>>>>>>>>>>>>>>>>>     BEGIN SEARCH FOR MINIMUM      <<<<<<<<<<<<<<<<<<<<<<    
  for m = 1:maxiter,            % Max. number of iteration
  
  
    %>>>>>>>>>>>>>>>>>>>>>>>   DETERMINE SEARCH DIRECTION   <<<<<<<<<<<<<<<<<<<<<<<
    f = -B*dJdu;

     
     %===============  DETERMINE STEP SIZE BY SIMPLE LINE SEARCH  =================
     mu = 1; b1 = 0; b2 = 1; beta = beta0; Jb1 = J; Gb1 = dJdu;

  
     while 2>1   
       %==============  COMPUTE PREDICTIONS FROM TIME t+N1 TO t+N2  ===============
       up_mu = up + mu*f;                % A priori iteration
       u_vec(uvi) = up_mu(upi);          % Insert updated controls
     
       %----- Determine prediction yhat(t+k,up_mu) -----
       for k=N1:N2,
         phi              = [yhat_vec(tiyh+k-1:-1:tiyh+k-min(k,na)) ; ...
                  y_vec(tiy-1:-1:tiy-max(na-k,0)) ; u_vec(tiu-d+k:-1:tiu-d+1-nb+k)];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产乱子伦 | 国产色婷婷亚洲99精品小说| 91极品美女在线| 色先锋资源久久综合| 97久久精品人人澡人人爽| 成人高清av在线| 91在线观看高清| 日本高清视频一区二区| 欧美在线免费视屏| 欧美男人的天堂一二区| 91精品国产91久久综合桃花| 91麻豆精品国产91久久久| 91精品欧美综合在线观看最新| 3atv在线一区二区三区| 日韩免费高清视频| 国产精品无码永久免费888| 亚洲色图第一区| 香蕉成人伊视频在线观看| 美女mm1313爽爽久久久蜜臀| 国产一区二区网址| 91蜜桃视频在线| 欧美精品色一区二区三区| 精品国产乱码91久久久久久网站| 国产视频一区不卡| 亚洲综合色网站| 奇米精品一区二区三区四区| 国产成人午夜视频| 欧美视频在线观看一区| 欧美精品一区二区久久久 | 不卡电影一区二区三区| 欧美亚洲国产一区在线观看网站 | 成人黄色av电影| 欧洲色大大久久| 欧美videossexotv100| 综合电影一区二区三区| 久久精工是国产品牌吗| 99国内精品久久| 精品福利视频一区二区三区| 亚洲美腿欧美偷拍| 国产风韵犹存在线视精品| 欧美喷潮久久久xxxxx| 久久久激情视频| 天天综合网 天天综合色| 成人三级伦理片| 精品理论电影在线| 三级一区在线视频先锋| www.日韩大片| 久久久久青草大香线综合精品| 一个色在线综合| 91丨九色丨蝌蚪丨老版| 国产亚洲一二三区| 日韩国产精品91| 欧美日韩中文另类| 国产精品盗摄一区二区三区| 国产精品一区久久久久| 色婷婷亚洲一区二区三区| 国产亚洲欧美色| 狠狠色丁香久久婷婷综合_中| 欧美日韩高清不卡| 一区二区高清视频在线观看| 白白色 亚洲乱淫| 久久久精品tv| 国产精品中文字幕欧美| 精品剧情在线观看| 久久成人免费电影| 91精品国产综合久久香蕉麻豆 | 日韩视频在线永久播放| 亚洲高清免费在线| 91啪亚洲精品| 亚洲色图制服诱惑 | 国产偷国产偷亚洲高清人白洁| 久久se这里有精品| 欧美成人在线直播| 狠狠色综合播放一区二区| 欧美成人一区二区三区片免费 | 成人激情图片网| 国产日韩精品一区| 成人高清免费观看| 亚洲免费大片在线观看| 在线精品视频一区二区三四| 夜夜嗨av一区二区三区网页| 在线观看av不卡| 亚洲国产成人91porn| 欧美日韩一本到| 午夜电影久久久| 日韩美女一区二区三区| 国产伦精品一区二区三区视频青涩| 精品久久久久久久人人人人传媒| 激情综合色播五月| 国产欧美一区二区精品秋霞影院 | 婷婷成人激情在线网| 日韩欧美一区二区视频| 国产一区二区91| 亚洲品质自拍视频| 在线成人av网站| 久久国产精品72免费观看| 国产欧美日韩在线| 欧美唯美清纯偷拍| 麻豆中文一区二区| 成人免费小视频| 7777精品伊人久久久大香线蕉最新版| 日韩高清一区二区| 日本一区二区免费在线观看视频| 色网站国产精品| 久久er99热精品一区二区| 国产精品美女久久久久久 | 久久91精品国产91久久小草| 欧美国产日韩在线观看| 欧美精三区欧美精三区| 国产激情一区二区三区四区| 亚洲大片在线观看| 久久亚洲二区三区| 欧美日韩一区二区在线视频| 国产麻豆视频一区| 日韩在线一二三区| 欧美韩日一区二区三区| 日韩久久久精品| 色综合视频在线观看| 久久97超碰色| 婷婷六月综合网| 亚洲欧美偷拍卡通变态| 久久久一区二区三区捆绑**| 欧美日韩和欧美的一区二区| 成人午夜大片免费观看| 日日夜夜免费精品| 亚洲精品一二三四区| 国产欧美日韩视频一区二区| 欧美电影在线免费观看| 一本大道久久a久久综合婷婷 | 欧美激情在线观看视频免费| 69成人精品免费视频| 99久久精品国产一区| 国产一区二区三区不卡在线观看| 午夜伦欧美伦电影理论片| 亚洲欧美日本在线| 欧美国产日韩亚洲一区| 国产日韩欧美不卡在线| ww久久中文字幕| 精品国精品国产尤物美女| 欧美伦理影视网| 欧美日韩一区二区不卡| 欧美亚洲日本一区| 欧洲精品在线观看| 欧美日韩一区二区在线观看| 欧美性色黄大片| 欧美日韩电影一区| 7777精品伊人久久久大香线蕉| 欧美日韩在线三区| 欧美日韩精品欧美日韩精品| 51精品久久久久久久蜜臀| 欧美伦理电影网| 欧美一级二级三级蜜桃| 日韩女优av电影在线观看| 日韩精品一区二| 久久久精品中文字幕麻豆发布| 久久天堂av综合合色蜜桃网| 精品成人一区二区| 国产日韩欧美一区二区三区综合| 久久日韩精品一区二区五区| 久久综合成人精品亚洲另类欧美| 精品国产一区二区三区忘忧草 | 亚洲成人午夜影院| 午夜精品爽啪视频| 美女国产一区二区三区| 国产在线精品一区二区不卡了| 国产不卡视频一区| 成人av电影在线网| 在线视频综合导航| 欧美日本精品一区二区三区| 精品久久久三级丝袜| 中文字幕一区在线观看| 亚洲你懂的在线视频| 婷婷开心久久网| 国产一区高清在线| 色婷婷综合久久久久中文一区二区 | 欧美一区二区视频观看视频| 精品少妇一区二区三区在线播放| 国产午夜亚洲精品午夜鲁丝片| 国产精品国产三级国产普通话99 | 中文字幕一区二区三区av| 亚洲另类中文字| 久久不见久久见免费视频7| 福利一区二区在线观看| 欧美亚洲国产一卡| 精品福利在线导航| 亚洲美女淫视频| 黄页网站大全一区二区| 成人午夜碰碰视频| 欧美男生操女生| 国产精品女人毛片| 美女视频一区在线观看| 成人a区在线观看| 精品污污网站免费看| 久久综合久久综合亚洲| 夜夜夜精品看看| 国产麻豆精品一区二区| 欧美日韩成人综合| 亚洲欧洲精品一区二区精品久久久| 天天综合网天天综合色| 91蝌蚪porny九色|