?? ga_ex362.m
字號:
% GA_ex362.m file
% Find scaling factors [Se Sde Su] of a 2nd order plant
% PenChen Chou, 7-21-2001
%**********************************************************/
% User can modify the following in blocks
%**********************************************************/
global MIN_offset MUL_factor LOCUS x_data y_data Se Sde dSu
global MDL Emin Final_time
MIN_offset=3e4; LOCUS=0; x_data=[]; y_data=[];
Final_time=140;
MUL_factor=1;
Emin=MIN_offset;
MDL='ex362_nn';
eval(MDL)
obj_fcn = 'GA_f362'; % Objective function
range = [1 0.1 0.0001
20 10 10]; % Range of the input variables
IC=[];elite=1;
gen_no=40; popuSize=90;
gen_no=20; popuSize=30;
%************************************************************
% calling GA
tic
% function [popu, popu_real, fcn_value, upper, average,...
% lower, BEST_popu, popuSize, gen_no, para]=GA_genetic(obj_fcn,...
% range, IC, elite, gen_no, popuSize, bit_n, xover_rate,...
% mutate_rate);
[popu, popu_real, fcn_value, upper, average, lower, ...
BEST_popu, popuSize, gen_no, para] = GA_genetic(obj_fcn,...
range, IC, elite, gen_no, popuSize);
t=toc/60;
fprintf('==> Computation time is (%.2f) minutes.\n',t);
% Plot the final results
Se=para(1);
Sde=para(2);
dSu=para(3);
[T, X, Y]=sim(MDL,[0 Final_time]);
in=Y(:,1); y=Y(:,2); STP=sum(Y(:,3));
err=Y(:,4); N=length(err); ERR=err(N);
if STP>0, ERR=Emin+1000; end;
PI=ERR;
if MIN_offset>0
PI=MIN_offset-PI;
if PI<0, PI=10; end;
end;
if Emin>ERR
Emin=ERR;
fprintf('Se=%f;Sde=%f;dSu=%f;ERR=%f;\n',Se,Sde,dSu,ERR);
end;
[M, N]=size(Y);
figure(2);plot(T,Y(:,1:2));grid;
title(['I/O plots, after GA search, Se=' num2str(Se)...
',Sde=' num2str(Sde) ',dSu=' num2str(dSu)]);
xlabel('Time(s)')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -