📄 ga_f372.m
字号:
function PI=GA_f372(x)
% Fitness max. function evaluation of Example 3.7-2
% PenChen Chou, Aug. 16, 2001
global MIN_offset MUL_factor ROBUST Kp Ki Kd K a1 a2 MDL FT Emin
global ERR1 ERR2 ERR3 ERR4 ERR5 MAIN_loop Ts Tc L1 L2 K1 K2
Kp=GA_round4dp(x(1));
Ki=GA_round4dp(x(2));
Kd=GA_round4dp(x(3));
L1=GA_round4dp(x(2));
L2=GA_round4dp(x(3));
PI=0;
ERR1=0;ERR2=0;ERR3=0;ERR4=0;ERR5=0;
if ROBUST==0
K=1.41e6;a1=778.5743;a2=9.9562e4;
[T X Y]=sim(MDL,[0 FT]);
II=find(T>0.25); M=II(1);
err=Y(:,3); N=length(err);err=err(M:N);
ERR1=sum(abs(err));
% if max(yout)>1.15; PI=PI+500; end;
K=1.41e6;a1=778.5743;a2=9.9562e4;
K=2.5*K; a1=0.4*a1; a2=0.4*a2;
[T X Y]=sim(MDL,[0 FT]);
II=find(T>0.25); M=II(1);
err=Y(:,3); N=length(err);err=err(M:N);
ERR2=sum(abs(err));
else
% collecta_errors;
% PI=Err_scale*PI;
end; % End of ROBUST check
ERR=ERR1+ERR2+ERR3+ERR4+ERR5;
PI=ERR;
K=17661.1;a1=29.73;a2=21.033;
if Emin>PI
Emin=PI; save xxx Kp Ki Kd L1 L2
% fprintf('\n==>Emin=%10.4f;Kp=%10.6f;Ki=%10.6f;Kd=10.6f;\n',...
% Emin,Kp,Ki,Kd);
else
fprintf('>');
end;
if MIN_offset~=0
PI=MIN_offset-PI;
end;
PI=MUL_factor*PI;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -