基于目标级联法的微网群多主体分布式优化调度(已更新)

简介: 基于目标级联法的微网群多主体分布式优化调度(已更新)

一、主要内容

本文复现《基于目标级联法的微网群多主体分布式优化调度》文献的目标级联部分,

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

1.1 上层微网群模型

1.2 下层微网模型

二、部分程序

%程序开发时间:2023年1月26日
%欢迎关注微信公众号:电力程序
%----------------------------
%%目标级联协调优化
gPMG = zeros(3,24);%微网群与微网间联络功率
gPpcc1 = zeros(1,24);%微网1与微网群联络功率,下同
gPpcc2 =zeros(1,24);
gPpcc3 = zeros(1,24);
parameterATC;
figure(1);
errorSet = [];
for k=1:8
[y1(k),gPpcc1,x_P_g1,x_P_ch1,x_P_dis1,x_P_w1,x_P_v1,x_c_ld1,Load1]=lower1(pho,gPMG,v,w);%下层微网1
[y2(k),gPpcc2,x_P_ch2,x_P_dis2,x_P_w2,x_P_v2,x_c_ld2,Load2]=lower2(pho,gPMG,v,w);%下层微网2
[y3(k),gPpcc3,x_P_g3,x_P_ch3,x_P_dis3,x_P_w3,x_P_v3,x_c_ld3,Load3]=lower3(pho,gPMG,v,w);%下层微网3
[y4(k),gPMG]=upperthree(pho,v,w,gPpcc1,gPpcc2,gPpcc3);%上层微网群
%%----得到结果----
gPMG=value(gPMG);
gPpcc1=value(gPpcc1);
gPpcc2=value(gPpcc2);
gPpcc3=value(gPpcc3);
gPMGc(:,k)=gPMG(:,10);%10时刻微网群连接变量数据储存
gPpcc1c(k)=gPpcc1(10);%10时刻微网1连接变量数据储存
gPpcc2c(k)=gPpcc2(10);%10时刻微网2连接变量数据储存
gPpcc3c(k)=gPpcc3(10);%10时刻微网3连接变量数据储存
    postError = norm(gPMG-[gPpcc1;gPpcc2;gPpcc3])
    disp(sprintf('postError=%f',postError));
        errorSet = [errorSet postError];
        %画图
    figure(1),plot(errorSet),pause(0.1)
    xlabel('迭代次数');
    ylabel('误差值');
    v=v+2*w*w*postError;
    w=beta*w;
    yalmip('clear');
end
%最终迭代后结果图
figure;
ldz=max(x_c_ld1,0);
ldf=min(x_c_ld1,0);
wwz=max(gPpcc1,0);
wwf=min(gPpcc1,0);
yyf=[-x_P_ch1;ldf;wwf]';
bar(yyf,'stack');
hold on
yyz=[-x_P_dis1;x_P_g1;x_P_w1;x_P_v1;ldz;wwz]';
bar(yyz,'stack');
plot(Load1,'r','LineWidth',1.5)
xlabel('时间/h');
ylabel('功率/MW');
title('微网1功率');
sy=legend('储能充电','负荷响应','接受微网群电功率','储能放电','发电','风电','光伏','负荷响应','供给其他微网','微网1负荷');
sy.NumColumns = 3;
ylim([-6 14]);
figure;
ldz=max(x_c_ld2,0);
ldf=min(x_c_ld2,0);
wwz=max(gPpcc2,0);
wwf=min(gPpcc2,0);
yyf=[-x_P_ch2;ldf;wwf]';
bar(yyf,'stack');
hold on
yyz=[-x_P_dis2;x_P_w2;x_P_v2;ldz;wwz]';
bar(yyz,'stack');
plot(Load2,'r','LineWidth',1.5)
xlabel('时间/h');
ylabel('功率/MW');
title('微网2功率');
sy=legend('储能充电','负荷响应','接受微网群电能','储能放电','风电','光伏','负荷响应','供给其他微网','微网2负荷');
sy.NumColumns = 3;
ylim([-2 8]);
figure;
ldz=max(x_c_ld3,0);
ldf=min(x_c_ld3,0);
wwz=max(gPpcc3,0);
wwf=min(gPpcc3,0);
yyf=[-x_P_ch3;ldf;wwf]';
bar(yyf,'stack');
hold on
yyz=[-x_P_dis3;x_P_g3;x_P_w3;x_P_v3;ldz;wwz]';
bar(yyz,'stack');
plot(Load3,'r','LineWidth',1.5)
xlabel('时间/h');
ylabel('功率/MW');
title('微网3功率');
sy=legend('储能充电','负荷响应','接受微网群电能','储能放电','发电','风电','光伏','负荷响应','供给其他微网','微网3负荷');
sy.NumColumns = 3;
ylim([-5 11]);
figure;
title_name = '微网群连接变量时段10趋同过程';
title(title_name);  %%关键
subplot(311)
plot(gPpcc1c,'o--','LineWidth',1.5)
hold on
plot(gPMGc(1,:),'r-o','LineWidth',1.5)
grid on
legend('下层连接变量值','上层连接变量值');
xlabel('迭代次数');
ylabel('子微网1联络功率');
subplot(312)
plot(gPpcc2c,'o--','LineWidth',1.5)
hold on
plot(gPMGc(2,:),'r-o','LineWidth',1.5)
grid on
xlabel('迭代次数');
ylabel('子微网2联络功率');
subplot(313)
plot(gPpcc3c,'o--','LineWidth',1.5)
hold on
plot(gPMGc(3,:),'r-o','LineWidth',1.5)
grid on
xlabel('迭代次数');
ylabel('子微网3联络功率');


三、实现效果

以上是按照文献编写的程序,存在一个问题:联络线功率之和不为零,一般而言,微网群中供应功率和吸收功率应该是守恒的,因此,对该部分进行了完善,实现效果如下:


相关文章
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
129 1
|
22天前
|
存储 NoSQL Java
Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
【10月更文挑战第29天】Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
61 1
|
1月前
|
算法
基于粒子群算法的分布式电源配电网重构优化matlab仿真
本研究利用粒子群算法(PSO)优化分布式电源配电网重构,通过Matlab仿真验证优化效果,对比重构前后的节点电压、网损、负荷均衡度、电压偏离及线路传输功率,并记录开关状态变化。PSO算法通过迭代更新粒子位置寻找最优解,旨在最小化网络损耗并提升供电可靠性。仿真结果显示优化后各项指标均有显著改善。
|
1月前
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
106 0
|
3月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
92 5
|
3月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
70 0
|
3月前
|
自然语言处理 Java
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
|
3月前
|
SQL 存储 分布式计算
神龙大数据加速引擎MRACC问题之RDMA技术帮助大数据分布式计算优化如何解决
神龙大数据加速引擎MRACC问题之RDMA技术帮助大数据分布式计算优化如何解决
61 0
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
114 2
基于Redis的高可用分布式锁——RedLock

热门文章

最新文章

下一篇
无影云桌面