日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【神经网络】RBF神经网络逼近任意连续非线性函数的Simulink仿真

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【神经网络】RBF神经网络逼近任意连续非线性函数的Simulink仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:上周開始學習神經網絡,覺得挺有意思,神經網絡可以實現對任意非線性函數的逼近,而且可以作為控制器來實現對模型的自適應調節,讓控制器能夠不斷學習不斷修改自己的參數。

RBF神經網絡逼近任意非線性函數

??RBF神經網絡個人理解:RBF神經網絡由輸入層,隱含層和輸出層構成,其中輸入層到隱含層的激勵函數為高斯基函數,隱含層到輸出層為線性函數,高斯基函數的參數包括寬度矢量 bbb 和隱含神經元的中心矢量值 ccc。需要注意的是 bbbccc 需要設計在網絡輸入有效的映射范圍內,否則會導致RBF網絡失效而逼近失敗。
??RBF神經網絡逼近包括基于梯度下降法的自適應控制和基于Lyapunov穩定性分析的在線自適應神經網絡控制。基于梯度下降法的缺點是容易陷入局部最優且不能保證閉環系統的穩定性。

基于梯度下降法

??基于梯度下降法分為只調節權值 www 和調節權值及高斯基函數的參數 bbbcccwww 。通過誤差來調節神經網絡中的參數。

仿真模型:包括被控對象和RBF神經網絡逼近。


Matlab代碼

function [sys,x0,str,ts] = Book2222_controller(t,x,u,flag) % 基于梯度下降法的RBF神經網絡逼近 switch flagcase 0 %初始化[sys,x0,str,ts]=mdlInitializeSizes;case {1,2,4,9} %離散狀態計算,下一步仿真時刻,終止仿真設定sys=[];case 3 %輸出信號計算sys=mdlOutputs(t,x,u);otherwiseDAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag)); endfunction [sys,x0,str,ts]=mdlInitializeSizes %系統的初始化 sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs = 1; sizes.NumInputs = 2; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 0; sys = simsizes(sizes); x0 = []; str = []; ts = []; % 權值初值的選擇 % 神經網絡PID控制器 2-5-1結構 global W_new W_past C_new C_past B_new B_past C_new = [-1 -0.5 0 0.5 1; -10 -5 0 5 10]; %2*5 中心矢量 C_past = C_new; B_new = [3 3 3 3 3]; %1*5 基寬度參數 B_past = B_new; W_new = rand(1,5); %權值取0-1的隨機值 W_past = W_new;function sys = mdlOutputs(t,x,u) %產生(傳遞)系統輸出 global W_new W_past C_new C_past B_new B_past alpha = 0.05; xite = 0.15; u_in = u(1); y_out = u(2); some = [u_in; y_out]; h = zeros(5,1); for j = 1:5h(j) = exp(-(norm(some - C_new(:,j))^2/(2* B_new(j)^2))); %5*1矩陣 徑向基函數 end % RBF的網絡輸出ym ym = W_new * h;% 權值的調整 更新值 deltaW = zeros(1,5); for i = 1:5deltaW(i) = xite * (y_out - ym) * h(i); end for i = 1:5W_new(i) = W_new(i) + deltaW(i) + alpha*(W_new(i) - W_past(i)); end% 基寬帶參數b的修正 deltab = zeros(1,5); for i = 1:5deltab(i) = xite * (y_out - ym) * W_new(i) * h(i) * (norm(some - C_new(:,i))^2 / B_new(i)^3);B_new(i) = B_new(i) + deltab(i) + alpha*(B_new(i) - B_past(i)); end% 中心矢量c的修正 deltac = zeros(2,5); for j = 1:2for i = 1:5 deltac(j,i) = xite * (y_out - ym) * W_new(i) * h(i) * ((some(j) - C_new(j,i)) / B_new(i)^2);C_new(j,i) = C_new(j,i) + deltac(j,i) + alpha*(C_new(j,i) - C_past(j,i));end endsys(1) = ym;W_past = W_new; B_past = B_new; C_past = C_new;

仿真結果:

真實輸出與RBF神經網絡輸出對比

輸出誤差:

結論

?? RBF神經網絡可以很好的逼近非線性函數,穩態誤差很小,根據這一特性可以用神經網絡來實現對模型的精確控制,后續考慮結合神經網絡與固定時間滑模控制來發文章。

總結

以上是生活随笔為你收集整理的【神经网络】RBF神经网络逼近任意连续非线性函数的Simulink仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。