【配电网重构】基于混合整数二阶锥配电网重构研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,a半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
随着经济快速增长,电力需求急剧增加,这给输配电网带来了巨大的扩容投资压力[1]。电力系统高峰负荷十分集中,要满足尖峰段负荷需求, 就必须加大系统容量建设,这不仅带来了巨大的投资要求,也使得电网现有的设备利用率低下,部分设备只在高峰时段运行。配电网多采用环状结构,开环运行,在配电线路沿馈线设有一定数量的常闭分段开关,馈线之间装有常开的联络开关。配电网重构技术不需增加额外投资,只需调整配电网中的开关状态,就可达到优化运行结构、平衡电力负荷、降低网络损耗、提高 电 压 质 量 的 目 的。理论上,任 何 一 个 配电网都存在一个最优的网络结构,在这个最优结构下,各负荷点的运行电压、网络损耗和负荷平衡的协调均优于其
他可行方案。当负荷变化时,这个最优结构也将变化,因此计算出这个最优结构,以使配电网尽可能地运行在最优状态。
主动配电网进行网络重构的目标有多种,主要包括:降低网络有功损耗,降低系统一定时间段内能量损耗,使线路负载均衡,提高系统供电可靠性,以及提高电压稳定性等。对应的优化目标函数可以用如下数学形式进行表示。

📚2 运行结果


IEEE33节点:
function mpc = IEEE33%% MATPOWER Case Format : Version 2
mpc.version = '2';%%----- Power Flow Data -----%%
%% system MVA base
mpc.baseMVA = 10;%% bus data
% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin
mpc.bus = [ %% (Pd and Qd are specified in kW & kVAr here, converted to MW & MVAr below)1 3 0 0 0 0 1 1 0 12.66 1 1 1;2 1 100 60 0 0 1 1 0 12.66 1 1.1 0.9;3 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;4 1 120 80 0 0 1 1 0 12.66 1 1.1 0.9;5 1 60 30 0 0 1 1 0 12.66 1 1.1 0.9;6 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;7 1 200 100 0 0 1 1 0 12.66 1 1.1 0.9;8 1 200 100 0 0 1 1 0 12.66 1 1.1 0.9;9 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;10 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;11 1 45 30 0 0 1 1 0 12.66 1 1.1 0.9;12 1 60 35 0 0 1 1 0 12.66 1 1.1 0.9;13 1 60 35 0 0 1 1 0 12.66 1 1.1 0.9;14 1 120 80 0 0 1 1 0 12.66 1 1.1 0.9;15 1 60 10 0 0 1 1 0 12.66 1 1.1 0.9;16 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;17 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;18 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;19 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;20 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;21 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;22 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;23 1 90 50 0 0 1 1 0 12.66 1 1.1 0.9;24 1 420 200 0 0 1 1 0 12.66 1 1.1 0.9;25 1 420 200 0 0 1 1 0 12.66 1 1.1 0.9;26 1 60 25 0 0 1 1 0 12.66 1 1.1 0.9;27 1 60 25 0 0 1 1 0 12.66 1 1.1 0.9;28 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;29 1 120 70 0 0 1 1 0 12.66 1 1.1 0.9;30 1 200 600 0 0 1 1 0 12.66 1 1.1 0.9;31 1 150 70 0 0 1 1 0 12.66 1 1.1 0.9;32 1 210 100 0 0 1 1 0 12.66 1 1.1 0.9;33 1 60 40 0 0 1 1 0 12.66 1 1.1 0.9;
];%% generator data
% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf
mpc.gen = [1 0 0 10 -10 1 100 1 10 0 0 0 0 0 0 0 0 0 0 0 0;
];%% branch data
% fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax
mpc.branch = [ %% (r and x specified in ohms here, converted to p.u. below)1 2 0.0922 0.0470 0 0 0 0 0 0 1 -360 360;2 3 0.4930 0.2511 0 0 0 0 0 0 1 -360 360;3 4 0.3660 0.1864 0 0 0 0 0 0 1 -360 360;4 5 0.3811 0.1941 0 0 0 0 0 0 1 -360 360;5 6 0.8190 0.7070 0 0 0 0 0 0 1 -360 360;6 7 0.1872 0.6188 0 0 0 0 0 0 1 -360 360;7 8 0.7114 0.2351 0 0 0 0 0 0 1 -360 360;8 9 1.0300 0.7400 0 0 0 0 0 0 1 -360 360;9 10 1.0440 0.7400 0 0 0 0 0 0 1 -360 360;10 11 0.1966 0.0650 0 0 0 0 0 0 1 -360 360;11 12 0.3744 0.1238 0 0 0 0 0 0 1 -360 360;12 13 1.4680 1.1550 0 0 0 0 0 0 1 -360 360;13 14 0.5416 0.7129 0 0 0 0 0 0 1 -360 360;14 15 0.5910 0.5260 0 0 0 0 0 0 1 -360 360;15 16 0.7463 0.5450 0 0 0 0 0 0 1 -360 360;16 17 1.2890 1.7210 0 0 0 0 0 0 1 -360 360;17 18 0.7320 0.5740 0 0 0 0 0 0 1 -360 360;2 19 0.1640 0.1565 0 0 0 0 0 0 1 -360 360;19 20 1.5042 1.3554 0 0 0 0 0 0 1 -360 360;20 21 0.4095 0.4784 0 0 0 0 0 0 1 -360 360;21 22 0.7089 0.9373 0 0 0 0 0 0 1 -360 360;3 23 0.4512 0.3083 0 0 0 0 0 0 1 -360 360;23 24 0.8980 0.7091 0 0 0 0 0 0 1 -360 360;24 25 0.8960 0.7011 0 0 0 0 0 0 1 -360 360;6 26 0.2030 0.1034 0 0 0 0 0 0 1 -360 360;26 27 0.2842 0.1447 0 0 0 0 0 0 1 -360 360;27 28 1.0590 0.9337 0 0 0 0 0 0 1 -360 360;28 29 0.8042 0.7006 0 0 0 0 0 0 1 -360 360;29 30 0.5075 0.2585 0 0 0 0 0 0 1 -360 360;30 31 0.9744 0.9630 0 0 0 0 0 0 1 -360 360;31 32 0.3105 0.3619 0 0 0 0 0 0 1 -360 360;32 33 0.3410 0.5302 0 0 0 0 0 0 1 -360 360;21 8 2.0000 2.0000 0 0 0 0 0 0 0 -360 360;9 15 2.0000 2.0000 0 0 0 0 0 0 0 -360 360;12 22 2.0000 2.0000 0 0 0 0 0 0 0 -360 360;18 33 0.5000 0.5000 0 0 0 0 0 0 0 -360 360;25 29 0.5000 0.5000 0 0 0 0 0 0 0 -360 360;
];%%----- OPF Data -----%%
%% generator cost data
% 1 startup shutdown n x1 y1 ... xn yn
% 2 startup shutdown n c(n-1) ... c0
mpc.gencost = [2 0 0 3 0 20 0;
];%% convert branch impedances from Ohms to p.u.
[PQ, PV, REF, NONE, BUS_I, BUS_TYPE, PD, QD, GS, BS, BUS_AREA, VM, ...VA, BASE_KV, ZONE, VMAX, VMIN, LAM_P, LAM_Q, MU_VMAX, MU_VMIN] = idx_bus;
[F_BUS, T_BUS, BR_R, BR_X, BR_B, RATE_A, RATE_B, RATE_C, ...TAP, SHIFT, BR_STATUS, PF, QF, PT, QT, MU_SF, MU_ST, ...ANGMIN, ANGMAX, MU_ANGMIN, MU_ANGMAX] = idx_brch;
Vbase = mpc.bus(1, BASE_KV) * 1e3; %% in Volts
Sbase = mpc.baseMVA * 1e6; %% in VA
mpc.branch(:, [BR_R BR_X]) = mpc.branch(:, [BR_R BR_X]) / (Vbase^2 / Sbase);%% convert loads from kW to MW
mpc.bus(:, [PD, QD]) = mpc.bus(:, [PD, QD]) / 1e3;
function mpc = IEEE33
%% MATPOWER Case Format : Version 2
mpc.version = '2';%%----- Power Flow Data -----%%
%% system MVA base
mpc.baseMVA = 10;%% bus data
% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin
mpc.bus = [ %% (Pd and Qd are specified in kW & kVAr here, converted to MW & MVAr below)
1 3 0 0 0 0 1 1 0 12.66 1 1 1;
2 1 100 60 0 0 1 1 0 12.66 1 1.1 0.9;
3 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;
4 1 120 80 0 0 1 1 0 12.66 1 1.1 0.9;
5 1 60 30 0 0 1 1 0 12.66 1 1.1 0.9;
6 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;
7 1 200 100 0 0 1 1 0 12.66 1 1.1 0.9;
8 1 200 100 0 0 1 1 0 12.66 1 1.1 0.9;
9 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;
10 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;
11 1 45 30 0 0 1 1 0 12.66 1 1.1 0.9;
12 1 60 35 0 0 1 1 0 12.66 1 1.1 0.9;
13 1 60 35 0 0 1 1 0 12.66 1 1.1 0.9;
14 1 120 80 0 0 1 1 0 12.66 1 1.1 0.9;
15 1 60 10 0 0 1 1 0 12.66 1 1.1 0.9;
16 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;
17 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;
18 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;
19 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;
20 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;
21 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;
22 1 90 40 0 0 1 1 0 12.66 1 1.1 0.9;
23 1 90 50 0 0 1 1 0 12.66 1 1.1 0.9;
24 1 420 200 0 0 1 1 0 12.66 1 1.1 0.9;
25 1 420 200 0 0 1 1 0 12.66 1 1.1 0.9;
26 1 60 25 0 0 1 1 0 12.66 1 1.1 0.9;
27 1 60 25 0 0 1 1 0 12.66 1 1.1 0.9;
28 1 60 20 0 0 1 1 0 12.66 1 1.1 0.9;
29 1 120 70 0 0 1 1 0 12.66 1 1.1 0.9;
30 1 200 600 0 0 1 1 0 12.66 1 1.1 0.9;
31 1 150 70 0 0 1 1 0 12.66 1 1.1 0.9;
32 1 210 100 0 0 1 1 0 12.66 1 1.1 0.9;
33 1 60 40 0 0 1 1 0 12.66 1 1.1 0.9;
];
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]朱俊澎. 主动配电网重构与孤岛划分研究[D].东南大学,2018.
[2]葛鹏江,张树永,董晓晶,靳盘龙.基于鲁棒优化的配网重构二阶锥规划模型[J].电力科学与技术学报,2018,33(04):50-57.
[3]荣德生,胡举爽.配电网重构的凸模型[J].电源学报,2016,14(03):131-136.DOI:10.13234/j.issn.2095-2805.2016.3.131.
[4]向佳霓,赵建立,顾霈,王隗东,陈珂,张洪志.考虑需求响应的配电网重构经济性和可靠性研究[J].电工技术,2022(19):20-23.DOI:10.19768/j.cnki.dgjs.2022.19.006.
🌈4 Matlab代码实现
相关文章:
【配电网重构】基于混合整数二阶锥配电网重构研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Kubernetes mysql 实战以及外部存储处理 [一]
在 Kubernetes 中部署 MySQL 数据库需要考虑以下几个方面: 部署方式:可以选择使用 StatefulSet 或者 Deployment 进行部署,如果需要有状态的服务,使用 StatefulSet 更加合适。存储:MySQL 需要一个持久化存储来保存数据。可以使用 Kubernetes 提供的 PersistentVolumeClaim…...
使用【Python+Appium】实现自动化测试
一、环境准备 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境,path添加E:\Software\Android_SDK\platform-tools 4.安装Appium for windows,官网地址 Redirecting 点击下载按钮会到GitHub的…...
位图和布隆过滤器
位图和布隆过滤器 位图的概念位图的简单模拟实现位图set位图reset位图test 位图总的代码和实现位图的应用布隆过滤器布隆过滤器的简单实现相关操作讨论布隆过滤器的结构设计布隆过滤器插入布隆过滤器查找 布隆过滤器总代码 布隆过滤器优点和缺陷海量数据面试题哈希切割位图应用…...
Eclipse 教程Ⅳ
Eclipse 工作空间(Workspace) eclipse 工作空间包含以下资源: 项目文件文件夹 项目启动时一般可以设置工作空间,你可以将其设置为默认工作空间,下次启动后无需再配置: 工作空间(Workspace)有明显的层次结构。 项目在最顶级&…...
Webpack搭建本地服务器
1 开启本地服务器 2 HMR热模块替换 3 devServer配置 4 开发和生成环境 需要本地服务的目的就在每次我们保存项目源文件的时候都可以自动打包新的打包文件, 这里主要讲webpack-dev-server: 先安装: npm install webpack-dev-server -D 需要…...
基于Go开发PaaS平台3
Go开发PaaS平台核心功能 代码仓库地址GitHub - yunixiangfeng/gopaas 10-18 中间件前端页面以及核心API开发(中) C:\Users\Administrator\Desktop\gopaas\middlewareapi\handler\middlewareApiHandler.go package handlerimport ("context"…...
虎牙直播在微服务改造的实践总结
博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面…...
设置线程池的大小
线程池的理想大小取决于被提交任务的类型以及所部署系统的特性。在代码中通常不会固定线程池的大小,而应该通过某种配置机制来提供,或者根据Runtime. availableProcessors来动态计算。 幸运的是,要设置线程池的大小也并不困难,只需要避免“过大”和“过…...
Vue3 除了 keep-alive,还有哪些实现页面缓存的方法
有这么一个需求:列表页进入详情页后,切换回列表页,需要对列表页进行缓存,如果从首页进入列表页,就要重新加载列表页。 对于这个需求,我的第一个想法就是使用keep-alive来缓存列表页,列表和详情…...
JavaScript闭包
定义 定义:在计算机科学中,闭包(Closure)是一个函数及其相关引用环境组合而成的实体。简单来说,闭包是指一个函数以及该函数访问的外部变量的集合。在一些编程语言中,函数可以访问在其定义时所处的上下文中…...
华为OD机试之不含101的整数(Java源码)
不含101的数 题目描述 小明在学习二进制时,发现了一类不含 101的数,也就是: 将数字用二进制表示,不能出现 101 。 现在给定一个整数区间 [l,r] ,请问这个区间包含了多少个二进制不含 101 的整数? 输入描述…...
SpringCloud Ribbon 学习
SpringCloud Ribbon 学习 文章目录 SpringCloud Ribbon 学习1. Ribbon 是什么?2. LB(Load Balance)3 Ribbon 架构图&机制4 Ribbon 常见负载均衡算法5 测试 1. Ribbon 是什么? Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端 负载均衡…...
预告:XuperOS Global 国际化进展
XuperOS新年致辞中,我们提到XuperOS成长计划的最后一个阶段是国际化。伴随前三个阶段创世、监督、共建先后落地,很多用户特来咨询XuperOS国际化进展,我们在此统一说明。 按照之前的规划,XuperOS将在海外部署一条新的开放链XuperOS…...
炫技操作--递归实现翻转链表(java)
递归实现链表的逆序 leetcode 206题。 翻转链表递归解法普通方式实现链表翻转链表专题 leetcode 206题。 翻转链表 leetcode链接用于测试 题目:描述 将一个链表翻转: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 递归解法 解题思路…...
华为OD机试真题 Java 实现【求最小公倍数】【牛客练习题】
一、题目描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。 数据范围:1≤a,b≤100000 。 二、输入描述 输入两个正整数A和B。 三、输出描述 输出A和B的最小公倍数。 四、解…...
[java]两数之和 II - 输入有序数组
两数之和 II - 输入有序数组 leetcode 167 原题链接解题思路解题代码排序专题 leetcode 167 原题链接 167. 两数之和 II - 输入有序数组 – 原题链接 题目描述: 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出…...
Linux-0.11 boot目录head.s详解
Linux-0.11 boot目录head.s详解 模块简介 在head.s中,操作系统主要做了如下几件事: 重新设置中断描述符和全局描述符检查A20地址线是否开启检查数学协处理器初始化页表并开启分页跳转到main函数执行 过程详解 重新设置IDT和GDT 在setup.s中我们已经…...
离散数学_十章-图 ( 3 ):由旧图构造新图
📷10.3 由旧图构造新图 概念1. 子图2. 真子图3. 导出的子图 旧图构造新图的方法1. 删除或增加图中的边2. 边的收缩3. 删除顶点 有时解决问题只需要图的一部分。 比如我们现在只关心大型计算机网络中涉及济南,广州,深圳的计算机中心࿰…...
Golang每日一练(leetDay0083) 汇总区间、多数元素II
目录 228. 汇总区间 Summary Ranges 🌟 229. 多数元素 II Majority Element ii 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

