%主程序
clc;
clear all;
tic; % 计时开始
max_generation=100; %终止代数
popsize=100; %种群规模
pc=0.4; pm=0.02; %算子取值
scale_var=0.001; %寻优精度
gen=1;
i=1;
global min_var
global max_var
% max_var1=0.000926; % L范围,单位是 H
% min_var1=0;
% max_var2=0.000462; % Lg范围,单位是 H
% min_var2=0.000231;
% max_var3=0.00000548; % Cf范围,单位是 f
% min_var3=0;
max_var1=8.855; % L范围,单位是 mH
min_var1=0.809;
max_var2=2.53; % Lg范围,单位是 mH
min_var2=0.231;
max_var3=5.48; % Cf范围,单位是 uf
min_var3=1;
max_var4=13.26; % Rd范围,单位是 欧姆
min_var4=2.42;
max_var=[max_var1 max_var2 max_var3 max_var4];
min_var=[min_var1 min_var2 min_var3 min_var4];
[bin_gen,bits]= encoding(min_var,max_var,scale_var,popsize);
[c]=decoding(bin_gen,bits,min_var,max_var);
fit= f(c); %计算适应度
while gen(i,1)< max_generation
[newpop]=select(bin_gen,fit); %选择
new_gen=crossover(newpop,pc); %交叉
mutation_gen=mutation(new_gen,pm); %变异
bin_gen=mutation_gen;
c=decoding(bin_gen,bits,min_var,max_var);
fit= f(c);
bbb=1+gen(i,1);
i=i+1;
gen(i,1)=bbb;
end
plot(gen,fit);
xlabel Generation;
ylabel fit;
[fitmax,loc]=max(fit)
x=gen(loc)
c(x,:)
toc; % 计时结束
评论1