基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)

简介: 基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)

1 主要内容

该程序复现文章《市场模式下光伏用户群的电能共享与需求响应模型》,为了使光伏用户群内各经济主体能实现有序的电能交易,提出了一种基于光伏电能供需比(SDR)的内部价格模型。在考虑经济性和舒适度的基础上,提出了用户参与需求响应(DR)的效用成本模型。由于内部电价是以各时段光伏用户群内的供需比为基础,用户之间针对电价的需求响应行为可构成非合作博弈,在证明该博弈问题存在纳什均衡解的基础上,提出了分布式优化算法对用户的纳什均衡策略进行求解。最后,通过实际算例验证了所提模型在减少用电成本、提高光功率互用水平上的有效性。程序采用matlab编制,该程序注释较少,适合于有编程经验的同学进一步学习提升!

  • 光伏用户群结构

对于分布式光伏用户,首选光功率自消纳,光功率过剩时由服务商按内部购电电价收购,光伏功率不足时从服务商按内部售电电价购电。对于邻近的分布式光伏用户,其光照和温度等外部环境相同,导致光功率输出特性大致相同,但是由于不同用户间 的负荷特性普遍存在差异,因此净功率的差异为光 功率互用提供了基础条件。
  • 电能共享价格模型

  • 程序过程

2 部分代码

clear ;
clc;
load RU2;
RU2 = RU2(:,[1 3 4 2 5]);
s1 = [0;0;0;0;0;0;0.04;1.276;3.66;4.72;5.52;5.6;5.4;5.28;5.16;4.48;3.48;1.24;0.04;0;0;0;0;0];
s2 = [0;0;0;0;0;0;0;0;0.17;0.69;1.38;3.11;4.67;5.01;5.01;4.84;5.36;4.67;2.07;0.69;0.17;0;0;0];
s3 = [0;0;0;0;0;0;0;0;0.105;2.385;3.681;4.716;5.91;5.7;5.55;5.07;4.05;1.92;0.21;0;0;0;0;0];
s4 = [0;0;0;0;0;0;0;0;1.01;2.53;3.7;4.55;5.06;5.08;4.65;3.79;2.6;0.55;0.05;0;0;0;0;0];
s5 = [0;0;0;0;0;0;0.018;0.97;2.255;3.465;4.552;5.29;5.57;5.45;5.225;4.33;3.06;1.75;0.378;0;0;0;0;0];
% psell = [0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.8 0.8 0.8 1.3 1.3 1.3 1.3 0.8 0.8 0.8 0.8 1.3 1.3 1.3 0.8 0.8];
% load solar;
% solar = solar';
solar = [40*s1,20*s2,40*s3,30*s4,60*s5];
solar = solar(:,[1 3 4 2 5]);
% RU2 = RU2/1000;
% solar = solar/1000;
%solar = solar*5;
% global p;% k ;
Load = RU2 - solar;%[RU2(:,1)-40*s1,RU2(:,2)-20*s2,RU2(:,3)-40*s3,RU2(:,4)-30*s4,RU2(:,5)-60*s5];%设置光伏装配数量
% p = p*1000;
t_start = tic;
MAX_ITER = 40;
ABSTOL = 0.01;
RELTOL = 1e-3;
N = 5;%
x = zeros(24,N);
% k = 1; 
u = zeros(24,N);
rs = zeros(2,MAX_ITER);
totfeerecord = zeros(1,MAX_ITER);
pSrecord = zeros(24,MAX_ITER);
pBrecord = zeros(24,MAX_ITER);
x1record = zeros(24,MAX_ITER);
x2record = zeros(24,MAX_ITER);
x3record = zeros(24,MAX_ITER);
x4record = zeros(24,MAX_ITER);
x5record = zeros(24,MAX_ITER);
    x1record(:,1) = RU2(:,1);
    x2record(:,1) = RU2(:,2);
    x3record(:,1) = RU2(:,3);
    x4record(:,1) = RU2(:,4);
    x5record(:,1) = RU2(:,5);
    pSrecord(:,1) = 0.4*ones(24,1);
    pBrecord(:,1) = ones(24,1);
x1L = zeros(24,MAX_ITER);
x2L = zeros(24,MAX_ITER);
x3L = zeros(24,MAX_ITER);
x4L= zeros(24,MAX_ITER);
x5L = zeros(24,MAX_ITER);
% exitfalgrecord = zeros(N,96);
p = getPrice(Load);%集群买卖电价
pacture = p;
for i=2:MAX_ITER
    pSrecord(:,i) = p(:,1);
    pBrecord(:,i) = p(:,2);
    [x,exitflag] = update_x(x,RU2,solar,p);
    %Load = [x(:,1)-25*s1,x(:,2)-30*s2,x(:,3)-10*s3];%设置光伏装配数量


3 程序结果

部分原文结果

4 下载链接

相关文章
|
2月前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
122 4
|
3月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
4月前
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
250 0
|
4月前
|
算法
基于粒子群算法的分布式电源配电网重构优化matlab仿真
本研究利用粒子群算法(PSO)优化分布式电源配电网重构,通过Matlab仿真验证优化效果,对比重构前后的节点电压、网损、负荷均衡度、电压偏离及线路传输功率,并记录开关状态变化。PSO算法通过迭代更新粒子位置寻找最优解,旨在最小化网络损耗并提升供电可靠性。仿真结果显示优化后各项指标均有显著改善。
|
4月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
82 2
|
5月前
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
204 73
|
6月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
192 0
|
6月前
|
自然语言处理 Java
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
|
6月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
139 5
|
2天前
|
NoSQL Java Redis
Springboot使用Redis实现分布式锁
通过这些步骤和示例,您可以系统地了解如何在Spring Boot中使用Redis实现分布式锁,并在实际项目中应用。希望这些内容对您的学习和工作有所帮助。
112 83