基于混合博弈的配电网与多综合能源微网优化运行

该文研究了同一配电网下的多个综合能源微网 (integrated energy microgrids,IEM)的协同管理问题,旨在通 过配电网运营商(distribution system operator,DSO)制定电能 价格以协调 IEM 联盟的机组调度、需求响应和成员间的点 对点(peer-to-peer,P2P)电能交易。首先,构建了 DSO 与 IEM 联盟能源交易框架,分析了 DSO 与 IEM 联盟的博弈关系。 其次,将主从博弈与合作博弈相结合,建立了 DSO 与 IEM 联盟混合博弈优化模型,其中 DSO 为领导者,以最大化自 身效益为目标,通过制定电能价格引导 IEM 联盟运行优化; IEM 联盟为跟随者,以最大化自身效益为目标,通过合作 对 DSO 的决策进行响应。基于纳什谈判理论,将 IEM 模型 等效为联盟效益最大化和合作收益分配 2 个子问题,以保证 IEM 联盟的合作收益能在联盟成员之间公平分配。最后,利 用二分法分布式优化算法结合交替方向乘子法(alternating direction multiplier method,ADMM)求解所构建的模型。结 果表明,该文提出的混合博弈模型有效协调了 IEM 联盟的 运行优化,并实现了 IEM 联盟成员合作收益的公平分配。

部分代码:

%% 主从博弈过程
F = 0.5;   % 缩放因子
CR = 0.9;  % 交叉因子
%参数设置
groupSize =40;        %个体数目(Number of individuals)
groupDimension=48;  %染色体长度
MAXGEN =30;      %最大遗传代数(Maximum number of generations)
v=zeros(groupSize,groupDimension);    % 变异种群
u=zeros(groupSize,groupDimension);    % 交叉种群
Unew=zeros(groupSize,groupDimension); % 边界处理后的种群
%初始种群
population = smartGroupInit(groupSize,groupDimension);% 初始化群体
gen=0;                                         %种群世代计数器
fitness=-10000; %初始适应度
% fitness=-10000*ones(1,MAXGEN);%上层目标函数
user=1000000;%用户成本
while gen<MAXGEN
   gen=gen+1 
  if gen==1
%计算目标函数值   
[P_IL,P_IL_2,P_IL_3,P_batc,P_batc_2,P_batc_3,P_batc_0,P_batc_01,P_batc_02,P_batc_03,P_batd_01,P_batd_02,P_batd_03,P_batd,P_batd_2,P_batd_3,P_batd_0,P_MT,P_MT_2,P_MT_3,Obj_User1,Obj_User2,Obj_User3,Obj123,P_user12LA,P_LA2user1,P_user22LA,P_LA2user2,P_user32LA,P_LA2user3,value_P_user12users,value_P_user22users,value_P_user32users] = computeUserObj(population,P_PV,P_WT,P_BUILD,P_PV_2,P_WT_2,P_BUILD_2,P_PV_3,P_WT_3,P_BUILD_3); 
[Pri_e_1,Pri_e_2,Pri_e_3,Pri_e_C01,Pri_e_C02,Pri_e_C03,Pri_e_D01,Pri_e_D02,Pri_e_D03,Objs1,Objs2,Objs3,Objs4,Objs]=computeUserObjs(population,Obj_User1,Obj_User2,Obj_User3,Obj123,value_P_user12users,value_P_user22users,value_P_user32users,P_batc_0,P_batd_0,P_batc_01,P_batc_02,P_batc_03,P_batd_01,P_batd_02,P_batd_03);
  else
[P_IL,P_IL_2,P_IL_3,P_batc,P_batc_2,P_batc_3,P_batc_0,P_batc_01,P_batc_02,P_batc_03,P_batd_01,P_batd_02,P_batd_03,P_batd,P_batd_2,P_batd_3,P_batd_0,P_MT,P_MT_2,P_MT_3,Obj_User1,Obj_User2,Obj_User3,Obj123,P_user12LA,P_LA2user1,P_user22LA,P_LA2user2,P_user32LA,P_LA2user3,value_P_user12users,value_P_user22users,value_P_user32users] = computeUserObj(best,P_PV,P_WT,P_BUILD,P_PV_2,P_WT_2,P_BUILD_2,P_PV_3,P_WT_3,P_BUILD_3); 
[Pri_e_1,Pri_e_2,Pri_e_3,Pri_e_C01,Pri_e_C02,Pri_e_C03,Pri_e_D01,Pri_e_D02,Pri_e_D03,Objs1,Objs2,Objs3,Objs4,Objs]=computeUserObjs(best,Obj_User1,Obj_User2,Obj_User3,Obj123,value_P_user12users,value_P_user22users,value_P_user32users,P_batc_0,P_batd_0,P_batc_01,P_batc_02,P_batc_03,P_batd_01,P_batd_02,P_batd_03);  
  end
%变异操作
   v=mutate(population,F,MAXGEN,gen); %针对整个种群的变异
%交叉操作
   u=crossover(population,v,CR);%40*24
%边界处理
   Unew = boundaryprocess(u,pe_grid_S,pe_grid_B);
% 选择操作 (计算新的适应度)Unew,population都是40*24
[Newpopulation,fitbest,best,P_LA] =select(Unew,population,P_user12LA,P_user22LA,P_user32LA,P_LA2user1,P_LA2user2,P_LA2user3,pe_grid_S,pe_grid_B);
trace(gen,1)=gen; %赋值世代数 
 population=Newpopulation;
    if fitness<=fitbest
    fitness = fitbest;  
    trace(gen,2)=fitbest;
    trace(gen,4)=Objs;
    trace(gen,5)=Objs1;
    trace(gen,6)=Objs2;
    trace(gen,7)=Objs3;
    remainbest=best;    
    else
    trace(gen,2)=fitness;
    trace(gen,4)=trace(gen-1,4);
    trace(gen,5)=trace(gen-1,5);
    trace(gen,6)=trace(gen-1,6);
    trace(gen,7)=trace(gen-1,7);
    end
    trace(gen,3)=Objs4; %共享储能商的成本
end

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

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

相关文章

使用Scrapy选择器提取豆瓣电影信息,并用正则表达式从介绍详情中获取指定信息

本文同步更新于博主个人博客&#xff1a;blog.buzzchat.top 一、Scrapy框架 1. 介绍 在当今数字化的时代&#xff0c;数据是一种宝贵的资源&#xff0c;而网络爬虫&#xff08;Web Scraping&#xff09;则是获取网络数据的重要工具之一。而在 Python 生态系统中&#xff0c;S…

Oracle和PG数据库临时表的差异,PG数据库如何删除临时表

现实的开发过程中使用 PG 数据库删除临时表发现如下报错&#xff0c;提示表 xxx 不存在&#xff1a; 问题原因&#xff1a; 调用删除语句&#xff0c;但是临时表不存在了。 解决方案&#xff1a; PG下用下面的方式来删除临时表或不进行删除&#xff08;会话级临时表会自动删除…

线性表的链式存储

文章目录 前言一、概念及特点二、链表术语及分类三、单链表1.特点2.C语言实现3.头结点作用4.基本操作的具体实现 总结 前言 T_T此专栏用于记录数据结构及算法的&#xff08;痛苦&#xff09;学习历程&#xff0c;便于日后复习&#xff08;这种事情不要啊&#xff09;。所用教材…

Cannot access ‘androidx.activity.FullyDrawnReporterOwner‘

Android Studio新建项目就报错&#xff1a; Cannot access ‘androidx.activity.FullyDrawnReporterOwner’ which is a supertype of ‘cn.dazhou.osddemo.MainActivity’. Check your module classpath for missing or conflicting dependencies 整个类都报错了。本来原来一直…

文献学习-37-动态场景中任意形状针的单目 3D 位姿估计:一种高效的视觉学习和几何建模方法

On the Monocular 3D Pose Estimation for Arbitrary Shaped Needle in Dynamic Scenes: An Efficient Visual Learning and Geometry Modeling Approach Authors: Bin Li,† , Student Member, IEEE, Bo Lu,† , Member, IEEE, Hongbin Lin, Yaxiang Wang, Fangxun Zhong, Me…

使用arthas查看java项目resources目录下面的文件内容

有一次在测试环境想看resources下面的mapper文件内容&#xff08;代码执行和预期不一致&#xff0c;所以想排查一下是不是打上去的包有问题&#xff0c;没有通过下载jar的方式解压查看&#xff09;&#xff0c;然后想到了使用arthas来弄&#xff0c;这里记录一下怎么个查看法。…

【Textin.com】智能文档处理系列 - 电子文档解析技术全格式解析

一、引言 在当今的数字化时代&#xff0c;电子文档已成为信息存储和交流的基石。从简单的文本文件到复杂的演示文档&#xff0c;各种格式的电子文档承载着丰富的知识与信息&#xff0c;支撑着教育、科研、商业和日常生活的各个方面。随着信息量的爆炸性增长&#xff0c;如何高效…

listpack

目录 为什么有listpack? listpack结构 listpack的节点entry 长度length encoding编码方式 listpack的API 1.创建listpack 2.遍历操作 正向遍历 反向遍历 3.查找元素 4.插入/替换/删除元素 总结 为什么有listpack? ziplist是存储在连续内存空间&#xff0c;节省…

Spring Boot 2.x 将 logback 1.2.x 升级至 1.3.x

场景 安全部门针对代码进行漏洞扫描时&#xff0c;发现 logback-core 和 logback-classic 都属于 1.2.x 版本&#xff0c;这个版本存在 CVE 漏洞&#xff0c;并且建议升级到 1.3.x 版本。 问题 将两个包直接升级到 1.3.x 版本时&#xff0c;Spring Boot Web 服务启动直接出现…

基于Springboot+Vue+mysql仓库管理系统仓库进销存管理系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

nfs服务器详解

nfs&#xff08;网络文件系统&#xff09;---------- 其实就是通过网络将文件共享出去。 通过TCP/IP网络去共享资源的。在NFS的应用中&#xff0c;本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件&#xff0c;就像访问本地文件一样。 客户端和服务端需要去读写共…

五分钟搞定什么是系统的平均负载

平均负载定义 平均负载是指单位时间内&#xff0c;系统处于可运行状态和不可中断状态的平均进程数&#xff0c;也就是平均活跃进程数&#xff0c;和CPU使用率没有直接关系。简单理解就是平均负载其实就是平均活跃进程数。 使用uptime命令查看系统平均负载 在linux中&#xf…

【环境】原则

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 一、培养项目系统性思维 1.1 系统性思维 1.2 系统性思维的价值 1.3 建模和推演&数字孪生 二、项目的复杂性和如何驾驭复杂性 2.1 复杂性的三个维度 2.2 如何驾驭复杂性 三、…

Qt实现XYModem协议(一)

1 概述 Kermit文件运输协议提供了一条从大型计算机下载文件到微机的途径。它已被用于进行公用数据传输。 其特性如下: Kermit文件运输协议是一个半双工的通信协议。它支持7位ASCII字符。数据以可多达96字节长度的可变长度的分组形式传输。对每个被传送分组需要一个确认。Kerm…

如何利用纯前端技术,实现一个网页版视频编辑器?

纯网页版视频编辑器 一、前言二、功能实现三、所需技术四、部分功能实现4.1 素材预设4.2 多轨道剪辑 一、前言 介绍&#xff1a;本篇文章打算利用纯前端的技术&#xff0c;来实现一个网页版的视频编辑器。为什么突然想做一个这么项目来呢&#xff0c;主要是最近一直在利用手机…

KITTI结果领先地位!Progressive LiDAR Adaptation for Road Detection——PLARD算法

描述 详解一篇基于激光视觉融合的道路检测文章&#xff0c;发表在2019年自动化学报英文版&#xff08;我所主编的业界顶刊&#xff09;中&#xff0c;第三作者是陶大程&#xff0c;业界大佬&#xff0c;可自行进行百度。 为什么选择这篇文章进行分析呢。查看KITTI数据集的分数…

分布式数据库Polardb-X架构及特点

PolarDB-X架构 计算节点&#xff08;Compute Node&#xff0c;CN&#xff09;是系统的入口&#xff0c;采用无状态设计的sql引擎提供分布式路由和计算&#xff0c;包括SQL解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度&#xff0c;负责分布式事务2PC协调…

CFDPro雾化仿真 | 专为雾化过程与液滴属性研究设计的仿真模块

雾化是一种将液体转化为微小液滴的技术&#xff0c;通过不同的雾化方法实现液体的高效分散、蒸发、燃烧、吸附或沉积等目的。 雾化仿真在多个工业领域中具有极其重要的地位。无论是内燃机中燃油的高效燃烧&#xff0c;还是化工生产中的喷雾干燥&#xff0c;以及农业喷雾中农药…

[linux]进程控制——进程终止

一、main函数的返回值 我们在编写C语言的程序时&#xff0c;通常会这样写&#xff1a; int main() {return 0; } 那么我们为什么要返回&#xff08;return&#xff09;0 呢&#xff1f; 其实&#xff0c;main函数也是一个函数&#xff0c;它也会被调用&#xff0c;所以谁调…

【力扣 Hot100 | 第四天】4.15(括号生成)

文章目录 4.括号生成4.1题目4.2解法&#xff1a;回溯4.2.1回溯思路&#xff08;1&#xff09;函数返回值以及参数&#xff08;2&#xff09;终止条件&#xff08;3&#xff09;遍历过程 4.2.2代码 4.括号生成 4.1题目 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数…
最新文章