MATLB|改进遗传算法优化微电网调度(考虑环境)

 欢迎来到本博客❤️❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者
目前更新:电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
支持:如果觉得博主的文章还不错或者您用得到的话,可以免费的关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

     或许,雨过云收,神驰的天地更清朗.......

本文目录如下:⛳️⛳️⛳️

目录

1 概述

2 运行结果展现

2.1 情况一

 2.2 情况二

 2.3 情况三

2.4 情况四 

3 Matla代码实现


1 概述

微电网是自给自足的配电系统。为了自给自足,系统需要一个智能控制器来确定电源的来源。本文将使用改进遗传算法实现微电网调度。将对两种类型的生存方法和两种类型的繁殖方法进行分析和比较,以确定哪种方法的解决方案组合可以提供最佳结果。将使用的繁殖方法是变异和交叉。将使用的生存方法是精英主义和随机选择。

微电网控制很复杂。使用改进遗传算法创建孤岛微电网模型和系统发电的优化。将通过在24小时内模拟该微电网模型的控制来测试该模型。

2 运行结果展现

2.1 情况一

           MATLB|改进遗传算法优化微电网调度(考虑环境)_第1张图片

运行结果:

MATLB|改进遗传算法优化微电网调度(考虑环境)_第2张图片

 MATLB|改进遗传算法优化微电网调度(考虑环境)_第3张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第4张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第5张图片

 2.2 情况二

        MATLB|改进遗传算法优化微电网调度(考虑环境)_第6张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第7张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第8张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第9张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第10张图片

 2.3 情况三

   MATLB|改进遗传算法优化微电网调度(考虑环境)_第11张图片

MATLB|改进遗传算法优化微电网调度(考虑环境)_第12张图片

 MATLB|改进遗传算法优化微电网调度(考虑环境)_第13张图片

 MATLB|改进遗传算法优化微电网调度(考虑环境)_第14张图片

 MATLB|改进遗传算法优化微电网调度(考虑环境)_第15张图片

2.4 情况四 

 MATLB|改进遗传算法优化微电网调度(考虑环境)_第16张图片

 这个运行时间要长点,我就不等着运行了,直接上代码了。

MATLB|改进遗传算法优化微电网调度(考虑环境)_第17张图片

部分代码:


%% 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)

 

3 Matla代码实现

回复关键字:改进遗传算法优化微电网调度(考虑环境)

你可能感兴趣的:(电气代码,人工智能,改进遗传算法,微电网调度,考虑环境,Matlab)