MATLB|改进遗传算法优化微电网调度(考虑环境)
创始人
2024-05-15 09:19:41
0次

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

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者,博主专门做了一个专栏目录,整个专栏只放了一篇文章,足见我对其重视程度:博主专栏目录。做到极度细致,方便大家进行学习!亲民!!!还有我开了一个专栏给女朋友的,很浪漫的喔,代码学累的时候去瞧一瞧,看一看:女朋友的浪漫邂逅。有问题可以私密博主,博主看到会在第一时间回复。
📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以免费的关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

 👨‍🎓博主课外兴趣:中西方哲学,送予读者:

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。在我这个专栏记录我有空时的一些哲学思考和科研笔记:科研和哲思。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

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

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

目录

​

1 概述

2 运行结果展现

2.1 情况一

 2.2 情况二

 2.3 情况三

2.4 情况四 

3 Matla代码实现


1 概述

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

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

2 运行结果展现

2.1 情况一

           

运行结果:

 

 2.2 情况二

        

 2.3 情况三

   

 

 

 

2.4 情况四 

 

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

3 Matla代码实现

部分代码:


%% MATLB|改进遗传算法优化微电网调度(考虑环境)clear
clc
close allpop=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 < 1r = 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 < 1s = input(' \nInput a valid number\n 1 - Random Selection \n 2 - Elitism\n ');
end
disp('');if r == 1reproduction = @mass_mutate;
elsereproduction = @crossover;
endif s == 1survival = @random_selection;
elsesurvival = @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);% 去除NaNif(isnan(best))best = 1;endend%存储经过的时间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)

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...