未发表!基于主从博弈的多主体微网/综合能源系统利益分摊与能量管理程序代码!

本文主要是介绍未发表!基于主从博弈的多主体微网/综合能源系统利益分摊与能量管理程序代码!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

适用平台:Matlab+Yalmip+Cplex

程序首先建立了综合能源运营商、新能源用户、电动汽车充电商的多主体园区,分析了三种市场交易主体的属性和市场交易机制。其次建立基于主从博弈的三方市场主体能量管理与收益分摊方案,利用改进粒子群算法进行求解。程序中算例丰富、注释清晰、干货满满,创新性很高!下面对文章和程序做简要介绍!

程序创新点:

(1)建立基于主从博弈的多方市场主体能量管理策略,解决多主体之间的多目标优化问题;

(2)电动汽车充电商通过管理车辆的充电行为,以降低自身充电充本;

(3)将新能源与用户划分为一体,可向电动汽车外售电能获取收益,也可购电满足自身负荷需求,具有能源生产/消费者双重属性;

主要工作:

作为耦合电、热、冷、气、交通等多能源网络的底层多能互补集成耦合系统,园区综合能源系统的能源利用效率相比传统的电能园区系统较优,在可再生能源就地消纳、提高需求侧调度灵活性、实现多能互补协同利用等方面具有重要的现实意义。多元市场主体参与市场化交易必然需要制定合适的交易机制,以协调不同市场主体的利益冲突。而博弈论能够解决复杂主体之间的多目标优化问题,实现系统内的最优综合能量管理。程序首先建立了含系统能源运营商、含分布式光伏的用户、电动汽车充电代理商的园区综合能源系统,分析了三种市场交易主体的属性和市场交易机制。其次建立了三方市场主体各自综合能量管理优化运行方案,并运用改进的粒子群算法进行求解。

文章框架:

交易主体及交易机制分析:

园区综合能源系统内的市场交易主体类型主要包括:能源生产者、能源消费者。两者均以自身利益最大化为目标来制定能量产消策略,实现自身能量优化管理。本系统内一共有能源运营商、含分布式光伏的用户、电动汽车充电代理商等3个市场主体,分别在系统内扮演不同的角色。三个市场交易主体构成了以系统能源运营商为主导的三方主从博弈模型。在该非合作交易中,三方均理性追求自身收益最大化,并制定相应的售能和用能策略,三方互动和交流最终达到一种均衡的最佳交易和运行状态。

综合能源运营商:

系统能源运营商是其他市场交易主体的主要供能方。系统能源运营商能量优化分配过程中,以自身净收益最大作为目标,对于含分布式光伏的用户而言,当自身供能不足时,能源运营商能够向其供能以满足额外用能需求。对电动汽车充电代理商而言,能源运营商既可以在较低电价时段出售足够的电能,以满足其较低成本的充电需求,也可以在用户低报价时段出售不足的光伏电能情况下,提供额外电能作为补充。

新能源用户能量管理策略:

含分布式光伏的用户是系统内的一类新兴市场交易主体,广泛参与系统综合能源管理,以自身净收益最大作为目标,具体有两个途径扩大收益:一方面优化自身能源转换设备出力降低运行成本,用户的分布式光伏还享受政府的全电量补贴政策,根据实际的发电量可获取一定的补贴收益;另一方面当用户的光伏出力满足自身需求且有盈余时,可通过制定合理且具有竞争力的报价策略,获得电动汽车充电代理商的售电权,获得售电收益。

电动汽车充电商:

电动汽车充电代理商是系统内的纯电能负荷,通过控制内部车辆的充电电量和充电时间参与系统综合能量管理,以自身运行成本最低作为目标,其运行成本的降低可以通过两个途径来减少:一方面选择比低报价市场主体购得电能,另一方面管理车辆充放电行为减少充电成本。

程序结果:

部分程序:

%% 产生初始粒子和速度
%   k
for j=1:sizepop%随机产生一个种群for i=1:N     %初始化粒子的维数%%%%%%%%%%%%使得角度在(0,2π上均匀分布)%%%%%%%%%%%%%%pop(((j-1)*N+i))=rand;    %初始种群位置,即节点的角度V(((j-1)*N+i),1)=alfa*randn(1);     %初始化速度,即旋转的角度,每次旋转一度end
end
scale=0;
%% 个体极值和群体极值
zbest=pop(1:N,:);   %全局最佳
gbest=pop;    %个体最佳
fitnessgbest=scale(1)*ones(1,sizepop);   %个体最佳适应度值
fitzbest=scale(1);   %全局最佳适应度值
s(1)=fitzbest;
%%%%%%%%%%%%%%%%%%%%%%%%%%
%%需要改,主感知方向作为粒子的位置,用速度表示主感知方向变换的角度,最后统一将调整方向,质心的受力主要用来防止粒子过于密集
%%%%%%%%%%%%%%%%%%%%%%%%%%
for K=2:maxgen     %迭代更新的次数w=1; for j=1:sizepop   % 20个粒子for i=1:N  %粒子的维数%速度更新V(((j-1)*N+i),:) = w*V(((j-1)*N+i),:) + c1*rand*(gbest(((j-1)*N+i),:) - pop(((j-1)*N+i),:)) + c2*rand*(zbest(i,:) - pop(((j-1)*N+i),:));V(((j-1)*N+i),V(((j-1)*N+i),:)>Vmax)=Vmax;V(((j-1)*N+i),V(((j-1)*N+i),:)<Vmin)=Vmin;  %V为质心绕节点顺时针旋转的角度%种群更新pop(((j-1)*N+i),:)=pop(((j-1)*N+i),:)+V(((j-1)*N+i),:);pop(((j-1)*N+i),:) = min(max((pop(((j-1)*N+i),:)),0),1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%endscale(j)=Obj(pop(((j-1)*N+1):((j-1)*N+N),:));fitness(j)=scale(j);   %个体最优更新if fitness(j) > fitnessgbest(j)gbest(((j-1)*N+1):((j-1)*N+N),:) = pop(((j-1)*N+1):((j-1)*N+N),:);fitnessgbest(j) = fitness(j); end%群体最优更新if fitness(j) > fitzbestzbest = pop(((j-1)*N+1):((j-1)*N+N),:);fitzbest = fitness(j);endends(K)=fitzbest; 
%     Kfitzbest
end

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

这篇关于未发表!基于主从博弈的多主体微网/综合能源系统利益分摊与能量管理程序代码!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/654013

相关文章

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

Elasticsearch 的索引管理与映射配置实战指南

《Elasticsearch的索引管理与映射配置实战指南》在本文中,我们深入探讨了Elasticsearch中索引与映射的基本概念及其重要性,通过详细的操作示例,我们了解了如何创建、更新和删除索引,... 目录一、索引操作(一)创建索引(二)删除索引(三)关闭索引(四)打开索引(五)索引别名二、映射操作(一

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版