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

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

适用平台: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

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi