一种基于稀疏技术可快速读写的电力系统PQ分解法潮流数据存贮方法与流程

文档序号:13222054阅读:179来源:国知局
技术领域本发明属于电力系统分析计算领域。

背景技术:
电力系统中PQ分解法潮流计算中涉及到多个对称的、极度稀疏的系数矩阵应用。若不考虑这些系数矩阵的稀疏性,大量零元素的数据在存贮、读取及计算过程中会导致存贮空间的极大浪费、读写数据文件及计算过程时间过长、计算效率低下。因此,考虑稀疏矩阵元素的存贮方式不但可大量节省存贮单元,还可大大减少数据文件的存贮、读取及计算过程的时间。PQ分解法潮流计算中需用到3个系数矩阵,其中导纳矩阵Y用于计算节点电流(Ipi、Iqi)和节点功率(Pi、Qi),系数矩阵B′用于计算电压相角增量Δδi,系数矩阵B″用于计算电压幅值增量ΔVi。传统PQ分解法中对这3个系数矩阵数据的存贮、读取、应用等存在以下不足:(1)B′、B″阵元素的获取方式不合理。B′、B″阵元素最简单的获取方式是直接取自Y阵元素的虚部,这样只要存贮1个Y阵元素即可,B′、B″阵元素可从Y阵元素的数据文件中直接获得。但实际计算中如果B′、B″阵元素完全取用Y阵元素的虚部,如对IEEE-118节点等系统,则PQ分解法潮流计算并不收敛,而对其它系统则可能导致迭代时间较长。如果仅B′、B″阵元素相同、但不同于Y阵元素的虚部,仍然可能影响PQ分解法潮流计算的迭代次数或收敛性。由于Y、B′、B″阵元素的构成对收敛性或收敛速度影响较大,因此一般Y、B′、B″阵元素各不相同,从而涉及到多个数据文件的应用。(2)Y、B′、B″阵元素的存贮方式不合理。由于Y、B′、B″阵均为有大量零元素的极度稀疏矩阵,传统PQ分解法中对应的数组分别为Y(n,2n)、B′(n-1,n-1)、B″(m,m),其中n为系统的节点数,m为系统的PQ节点数。Y(n,2n)数组存放Y阵元素,B′(n-1,n-1)、B″(m,m)数组存放B′、B″阵元素。按Y(n,2n)、B′(n-1,n-1)、B″(m,m)数组方式存贮相应元素,会造成存贮空间的极大浪费、读写数据文件及计算时间过长、而用Y(n,2n)数组计算Ipi、Iqi或Pi、Qi的计算效率极为低下。如果考虑元素稀疏性,用坐标存贮、顺序存贮、链表存贮等方法存贮Y、B′、B″阵元素,尽管可节省不少存贮单元,但由于其存贮方式和结构复杂,对角元与非对角元分开存贮使得数据的读取过程繁琐,不利于数据的计算及处理,计算Ipi、Iqi或Pi、Qi时,导入相应元素的过程也较为复杂,效率也不高。如果考虑Y、B′、B″阵元素的对称性仅存贮上三角的非零元素,根据对称性获得下三角的非零元素,则角标的变换、元素之间的赋值也占用很多时间,并无太大优势。(3)Y、B′、B″阵数据文件的存贮个数较多、读写时间较长。如按传统方法对Y、B′、B″阵的三个数据文件分别存贮,则在潮流计算程序中要分别打开三个数据文件并读取数据;如果考虑元素稀疏性按链表存贮方法分别对Y、B′、B″阵进行存贮,则存贮文件的个数将达到9个。存贮的数据文件个数越多,则写数据文件的时间越长,同样导致PQ分解法潮流计算程序中需打开的数据文件个数较多、读数据文件的时间较长,特别不利于PQ分解法的实时计算效果。

技术实现要素:
为了克服上述现有技术的不足,本发明提出一种基于稀疏技术可快速读写的电力系统PQ分解法潮流数据存贮方法。本发明将传统PQ分解法潮流计算中三个分开存放的数组Y(n,2n)、B′(n-1,n-1)、B″(m,m)分别用三个虚拟数组Y(n,d1)、B′(n-1,d2)、B″(m,d3)对应替代,合并存放于数组A(n,d)中。数组A(n,d)中存放主节点的行号(i)、三个数组中各主节点与非零元素子节点之和(Si1、Si2、Si3)、三个数组中各主节点与非零元素子节点的列号j及参数gij、bij。数组Y(n,d1)存贮Y阵的信息,用于计算Ipi、Iqi或Pi、Qi;数组B′(n-1,d2)、B″(m,d3)存贮B′、B″阵的信息,用于完成PQ分解法潮流计算。这种存贮方式省去了对Y、B′、B″阵所有零元素的存贮,大大减少了存贮空间、存贮数据文件的个数以及对数据文件的读写时间,可快速计算Ipi、Iqi或Pi、Qi,快速形成B′、B″阵,且存贮方式简单明了。本发明是通过以下技术方案实现的。本发明所述的一种基于稀疏技术可快速读写的电力系统PQ分解法潮流数据存贮方法,包括以下步骤:步骤1:定义数据文件数组A(n,d);(1)定义与行号i对应的节点为父节点,与其相连的非零元素节点为子节点,而零元素的子节点及参数不出现在存贮单元中。(2)定义存放Y、B′、B″阵元素的三个虚拟数组为Y(n,d1)、B′(n-1,d2)、B″(m,d3)。三个数组中均存放所有父节点和非零元素子节点的列号j及相应的参数,其各自各行中父节点和非零元素子节点之和为最大非零元素数S1max、S2max、S3max。(3)数组Y(n,d1)存放相关节点的列号j、相应自导纳和互导纳的实部及虚部值,其最大列数为d1=3×S1max;而数组B′(n-1,d2)和B″(m,d3)存放相关节点的列号j、相应自导纳和互导纳的虚部值,两个数组的最大列数分别为d2=2×S2max,d3=2×S3max。(4)将Y(n,d1)、B′(n-1,d2)、B″(m,d3)三个数组的数据共存于A(n,d)数组中,其中d=d1+d2+d3+4。“+4”分别为行号列和S1max、S2max、S3max所在的计数列,即表1中的第1~4列。(5)新方法的最大存贮单元数Umax.new按各行中最大的非零元素数计算,Umax.new=U1max+U2max+U3max=Y(n,d1)+B′(n-1,d2)+B″(m,d3)=n×(d1+2)+(n-1)×(d2+1)+m×(d3+1)。注:“+2”:为行号列和Y阵计数列;“+1”:分别B′阵和B″阵计数列。本发明的近似最大存贮单元数为Ua.max.new=A(n,d)=n×d,有Umax.new/Ua.max.new≈90%,且不随着节点数的变化而变化。(6)本发明的实际存贮单元数Uact.new按各行Si实际统计的非零元素数之和计算,Uact.new=Y(n,d′1)+B′(n-1,d′2)+B″(m,d′3)。计算分析表明,新方法的实际存贮单元数约占新方法最大存贮单元数的50%左右,且所占百分比随着节点数的增加而减少。(7)将A(n,d)数组分为五组,其中包括“行号组”、“节点数组”、“Y阵组”、“B′阵组”、“B″阵组”,存放格式如下。行号组i:为检验数据之用,存放与父节点对应的行号,位于第1列;节点数组Si1、Si2、Si3:为高效读写数据之用,位于第2~4列,存放Y、B′、B″阵中各行父节点及非零元素子节点数之和,其Si1、Si2、Si3值由程序自动累加以保证快速高效地读取相应的父节点和非零元素子节点的参数,从而使本发明的实际存贮单元数远小于其最大存贮单元数;Y阵组:为存放与Y(n,d1)数组对应的Y阵数据之用,位于第5~(d1+4)列,按列号递增顺序存贮父节点和非零元素子节点的列号j及相应的自导纳、互导纳的实部、虚部值;B′阵组:为存放与B′(n-1,d2)数组对应的B′阵数据之用,位于第(d1+5)~(d1+d2+4)列,按列号递增顺序存贮父节点和非零元素子节点的列号j及相应的自导纳、互导纳的虚部值;B″阵组:为存放与B″(m,d3)数组对应的B″阵数据之用,位于第(d1+d2+5)~(d1+d2+d3+4)列,按列号递增顺序存贮父节点和非零元素子节点的列号j及相应的自导纳、互导纳的虚部值;对IEEE-118节点系统中,对应于n、n-1、m(=64)的S1max=10、S2max=9、S3max=5,即对应的Y阵数据存放在第5~34列,B′阵数据存放在第35~52列,B″阵数据存放在第53~62列,因此该系统A(n,d)数组对应的数组为A(118,62)。本发明对A(118,62)数组元素的最大存贮方式如表1所示。表1本发明对IEEE-118节点系统A(118,62)数组元素的最大存贮方式注:表1中除含最大非零元素节点对应的行外,并非所有的存贮单元都有数据,而应用Si1、Si2、Si3可保证实际存贮单元数远远小于最大存贮单元数,进一步提高数据的读写效率。步骤2:从数据文件读入全部支路数据;步骤3:计算Y、B′、B″阵的所有元素并将数据共存于A(n,d)数组中;Y阵元素存放于A(n,d)数组中Y(n,d1)数组所在的位置,Y阵元素通常包括所有支路参数所形成的Y阵的实部和虚部元素,仅用于后续PQ分解法潮流程序中Ipi、Iqi或Pi、Qi的计算;B′、B″阵元素存放于A(n,d)数组中B′(n-1,d2)、B″(m,d3)数组所在的位置,用于后续程序中求解Δδi、ΔVi;为加快PQ分解法潮流计算速度,计算B′、B″阵元素时对参数的取舍有所不同,一般在计算B′阵元素的过程中去掉线路对地电容c、而在计算B″阵元素的过程中去掉线路电阻r;步骤4:将A(n,d)数组的数据写入数据文件以备后续程序使用。考虑到程序的模块化,形成A(n,d)数组的程序到此结束,而A(n,d)数组数据文件的调用则由PQ分解法潮流计算程序执行。在PQ分解法计算程序中打开按上述方式存贮的A(n,d)数组的数据文件,将对应的Y阵数据直接读入Y(n,d1)数组以便计算各节点的Ipi、Iqi或Pi、Qi,将对应的B′、B″阵数据直接读入B′(n-1,n-1)和B″(m,m)数组以便求解Δδi、ΔVi。读入A(n,d)数据文件的数据比分别读入Y(n,2n)、B′(n-1,n-1)和B″(m,m)数据文件的数据所需时间要少得多,而用Y(n,d1)数组计算各节点的Ipi、Iqi或Pi、Qi比用Y(n,2n)数组的计算效率要高得多。本发明方法与传统的不考虑元素稀疏性的Y、B′、B″阵元素的存贮方式相比,将对多个数据文件的存贮简化成对1个数据文件的存贮,将对所有数据的存贮简化成仅对非零元素的存贮。不但大大减少了数据的存贮单元以及对数据文件的读写时间,还可用Y(n,d1)数组直接计算Ipi、Iqi或Pi、Qi,省去所有元素的非零判断或无效计算。本发明方法与按坐标存贮、按顺序存贮、按链表存贮等方法相比,仍较多地减少了数据的存贮单元和数据文件的存贮数量,提高了对数据文件的读写速度,且存贮方式更为简单,后续数据的计算处理等更为方便、快捷。附图说明图1为本发明方法形成PQ分解法潮流计算数据文件的流程图。图2为传统方法形成PQ分解法潮流计算数据文件的流程图。具体实施方式本发明将通过实施例作进一步说明。实施例。分别比较传统的不考虑稀疏性的存贮方法和考虑稀疏性的链表存贮方法以及本发明方法存贮IEEE-30、-57、-118节点系统Y、B′、B″阵元素所需的数据文件数、存贮单元数、数据文件读写过程的平均时间。表2给出了各种方法的比较结果。(1)数据文件数的比较。1)传统存贮方法分别将Y、B′、B″阵元素分别存放在Y(n,2n)、B′(n-1,n-1)和B″(m,m)3个数组中,因此需3个数据文件;2)链表存贮方法分别将对角元素、非对角元素、行号(链表)用3个数组存贮,因此分别存贮相应的Y、B′、B″阵元素需9个数组,也需9个数据文件;3)本发明方法将Y、B′、B″阵元素共同存放在A(n,d)数组中,仅需1个数据文件;(2)存贮Y、B′、B″阵元素单元数的比较。设n为系统的节点数,m为系统的PQ节点数;平均每个节点与4条支路相连;由于是复数矩阵,Y阵元素×2。以IEEE-118节点系统为例,n=118,m=64。1)传统法存贮单元数:Uc=n×2×n+(n-1)×(n-1)+m×m=45633;2)链表法存贮单元数:Ut=(2n+2N+N)=(2n+3N)=(14×n)=5838;3)本方法最大存贮单元数:按各行中最大的非零元素数计算:Umax.new=U1max+U2max+U3max=n×(d1+2)+(n-1)×(d2+1)+m×(d3+1)=6703;对IEEE-118节点系统,用A(118,62)的数组可以存贮所有相关信息。4)本方法实际存贮单元数:按各行中Si的实际统计的非零元素数之和计算:Uact.new=Y(n,d′1)+B′(n-1,d′2)+B″(m,d′3)=3039。上述比较可以看出,本发明的最大存贮单元数约占传统方法存贮单元数的14.69%,且随着节点数的增加而减少;本发明的实际存贮单元数约占新方法最大存贮单元数的50%左右,也随着节点数的增加而减少;本发明的实际存贮单元数约占传统方法存贮单元数的6.66%,同样随着节点数的增加而显著减少;本发明的实际存贮单元数约占链表法存贮单元数的52.06%,同样随着节点数的增加而减少。因此节点数越大,本发明节省的存贮单元越多,而用Y(n,d1)数组的存贮方式在计算各节点的Ipi、Iqi或Pi、Qi时比用Y(n,2n)数组的计算效率要高得多。表2各种方法对IEEE系统数据文件读写时间及存贮单元数的比较tw.c、tr.c、Uc:传统方法对Y、B′、B″阵数据文件平均写读时间、所需存贮单元数;tw.new、tr.new、Umax.new、Uact.new:本发明方法对Y、B′、B″阵数据文件平均写读时间、所需的最大、实际存贮单元数;tw.new/tw.c、tr.new/tr.c、Umax.new/Uc、Uact.new/Uc:本发明方法与传统方法的平均写读时间、最大存贮单元数的百分比、实际所需存贮单元数的百分比。Ut、Uact.new/Ut:链表法所需存贮单元数、本发明方法的实际存贮单元数与链表法所需存贮单元数的百分比;可以看出:1.本发明方法的存贮单元数和写读数据文件的速度大大优于传统方法。本发明方法将PQ分解法所需的3个数据文件共存于1个数组中,和传统方法将3个数据文件分开存贮方式相比,大大减少了所需数据文件的个数、存贮单元和数据文件的写读时间。如对IEEE-118节点系统,本发明方法写数据文件的时间仅为传统方法的14.32%,读数据文件的时间仅为传统方法的7.29%,最大存贮单元数仅为传统方法的14.69%,实际存储单元仅为传统6.66%。2.本发明方法的存贮单元数同样优于考虑稀疏性的链表存贮方式。本发明方法仅存贮1个数据文件、链表法需存贮9个数据文件;本发明方法的最大存贮单元数与链表法比较接近,但本发明方法的实际存贮单元数约为链表法的50%。3.电力系统节点数越多,本发明方法数据存贮和读取过程的优势越大。本发明方法随着系统节点数的增加存贮单元并不会显著增加,写读数据文件的时间也不会显著增加。4.由于同时存贮Y、B′、B″阵上下三角的非零元素,因此在形成B′、B″的因子表阵、计算Ii、Pi、Qi时将极为方便,而数据读写时间或存贮单元数与仅存贮上三角非零元素的方式相比几乎没有差别。5.对于各种工程领域多个非对称数据文件的读写和应用,本发明方法具有同样的优势。本发明可以采用任何一种编程语言和编程环境实现,这里采用C++编程语言,开发环境是VisualC++。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1