ga_ex672.m
来自「其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載」· M 代码 · 共 56 行
M
56 行
% GA_ex672.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 Kp Ki Kd K a1 a2 MDL FT
global ERR1 ERR2 ERR3 ERR4 ERR5 MAIN_loop evo_fuzzy Emin
global rise_time set_time ov_shoot Emin
evo_fuzzy=readfis('evo_fuzzy');
dcm2_init;
Emin=1e6;
MIN_offset=1400; % For finding MIN value
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_f672'; % Objective function
% Kp Ki Kd
range = [ 0.1 0.0064 50
2.5 0.25 195.5 ];
IC=[]; elite=1;
gen_no=50;popuSize=36;
gen_no=10;popuSize=16;
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));
[rise_time set_time ov_shoot Emin]
MAIN_loop=1;
ERR1=0;ERR2=0;ERR3=0;ERR4=0;ERR5=0;
collect_errors;
figure(2);
K=17661.1;a1=29.73;a2=21.033;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?