基于主从博弈的电热综合能源系统动态定价与能量管理附matlab代码

简介: 基于主从博弈的电热综合能源系统动态定价与能量管理附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

随着能源市场由传统的垂直一体式结构向交互竞争型结构转变,社区综合能源系统的分布式特征愈发明显,传统的集中优化方法难以揭示多主体间的交互行为.该文提出一种基于主从博弈的社区综合能源系统分布式协同优化运行策略,将综合能源销售商作为领导者,新能源冷热电联供运营商和负荷聚合商作为跟随者,求解各方在追求目标最优时的交互策略.首先,介绍社区综合能源系统的交易模式及数学模型,并将其嵌入到主从博弈框架下,建立一主多从的分布式协同优化模型.其次,证明Stackelberg均衡的唯一性,并通过遗传算法和二次规划相结合的算法求解.最后,通过算例验证所提方法的有效性,供能侧的收益和用能侧的消费者剩余同时得到提升.

本文提出的 CIES 集成 IER、新能源 CCHP 系统以及可调节负荷于一体,以 IER 为纽带,新能源CCHP 系统为基础,协同互联电力网络,实现经济、高效供能,科学、合理用能,具体架构如图 1 所示。本文中IER是基于电力市场中售电公司的概念提出的,在电能交易的基础上又考虑了热能交易,满足用户的多样化需求。IER 作为源、荷之间的桥梁,基于供需关系,日前优化购入、售出的电价、热价,从供能侧购买电、热等能源,并出售给用能侧,从中赚取收益。IER 这一模式的引入,能够提供相比电网更加灵活的电价策略,对于引导分布式供能系统参与电力市场竞争、鼓励中小型社区用户科学用能都具有积极作用。在能源交易过程中,IER同样需要承担因价格波动、供需不平衡而带来的风险。当 CCHP 输出电功率无法满足负荷需求时,IER必须高价从电网购电。考虑到热能转换、传输的损耗较大,所以热能主要由社区内的 CCHP 机组就地提供,为了避免出现供热中断,当 IER 不能满足热负荷需求时,需要支付一定的惩罚费用。新能源CCHP系统将新能源发电与传统燃料发电优势互补,基于能量梯级利用的原则,同时满足用户电、热、冷不同的能量需求,其结构示意图如图 2 所示。文中新能源包含风电、光伏等,并采用最大化消纳原则。可控单元包括内燃发电机、燃气锅炉。内燃机发电的同时,缸套水和烟气中携带的热量可以通过余热装置回收再利用,并与燃气锅炉产生的热量一起,在冬季经热交换器供热,或夏季经吸收式制冷机转化为冷量为用户供冷。基于 IER的报价,运营商优化各设备的逐时出力,以获得更高的收益。

⛄ 部分代码

figure

plot(trace(:,1),trace(:,2),'r-*','linewidth',1.5)

xlabel('迭代次数');

ylabel('目标函数值');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('DE上层目标函数曲线');

legend('能源运营商收益曲线')

% set(gca,'YLim',[-20000 20000]);

box off


figure

plot(trace(:,1),trace(:,4),'b-o','linewidth',1.5);

xlabel('迭代次数');

ylabel('目标函数值');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('DE下层目标函数曲线');

legend('用户收益曲线');%%用户收益曲线

% set(gca,'YLim',[0 30000]);

box off


x=1:24;

figure

% yyaxis left

plot(x,Ppv,'r-*','linewidth',1.5)

hold on

plot(x,Pwt,'g-*','linewidth',1.5)

grid

xlabel('时间/h');

ylabel('风光出力');

% yyaxis right

plot(x,de,'b-*',x,dh,'y-+','linewidth',1.5);

xlabel('时间/h');

ylabel('用户负荷曲线/kW');

% set(get(gca,'XLabel'),'Fontsize',14)

% set(get(gca,'YLabel'),'Fontsize',14)

% title('典型用户的负荷预测曲线');

legend('光伏预测曲线','风机预测曲线','电负荷曲线','热负荷曲线');

% set(gca,'XLim',[1 24]);%X轴的数据显示范围

% set(gca,'YLim',[0 2000]);

% legend('光伏预测曲线','风机预测曲线');

box off


xx=1:24;

figure

plot(xx,de,'-*',xx,de1+le,'-+','linewidth',1.5);

hold on

bar((de-de1),0.5)

grid

xlabel('时间/h');

ylabel('电负荷/kW');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('需求响应前后电负荷曲线');

legend('优化前电负荷','优化后电负荷','削减负荷量');

set(gca,'XLim',[0.5 24.]);%X轴的数据显示范围

set(gca,'YLim',[0 2000]);

box off


figure

plot(xx,dh,'-*',xx,dh+lh,'-+','linewidth',1.5);

hold on

grid

bar(lh,0.5)

xlabel('时间/h');

ylabel('热负荷/kW');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('需求响应前后热负荷曲线');

legend('优化前热负荷','优化后热负荷','削减负荷量');

set(gca,'XLim',[1 24]);%X轴的数据显示范围

set(gca,'YLim',[-500 1500]);

box off


figure

bar(Qgb,'stack')

hold on

grid

plot(xx,Pice,'r-*',xx,Pice*(1-n_ice)*n_ex/n_ice,'g-o','linewidth',1.5);

xlabel('时间/h');

ylabel('功率/kW');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('需求响应前后热负荷曲线');

legend('燃气轮机出力','燃气锅炉出力','余热锅炉出力');

set(gca,'XLim',[1 24]);%X轴的数据显示范围

box off


figure

bar(Qgb,'stack')

hold on

grid

plot(xx,Pice,'r-*',xx,Pice*(1-n_ice)*n_ex/n_ice,'g-o','linewidth',1.5);

xlabel('时间/h');

ylabel('功率/kW');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('需求响应前后热负荷曲线');

legend('燃气轮机出力','燃气锅炉出力','余热锅炉出力');

set(gca,'XLim',[1 24]);%X轴的数据显示范围

box off

figure

% plot(xx,Psell,'-*',xx,Pbuy,'-+');

bar(Psell','stack');

hold on

bar(Pbuy','stack')

xlabel('时间/h');

ylabel('功率/kW');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('市场交易结果');

legend('卖的电量','买的电量');

set(gca,'XLim',[0.5 24.5]);%X轴的数据显示范围

box off


figure

for xx=1:24

   a1(xx)=best(xx);%ceb

   a3(xx)=best(xx+48);%ces

end

xx=1:24;

stairs(xx,grid_fs,'r--','linewidth',1.5);

hold on

stairs(xx,grid_sw,'g--','linewidth',1.5);

hold on

stairs(xx,a1,'b-*','linewidth',1.5);

hold on

stairs(xx,a3,'c-+','linewidth',1.5);

xlabel('时间/h');

ylabel('电价/元');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('内部电价结果');

legend('电网分时电价','电网上网电价','IER购电电价','IER售电电价');

set(gca,'XLim',[1 24]);%X轴的数据显示范围

set(gca,'YLim',[0 2]);

box off


figure

for xx=1:24

   a2(xx)=best(xx+24);%ceb

   a4(xx)=best(xx+72);%ces

end

xx=1:24;

stairs(xx,ch_min,'r--','linewidth',1.2);

hold on

stairs(xx,ch_max,'g--','linewidth',1.2);

hold on

stairs(xx,a2,'b-*','linewidth',1.2);

hold on

stairs(xx,a4,'c-+','linewidth',1.2);

xlabel('时间/h');

ylabel('电价/元');

set(get(gca,'XLabel'),'Fontsize',14)

set(get(gca,'YLabel'),'Fontsize',14)

title('内部热价结果');

legend('热价下线','热价上限','IER购热价','IER售热价');

set(gca,'XLim',[1 24]);%X轴的数据显示范围

set(gca,'YLim',[0 1]);

box off


x=1:24;

PP=[Pbuy;Pdischarge;Pice;Pwt;Ppv];

PP1=[Psell;-Pcharge];

figure

bar(PP','stack');

% set(h,'Orientation','horizon')

hold on

bar(PP1','stack');

plot(x,value(de1+le),'g-*','linewidth',1.5);

legend('交换功率','蓄电池出力','燃气轮机出力','风电出力出力','光伏出力','售电电量','充电电量','负荷曲线');

xlabel('时段');ylabel('功率/kW');

hold off


x=1:24;

QQ=[Hto;Qgb*n_c;Pice*(1-n_ice)*n_ex/n_ice*n_c];

QQ1=[-Hti];

figure

bar(QQ',0.6,'stack');

hold on

bar(-value(dh+lh)',0.6,'stack');

bar(QQ1',0.6,'stack');

hold on

xlabel('时段');ylabel('功率/kW');

legend('蓄热槽出力','燃气锅炉出力','余热锅炉出力','总热负荷','充热量');

% set(h,'Orientation','horizon')

hold off

⛄ 运行结果

⛄ 参考文献

[1]王海洋, 李珂, 张承慧,等. 基于主从博弈的社区综合能源系统分布式协同优化运行策略[J]. 中国电机工程学报, 2020, 40(17):10.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
20天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
38 3
|
2月前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
2月前
|
算法 5G 数据安全/隐私保护
MIMO系统中差分空间调制解调matlab误码率仿真
本项目展示了一种基于Matlab 2022a的差分空间调制(Differential Space Modulation, DMS)算法。DMS是一种应用于MIMO通信系统的信号传输技术,通过空间域的不同天线传输符号序列,并利用差分编码进行解调。项目包括算法运行效果图预览、核心代码及详细中文注释、理论概述等内容。在发送端,每次仅激活一个天线发送符号;在接收端,通过差分解调估计符号和天线选择。DMS在快速衰落信道中表现出色,尤其适用于高速移动和卫星通信系统。
|
2月前
|
Python
基于python-django的matlab护照识别网站系统
基于python-django的matlab护照识别网站系统
16 0
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
204 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
130 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
94 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
下一篇
无影云桌面