📄 ga_ex631.m
字号:
% GA_ex631.m file
% Find scaling factors of a Fuzzy control system by using GA
% PenChen Chou, 8-4-2001
%**********************************************************/
% User can modify the following in blocks
%**********************************************************/
global MIN_offset MUL_factor LOCUS x_data y_data
global Emin MDL Se Sde Su ex631f FT
ex631f=readfis('ex631f');
MDL='motor_control'; eval(MDL); FT=0.5;
MIN_offset=9e3; LOCUS=0; x_data=[]; y_data=[];
MUL_factor=5;
Emin=MIN_offset;
obj_fcn = 'GA_f631'; % Objective function
UB=45*ones(1,3); LB=0.01*ones(1,3);
range = [LB;UB];
IC=[];elite=1;
gen_no=30; popuSize=30;
bit_n=40; xover_rate=1; mutate_rate=0.05;
%************************************************************
% 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, bit_n, xover_rate,...
mutate_rate);
t=toc/60;
fprintf('==> Computation time is (%.2f) minutes.\n',t);
% Show the result using parameters found by GA
Se=para(1);
Sde=para(2);
Su=para(3);
[t, X, Y]=sim(MDL,[0:0.01:0.5]);
in=Y(:,2); x1=Y(:,3); u=Y(:,4); y=[in x1];
figure(2);subplot(211);plot(t,y);
title('GA based Motor speed command and output responses(RPM.)');
xlabel(['Time(s), Se=' num2str(Se) ',Sde=' num2str(Sde) ',Su=' num2str(Su)]);
figure(2);subplot(212);plot(t,[u]);
title('Control effort');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -