資源簡介
用遺傳算法求解PID參數優化MATLAB源程序
代碼片段和文件信息
function?[kxBsJ]=pid_fm_gaf(kxBsJ)
global?rin?yout?timef?F
a=50;b=400;
ts=0.001;?
sys=tf(b[1a0]);
dsys=c2d(systs‘z‘);
[numden]=tfdata(dsys‘v‘);
u_1=0;u_2=0;
y_1=0;y_2=0;
e_1=0;
B=0;
G=400;
for?k=1:1:G
???timef(k)=k*ts;
S=2;
if?S==1
???fre=5;
???AA=0.5;
???rin(k)=AA*sin(2*pi*fre*k*ts);
end
if?S==2
???rin(k)=1;
end
yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
error(k)=rin(k)-yout(k);??
derror(k)=(error(k)-e_1)/ts;
???
u(k)=50*error(k)+0.50*derror(k);
???
speed(k)=(yout(k)-y_1)/ts;
if?F==1??%?Disturbance?Signal:?Coulomb?Friction
???Ff(k)=0.8*sign(speed(k));?????
end
if?F==2??%?Disturbance?Signal:?
評論
共有 條評論