資源簡(jiǎn)介
基于BP神經(jīng)網(wǎng)絡(luò)的一級(jí)倒立擺PID控制,經(jīng)檢驗(yàn)控制效果理想
代碼片段和文件信息
%基于BP神經(jīng)網(wǎng)絡(luò)的PID控制器設(shè)計(jì)
clc;
clear;
NI=3;NH=10;NO=3;??????????????????????????%選取網(wǎng)絡(luò)結(jié)構(gòu)為:3-10-3?????????????
%輸入層到隱層權(quán)值初始化
Wih=0.01*rands(NINH);Wih_1=Wih;Wih_2=Wih;
%隱層到輸出層權(quán)值初始化
Who=0.01*rands(NHNO);Who_1=Who;Who_2=Who;
%變量初始化
u=0;u_1=0;u_2=0;ly=0;err_1=0;err_2=0;
eta=0.5;???????????????????????????????????%給定學(xué)習(xí)率
a=0.1;?????????????????????????????????????%給定動(dòng)量項(xiàng)因子
ts=0.002;??????????????????????????????????%給定采樣時(shí)間
%信號(hào)源選擇:1—階躍;2—正弦;3—方波;
souce=1;???????????????????????????????????%選擇階躍輸入
%開始參數(shù)自學(xué)習(xí)實(shí)時(shí)控制
for?k=1:1000
????t(k)=k*ts;
????%判斷信號(hào)源
????switch?souce
????????case?1
????????????rin(k)=1;
????????case?2
????????????rin(k)=sin(2*pi*t(k));
????????case?3
????????????rin(k)=sign(sin(2*pi*t(k)));
????????otherwise
????????????error(‘信號(hào)源錯(cuò)誤!‘);?????????
????end
????%計(jì)算被控對(duì)象輸出
????y(k)=1.2*(1-0.8*exp(-0.1*k))*ly/(1+ly^2)+u_1;????
????err(k)=rin(k)-y(k);??????????????????????%計(jì)算誤差
????%-------------計(jì)算BP網(wǎng)絡(luò)各層輸入及輸出-------------
????x1=err(k)-err_1;?x2=err(k);?x3=err(k)-2*err_1+err_2;?
????%輸入層輸入輸出,注意:必要時(shí)輸入要做歸一化
????N1i=[x1x2x3];
????N1o=N1i;
????%隱層輸入輸出
????N2i=N1o*Wih;
????N2o=tanh(N2i);??????????????????????????
????%輸出層輸入輸出
????N3i=Who‘*N2o‘;???????????????????????????
????N3o=1./(1+exp(-N3i));????????????????????%注意:一定是點(diǎn)除!
????Kp(k)=N3o(1);?Ki(k)=N3o(2);?Kd(k)=N3o(
- 上一篇:ldpc的譯碼matlab程序
- 下一篇:單變量及多變量灰色模型matlab程序
評(píng)論
共有 條評(píng)論