CN108879691B - 一种大规模连续潮流计算的方法及装置 - Google Patents
一种大规模连续潮流计算的方法及装置 Download PDFInfo
- Publication number
- CN108879691B CN108879691B CN201810646054.3A CN201810646054A CN108879691B CN 108879691 B CN108879691 B CN 108879691B CN 201810646054 A CN201810646054 A CN 201810646054A CN 108879691 B CN108879691 B CN 108879691B
- Authority
- CN
- China
- Prior art keywords
- load
- parallel
- parallel thread
- working condition
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 claims abstract description 106
- 239000013598 vector Substances 0.000 claims description 37
- 238000010248 power generation Methods 0.000 claims description 30
- 239000011159 matrix material Substances 0.000 claims description 23
- 238000006467 substitution reaction Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000005283 ground state Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001575 pathological effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02J—CIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
- H02J3/00—Circuit arrangements for ac mains or ac distribution networks
- H02J3/04—Circuit arrangements for ac mains or ac distribution networks for connecting networks of the same frequency but supplied from different sources
- H02J3/06—Controlling transfer of power between connected networks; Controlling sharing of load between connected networks
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02J—CIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
- H02J2203/00—Indexing scheme relating to details of circuit arrangements for AC mains or AC distribution networks
- H02J2203/20—Simulating, e g planning, reliability check, modelling or computer assisted design [CAD]
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Supply And Distribution Of Alternating Current (AREA)
Abstract
本发明实施例提供一种大规模连续潮流计算的方法及装置,所述方法包括:根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。所述装置执行上述方法。本发明实施例提供的方法及装置,能够提高连续潮流计算的计算效率。
Description
技术领域
本发明实施例涉及电力***技术领域,具体涉及一种大规模连续潮流计算的方法及装置。
背景技术
随着新能源电源和新型负载的接入以及电网规模的不断扩大,电力***的静态电压稳定性分析面临新的挑战。
现有连续潮流计算方法效率较低且适用性差,尤其无法满足大规模***的分析需求。GPU因其海量并发线程的特点而具有超强的浮点计算能力,作为并行计算的载体被广泛的应用于各个领域的加速计算中。然而,现有连续潮流计算采用的预测-校正法具有比较复杂的控制逻辑,在重负荷水平时采取扩维参数化等特殊的处理,使得整体计算并不适合GPU的统一指令并行架构,导致计算效率低下。
因此,如何避免上述缺陷,提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种大规模连续潮流计算的方法及装置。
第一方面,本发明实施例提供一种大规模连续潮流计算的方法,所述方法包括:
根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;
根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;
在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
第二方面,本发明实施例提供一种大规模连续潮流计算的装置,所述装置包括:
第一并行计算单元,用于根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;
第二并行计算单元,用于根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;
第三并行计算单元,用于在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:
根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;
根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;
在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:
根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;
根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;
在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
本发明实施例提供的大规模连续潮流计算的方法及装置,通过分配多层次的并行线程资源,以进行大规模连续潮流的并行计算,能够提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种大规模连续潮流计算的方法流程示意图;
图2为本发明实施例大规模连续潮流计算的多层级的并行算法示意图;
图3为现有技术连续潮流计算方法示意图;
图4为本发明实施例连续潮流计算方法示意图;
图5为本发明实施例层次1与层次2并行计算提供的多潮流计算场景图;
图6为本发明实施例基于LDAG的批量前推回代计算示意图;
图7为本发明实施例大规模连续潮流计算的装置结构示意图;
图8为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本发明实施例,先对相关术语解释如下:
1.连续潮流:连续潮流(Continuation Power Flow,CPF)又称为延拓潮流,是电力***电压稳定性分析的有力工具。
2.GPU:全称Graphics Processing Unit,图形处理器,具有海量并发线程,作为并行计算载体被广泛应用于各个领域的加速计算中。
3.CUDA:全称Compute Unified Device Architecture,是一种由NVIDIA公司推出的通用并行计算架构,提供了能够利用C语言进行开发的多层次编程模型。
图1为本发明实施例一种大规模连续潮流计算的方法流程示意图,如图1所示,本发明实施例提供的一种大规模连续潮流计算的方法,包括以下步骤:
S101:根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平。
具体的,装置根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平。装置可以是服务器、终端等携带有GPU的载体,该方法在GPU中执行。图2为本发明实施例大规模连续潮流计算的多层级的并行算法示意图,如图2所示的多层级分为多工况并行、多潮流断面并行、单次潮流细粒度并行三个层次。
对层次1说明如下:
即考虑发电机和负荷波动情况下的并行。风光并网使得发电机出力具有一定的不确定性,发电节点的有功出力常常在一定范围内随机波动;而电动汽车等新型负载的接入又使得电力负荷也会出现在短时间内的扰动情况。这些都使得电力***实际运行状态在较短时间内会出现多种工况,需要对多种工况进行比较全面的连续潮流计算,才能对当前运行状态下的电压稳定性有全面和准确的判断,以避免电压崩溃事故的发生。不同工况的连续潮流计算又带来了成倍于之前的计算量,对于大规模***而言难以接受。经分析可发现在***拓扑不改变的情况下,各工况间的连续潮流计算并无任何数据依赖,因此可设计并行算法进行加速计算。
下面说明工况信息的预先获取方法:
本发明实施例采用随机设置波动因子的方法模拟发电机和负荷可能发生的波动。假设节点***中有r个发电机节点、s个负荷节点,则发电机节点有功出力、负荷节点的有功和无功按照节点编号可排列为一个(r+2*s)维向量k,称其为发电负荷向量。
依此构造(r+2*s)维波动因子向量α,其中前r个元素代表r个发电厂有功出力的波动因子,后2*s个元素代表s个负荷的有功和无功波动因子。对于基础算例,未发生任何波动,则有αi=1,i=1,2……,r+2*s,k=k(0)为基础发电负荷向量。基于此,某些对应于新能源电厂与可波动负荷的波动因子αi取值可在一定范围内变化,产生不同的波动因子向量,分别对应于不同的工况。假设考虑m种工况,则m个不同的向量α构成一个(r+2*s)*m维波动因子矩阵A={aij},其中,aij表示第j个工况下第i个(i<=r)发电机节点或第(i-r)个(r<i<=r+s)负荷节点的波动因子,是[amin,amax]之间的随机数,amin和amax为预设常数,代表波动因子上下界。
可以由式(1)获取不同工况信息,其中,k(0) i为基础发电负荷向量的第i个元素,k(j) i为所获取的第j工况发电负荷向量的第i个元素。
k(j) i=aij·k(0) i (1)
用矩阵形式则可表示为式(2)所示,其中,K即为最终得到包含所有工况的(r+2*s)*m维初始发电负荷矩阵,其中,第j列向量即为工况j的初始发电负荷向量;K(0)=diag(k(0))是由基础发电负荷向量形成的对角阵。
K=K(0)*A (2)
矩阵K每一列对应于每一种工况信息,利用每列数据作为初始的发电机有功和负荷有功、无功功率值,则可进行m种工况下的连续潮流计算。在CUDA架构下,矩阵K可由电力***数据预先计算得到,之后将每一列数据分配给一定的并行线程资源,可以包括线程块和线程,不同列间的连续潮流计算可同时开始,即为多工况间的并行计算。
S102:根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平。
具体的,装置根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平。
参照图2对层次2说明如下:
层次2为多潮流断面的并行,即在每一个工况对应的预设负荷水平下潮流计算的并行。该层次改变了传统连续潮流计算从低负荷水平到高负荷水平依次连续计算的模式,直接对于不同负荷水平下的潮流断面进行求解,用收敛性判断负荷水平能达到的极限点,体现了本发明实施例算法与现有连续潮流算法的根本性差别。图3为现有技术连续潮流计算方法示意图,如图3所示,现有技术的方法对于基态水平的A点到病态水平的E点依次串行计算,每个点的横坐标(即负荷水平)由上一个点计算得到。图4为本发明实施例连续潮流计算方法示意图,如图4所示,本发明实施例的方法直接根据给定的一系列负荷水平对A-F点同时进行潮流计算,A-E点能够收敛而F点不能,则将能够收敛的最高负荷水平作为负荷极限点。
需要说明的是:图4仅为了方便说明采用了与图3一样的PV曲线(功率-电压曲线)和标记点(即图中A~F)。实际上,并行方法由于横坐标为提前给定,并不会与现有技术的方法在计算数据点上完全重合。一般可采用平均分配的方式给定一组负荷因子序列λ1~λL,其中,第x个负荷因子λx为:
其中,λx为第x个负荷因子,0<x≤L;λlow为预设的计算起始点负荷因子,一般可取1.0;λup为预设的最大负荷水平,一般可根据实际***情况预估为3.0、4.0、5.0等值,须大于***实际极限点处的负荷极限点(即参照图4确定的负荷极限点);L为预设负荷因子个数(对应图2中示例的A~E共计5个),其值越大则数据点分布越密集,精确度越高,但计算量也相对应的增大,可以根据硬件资源与精度要求选择合适的数值。
不同的潮流断面对应着不同的负荷水平,而每个负荷水平正是在上述发电负荷向量的基础上乘以负荷因子得到的。因此,在给定一组负荷因子序列λ1~λL的情况下,根据初始发电负荷矩阵K,能够得到在m种工况与L个预设负荷水平下所有需要应用于潮流计算中的发电负荷向量,共计m*L个,其中,第(i*m+x)个预设负荷水平的发电负荷向量k* (i*m+x)由式(4)计算得到,其中,k* (i*m+x)为第(i*m+x)个预设负荷水平的发电负荷向量、λx为第x个负荷因子、ki为(r+2*s)维向量k中的第i个。
k* (i*m+x)=λxki (4)
图5为本发明实施例层次1与层次2并行计算提供的多潮流计算场景图,如图5所示,前两层并行计算方法的设计实际上是提供了一系列无相关性的潮流计算场景,这些场景中***网络结构均相同,但发电机有功出力和负荷不同,因此潮流计算结果也不相同。针对GPU拥有海量并发线程的特点,合理分配计算资源对这些潮流场景进行批量并行求解,则能够得到不同工况下PV曲线以及负荷极限点、负荷裕度,从而完成***的电压稳定性分析。
多潮流断面的并行计算方法为适应并行架构而放弃了现有方法中的一些重要逻辑,例如迭代初值与上一个负荷水平计算间的联系以及为避免矩阵奇异采用的参数化处理等,势必要求单次潮流计算方法能够处理这些特殊情况,因此,本发明实施例采用了连续牛顿法的潮流计算方法。该方法能够在零启动情况下同时适用于基态和病态潮流求解,这保障了层次2并行计算的成功实现。
S103:在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
具体的,装置在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
参照图2对层次3说明如下(在每次计算所述负荷水平的过程中的情况未示出,同理,可以参照在每次计算所述预设负荷水平的过程中的情况):
层次3为单次潮流计算的细粒度并行。前两层并行算法将多工况下的连续潮流计算拆分为多个无依赖的普通潮流计算,是一种任务级别的粗粒度并行,虽然相比串行算法有更高效率,但无法充分应用计算资源,效率提升受到限制。结合高性能计算GPU上的海量线程计算资源,应当针对单次潮流计算过程设计细粒度并行算法,在GPU计算Kernel内部对线程结构进行合理调整,减少通信时间,实现效率最大化。
本发明实施例对于潮流方程求解采用定雅克比的连续牛顿法潮流求解方法,应对其中主要计算步骤进行分析,设计相应批量并行算法。其主要计算包括雅克比矩阵LU分解、潮流不平衡功率量f(x)求解、前推回代计算以及状态变量的更新。其中LU分解对固定算例只需进行一次,这使得LU分解可以预先完成并形成因子表供迭代中应用,其计算量在整体计算中占比较小,同时由于LU分解过程包含较为复杂的逻辑,因此不针对LU分解设计并行算法,在计算中提前串行完成。其他三部分计算需在迭代中进行多次,且根据不同计算场景而改变,设计细粒度并行算法完成。
对于潮流不平衡功率求解,实际上是一系列电压量、导纳矩阵实部虚部以及相角正弦余弦值的乘积循环求和。结合电力***导纳矩阵的稀疏性,可依据导纳矩阵中的非零元素将求和过程拆分为无数据依赖的多次加法过程,配置相关计算资源设计细粒度并行算法。应注意的是,这一算法涉及到不同计算资源向统一内存地址中进行加和并写入的操作,会出现竞争现象,因此可以利用原子加法操作实现循环求和。
对于前推回代计算,实际上是系数矩阵为上三角矩阵和下三角矩阵的稀疏线性方程组求解过程,可统一归结为节点对应元素值的更新和规格化。该过程具有明显的串行顺序计算特性,后更新的节点元素值依赖于先完成更新的节点,不可能实现完全并行。但这种顺序依赖关系仍是稀疏的,即每次计算只取决于前一次或几次计算的结果,这就使得其中大量无相关性计算仍能够并行完成。针对于此,将计算流程拆分为由基本计算元组成的分层有向图,同层间并行完成细粒度计算。
此外,状态变量的更新内容为其中每个元素的加法运算。由于不同状态变量的更新间并无关联,状态变量更新的并行实现较为简单,分配相应计算资源给状态变量中的每个元素,同时并行完成即可。
图6为本发明实施例基于LDAG的批量前推回代计算示意图,其中的LDAG为有向无环图层(Layered Directed Acyclic Graph),如图6所示,针对的是分层有向图为m个的情况,对于分层有向图为L个的情况不再赘述。图6中的场景1~场景m分别对应上述工况1~工况m、Thread1~Threadn对应的串行线程、例如:Thread1对应的基本计算元2、基本计算元3、基本计算元8、基本计算元10和基本计算元11之间是串行计算线程,Block1~Blockm对应的是并行线程资源、Lever1~Lever h对应的是分层有向图的每一层,以Block1为例,在Block1对应的并行线程资源中分配h个第二目标并行线程资源,即Block1~Blockm中的第一层(共计m个)占用第二目标并行线程资源Y1,同步并行计算基本计算元2、基本计算元5、基本计算元1、基本计算元4;Block1~Blockm中的第二层(共计m个)占用第二目标并行线程资源Y2,同步并行计算基本计算元3、基本计算元6,以此类推。参照上述举例,相同细粒度即对应m个场景中的相同层。
本发明实施例提供的大规模连续潮流计算的方法,通过分配多层次的并行线程资源,以进行大规模连续潮流的并行计算,能够提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性。
在上述实施例的基础上,所述工况信息的预先获得,包括:
获取发电负荷向量;所述发电负荷向量包括由r个发电机节点的有功出力、s个负荷节点的有功和无功组成的(r+2*s)维向量k。
具体的,装置获取发电负荷向量;所述发电负荷向量包括由r个发电机节点的有功出力、s个负荷节点的有功和无功组成的(r+2*s)维向量k。可参照上述实施例,不再赘述。
根据预设的m种工况,构建一个(r+2*s)*m维的波动因子矩阵A;其中,(r+2*s)表示A的行数、m表示A的列数,A中的元素为aij;aij是[amin,amax]之间的随机数,amin和amax为预设常数。
具体的,装置根据预设的m种工况,构建一个(r+2*s)*m维的波动因子矩阵A;其中,(r+2*s)表示A的行数、m表示A的列数,A中的元素为aij;aij是[amin,amax]之间的随机数,amin和amax为预设常数。可参照上述实施例,不再赘述。
根据所述k和所述A,获取初始发电负荷矩阵K,其中,所述K的每一列对应每一种工况信息。
具体的,装置根据所述k和所述A,获取初始发电负荷矩阵K,其中,所述K的每一列对应每一种工况信息。可参照上述实施例,不再赘述。
本发明实施例提供的大规模连续潮流计算的方法,能够合理有效地获取到工况信息。
在上述实施例的基础上,所述根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,包括:
根据所述工况信息的工况种类数m,分配m个与所述各工况一一对应的并行线程资源。
具体的,装置根据所述工况信息的工况种类数m,分配m个与所述各工况一一对应的并行线程资源。可参照上述实施例,不再赘述。
本发明实施例提供的大规模连续潮流计算的方法,通过分配与各工况一一对应的并行线程资源,保证了多工况层次并行计算的正常进行,进一步能够提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性。
在上述实施例的基础上,所述负荷因子的预先确定,包括:
根据如下公式计算所述负荷因子:
其中,λx为第x个负荷因子,0<x≤L;λlow为预设的计算起始点负荷因子;λup为预设的最大负荷水平;L为预设负荷因子个数。
具体的,装置根据如下公式计算所述负荷因子:
其中,λx为第x个负荷因子,0<x≤L;λlow为预设的计算起始点负荷因子;λup为预设的最大负荷水平;L为预设负荷因子个数。可参照上述实施例,不再赘述。
本发明实施例提供的大规模连续潮流计算的方法,能够合理有效地确定负荷因子。
在上述实施例的基础上,所述根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,包括:
根据所述L,在所述并行线程资源中分配L个与所述预设负荷水平一一对应的第一目标并行线程资源。
具体的,装置根据所述L,在所述并行线程资源中分配L个与所述预设负荷水平一一对应的第一目标并行线程资源。可参照上述实施例,不再赘述。
本发明实施例提供的大规模连续潮流计算的方法,通过分配与预设负荷水平一一对应的第一目标并行线程资源,保证了多潮流断面并行计算的正常进行,进一步能够提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性。
在上述实施例的基础上,所述以并行计算所述预设负荷水平,包括:
根据如下公式以并行计算所述预设负荷水平:
k* (i*m+x)=λxki
其中,k* (i*m+x)为第(i*m+x)个预设负荷水平的发电负荷向量、λx为第x个负荷因子、ki为(r+2*s)维向量k中的第i个。
具体的,装置根据如下公式以并行计算所述预设负荷水平:
k* (i*m+x)=λxki
其中,k* (i*m+x)为第(i*m+x)个预设负荷水平的发电负荷向量、λx为第x个负荷因子、ki为(r+2*s)维向量k中的第i个。可参照上述实施例,不再赘述。
本发明实施例提供的大规模连续潮流计算的方法,通过具体的公式,能够准确、快速地计算出预设负荷水平。
在上述实施例的基础上,采用前推回代潮流计算方法计算所述预设负荷水平或所述负荷水平;相应的,所述为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,包括:
将前推回代潮流计算的过程拆分为包括有基本计算元的分层有向图;其中,所述分层有向图为m个或L个。
具体的,装置将前推回代潮流计算的过程拆分为包括有基本计算元的分层有向图;其中,所述分层有向图为m个或L个。可参照上述实施例,不再赘述。
若所述分层有向图为m个,则在所述并行线程资源中分配h个第二目标并行线程资源,以使m个分层有向图中的每个相同层分别占用对应的每一所述第二目标并行线程资源;其中,所述h为所述分层有向图的层数。
具体的,装置若判断获知所述分层有向图为m个,则在所述并行线程资源中分配h个第二目标并行线程资源,以使m个分层有向图中的每个相同层分别占用对应的每一所述第二目标并行线程资源;其中,所述h为所述分层有向图的层数。可参照上述实施例,不再赘述。
或,
若所述分层有向图为L个,则在所述第一目标并行线程资源中分配h个第二目标并行线程资源,以使L个分层有向图中的每个相同层分别占用对应的每一所述第二目标并行线程资源;其中,所述h为所述分层有向图的层数。
具体的,装置若判断获知所述分层有向图为L个,则在所述第一目标并行线程资源中分配h个第二目标并行线程资源,以使L个分层有向图中的每个相同层分别占用对应的每一所述第二目标并行线程资源;其中,所述h为所述分层有向图的层数。可参照上述实施例,不再赘述。
本发明实施例提供的大规模连续潮流计算的方法,通过向分层有向图中的每个相同层分配第二目标并行线程资源,将单次潮流细粒度确定为分层有向图中的相同层,并进行并行计算,进一步能够提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性。
图7为本发明实施例大规模连续潮流计算的装置结构示意图,如图7所示,本发明实施例提供了一种大规模连续潮流计算的装置,包括第一并行计算单元701、第一并行计算单元702和第一并行计算单元703,其中:
第一并行计算单元701用于根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;第二并行计算单元702用于根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;第三并行计算单元703用于在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
具体的,第一并行计算单元701用于根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;第二并行计算单元702用于根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;第三并行计算单元703用于在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
本发明实施例提供的大规模连续潮流计算的装置,通过分配多层次的并行线程资源,以进行大规模连续潮流的并行计算,能够提高连续潮流计算的计算效率,从而提升大规模***电压稳定性分析的效率和准确性。
本发明实施例提供的大规模连续潮流计算的装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图8为本发明实施例提供的电子设备实体结构示意图,如图8所示,所述电子设备包括:处理器(processor)801、存储器(memory)802和总线803;
其中,所述处理器801、存储器802通过总线803完成相互间的通信;
所述处理器801用于调用所述存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。
Claims (9)
1.一种大规模连续潮流计算的方法,其特征在于,包括:
根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;
根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;
在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程;
所述工况信息的预先获得,包括:
获取发电负荷向量;所述发电负荷向量包括由r个发电机节点的有功出力、s个负荷节点的有功和无功组成的(r+2*s)维向量k;
根据预设的m种工况,构建一个(r+2*s)*m维的波动因子矩阵A;其中,(r+2*s)表示A的行数、m表示A的列数,A中的元素为aij;aij是[amin,amax]之间的随机数,amin和amax为预设常数;
根据所述k和所述A,获取初始发电负荷矩阵K,其中,所述K的每一列对应每一种工况信息;
其中,不同的潮流断面对应着不同的负荷水平,每个负荷水平是在所述发电负荷向量的基础上乘以负荷因子得到的。
2.根据权利要求1所述的方法,其特征在于,所述根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,包括:
根据所述工况信息的工况种类数m,分配m个与所述各工况一一对应的并行线程资源。
4.根据权利要求3所述的方法,其特征在于,所述根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,包括:
根据所述L,在所述并行线程资源中分配L个与所述预设负荷水平一一对应的第一目标并行线程资源。
5.根据权利要求3所述的方法,其特征在于,所述以并行计算所述预设负荷水平,包括:
根据如下公式以并行计算所述预设负荷水平:
k* (i*m+x)=λxki
其中,k* (i*m+x)为第(i*m+x)个预设负荷水平的发电负荷向量、λx为第x个负荷因子、ki为(r+2*s)维向量k中的第i个。
6.根据权利要求3所述的方法,其特征在于,采用前推回代潮流计算方法计算所述预设负荷水平或所述负荷水平;相应的,所述为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,包括:
将前推回代潮流计算的过程拆分为包括有基本计算元的分层有向图;其中,所述分层有向图为m个或L个;
若所述分层有向图为m个,则在所述并行线程资源中分配h个第二目标并行线程资源,以使m个分层有向图中的每个相同层分别占用对应的每一所述第二目标并行线程资源;其中,所述h为所述分层有向图的层数;
或,
若所述分层有向图为L个,则在所述第一目标并行线程资源中分配h个第二目标并行线程资源,以使L个分层有向图中的每个相同层分别占用对应的每一所述第二目标并行线程资源;其中,所述h为所述分层有向图的层数。
7.一种大规模连续潮流计算的装置,其特征在于,包括:
第一并行计算单元,用于根据预先获得的工况信息为所述工况信息中的各工况分配对应的并行线程资源,以并行计算所述各工况对应的负荷水平;
第二并行计算单元,用于根据预先确定的负荷因子,在所述并行线程资源中为所述各工况中的每一个工况对应的预设负荷水平分配第一目标并行线程资源,以并行计算所述预设负荷水平;
第三并行计算单元,用于在每次计算所述预设负荷水平或所述负荷水平的过程中,获取计算的细粒度,为相同细粒度的计算过程在所述第一目标并行线程资源或所述并行线程资源中分配第二目标并行线程资源,以执行相同细粒度对应的并行计算过程;
所述装置还用于:
获取发电负荷向量;所述发电负荷向量包括由r个发电机节点的有功出力、s个负荷节点的有功和无功组成的(r+2*s)维向量k;
根据预设的m种工况,构建一个(r+2*s)*m维的波动因子矩阵A;其中,(r+2*s)表示A的行数、m表示A的列数,A中的元素为aij;aij是[amin,amax]之间的随机数,amin和amax为预设常数;
根据所述k和所述A,获取初始发电负荷矩阵K,其中,所述K的每一列对应每一种工况信息;
其中,不同的潮流断面对应着不同的负荷水平,每个负荷水平是在所述发电负荷向量的基础上乘以负荷因子得到的。
8.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810646054.3A CN108879691B (zh) | 2018-06-21 | 2018-06-21 | 一种大规模连续潮流计算的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810646054.3A CN108879691B (zh) | 2018-06-21 | 2018-06-21 | 一种大规模连续潮流计算的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108879691A CN108879691A (zh) | 2018-11-23 |
CN108879691B true CN108879691B (zh) | 2020-09-04 |
Family
ID=64340173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810646054.3A Active CN108879691B (zh) | 2018-06-21 | 2018-06-21 | 一种大规模连续潮流计算的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108879691B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704023B (zh) * | 2019-09-26 | 2021-10-22 | 北京华大九天科技股份有限公司 | 一种基于拓扑排序的矩阵分块划分方法及装置 |
CN113672775A (zh) * | 2021-08-06 | 2021-11-19 | 南方电网数字电网研究院有限公司 | 一种电网实时图并行计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391057A (zh) * | 2015-11-20 | 2016-03-09 | 国家电网公司 | 一种电力潮流雅克比阵计算的gpu线程设计方法 |
CN105576648A (zh) * | 2015-11-23 | 2016-05-11 | 中国电力科学研究院 | 一种基于gpu-cpu异构计算平台的静态安全分析双层并行方法 |
CN106874113A (zh) * | 2017-01-19 | 2017-06-20 | 国电南瑞科技股份有限公司 | 一种cpu+多gpu异构模式静态安全分析计算方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102593820B (zh) * | 2011-12-22 | 2014-01-22 | 河海大学 | 考虑发电机励磁电流约束和电枢电流约束的连续潮流算法 |
CN104156609B (zh) * | 2014-08-19 | 2017-02-15 | 河海大学 | 基于连续潮流的电网潮流可解性辨识及初值生成方法 |
-
2018
- 2018-06-21 CN CN201810646054.3A patent/CN108879691B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391057A (zh) * | 2015-11-20 | 2016-03-09 | 国家电网公司 | 一种电力潮流雅克比阵计算的gpu线程设计方法 |
CN105576648A (zh) * | 2015-11-23 | 2016-05-11 | 中国电力科学研究院 | 一种基于gpu-cpu异构计算平台的静态安全分析双层并行方法 |
CN106874113A (zh) * | 2017-01-19 | 2017-06-20 | 国电南瑞科技股份有限公司 | 一种cpu+多gpu异构模式静态安全分析计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108879691A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Performance optimization using partitioned SpMV on GPUs and multicore CPUs | |
Aristidou et al. | Power system dynamic simulations using a parallel two-level schur-complement decomposition | |
He et al. | GPU-accelerated parallel sparse LU factorization method for fast circuit analysis | |
Kardoš et al. | Two-level parallel augmented schur complement interior-point algorithms for the solution of security constrained optimal power flow problems | |
Chen et al. | A two-layered parallel static security assessment for large-scale grids based on GPU | |
CN111062610B (zh) | 一种基于信息矩阵稀疏求解的电力***状态估计方法和*** | |
CN108879691B (zh) | 一种大规模连续潮流计算的方法及装置 | |
Munawar et al. | Advanced genetic algorithm to solve MINLP problems over GPU | |
Huang et al. | Real-time contingency analysis on massively parallel architectures with compensation method | |
Alam et al. | Novel parallel algorithms for fast multi-GPU-based generation of massive scale-free networks | |
Razik et al. | A comparative analysis of LU decomposition methods for power system simulations | |
CN110096730B (zh) | 一种电网电压快速评估方法及*** | |
Gahvari et al. | A performance model for allocating the parallelism in a multigrid-in-time solver | |
CN113094899B (zh) | 一种随机潮流计算方法、装置、电子设备及存储介质 | |
CN113328467A (zh) | 一种概率电压稳定性评估方法、***、终端设备及介质 | |
CN108599173B (zh) | 一种批量潮流的求解方法及装置 | |
Gnanavignesh et al. | Gpu-accelerated sparse lu factorization for power system simulation | |
Peplinski et al. | Parallel performance of h-type adaptive mesh refinement for Nek5000 | |
Low et al. | Linear algebraic Louvain method in python | |
CN115718986A (zh) | 一种基于分布式内存架构的多核并行时域仿真方法 | |
Korch et al. | Parallelization of particle-in-cell codes for nonlinear kinetic models from mathematical physics | |
Riesinger et al. | Gpu optimization of pseudo random number generators for random ordinary differential equations | |
Rico-Hernández et al. | Analysis of electrical networks using fine-grained techniques of parallel processing based on OpenMP | |
Yu et al. | Comparison of parallel implementations of controls on GPU for transient simulation of power system | |
Manazir et al. | pCGP: A Parallel Implementation of Cartesian Genetic Program-ming for Combinatorial Circuit Design and Time-Series Prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |