Matlab|【核心完整复现】基于目标级联法的微网群多主体分布式优化调度

目录

[1 主要内容](#1 主要内容)

程序主要内容

上层微网群模型

下层微网模型

模型流程图

[2 部分程序](#2 部分程序)

[3 程序结果](#3 程序结果)

[4 下载链接](#4 下载链接)


1 主要内容

之前发布了华电学报的复现程序《基于目标级联法的微网群多主体分布式优化调度》,具体链接为【防骗版】基于目标级联法的微网群多主体分布式优化调度,虽然对模型及结果进行了复现,但是部分模型细节和参数并没有完全实现,本次发布该程序的完整复现版本,主要实现的内容如下:

1.考虑多源异质分布式电源的出力随机性,增加风光出力的鲁棒约束;

2.完全复现基于目标级联法的分布式​求解流程;

3.参数基本完全按照文献所列​;

4.程序目标函数和约束条件和文献一致​。

程序主要内容

建立微网群系统的两级递阶优化调度模型: 上层是微网群能量调度中心优化调度模型,下层是子微网优化调度模型,然后对所建递阶优化调度模型耦合性和分布性进行分析,采用一种新型的协同优化方法---------目标级联法,实现上下层模型的解耦独立优化,以3微网为算例进行验证,证明方法的可行性。

上层微网群模型

下层微网模型

模型流程图

2 部分程序

复制代码
%最终迭代后结果图
figure;
wwz=max(gPpcc1,0);
wwf=min(gPpcc1,0);
yyf=[-x_P_ch1;wwf]';
bar(yyf,'
stack
');
hold on
yyz=[x_P_dis1;x_P_g1;PV1;x_c_ld1;wwz]'
;bar(yyz,'stack');
plot(Pload1+Pkk1,'r','LineWidth',1.5)
xlabel('时间/h');
ylabel('功率/MW');
title('微网1功率');
sy=legend('储能充电','接受微网群电功率','储能放电','柴油发电','光伏','负荷响应','供给其他微网','微网1负荷');
sy.NumColumns = 3;
figure;
wwz=max(gPpcc2,0);
wwf=min(gPpcc2,0);
yyf=[-x_P_ch2;wwf]';
bar(yyf,'
stack
');
hold on
yyz=[x_P_dis2;x_P_g2;PW2;x_c_ld2;wwz]'
;bar(yyz,'stack');
plot(Pload2+Pkk2,'r','LineWidth',1.5)
xlabel('时间/h');
ylabel('功率/MW');
title('微网2功率');
sy=legend('储能充电','接受微网群电功率','储能放电','柴油发电','风电','负荷响应','供给其他微网','微网2负荷');
sy.NumColumns = 3;
figure;
wwz=max(gPpcc3,0);
wwf=min(gPpcc3,0);
yyf=[-x_P_ch3;wwf]';
bar(yyf,'
stack
');
hold on
yyz=[x_P_dis3;sum(x_P_g3);PW3;PV3;x_c_ld3;wwz]'
;bar(yyz,'stack');
plot(Pload3+Pkk3,'r','LineWidth',1.5)
xlabel('时间/h');
ylabel('功率/MW');
title('微网3功率');
sy=legend('储能充电','接受微网群电功率','储能放电','柴油发电','风电','光伏','负荷响应','供给其他微网','微网3负荷');
sy.NumColumns = 3;
figure;
plot(pv13,'r-o','LineWidth',1)
hold on
plot(pw2,'b-*','LineWidth',1)
plot(pw3,'m-s','LineWidth',1)
legend('MG1/MG3光伏','MG2风电','MG3风电');
xlabel('预测时段/h');
ylabel('可再生能源预测出力/p.u.');
grid on
figure;
plot(ploadz,'r-o','LineWidth',1)
hold on
plot(pload1,'b-*','LineWidth',1)
plot(pload2,'m-s','LineWidth',1)
plot(pload3,'c-^','LineWidth',1)
legend('微网群负荷','子微网1负荷','子微网2负荷','子微网3负荷');
xlabel('预测时段/h');
ylabel('预测负荷功率/p.u.');
grid on
figure;
title_name = '独立优化模型惩罚项';
title(title_name);   %%关键
plot(faz,'b-o','LineWidth',1.5);
hold on
plot(fa1,'b-o','LineWidth',1.5);
plot(fa2,'r-*','LineWidth',1.5);
plot(fa3,'k-^','LineWidth',1.5);
xlabel('迭代次数');
ylabel('独立优化模型惩罚项/元');
grid on
figure;
title_name = '最大连接变量偏差';
title(title_name);   %%关键
plot(detamax,'m-o','LineWidth',1.5);
xlabel('迭代次数');
ylabel('最大连接变量偏差/kW');
grid on
figure;
title_name = '整体经济性';
title(title_name);   %%关键
plot(y4,'b-o','LineWidth',1.5);
xlabel('迭代次数');
ylabel('整体经济性/元');
grid on
figure;
subplot(311)
plot(gPpcc1c,'--','LineWidth',1.5)
hold on
plot(gPMGc(1,:),'-','LineWidth',1.5)
grid on
legend('下层连接变量值','上层连接变量值');
xlabel('迭代次数');
ylabel('子微网1联络功率');
% ylim([0 200]);
subplot(312)
plot(gPpcc2c,'--','LineWidth',1.5)
hold on
plot(gPMGc(2,:),'-','LineWidth',1.5)
grid on
xlabel('迭代次数');
ylabel('子微网2联络功率');
% ylim([0 500]);
subplot(313)
plot(gPpcc3c,'--','LineWidth',1.5)
hold on
plot(gPMGc(3,:),'-','LineWidth',1.5)
grid on
xlabel('迭代次数');
ylabel('子微网3联络功率');

3 程序结果

4 下载链接

相关推荐
itLaity2 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
qq_529835352 小时前
Zookeeper的简单了解
分布式·zookeeper·云原生
smileNicky3 小时前
RabbitMQ有多少种Exchange?
分布式·rabbitmq
你我约定有三3 小时前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
Java初学者小白3 小时前
秋招Day19 - 分布式 - 分布式事务
java·分布式
程序员小羊!5 小时前
Zookeeper 3.6.3【详细技术讲解】整
分布式·zookeeper·云原生
是2的10次方啊7 小时前
微信公众号阅读量为什么会不一致?一文读懂分布式系统的那些事儿
分布式
简简单单做算法13 小时前
基于LSTM深度学习网络的视频类型分类算法matlab仿真
深度学习·matlab·分类·lstm·视频类型分类
Rancemy18 小时前
rabbitmq 03
java·分布式·rabbitmq
黄雪超1 天前
Kafka——多线程开发消费者实例
大数据·分布式·kafka