資源簡(jiǎn)介
這是非常實(shí)用的基于RBF神經(jīng)網(wǎng)絡(luò)的PID控制仿真代碼,可以通過(guò)參數(shù)自適應(yīng)整定來(lái)實(shí)現(xiàn)功能,請(qǐng)大家參考!
代碼片段和文件信息
clear;?clc;?%%?參數(shù)初始化?
lr=0.1;%學(xué)習(xí)速率?
beta=0.05;%動(dòng)量因子?
x=[000]‘;%初始化輸入
nn=6;%隱含層節(jié)點(diǎn)數(shù)?
%RBF網(wǎng)絡(luò)3-6-1結(jié)構(gòu)初始化參數(shù)
ci=30*ones(3nn);%節(jié)點(diǎn)基函數(shù)中心向量?
bi=40*ones(nn1);%節(jié)點(diǎn)基函數(shù)方差
w=10*ones(nn1);?%輸出層權(quán)重
h=zeros(nn1);%隱藏層輸出向量?
ci_1=ci;ci_3=ci_1;ci_2=ci_1;?bi_1=bi;bi_2=bi_1;bi_3=bi_2;?w_1=w;w_2=w_1;w_3=w_1;?
u_1=0;y_1=0;?ec=[000]‘;%誤差變化率eceecc
error_1=0;error_2=0;error=0;
%?PID?初始參數(shù)設(shè)置?
kp0?=?0.03;?ki0?=?0.28;?kd0?=?0.03;?flag=1;%控制模式flag=0?PID&RBF;flag=1?PID
kp_1=kp0;?kd_1=kd0;?ki_1=ki0;?%pid參數(shù)學(xué)習(xí)率
kp_lr=0.20;?kd_lr=0.20;?ki_lr=0.20;?ts=0.01;?%%?
for?t?=?1:1:200?time(t)=t*ts;?r(t)=1.0*sign(sin(2*pi*t*ts));%系統(tǒng)參考輸入?
????y(t)=(-0.3*y_1+u_1)/(6+y_1^2);%系統(tǒng)輸出?
%%?前向傳播?%1.計(jì)算每個(gè)節(jié)點(diǎn)RBF的輸出?
for?j=1:1:nn?
????h(j)=exp(-norm(x-ci(:j))^2/(2*bi(j)*bi(j)));?
end
%2.?RBF網(wǎng)絡(luò)輸出?
ym(t)=w‘*h;?%%?反向傳播?%1.?輸出權(quán)重更新計(jì)算?
d_w=0*w;?
for?j=1:1:nn?
????d_w(j)=lr*(y(t)-ym(t))*h(j);?
end
w=w_1+d_w+beta*(w_1-w_2);?%2.?節(jié)點(diǎn)基函數(shù)方差更新?
d_bi=0*bi;?
for?j=1:1:nn?
????d_bi(j)=lr*(y(t)-ym(t))*w(j)*h(j)*(bi(j)^-3)*norm(x-ci(:j))^2;?
end
bi=bi_1+?d_bi+beta*(bi_1-bi_2);?%3.?節(jié)點(diǎn)中心更新?
for?j=1:1:nn
????for?i=1:1:3?
????????d_ci(ij)=lr*(y(t)-ym(t))*w(j)*h(j)*(x(i)-ci(ij))*(bi(j)^-2);?
????end
end
ci=ci_1+d_c
評(píng)論
共有 條評(píng)論