强势改进!基于改进多目标灰狼算法的冷热电联供型微电网运行优化程序代码!

适用平台:Matlab+Yalmip+Cplex

程序以综合能源系统/微电网为研究对象,将微电网的运行费用和环境污染成本作为优化目标,考虑冷热电负荷和设备运行要求的约束,建立的微电网的多目标优化模型,使用改进多目标灰狼算法算法进行求解。程序中算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!

程序创新点:

模型的优化求解使用改进的多目标灰狼优化算法,并针对微网运行约束较多,算法前期探索能力不足的问题,对算法进行改进,得到多目标问题的Pareto最优集。

通过对微电网优化模型的简化可以有效减少灰狼的维数从而缩短求解时间:风机和光伏电池的维护成本相对较低且没有燃料费用和污染排放,故在优化时可以按照可能的最大功率出力。

主要工作:

针对冷热电联供型微电网运行调度的优化问题为实现节能减排的目标以微电网运行费用和环境污染成本为优化目标建立了包含风机微型燃气轮机余热锅炉溴化锂吸收式制冷机等微源的微电网优化模型模型的优化求解使用改进的多目标灰狼优化算法得到多目标问题的Pareto最优解集并针对微电网优化问题约束条件较多算法前期探索能力不足的问题对算法进行改进仿真结果表明改进算法的求解速度和全局搜索性能优于原始算法文中方法可以为冷热电联供型微电网优化调度提供建议实现根据用户需求的微电网灵活调动达到减少运行费用和污染气体排放的效果

1. 多目标灰狼优化算法

灰狼优化算法是受狼群合作捕食过程启发而提出的新型群体智能优化算法。2015年又在此基础上提出了多目标灰狼优化算法(MOGWO)。

灰狼群可分为四个阶层,分别为a、b、d和w。灰狼优化算法就是参考灰狼的捕食过程建立的。算法中,狼的位置即代表所求问题的一个可能的解。如果搜索空间为d维,则每只灰狼的位置记作Xi(x1i,x2i,…,xdi)。灰狼之后按式(1)更新位置,按式(2)进行包围:

式中Xp(k)表示猎物目前所在位置;C和A为影响系数,其计算公式如下:

式中R1和R2为[0,1]之间的随机数,a按照式(28)线性减小:

在灰狼优化算法中,将每次迭代中目标函数值最优的三个位置依次分配给a、b和d,其余个体根据这三个最优个体位置更新自己的位置。相较于GWO,MOGWO中引入了外部种群Archive并对a、b和d的选择策略进行了改动。Archive用于储存每一代产生的优秀个体,即非支配解。并且按照一定的策略进行更新和删除。MOGWO算法直接从Archive采用轮盘赌的方式选择三只优秀个体作为a、b和d。最终,外部种群Archive中的个体即为优化问题的一组Pareto最优解。

2. 改进多目标灰狼优化算法

微电网的优化问题是非线性的多约束问题,在利用原始MOGWO算法进行求解的过程中,众多约束条件使得算法的计算时间增加,为了改善这一问题本文对MOGWO算法及优化模型进行了如下改进:

1优化模型的简化通过对微电网优化模型的简化可以有效减少灰狼的维数从而缩短求解时间风机和光伏电池的维护成本相对较低且没有燃料费用和污染排放故在优化时可以按照可能的最大功率出力

(2)灰狼初始化和位置更新的方式改变。在原始MOGWO中灰狼个体位置的每一维坐标是同时生成的,即每个微源在24个小时内的出力同时生成。原算法灰狼的位置向量表示为:

式中a,b,c代表不同的微源,数字代表不同的时段。如某个设备在某个时段的功率不符合约束的要求,整个灰狼的位置都要进行重新生成,造成运算量增加。针对微电网的约束和时间段的相关性,本文将每只灰狼个体位置按时间分为24组,将同一时间段的设备出力分为一组进行初始化和更新,即:

判定满足约束时再进行下一组设备出力的初始化或更新,24个组都满足约束后进行合并和后续运算。这种做法的优势在于,当某个时段的设备出力不符合约束时,只需重新生成该时段的设备出力而非个体的所有时段的设备出力,从而缩短计算时间。

(3)MOGWO算法的前期探索能力不足,对于式(5)中的控制参数a而言,a越大则算法的探索能力越强。在文中将线性缩小的a改为式(8)的幂函数形式,以提高算法前期的探索能力,经多次求解发现当指数为4时优化效果最佳。

改进后的MOGWO算法的主要步骤如下:

Step 1:设置灰狼的数量、最大迭代次数、搜索范围和外部种群Archive的参数等控制参数;

Step 2:灰狼初始化。随即生成灰狼个体,检验是否满足约束条件,直至生成足够数量的合格个体。计算灰狼的目标函数值,确定非支配个体,更新Archive;

Step 3:从Archive中按轮盘赌法选择a、b和d狼,其余灰狼根据a、b和d狼的位置进行更新,检验新生成的灰狼是否满足约束条件,直至生成足够数量的合格灰狼个体;

Step 4:计算灰狼的目标函数值,确定非支配个体,更新Archive;

Step 5:重复步骤3、步骤4,直至达到最大迭代次数;

Step 6:输出Archive中的灰狼位置,即为微电网优化问题的一组Pareto解集。

程序结果:

部分程序:

%种群初始化​
ub(1,1:24 )=40;    %把上下边界像单个粒子的位置一样,横向排列​
GreyWolves_num=500;     
MaxIt=1000;  % Maximum Number of Iterations​
% Initialization   初始化 
GreyWolves = zeros( GreyWolves_num ,   nVar+2+2    );    %创建空粒子  ​   
 ​%首先是MT初始化
 ​%加一个向上取整函数,可以方便控制微燃机出力,也方便画图,也方便筛选粒子。
 ​%下面是储热功率初始化
​ %上面是概率生成功率P_BA,没有考虑超出容量限制的问题,下面将解决。
​if   Soc > 250  ||   Soc < 50    %如果越限
​Soc=Soc-GreyWolves(i,j) ;  %撤销容量
GreyWolves(i,j) =0;        %撤销功率​
GreyWolves(i,nVar+1:nVar+2)= Double_CC_fitness(GreyWolves(i,1:nVar/2), GreyWolves(i,1+nVar/2:nVar)); ​
 ​%首先非支配排序GreyWolves  = Non_Dominated( GreyWolves ,nVar,2 );
 ​获取paroto等级为0、1、2的粒子,为选取头狼做准备
    Graywolves_rank_0=Get_Graywolves_rank_0(GreyWolves );
%     Graywolves_rank_1=Get_Graywolves_rank_1(GreyWolves );
%     Graywolves_rank_2=Get_Graywolves_rank_2(GreyWolves );​
​​%头狼的选取,首先应该是先0,后1,后2
​%其次是尽量选择拥挤度小的
​%把整群个体数设置的大一点,确保第一代就极有可能使得存储库大于3只狼
​%其次是,利用Alpha、Beta、Delta作为基准位置,对所有粒子进行更新。
  A1=2*a*r1-a; % 计算系数A,Equation (3.3)C1=2*r2; % 计算系数C,Equation (3.4)​
​% Alpha狼位置更新
 D_alpha=abs(C1*Alpha(1,j)-GreyWolves(i,j)); % Equation (3.5)-part 1​
​%因为22点是峰时,23,24点是谷电,并且夜间风大。所以我大概率假设,23,24在充电。
%充电两小时后,为5+2.5*2=10kWh;​
​%首先是把储热放热整定为100的倍数
​%上面是概率生成功率P_BA,没有考虑超出容量限制的问题,下面将解决。
​Soc=Soc+GreyWolves(i,j) ;Soc > 250  ||   Soc < 50     %如果越限
Soc=Soc-GreyWolves(i,j) ;  %撤销容量​GreyWolves(i,j) =0;        %撤销功率

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

有个朋友被骗了,大家要擦亮眼睛

1.引言 大家好&#xff0c;我是Leo哥&#x1fae3;&#x1fae3;&#x1fae3;&#xff0c;昨天凌晨有个粉丝朋友找到Leo哥&#xff0c;咨询一些问题&#xff0c;现在的朋友们真卷呐&#xff0c;大半夜还在挑灯夜战。可无奈Leo哥12点之前已经睡了&#xff0c;身体为重&#xf…

智慧社区养老:Java与SpringBoot的技术融合

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

Day31|贪心算法1

贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 无固定套路&#xff0c;举不出反例&#xff0c;就可以试试贪心。 一般解题步骤&#xff1a; 1.将问题分解成若干子问题 2.找出适合的贪心策略 3.求解每一个子问题的最优解 4.将局部最优解堆叠成全局最…

C语言第三十五弹---文件操作(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 文件操作 1、为什么使用文件&#xff1f; 2、什么是文件&#xff1f; 2.1、程序文件 2.2、数据文件 2.3、文件名 3、二进制文件和文本文件 4、文件的打开和…

YOLO v9训练自己数据集

原以为RT-DETR可以真的干翻YOLO家族&#xff0c;结果&#xff0c;&#xff01;&#xff01;&#xff01;&#xff01; 究竟能否让卷积神经网络重获新生&#xff1f; 1.数据准备 代码地址&#xff1a;https://github.com/WongKinYiu/yolov9 不能科学上网的评论区留言 数据集…

【Python】新手入门(2):避免将关键字作为标识符

Python新手入门&#xff08;2&#xff09;&#xff1a;避免将关键字作为标识符 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

蓝桥杯-单片机组基础7-存储器映射扩展与PWM脉冲调制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

【Python】matplotlib绘制图像时增加颜色条

一、需求 plt.imshow()是matplotlib中的一个函数&#xff0c;用于显示图像。它可以传递一个二维或三维数组作为image参数&#xff0c; 并将图像数据显示为图形&#xff0c;并对图像进行不同的可视化设置。 在显示的过程中&#xff0c;我们如果需要增加一个图例显示颜色条&…

Word转Excel怎么操作?4个实用技巧别忘了!

“我在处理一个Word文件时&#xff0c;需要将里面的一些表格内容转化为Excel。有什么比较好用的Word转Excel方法可以推荐吗&#xff1f;” 在互联网时代&#xff0c;数据处理和信息整合是工作中不可或缺的一部分。有时&#xff0c;我们可能会遇到需要将Word文档中的数据或内容转…

高性能深度学习库luminal

一、概述 Luminal是一个深度学习库&#xff0c;它使用可组合的编译器来实现高性能。 当前的机器学习库往往很庞大复杂&#xff0c;因为它们试图直接将高级操作映射到底层手工编写的内核上&#xff0c;并且专注于立刻执行&#xff08;eager模式&#xff09;。像PyTorch这样的库…

Java Web开发---复试Tips复习

&#xff08;自用&#xff0c;摘录自各种文章和自己总结&#xff09; 小知识点理解 Web Web应用开发主要是基于浏览器的应用程序开发。一个Web应用由多部分组成 Web应用程序编写完后&#xff0c;若想提供给外界访问&#xff0c;需要服务器来统一管理 常用的动态网页语言——…

react native中如何使用webView调用腾讯地图选点组件

react native中如何使用webView调用腾讯地图选点组件 效果示例图代码示例备注 效果示例图 代码示例 import React, {useEffect, useRef, useState} from react; import {Modal, StyleSheet} from react-native; import {pxToPd} from ../../common/js/device; import {WebView…

私有化部署自己的ChatGPT,免费开源的chatgpt-next-web搭建

随着AI的应用变广&#xff0c;各类AI程序已逐渐普及&#xff0c;尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景&#xff0c;大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

产品介绍二维码怎么做?多种内容组合二维码的方法

现在扫描二维码来获取内容的方式越来越常见&#xff0c;比如很多的产品介绍都会做成二维码图片后&#xff0c;在产品包装、传单、展板等印刷展示。而一般展示的内容类型多为文本、图片、视频等内容&#xff0c;那么这些类型的内容放入一个二维码中展示如何实现呢&#xff1f; …

白酒:制曲工艺的环境因素与微生物生态关系

在豪迈白酒的酿造过程中&#xff0c;制曲工艺是非常关键的一环。而环境因素与微生物生态关系对于制曲工艺的成功与否起着决定性的作用。云仓酒庄深谙此道&#xff0c;在制曲过程中注重环境因素的调控&#xff0c;并深入研究微生物生态关系&#xff0c;以提升豪迈白酒的品质和风…

Jmeter 命令启动 —— 动态参数化!

Jmeter命令行参数 1、在Linux中&#xff0c;使用非GUI的方式执行Jmeter。若需更改参数&#xff0c;必须先编辑jmx文件&#xff0c;找到对应变量进行修改&#xff0c;比较麻烦。 因此&#xff0c;可以参数化一些常用的变量&#xff0c;直接在Jmeter命令行进行设置 2、参数 -J…

draw.io设置矩形四个边的有无

第一步创建一个矩形 选中矩形&#xff0c;并编辑样式 然后在编辑框中输入 verticalLabelPositionbottom;verticalAligntop;html1;shapemxgraph.basic.rect;right1;将原来的内容覆盖掉 然后点击应用 然后发现 点击那四个设置就可以了

MyCAT集群——MyCAT2如何配置读写分离

先搭载MySQL一主两从 192.168.20.110MyCAT192.168.20.111Master192.168.20.112slave1192.168.20.113slave2 配置就不写了&#xff0c;比较基础&#xff0c;写一下步骤 1.进入mysql配置文件或者其子配置文件&#xff0c;添加server_id,开启gtidgtid_modeON,enforce-gtid-cons…

智慧公厕:改变城市公共卫生管理的未来

现代城市发展快速&#xff0c;人口不断增加&#xff0c;公共卫生管理面临着严峻的挑战。传统公厕的建设、管理和使用模式已经无法满足日益提高的卫生与环保需求。然而&#xff0c;随着科技的进步与智能化的发展&#xff0c;智慧公厕正成为一种全新的解决方案&#xff0c;为城市…

(十六)【Jmeter】取样器(Sampler)之测试活动(Test Action)

简述 操作路径如下: JMeter中的测试活动取样器实际上并不是一个具体的取样器类型,而是一种对测试计划中的多个取样器进行组合和执行的活动。常常被用作定时器,在某个请求之后等待多长时间。 参数说明 Logical Action on Thread(在线程上的逻辑操作) Pause Duration(mil…