rbf神经网络_基于RBF神经网络的监督控制(09)
1.RBF監(jiān)督控制
基于RBF神經(jīng)網(wǎng)絡(luò)的監(jiān)督控制系統(tǒng),其控制思想是:初始階段采用PD反饋控制,然后過渡到神經(jīng)網(wǎng)絡(luò)控制。在控制過程中,如出現(xiàn)較大的誤差,則PD控制起主導(dǎo)作用,神經(jīng)網(wǎng)絡(luò)控制起調(diào)節(jié)作用。
圖1 基于RBF神經(jīng)網(wǎng)絡(luò)的監(jiān)督控制系統(tǒng)設(shè):
(1) 徑向基向量h=[h1,...,hm]T,(高斯基函數(shù)),hj=exp( -||x(k)-cj||^2/(2bj^2))。
其中,i=1;j=1,...,m;x(k)為RBF網(wǎng)絡(luò)的輸入;cj=[c11,...,c1m];b=[b1,...,bm]T。
(2) 權(quán)值向量w=[w1,...,wm]T。
(3) RBF神經(jīng)網(wǎng)絡(luò)的輸出為un(k)=h1w1+...+hjwj+...hmwm。
(4) 總控制輸入為u(k)=un(k)+up(k)。
(5) 誤差指標(biāo)為E(k)=(1/2)*(un(k)-u(k))^2。
(6) 采用梯度下降法,網(wǎng)絡(luò)權(quán)值學(xué)習(xí)算法為
△wj(k)=-η*(?E(k)/?wj(k))=η(un(k)-u(k))hj(k),η為學(xué)習(xí)率,[0,1]。
w(k)=w(k-1)+△w(k)+α(w(k-1)-w(k-2)),α為動(dòng)量因子,[0,1]。
2. 仿真實(shí)例
設(shè)被控對(duì)象為G(s)=1000/(s^3+87.35s^2+10470s)。
設(shè)采樣周期為:1ms。
對(duì)上述對(duì)象進(jìn)行離散化,可得:y(k)=-den(2)y(k-1)-den(3)y(k-2)+num(2)u(k-1)+num(3)u(k-2)。
設(shè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為:1-4-1。
理想跟蹤指令為:x(k)=yd(k)。
網(wǎng)絡(luò)的初始權(quán)值取[0,1]之間的隨機(jī)數(shù)。
根據(jù)網(wǎng)絡(luò)輸入范圍,高斯函數(shù)中心參數(shù)為cj=[-5,-3,0,3,5]T。
設(shè)學(xué)習(xí)速率:η=0.3。
設(shè)動(dòng)量因子:α=0.05。
%% RBF監(jiān)督控制 clear all; close all;ts = 0.001; % 采樣周期 sys = tf(1000,[1,87.35,10470]); dsys = c2d(sys,ts,'z'); % 離散化 [num,den] = tfdata(dsys,'v');y_1 = 0; y_2 = 0; u_1 = 0; u_2 = 0; e_1 = 0;xi = 0; % 輸入層為1個(gè)輸入 x = [0,0]';b = 0.5*ones(4,1); c = [-2 -1 1 2]; % 隱藏層為4個(gè)節(jié)點(diǎn) w = rands(4,1); w_1 = w; w_2 = w_1;xite = 0.30; alfa = 0.05;kp = 25; kd = 0.3; for k = 1:1:1000time(k) = k*ts; S = 1; if S == 1yd(k) = 0.5*sign(sin(2*2*pi*k*ts)); % 理想的跟蹤指令:方波信號(hào) elseif S == 2yd(k) = 0.5*(sin(3*2*pi*k*ts)); % 理想的跟蹤指令:正弦信號(hào) endy(k) = -den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; e(k) = yd(k)-y(k);xi = yd(k);for j = 1:1:4h(j) = exp(-norm(xi-c(:,j))^2/(2*b(j)*b(j))); end un(k) = w'*h'; % 總體控制輸入量% PD控制器 up(k) = kp*x(1)+kd*x(2); % PD控制輸入量M = 2; % 使用整體控制 if M == 1 % 僅使用PD控制器u(k) = up(k); elseif M == 2 % 總體控制u(k) = up(k)+un(k); end % 限制總控制量的范圍在[-10,10] if u(k) >= 10u(k) = 10; end if u(k) <= -10u(k) = -10; end % 更新神經(jīng)網(wǎng)絡(luò)權(quán)值 d_w = -xite*(un(k)-u(k))*h'; w = w_1+ d_w+alfa*(w_1-w_2);w_2 = w_1; w_1 = w; u_2 = u_1; u_1 = u(k); y_2 = y_1; y_1 = y(k);x(1) = e(k); % 計(jì)算PD控制器的比例項(xiàng) x(2) = (e(k)-e_1)/ts; % 計(jì)算PD控制器的微分項(xiàng) e_1 = e(k); endfigure(1); plot(time,yd,'r',time,y,'k:','linewidth',2); xlabel('time(s)'); ylabel('Position tracking'); legend('理想的位置信號(hào)','跟蹤的位置信號(hào)');figure(2); subplot(311); plot(time,un,'k','linewidth',2); xlabel('time(s)'); ylabel('un'); legend('RBF控制輸入量'); subplot(312); plot(time,up,'k','linewidth',2); xlabel('time(s)'); ylabel('up'); legend('PD控制輸入量'); subplot(313); plot(time,u,'k','linewidth',2); xlabel('time(s)'); ylabel('u'); legend('總控制輸入量');圖1 方波跟蹤效果圖2 神經(jīng)網(wǎng)絡(luò)輸入、PD控制輸入及總控制輸入問題:傳遞函數(shù)離散化?
參考文獻(xiàn):《RBF神經(jīng)網(wǎng)絡(luò)自適應(yīng)控制MATLAB仿真》_劉金琨
總結(jié)
以上是生活随笔為你收集整理的rbf神经网络_基于RBF神经网络的监督控制(09)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码逻辑分析_入行数据分析师不得不看的1
- 下一篇: python将列表转换为字符串_每日一课