91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 20KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: Matlab
  • 標簽: MATLAB??Simulink??PID??

資源簡介

使用MATLAB軟件中的simulink模塊,進行BP神經網絡PID控制仿真

資源截圖

代碼片段和文件信息

function?[sysx0strtssimStateCompliance]?=?exppidf(txuflag)

switch?flag
????case?0
????????[sysx0strtssimStateCompliance]=mdlInitializeSizes;
????case?1
????????sys=mdlDerivatives(txu);
????case?2
????????sys=mdlUpdate(txu);
????case?3
????????sys=mdlOutputs(txu);
????case?4
????????sys=mdlGetTimeOfNextVarHit(txu);
????case?9
????????sys=mdlTerminate(txu);
????otherwise
????????DAStudio.error(‘Simulink:blocks:unhandledFlag‘?num2str(flag));
????????
end

function?[sysx0strtssimStateCompliance]=mdlInitializeSizes
sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=3;
sizes.NumOutputs=4;
sizes.NumInputs=7;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[10.110];
str=[];
ts=[0?0];
simStateCompliance?=?‘UnknownSimState‘;

function?sys=mdlDerivatives(txu)

sys?=?[x];
function?sys=mdlUpdate(txu)
T=0.1;
x=[u(5);x(2)+u(5)*T;(u(5)-u(4))/T];%e(k)e(k)求和e(k)求微分
sys=[x(1);x(2);x(3)];


function?sys=mdlOutputs(txu)
xite=0.2;
alfa=0.05;
IN=3;H=5;OUT=3;
T=0.1;
global?wi;
global?wo;
global?wi_1;
global?wi_2;
global?wi_3;

global?wo_1;
global?wo_2;
global?wo_3;

global?Kp;
global?Ki;
global?Kd;
%wi=rand(53);wo=rand(35);

Oh=zeros(15);
I=Oh;
K1=zeros(31);K=zeros(13);dyu=0;dK=zeros(13);delta3=zeros(13);
d_wo=zeros(35);segma=zeros(15);delta2=zeros(15);d_wi=zeros(53);dO=zeros(15);
xi=[u(1)u(3)u(5)];
epid=[x(1);x(2);x(3)];%用于傳給pid控制器的誤差
I=xi*wi‘;%隱含層的輸入
for?j=1:1:5
????Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));%隱含層的輸出
end
K1=wo*Oh‘;??%輸出層的輸入
for?i=1:1:3
????K(i)=exp(K1(i))/(exp(K1(i))+exp(-K(i)));%輸出層的輸出
end
u_k=K*epid;
%以下是權值調整
%隱含層至輸出層的權值調整
dyu=sign((u(3)-u(2))/(u(7)-u(6)+0.01));
for?j=1:1:3
????dK(j)=2/(exp(K1(j))+exp(-K1(j)))^2;?%輸出層的輸出的一階導
end
for?i=1:1:3
????delta3(i)=u(5)*dyu*epid(i)*dK(i);??%輸出層的delta
end
for?j=1:1:3
????for?i=1:1:5
????????d_wo=xite*delta3(j)*Oh(i)+alfa*(wo_1-wo_2);
????end
end
wo=wo_1+d_wo+alfa*(wo_1-wo_2);
%以下是輸入層至隱含層的權值調整
for?i=1:1:5
????dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
end
segma=delta3*wo;
for?i=1:1:5
????delta2(i)=dO(i)*segma(i);
end
%for?i=1:1:5
???%?for?j=1:1:3
??????%??d_wi=xite*delta2(i)*xi(j)+alfa*(wi_1-wi_2);
???%?end
%end
d_wi=xite*delta2‘*xi;
wi=wi_1+d_wi+alfa*(wi_1-wi_2);

wo_3=wo_2;
wo_2=wo_1;
wo_1=wo;
wi_3=wi_2;
wi_2=wi_1;
wi_1=wi;
Kp=K(1);Ki=K(2);Kd=K(3);
sys=[u_kKpKiKd];
%sys=[1234];

function?sys=mdlGetTimeOfNextVarHit(txu)

sampleTime?=?0.1;????%??Example?set?the?next?hit?to?be?one?second?later.
sys?=?t?+?sampleTime;

function?sys=mdlTerminate(txu)

sys?=?[];








?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-03?13:23??BP神經網絡PID仿真\
?????文件???????19733??2018-12-25?18:48??BP神經網絡PID仿真\BPPID.slx
?????文件????????2763??2018-12-23?23:16??BP神經網絡PID仿真\s_bppid.m

評論

共有 條評論