二、单变量寻优
题目:
已知Kp=1.0,求Ti
clear
clear all
a0=5;b0=100; %黄金分割法子程序
L0=b0-a0;BT=0.618;
global y;Q=0;x=0;
DT=1;ST=400;LP=ST/DT;
x1=a0+(1-BT)*L0;
x=x1;
Q1=simu1(x);
x2=a0+BT*L0;
x=x2;
Q2=simu1(x);
while(1)
if (b0-a0)/L0<0.01
x=0.5*(x1+x2);
Q=simu1(x);
break;
elseif Q1<Q2
b0=x2;x2=x1;Q2=Q1;x1=a0+(1-BT)*(b0-a0);
x=x1;
Q1=simu1(x);
else
a0=x1;x1=x2;Q1=Q2;x2=a0+BT*(b0-a0);
x=x2;
Q2=simu1(x);
end
end
plot((1:LP)*DT,y);
title('单变量寻优仿真曲线');
disp(['目标函数最优值Q=',num2str(Q),'最优变量x=',num2str(x)]);
目标函数程序
function Q=simu1(x)
z1=0;z2=0;z3=0;z4=0;
DT=1;ST=400;LP=ST/DT;
C=exp(-DT/12.5);D=1-C;
Ig=1;Q=0;global y;
for i=1:LP
z1=z1+DT/x*(1-z4);
z2=C*z2+0.53*D*(z1+1-z4);
z3=C*z3+D*z2;
3
)5.121(
53.0
S�