一种适合研究目的使用的牛顿法潮流计算方法.pdf

上传人:Y0****01 文档编号:970323 上传时间:2018-03-22 格式:PDF 页数:22 大小:686.60KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010509556.5

申请日:

2010.10.15

公开号:

CN101976838A

公开日:

2011.02.16

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):H02J 3/00申请日:20101015授权公告日:20121205终止日期:20131015|||授权|||实质审查的生效IPC(主分类):H02J 3/00申请日:20101015|||公开

IPC分类号:

H02J3/00; G06F19/00

主分类号:

H02J3/00

申请人:

大连海事大学

发明人:

姚玉斌; 赵红; 王莹; 顾本华

地址:

116026 辽宁省大连市凌海路1号大连海事大学

优先权:

专利代理机构:

大连东方专利代理有限责任公司 21212

代理人:

李猛

PDF下载: PDF下载
内容摘要

一种适合研究目的使用的牛顿法潮流计算方法,为以牛顿法潮流计算为基础进行进一步研究的科研人员提供一个易于修改和维护的牛顿法潮流计算算法。采用极坐标牛顿法潮流计算的基本原理步骤,在分析潮流计算各个组成部分的基础上提出了一种通过简单逻辑判断来避免不必要运算以提高潮流计算计算速度的方法。本发明的技术方案是在形成雅可比矩阵模块和修正方程高斯消去模块中通过简单判断来避免不必要的运算。采用本发明对一个445节点实际大型电网进行了计算,计算时间为0.484s,计算速度完全能够满足科研需要。

权利要求书

1: 一种适合研究目的使用的牛顿法潮流计算方法, 采用极坐标牛顿法潮流计算的基本 原理步骤, 其特征在于 : 在形成雅可比矩阵模块和修正方程高斯消去模块中通过简单判断 来避免不必要的运算 ; 其中所述的形成雅可比矩阵模块包括以下步骤 : 步骤 1 : 设置行号 i = 1 ; 步骤 2 : 判断节点 i 是否为平衡节点, 如果是平衡节点转至步骤 15 ; 步骤 3 : 设置列号 j = 1 ; 步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13 ; 步骤 5 : 判断节点 i 和节点 j 之间的导纳实部 Gij 和虚部 Bij 是否都为 0, 如果都为 0 转 至步骤 13 ; 步骤 6 : 计算雅可比矩阵元素 Ji+i-1, 如果 j ≠ i, 根据式 (3) 计算, 如果 j = i, 根据 j+j-1, 式 (11) 计算 ; 步骤 7 : 判断节点 j 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 9 ; 步骤 8 : 计算雅可比矩阵元素 Ji+i-1,j+j, 如果 j ≠ i, 根据式 (4) 计算, 如果 j = i, 根据 式 (12) 计算 ; 步骤 9 : 判断节点 i 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 13 ; 步骤 10 : 计算雅可比矩阵元素 Ji+i, 如果 j ≠ i, 根据式 (5) 计算, 如果 j = i, 根据 j+j-1, 式 (13) 计算 ; 步骤 11 : 判断节点 j 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 13 ; 步骤 12 : 计算雅可比矩阵元素 Ji+i, 如果 j ≠ i, 根据式 (6) 计算, 如果 j = i, 根据式 j+j, (14) 计算 ; 步骤 13 : 令 j = j+1 ; 步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4 ; 步骤 15 : 令 i = i+1 ; 步骤 16 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束 ; 所述的修正方程高斯消去模块的步骤是 : 步骤 1 : 设置当前行号 i = 1 ; 步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17 ; 步骤 3 : 设置 k = 1 ; 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12 ; 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11 ; 步骤 6 : 设置当前列号 j = k+1 ; 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10 ; 步骤 8 : 根据式 (18) 对系数矩阵进行消去运算 ; 步骤 9 : 令 j = j+1, 返回到步骤 7 ; 步骤 10 : 根据式 (20) 对右端常数项进行消去运算 ; 步骤 11 : 令 k = k+1, 返回到步骤 4 ; 步骤 12 : 设置当前列号 j = i+1 ; 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16 ; 2 步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算 ; 步骤 15 : 令 j = j+1, 返回到步骤 13 ; 步骤 16 : 根据式 (21) 对右端常数项进行规格化运算 ; 步骤 17 : 令 i = i+1 ; 步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。

说明书


一种适合研究目的使用的牛顿法潮流计算方法

    技术领域 本发明涉及一种电力系统牛顿法潮流计算方法, 特别是一种适合研究目的使用的 牛顿法潮流计算方法。
     背景技术
     潮流计算是电力系统中最基本的一种计算, 也是其它电力系统分析 ( 如静态安全 分析等 ) 的基础。牛顿法潮流计算算法是一种最常用的潮流计算方法, 科研人员经常以牛 顿法潮流计算为基础进行进一步的研究。 实用算法采用稀疏矩阵技术和节点优化编号等高 级技术。 这些技术虽然能大幅度提高潮流计算的速度、 降低内存占用量, 但编程非常麻烦且 不易修改和维护。 为了研究目的, 迫切需要一种易于编程、 修改和调试的牛顿法潮流计算算 法。 牛顿法潮流计算中, 如果节点电压采用极坐标表示为 则为极坐标牛
     顿法潮流计算, 其主要方程如下 :
     导纳矩阵为 :
     导纳矩阵可以反映出节点间的连接关系, 如果两个节点不直接连接, 它们的互导 纳为 0。电力网络中每个节点只与几个节点相连, 因此导纳矩阵是一个高度稀疏的矩阵, 它 的大部分元素为 0。
     功率偏差方程为 :
     式中, j ∈ i 表示节点 j 与节点 i 直接相连, n 为节点数, m 为 PQ 节点数。 修正方程为 :
     式中,为雅可比矩阵, 其元素计算公式为 : 当j≠i时
     Hij、 Nij、 Mij、 Lij 分别对应雅可比矩阵的 Ji+i-1, Ji+i-1, Ji+i, Ji+i, j+j-1、 j+j、 j+j-1、 j+j。当 j =i时
     或用下列式子计算 :式中, Pi、 Qi 分别为节点 i 的计算有功功率和无功功率, 按下式计算 :潮流计算的修正方程为线性方程, 设线性方程一般形式如下 :
     AX = B (17)
     对于线性方程, 可以采用高斯消去法求解, 本算法采用按行消去, 按行回代, 包括 3 个步骤, 分别为 :
     (a) 对系数矩阵的消去和规格化, 公式如下 :
     (b) 对右端常数项的消去和规格化, 公式如下 :(c) 回代求解, 公式如下 :极坐标牛顿法潮流计算算法的原理流程图如附图 1 所示, 主要包括以下步骤 :
     步骤 1 : 原始数据输入和电压初始化 :
     电压初始化一般采用平启动, 即 PV 节点和平衡节点的电压幅值取给定值, PQ 节点 的电压幅值取 1.0 ; 所有电压的相角都取 0.0。这里单位采用标幺值。
     步骤 2 : 形成节点导纳矩阵 Y ;
     步骤 3 : 形成雅可比矩阵 J :
     步骤 4 : 解方程及修正电压幅值 V、 相角 θ ;
     电压修正公式为 :
     步骤 5 : 节点及支路数据输出。发明内容 为满足研究目的需要, 本发明要提出一种适合研究目的使用的牛顿法潮流计算方 法, 为以牛顿法潮流计算为基础进行进一步研究的科研人员提供一个易于修改和维护的牛 顿法潮流计算算法。
     为了实现上述目的, 本发明采用极坐标牛顿法潮流计算的基本原理步骤, 在分析 潮流计算各个组成部分的基础上提出了一种通过简单逻辑判断来避免不必要运算以提高 潮流计算计算速度的方法。 本发明的技术方案是在形成雅可比矩阵模块和修正方程高斯消 去模块中通过简单判断来避免不必要的运算。
     从式 (3) ~式 (6) 可以看出, 当节点 i 和节点 j 之间没有支路连接时, 它们之间的 互导纳为 0, 不需要计算雅可比矩阵元素, 因此可以通过判断语句避免不必要的计算。同时 雅可比矩阵按 (2n)×(2n) 存储, PV 节点 ΔQ 对应的行和 ΔV 对应的列的元素都为 0, 与平 衡节点有关的行和列的元素也都为 0, 这样虽然增加了内存需求量, 但可以简化节点和方程 行列的对应关系, 大大降低编程难度, 也不会增加计算量。 形成雅可比矩阵模块包括以下步 骤:
     步骤 1 : 设置行号 i = 1。
     步骤 2 : 判断节点 i 是否为平衡节点, 如果是平衡节点转至步骤 15。
     步骤 3 : 设置列号 j = 1。
     步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13。
     步骤 5 : 判断节点 i 和节点 j 之间的导纳实部 Gij 和虚部 Bij 是否都为 0, 如果都为 0 转至步骤 13。
     步骤 6 : 计算雅可比矩阵元素 Ji+i-1, 如果 j ≠ i, 根据式 (3) 计算, 如果 j = i, j+j-1, 根据式 (11) 计算。
     步骤 7 : 判断节点 j 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 9。
     步骤 8 : 计算雅可比矩阵元素 Ji+i-1,j+j, 如果 j ≠ i, 根据式 (4) 计算, 如果 j = i, 根据式 (12) 计算。
     步骤 9 : 判断节点 i 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 13。
     步骤 10 : 计算雅可比矩阵元素 Ji+i, 如果 j ≠ i, 根据式 (5) 计算, 如果 j = i, j+j-1, 根据式 (13) 计算。
     步骤 11 : 判断节点 j 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 13。
     步骤 12 : 计算雅可比矩阵元素 Ji+i, 如果 j ≠ i, 根据式 (6) 计算, 如果 j = i, 根 j+j, 据式 (14) 计算。
     步骤 13 : 令 j = j+1。
     步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4。
     步骤 15 : 令 i = i+1。
     步骤 16 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     从式 (18) 可以看出, 如果则第 k 行对第 i 行的消去就没有必要了, 可以通过判断语句避免不必要的计算 ; 同时通过逻辑判断把雅可比矩阵中主对角元素为 0 的行 ( 主对角元素为 0 表示该行元素都是 0) 跳过去。本发明修正方程高斯消去模块的步骤是 :
     步骤 1 : 设置当前行号 i = 1。
     步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。
     步骤 3 : 设置 k = 1。
     步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。
     步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。
     步骤 6 : 设置当前列号 j = k+1。
     步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。
     步骤 8 : 根据式 (18) 对系数矩阵进行消去运算。
     步骤 9 : 令 j = j+1, 返回到步骤 7。
     步骤 10 : 根据式 (20) 对右端常数项进行消去运算。
     步骤 11 : 令 k = k+1, 返回到步骤 4。
     步骤 12 : 设置当前列号 j = i+1。
     步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。
     步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。
     步骤 15 : 令 j = j+1, 返回到步骤 13。
     步骤 16 : 根据式 (21) 对右端常数项进行规格化运算。
     步骤 17 : 令 i = i+1。
     步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     与现有技术相比, 本发明具有以下有益效果 :
     为以牛顿法潮流计算为基础进行进一步研究的科研人员提供一个易于修改和维 护的牛顿法潮流计算算法。采用本发明对一个 445 节点实际电网进行了计算, 计算时间为 0.484s, 计算速度完全能够满足科研需要。其潮流计算的内存占用量在 10MB 左右, 目前计 算机的内存一般都有几个 GB, 完全能够满足要求。附图说明
     本发明共有附图 6 张, 其中 : 图 1 是极坐标牛顿法潮流计算原理流程框图。 图 2 是本发明雅可比矩阵形成的流程框图。 图 3 是本发明修正方程高斯消去模块流程框图。 图 4 是本发明方法实施例的网络图。 图 5 是输电线路的等值电路。 图 6 是变压器支路的等值电路。具体实施方式
     下面结合附图对本发明作进一步地说明。附图 2 和附图 3 中 ε 为给定的小正数, 用来判断浮点数是否为 0, 本发明算例中令 ε = 10-20, 图 4 中编号为母线号。
     附图 4 是一个简单电力系统网络, 包括 2 个发电机, 3 个负荷, 2 条变压器支路, 2条 输电线路。共 5 条母线 ( 节点 ), 其中母线 1 为 PV 节点, 此母线的有功功率和电压幅值给 定, 母线 2 为平衡节点, 此母线的电压幅值和相角给定, 其它 3 条母线为 PQ 节点, 这些母线 的有功功率和无功功率给定。支路参数见表 1, 母线数据见表 2, 表中单位为标幺值。
     表 1 附图 4 实施例的支路参数
     表 2 附图 4 实施例的母线数据
     采用本发明方法对附图 4 所示网络进行潮流计算, 步骤如下 :
     步骤 1 : 原始数据输入和电压初始化。
     输入表 1 和表 2 的原始数据。电压初始化采用平启动, 母线 1 和母线 2 电压初值 取给定电压, 都为 1.05, 其它母线电压初值取 1.0。平衡节点的相角取 0.0。
     步骤 2 : 形成节点导纳矩阵 Y。导纳矩阵如下 :
     步骤 3 : 形成雅可比矩阵 J。第 1 次迭代过程的雅可比矩阵为 :
     步骤 4 : 解方程及修正电压幅值 V、 相角 θ。 电压修正公式为 :第 1 次迭代过程中, 解方程得到的修正量及电压幅值 V、 相角 θ 见表 3。算例共迭 代 3 次, 各次迭代结果见表 4。
     表 3 附图 4 实施例的第 1 次迭代结果
     表 4 附图 4 实施例的各次迭代结果V1/θ1 1.050/8.34° 1.050/7.10° 1.050/7.07° V2/θ2 1.050/0.00° 1.050/0.00° 1.050/0.00° V3/θ3 1.053/-1.82° 1.040/-2.04° 1.040/-2.05° V4/θ4 1.054/-3.95° 1.044/-3.93° 1.044/-3.94° V5/θ5 1.093/4.04° 1.079/3.11° 1.079/3.08°迭代序号 1 2 3步骤 5 : 节点及支路数据输出。
     节点电压和功率计算结果见表 5。支路传输功率计算结果见表 6, 由于支路存在网 损, 支路两端的功率不是互为相反数。表中单位除相角外都为标幺值。
     表 5 附图 4 实施例的节点电压和功率计算结果
     母线号 1 2 3 4 5
     电压幅值 V 1.05000 1.05000 1.03994 1.04416 1.07876电压相角 θ(° ) 7.07065 0.00000 -2.04660 -3.93767 3.08399有功 P 5.00000 2.39012 -1.60000 -3.70000 -2.00000无功 Q 1.75685 2.02699 -0.80000 -1.30000 -1.00000表 6 附图 4 实施例的支路传输功率计算结果 母线号 i 1 2 3 3 母线号 j 5 4 4 5 Pij 5.00000 2.39012 1.32078 -2.92078 Qij 1.75686 2.02699 -0.52292 -0.27708 Pji -5.00000 -2.39012 -1.30988 3.00000 Qji -1.37473 -1.75974 0.45974 0.37473支路号 1 2 3 4
     按照图 2 所示流程, 第 1 次迭代时生成雅可比矩阵的步骤如下 ( 形成雅可比矩阵 前, 此矩阵元素全部清零 ) :
     步骤 1 : 设置行号 i = 1。
     形成与第 1 个节点有关的雅可比矩阵第 1 行和第 2 行元素。虽然节点 1 是 PV 节 点, 雅可比矩阵不包含与该节点无功有关的行, 也不包含与该节点电压幅值有关的列。 但为 了计算和编程方便, 仍保留该行和列, 其元素都为 0。
     步骤 2 : 判断节点 i 是否为平衡节点, 如果是平衡节点转至步骤 15。
     节点 1 是 PV 节点, 不是平衡节点, 执行步骤 3。
     步骤 3 : 设置列号 j = 1。形成雅可比矩阵的第 1 列和第 2 列元素。
     步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13。 节点 1 是 PV 节点, 不是平衡节点, 执行步骤 5。 步骤 5 : 判断节点 i 和节点 j 之间的导纳实部 Gij 和虚部 Bij 是否都为 0, 如果都为0 转至步骤 13。
     由于导纳矩阵虚部 B11 = -66.67 不为 0, 执行步骤 6。
     步骤 6 : 计算雅可比矩阵元素 Ji+i-1, 如果 j ≠ i, 根据式 (3) 计算, 如果 j = i, j+j-1,
     根据式 (11) 计算。
     由于 j = i, 根据式 (11) 计算雅可比矩阵元素 J11 = -66.67。
     步骤 7 : 判断节点 j 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 9。
     节点 1 不是 PQ 节点, 转至步骤 9。
     步骤 9 : 判断节点 i 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 13。
     节点 1 不是 PQ 节点, 转至步骤 13。
     步骤 13 : 令 j = j+1。j = 1+1 = 2。
     步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4。
     n = 5, j = 2 不大于 n, 返回到步骤 4。
     步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13。
     节点 2 是平衡节点, 转至步骤 13。
     步骤 13 : 令 j = j+1。j = 2+1 = 3。 步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4。
     n = 5, j = 3 不大于 n, 返回到步骤 4。
     步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13。
     节点 3 是 PQ 节点, 不是平衡节点, 执行步骤 5。
     步骤 5 : 判断节点 i 和节点 j 之间的导纳实部 Gij 和虚部 Bij 是否都为 0, 如果都为 0 转至步骤 13。
     由于导纳矩阵实部 G13 和虚部 B13 都为 0, 转至步骤 13。
     步骤 13 : 令 j = j+1。j = 3+1 = 4。
     步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4。
     n = 5, j = 4 不大于 n, 返回到步骤 4。
     步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13。
     节点 4 是 PQ 节点, 不是平衡节点, 执行步骤 5。
     步骤 5 : 判断节点 i 和节点 j 之间的导纳实部 Gij 和虚部 Bij 是否都为 0, 如果都为 0 转至步骤 13。
     由于导纳矩阵实部 G14 和虚部 B14 都为 0, 转至步骤 13。
     步骤 13 : 令 j = j+1。j = 4+1 = 5。
     步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4。
     n = 5, j = 5 不大于 n, 返回到步骤 4。
     步骤 4 : 判断节点 j 是否为平衡节点, 如果是平衡节点转至步骤 13。
     节点 5 是 PQ 节点, 不是平衡节点, 执行步骤 5。
     步骤 5 : 判断节点 i 和节点 j 之间的导纳实部 Gij 和虚部 Bij 是否都为 0, 如果都为 0 转至步骤 13。
     由于导纳矩阵虚部 B15 = 63.49 不为 0, 执行步骤 6。
     步骤 6 : 计算雅可比矩阵元素 Ji+i-1, 如果 j ≠ i, 根据式 (3) 计算, 如果 j = i, j+j-1,
     根据式 (11) 计算。
     由于 j ≠ i, 根据式 (3) 计算雅可比矩阵元素 J19 = 66.67。
     步骤 7 : 判断节点 j 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 9。
     节点 5 是 PQ 节点, 执行步骤 8。
     步骤 8 : 计算雅可比矩阵元素 Ji+i-1,j+j, 如果 j ≠ i, 根据式 (4) 计算, 如果 j = i, 根据式 (12) 计算。
     由于 j ≠ i, 根据式 (4) 计算雅可比矩阵元素 J1, 10 = 0.000。
     步骤 9 : 判断节点 i 是否为 PQ 节点, 如果不是 PQ 节点转至步骤 13。
     节点 1 是 PV 节点, 不是 PQ 节点, 转至步骤 13。
     步骤 13 : 令 j = j+1。j = 5+1 = 6。
     步骤 14 : 判断 j 是否大于 n, 如果 j 不大于 n, 则返回到步骤 4。
     n = 5, j = 6 大于 n, 执行步骤 15。
     至此与节点 1 有关的雅可比矩阵前两行元素已经计算完毕, 结果见式 (24) 的前两 行。
     步骤 15 : 令 i = i+1。i = 1+1 = 2。 形成与第 2 个节点有关的雅可比矩阵第 3 行和第 4 行元素。
     步骤 16 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     n = 5, i = 2 不大于 n, 返回到步骤 2。
     步骤 2 : 判断节点 i 是否为平衡节点, 如果是平衡节点转至步骤 15。
     节点 2 是平衡节点, 转至步骤 15。
     步骤 15 : 令 i = i+1。i = 2+1 = 3。
     形成与第 3 个节点有关的雅可比矩阵第 5 行和第 6 行元素。
     步骤 16 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     n = 5, i = 3 不大于 n, 返回到步骤 2。重复此过程直到 i = 6 大于 n, 结束。形成 的导纳矩阵见式 (24)。
     第 1 次迭代时, 得到的潮流计算修正方程如下 :
     按照图 3 所示流程, 第 1 次迭代时高斯消去的步骤如下 : 步骤 1 : 设置当前行号 i = 1。对第 1 行进行消去操作。 步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。a11 = -66.67 不为 0, 执行步骤 3。
     步骤 3 : 设置 k = 1。用第 1 行消去。
     步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。
     k = 1, i = 1, k 不小于 i, 转至步骤 12。
     步骤 12 : 设置当前列号 j = i+1。j = 1+1 = 2。
     步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。
     n = 10, j = 2 不大于 n, 执行步骤 14。
     步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。
     结果为 a12 = 0.000/(-66.67) = 0.000。
     步骤 15 : 令 j = j+1, 返回到步骤 13。j = 2+1 = 3, 返回到步骤 13。
     步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。
     n = 10, j = 3 不大于 n, 执行步骤 14。
     步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。
     结果为 a13 = 0.000/(-66.67) = 0.000。重复此过程直到 j = 10, 完成系数矩阵 第 1 行规格化运算, 结果除 a11 = -66.67 不变, a19 = -1.000 外, 其它都为 0.000。
     步骤 15 : 令 j = j+1, 返回到步骤 13。j = 10+1 = 11, 返回到步骤 13。
     步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。
     n = 10, j = 11 大于 n, 转至步骤 16。
     步骤 16 : 根据式 (21) 对右端常数项进行规格化运算。
     结果为 b1 = 5.000/(-66.67) = -0.075。
     步骤 17 : 令 i = i+1。i = 1+1 = 2, 对第 2 行进行消去操作。
     步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     n = 10, i = 2 不大于 n, 返回到步骤 2。
     步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。
     a22 = 0, 转至步骤 17。
     步骤 17 : 令 i = i+1。i = 2+1 = 3, 对第 3 行进行消去操作。
     步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     n = 10, i = 3 不大于 n, 返回到步骤 2。
     步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。
     a33 = 0, 转至步骤 17。
     步骤 17 : 令 i = i+1。i = 3+1 = 4, 对第 4 行进行消去操作。
     步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     n = 10, i = 4 不大于 n, 返回到步骤 2。
     步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。
     a44 = 0, 转至步骤 17。
     步骤 17 : 令 i = i+1。i = 4+1 = 5, 对第 5 行进行消去操作。
     步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。
     n = 10, i = 5 不大于 n, 返回到步骤 2。
     步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。a55 = -64.24 不为 0, 执行步骤 3。 步骤 3 : 设置 k = 1。用第 1 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 1, i = 5, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a51 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 1+1 = 2, 用第 2 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 2, i = 5, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a52 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 2+1 = 3, 用第 3 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 3, i = 5, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a53 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 3+1 = 4, 用第 4 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 4, i = 5, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a54 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 4+1 = 5, 用第 5 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 5, i = 5, k 不小于 i, 转至步骤 12。 步骤 12 : 设置当前列号 j = i+1。j = 5+1 = 6。 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。 n = 10, j = 6 不大于 n, 执行步骤 14。 步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。 结果为 a56 = -16.62/(-64.24) = 0.259。 步骤 15 : 令 j = j+1, 返回到步骤 13。j = 6+1 = 7, 返回到步骤 13。 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。 n = 10, j = 7 不大于 n, 执行步骤 14。 步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。 结果为 a57 = 37.82/(-64.24) = -0.589。 步骤 15 : 令 j = j+1, 返回到步骤 13。j = 7+1 = 8, 返回到步骤 13。 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。 n = 10, j = 8 不大于 n, 执行步骤 14。 步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。 结果为 a58 = 9.077/(-64.24) = -0.141。步骤 15 : 令 j = j+1, 返回到步骤 13。j = 8+1 = 9, 返回到步骤 13。 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。 n = 10, j = 9 不大于 n, 执行步骤 14。 步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。 结果为 a59 = 26.42/(-64.24) = -0.411。 步骤 15 : 令 j = j+1, 返回到步骤 13。j = 9+1 = 10, 返回到步骤 13。 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。 n = 10, j = 10 不大于 n, 执行步骤 14。 步骤 14 : 根据式 (19) 对系数矩阵进行规格化运算。 结果为 a5, 10 = 7.547/(-64.24) = -0.117。 步骤 15 : 令 j = j+1, 返回到步骤 13。j = 10+1 = 11, 返回到步骤 13。 步骤 13 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 16。 n = 10, j = 11 大于 n, 转至步骤 16。 步骤 16 : 根据式 (21) 对右端常数项进行规格化运算。 结果为 b5 = -1.600/(-64.24) = 0.025。 步骤 17 : 令 i = i+1。i = 5+1 = 6, 对第 6 行进行消去操作。 步骤 18 : 判断 i 是否大于 n, 如果 i 不大于 n, 则返回到步骤 2 ; 否则结束。 n = 10, i = 6 不大于 n, 返回到步骤 2。 步骤 2 : 判断矩阵元素 aii 是否为 0, 如果 aii 为 0, 则转至步骤 17。 a66 = -63.98 不为 0, 执行步骤 3。 步骤 3 : 设置 k = 1。用第 1 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 1, i = 6, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a61 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 1+1 = 2, 用第 2 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 2, i = 6, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a62 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 2+1 = 3, 用第 3 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 3, i = 6, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a63 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 3+1 = 4, 用第 4 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 4, i = 6, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。a64 = 0, 转至步骤 11。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 4+1 = 5, 用第 5 行消去。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 5, i = 6, k 小于 i, 执行步骤 5。 步骤 5 : 判断矩阵元素 aik 是否为 0, 如果 aik 为 0, 则转至步骤 11。 a65 = 16.62, 执行步骤 6。 步骤 6 : 设置当前列号 j = k+1。j = 5+1 = 6。 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。 n = 10, j = 6, j 不大于 n, 执行步骤 8。 步骤 8 : 根据式 (18) 进行消去运算。 a66 = a66-a65a56 = -63.98-16.62×0.259 = -68.28。 步骤 9 : 令 j = j+1, 返回到步骤 7。j = 6+1 = 7, 返回到步骤 7 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。 n = 10, j = 7, j 不大于 n, 执行步骤 8。 步骤 8 : 根据式 (18) 对系数矩阵进行消去运算。 a67 = a67-a65a57 = -9.077-16.62×(-0.589) = 0.712。 步骤 9 : 令 j = j+1, 返回到步骤 7。j = 7+1 = 8, 返回到步骤 7 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。 n = 10, j = 8, j 不大于 n, 执行步骤 8。 步骤 8 : 根据式 (18) 对系数矩阵进行消去运算。 a68 = a68-a65a58 = 37.82-16.62×(-0.141) = 40.16。 步骤 9 : 令 j = j+1, 返回到步骤 7。j = 8+1 = 9, 返回到步骤 7 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。 n = 10, j = 9, j 不大于 n, 执行步骤 8。 步骤 8 : 根据式 (18) 对系数矩阵进行消去运算。 a69 = a69-a65a59 = -7.547-16.62×(-0.411) = -0.716。 步骤 9 : 令 j = j+1, 返回到步骤 7。j = 9+1 = 10, 返回到步骤 7 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。 n = 10, j = 10, j 不大于 n, 执行步骤 8。 步骤 8 : 根据式 (18) 对系数矩阵进行消去运算。 a6, 10 = a6, 10-a65a5, 10 = 26.42-16.62×(-0.117) = 28.36。 步骤 9 : 令 j = j+1, 返回到步骤 7。j = 10+1 = 11, 返回到步骤 7 步骤 7 : 判断 j 是否大于 n, 如果 j 大于 n, 则转至步骤 10。 n = 10, j = 11, j 大于 n, 转至步骤 10。 步骤 10 : 根据式 (20) 进行对右端常数项进行消去运算。 b6 = b6-a65b5 = -0.670-16.62×0.025 = -1.086。 步骤 11 : 令 k = k+1, 返回到步骤 4。k = 5+1 = 6, 返回到步骤 4。 步骤 4 : 判断 k 是否小于 i, 如果 k 不小于 i, 则转至步骤 12。 k = 6, i = 6, k 不小于 i, 转至步骤 12, 对第 6 行进行规格化。重复此过程直到 i= 11 大于 n, 结束, 完成对方程的高斯消去工作。得到方程如下 :
     采用本发明和几种对比方法对另一个实施例进行了计算, 该实施例为一个 445 节 点实际电网, 节点数为 445, 支路数为 544。计算时收敛精度为 0.00001。几种潮流计算算法 分别为 :
     方法 1 : 不采用稀疏矩阵技术。
     方法 2 : 不采用稀疏矩阵技术, 但使用判断避免不必要运算, 为本发明方法。
     方法 3 : 采用稀疏矩阵技术, 但不使用节点优化编号。
     方法 4 : 采用稀疏矩阵技术和节点优化编号。
     几种方法的计算时间见表 7, 从表 7 可见仅仅通过简单的逻辑判断就能极大地提 高计算速度, 计算速度与采用稀疏矩阵技术的方法 3 和方法 4 相差不太大, 但编程难度要小 得多, 也利于修改和维护。
     表 7 几种牛顿法计算时间比较
     潮流计算方法 方法 1 方法 2 方法 3 方法 4计算时间 (s) 5.953 0.484 0.296 0.156不采用稀疏矩阵技术的方法 1 和方法 2 的内存需求量见表 8, 表中矩阵元素为浮点 数据类型。 采用稀疏矩阵技术的方法 3 和方法 4 的内存需求量见表 9, 表中矩阵元素为浮点 数据类型和整型数。 表中导纳矩阵元素数为导纳矩阵元素个数, 导纳矩阵元素为复数, 因此 每个导纳矩阵元素为两个浮点数据。每个双精度浮点数占 8 个字节, 每个整型数占 4 个字 节。
     表 8 方法 1 和方法 2 的内存需求量
     表 9 方法 3 和方法 4 的内存需求量表 9 中导纳矩阵、 雅可比矩阵和方程系数矩阵采用稀疏矩阵技术存储, 稀疏矩阵 技术一般采用按行存储方式。设一个矩阵行数为 n, 非零元素个数为 m, 需要存储以下非零 元素信息 :
     VA——存储矩阵中非零元素的值, 共 m 个, 为浮点数据类型 ;
     JA——存储矩阵中非零元素的列号, 共 m 个, 为整型 ;
     IA——存储矩阵中每行第一个非零元素在 VA 中的位置, 共 n 个, 为整型。
     内存需求量按下式计算 :
     S = 8m+4m+4n (25)
     导纳矩阵元素为复数, 需要两个浮点数单元, 采用稀疏矩阵技术存储时按下式计 算:
     S = 16m+4m+4n (26)
     由表 8 和表 9 的结果可见, 采用稀疏矩阵技术, 内存占用量明显减少, 同时采用稀 疏矩阵技术和节点优化编号算法的内存占用量更少。 虽然不采用稀疏矩阵技术内存占用量 明显增加, 加上其它数组内存的总内存占用量约为 10MB。考虑到目前计算机一般有几个 GB 的内存, 对于多达 445 节点的大型实际电网来说, 10MB 左右的内存要求并不太多。
     本算法可以采用任何一种编程语言和编程环境实现, 如 C 语言、 C++、 FORTRAN、 Delphi 等。开发环境可以采用 Visual C++、 Borland C++Builder、 Visual FORTRAN 等。
    

一种适合研究目的使用的牛顿法潮流计算方法.pdf_第1页
第1页 / 共22页
一种适合研究目的使用的牛顿法潮流计算方法.pdf_第2页
第2页 / 共22页
一种适合研究目的使用的牛顿法潮流计算方法.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《一种适合研究目的使用的牛顿法潮流计算方法.pdf》由会员分享,可在线阅读,更多相关《一种适合研究目的使用的牛顿法潮流计算方法.pdf(22页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101976838A43申请公布日20110216CN101976838ACN101976838A21申请号201010509556522申请日20101015H02J3/00200601G06F19/0020060171申请人大连海事大学地址116026辽宁省大连市凌海路1号大连海事大学72发明人姚玉斌赵红王莹顾本华74专利代理机构大连东方专利代理有限责任公司21212代理人李猛54发明名称一种适合研究目的使用的牛顿法潮流计算方法57摘要一种适合研究目的使用的牛顿法潮流计算方法,为以牛顿法潮流计算为基础进行进一步研究的科研人员提供一个易于修改和维护的牛顿法潮流计算算法。采用。

2、极坐标牛顿法潮流计算的基本原理步骤,在分析潮流计算各个组成部分的基础上提出了一种通过简单逻辑判断来避免不必要运算以提高潮流计算计算速度的方法。本发明的技术方案是在形成雅可比矩阵模块和修正方程高斯消去模块中通过简单判断来避免不必要的运算。采用本发明对一个445节点实际大型电网进行了计算,计算时间为0484S,计算速度完全能够满足科研需要。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书15页附图4页CN101976843A1/2页21一种适合研究目的使用的牛顿法潮流计算方法,采用极坐标牛顿法潮流计算的基本原理步骤,其特征在于在形成雅可比矩阵模块和修正方程高斯消去。

3、模块中通过简单判断来避免不必要的运算;其中所述的形成雅可比矩阵模块包括以下步骤步骤1设置行号I1;步骤2判断节点I是否为平衡节点,如果是平衡节点转至步骤15;步骤3设置列号J1;步骤4判断节点J是否为平衡节点,如果是平衡节点转至步骤13;步骤5判断节点I和节点J之间的导纳实部GIJ和虚部BIJ是否都为0,如果都为0转至步骤13;步骤6计算雅可比矩阵元素JII1,JJ1,如果JI,根据式3计算,如果JI,根据式11计算;步骤7判断节点J是否为PQ节点,如果不是PQ节点转至步骤9;步骤8计算雅可比矩阵元素JII1,JJ,如果JI,根据式4计算,如果JI,根据式12计算;步骤9判断节点I是否为PQ节。

4、点,如果不是PQ节点转至步骤13;步骤10计算雅可比矩阵元素JII,JJ1,如果JI,根据式5计算,如果JI,根据式13计算;步骤11判断节点J是否为PQ节点,如果不是PQ节点转至步骤13;步骤12计算雅可比矩阵元素JII,JJ,如果JI,根据式6计算,如果JI,根据式14计算;步骤13令JJ1;步骤14判断J是否大于N,如果J不大于N,则返回到步骤4;步骤15令II1;步骤16判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束;所述的修正方程高斯消去模块的步骤是步骤1设置当前行号I1;步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17;步骤3设置K1;步骤4判断K是否小。

5、于I,如果K不小于I,则转至步骤12;步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11;步骤6设置当前列号JK1;步骤7判断J是否大于N,如果J大于N,则转至步骤10;步骤8根据式18对系数矩阵进行消去运算;步骤9令JJ1,返回到步骤7;步骤10根据式20对右端常数项进行消去运算;步骤11令KK1,返回到步骤4;步骤12设置当前列号JI1;步骤13判断J是否大于N,如果J大于N,则转至步骤16;权利要求书CN101976838ACN101976843A2/2页3步骤14根据式19对系数矩阵进行规格化运算;步骤15令JJ1,返回到步骤13;步骤16根据式21对右端常数项进行规格化。

6、运算;步骤17令II1;步骤18判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。权利要求书CN101976838ACN101976843A1/15页4一种适合研究目的使用的牛顿法潮流计算方法技术领域0001本发明涉及一种电力系统牛顿法潮流计算方法,特别是一种适合研究目的使用的牛顿法潮流计算方法。背景技术0002潮流计算是电力系统中最基本的一种计算,也是其它电力系统分析如静态安全分析等的基础。牛顿法潮流计算算法是一种最常用的潮流计算方法,科研人员经常以牛顿法潮流计算为基础进行进一步的研究。实用算法采用稀疏矩阵技术和节点优化编号等高级技术。这些技术虽然能大幅度提高潮流计算的速度、降低内。

7、存占用量,但编程非常麻烦且不易修改和维护。为了研究目的,迫切需要一种易于编程、修改和调试的牛顿法潮流计算算法。0003牛顿法潮流计算中,如果节点电压采用极坐标表示为则为极坐标牛顿法潮流计算,其主要方程如下0004导纳矩阵为00050006导纳矩阵可以反映出节点间的连接关系,如果两个节点不直接连接,它们的互导纳为0。电力网络中每个节点只与几个节点相连,因此导纳矩阵是一个高度稀疏的矩阵,它的大部分元素为0。0007功率偏差方程为00080009式中,JI表示节点J与节点I直接相连,N为节点数,M为PQ节点数。0010修正方程为00110012式中,为雅可比矩阵,其元素计算公式为当JI时0013说明。

8、书CN101976838ACN101976843A2/15页50014001500160017HIJ、NIJ、MIJ、LIJ分别对应雅可比矩阵的JII1,JJ1、JII1,JJ、JII,JJ1、JII,JJ。当JI时00180019002000210022或用下列式子计算00230024002500260027式中,PI、QI分别为节点I的计算有功功率和无功功率,按下式计算002800290030潮流计算的修正方程为线性方程,设线性方程一般形式如下0031AXB170032对于线性方程,可以采用高斯消去法求解,本算法采用按行消去,按行回代,包括3个步骤,分别为0033A对系数矩阵的消去和规格化。

9、,公式如下003400350036B对右端常数项的消去和规格化,公式如下0037说明书CN101976838ACN101976843A3/15页600380039C回代求解,公式如下00400041极坐标牛顿法潮流计算算法的原理流程图如附图1所示,主要包括以下步骤0042步骤1原始数据输入和电压初始化0043电压初始化一般采用平启动,即PV节点和平衡节点的电压幅值取给定值,PQ节点的电压幅值取10;所有电压的相角都取00。这里单位采用标幺值。0044步骤2形成节点导纳矩阵Y;0045步骤3形成雅可比矩阵J0046步骤4解方程及修正电压幅值V、相角;0047电压修正公式为004800490050。

10、步骤5节点及支路数据输出。发明内容0051为满足研究目的需要,本发明要提出一种适合研究目的使用的牛顿法潮流计算方法,为以牛顿法潮流计算为基础进行进一步研究的科研人员提供一个易于修改和维护的牛顿法潮流计算算法。0052为了实现上述目的,本发明采用极坐标牛顿法潮流计算的基本原理步骤,在分析潮流计算各个组成部分的基础上提出了一种通过简单逻辑判断来避免不必要运算以提高潮流计算计算速度的方法。本发明的技术方案是在形成雅可比矩阵模块和修正方程高斯消去模块中通过简单判断来避免不必要的运算。0053从式3式6可以看出,当节点I和节点J之间没有支路连接时,它们之间的互导纳为0,不需要计算雅可比矩阵元素,因此可以。

11、通过判断语句避免不必要的计算。同时雅可比矩阵按2N2N存储,PV节点Q对应的行和V对应的列的元素都为0,与平衡节点有关的行和列的元素也都为0,这样虽然增加了内存需求量,但可以简化节点和方程行列的对应关系,大大降低编程难度,也不会增加计算量。形成雅可比矩阵模块包括以下步骤0054步骤1设置行号I1。0055步骤2判断节点I是否为平衡节点,如果是平衡节点转至步骤15。0056步骤3设置列号J1。0057步骤4判断节点J是否为平衡节点,如果是平衡节点转至步骤13。0058步骤5判断节点I和节点J之间的导纳实部GIJ和虚部BIJ是否都为0,如果都为0转至步骤13。0059步骤6计算雅可比矩阵元素JII。

12、1,JJ1,如果JI,根据式3计算,如果JI,根据式11计算。说明书CN101976838ACN101976843A4/15页70060步骤7判断节点J是否为PQ节点,如果不是PQ节点转至步骤9。0061步骤8计算雅可比矩阵元素JII1,JJ,如果JI,根据式4计算,如果JI,根据式12计算。0062步骤9判断节点I是否为PQ节点,如果不是PQ节点转至步骤13。0063步骤10计算雅可比矩阵元素JII,JJ1,如果JI,根据式5计算,如果JI,根据式13计算。0064步骤11判断节点J是否为PQ节点,如果不是PQ节点转至步骤13。0065步骤12计算雅可比矩阵元素JII,JJ,如果JI,根据式。

13、6计算,如果JI,根据式14计算。0066步骤13令JJ1。0067步骤14判断J是否大于N,如果J不大于N,则返回到步骤4。0068步骤15令II1。0069步骤16判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0070从式18可以看出,如果则第K行对第I行的消去就没有必要了,可以通过判断语句避免不必要的计算;同时通过逻辑判断把雅可比矩阵中主对角元素为0的行主对角元素为0表示该行元素都是0跳过去。本发明修正方程高斯消去模块的步骤是0071步骤1设置当前行号I1。0072步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。0073步骤3设置K1。0074步骤4判断K。

14、是否小于I,如果K不小于I,则转至步骤12。0075步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0076步骤6设置当前列号JK1。0077步骤7判断J是否大于N,如果J大于N,则转至步骤10。0078步骤8根据式18对系数矩阵进行消去运算。0079步骤9令JJ1,返回到步骤7。0080步骤10根据式20对右端常数项进行消去运算。0081步骤11令KK1,返回到步骤4。0082步骤12设置当前列号JI1。0083步骤13判断J是否大于N,如果J大于N,则转至步骤16。0084步骤14根据式19对系数矩阵进行规格化运算。0085步骤15令JJ1,返回到步骤13。0086步骤1。

15、6根据式21对右端常数项进行规格化运算。0087步骤17令II1。0088步骤18判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0089与现有技术相比,本发明具有以下有益效果0090为以牛顿法潮流计算为基础进行进一步研究的科研人员提供一个易于修改和维护的牛顿法潮流计算算法。采用本发明对一个445节点实际电网进行了计算,计算时间为0484S,计算速度完全能够满足科研需要。其潮流计算的内存占用量在10MB左右,目前计算机的内存一般都有几个GB,完全能够满足要求。说明书CN101976838ACN101976843A5/15页8附图说明0091本发明共有附图6张,其中0092图1是极坐。

16、标牛顿法潮流计算原理流程框图。0093图2是本发明雅可比矩阵形成的流程框图。0094图3是本发明修正方程高斯消去模块流程框图。0095图4是本发明方法实施例的网络图。0096图5是输电线路的等值电路。0097图6是变压器支路的等值电路。具体实施方式0098下面结合附图对本发明作进一步地说明。附图2和附图3中为给定的小正数,用来判断浮点数是否为0,本发明算例中令1020,图4中编号为母线号。0099附图4是一个简单电力系统网络,包括2个发电机,3个负荷,2条变压器支路,2条输电线路。共5条母线节点,其中母线1为PV节点,此母线的有功功率和电压幅值给定,母线2为平衡节点,此母线的电压幅值和相角给定。

17、,其它3条母线为PQ节点,这些母线的有功功率和无功功率给定。支路参数见表1,母线数据见表2,表中单位为标幺值。0100表1附图4实施例的支路参数01010102表2附图4实施例的母线数据01030104采用本发明方法对附图4所示网络进行潮流计算,步骤如下0105步骤1原始数据输入和电压初始化。0106输入表1和表2的原始数据。电压初始化采用平启动,母线1和母线2电压初值取给定电压,都为105,其它母线电压初值取10。平衡节点的相角取00。0107步骤2形成节点导纳矩阵Y。导纳矩阵如下0108说明书CN101976838ACN101976843A6/15页90109步骤3形成雅可比矩阵J。第1次。

18、迭代过程的雅可比矩阵为01100111步骤4解方程及修正电压幅值V、相角。0112电压修正公式为011301140115第1次迭代过程中,解方程得到的修正量及电压幅值V、相角见表3。算例共迭代3次,各次迭代结果见表4。0116表3附图4实施例的第1次迭代结果01170118表4附图4实施例的各次迭代结果0119迭代序号V1/1V2/2V3/3V4/4V5/511050/8341050/0001053/1821054/3951093/40421050/7101050/0001040/2041044/3931079/31131050/7071050/0001040/2051044/3941079/。

19、308说明书CN101976838ACN101976843A7/15页100120步骤5节点及支路数据输出。0121节点电压和功率计算结果见表5。支路传输功率计算结果见表6,由于支路存在网损,支路两端的功率不是互为相反数。表中单位除相角外都为标幺值。0122表5附图4实施例的节点电压和功率计算结果0123母线号电压幅值V电压相角有功P无功Q110500070706550000017568521050000000002390122026993103994204660160000080000410441639376737000013000051078763083992000001000000124。

20、表6附图4实施例的支路传输功率计算结果0125支路号母线号I母线号JPIJQIJPJIQJI1155000001756865000001374732242390122026992390121759743341320780522921309880459744352920780277083000000374730126按照图2所示流程,第1次迭代时生成雅可比矩阵的步骤如下形成雅可比矩阵前,此矩阵元素全部清零0127步骤1设置行号I1。0128形成与第1个节点有关的雅可比矩阵第1行和第2行元素。虽然节点1是PV节点,雅可比矩阵不包含与该节点无功有关的行,也不包含与该节点电压幅值有关的列。但为了计算和。

21、编程方便,仍保留该行和列,其元素都为0。0129步骤2判断节点I是否为平衡节点,如果是平衡节点转至步骤15。0130节点1是PV节点,不是平衡节点,执行步骤3。0131步骤3设置列号J1。形成雅可比矩阵的第1列和第2列元素。0132步骤4判断节点J是否为平衡节点,如果是平衡节点转至步骤13。0133节点1是PV节点,不是平衡节点,执行步骤5。0134步骤5判断节点I和节点J之间的导纳实部GIJ和虚部BIJ是否都为0,如果都为说明书CN101976838ACN101976843A8/15页110转至步骤13。0135由于导纳矩阵虚部B116667不为0,执行步骤6。0136步骤6计算雅可比矩阵元。

22、素JII1,JJ1,如果JI,根据式3计算,如果JI,0137根据式11计算。0138由于JI,根据式11计算雅可比矩阵元素J116667。0139步骤7判断节点J是否为PQ节点,如果不是PQ节点转至步骤9。0140节点1不是PQ节点,转至步骤9。0141步骤9判断节点I是否为PQ节点,如果不是PQ节点转至步骤13。0142节点1不是PQ节点,转至步骤13。0143步骤13令JJ1。J112。0144步骤14判断J是否大于N,如果J不大于N,则返回到步骤4。0145N5,J2不大于N,返回到步骤4。0146步骤4判断节点J是否为平衡节点,如果是平衡节点转至步骤13。0147节点2是平衡节点,转。

23、至步骤13。0148步骤13令JJ1。J213。0149步骤14判断J是否大于N,如果J不大于N,则返回到步骤4。0150N5,J3不大于N,返回到步骤4。0151步骤4判断节点J是否为平衡节点,如果是平衡节点转至步骤13。0152节点3是PQ节点,不是平衡节点,执行步骤5。0153步骤5判断节点I和节点J之间的导纳实部GIJ和虚部BIJ是否都为0,如果都为0转至步骤13。0154由于导纳矩阵实部G13和虚部B13都为0,转至步骤13。0155步骤13令JJ1。J314。0156步骤14判断J是否大于N,如果J不大于N,则返回到步骤4。0157N5,J4不大于N,返回到步骤4。0158步骤4判。

24、断节点J是否为平衡节点,如果是平衡节点转至步骤13。0159节点4是PQ节点,不是平衡节点,执行步骤5。0160步骤5判断节点I和节点J之间的导纳实部GIJ和虚部BIJ是否都为0,如果都为0转至步骤13。0161由于导纳矩阵实部G14和虚部B14都为0,转至步骤13。0162步骤13令JJ1。J415。0163步骤14判断J是否大于N,如果J不大于N,则返回到步骤4。0164N5,J5不大于N,返回到步骤4。0165步骤4判断节点J是否为平衡节点,如果是平衡节点转至步骤13。0166节点5是PQ节点,不是平衡节点,执行步骤5。0167步骤5判断节点I和节点J之间的导纳实部GIJ和虚部BIJ是否。

25、都为0,如果都为0转至步骤13。0168由于导纳矩阵虚部B156349不为0,执行步骤6。0169步骤6计算雅可比矩阵元素JII1,JJ1,如果JI,根据式3计算,如果JI,说明书CN101976838ACN101976843A9/15页12根据式11计算。0170由于JI,根据式3计算雅可比矩阵元素J196667。0171步骤7判断节点J是否为PQ节点,如果不是PQ节点转至步骤9。0172节点5是PQ节点,执行步骤8。0173步骤8计算雅可比矩阵元素JII1,JJ,如果JI,根据式4计算,如果JI,根据式12计算。0174由于JI,根据式4计算雅可比矩阵元素J1,100000。0175步骤9。

26、判断节点I是否为PQ节点,如果不是PQ节点转至步骤13。0176节点1是PV节点,不是PQ节点,转至步骤13。0177步骤13令JJ1。J516。0178步骤14判断J是否大于N,如果J不大于N,则返回到步骤4。0179N5,J6大于N,执行步骤15。0180至此与节点1有关的雅可比矩阵前两行元素已经计算完毕,结果见式24的前两行。0181步骤15令II1。I112。0182形成与第2个节点有关的雅可比矩阵第3行和第4行元素。0183步骤16判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0184N5,I2不大于N,返回到步骤2。0185步骤2判断节点I是否为平衡节点,如果是平衡节。

27、点转至步骤15。0186节点2是平衡节点,转至步骤15。0187步骤15令II1。I213。0188形成与第3个节点有关的雅可比矩阵第5行和第6行元素。0189步骤16判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0190N5,I3不大于N,返回到步骤2。重复此过程直到I6大于N,结束。形成的导纳矩阵见式24。0191第1次迭代时,得到的潮流计算修正方程如下01920193按照图3所示流程,第1次迭代时高斯消去的步骤如下0194步骤1设置当前行号I1。对第1行进行消去操作。0195步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。说明书CN101976838ACN。

28、101976843A10/15页130196A116667不为0,执行步骤3。0197步骤3设置K1。用第1行消去。0198步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0199K1,I1,K不小于I,转至步骤12。0200步骤12设置当前列号JI1。J112。0201步骤13判断J是否大于N,如果J大于N,则转至步骤16。0202N10,J2不大于N,执行步骤14。0203步骤14根据式19对系数矩阵进行规格化运算。0204结果为A120000/66670000。0205步骤15令JJ1,返回到步骤13。J213,返回到步骤13。0206步骤13判断J是否大于N,如果J大于N,则转。

29、至步骤16。0207N10,J3不大于N,执行步骤14。0208步骤14根据式19对系数矩阵进行规格化运算。0209结果为A130000/66670000。重复此过程直到J10,完成系数矩阵第1行规格化运算,结果除A116667不变,A191000外,其它都为0000。0210步骤15令JJ1,返回到步骤13。J10111,返回到步骤13。0211步骤13判断J是否大于N,如果J大于N,则转至步骤16。0212N10,J11大于N,转至步骤16。0213步骤16根据式21对右端常数项进行规格化运算。0214结果为B15000/66670075。0215步骤17令II1。I112,对第2行进行消。

30、去操作。0216步骤18判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0217N10,I2不大于N,返回到步骤2。0218步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。0219A220,转至步骤17。0220步骤17令II1。I213,对第3行进行消去操作。0221步骤18判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0222N10,I3不大于N,返回到步骤2。0223步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。0224A330,转至步骤17。0225步骤17令II1。I314,对第4行进行消去操作。0226步骤18判断I是。

31、否大于N,如果I不大于N,则返回到步骤2;否则结束。0227N10,I4不大于N,返回到步骤2。0228步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。0229A440,转至步骤17。0230步骤17令II1。I415,对第5行进行消去操作。0231步骤18判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0232N10,I5不大于N,返回到步骤2。0233步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。说明书CN101976838ACN101976843A11/15页140234A556424不为0,执行步骤3。0235步骤3设置K1。用第1行消。

32、去。0236步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0237K1,I5,K小于I,执行步骤5。0238步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0239A510,转至步骤11。0240步骤11令KK1,返回到步骤4。K112,用第2行消去。0241步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0242K2,I5,K小于I,执行步骤5。0243步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0244A520,转至步骤11。0245步骤11令KK1,返回到步骤4。K213,用第3行消去。0246步骤4判断K是否小于I,如果K不小于。

33、I,则转至步骤12。0247K3,I5,K小于I,执行步骤5。0248步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0249A530,转至步骤11。0250步骤11令KK1,返回到步骤4。K314,用第4行消去。0251步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0252K4,I5,K小于I,执行步骤5。0253步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0254A540,转至步骤11。0255步骤11令KK1,返回到步骤4。K415,用第5行消去。0256步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0257K5,I5,K不小于。

34、I,转至步骤12。0258步骤12设置当前列号JI1。J516。0259步骤13判断J是否大于N,如果J大于N,则转至步骤16。0260N10,J6不大于N,执行步骤14。0261步骤14根据式19对系数矩阵进行规格化运算。0262结果为A561662/64240259。0263步骤15令JJ1,返回到步骤13。J617,返回到步骤13。0264步骤13判断J是否大于N,如果J大于N,则转至步骤16。0265N10,J7不大于N,执行步骤14。0266步骤14根据式19对系数矩阵进行规格化运算。0267结果为A573782/64240589。0268步骤15令JJ1,返回到步骤13。J718,。

35、返回到步骤13。0269步骤13判断J是否大于N,如果J大于N,则转至步骤16。0270N10,J8不大于N,执行步骤14。0271步骤14根据式19对系数矩阵进行规格化运算。0272结果为A589077/64240141。说明书CN101976838ACN101976843A12/15页150273步骤15令JJ1,返回到步骤13。J819,返回到步骤13。0274步骤13判断J是否大于N,如果J大于N,则转至步骤16。0275N10,J9不大于N,执行步骤14。0276步骤14根据式19对系数矩阵进行规格化运算。0277结果为A592642/64240411。0278步骤15令JJ1,返回。

36、到步骤13。J9110,返回到步骤13。0279步骤13判断J是否大于N,如果J大于N,则转至步骤16。0280N10,J10不大于N,执行步骤14。0281步骤14根据式19对系数矩阵进行规格化运算。0282结果为A5,107547/64240117。0283步骤15令JJ1,返回到步骤13。J10111,返回到步骤13。0284步骤13判断J是否大于N,如果J大于N,则转至步骤16。0285N10,J11大于N,转至步骤16。0286步骤16根据式21对右端常数项进行规格化运算。0287结果为B51600/64240025。0288步骤17令II1。I516,对第6行进行消去操作。0289。

37、步骤18判断I是否大于N,如果I不大于N,则返回到步骤2;否则结束。0290N10,I6不大于N,返回到步骤2。0291步骤2判断矩阵元素AII是否为0,如果AII为0,则转至步骤17。0292A666398不为0,执行步骤3。0293步骤3设置K1。用第1行消去。0294步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0295K1,I6,K小于I,执行步骤5。0296步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0297A610,转至步骤11。0298步骤11令KK1,返回到步骤4。K112,用第2行消去。0299步骤4判断K是否小于I,如果K不小于I,则转至步骤。

38、12。0300K2,I6,K小于I,执行步骤5。0301步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0302A620,转至步骤11。0303步骤11令KK1,返回到步骤4。K213,用第3行消去。0304步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0305K3,I6,K小于I,执行步骤5。0306步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0307A630,转至步骤11。0308步骤11令KK1,返回到步骤4。K314,用第4行消去。0309步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0310K4,I6,K小于I,执行步骤5。。

39、0311步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。说明书CN101976838ACN101976843A13/15页160312A640,转至步骤11。0313步骤11令KK1,返回到步骤4。K415,用第5行消去。0314步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0315K5,I6,K小于I,执行步骤5。0316步骤5判断矩阵元素AIK是否为0,如果AIK为0,则转至步骤11。0317A651662,执行步骤6。0318步骤6设置当前列号JK1。J516。0319步骤7判断J是否大于N,如果J大于N,则转至步骤10。0320N10,J6,J不大于N,执行。

40、步骤8。0321步骤8根据式18进行消去运算。0322A66A66A65A566398166202596828。0323步骤9令JJ1,返回到步骤7。J617,返回到步骤70324步骤7判断J是否大于N,如果J大于N,则转至步骤10。0325N10,J7,J不大于N,执行步骤8。0326步骤8根据式18对系数矩阵进行消去运算。0327A67A67A65A579077166205890712。0328步骤9令JJ1,返回到步骤7。J718,返回到步骤70329步骤7判断J是否大于N,如果J大于N,则转至步骤10。0330N10,J8,J不大于N,执行步骤8。0331步骤8根据式18对系数矩阵进行。

41、消去运算。0332A68A68A65A583782166201414016。0333步骤9令JJ1,返回到步骤7。J819,返回到步骤70334步骤7判断J是否大于N,如果J大于N,则转至步骤10。0335N10,J9,J不大于N,执行步骤8。0336步骤8根据式18对系数矩阵进行消去运算。0337A69A69A65A597547166204110716。0338步骤9令JJ1,返回到步骤7。J9110,返回到步骤70339步骤7判断J是否大于N,如果J大于N,则转至步骤10。0340N10,J10,J不大于N,执行步骤8。0341步骤8根据式18对系数矩阵进行消去运算。0342A6,10A6。

42、,10A65A5,102642166201172836。0343步骤9令JJ1,返回到步骤7。J10111,返回到步骤70344步骤7判断J是否大于N,如果J大于N,则转至步骤10。0345N10,J11,J大于N,转至步骤10。0346步骤10根据式20进行对右端常数项进行消去运算。0347B6B6A65B50670166200251086。0348步骤11令KK1,返回到步骤4。K516,返回到步骤4。0349步骤4判断K是否小于I,如果K不小于I,则转至步骤12。0350K6,I6,K不小于I,转至步骤12,对第6行进行规格化。重复此过程直到I说明书CN101976838ACN10197。

43、6843A14/15页1711大于N,结束,完成对方程的高斯消去工作。得到方程如下03510352采用本发明和几种对比方法对另一个实施例进行了计算,该实施例为一个445节点实际电网,节点数为445,支路数为544。计算时收敛精度为000001。几种潮流计算算法分别为0353方法1不采用稀疏矩阵技术。0354方法2不采用稀疏矩阵技术,但使用判断避免不必要运算,为本发明方法。0355方法3采用稀疏矩阵技术,但不使用节点优化编号。0356方法4采用稀疏矩阵技术和节点优化编号。0357几种方法的计算时间见表7,从表7可见仅仅通过简单的逻辑判断就能极大地提高计算速度,计算速度与采用稀疏矩阵技术的方法3和。

44、方法4相差不太大,但编程难度要小得多,也利于修改和维护。0358表7几种牛顿法计算时间比较03590360潮流计算方法计算时间S03610362方法159530363方法204840364方法302960365方法4015603660367不采用稀疏矩阵技术的方法1和方法2的内存需求量见表8,表中矩阵元素为浮点数据类型。采用稀疏矩阵技术的方法3和方法4的内存需求量见表9,表中矩阵元素为浮点数据类型和整型数。表中导纳矩阵元素数为导纳矩阵元素个数,导纳矩阵元素为复数,因此每个导纳矩阵元素为两个浮点数据。每个双精度浮点数占8个字节,每个整型数占4个字节。0368表8方法1和方法2的内存需求量0369。

45、0370表9方法3和方法4的内存需求量说明书CN101976838ACN101976843A15/15页1803710372表9中导纳矩阵、雅可比矩阵和方程系数矩阵采用稀疏矩阵技术存储,稀疏矩阵技术一般采用按行存储方式。设一个矩阵行数为N,非零元素个数为M,需要存储以下非零元素信息0373VA存储矩阵中非零元素的值,共M个,为浮点数据类型;0374JA存储矩阵中非零元素的列号,共M个,为整型;0375IA存储矩阵中每行第一个非零元素在VA中的位置,共N个,为整型。0376内存需求量按下式计算0377S8M4M4N250378导纳矩阵元素为复数,需要两个浮点数单元,采用稀疏矩阵技术存储时按下式计。

46、算0379S16M4M4N260380由表8和表9的结果可见,采用稀疏矩阵技术,内存占用量明显减少,同时采用稀疏矩阵技术和节点优化编号算法的内存占用量更少。虽然不采用稀疏矩阵技术内存占用量明显增加,加上其它数组内存的总内存占用量约为10MB。考虑到目前计算机一般有几个GB的内存,对于多达445节点的大型实际电网来说,10MB左右的内存要求并不太多。0381本算法可以采用任何一种编程语言和编程环境实现,如C语言、C、FORTRAN、DELPHI等。开发环境可以采用VISUALC、BORLANDCBUILDER、VISUALFORTRAN等。说明书CN101976838ACN101976843A1/4页19图1说明书附图CN101976838ACN101976843A2/4页20图2说明书附图CN101976838ACN101976843A3/4页21图3说明书附图CN101976838ACN101976843A4/4页22图4图5图6说明书附图CN101976838A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 发电、变电或配电


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1