ga_ex671.m
来自「其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載」· M 代码 · 共 65 行
M
65 行
% GA_ex671.m file
% [Kp Ki Kd] values for a PID control system
% PenChen Chou, Aug. 17, 2001
%**********************************************************/
% User can modify the following in blocks
%**********************************************************/
clear all
ans=1;
who
fprintf('>>>Start this program now. Please wait!\n');
pause(1)
global MIN_offset MUL_factor ROBUST Kp Ki Kd K a1 a2 MDL FT Emin
global ERR1 ERR2 ERR3 ERR4 ERR5 MAIN_loop
ROBUST=0;
dcm2_init;
if ROBUST==0,
Emin=1e6;
MIN_offset=50000; % For finding MIN value
else
Emin=1e6;
MIN_offset=5e4;
end;
MUL_factor=1; MAIN_loop=0;
MDL='dcmotor_2'; FT=2; eval(MDL);
K=17661.1;a1=29.73;a2=21.033;
obj_fcn = 'GA_f671'; % Objective function
% Kp Ki Kd
range = [ 0.1 0.0064 10
0.5 0.05 95.5 ];
IC=[]; elite=1;
if ROBUST==0
gen_no=10;
else
gen_no=20;
end;
popuSize=20;
bit_n=40;
xover_rate=0.9;
mutate_rate=0.04;
%************************************************************
% call GA written by Chang
tic
%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, bit_n,...
xover_rate, mutate_rate);
t=toc/60;
fprintf('==> Computation time is (%.2f) minutes.\n',t);
% Final result
Kp=GA_round4dp(para(1));
Ki=GA_round4dp(para(2));
Kd=GA_round4dp(para(3));
MAIN_loop=1;
ERR1=0;ERR2=0;ERR3=0;ERR4=0;ERR5=0;
collect_errors;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?