欢迎来到本博客❤️❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者
目前更新:电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
支持:如果觉得博主的文章还不错或者您用得到的话,可以免费的关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!
或许,雨过云收,神驰的天地更清朗.......
本文目录如下:⛳️⛳️⛳️
目录
1 概述
2 运行结果展现
2.1 情况一
2.2 情况二
2.3 情况三
2.4 情况四
3 Matla代码实现
微电网是自给自足的配电系统。为了自给自足,系统需要一个智能控制器来确定电源的来源。本文将使用改进遗传算法实现微电网调度。将对两种类型的生存方法和两种类型的繁殖方法进行分析和比较,以确定哪种方法的解决方案组合可以提供最佳结果。将使用的繁殖方法是变异和交叉。将使用的生存方法是精英主义和随机选择。
微电网控制很复杂。使用改进遗传算法创建孤岛微电网模型和系统发电的优化。将通过在24小时内模拟该微电网模型的控制来测试该模型。
运行结果:
这个运行时间要长点,我就不等着运行了,直接上代码了。
部分代码:
%% MATLB|改进遗传算法优化微电网调度(考虑环境)
clear
clc
close all
pop=100; % 种群数量
m_rate = .1; % 突变率
c_pt = 2; % 交叉点
good_enough = .08; % 何时停止
weights = [1, .6, .4];
%% 染色体
power = 1;
cost = 2;
emission = 3;
source_1 = [20, .02, .01];
source_2 = [120, .20, .05];
source_3 = [15, .01, .02];
source_4 = [50, .02, .04];
sources = [source_1; source_2; source_3; source_4];
%=====定义范围===========
[num_sources, num_genes] = size(sources);
boundaries = zeros(num_genes, 2);
boundaries(1,:) = [15, 100]; %功率范围
boundaries(2,:) = [.15, 6.55]; % 获得最大功率的最低成本
boundaries(3,:) = [.15, 3.75]; % 获得最大功率的最小排放量
%% 选择策略
disp('Choose a Reproduction Method');
r = input(' 1 - Mutation\n 2 - Crossover\n ');
while r > 2 || r < 1
r = input(' \nInput a valid number\n 1 - Mutation\n 2 - Crossover\n ');
end
disp('' );
disp('Choose a Survival Method');
s = input('1 - Random Selection\n 2 - Elitism\n ');
while s > 2 || s < 1
s = input(' \nInput a valid number\n 1 - Random Selection \n 2 - Elitism\n ');
end
disp('');
if r == 1
reproduction = @mass_mutate;
else
reproduction = @crossover;
end
if s == 1
survival = @random_selection;
else
survival = @elitism;
end
%% 负荷序列
load = TimeSeries();
%% 生成初始代
chromosomes = chromosome_gen(pop, sources);
vector = zeros(24, num_sources); % 最佳染色体的初始化向量
econ = zeros(24, 1); % 为经济因素初始化向量
enviro = zeros(24, 1); % 环境初始化向量
time = zeros(24, 1); % 存储时间的向量
for i = 1:length(load)
tic;
% 得到适应度向量
fit = fitness(chromosomes, sources, boundaries, weights, load(i));
[best, best_i] = min(fit);
% 循环直至找到合适的染色体
while(~stop_condition(fit, good_enough))
% 用选定的方法繁殖
chromosomes = reproduction(chromosomes, pop, sources, boundaries, m_rate, c_pt);
fit = fitness(chromosomes, sources, boundaries, weights, load(i));
% 存活
chromosomes = survival(pop, chromosomes, fit);
% 适应度
fit = fitness(chromosomes, sources, boundaries, weights, load(i));
[best,best_i]=min(fit);
% 去除NaN
if(isnan(best))
best = 1;
end
end
%存储经过的时间
elapsed = toc;
time(i) = elapsed;
% 将染色体存储在向量中
vector = store_best(vector, fit, chromosomes, i);
% 储存经济因子
econ(i) = econ_fitness(chromosomes(best_i, :), sources, boundaries, weights);
% 储存环境因子
enviro(i) = enviro_fitness(chromosomes(best_i, :), sources, boundaries, weights);
end
%% 可视化
enviro_plot(enviro);
econ_plot(econ);
power_plot(vector, load);
calculation_plot(time);
%% 输出
get_data(load, vector, sources)
回复关键字:改进遗传算法优化微电网调度(考虑环境)