电力系统潮流计算课程设计 ——牛顿-拉夫逊法的应用
学院:电气工程学院
班级:电125 学号:1212002047 姓名:王衡佳 教师:张新松 日期:2015.11.15
南通大学
目 录
一、课程设计内容简介.........................1
1.课程设计课题...........................................1 2.电力系统潮流计算.......................................1
二、电力系统潮流计算方法.....................1
1.高斯-赛德尔迭代法 ............................. ........1 2.牛顿-拉夫逊法..........................................1 3.P-Q分解法....................................................2
三、程序设计.................................3
1.程序设计环境...........................................3 2.主程序清单.............................................3 3.程序运行结果..........................................22
四、个人小结................................23
1.课程设计问答..........................................23 2.个人心得体会..........................................23
五、参考文献................................24
南通大学
一、课程设计内容简介
1.课程设计课题
设计一个基于高斯赛德尔法或牛顿拉夫逊法的电力系统潮流计算程序,要求计算IEEE14节点,可采用VC++,MATLAB或其他工具实现,了解节点导纳矩阵内各元素的意义以及PV节点与PQ节点的区别。
2.电力系统潮流计算
电力系统潮流计算是研究电力系统稳态运行运行情况的一种基本电气计算。它的任务是根据给定的运行条件和网路结构确定整个系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。电力系统潮流计算的结果是电力系统稳定计算和故障分析的基础。
二、电力系统潮流计算方法
1.高斯-赛德尔迭代法
以导纳矩阵为基础,并应用高斯--塞德尔迭代的算法是在电力系统中最早得到应用的潮流计算方法,目前高斯一塞德尔法已很少使用。 将所求方程f(x)=0改写为x=ψ(x),不能直接得出方程的根,给一个猜测值 x0得:x1=ψ(x0),又可取x1为猜测值,进一步得:
优点:
(1)原理简单,程序设计十分容易。
(2)导纳矩阵是一个对称且高度稀疏的矩阵,因此占用内存非常节省。
(3)就每次迭代所需的计算量而言,是各种潮流算法中最小的,并且和网络所包含的节点数成正比关系。 缺点:
(1)收敛速度很慢。
(2)对病态条件系统,计算往往会发生收敛困难:如节点间相位角差很大的重负荷系统、包含有负电抗支路(如某些三绕组变压器或线路串联电容等)的系统、具有较长的辐射形线路的系统、长线路与短线路接在同一节点上,而且长短线路的长度比值又很大的系统。
(3)平衡节点所在位置的不同选择,也会影响到收敛性能。
2.牛顿-拉夫逊法
牛顿法是数学中求解非线性方程式的典型方法,有较好的收敛性。自从20世纪60年代中期采用了最佳顺序消去法以后,牛顿法在收敛性、内存要求、计算速度方面都超过了其他方法,成为直到目前仍被广泛采用的方法。
1
南通大学
优点:
(1)收敛速度快,若选择到一个较好的初值,算法将具有平方收敛特性,一般迭 代4—5次便可以收敛到一个非常精确的解。而且其迭代次数与所计算网络的规模基本无关。
(2)具有良好的收敛可靠性,对于前面提到的对以节点导纳矩阵为基础的高斯一 塞德尔法呈病态的系统,牛顿法均能可靠地收敛。
(3)牛顿法所需的内存量及每次迭代所需时间均较前述的高斯一塞德尔法为多, 并与程序设计技巧有密切关系。 缺点:
牛顿法的可靠收敛取决于有一个良好的启动初值。如果初值选择不当,算法有可能根本不收敛或收敛到一个无法运行的解点上。 解决方法:
对于正常运行的系统,各节点电压一般均在额定值附近,偏移不会太大,并且各节点间的相位角差也不大,所以对各节点可以采用统一的电压初值(也称为“平直电压”),“平直电压”法假定:
??
这样一般能得到满意的结果。但若系统因无功紧张或其它原因导致电压质量很差或有重载线路而节点间角差很大时,仍用上述初始电压就有可能出现问题。可以先用高斯一塞德尔法迭代1-2次;以此迭代结果作为牛顿法的初值,也可以先用直流法潮流求解一次以求得一个较好的角度初值,然后转入牛顿法迭代。
3.P-Q分解法
电力系统中常用的P-Q分解法派生于以极坐标表示的牛顿-拉夫逊法,其基本思想是把节点功率表示为电压向量的极坐标形式,以有功功率误差作为修正电压向量角度的依据,以无功功率误差作为修正电压幅值的依据,把有功和无功分开进行迭代其主要特点是以一个(n-1)阶和一个m阶不变的、对称的系数矩阵B,B代替原来的(n+m-1)阶变化的、不对称的系数矩阵M,以此提高计算速度,降低对计算机贮存容量的要求。P-Q分解法在计算速度方面有显著的提高,迅速
2
南通大学
得到了推广。本课程设计中不采用此方法,因此不再过多赘述。
三、程序设计
1.程序设计环境
(1)采用方法:牛顿-拉夫逊法 (2)设计工具:VC++6.0程序
(3)运行环境:win8 64位操作系统
2.主程序清单
#include
const double CalculateError=0.00001;//定义计算收敛条件 static int AllNodeNumber;//节点总数 static int BranchNumber;//支路总数 static int GroundNumber;//接地支路总数 class BUS {
public:
int OldNumber;//旧的节点编号
int NodeType;//节点类型(0-pq节点,2-pv节点,3-平衡节点) double LoadP;//负荷有功 double LoadQ;//负荷无功 double GenP;//发电机有功 double GenQ;//发电机无功 double VoltageVal;//电压幅值 double VoltageAngle;//电压相角 double NodeP;//节点净有功 double NodeQ;//节点净无功 double NodeE;//电压e分量 double NodeF;//电压f分量
BUS():OldNumber(0),NodeType(0),LoadP(0),LoadQ(0),GenP(0),GenQ(0),VoltageVal(1.0),VoltageAngle(0.0),NodeP(0.0),NodeQ(0.0),NodeE(1.0),NodeF(0.0){ } };
class BRANCH {
public:
3