【两阶段鲁棒】计及需求响应的多能互补微网两阶段鲁棒优化matlab

简介: 【两阶段鲁棒】计及需求响应的多能互补微网两阶段鲁棒优化matlab

1 主要内容

该程序参考文献《多能互补微网两阶段鲁棒优化调度研究》,在考虑风光不确定集的基础上提出采用计及DR响应的多能互补微网两阶段鲁棒备用调度模型,深入研究电-气-冷-热联供型微网在充分运用新能源技术的效果,以期通过对系统鲁棒性分析实现多种能源设备的协同优化调度,有效应对多能互补微网系统的不确定性影响,同时提升系统的经济性和灵活性。

  • 算例模型

建立含电转气的多能互补微网经济调度模型,以微网系统运行费用最低作为目标,考虑多能微网系统存在的冷热电能量平衡约束以及相关设备运行约束。

  • 目标函数

通过建立多能互补微网日前-日内两阶段鲁棒优化模型,分析在系统风光不确定下的最佳经济调度方案,并考虑电网备用容量和IDR容量。日前阶段模型采用确定性调度,根据风电、光伏出力预测值,建立目标函数包括购售电成本、各类机组运行成本、备用成本以及IDR成本的调度模型,在该阶段充分考虑随机事件可能造成的影响而留有电网备用容量和IDR容量。日内阶段根据不确定集范围,调用备用资源确保多能微网系统安全稳定运行,该阶段通过对偶模型求解多能微网最恶劣运行场景,并将该结果反馈至日前阶段再次优化调度。经过两阶段的协同调度求解得到风光不确定性情况下的最佳优化结果,既保证了系统的安全性,又能得到最佳经济方案。

  • 第一阶段

  • 第二阶段

2 部分程序

clc;clear all;
parameter;
Z=[ones(8,1);zeros(40,1);ones(8,1);zeros(40,1)];%不确定变量初始值
UB=inf;%初始上界
kloop=10;%循环次数
Z0=zeros(4*T,kloop);
for kl=1:kloop
    yalmip('clear');
    Z0(:,kl)=Z;%更新不确定变量
    MP;%运行第一阶段
    LB=F;%更新下界
    yalmip('clear');
    dualtest;%运行第二阶段
    UB=min(UB,LB-yita+F2);%更新上界
    cul(kl)=UB-LB;%判断是否收敛
end
%结果
figure;
plot(cul,'LineWidth',1)
xlabel('迭代次数');
ylabel('UB-LB');
grid on
%典型日电转气
figure;
yg2q=[x0_Pegin;x0_Pmrin;x0_Phin]';
bar(yg2q);
xlabel('调度时段/h');
ylabel('功率/kW');
legend('电解槽出力','甲烷反应器出力','储氢罐输入功率');
%冷热电耦合
x0_Phfch=eta_hfch.*x0_Phout;
x0_Phfce=eta_hfce.*x0_Phout;
x0_Pgth=eta_gth.*x0_Pgtin;
x0_Pgte=eta_gte.*x0_Pgtin;
x0_Pgb=eta_gb.*x0_Pgbin;
figure;
yh=[x0_Phfch;x0_Pgth;x0_Pgb]';
bar(yh);
hold on
plot(x0_Phfce,'r-','LineWidth',1);
plot(x0_Pgte,'m-','LineWidth',1);
plot(eta_ac.*x0_Pacin,'b-p','LineWidth',1);
xlabel('调度时段/h');
ylabel('功率/kW');
h4=legend('氢燃料电池热输出','燃气轮机热输出','燃气锅炉输出','氢燃料电池电输出','燃气轮机电输出','吸收式制冷机输出功率');
set(h4, 'Orientation', 'horizon')
% set(h1, 'Box', 'off')
set(h4, 'NumColumns',2);
ylim([0 5500]);
%电功率平衡
figure;
yef=[-x0_Pbtc;-x0_Pegin;-x0_Pecin;min(x0_Pex,0)]';
b1=bar(yef,'stack');
b1(1).FaceColor = [0.1 0.5 0.9];
b1(2).FaceColor = [0.9 0.1 0.5];
b1(3).FaceColor = [0.5 0.9 0.1];
hold on
yez=[x0_Pbtd;max(x0_Pex,0);x0_Pw;x0_Pv;eta_gte.*x0_Pgtin;eta_hfce.*x0_Phout]';
b2=bar(yez,'stack');
b2(1).FaceColor = [0.1 0.5 0.9];
b2(2).FaceColor = [0.5,0.3,0.5];
b2(3).FaceColor = [1,0.2,1];
b2(4).FaceColor = [1,0.6,0.1];
b2(5).FaceColor = [0.2,0.5,0.2];
b2(6).FaceColor = [0.3,0.8,0.8];
b3=plot(Pel,'r','LineWidth',1.5);
h2=legend([b1(2:4),b2(1:6),b3],'电解槽','电制冷机','向电网供应功率','蓄电池','从电网吸收功率','风机','光伏','燃气轮机电功率','氢燃料电池电功率','电负荷');
set(h2, 'Orientation', 'horizon')
% set(h1, 'Box', 'off')
set(h2, 'NumColumns',2);
xlabel('调度时段/h');
ylabel('功率/kW');
ylim([-10000 25000]);
%热功率平衡
figure;
yhf=-x0_Pbthc;
b3=bar(yhf,'stack');
b3(1).FaceColor = [0.1 0.5 0.9];
hold on
yhz=[x0_Pbthd;eta_eh.*x0_Pehin]';
b4=bar(yhz,'stack');
b4(1).FaceColor = [0.1 0.5 0.9];
b5=plot(Phl,'r','LineWidth',1.5);
legend([b4(1:2),b5],'储热','余热锅炉','热负荷');
xlabel('调度时段/h');
ylabel('功率/kW');
%冷功率平衡
figure;
ycf=-x0_Pbtcc;
b3=bar(ycf,'stack');
b3(1).FaceColor = [0.1 0.5 0.9];
hold on
ycz=[x0_Pbtcd;eta_ec.*x0_Pecin;eta_ac.*x0_Pacin]';
b4=bar(ycz,'stack');
b4(1).FaceColor = [0.1 0.5 0.9];
b5=plot(Pcl,'r','LineWidth',1.5);
legend([b4(1:3),b5],'储冷','电制冷机','吸收式制冷机','冷负荷');
% legend('冷负荷');
xlabel('调度时段/h');
ylabel('功率/kW');
ylim([-1000 8000]);
%负荷及风光预测值
figure;
plot(Pel,'b-o','LineWidth',1.5);
hold on
plot(Phl,'r-*','LineWidth',1.5);
plot(Pcl,'g-.','LineWidth',1.5);
plot(Pwt,'c->','LineWidth',1.5);
plot(Ppv,'m--','LineWidth',1.5);
legend('电负荷','热负荷','冷负荷','风电预测值','光伏预测值');
xlabel('调度时段/h');
ylabel('功率/kW');
%鲁棒优化后风电出力
figure;
plot(Pwt,'m-','LineWidth',1.5)
hold on
plot(Pwt+Pwp,'m--','LineWidth',1.5)
plot(Pwt-Pwm,'m--','LineWidth',1.5)
plot(x0s(73:96,1),'b-','LineWidth',1.5)
legend('风电预测值','风电上限','风电下限','最恶劣场景');
xlabel('调度时段/h');
ylabel('功率/kW');
%光伏
figure;
plot(Ppv,'m-','LineWidth',1.5)
hold on
plot(Ppv+Pvp,'m--','LineWidth',1.5)
plot(Ppv-Pvm,'m--','LineWidth',1.5)
plot(x0s(97:120,1),'b-','LineWidth',1.5)
legend('光伏预测值','光伏上限','光伏下限','最恶劣场景');
xlabel('调度时段/h');
ylabel('功率/kW');
%电价
figure;
stairs(Cph,'LineWidth',1.5)
xlabel('调度时段/h');
ylabel('电价(元/(kWh))');
grid on
%储氢罐容量
figure;
bar(x0_Phin,'stack');
hold on
bar(-x0_Phout,'stack');
ylabel('功率/kW');
yyaxis right
plot(x0_Wh,'r--','LineWidth',1.5)
ylabel('储氢罐容量/kWh');
legend('储存氢气','释放氢气','储氢容量')
xlabel('调度时段/h');
grid on
%储冷容量
figure;
bar(x0_Pbtcc,'stack');
hold on
bar(-x0_Pbtcd,'stack');
ylabel('功率/kW');
yyaxis right
plot(x0_Wbtc,'r--','LineWidth',1.5)
ylabel('储冷罐容量/kWh');
legend('储存冷能','释放冷能','储冷容量')
xlabel('调度时段/h');
grid on
%储热容量
figure;
bar(x0_Pbthc,'stack');
hold on
bar(-x0_Pbthd,'stack');
ylabel('功率/kW');
yyaxis right
plot(x0_Wbth,'r--','LineWidth',1.5)
ylabel('储热罐容量/kWh');
legend('储存热能','释放热能','储热容量')
xlabel('调度时段/h');
grid on
%蓄电池容量
figure;
bar(x0_Pbtc,'stack');
hold on
bar(-x0_Pbtd,'stack');
ylabel('功率/kW');
yyaxis right
plot(x0_Wbt,'r--','LineWidth',1.5)
ylabel('蓄电池容量/kWh');
legend('储存电能','释放电能','蓄电池容量')
xlabel('调度时段/h');
grid on


3 程序结果

含保守度的迭代末次风电最恶劣场景图,在两阶段鲁棒优化过程中,随着主子问题迭代,二阶段可再生能源的最恶劣场景也会随之变化,将这些最恶劣场景叠加到一阶段进行综合优化求解,因此遇到有最恶劣场景图的可以注意一下,程序内部是不是实现了叠加循环。

4 下载链接


相关文章
|
1月前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
147 68
|
3天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
3天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
23小时前
|
算法
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
|
6月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
272 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
6月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
162 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
138 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
9月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
9月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)