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)

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...