当前位置: 首页 > news >正文

基于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代码实现

相关文章:

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

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

yolo系列笔记(v4-v5)

YOLOv4 YOLOv4网络详解_哔哩哔哩_bilibili 网络结构&#xff0c;在Yolov3的Darknet的基础上增加了CSP结构。 CSP的优点&#xff1a; 加强CNN的学习能力 去除计算瓶颈。 减少显存的消耗。 结构为&#xff1a; 、 其实还是类似与残差网络的结构&#xff0c;保留下采样之前…...

小白如何高效刷题Leetcode?

文章目录 为什么会有这样的现象&#xff1f;研究与学习人生而有别 如何解决困境&#xff1f;1. 要补的&#xff1a;化抽象为具体&#xff0c;列举找规律2. 要补的&#xff1a;前人总结的套路3. 与人交流探讨4. 多写总结文章 总结 明明自觉学会了不少知识&#xff0c;可真正开始…...

使用IDEA打jar包的详细图文教程

1. 点击intellij idea左上角的“File”菜单 -> Project Structure 2. 点击"Artifacts" -> 绿色的"" -> “JAR” -> Empty 3. Name栏填入自定义的名字&#xff0c;Output ditectory 选择 jar 包目标目录&#xff0c;Available Elements 里右击…...

《MySQL 实战 45 讲》课程学习笔记(二)

日志系统&#xff1a;一条 SQL 更新语句是如何执行的&#xff1f; 与查询流程不一样的是&#xff0c;更新流程还涉及两个重要的日志模块&#xff1a;redo log&#xff08;重做日志&#xff09;和 binlog&#xff08;归档日志&#xff09;。 重要的日志模块&#xff1a;redo l…...

微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者

作为全新的神经网络架构&#xff0c;RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示&#xff0c;在语言建模任务上&#xff1a; RetNet 可以达到与…...

探索单例模式:设计模式中的瑰宝

文章目录 常用的设计模式有以下几种&#xff1a;一.创建型模式&#xff08;Creational Patterns&#xff09;&#xff1a;二.结构型模式&#xff08;Structural Patterns&#xff09;&#xff1a;三.行为型模式&#xff08;Behavioral Patterns&#xff09;&#xff1a;四.并发…...

Bobo String Construction 2023牛客暑期多校训练营4-A

登录—专业IT笔试面试备考平台_牛客网 题目大意&#xff1a;给出一字符串t&#xff0c;求一个长为n的字符串&#xff0c;使tst中包含且仅包含两个t 1<n<1000;测试样例组数<1000 思路&#xff1a;一开始很容易想到如果t里有1&#xff0c;s就全0&#xff0c;否则s就全…...

【React学习】React父子组件通讯

1. 父到子传值 在React框架中&#xff0c;父组件可以通过 props 将数据传递给子组件。子组件通过读取 props 来访问父组件传递过来的数据。 当父组件的 props 发生变化时&#xff0c;React 会自动重新渲染子组件以确保子组件中使用的数据保持同步。 父组件 import React, {…...

NASM汇编

1. 前置知识 1. 汇编语言两种风格 intel&#xff1a;我们学的NASM就属于Intel风格AT&T&#xff1a;GCC后端工具默认使用这种风格&#xff0c;当然我们也可以加选项改成intel风格 2. 代码 1. 段分布 .text: 存放的是二进制机器码&#xff0c;只读.data: 存放有初始化的…...

第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

文章目录 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面使用 HL7 架构结构页面查看文档类型列表查看消息结构查看段结构 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面 使用 HL7 架构结构页面 通过 HL7 架构页面&#xff0c;可以导入和查看 HL7 版本 2 架构规范。…...

spring注解驱动开发(一)

1、需要导入的spring框架的依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.12.RELEASE</version></dependency>2、Configuration 设置类为配置类 3、Annota…...

Vue3搭建启动

Vue3搭建&启动 一、创建项目二、启动项目三、配置项目1、添加编辑器配置文件2、配置别名3、处理sass/scss4、处理tsx(不用的话可以不处理) 四、添加Eslint 一、创建项目 npm create vite 1.project-name 输入项目名vue3-vite 2.select a framework 选择框架 3.select a var…...

阻塞队列(模拟实现)

概念 阻塞队列是带有阻塞功能的队列 特性 当队列满的时候&#xff0c;继续入队列&#xff0c;就会出现阻塞&#xff0c;阻塞到其他线程从队列中取走元素为止 当队列空的时候&#xff0c;继续出队列&#xff0c;也会发生阻塞&#xff0c;阻塞到其他线程往队列中添加元素为止 特…...

VScode中python的相对路径与绝对路径 FileNotFoundError: [Errno 2] No such file or directory

VScode中&#xff0c;python里的相对路径是相对于当前工作目录来定位的&#xff0c;而当前的工作目录在VScode中下方的终端窗口会有提示&#xff1a; 说明此时的工作目录并非当前python文件所在的目录&#xff0c;而是C:\Users\xxxxx(你的用户名)。因此&#xff0c;使用VScode…...

Unity XML2——C#读写XML

一、XML 文件的存放位置 &#xff08;一&#xff09;只读不写的 XML ​ 放在 Resouces 或者 StreamingAssets 文件夹下&#xff0c;详见 Unity基础3——Resources资源动态加载_weixin_53163894的博客-CSDN博客。 &#xff08;二&#xff09;动态存储的 XML ​ 放在 Applica…...

带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)

带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库&#xff0c;编译出的库适合香橙派&#xff0c;这时候交叉编译可执行程序的平台和链接库的格式也是正确的&#xff0c;然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置&#xff0c;但是现在还没有学习过&#xf…...

数据仓库基础知识

什么是数据仓库&#xff1f; 数仓&#xff0c;DataWarehouse&#xff0c;是一个 面向主题的、集成的、稳定的、与时间相关的 数据集合。 而这个数据集合的建立&#xff0c;是为了支持管理者的决策过程。 也就是说&#xff0c;我们通过建设数仓&#xff0c;为业务中的流程改进、…...

M 芯片的 macos 系统安装虚拟机 centos7 网络配置

centos 安装之前把网络配置配好或者是把网线插好 第一步找到这个 第二步打开网络适配器 选择图中所指位置 设置好之后 开机启动 centos 第三步 开机以后 编写网卡文件保存 重启网卡就可以了&#xff0c;如果重启网卡不管用&#xff0c;则重启虚拟机即可 “ ifcfg-ens160 ” 这…...

AcWing 3708. 求矩阵的鞍点

输入样例&#xff1a; 3 4 1 2 3 4 1 2 3 4 1 2 3 4输出样例&#xff1a; 1 4 4 2 4 4 3 4 4 #include<bits/stdc.h> using namespace std; const int N1010; int n,m,a[N][N],x[N],y[N],flag1; int main(){scanf("%d%d",&n,&m);for(int i1;i<n;i…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...