优化|深入解读DeepOPF:一种用于安全约束直流最优潮流问题的深度神经网络方法

原文信息(包括题目、发表期刊、原文链接等)
DeepOPF: A Deep Neural Network Approach for Security-Constrained DC Optimal Power Flow
https://ieeexplore.ieee.org/document/9205647

原文作者:Xiang Pan; Tianyu Zhao; Minghua Chen; Shengyu Zhang
论文解读者:唐博

编者按:


在当今这个数字化、智能化飞速发展的时代,深度学习技术以其强大的数据处理能力和模型泛化能力,为电力系统的优化提供了新的解决思路。本文将解读“DeepOPF: A Deep Neural Network Approach for Security-Constrained DC Optimal Power Flow”,带您深入了解一种创新的深度学习算法——DeepOPF,详细讨论其核心思想、技术细节以及实验验证。通过阅读本文,您将对这一前沿技术有的一定认识,了解它是如何在保证电力系统安全的同时,提高其求解效率。​

由于本人的研究方向不曾涉及到电力系统的优化问题,在这个领域的知识储备相当有限,因此文中关于电力系统的部分可能存在疏漏或不足之处。我在此诚恳地请求各位读者的宽容与理解,并热切期待您们提出宝贵的意见和建议。我衷心希望广大读者能够不吝赐教,与我共同探讨和交流。最后,我也要特别感谢赵田田和biubiu同学为这篇文章慷慨分享了建议和指正。

背景

最优潮流(Optimal Power Flow,OPF)是从电力系统优化运行的角度来调整系统中如发电机等各种控制设备的参数,以实现如发电成本的最小化的优化问题。在优化过程中,需要考虑电力系统中所有的物理、操作和技术约束条件。直流最优潮流(DC-OPF)作为一种简化模型,它基于假设电力系统的功率流遵循直流功率流方程。这种假设将最优潮流转化为一个凸优化问题,简化了求解过程。

这篇论文讨论的安全约束直流最优潮流问题(SC-DCOPF)则是直流最优潮流的一个变体,额外考虑了在各种潜在的故障(在不同场景 c c c下)情况下维持系统稳定的安全约束(3)。在模型的构建中,集合 G \mathcal{G} G是电力系统中所有可用的发电机;集合 C \mathcal{C} C囊括了系统可能遇到的所有正常和故障状态;集合 E \mathcal{E} E则是发电机之间所有传输线路:
min ⁡ P G , Θ ∑ i ∈ G g i ( P G i ) ( 1 ) s.t. P G i min ≤ P G i ≤ P G i max , ∀ i ∈ G ( 2 ) B c Θ c = P G − P D , ∀ c ∈ C ( 3 ) − 1 x i j , c ( θ i , c − θ j , c ) ≤ P T i j , c max , ∀ ( i , j ) ∈ E , ∀ c ∈ C ( 4 ) \begin{aligned} \min_{\mathbf{P_G}, \mathbf{\Theta}} & \sum_{i \in \mathcal{G}} g_i(P_{Gi}) & (1) \\ \text{s.t.} \quad & P_{Gi}^{\text{min}} \leq P_{Gi} \leq P_{Gi}^{\text{max}}, \quad \forall i \in \mathcal{G} & (2)\\ & \mathbf{B}_c \mathbf{\Theta}_c = \mathbf{P}_G - \mathbf{P}_D, \quad \forall c \in \mathcal{C} & (3)\\ & -\frac{1}{x_{ij,c}}(\theta_{i,c} - \theta_{j,c}) \leq P_{T_{ij,c}}^{\text{max}}, \quad \forall (i, j) \in \mathcal{E}, \quad \forall c \in \mathcal{C} & (4) \end{aligned} PG,Θmins.t.iGgi(PGi)PGiminPGiPGimax,iGBcΘc=PGPD,cCxij,c1(θi,cθj,c)PTij,cmax,(i,j)E,cC(1)(2)(3)(4)

对于这个问题,模型的决策变量包括发电机的发电功率 P G i ∈ R N P_{Gi} \in \mathbb{R}^N PGiRN和节点的电压相角 Θ ∈ R M × N \mathbf{\Theta} \in \mathbb{R}^{M \times N} ΘRM×N,并有如下目标函数和约束:

  • 目标函数是整个电力系统的总发电成本,即所有发电机的发电成本之和 ∑ i ∈ G g i ( P G i ) \sum_{i \in \mathcal{G}} g_i(P_{Gi}) iGgi(PGi)。其中, g i ( ⋅ ) g_i(\cdot) gi()是发电机的成本函数,通常被假设为一个二次函数。
  • 约束条件(2)要求每个发电机的输出功率 P G i P_{Gi} PGi必须在其允许的最小 P G i min P_{Gi}^{\text{min}} PGimin和最大 P G i max P_{Gi}^{\text{max}} PGimax范围内。
  • 约束条件(3)是节点功率平衡方程,对于每个可能的运故障状态 c ∈ C c \in \mathcal{C} cC(比如传输线中断),发电功率 P G ∈ R N \mathbf{P}_G \in \mathbb{R}^N PGRN与负载 P D ∈ R N \mathbf{P}_D \in \mathbb{R}^N PDRN之差等于传输功率,其中 B c ∈ R N × N \mathbf{B}_c \in \mathbb{R}^{N \times N} BcRN×N是情景 c c c下的导纳矩阵, Θ c ∈ R N \mathbf{\Theta}_c \in \mathbb{R}^N ΘcRN是情景 c c c下的电压相角向量。
  • 约束条件(4)确保每条传输线的电流不超过其容量限制,其中 x i j , c x_{ij,c} xij,c 是在情景 c c c下从节点 i i i到节点 j j j的线路电抗, P T i j , c max P_{T_{ij,c}}^{\text{max}} PTij,cmax是在情景 c c c下线路 ( i , j ) ∈ E (i,j) \in \mathcal{E} (i,j)E的最大传输容量。

虽然它本质上是一个凸二次问题,但由于其约束条件复杂、实际问题规模巨大、求解时间窗口短,传统的求解方法往往难以满足实时调度的要求。这就需要开发新的算法和技术,以提高求解效率。

主要贡献

在安全约束直流最优潮流问题(SC-DCOPF)的实际应用中,由于需要对同一电力网络进行多次重复求解(仅优化模型的一些系数有所不同),作者提出了一种创新的基于深度神经网络(DNN)的方法——DeepOPF。这是一种数据驱动的方法,可以有效利用历史数据。该方法采用了“预测后重建”的框架,首先利用神经网络预测发电功率 P G \mathbf{P}_G PG,随后通过求解物理约束(3)的线性等式方程组来计算电压相角 Θ \mathbf{\Theta} Θ。这一方法不仅减少了预测模型的输出维度,降低了模型的复杂度,而且确保了等式约束的自动满足,从而提高了求解效率和准确性。

在这里,神经网络以负载 P D \mathbf{P}_D PD为输入,发电功率 P G \mathbf{P}_G PG为输出(实际上网络输出的是发电量的比例因子 α i \alpha_i αi,详情见下一节)。这种应用基于万能近似定理(Universal Approximation Theorem),即神经网络理论上具备拟合任何函数的能力。作者分析了DeepOPF中负载 P D \mathbf{P}_D PD到发电功率 P G \mathbf{P}_G PG映射的近似误差,推导了神经网络近似这种映射时的误差下界,表明其下界随着网络层数的增加呈指数下降,而随着每层神经元数量的增加呈多项式下降。这一结果表明,更深层得神经网络在映射近似上理论上具有更高的精度。

虽然理论上DeepOPF模型的误差下界得到了证明,但实际训练过程中,由于依赖随机梯度下降算法,只能保证找到局部最优解,神经网络模型可能难以到达理论上所分析的误差下界。此外,深层神经网络在实际的训练中面临着一些挑战,包括训练难度大和容易过拟合的问题。

技术细节

数据采集:在训练阶段,论文通过均匀分布随机采样得到不同负载下的最优解作为训练数据。负载的采样范围设定在默认负载值的±10%内。接着,使用传统的二次规划求解器生成最优解,然后对训练数据进行归一化处理,以提高训练效率。对于规模较大的问题,获取足够的、具有代表性的训练数据数据可能依然是一个挑战。

模型输出:神经网络预测模型不直接输出发电功率 P G i P_{Gi} PGi,而是预测发电量的比例因子 α i \alpha_i αi。发电机的实际发电功率 P G i P_{Gi} PGi可以通过比例因子 α i \alpha_i αi与发电机的最小 P G i min P_{Gi}^{\text{min}} PGimin和最大 P G i max P_{Gi}^{\text{max}} PGimax输出之间的线性关系来计算。具体公式如下:
P G i = P G i min + α i ⋅ ( P G i max − P G i min ) . P_{Gi} = P_{Gi}^{\text{min}} + \alpha_i \cdot (P_{Gi}^{\text{max}} - P_{Gi}^{\text{min}}). PGi=PGimin+αi(PGimaxPGimin).
这种方法利用了发电功率的上下限,直接避免了预测值违反约束条件(2)的可能性,同时也将神经网络的输出值限定在0-1之间。

模型结构:这里的预测模型是一个多层感知机(multilayer perceptron),隐藏层采用ReLU作为激活函数,输出层使用Sigmoid函数以保证 α \alpha α输出值在0到1之间。模型的损失函数是 α \alpha α的实际值和预测值之间的均方误差(MSE),并将约束条件(4)——传输容量约束的惩罚纳入损失函数。因此这里存在一个软约束,预测值 α \alpha α存在违背约束条件(4)的可能性。需要注意的是,惩罚项的权重可能对模型的最终表现有显著影响。

相角重建:一旦确定了发电功率 P G \mathbf{P}_G PG,下一步是计算各节点的电压相角向量 Θ c ∈ R N \mathbf{\Theta}_c \in \mathbb{R}^N ΘcRN,以确保电力流的物理规律(3)得到满足。在电力系统中,调节节点(slack bus)是一个参考节点,其相角被设定为已知常数,因此可以不参与相角的计算过程。有了这一特性,我们可以移除导纳矩阵 B c \mathbf{B}_c Bc中的调节节点相关的行和列,形成一个矩阵 B ~ c \widetilde{\mathbf{B}}_c B c。利用这个缩减后的矩阵,我们可以求解除调节节点外其他节点的电压相角:
Θ ~ c = B ~ c − 1 ( P ~ G − P ~ D ) ( 5 ) \begin{aligned} \widetilde{\mathbf{\Theta}}_c = \widetilde{\mathbf{B}}_c^{-1} (\widetilde{\mathbf{P}}_G - \widetilde{\mathbf{P}}_D) \qquad (5) \end{aligned} Θ c=B c1(P GP D)(5)
这里, P ~ G ∈ R N − 1 \widetilde{\mathbf{P}}_G \in \mathbb{R}^{N-1} P GRN1 P ~ D ∈ R N − 1 \widetilde{\mathbf{P}}_D \in \mathbb{R}^{N-1} P DRN1分别表示除调节节点外其他所有节点的发电功率和负载需求。此外,正如论文“Transmission management in the deregulated environment”中所阐述的,矩阵 B ~ c \widetilde{\mathbf{B}}_c B c矩阵的列向量线性独立,这意味着矩阵 B ~ c \widetilde{\mathbf{B}}_c B c满秩。因此,矩阵 B ~ c \widetilde{\mathbf{B}}_c B c存在唯一的逆矩阵,有利于线性方程组(5)的求解。最后,为了得到完整的 N 维电压相角向量 Θ c \mathbf{\Theta}_c Θc,我们需要将调节节点的相角添加回去。这样,我们就得到了包含所有节点电压相角的完整向量。

可行性修正:由于约束条件(4)在DeepOPF是软约束,在得到模型的预测结果后,论文建议通过检查是否违反了传输线容量限制来验证解的可行性。如果发现不可行的情况,采用L1-投影方法修正解。L1-投影方法将求解如下线性规划问题:
min ⁡ P G ∥ P ^ G − P G ∥ 1 ( 6 ) s.t. P G satisfy (2)–(4) ( 7 ) \begin{aligned} \min_{\mathbf{P}_G} & \| \widehat{\mathbf{P}}_G - \mathbf{P}_G \|_1 & \qquad (6) \\ \text{s.t.} & \quad \mathbf{P}_G \text{ satisfy (2)–(4)} & \qquad(7) \end{aligned} PGmins.t.P GPG1PG satisfy (2)–(4)(6)(7)
这种后处理方法能显著减少重新求解原问题的计算成本,同时保持结果的可行性。不过,尽管这种方法将原本复杂度 O ( N 12 ) \mathcal{O}(N^{12}) O(N12)的二次规划降至复杂度 O ( N 7.5 ) \mathcal{O}(N^{7.5}) O(N7.5)的线性规划,但在大规模系统中,由于其固有的复杂性,可能仍然需要较多的计算资源。

实验验证

论文采用了四个IEEE标准测试用例(IEEE Case-30、57、118、300)来验证DeepOPF的性能。这些测试用例分别代表小规模、中规模和大规模电力网络。实验在不同的运行条件下进行了测试,包括典型运行条件、轻度拥塞和严重拥塞条件。此外,论文还对不同的神经网络规模和训练数据量进行了实验。

论文使用了可行解的百分比、目标成本、运行时间、(和用Gurobi直接求解的)加速比这四个主要指标来评价DeepOPF的性能。在典型运行条件下,DeepOPF在IEEE Case-30、57、118测试用例中产生了100%的可行解,并且相对于Gurobi求解器在计算时间上加速了2个数量级。在较大的IEEE Case-300中,虽然有18.3%的解不满足物理约束,但通过后处理步骤修正后,仍能获得可行解,并且整体的加速比依然保持在较高水平。在轻度和严重阻塞条件下,尽管未经后处理的DeepOPF产生的解无法满足所有约束,但经过后处理后,仍能获得100%的可行解。虽然后处理过程导致加速比有所下降,但DeepOPF与传统方法相比,仍然具有显著的性能优势。

总结

总体而言,DeepOPF利用神经网络直接输出优化问题的解。该方法首先通过在损失函数中引入惩罚项,模型能够以软约束的形式纳入特定的约束条件,从而在训练过程中自然地引导解向可行域靠拢。其次,模型的设计允许它隐式地满足某些特定约束。此外,对于等式约束,DeepOPF通过求解线性方程组来确保其得到满足。这一系列技术的组合具有广泛的适应性,能够扩展到一些其他类型的优化问题上,例如,交流最优潮流问题(AC-OPF)、供应链优化、投资组合,甚至在一些传统方法难以轻松求解的非凸优化问题都有应用的潜力。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习-聚类

http://en.wikipedia.org/wiki/Multispectral_pattern_recognition 聚类基础知识 凝层次聚类 K-means 聚类 基于EM算法的聚类 聚类基础知识 聚类:将数据划分到不同的类里,使相似的数据在同一类里,不相似的数据在不同的类里(物…

芝法酱学习笔记(0.5)——使用jenkins做自动打包

前言 上节讲了SpringBoot上的打包。但这些过程都是手动的,在实际的开发测试时,自动化的打包部署,可以大大提升团队开发的效率 一、去官网下载 1.1 官网安装命令 对于如何安装的问题,我向来推荐官网 wget -O /usr/share/keyri…

ThreeJs绘制圆柱体

上一章节实现了圆锥体的绘制,这节来绘制圆柱体,圆柱体就是矩形旋转获得,如上文一样,先要创建出基础的组件,包括场景,相机,灯光,渲染器。代码如下: initScene() {this.sce…

【vue-router】用meta.keepAlive做缓存

网上大家都说按下面的写法 <keep-alive><router-view v-if"route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if"!route.meta.keepAlive"></router-view>但是会报错 解决方法也没找到 最后换一…

Java项目实战II基于Java+Spring Boot+MySQL的学院班级回忆录(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 在时光的长河中&#xff0c;班级的记忆如同璀璨星辰&#xff0c;照亮了我们共同的青春岁月。为了珍藏…

鼎跃安全丨多功能气体检测报警系统:工业安全守护者

在工业快速发展的今天&#xff0c;各种复杂的生产环境中潜藏着诸多安全隐患。尤其在石油化工企业中&#xff0c;易燃易爆的气体随时可能引发危险&#xff1b;矿山作业里&#xff0c;有毒有害气体的风险更是持续不断&#xff1b;而制药等行业也面临着各类气体泄漏的风险。如何灵…

基于 LangChain 的自动化测试用例的生成与执行

在前面的章节中&#xff0c;分别介绍了 Web、App、接口自动化测试用例的生成。但是在前文中实现的效果均为在控制台打印自动化测试的用例。用例需要手动粘贴&#xff0c;调整之后再执行。 那么其实这个手动粘贴、执行的过程&#xff0c;也是可以直接通过人工智能完成的。 应用…

搭建基于H.265编码的RTSP推流云服务器

一、前言 网上能够找到的RTSP流地址&#xff0c;均是基于H.264编码的RTSP流地址&#xff0c;无法测试应用是否可以播放H265实时流为此&#xff0c;搭建本地的把H.264转码成H.265的RTSP服务器&#xff0c;不管是通过VLC搭建本地RTSP服务器&#xff0c;还是通过FFmpeg搭建本地RT…

Linux-du命令使用方法

Linux-du&#xff08;disk useage&#xff09;命令 du 命令用于查看文件和目录占用的磁盘空间。 du [选项] [文件或目录]-h (human-readable)&#xff1a; 将输出格式转为人类可读的形式&#xff0c;使用 KB、MB 等单位。 du -h /path/to/directory1.5M /path/to/directory…

如何在IDEA中使用Rainbow Fart

啥是Rainbow Fart GitHub上的中文README文件 安装 首先&#xff0c;我们在Setting的Plugins的Marketplace里搜索Rainbow Fart并install 这一步极其简单&#xff0c;我相信每个人都能做到&#xff0c;不详讲了。 配置 这是大部分小伙伴都想搞清楚的点&#xff0c;也不能说我…

研究生如何利用ChatGPT帮助开展日常科研工作?

小白可做&#xff01;全自动AI影视解说一键成片剪辑工具https://docs.qq.com/doc/DYnl6d0FLdHp0V2ll 作为当代研究生&#xff0c;科研工作三部曲----读文献、开组会、数据分析。无论哪一个&#xff0c;都令研究生们倍感头疼&#xff0c;简直就是梦魇。每当看到导师发来的消息&a…

JavaScript 中变量命名的最佳实践

全篇大概1500 字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间5分钟。 1. 避免使用 var 关键字&#xff1a;过时的产物 在现代 JavaScript 中&#xff0c;我们通常避免使用 var&#xff0c;而是选择 let 和 const&#xff0c;它们提供更可预测和块范围的行为&#x…

PTH原理 补丁+工具

顺着《域渗透攻防指南》4.9的总结记录下。 0x00 PTH简单说明 PTH在内网渗透中用于横向移动。由于NTLM && Kerberos都是采用用户密码的NTLM Hash&#xff0c;所以我们不需要非得拿用户明文口令&#xff0c;拿到hash一样可以。 拿到hash后&#xff0c;可以撞hash&…

C++不同的头文件中各种函数的操作使用(长期更新,找到新的就补充进来)

一、万能头文件 #include <bits/stdc.h> 万能头文件中包含的内容 // C #ifndef _GLIBCXX_NO_ASSERT #include <cassert> #endif #include <cctype> #include <cerrno> #include <cfloat> #include <ciso646> #include <climits> #in…

leetcode每日一题day17(24.9.27)——每种字符最少取k个

思路&#xff1a;看到题目就想到了搜索&#xff0c; 广搜&#xff1a;满足要求就往后搜&#xff0c;最后返回搜索队列达到过的最大深度&#xff0c; 深搜&#xff1a;一直往一边取&#xff0c;搜索完所有可能&#xff0c;并在此基础上进行剪枝&#xff0c;剪枝方案有如果某一分…

Windows环境部署Oracle 11g

Windows环境部署Oracle 11g 1.安装包下载2. 解压安装包3. 数据库安装3.1 执行安装脚本3.2 电子邮件设置3.3 配置安装选项3.4 配置系统类3.5 选择数据库安装类型3.6 选择安装类型3.7 数据库配置3.8 确认安装信息3.9 设置口令 Oracle常用命令 2023年10月中旬就弄出大致的文章&…

如何在Unity WebGL上实现一套全流程简易的TextureStreaming方案

项目介绍 《云境》是一款使用Unity引擎开发的WebGL产品&#xff0c;有展厅&#xff0c;剧本&#xff0c;Avatar换装&#xff0c;画展&#xff0c;语音聊天等功能&#xff0c;运行在微信小程序和PC&#xff0c;移动端网页&#xff0c;即开即用。 当前问题和现状 当前项目…

【质优价廉】GAP9 AI算力处理器赋能智能可听耳机,超低功耗畅享未来音频体验!

当今世界&#xff0c;智能可听设备已经成为了流行趋势。随后耳机市场的不断成长起来&#xff0c;消费者又对AI-ANC&#xff0c;AI-ENC&#xff08;环境噪音消除&#xff09;降噪的需求逐年增加&#xff0c;但是&#xff0c;用户对于产品体验的需求也从简单的需求&#xff0c;升…

mbedtls错误记录

0x2180 证书格式无效&#xff0c;可以检查证书的格式是否正确&#xff0c;或传入的证书长度是否正确 mbedtls_x509_crt_parse-》mbedtls_x509_crt_parse_der-》x509_crt_parse_der_core-》mbedtls_x509_get_sig_alg-》return( MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG ret ); 所以26…

LampSecurityCTF7 靶机渗透 (sql 注入, 文件上传, 密码喷射)

靶机介绍 LampSecurityCTF7&#xff0c;vulnhub 靶机 主机发现 由于靶机配置问题&#xff0c;扫不到 ip 这里需要特别注意一下&#xff0c;在第一次启动打开靶机的时候&#xff0c;vmware会跳出一个提示框&#xff0c;让你选择我已复制该虚拟机/我已移动该虚拟机&#xff0c…