基于串行和并行ADMM算法在分布式调度中的应用(Matlab代码实现)

简介: 基于串行和并行ADMM算法在分布式调度中的应用(Matlab代码实现)

💥1 概述

参考文献:


目前,国内外学者针对电力流与天然气流协同优化问题已经开展了许多研究。文献[7]建立了一


种考虑安全约束的电—气能量流混合整数规划模型,运用基于线性灵敏因子的迭代算法可同时求解


得到满足 N - 1 约束的电力和天然气网络最优潮流。美国工程院院士 M. Shahidehpour 领导的团队建立了计及天然气网络约束的输电网安全约束机组组合模型,从购气价格、用气需求和输气管道故障等方面分析了天然气系统对电力系统安全经济运行的影响[8-9]。苏黎世联邦理工大学 G. Anderson 教授提出耦合能源中心的多能流网络集成调度方法,采用耦合矩阵和调度因子分别描述能源中心内多能流(如电、气、热)的相互转化和负荷分配[10]。国内清华大学、河海大学等也开展了初步研究工作[11-12]。上述工作通常假定电力与天然气系统垄断运营,由唯一的决策主体(联合调度中心)进行电力流与天然气流的统一优化决策。这种仅含单个决策主体的集中式优化模型与现实中电力和天然气系统一般由不同的运营商负责经营管理并不一致。实际上,两个系统间仅支持少量数据交互,要通过联合调度中心来获得整个电—气互联能源系统的全局信息是相当困难的。这个问题亟须针对电力流与天然气流的实际决策特点———多主体自治决策,运用分布式协同优化手段来解决[13]。


📚2 运行结果

2.1 Jacobi

上图横坐标是迭代次数,纵坐标是总网损。

上图横坐标是迭代次数,纵坐标是误差。  

2.2 GS_general


2.3 GS_in_paper

部分代码:

%%ADMM主程序
%%串行计算
clear
clc
%%%区域a,节点33,1-7,18-25
%%耦合为Xa=[U(6),U(7),P(7),Q(7),U(5),U(25),P(25),Q(25)]
Line_a=[1,2,3,4,5,6,7,18,19,20,21,22,23,24,25];
Node_a=[33,1,2,3,4,5,6,18,19,20,21,22,23,24,25];
%%%区域b,节点6-17
%%耦合为Xb=[U(6),U(7),P(7),Q(7)]
Line_b=[7,8,9,10,11,12,13,14,15,16,17];
Node_b=[6,7,8,9,10,11,12,13,14,15,16,17];
%%%区域c,节点5,25-32
%%耦合为Xb=[U(5),U(25),P(25),Q(25)]
Line_c=[25,26,27,28,29,30,31,32];
Node_c=[5,25,26,27,28,29,30,31,32];
%%%%首轮求解
Ploss_data=zeros(32,1);
Volta_data=zeros(33,1);
Qg_data=zeros(33,1);
xigma=0;lagrant_a=[0;0;0;0;0;0;0;0];lagrant_b=[0;0;0;0];lagrant_c=[0;0;0;0];
Xa_last=[0;0;0;0;0;0;0;0];
[Xa,Ploss,Volta,Qg]=program_a(lagrant_a,xigma,Xa_last);
Ploss_data(Line_a)=Ploss(Line_a);Volta_data(Node_a)=Volta(Node_a);Qg_data(Node_a)=Qg(Node_a);
Xb_last=Xa(1:4);xigma=0.1;
[Xb,Ploss,Volta,Qg]=program_b(lagrant_b,xigma,Xb_last);
Ploss_data(Line_b)=Ploss(Line_b);Volta_data(Node_b)=Volta(Node_b);Qg_data(Node_b)=Qg(Node_b);
Xc_last=Xa(5:8);
[Xc,Ploss,Volta,Qg]=program_c(lagrant_c,xigma,Xc_last);
Ploss_data(Line_c)=Ploss(Line_c);Volta_data(Node_c)=Volta(Node_c);Qg_data(Node_c)=Qg(Node_c);
Xa_last=[Xb;Xc];
lagrant_a=lagrant_a+xigma*(Xa-Xa_last);lagrant_b=lagrant_a(1:4);lagrant_c=lagrant_a(5:8);
figure(1)%目标函数
plot(1,sum(Ploss_data),'r*')
hold on
figure(2)%对偶误差
plot(1,norm(Xa-Xa_last,2)^2,'b*-');
hold on
%%%%迭代
for k=1:100
    [Xa,Ploss,Volta,Qg]=program_a(lagrant_a,xigma,Xa_last);
    Ploss_data(Line_a)=Ploss(Line_a);Volta_data(Node_a)=Volta(Node_a);Qg_data(Node_a)=Qg(Node_a);
    Xb_last=Xa(1:4);
    [Xb,Ploss,Volta,Qg]=program_b(lagrant_b,xigma,Xb_last);
    Ploss_data(Line_b)=Ploss(Line_b);Volta_data(Node_b)=Volta(Node_b);Qg_data(Node_b)=Qg(Node_b);
    Xc_last=Xa(5:8);
    [Xc,Ploss,Volta,Qg]=program_c(lagrant_c,xigma,Xc_last);
    Ploss_data(Line_c)=Ploss(Line_c);Volta_data(Node_c)=Volta(Node_c);Qg_data(Node_c)=Qg(Node_c);
    Xa_last=[Xb;Xc];
    lagrant_a=lagrant_a+xigma*(Xa-Xa_last);lagrant_b=lagrant_a(1:4);lagrant_c=lagrant_a(5:8);
    figure(1)
    plot(k+1,sum(Ploss_data),'r*');
    figure(2)
    plot(k+1,norm(Xa-Xa_last,2)^2,'b*-');
    Ploss_total=sum(Ploss_data)
gap=norm(Xa-Xa_last,2)^2
end
Ploss_total=sum(Ploss_data)
gap=norm(Xa-Xa_last,2)^2 


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。


[1]瞿小斌,文云峰,叶希等.基于串行和并行ADMM算法的电—气能量流分布式协同优化[J].电力系统自动化,2017,41(04):12-19.


[2]梁俊文,林舜江,刘明波.主动配电网分布式无功优化控制方法[J].电网技术,2018,42(01):230-237.DOI:10.13335/j.1000-3673.pst.2017.1331.


🌈4 Matlab代码实现

相关文章
|
30天前
|
机器学习/深度学习 存储 算法
sklearn应用线性回归算法
sklearn应用线性回归算法
25 0
|
8天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
1天前
|
数据采集 算法 数据可视化
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
|
12天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
16 0
|
12天前
|
数据采集 算法 数据可视化
R语言聚类算法的应用实例
R语言聚类算法的应用实例
86 18
R语言聚类算法的应用实例
|
12天前
|
算法 数据可视化 数据挖掘
R语言社区主题检测算法应用案例
R语言社区主题检测算法应用案例
12 0
|
15天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
286 9
|
1月前
|
算法
m基于log-MPA检测算法的SCMA通信链路matlab误码率仿真
MATLAB 2022a仿真实现了稀疏码多址接入(SCMA)算法,该算法利用码本稀疏性实现多用户高效接入。每个用户从码本中选取码字发送,接收端采用Log-MPA算法进行多用户检测。由于MAP检测计算复杂度高,故采用Log-MPA降低复杂性。仿真展示了不同迭代次数(1, 5, 10, 30)对误码率(BER)的影响,通过比较各次迭代的BER曲线,研究算法性能与迭代次数的关系。
23 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真

热门文章

最新文章