基于Nonconvex规划的配电网重构研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

本文基于Nonconvex规划的配电网重构研究。并用Matlab代码实现之。

基于Nonconvex规划的配电网重构研究是针对配电网优化问题的一种方法。传统的配电网通常是基于线性或者凸规划进行设计和运行,但是实际配电网系统的复杂性往往导致非线性和非凸问题的出现。为解决这些问题,基于Nonconvex规划的方法被提出来更好地优化配电网系统。

配电网重构是指通过变换网络拓扑结构和配置设备参数,以改善配电网的性能和可靠性。基于Nonconvex规划的配电网重构研究通常包括以下几个方面:

1. 非线性建模:将配电网系统建模为非线性的数学模型。这包括考虑网络拓扑结构、设备参数、电流限制、电压限制等的非线性方程和约束条件。

2. 问题定义:明确定义配电网重构的目标,例如最小化损耗、提高电压稳定性、降低网络阻塞等。同时,考虑到配电网的约束条件,例如设备的额定容量、电压限制、工作模式等。

3. Nonconvex规划建模:将配电网重构问题转化为Nonconvex规划问题。这可能涉及到非线性约束和非凸目标函数,并且由于配电网的复杂性,问题可能具有多个局部最优解。

4. 优化算法:针对Nonconvex规划问题,需要选择适当的优化算法来求解最优解。常见的算法包括非线性规划算法、启发式算法(如遗传算法、粒子群算法等)以及近似方法等。这些算法可以搜索到全局或者局部最优解。

5. 结果分析和评估:根据求解得到的最优解,分析和评估配电网的性能指标。这可能包括网络损耗、电压稳定性、负荷均衡等方面的评估。

6. 重构方案实施:根据优化结果,制定并实施配电网重构方案。这可能涉及到改变配电网的拓扑结构、设备配置、控制策略等。

基于Nonconvex规划的配电网重构研究能够更好地应对实际配电网系统的复杂性,帮助提高能源利用效率,降低电力系统的运行成本,并提高系统的可靠性和稳定性。然而,由于Nonconvex规划问题的复杂性,求解过程可能较为困难,需要综合考虑求解效率和解的质量。

📚2 运行结果

14147.3秒得到了全局最优,网损为1.7430,AA=[1;1;1;1;1;1;0;1;0;1;1;1;1;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;1;1;1;1;0]

部分代码:

%SB=100MVA,UB=12.66kV,IEEE-33 Bus,Distflow SOC-ACOPF
%考虑重构,全天拓扑不变
clear
clc
tic
%网络数据,标幺值
Pload=。。。
Line(:,3)=Line(:,3)*100/(12.66^2);
r=real(Line(:,3));
x=imag(Line(:,3));
father=zeros(33,37);son=zeros(33,37);
for i=1:32
    father(i,i)=1;
end
father(20,33)=1;father(14,34)=1;father(21,35)=1;father(32,36)=1;father(28,37)=1;
for i=[1:16,18:20,22:23,25:31]
    son(i,i+1)=1;
end
son(1,18)=1;son(2,22)=1;son(5,25)=1;son(33,1)=1;son(7,33)=1;son(8,34)=1;son(11,35)=1;son(17,36)=1;son(24,37)=1;
Umax=[1.07*1.07*ones(32,24);1.05*1.05*ones(1,24)];
Umin=[0.93*0.93*ones(32,24);1.05*1.05*ones(1,24)];
Pgmax=[zeros(32,24);ones(1,24)];
Qgmax=[zeros(32,24);ones(1,24)];
%定义变量
P=sdpvar(37,24);%线路有功
Q=sdpvar(37,24);%线路无功
U=sdpvar(33,24);%电压的平方
I=sdpvar(37,24);%电流的平方
Pg=[zeros(32,24);sdpvar(1,24)];%发电机有功
Qg=[zeros(32,24);sdpvar(1,24)];%发电机无功
AA=binvar(37,1);%网架结构
A0=[ones(32,1);zeros(5,1)];%初始拓扑
assign(AA,A0);
Pin=-father*P+father*(I.*(r*ones(1,24)))+son*P;%节点注入有功
Qin=-father*Q+father*(I.*(x*ones(1,24)))+son*Q;%节点注入无功
P_tree=sdpvar(37,1);%虚拟有功
Pin_tree=-father*P_tree+son*P_tree;%虚拟节点注入有功
Ploss_total=sum(sum(I.*(r*ones(1,24))));%目标函数,网损最小
%约束条件
C1=[sum(AA)==32,U>=Umin,U<=Umax,Pg>=-Pgmax,Pg<=Pgmax,Qg>=-Qgmax,Qg<=Qgmax,I>=0,I<=0.11*AA*ones(1,24),-AA<=P_tree<=AA,-0.11*AA*ones(1,24)<=P<=0.11*AA*ones(1,24),-0.11*AA*ones(1,24)<=Q<=0.11*AA*ones(1,24)];%边界约束
C2=[Pin+Pload-Pg==0,Pin_tree(1:32)+0.01==0];%有功KCL约束
C3=[Qin+Qload-Qg==0];%无功KCL约束
C4=[-(1.07*1.07-0.93*0.93)*(1-AA)*ones(1,24)<=-U(Line(:,2),:)+U(Line(:,1),:)-2*(r*ones(1,24)).*P-2*(x*ones(1,24)).*Q+((r.^2+x.^2)*ones(1,24)).*I<=(1.07*1.07-0.93*0.93)*(1-AA)*ones(1,24)];%电压降落约束
C=[C1,C2,C3,C4];
toc%建模时间
ops=sdpsettings('solver','gurobi','usex0',1);
[model,recoverymodel,diagnostic,internalmodel] = export(C,Ploss_total,ops);%得到除去P^2+Q^2=UI的约束
params.Nonconvex=2;%启动gurobi非线性求解器
params.FeasibilityTol=1e-9;%由于gurobi采取的是双层模型,因此可行性步长应尽可能小
params.IntFeasTol=1e-9;%由于gurobi对非线性模型采用的是外嵌分支定界算法,相当于求解MIP问题,因此整数可行性要足够精确
params.Threads=8;%并行计算,8线程
L=length(model.obj);%决策变量数
%下面定义P^2+Q^2=UI的约束,模型为sum(Qval*x(Qrow)*x(Qcol))+q*x=rhs
for t=1:24
    for j=1:37
        model.quadcon(37*t-37+j).Qrow=[37*t-37+j,37*t-37+j+37*24,33*t-33+Line(j,1)+37*24*2];%P,Q,Uj
        model.quadcon(37*t-37+j).Qcol=[37*t-37+j,37*t-37+j+37*24,37*t-37+j+37*24*2+33*24];%P,Q,I
        model.quadcon(37*t-37+j).Qval=[1,1,-1];%P^2+Q^2-UI
        model.quadcon(37*t-37+j).q=sparse(L,1);
        model.quadcon(37*t-37+j).rhs=0;
        model.quadcon(37*t-37+j).sense='=';%严格等号

%定义变量
P=sdpvar(37,1);%线路有功
Q=sdpvar(37,1);%线路无功
U=sdpvar(33,1);%电压的平方
I=sdpvar(37,1);%电流的平方
Pg=[zeros(32,1);sdpvar];%发电机有功
Qg=[zeros(32,1);sdpvar];%发电机无功
AA=binvar(37,1);%网架结构
A0=[ones(32,1);zeros(5,1)];%初始拓扑
assign(AA,A0);
Pin=-father*P+father*(I.*r)+son*P;%节点注入有功
Qin=-father*Q+father*(I.*x)+son*Q;%节点注入无功
P_tree=sdpvar(37,1);%虚拟有功
Pin_tree=-father*P_tree+son*P_tree;%虚拟节点注入有功
Ploss_total=sum(I.*r);%目标函数,网损最小
%约束条件
C1=[sum(AA)==32,U>=Umin,U<=Umax,Pg>=-Pgmax,Pg<=Pgmax,Qg>=-Qgmax,Qg<=Qgmax,I>=0,I<=0.11*AA,-AA<=P_tree<=AA,-0.11*AA<=P<=0.11*AA,-0.11*AA<=Q<=0.11*AA];%边界约束
C2=[Pin+Pload-Pg==0,Pin_tree(1:32)+0.01==0];%有功KCL约束
C3=[Qin+Qload-Qg==0];%无功KCL约束
C4=[-(1.07*1.07-0.93*0.93)*(1-AA)<=-U(Line(:,2),:)+U(Line(:,1),:)-2*r.*P-2*x.*Q+(r.^2+x.^2).*I<=(1.07*1.07-0.93*0.93)*(1-AA)];%电压降落约束
C=[C1,C2,C3,C4];
toc%建模时间
ops=sdpsettings('solver','gurobi','usex0',1);
[model,recoverymodel,diagnostic,internalmodel] = export(C,Ploss_total,ops);%得到除去P^2+Q^2=UI的约束
params.Nonconvex=2;%启动gurobi非线性求解器
params.FeasibilityTol=1e-9;%由于gurobi采取的是双层模型,因此可行性步长应尽可能小
params.IntFeasTol=1e-9;%由于gurobi对非线性模型采用的是外嵌分支定界算法,相当于求解MIP问题,因此整数可行性要足够精确
params.Threads=8;%并行计算,8线程
L=length(model.obj);%决策变量数
%下面定义P^2+Q^2=UI的约束,模型为sum(Qval*x(Qrow)*x(Qcol))+q*x=rhs

🎉3 参考文献

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

[1]刘畅,王治邦,黎静华.考虑配电网重构的电-气联合传输网络规划[J].广西大学学报(自然科学版),2023,48(03):616-630.DOI:10.13624/j.cnki.issn.1001-7445.2023.0616.

[2]吴达雷.电动汽车规模化接入后配电网重构系统[J].机械设计与制造工程,2023,52(05):83-86.

[3]吴艳敏,程相,刘家旗.基于SA-CS算法的含分布式电源配电网优化重构[J].科学技术与工程,2023,23(02):626-632.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全与密码学

1、网络安全威胁 破坏网络安全的一些理论方式&#xff1a; 窃听&#xff1a;窃听信息&#xff0c;在网路通信双方直接进行窃听。 插入&#xff1a;主动在网络连接中插入信息&#xff08;可以在message中插入恶意信息&#xff09; 假冒&#xff1a;伪造&#xff08;spoof&#x…

SQLServer2022安装(Windows),已验证

二、安装可视化工具SSMS 接下来安装可视化工具SSMS&#xff0c;现在新版本默认都是没有可视化界面&#xff0c;需要单独安装 &#xff08;1&#xff09;地址&#xff1a;下载 SQL Server Management Studio (SSMS) - SQL Server Management Studio (SSMS) | Microsoft Learn…

LayUI之CRUD(增删改查)

目录 一、前期准备 1.数据表格 2.弹出层 3.用户表数据查询 二、用户管理后台编写 三、前端JS编写 四、效果展示 一、前期准备 1.数据表格 在layui官网找到我们需要的数据表格 根据需求复制修改代码&#xff0c;再找到表单复制一个输入框和按钮&#xff0c;做一个搜索功能…

语言模型的自洽性思维链推理技术

论文标题&#xff1a;Self-Consistency Improves Chain of Thought Reasoning in Language Models 论文链接&#xff1a;https://arxiv.org/abs/2203.11171 论文来源&#xff1a;ICLR 2023 一、概述 尽管语言模型在一系列NLP任务中展现出了显著的成功&#xff0c;但它们在推理能…

进制转换详解(解释原理简单易懂)

前言&#xff1a;在网上看了许多篇关于不同进制之间如何转换的文章&#xff0c;包括很多浏览量上万的博客。大多都只是把转换的规则罗列了出来&#xff0c;例如十进制转二进制&#xff0c;可能大家都知道方法&#xff0c;“除以2反向取余数&#xff0c;直到商为0”。应用该方法…

Kubespray v2.22.1 在线部署 kubernetes v1.26.5 集群

文章目录 1. 介绍2. 预备条件3. 配置 hostname4. yum5. 下载介质5.1 git 下载5.2 下载 kubespray v2.22.1 6. 编写 inventory.ini7. 配置互信8. 安装 ansible9. 关闭防火墙10. 安装 docker11. 配置内核参数12. 启动容器 kubespray13. 部署14. 配置连接集群 1. 介绍 kubespray​…

论文阅读—2023.7.13:遥感图像语义分割空间全局上下文信息网络(主要为unet网络以及改unet)附加个人理解与代码解析

前期看的文章大部分都是深度学习原理含量多一点&#xff0c;一直在纠结怎么改模型&#xff0c;论文看的很吃力&#xff0c;看一篇忘一篇&#xff0c;总感觉摸不到方向。想到自己是遥感专业&#xff0c;所以还是回归遥感影像去谈深度学习&#xff0c;回归问题&#xff0c;再想着…

5月更新,docsify综合漏洞知识库!

项目介绍 一个知识库&#xff0c;集成了Vulhub、Peiqi、EdgeSecurity、0sec、Wooyun等开源漏洞库&#xff0c;涵盖OA、CMS、开发框架、网络设备、开发语言、操作系统、Web应用、Web服务器、应用服务器等多种漏洞。 关注【Hack分享吧】公众号&#xff0c;回复关键字【230428】获…

spring boot security自定义认证

前言 前置阅读 spring boot security快速使用示例 spring boot security之前后端分离配置 说明 实际场景&#xff0c;我们一般是把用户信息保存在db中&#xff08;也可能是调用三方接口&#xff09;&#xff0c;需要自定义用户信息加载或认证部分的逻辑&#xff0c;下面提供…

bug:file name too long文件名超出系统最大限制

各操作系统支持最长的文件和目录名称长度&#xff08;Linux、Win、Mac&#xff09; 今天开发需求的时候发现无法新建文件&#xff0c;提示file name too lang&#xff0c;于是翻阅和查询了一些资料&#xff0c;发现不同操作系统下文件名和目录名最长的长度不同。 操作系统文件名…

小程序主包超1.5MB分包处理流程优化方案

"subPackages": [// 分包1 {"root": "src, // 根目录"pages": [{"path": "views/business/index", // 页面路径"name": "business_index","aliasPath": "/business/index",&…

make/makefile的使用

make/makefile 文章目录 make/makefile初步认识makefile的工作流程依赖关系和依赖方法make的使用 总结 make是一个命令&#xff0c;是一个解释makefile中指令的命令工具&#xff0c;makefile是一个文件&#xff0c;当前目录下的文件&#xff0c;两者搭配使用&#xff0c;完成项…

Python采集课堂视频教程, m3u8视频解密

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用&#xff1a; requests >>> pip install requests pycryptodome --> pip install pycryptodome re 第三方模块安装方法&#xff1a; win R 输…

7.14~7.15学习总结

Java的前置知识学习时间截至了&#xff0c;慌的一批~~。 看看自己学的&#xff0c;再看看要求学的&#xff0c;简直&#xff1a; 现在继续&#xff1a;IO流里面的Commons_IO的用法&#xff1a; public class Main {public static void main(String[]args) throws IOException…

【C++】多线程编程三(std::mutexstd::mutex、std::lock_guard、std::unique_lock详解)

目录 一、线程间共享数据 1.数据共享和条件竞争 2.避免恶性条件竞争 二、用互斥量来保护共享数据 1. 互斥量机制 2.mutex头文件介绍 三、C中使用互斥量mutex 1. 互斥量mutex使用 2.mutex类成员函数 ① 构造函数 ② lock() ③ unlock() ④ try_lock() 四、使用std::…

如何与ChatGPT愉快地聊天

原文链接&#xff1a;https://mp.weixin.qq.com/s/ui-O4CnT_W51_zqW4krtcQ 人工智能的发展已经走到了一个新的阶段&#xff0c;在这个阶段&#xff0c;人工智能可以像人一样与我们进行深度的文本交互。其中&#xff0c;OpenAI的ChatGPT是一个具有代表性的模型。然而&#xff0…

mac安装Golang开发环境及快速入门

目录 一、Mac brew 安装go环境 1.1 安装步骤 1.2 设置GOPATH 及环境变量 1.3 编写第一个go程序 二、快速入门 2.1 快速入门需求 2.2 go学习&#xff08;自用&#xff09; 2.2.1 go基础程序 2.2.2 变量声明 2.2.3 常量和枚举 2.2.4 函数与多种返回值 2.2.5 init函数…

18.Lucas-Kanade光流及OpenCV中的calcOpticalFlowPyrLK

文章目录 光流法介绍OpenCV中calcOpticalFlowPyrLK函数补充reference 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 光流法介绍 光流描述了像素在图像中的运动&#xff0c;就像彗星☄划过天空中流动图像。同一个像素&#xff0c;随着时…

手写对象浅比较(React中pureComponent和Component区别)

PureComponent和Component的区别 PureComponent会给类组件默认加一个shouldComponentUpdate这样的周期函数 //PureComponent类似自动加了这段shouldComponentUpdate(nextProps,nextState){let { props, state } this;// props/state:修改之前的属性状态// nextProps/nextState…

047、TiDB特性_TopSQL

TopSQL 之前 之前没有办法找单个TiKV Server的语句。只能查找整个集群的慢语句。 TopSQL之后 指定TiDB及TiKV实例正在执行的SQL语句CPU开销最多的Top 5 SQL每秒请求数、平均延迟等信息 TopSQL 使用 选择需要观察负载的具体TiDB Server或TiKV实例 观察Top 5 类SQL 查看某…