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

本文主要是介绍【核心完整复现】基于目标级联法的微网群多主体分布式优化调度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主要内容

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

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

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

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

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

  • 程序主要内容

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

  • 上层微网群模型

  • 下层微网模型

  • 模型流程图

部分程序

%最终迭代后结果图
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联络功率');

程序结果

4 下载链接

这篇关于【核心完整复现】基于目标级联法的微网群多主体分布式优化调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902172

相关文章

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

详解MySQL中DISTINCT去重的核心注意事项

《详解MySQL中DISTINCT去重的核心注意事项》为了实现查询不重复的数据,MySQL提供了DISTINCT关键字,它的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据... 目录DISTINCT 六大注意事项1. 作用范围:所有 SELECT 字段2. NULL 值的特殊处

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实