原创~尚未发表!基于改进秃鹰算法的多区域微网经济优化调度程序代码!

本文主要是介绍原创~尚未发表!基于改进秃鹰算法的多区域微网经济优化调度程序代码!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

随着光伏、风电等分布式电源的发展,配电网的供电模式得以改变,解决了传统火力发电带来的能源匮乏及环境污染问题,但其发电的随机性及波动性对配电网的稳定运行造成一定影响。以多个微电网组成的微电网群可有效消纳分布式电源,提高供电灵活性及可靠性,减少弃光、弃风率,降低经济成本。因此,构建微电网优化调度模型已成为微电网综合控制的核心问题之一,对减少微电网系统运行成本及环境污染具有重要意义。

微电网群系统结构

微电网群由3个独立的微电网(microgrid,MG)组成,各微电网内部包含光伏(photovoltaic,PV)、风力发电机(wind turbine,WT)、电动汽车(electric vehicle,EV)、微型燃气轮机(microturbine,MT)、储能电池(battery,BT)及负荷,通过能量管理中心实现彼此之间电能交互及向配电网买卖电,如下图所示。

目标函数

考虑微电网群系统运行成本及环境成本,构建微电网群经济优化调度模型,其中运行成本包括可控分布式发电单元的发电成本、设备运行维护成本、BT运行成本、电能交易成本;环境成本为CO2、SO2、NOx污染物气体的排放惩罚成本,以微电网群系统总运行成本为目标函数进行优化调度。

秃鹰搜索算法

BES是一种针对秃鹰狩猎行为提出的自然启发式算法(仿生算法),包含选择搜索空间、搜索猎物及俯冲3个阶段。

选择搜索空间阶段:该阶段秃鹰根据猎物数量随机选择搜索区域,飞到当前最优个体附近。

搜索猎物阶段:该阶段秃鹰在选定的搜索空间内螺旋飞行,加速搜索猎物。

俯冲阶段:该阶段秃鹰从当前最优位置以螺旋飞行的方式冲向猎物。

算法步骤

程序介绍

本程序构建以3个单微电网组成的微电网群优化调度模型,综合考虑系统总运行成本及环境成本,采用改进秃鹰算法(improved bald eagle search algorithm,IBES)进行求解,通过融合反向学习和柯西变异策略来提高秃鹰算法(bald eagle search algorithm,BES)的寻优精度,最终通过与其他算法对模型进行求解,验证改进后算法的优越性。程序中算例丰富,注释清晰,干货满满,创新性和可扩展性很高,足以撑起一篇高水平论文!下面对程序做简要介绍!

程序适用平台:Matlab+Yalmip+Cplex

参考文献:《基于改进秃鹰算法的微电网群经济优化调度研究》-太阳能学报

程序结果

部分程序

%% 设置种群参数
parameters;
sizepop = 40;                       % 初始种群个数
dim = 288;                          % 空间维数
ger = 500;                          % 最大迭代次数   
[x_max, x_min] = set_pop(dim);      % 位置上下限
a = 2;                              % 位置变化参数
a1 = 10;                            % 搜索点之间角的参数
R = 1.5;                            % 搜索周期数
c1 = 1.8;                           % 增加秃鹰移动强度的随机数
c2 = 1.8;                           % 增加秃鹰移动强度的随机数
[x,y] = polr(a,R,sizepop);          % 搜索猎物阶段的参数    
[x1,y1] = swoo_p(a,R,sizepop);      % 俯冲阶段的参数
%% 种群初始化
pop = x_min + rand(sizepop,dim).*(x_max - x_min);   % 初始化种群  
pop_best = pop(1,:);                                % 初始化群体最优位置
fitness = zeros(1,sizepop);                         % 所有个体的适应度
fitness_best = inf;                                 % 初始化群体最优适应度
%% 初始的适应度% 计算适应度值
​fitness(k) = objective_fun(pop(k,:));
​​fitness_best = fitness(k);
​pop_best = pop(k,:);
history_IBES = zeros(1,ger);  % IBES历史最优适应度值
%% 迭代求最优解
% 1.选择搜索空间阶段
pop_new = pop_best + 2*rand(1,dim).*(mean(pop) - pop(k,:));
fitness_new = objective_fun(pop_new);
% 2.搜索猎物阶段
pop_new = pop(k,:) + y(k)*(pop(k,:) - pop(k + 1,:)) + x(k)*(pop(k,:) - mean(pop));fitness_new = objective_fun(pop_new);
​% 3.俯冲阶段
​pop_new = rand(1,dim).*pop_best + x(k)*(pop(k,:) - c1*mean(pop)) + y(k)*(pop(k,:) - c2*pop_best);
​fitness_new = objective_fun(pop_new);
% 4.融合反向学习和柯西变异策略​
​pop1 = x_max + rand(1,dim).*(x_min - pop(k,:));
​L = ((ger - iter)/ger)^iter;
pop_new = pop1 + L*(pop(k,:) - pop1);

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴关注并私信获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

这篇关于原创~尚未发表!基于改进秃鹰算法的多区域微网经济优化调度程序代码!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1115792

相关文章

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Java中的xxl-job调度器线程池工作机制

《Java中的xxl-job调度器线程池工作机制》xxl-job通过快慢线程池分离短时与长时任务,动态降级超时任务至慢池,结合异步触发和资源隔离机制,提升高频调度的性能与稳定性,支撑高并发场景下的可靠... 目录⚙️ 一、调度器线程池的核心设计 二、线程池的工作流程 三、线程池配置参数与优化 四、总结:线程

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据