【正文】
xiteP=。 xiteI=。 xiteD=。 %Initilizing kp,ki and kd wkp_1=。 wki_1=。 wkd_1=。 %wkp_1=rand。 %wki_1=rand。 %wkd_1=rand。 error_1=0。 error_2=0。 y_1=0。y_2=0。y_3=0。 u_1=0。u_2=0。u_3=0。 ts=。 for k=1:1:1000 time(k)=k*ts。 rin(k)=*sign(sin(2*2*pi*k*ts))。 yout(k)=*y_1+*y_2+*u_1+*u_2。 error(k)=rin(k)yout(k)。 %Adjusting Weight Value by hebb learning algorithm M=4。 if M==1 %No Supervised Heb learning algorithm wkp(k)=wkp_1+xiteP*u_1*x(1)。 %P wki(k)=wki_1+xiteI*u_1*x(2)。 %I wkd(k)=wkd_1+xiteD*u_1*x(3)。 %D K=。 elseif M==2 %Supervised Delta learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1。 %P wki(k)=wki_1+xiteI*error(k)*u_1。 %I wkd(k)=wkd_1+xiteD*error(k)*u_1。 %D K=。 elseif M==3 %Supervised Heb learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1*x(1)。 %P wki(k)=wki_1+xiteI*error(k)*u_1*x(2)。 %I wkd(k)=wkd_1+xiteD*error(k)*u_1*x(3)。 %D K=。 elseif M==4 %Improved Heb learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)error_1)。 wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)error_1)。 wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)error_1)。 K=。 end x(1)=error(k)error_1。 %P x(2)=error(k)。 %I x(3)=error(k)2*error_1+error_2。 %D wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k))。 w11(k)=wkp(k)/wadd(k)。 w22(k)=wki(k)/wadd(k)。 w33(k)=wkd(k)/wadd(k)。 w=[w11(k),w22(k),w33(k)]。 u(k)=u_1+K*w*x。 %Control law if u(k)10 u(k)=10。 end if u(k)10 u(k)=10。 end error_2=error_1。 error_1=error(k)。 u_3=u_2。u_2=u_1。u_1=u(k)。 y_3=y_2。y_2=y_1。y_1=yout(k)。 wkp_1=wkp(k)。 wkd_1=wkd(k)。 wki_1=wki(k)。 end figure(1)。 plot(time,rin,39。b39。,time,yout,39。r39。)。 xlabel(39。time(s)39。)。ylabel(39。rin,yout39。)。 figure(2)。 plot(time,error,39。r39。)。 xlabel(39。time(s)39。)。ylabel(39。error39。)。 figure(3)。 plot(time,u,39。r39。)。 xlabel(39。time(s)39。)。ylabel(39。u39。)。 kkkkkkkkkkkkkuuyyguuyyfuuyyfy,... ),... ,(,... ),... ,(,... ),... ,(11111111??????????gfyu kk /)( 11 ?? ?假設系統(tǒng)第 k + 1 個采樣時刻的期望輸出值為 d k+ 1, 則 gfdu kk /)( 11 ?? ?變學習因子自適應神經(jīng)網(wǎng)絡控制系統(tǒng) 考慮到實際系統(tǒng)的制約 , 對控制量 u 加了限幅處理 , N 1 為一 BP 網(wǎng)絡 , g 為比例環(huán)節(jié)。如 果 f 對 u 為非線性的 , 則 g 亦為 BP 網(wǎng)絡。 學習算法 為了對網(wǎng)絡權值進行在線學習 , 取輸出偏差 并定義學習誤差 _111 ??? ?? kkk yye_2111 )( ??? ?? kkk yyE式中 為網(wǎng)絡輸出的對象輸出預測值 , yk+ 1 為對象實際輸出值。則 _1?kyijkijkkijkwfewEewE?????????????? 11111kkk uegE11?? ????于是由梯度法得到權值調整規(guī)則為 ijkkijkij wfeww?????? 111 ?kkkk uegg 11 ?? ?? ?如果 P 含有純滯后為 T d = L T 的滯后環(huán)節(jié)時 , kkkkkLk guuuyyfy ?? ???? , .. .), .. .,( 1111gfyu kLk /)( 11 ?? ??相應的權值調整規(guī)則為 ijkkijkij wfeww?????? 111 ?Lkkkk uegg ??? ?? 11 ?在實際應用中 , 可以先估計一個滯后時間。運行時 , 如果在第 L + 1 個采樣時刻檢測到第 一個非零的零狀態(tài)響應 , 則可認為純滯后時間為 L T 學習因子的選擇 學習因子的選擇對系統(tǒng)性能有較大影響 , 如果學習速率過小 , 學習過程收斂緩慢 , 必將影響到控制的實時性 。 如果學習速率過大 , 則又會影響到學習的收斂性。采用變學習因子的方法 , 在學習過程中自動調整學習因子 , 取得了較好的效果。 事實上 , 假設 W0 為理想的權值這時有 E k+ 1 (W0) = 0, 將 E 在 W處作 Taylo r 展開 : 10)))((()()0())((21)))((()()(0311231231131?????????????????????DDg r a d EwEHEwg r a d EwEwEkkiikikkKDwEg r a d E Kk ???? ?? )()))((( 131)(/)()(/)()(/)()(/)()()()(1111211211121133wg r a d EwEwg r a d EwEwg r a d EwEwg r a d EDwEDwEwg r a d Ewg r a d Ekkkkkkkkkkk????????????????????????????搜索法取速度,可采用黃金分割如果想進一步提高學習?。闅W幾里德范數(shù),所以其中的估值公式: