📄 ga_fuzpid.m
字号:
% ga_fuzpid.m file
% Fin Skp Ski Skd for fuzzy PID control
% PenChen Chou, 2,28,2002
global MIN_offset MUL_factor LOCUS x_data y_data Skp Ski Skd MDL Emin
MIN_offset=2500; LOCUS=1; x_data=[]; y_data=[];
MUL_factor=1; MDL='fuzzy_PID';
fuzzy_kp=readfis('fuzzy_kp');
fuzzy_alpha=readfis('fuzzy_alpha');
Emin=MIN_offset;
%**********************************************************/
% User can modify the following in blocks
%**********************************************************/
obj_fcn = 'GA_fpid'; % Objective function
range = [0.01 0.01 0.01
20 20 20]; % Range of the input variables
IC=[]; elite=1;
gen_no=15;
popuSize=22;
bit_n=30;
xover_rate=0.8;
mutate_rate=0.05;
%************************************************************
% call GA written by Chang
tic
% [popu, popu_real, fcn_value, upper, average,...
% lower, BEST_popu, popuSize, gen_no, para, best_pi]=...
% 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\n',t);
Skp=para(1);
Skd=para(2);
Ski=para(3);
[T X Y]=sim(MDL,10);
y=Y(:,1);err=Y(:,2);in=Y(:,3);kp=Y(:,4);Ki=Y(:,5);kd=Y(:,6);
figure(2);subplot(211);plot(T,[in y]);title('Fuzzy PID control')
figure(2);subplot(234);plot(T,[kp]);title('Fuzzy Kp plot')
figure(2);subplot(235);plot(T,[ki]);title('Fuzzy Ki plot')
figure(2);subplot(236);plot(T,[kd]);title('Fuzzy Kd plot')
fprintf('Skp=%8.4f;Ski=%8.4f;Skd=%8.4f\n',Skp,Ski,Skd);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -