一种快速存贮及读取电力系统稀疏矩阵数据的方法

文档序号:9326853阅读:262来源:国知局
一种快速存贮及读取电力系统稀疏矩阵数据的方法
【技术领域】
[0001] 本发明属于电力系统分析计算领域。
【背景技术】
[0002] 电力系统分析计算中涉及到许多对称或不对称的极度稀疏矩阵。这些稀疏矩阵数 据在存贮、读取及计算过程中,若不考虑稀疏性,会导致大量零元素的存贮、读取及计算,从 而造成存贮空间的极大浪费、读写数据文件及计算过程时间较长。因此,考虑对称或不对称 稀疏矩阵元素的存贮方式不但可大幅节省存贮单元,而且可大大减少数据文件的存贮、读 取及计算过程的时间。
[0003] 传统的不考虑元素稀疏性的Y阵数组形式为Y (η,2η),存贮Y阵全部元素的数值, 元素的行、列下标直接由元素在Y阵中的位置确定。这种数组形式简单直观,方便对Y阵数 据的处理,但大量零元素的存贮导致存贮空间的极大浪费。且在对如节点电流等连续求和 计算过程中,如不引入非零判断语句,其计算效率较低;如引入非零判断语句,则计算速度 将受到影响。
[0004] 电力系统计算中稀疏矩阵技术运用很广,矩阵的存贮方案也很多,如按坐标存贮、 按顺序存贮、按链表存贮等等。尽管这些存贮方式虽可节省不少存贮单元,但由于存贮方式 和结构复杂,对角元与非对角元分开存贮使得数据的读取过程繁琐,不利于数据的计算处 理,计算过程达不到最优效果。
[0005] 虽然对称的Y阵可以按一定方式仅存贮其上三角的非零元素,根据对称性获得下 三角的非零元素,但这种计算方式在程序计算中,角标的变换、元素之间的赋值其实也占用 很多时间,而且有时也并不方便。

【发明内容】

[0006] 为了克服上述现有技术的不足,本发明提出一种快速存贮及读取电力系统稀疏矩 阵数据的方法。
[0007] 本发明将Y阵中的节点分为主节点和子节点。仅存贮主节点的行号、与主节点连 接的子节点数S(包括主节点)、主节点以及具有非零元素子节点的列号和参数(自导纳和 互导纳)。这种存贮方式不但大大减少了 Y阵的存贮空间,且简单明了,易于数据的检索、修 改和计算应用,还大大减少了 Y阵数据的存贮单元,以及Y阵数据文件的存贮和读取时间。
[0008] 本发明是通过以下技术方案实现的。
[0009] 本发明所述的一种快速存贮及读取电力系统稀疏矩阵数据的方法包括以下步 骤:
[0010] 步骤1 :定义Y阵数组Y (η,26)。
[0011] 本发明先确定相应系统中连接子节点数最多的主节点,假设为7个,加主节点共8 个,即S mx= 8。因此,一行中主节点和子节点的列号及参数(实部、虚部)需24个单元,加 行号和节点数二个存贮单元,共需26个存贮单元。因此,定义Y阵数组为Y (η,26),将其每 行分为3组,分别存贮该行的行号、与行号对应的节点数、主节点和所有非零元素子节点的 列号及参数,具体方式如下。
[0012] 第1组:"主节点行号i",位于第1列,为主节点对应的行号,为检验数据之用; [0013] 第2组:"节点数S1 ",位于第2列,为主节点及与该主节点连接的子节点数之和,S 值由程序自动累加以保证快速读取对应主节点和子节点的参数;
[0014] 第3组:"主节点、子节点列号j及参数",位于第3~26列;按递增顺序存贮主节 点及与该主节点连接的子节点的列号j,分别位于第3*k列;相应主节点或子节点的自导纳 和互导纳(均分实部、虚部)分别位于3*k+l、3*k+2列,k的取值为:1~S 1;
[0015] 本发明方法Y阵元素的存贮方式如下表所示。
[0017] 步骤2 :从数据文件中读取全部支路数据;
[0018] 步骤3 :计算各节点的自导纳和互导纳;
[0019] 步骤4 :形成Y (n,26)形式的Y阵;
[0020] 步骤5 :将Y (n,26)写入数据文件以备后续程序使用。
[0021 ] 考虑到程序的模块化,形成Y阵程序到此结束,而Y阵数据文件的调用则由下一个 程序执行。
[0022] 在新的计算程序中打开按上述方式存贮的Y(n,26)数据文件,将数据文件数据根 据需要直接读入Υ(η,2η)数组(如用于消元计算等)或Υ(η,26)数组(如形成J阵或计算 功率等),以便后续应用。读入Y (η,26)数据文件的数据比读入Y (η,2η)数据文件的数据所 需时间要少得多。
[0023] 本发明方法可用于对称或不对称稀疏矩阵数据的存贮。与传统的不考虑元素稀疏 性的Y阵元素存贮形式相比,不但大大减少了大量零元素存贮空间,且大大提高了 Y阵数据 的读写速度。与按坐标存贮、按顺序存贮、按链表存贮等等方案相比,仍较多地减少了存贮 空间,提高了数据的读写速度,且后续数据的计算处理等更为方便。与仅存贮上三角非零元 素的方式相比,几乎不需增加任何存贮单元,且在形成J阵、计算IpPpQJt,同时使用上下 三角的非零元素,比根据上三角的非零元素按对称性获得下三角的非零元素更方便、也更 快捷。而且本发明方法存贮方式简单直观,数据文件的存贮及读取速度快,可直接用于相应 的后续计算。
【附图说明】
[0024] 图1为本发明方法的流程图。
【具体实施方式】
[0025] 本发明将通过以下实施例作进一步说明。
[0026] 本发明方法对于对称及不对称稀疏矩阵都具有同样的计算效率。为举例方便,以 对称的节点导纳矩阵Y为例。
[0027] 实施例1。对IEEE-300节点系统分别比较传统的不考虑元素稀疏性时Y阵元素的 存贮方式和本发明方法对Y阵元素的存贮方式。
[0028] (1)传统的不考虑元素稀疏性时Y阵元素的存贮方式如表1。
[0029] 表1不考虑元素稀疏性时IEEE-300节点系统Y阵元素的存贮方式
[0031] 根据表1可以看出,不考虑稀疏性时IEEE-300节点系统Y阵元素的存贮单元数为 300*600 个。
[0032] (2)本发明方法对IEEE-300节点系统Y阵元素的存贮形式
[0033] 对IEEE-300节点系统,主节点连接子节点数最多为7个,加主节点共8个,因此定 义Y阵数组为Y (n,26),本发明方法对Y阵元素的存贮方式如表2。
[0034] 表2本发明方法对IEEE-300节点系统Y阵元素的存贮方式
[0035]
[0037] 根据表2可以看出,本发明方法对Y阵的存贮单元数为300*26个,仅为不考虑元 素稀疏性时Y阵元素存贮单元的4. 3 %。且节点数越大,节省的单元数越多。
[0038] 由于本发明只存贮Y阵上下三角的非零元素,大大减少了 Y阵零元素的存贮单元, 并大大加快了 Y阵数据文件的存贮和读取速度,且用Y (n,26)数组比Y (η,2η)在形成J阵、 计算L、Pp QJt计算效率更高。本发明方法与仅存贮Y阵上三角非零元素的方法相比,存 IC单元也并未增加,且在形成J阵、计算Ii、Pi、Qi时,由于无需考虑对称性进行赋值,计算速 度反而略有增加。
[0039] 实施例2。分别用传统的不考虑稀疏性时Y阵的存贮方法以及本发明方法对 IEEE-57、-118、-300节点系统的Y阵进行存贮,比较其数据文件读写过程的平均迭代时间 及所需的存贮单元数。
[0040] 表3给出了用传统方法与本发明方法对上述系统Y阵读写数据过程的平均时间及 存贮单元数的比较。
[0041 ] 表3传统方法与本方法对IEEE系统Y阵数据文件读写时间及存贮单元数的比较 [0042]
[0043] V Tn、U1:传统方法对Y阵数据文件的平均读写时间、所需的存贮单元数;
[0044] T2、T21、U2:本发明方法对Y阵数据文件的平均读写时间、所需的存贮单元数;
[0045] W T21/Tn、U2AJ1:本发明方法与传统方法的平均读写时间、所需存贮单元数的 百分比。
[0046] 可以看出:
[0047] 1.无论读或写数据文件,本发明方法的存贮单元数和速度大大优于传统方法。
[0048] 以IEEE-300节点系统为例,本发明方法写数据文件的时间仅为传统方法的 6. 55% ;本发明方法读数据文件的时间仅为传统方法的6. 39% ;本发明方法所需存贮单元 仅为传统方法的4. 33%。
[0049] 2.电力系统节点数越多,本发明方法数据存贮和读取过程的优势越大。
[0050] 由于电力系统中每个节点与其它不接地节点相连的数量一般不超过10个,因此 本发明方法随着系统节点数的增加存贮单元并不会显著增加,写数据文件和读数据文件的 时间也不会显著增加。而传统方法则会显著增加。
[0051] 3.由于同时存贮对称矩阵Y上下三角的非零元素,因此在形成J阵、计算I^PpQ1 时将极为方便,而数据读写时间或存贮单元数与仅存贮上三角非零元素的方式相比几乎没 有差别。
[0052] 4.对于非对称矩阵数据的读写和应用,本发明方法具有更大的优势。
[0053] 本方法可以采用任何一种编程语言和编程环境实现,这里采用C++编程语言,开 发环境是Visual C++〇
【主权项】
1. 一种快速存贮及读取电力系统稀疏矩阵数据的方法,其特征包括以下步骤: 步骤1 :定义Y阵数组Y (n,26); 定义Y阵数组为Y (n,26),将其每行分为3组,分别存贮该行的行号、与行号对应的节点 数、主节点和所有非零元素子节点的列号及参数,具体方式如下: 第1组:"主节点行号i",位于第1列,为主节点对应的行号,为检验数据之用; 第2组:"节点数S/',位于第2列,为主节点及与该主节点连接的子节点数之和,S值由 程序自动累加以保证快速读取对应主节点和子节点的参数; 第3组:"主节点、子节点列号j及参数",位于第3~26列;按递增顺序存贮主节点及 与该主节点连接的子节点的列号j,分别位于第3*k列;相应主节点或子节点的自导纳和互 导纳分别位于3*k+l、3*k+2列,k的取值为:1~S i; 步骤2 :从数据文件中读取全部支路数据; 步骤3 :计算各节点的自导纳和互导纳; 步骤4 :形成Y (n,26)形式的Y阵; 步骤5 :将Y (n,26)写入数据文件以备后续程序使用。
【专利摘要】一种快速存贮及读取电力系统稀疏矩阵数据的方法,属于电力系统分析计算领域。本发明对导纳矩阵Y仅存贮主节点的行号、与主节点连接的子节点数S、主节点和子节点非零元素的列号和参数,大大减少了存贮单元和数据文件的读取时间,对Y阵数据的检索、修改、应用及对形成雅克比矩阵、计算节点电流、功率等较为简单直观、方便快捷。本发明对IEEE-57~-300节点系统进行验算完全可行,对IEEE-300节点系统与传统方法中不考虑稀疏性时对Y阵元素的存贮方式相比,存贮单元仅为传统方法的4.33%,写入或读取数据文件的时间分别为传统方法的6.55%和6.39%,且节点数越多,优势越明显。本发明可用于各工程领域中对称或不对称稀疏矩阵数据的快速存贮及读取。
【IPC分类】G06F17/16
【公开号】CN105045767
【申请号】CN201510364827
【发明人】陈恳, 万新儒, 邵尉哲, 席小青
【申请人】南昌大学
【公开日】2015年11月11日
【申请日】2015年6月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1