基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)

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


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 文献来源
🌈4 Matlab代码实现

💥1 概述

本文使用基于天牛须算法(BAS)改进的NSGA-Ⅱ算法对微电网多场景多目标优化调度问题进行求解。在多场景处理方面,采用拉丁超立方抽样(Latin hypercube sampling, LHS)生成大量风电、光伏的日前出力场景,然后使用K-means++聚类方法对大量风光场景进行快速削减与场景生成,得到几个典型的风光出力曲线作为本文的优化调度考虑场景。在微电网优化调度方面,首先构建需求响应负荷,然后以微网运行经济性、运行环保性、可再生能源消纳率为目标函数,已微电网交直流网络潮流等作为约束条件,构建三目标的多场景微电网优化调度问题,最后采用天牛须算法改进NSGA-Ⅱ算法进行优化调度,加快其收敛速度。代码运行结果表明,本文所提方法可以有效降低微电网运行成本、提升可再生能源消纳率。

交直流混合微电网概述:

一般的交直流混合微电网结构如图所示。交流母线接入风力发电机和交流负荷,同时与配电网连接。直流母线接入燃料电池、光伏发电板、锂电池和直流负荷。交流母线和直流母线之间通过双向AC/DC功率变换器连接,实现双向功率流动。在微网正常工作时,交流负荷与直流负荷首先依靠对应侧的分布式电源满足供电需求。当交流侧与直流侧出现功率不平衡的情况时,可通过连接交直流母线的双向AC/DC功率变换器实现功率互补。而位于直流侧的锂电池可以为整个交直流混合微网提供功率的峰谷调节。同时,微电网透过交流侧与配电网的连接,可以为两者提供实时的功率交互。因此,与传统交流微网或直流微网调度相比,交直流混合微网的优化调度除需要应对新能源发电不确定性外,还要综合考虑交直流源荷分区运行的特点,客观上构成了调度的多重不确定性。

天牛须搜索(Beetle Antennae Search-BAS),也叫甲壳虫须搜索,是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道函数的具体形式,不需要梯度信息,就可以实现高效寻优。相比于粒子群算法,天牛须搜索只需要一个个体,即一只天牛,运算量大大降低。

仿生原理

天牛须搜索是受到天牛觅食原理启发而开发的算法。

天牛须搜索的生物原理:

当天牛觅食时,天牛并不知道实物在哪里,而是根据食物气味的强弱来觅食。天牛有两只长触角,如果左边触角收到的气味强度比右边大,那下一步天牛就往左飞,否则就往右飞。依据这一简单原理天牛就可以有效找到食物。

天牛须搜索对我们的启发:

食物的气味就相当于一个函数,这个函数在三维空间每个点值都不同,天牛两个须可以采集自身附近两点的气味值,天牛的目的是找到全局气味值最大的点。仿照天牛的行为,我们就可以高效的进行函数寻优。

NSGA-Ⅱ多目标算法:

NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准。

NSGA-Ⅱ算法是Srinivas和Deb于2000年在NSGA的基础上提出的,它比NSGA算法更加优越:它采用了快速非支配排序算法,计算复杂度比NSGA大大的降低;采用了拥挤度和拥挤度比较算子,代替了需要指定的共享半径shareQ,并在快速排序后的同级比较中作为胜出标准,使准Pareto域中的个体能扩展到整个Pareto域,并均匀分布,保持了种群的多样性;引入了精英策略,扩大了采样空间,防止最佳个体的丢失,提高了算法的运算速度和鲁棒性。

NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面:

①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体;

②引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度;

③采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。

文献来源:

摘要:为了提高交直流混合微网经济效益,提出实时电价机制下的交直流混合微网优化运行方法。首先针对交直流混合微网的结构和电气特性建立其优化运行模型;其次针对微网中负荷构成建立了基于负荷分类的负荷水平对实时电价的响应模型。所提出的日前调度模型将交直流混合微网制定的网内实时电价作为控制变量,给出实时电价制定策略和交直流混合微网日前调度方案。对所建立的模型采用混沌粒子群算法求解。最后通过一个算例验证了所提出方法可以提高风光消纳率,增加交直流混合微网收益并且减小用户平均电费支出。

关键词:

交直流混合微网;优化运行;实时电价;需求侧响应;混沌粒子群算法;

📚2 运行结果

部分代码“

function load=DR3(pload,detapr)

%pload=ones(1,24);

price=[0.4042,0.4042,0.4042,0.4042,0.4042,0.4042,0.4042,0.8084,0.8084,1.3339,1.3339,1.3339,1.3339,1.3339,1.3339,0.8084,0.8084,1.3339,1.3339,1.3339,1.3339,0.8084,0.4042,0.4042];

%detapr=[-0.1.*ones(1,12) 0.1.*ones(1,12)];

pl1=0.6.*pload;%刚性负荷

pl2=0.2.*pload;%Ⅰ类

pl3=0.2.*pload;%Ⅱ类

[row,colz]=find(detapr>0);%电价上升时段

[row,colf]=find(detapr<0);%电价下降时段

num_colz=size(colz,2);%电价上升时段数量

num_colf=size(colf,2);%%电价下降时段数量

T=24;

a=0.08;%死区阈值

%Ⅰ类负荷

linj=0;lini=0;

for i=1:num_colf

linj=linj+abs(detapr(colf(i)));%公式(2)

end

for i=1:num_colz

lini=lini+abs(detapr(colz(i)));

end

for t=1:T

if ismember(t,colz)==1

fdetap=fhzy(detapr(t),a);

linp=0;

for kj=1:num_colf

linp=linp+fdetap*abs(detapr(colf(kj)))*pl2(t)/linj;

end

lam_pl2(t)=pl2(t)-linp;%公式(5)

elseif ismember(t,colf)==1

fdetap=fhzy(detapr(t),a);

linp=0;

for ki=1:num_colz

linp=linp+fdetap*abs(detapr(colz(ki)))*pl2(t)/lini;

end

lam_pl2(t)=pl2(t)+linp;%公式(6)

end

end

%Ⅱ类负荷

e0=-1;e1=0.8;e2=0.6;

Est=zeros(T,T);

for i=1:T

for j=1:T

if i==j

Est(i,j)=-1;

elseif i==j+1

Est(i,j)=0.8;

elseif i+1==j

Est(i,j)=0.6;

else

Est(i,j)=0;

end

end

end

for t=1:T

lam_pl3(t)=pl3(t)+pl3(t)*(Est(t,:)*(detapr./price)');%公式(10)

end

load=pl1+lam_pl2+lam_pl3;

🎉3 文献来源

部分理论来源于网络,如有侵权请联系删除。

[1]陈安伟,华浩瑞,李鹏等.实时电价机制下交直流混合微网优化运行方法[J].电力系统保护与控制,2017,45(07):13-20.

🌈4 Matlab代码实现

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

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

相关文章

SentiBank Dector上手指南

​ 官网链接&#xff1a;https://www.ee.columbia.edu/ln/dvmm/vso/download/sentibank.html SentiBank Detector可以抽取图片中的形容词-名词对&#xff0c;之前一直看到&#xff0c;这次复现模型才第一次用到&#xff0c;上手的时候有点手足无措&#xff0c;因为官网在如何使…

Python入门教程+项目实战-11.4节: 元组与列表的区别

目录 11.4.1 元组与列表的区别 11.4.2 可变数据类型 11.4.3 元组与列表的区别 11.4.4 知识要点 11.4.5 系统学习python 11.4.1 不可变数据类型 不可变数据类型是指不可以对该数据类型进行修改&#xff0c;即只读的数据类型。迄今为止学过的不可变数据类型有字符串&#x…

我做了个GPT3键盘,用了两个月发现它有点傻

自 ChatGPT 出世&#xff0c;各类文本类AI产品层出不穷。甚至接连几日&#xff0c;Producthunt 上新品过半都是AI相关。 这其中部分原因是 OpenAI 公司开放的 GPT3 1API 接口十分易用。只要一个简单的文本请求&#xff0c;就能将现有产品加入AI功能。例如&#xff0c;Notion、…

提取文本的摘要snownlp模块

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 提取文本的摘要 snownlp模块 [太阳]选择题 关于以下python代码说法错误的一项是&#xff1f; from snownlp import SnowNLP myText """ChatGPT的出现标志着人类科技发…

【flask】三种路由和各自的比较配置文件所有的字母必须大写if __name__的作用核心对象循环引用的几种解决方式--难Flask的经典错误上下文管理器

三种路由 方法1&#xff1a;装饰器 python C#, java 都可以用这种方式 from flask import Flask app Flask(__name__)app.route(/hello) def hello():return Hello world!app.run(debugTrue)方法2: 注册路由 php python from flask import Flask app Flask(__name__)//app…

【JavaWeb】jQuery(上)

本章内容 1.jQuery Hello world 2.jQuery 选择器 3.jQuery 过滤器 4.jQuery 元素筛选 1、jQuery 介绍 什么是 jQuery ? jQuery&#xff0c;顾名思义&#xff0c;也就是 JavaScript 和查询&#xff08;Query&#xff09;&#xff0c;它就是辅助 JavaScript 开发的 js 类…

Linux 文件内容相关命令使用汇总

Linux操作系统有很多强大的文件内容相关命令&#xff0c;这些命令可以让您查看、分析和编辑文件。其中&#xff0c;最基本和常用的命令包括cat、more、less和head/tail等。除了这些基本命令之外&#xff0c;grep和find命令也是文件搜索和过滤方面的有力工具。 前言 我们这篇主…

根据 vue-grid-layout 动态设置Echarts尺寸大小

文章目录 前言一、vue-grid-layout 是什么&#xff1f;二、正文1.引入vue-grid-layout2.myEcharts组件3. Utils中的debounce防抖函数 总结 前言 此文背景是根据 vue-grid-layout 动态拖拽组件大小里面包含 Echarts 组件情景&#xff0c;也可以单独把监听动态设置Echarts 尺寸抽…

【神经网络】tensorflow实验7--回归问题

1. 实验目的 ①掌握一元线性回归模型的实现方法 ②掌握多元线性回归模型的实现方法 ③掌握三维数据可视化方法 2. 实验内容 ①使用TensorFlow建立一元线性回归模型&#xff0c;使用商品房销售数据训练模型&#xff0c;并使用训练好的模型预测房价 ②使用TensorFlow建立多元线…

企业级VUE前端项目各目录文件的作用

概述 本文项目是基于Vue CLI3构建工具&#xff08;基于 webpack)生成的脚手架项目。Vue CLI 现已处于维护模式&#xff0c;VUE官方推荐使用 create-vue&#xff08;基于 Vite&#xff09;构建工具。 vue-cli2.0与3.0在目录结构方面&#xff0c;有明显的不同,vue-cli3.0移除了…

什么是 MVVM?MVVM和 MVC 有什么区别?什么又是 MVP ?

目录标题 一、什么是MVVM&#xff1f;二、MVC是什么&#xff1f;三、MVVM和MVC的区别&#xff1f;四、什么是MVP&#xff1f; 一、什么是MVVM&#xff1f; MVVM是 Model-View-ViewModel的缩写&#xff0c;即模型-视图-视图模型。MVVM 是一种设计思想。 模型&#xff08;Model…

国内首款多节点/无需密钥/无需登录的ChatGPT客户端开源项目

在这个AI浪潮推动下&#xff0c;涌现了一大批“参差不齐”的GPT产品&#xff0c;有的一直在更新迭代&#xff0c;有的不断升级乃至付费订阅&#xff0c;有的中途停止运营。在这个AI产品也需要优胜劣汰的时代下&#xff0c;谁能够“谁主沉浮&#xff0c;且看今朝&#xff01;”&…

目标检测之损失函数

损失函数的作用为度量神经网络预测信息与期望信息&#xff08;标签&#xff09;的距离&#xff0c;预测信息越接近期望信息&#xff0c;损失函数值越小。 在目标检测领域&#xff0c;常见的损失分为分类损失和回归损失。 L1损失 L1 Loss也称为平均绝对值误差&#xff08;MAE&…

跨域融合风口下,又一外资巨头Tier 1+本土供应商“组团”来袭

头部企业正在加速“融合”。 汽车智能化升级对产品创新与多元化需求下&#xff0c;来自技术升级、降本、开发周期缩短等等一系列因素影响&#xff0c;中外供应商们都在积极思变和寻求破局。 随着全球智能汽车产业步入域集中和域融合的新阶段&#xff0c;过去的以硬件&#xf…

【AGC】质量服务数据分析问题

【关键字】 AGC、质量、数据分析 【问题描述】 开发者反馈在应用中集成了AGC的相关服务&#xff0c;在查看平台数据时遇到了一些问题。具体如下所述&#xff1a; 我发现平台的App卸载量每个月都非常高&#xff0c;卸载量/新下载量近80%&#xff0c;很异常&#xff0c;所以想…

Elasticsearch --- DSL、RestClient查询文档、搜索结果处理

一、DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1、DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;来定义查询。常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数据&#xff0c…

后台-husky提交代码规范使用

husky是一个git hook工具&#xff0c;可以帮助我们触发git提交的各个阶段&#xff1a;pre-commit、commit-msg、pre-push 1.如何使用husky呢&#xff1f; npx husky-init && npm installWindows安装不成功试试npx husky-init && npm install 2.git commit规范…

图论 (Java) 从入门到入土 /第一部分 图的基础-图的定义/

零.前言 图&#xff0c;是一种比较复杂的数据结构。和树的一个节点只和上层一个节点相连不同&#xff0c;在图中&#xff0c;任意两个节点都可能相连&#xff0c;且可能具有方向性&#xff0c;并且节点的边具有权重&#xff0c;因此&#xff0c;图被用于描述各种复杂的数据对象…

Docker基础知识全解析

​ Docker是一个开源的容器化平台&#xff0c;可以让开发者在容器中构建、打包、运行和发布应用程序&#xff0c;从而实现应用程序的快速部署和可移植性。Docker将应用程序和依赖项打包在一个轻量级的可移植容器中&#xff0c;这个容器可以在任何平台上运行&#xff0c;不会受到…

外卖app开发流程全解析

外卖app开发是现代餐饮业的一个必备部分。在这个数字化时代&#xff0c;人们更愿意使用手机应用程序来订购食品。因此&#xff0c;为了满足客户需求&#xff0c;餐饮企业需要开发自己的外卖app。 第一步&#xff1a;确定目标受众 在开始外卖app的开发之前&#xff0c;需要确定…