PQ分解法计算大电网潮流程序
电力系统潮流计算pq法及程序
三、设计(论文)成品要求
1、毕业设计说明书(论文)1 份; 2、外文翻译资料 1 份(不少于 3000 汉字); 3、MATLAB 潮流软件 1 份。
班级 2 班
指 导 教 师 刘宪林 单位 电气工程系 职称 教授
校外指导教师
单位——————————————
职称——————————
题目 带二阶项的快速潮流研究
一、毕业设计(论文)内容 对带二阶项的快速潮流进行研究,编制相应程序。
二、毕业设计(论文)应达到的主要指标 1、学习带二阶项的快速潮流的概念和模型。
教研室主任——————————
II
主管院长———————
王刚:带二阶项的快速潮流研究
摘要
在简要分析了电网常规潮流算法的基础上,选择带二阶项的快速潮流算法进 行研究。该算法包含传统的带二阶项的快速潮流算法和一种改进的带二阶项的快 速潮流算法,既适用于高压电网也适用于各种复杂的配电网。改进的带二阶项快 速潮流算法应用矩阵分块求逆方法对阶数较高的雅克比阵求逆计算进行了改进, 使阶数较高的雅克比阵的求逆变为阶数较低的四个子阵的求逆,从而简化了求逆计 算。基于传统的带二阶项的快速潮流算法编写了潮流计算软件,并使用算例对带 二阶项的快速潮流算法和牛顿-拉夫逊算法就计算特性等方面进行了比较。结果表 明,带二阶项的快速潮流算法具有较高的计算速度。 关键词: 潮流计算,二阶项,配电网
四、参考资料
[1] 王锡凡主编.现代电力系统分析.北京:科学出版社,2003 年 [2] 王祖佑主编.电力系统稳态运行计算机分析.北京:水利电力出版社,1987 年 *自行查阅其他相关中外文文献
pq分解法计算潮流步骤
PQ分解法是一种用于电力系统潮流计算的算法,它将节点功率方程中的有功功率(P)和无功功率(Q)分离,从而简化了计算过程。
以下是PQ分解法计算潮流的基本步骤:
1. 建立节点功率方程:对于电力系统的每个节点,根据系统的拓扑结构和参数,建立节点功率方程。
这些方程通常表示为电压幅值和相角的函数。
2. 初始潮流假设:为每个节点的电压幅值和相角设置初始值。
这些初始值可以是基于系统的额定值或通过预计算得到的。
3. PQ分解:将节点功率方程中的有功功率(P)和无功功率(Q)分离。
这通常涉及到对节点功率方程进行线性化处理,以便将P和Q表示为电压幅值和相角的函数。
4. 迭代求解:使用迭代方法(如牛顿-拉夫森迭代法)来逐步求解节点电压幅值和相角。
在每次迭代中,都会更新P和Q的值,并重新计算节点电压。
5. 收敛判断:判断当前迭代是否收敛,即节点电压的变化是否小于预定的阈值。
如果未达到收敛条件,则继续进行迭代。
6. 输出结果:当迭代收敛后,输出每个节点的电压幅值和相角,以及系统的潮流分布情况。
7. 后处理:根据需要,对计算结果进行后处理,例如计算线路的功率损耗、检查系统的稳定性等。
PQ分解法相比于其他潮流计算方法(如牛顿-拉夫森法)的主要优势在于它能够减少计算量,特别是在处理大型电力系统时。
这是因为PQ分解法将复杂的节点功率方程分解为两个独立的方程组,分别求解有功功率和无功功率,从而降低了计算复杂性。
(完整word版)PQ分解法计算潮流
一、PQ 分解法的原理P —Q 分解法是牛顿-拉夫逊法潮流计算的一种简化方法。
P-Q 分解法利用了电力系统的一些特有的运行特性,对牛顿-拉夫逊法做了简化,以改进和提高计算速度。
的基本思想是根据电力系统实际运行特点:通常网络上的电抗远大于电阻,则系统母线电压幅值的微小变化对用功功率的改变影响很小。
同样,母线电压相角的的改变对无功功率的影响较小.因此,节点功率方程在用极坐标形式表示时。
它的修正方程式可简化为:00P H Q L U U θ∆∆⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥∆∆⎣⎦⎣⎦⎣⎦将P 、Q 分开来迭代计算,因此大大地减少了计算工作量.但是H 、L 在迭代过程中仍将不断变化,而且又都是不对称矩阵。
对牛顿法的进一步简化。
为把上式中的系数矩阵简化成迭代过程中不变的对称矩阵。
在一般情况下线路两端的电压相角ij θ是不大的,因此可以认为:cos 1sin ij ij ijijG B θθ≈2ii ii Q U B考虑到上述关系,可以得到:ij i ij j ij i ij jH U B U L U B U ==节点的功率增量为:11(cos sin )(sin cos )ni is i j ij ij ij ij j ni is i j ij ij ij ij j P P U U G B Q Q U U G B θθθθ==∆=-+∆=--∑∑P —Q 分解法的特点:以一个n-1阶和一个n —m —1阶线性方程组代替原有的2n —m —1阶线性方程组;修正方程的系数矩阵B'和B”为对称常数矩阵,且在迭代过程中保持不变;P —Q 分解法具有线性收敛特性,与牛顿—拉夫逊法相比,当收敛到同样的精度时需要的迭代次数较多。
二、程序说明1.数据说明Branch1。
txt:支路参数矩阵第1列为支路的首端编号;第2列为支路的末端编号(首端编号小于末端编号);第3列为之路的阻抗;第4为支路的对地容抗;第5列为支路的变比;第6列为折算到那一侧的标志Branch2。
ieee30pq分解法潮流计算
ieee30pq分解法潮流计算潮流计算是电力系统中十分重要的一项分析工作,用于计算电力系统中各个节点的电压幅值和相角,以及各个支路的电流大小和相角。
这对于电力系统的运行和调度具有重要意义。
IEEE30PQ系统是一个经典的潮流计算案例,该系统有30个节点,其中包括负荷节点(PQ节点)和发电机节点(PV节点)。
以下将详细介绍IEEE30PQ系统的潮流计算方法。
一、潮流计算预备工作在进行潮流计算之前,需要对电力系统进行建模。
首先,将各个节点连接成一个拓扑结构,构成潮流计算图。
其次,确定系统中的潮流方向和节点类型。
IEEE30PQ系统中,负荷节点为PQ节点,发电机节点为PV节点。
同时,还需要确定各个节点的初始电压值和相角。
二、节点功率方程根据潮流计算的目标,可以得到节点功率方程。
在IEEE30PQ系统中,各个节点的功率方程可以表示为:节点m是PQ节点:Pm = Vm * ∑(Vm * Gkm * cos(θm - θk) + Vm * Bkm * sin(θm- θk))Qm = -Vm * ∑(Vm * Gkm * sin(θm - θk) - Vm * Bkm * cos(θm - θk))节点m是PV节点:Pm = Vm * ∑(Vm * Gkm * cos(θm - θk) + Vm * Bkm * sin(θm- θk))其中,Pm和Qm分别表示节点m的有功功率和无功功率,Vm和θm分别表示节点m的电压和相角,Gkm和Bkm分别表示节点m和节点k之间的导纳。
三、雅可比矩阵为了求解节点功率方程,需要构建雅可比矩阵。
雅可比矩阵是由节点功率方程对电压和相角的一阶导数构成的矩阵。
在IEEE30PQ系统中,节点功率方程包含有功和无功两种功率,因此雅可比矩阵也是一个2n×2n的矩阵。
其中,n为节点的数量。
四、潮流计算算法潮流计算可以采用迭代的方法,使节点功率方程逐步趋近于收敛。
其中,最常用的潮流计算算法是牛顿-拉夫逊法(Newton-Raphson)和高斯-赛德尔法(Gauss-Seidel)法。
电力系统潮流分析与计算设计(P Q分解法)
电力系统潮流分析与计算设计(P Q分解法)电力系统潮流分析与计算设计(p-q分解法)摘要潮流排序就是研究电力系统的一种最基本和最重要的排序。
最初,电力系统潮流排序就是通过人工手算的,后来为了适应环境电力系统日益发展的须要,使用了交流排序台。
随着电子数字计算机的发生,1956年ward等人基本建设了实际可取的计算机潮流排序程序。
这样,就为日趋繁杂的大规模电力系统提供更多了极其有力的排序手段。
经过几十年的时间,电力系统潮流排序已经发展得十分明朗。
潮流排序就是研究电力系统稳态运转情况的一种排序,就是根据取值的运转条件及系统接线情况确认整个电力系统各个部分的运转状态,例如各母线的电压、各元件中穿过的功率、系统的功率损耗等等。
电力系统潮流排序就是排序系统动态平衡和静态平衡的基础。
在电力系统规划设计和现有电力系统运转方式的研究中,都须要利用电力系统潮流排序去定量的比较供电方案或运转方式的合理性、可靠性和经济性。
电力系统潮流计算分为离线计算和在线计算,离线计算主要用于系统规划设计、安排系统的运行方式,在线计算则用于运行中系统的实时监测和实时控制。
两种计算的原理在本质上是相同的。
实际电力系统的潮流技术主要使用pq水解法。
1974年,由scottb.在文献(@)中首次提出pq分解法,也叫快速解耦法(fastdecoupledloadflow,简写为fdlf)。
本设计就是使用pq水解法排序电力系统潮流的。
关键词:电力系统潮流排序pq水解法第一章概论1.1详述电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它是根据给定的运行条件及系统接线情况确定整个电力系统各个部分的运行状态,如各母线的电压、各元件中流过的功率、系统的功率损耗等等。
电力系统潮流计算是计算系统动态稳定和静态稳定的基础。
在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用电力系统潮流计算来定量的比较供电方案或运行方式的合理性、可靠性和经济性。
PQ分解法
4 P-Q 分解法潮流计算 4.1P-Q 分解法的基本原理P-Q 分解法是从简化一极坐标表示的牛顿-拉夫逊法潮流修正方程基础上派生出来的,考虑到了电力系统本身的特点。
牛顿法潮流计算的核心是求解修正方程式。
当节点功率方程式采用极坐标系统时,修正方程式为[∆P ∆Q ]=[H N J L ][∆δ∆U/U ] (4.1)将其展开为{∆P =H∆δ+N(∆U/U)∆Q =J∆δ+L(∆U/U)(4.2) 对修正方程式的第一步简化是:计及电力网络中各元件的电抗远大于电阻,以致各节点电压相位角的改变主要影响各元件中的有功功率及各节点的注入有功功率;各节点电压大小的改变主要影响元件中的无功功率以及各节点的注入无功功率;式(4.2)中子阵N 及J 中各元素的数值相对很小,因此可以略去,从而将式(4.2)简化为 {∆P =H∆δ∆Q =L(∆U/U)(4.3) 但是,H 、L 中的元素是电压的函数,在每次迭代中都要重新形成上述H 、L 矩阵,并且又都是不对称矩阵,仍然相当麻烦。
对修正方程式的第二步简化是:由于有对状态变量δi 的约束条件|δi −δj |<|δi −δj |max,即线路两端电压的相角差是不大的,再计及G ij ≪B ij ,可以认为cos δij ≈1 G ij sin δij ≪B ij 于是,H ij 和L ij 的表达式H ij =∂∆P i∂δj=−U i U j (G ij sin δij −B ij cos δij ) i ≠j L ij =∂∆Q i∂U j U j=−U i U j (G ij sin δij −B ij cos δij ) i ≠j 可简化为H ij =U i U j B ij L ij =U i U j B ij (4.4) 再由式H ii =U i 2B ii +Q i (当i =j ,sin δij ≈0,cos δij ≈1时) (4.5) L ii =∂∆Q i ∂U iU i =−U i ∑U j (G ij sin δij −B ij cos δij )+2U i 2B ii =U i 2B ii −Q i j=nj=1j≠i(4.6)按自导纳的定义,上两式中的U i 2B ii 项应为各元件电抗远大于电阻的前提下除节点i 外其他节点都接地时由节点i 注入的无功功率。
附录 P-Q分解法潮流程序
double P, Q; int i; double V ; } Generator[ Ng ];
负荷节点数据定义为: struct Load _ Type {
double P, Q; int i; double V ; } Load [ Nl ]; ① 对于发电机节点, P 、 Q 应填正号,对于负荷节点, P 、 Q 应填负号 。
此要求支路数据按以下次序排列: ①支路两端节点号应把小号排在前边,大号排在后边;
②各支路按其小节点号的顺序排列。 这种排列方式适合形成导纳矩阵的上三角部分(对照第 ?? ) 。 发电机节点和负荷节点数据分别定义为结构数组,结构有 4 个数据成员,其内容 是相同的。发电机节点数据定义为: struct Generator _ Type {
{ int i, j; double R, X , YK ; } Branch[ Nb];
注意在 C 语言的程序实现中,数组可定义为固定长度的静态数组,也可以采用指 针动态分配内存,这里为了叙述简洁,把数组的定义写成以变量作为长度的形式,并且 假设数组的下标从 1 开始,由于 C 语言中数组的下标是从 0 开始的,因此在说明数组或 动态分配内存时,要多分配一个单元内存,即如下形式: Branch = new struct Brach _ Type[ Nb + 1]; 以下各数组的定义与此类似。 当支路为输电线路时,这 5 个数据成员分别表示: i: 输电线路一端的节点号; j: 输电线路另一端的节点号; R: 输电线路的电阻; X: 输电线路的电抗; Y0:输电线路充电电容的容纳,如图 F1-1(a)所示。 当支路为变压器时,数据为: i: 变压器一端的节点号; j: 变压器另一端的节点号,这两个节点号有一个带有负号,作为变压器支路的 标志; RT:变压器的电阻; XT:变压器的电抗(RT 和 XT 都是归算到变压器标准变比侧的数值) ; K: 变压器的非标准变比 (设在节点号为负的一侧) 。 变压器的模拟电路如图 F1-1(b) 所示。
基于matlab的pq分解法电力系统潮流计算
基于P-Q分解法的电力系统潮流计算摘要电力系统潮流计算是研究电力系统稳定运行情况的一种重要的计算,在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用它来定量地分析比较供电方案或运行方式的合理性、可靠性和经济性。
本文主要介绍了电力系统潮流计算的基本原理(包括电力网络的数学模型和潮流计算的数学模型)及潮流计算常用的几种方法,着重介绍了P-Q分解法。
P-Q 分解法是潮流计算的常用方法之一,派生于用极坐标表示的牛顿-拉夫逊法,是牛顿-拉夫逊法的一种简化计算方法,可以提高运算的速度。
其中比较详细地讲述了P-Q分解法的形成过程及计算流程,而且结合一个具有代表性的算例,用P-Q分解法进行潮流计算,其计算过程是通过MATLAB软件实现的,并对计算结果进行了简要的分析。
关键词:电力系统潮流计算,P-Q分解法,MATLAB软件Based on P - Q Decomposition Method of The Power SystemFlow CalculationABSTRACTPower System Flow Calculation is an important analysis and calculation of power system steady-state operation,. In the study of power system design and the current operation mode are required Power Flow Calculation to quantitatively analyzed and compared to the program or run mode power supply reasonable, reliability and economy or not.This article mainly introduced the basic principles of Power System Flow Calculation (including the mathematical model of electric power network and the mathematical model of power flow calculation) and the main methods of power flow calculation, introduces the P - Q Decomposition Method. P - Q Decomposition Method is one of the commonly used method to compute the tidal current, derived from Newton - Ralph expressed in polar coordinate method, Newton - Ralph Method, a simplified calculation method can improve the speed of operation. One more detail tells the story of the formation process of P - Q Decomposition Method and calculation process, and combined with a typical example, using P - Q Decomposition Method for power flow calculation, the calculation process is implemented by MATLAB software, and the calculation results are analyzed in brief.KEY WORDS:Power System Flow Calculation,P - Q Decomposition Method,MATLAB software目录前言 (1)第1章绪论 (2)1.1 潮流计算简介 (2)1.2 潮流计算的意义及其发展 (2)1.2.1 潮流计算的意义 (2)1.2.2 潮流计算的现状及其发展 (3)1.3 本毕业设计的主要内容 (3)第2章电力系统潮流计算的基本原理 (5)2.1 电力网络的数学模型 (5)2.1.1 电力网络的基本方程式 (5)2.1.2 节点导纳矩阵及其性质 (7)2.2 潮流计算的数学模型 (8)2.2.1 潮流计算的节点分类 (8)2.2.2 潮流计算的基本方程 (9)2.2.3 潮流计算的约束条件 (10)第3章潮流计算的方法 (12)3.1 高斯-赛德尔法 (12)3.1.1 高斯-赛德尔法的基本原理 (12)3.1.2 高斯-赛德尔法的潮流计算过程 (12)3.2 牛顿-拉夫逊法 (14)3.2.1 牛顿-拉夫逊法的基本原理 (14)3.2.2 牛顿-拉夫逊法的潮流计算过程 (14)3.3 P-Q分解法 (15)第4章P-Q分解法潮流计算 (16)4.1 极坐标下的潮流计算模型 (16)4.2 P-Q分解法潮流计算 (18)4.3 P-Q分解法潮流计算的基本步骤 (20)第5章算例验证与分析 (22)5.1 MATLAB软件 (22)5.2 算例 (22)5.2.1 算例说明 (22)5.2.2 潮流计算过程 (23)5.3 算例结果分析 (27)结论 (28)谢辞 (29)参考文献 (30)附录 (31)外文资料翻译 (40)前言电力是衡量一个国家经济发展的主要指标,也是反映人民生活水平的重要标志,它已成为现代工农业生产、交通运输以及城乡生活等各方面不可或缺的能源和动力。
PQ分解法潮流计算程序
% 程序功能:14节点潮流计算PQ分解法clc;% NODE INFO% NODE TYPE PQ:1 PV:2 PH:3 所有发电机节点均被视为PV节点,节点1为平衡节点NODE=[% TYPE V ANGEL PG QG PL QL SHUNT C (节点并联电容)3 1.0600 0 0 0 0 0 0 2 1.0450 0 40.0000 0 21.7000 12.7000 0 2 1.0100 0 0 0 94.2000 19.0000 0 1 1.0000 0 0 0 47.8000 -3.9000 01 1.0000 0 0 0 7.6000 1.6000 02 1.0700 0 0 0 11.2000 7.5000 01 1.0000 0 0 0 0 0 02 1.0900 0 0 0 0 0 0 1 1.0000 0 0 0 29.5000 16.6000 0.1900 1 1.0000 0 0 0 9.0000 5.8000 0 1 1.0000 0 0 0 3.5000 1.8000 0 1 1.0000 0 0 0 6.1000 1.6000 0 1 1.0000 0 0 0 13.5000 5.8000 0 1 1.0000 0 0 0 14.9000 5.0000 0 ]% 功率为有名值,基准功率为100MVA% 线路对地电纳参数为B,不是B/2% BRANCH DATA IEEE 14 NODE% i j R X B K(变比)BRANCH=[2 1 .01938 .05917 .0264*2 1.000;3 2 .04699 .19797 .0219*2 1.000;4 2 .05811 .17632 .0187*2 1.000;5 1 .05403 .22304 .0246*2 1.000;5 2 .05695 .17388 .0170*2 1.000;4 3 .06701 .17103 .0173*2 1.000;5 4 .01335 .04211 .0064*2 1.000;6 5 .00000 .25202 .0000 0.932; %变压器支路7 4 .00000 .20912 .0000 0.978; %变压器支路8 7 .00000 .17615 .0000 1.000;9 4 .00000 .55618 .0000 0.969; %变压器支路9 7 .00000 .11001 .0000 1.000;10 9 .03181 .08450 .0000 1.000;11 6 .09498 .19890 .0000 1.000;12 6 .12291 .15581 .0000 1.000;13 6 .06615 .13027 .0000 1.000;14 9 .12711 .27038 .0000 1.000;11 10 .08205 .19207 .0000 1.000;13 12 .22092 .19988 .0000 1.000;14 13 .17093 .34802 .0000 1.000;]x = size(NODE); %x=[14,8] size矩阵的行数和列数n = x(1);m = length(find(NODE(:,1)==1)); %length列数 y=x(:,i)的作用就就是把矩阵x的第i列取出来赋值到y里面,那么得到的y就是一个列向量。
P-Q分解法潮流计算
P-Q分解法的特点和性能分析
(1) 用一个n-1阶和一个m阶的线性方程组代替了 牛顿法的n-1+m阶线性方程组,显著地减少了内 存需求量及计算量。
(2)系数矩阵B’和B’’为常数矩阵。因此,不必像牛 顿法那样每次迭代都要形成雅可比矩阵并进行三 角分解,只需要在进入迭代过程以前一次形成雅 可比矩阵并进行三角分解形成因子表,然后反复 利用因子表对不同的常数项△P/V或△Q/V进行消 去回代运算,就可以迅速求得修正量,从而显著 提高了迭代速度。
(1)一般情况下,线路两端电压的相角差不大(不 超过10°~20°),因此可以认为
cos ij 1,
Gij sin ij Bij
(2)与系统各节点无功功率相对应的导纳 通常远小于该节点自导纳的虚部 ,即
B Li Qi 2 Bii Vi
Qi Vi2Bii
考虑到上述关系,略去相关项可将系数矩阵
在B'中尽量去掉那些对有功功率及电压相角影响 较小的因素,如略去变压器非标准电压比和输电 线路充电电容的影响;在B"中尽量去掉那些对无 功功率及电压幅值影响较小的因素,如略去输电 线路电阻的影响
即B’的非对角和对角元素分别按下式计算:
B”的非对角和对角元素分别按下式计算:
其中rij和xij分别为支路的电阻和感抗,bi0为节点i 的接地支路的电纳。(BX法)
P-Q分解法改变了牛顿法 迭代公式的结构,就改变 了迭代过程的收敛特性。 事实上,依一个不变的系 数矩阵进行非线性方程组 的迭代求解,在数学上属 于“等斜率法”,其选代过程是按几何级数收敛的,若画 在对数坐标系上,这种收敛特性基本上接近一条直线。而 牛顿法是按平方收敛的,在对数坐标纸上基本上是一条抛 物线,如图2-3所示。
PQ分解法计算大电网潮流程序文件
function PQ%用PQ分解法计算大电网潮流% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导G 6电纳B 7.变比%打开数据文件clearclcbus=load('ieee14bus.txt');line=load('ieee14line.txt');linenum(:,[1,2])=line(:,[1,2]);[nb,~]=size(bus);[nl,~]=size(line);% nodenum=[(1:nb)' bus(:,1)];%带入子函数数据处理[bus,line,nPQ,nPV,nSW,nodenum] =change1_busline( bus,line );%对节点重新编号Y = admittance(bus,line,1 );%生成节点导纳矩阵Y1= admittance(bus,line,2 );%生成化简条件3的矩阵B1Y2=admittance(bus,line,3 );%生成化简条件3的矩阵B2%-----------------------------------------------------% %临时添加的测试数据% nPQ=4; nPV=0;nSW=1;nb=5;% Y=[10.834-32.5i -1.667+5i -1.667+5i -2.5+7.5i -5+15i% -1.667+5i 12.917-38.75i -10+30i 0 -1.25+3.75i% -1.667+5i -10+30i 12.917-38.75i -1.25+3.75i 0% -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i 0% -5+15i -1.25+3.75i 0 0 6.25-18.75i]; %% Y1=[10.834-32.5i -1.667+5i -1.667+5i -2.5+7.5i -5+15i% -1.667+5i 12.917-38.75i -10+30i 0 -1.25+3.75i% -1.667+5i -10+30i 12.917-38.75i -1.25+3.75i 0% -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i 0% -5+15i -1.25+3.75i 0 0 6.25-18.75i]; %% bus=[1 1 0 0.2 0.2 1% 2 1 0 -0.45 -0.15 1% 3 1 0 -0.4 -0.05 1% 4 1 0 -0.6 -0.1 1% 5 1.06 0 0 0 3];%% line=[5 2 1.25 -3.75 0 0 0% 2 3 10 -30 0 0 0% 3 4 1.25 -3.75 0 0 0% 4 1 2.5 -7.5 0 0 0% 1 2 1.667 -5 0 0 0% 1 3 1.667 -5 0 0 0% 1 5 5 -15 0 0 0];%-------------------------------------------------------bus_PV0=bus((nPQ+1):end,2)';%1.05*ones(1,nPV+nSW);bus_U=[ones(1,nPQ) bus_PV0]';%电压幅值bus_e=zeros(nb,1); %电压角度delta_P=zeros(nPQ+nPV,1);delta_Q=zeros(nPQ,1);% delta_e=zeros(nb-1,1);%delta_U=zeros(nPQ,1);c=0;KP=1;KQ=1;%KP KQ用来判断有功、无功是否收敛G=real(Y);B=imag(Y);B10=imag(Y1);B20=imag(Y2);%矩阵B0是进行化简三后的节点导纳矩阵虚部%形成解耦潮流的系数矩阵B1和B2B1=B10(1:nb-1,1:nb-1);B2=B20(1:nPQ,1:nPQ);while c<80%求解P Q的不平衡量for ii=1:nPQ+nPVdelta_P(ii)=bus(ii,4);for jj=1:nbdelta_P(ii)=delta_P(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*cos(bus_e(ii)-bus_e(jj))+B(ii,jj )*sin(bus_e(ii)-bus_e(jj)));endendUP=diag(bus_U(1:(nb-1)));%U矩阵利用各节点电压形成对角阵,来计算修正方程,对角线上的元素与bus_U列元素一一对应error_P=UP\delta_P;if max(abs(error_P))>0.00001delta_e=-(UP*B1)\error_P;bus_e=bus_e+[delta_e;0];c=c+1;KQ=1;else KP=0;if KQ~=0elsebreakendendfor ii=1:nPQdelta_Q(ii)=bus(ii,5);for jj=1:nbdelta_Q(ii)=delta_Q(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*sin(bus_e(ii)-bus_e(jj))-B(ii,jj )*cos(bus_e(ii)-bus_e(jj)));endendUQ=diag(bus_U(1:(nb-nPV-nSW)));error_Q=UQ\delta_Q;if max(abs(error_Q))>0.00001delta_U=-B2\error_Q;bus_U=bus_U+[delta_U;zeros((nPV+nSW),1)];c=c+1;KP=1;else KQ=0;if KP~=0elsebreakendendend%至此得到收敛的节点电压值%----------------------------------------------%--------------------------------------------% 对计算结果进行数据处理%将节点结果用原节点编号表示bus_Ue=zeros(nb,3);bus_Ue(:,[1,2,3])=[nodenum(:,2) bus_U bus_e/pi*180]; for ii=1:nbfor jj=ii+1:nbif bus_Ue(ii,1)>bus_Ue(jj,1)t=bus_Ue(ii,:);bus_Ue(ii,:)=bus_Ue(jj,:);bus_Ue(jj,:)=t;endendend%r_U是收敛的电压表达成复数的形式r_U=zeros(nb,1);for k=1:nbr_U(k)=bus_U(k)*(cos(bus_e(k))+1i*sin(bus_e(k)));end%计算平衡节点功率SW_S=0;SW_S=SW_S+r_U(nb)*conj(Y(nb,:))*conj(r_U);%计算各支路功率Sijline_S=zeros(nb,nb);line_S0=zeros(nb,nb);for ii=1:nbfor jj=1:nbline_S(ii,jj)=r_U(ii)*(conj(r_U(ii))*conj(Y(ii,ii))+(conj(r_U(ii))-conj(r_U(jj)))*conj (Y(ii,jj)));endend%------------------------------------------%把线路结果还原成原节点编号对应的结果for ii=1:nbfor jj=1:nbline_S0(nodenum(ii,2),nodenum(jj,2))=line_S(ii,jj);endendline_P=real(line_S0);line_Q=imag(line_S0);%计算各支路损耗delta_S=zeros(nl,1);for k=1:nla=linenum(k,1);b=linenum(k,2);delta_S(k)=line_S0(a,b)+line_S(b,a);end%计算网络总损耗S0=sum(delta_S);%-------------------------------------------------%将计算结果输入指定文件fid=fopen('C:\Users\lr\Desktop\matlab练习\训练题\大电网潮流计算\ieee14_out.txt','wt'); fprintf(fid,'节点号\t节点电压幅值\t节点电压角度\n');for k=1:nbfprintf(fid,'%d\t%f\t%f\n',k,bus_Ue(k,1),bus_Ue(k,2));endfprintf(fid,'支路首端\t支路末端\t支路有功\t支路无功\t支路损耗\n');for k=1:nlfprintf(fid,'%d\t\t%d\t\t%f\t%f\t%f\n',linenum(k,1),linenum(k,2),line_P(linenum(k,1),l inenum(k,2)),line_Q(linenum(k,1),linenum(k,2)),delta_S(k));endfprintf(fid,'平衡节点功率=%f\n',SW_S);fprintf(fid,'网络总损耗=%f\n',S0);fclose(fid);endfunction [bus,line,nPQ,nPV,nSW,nodenum] =change1_busline( bus,line )%此函数用来对原始输入节点、线路数据进行重新编号% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导G 6电纳B 7.变比[nb,~]=size(bus);[nl,~]=size(line);% nodenum=[(1:nb)' bus(:,1)];nPQ=0; nPV=0;nSW=0;%PQ=[];PQ=zeros(nb,6);PV=zeros(nb,6);SW=zeros(nb,6);%PQ PV 平衡节点的个数for k=1:nbswitch bus(k,6)case 1nPQ=nPQ+1;PQ(nPQ,:)=bus(k,:);case 2nPV=nPV+1;PV(nPV,:)=bus(k,:);case 3nSW=nSW+1;SW(nSW,:)=bus(k,:);otherwisedisp('节点数据类型出错!');endend%生成重新编号后的节点数据矩阵bus=[PQ;PV;SW];nodenum=[(1:nb)' bus(:,1)];%第一列为新的节点编号,第二列为对应的旧节点编号 bus(:,1)=(1:nb)'; %至此实现了节点数据的重新编号%------------------------------------------------------%对线路数据重新编号% nodenum=[(1:nb)' bus(:,1)];%第一列为新的节点编号,第二列为对应的旧节点编号for ii=1:nl[r1,~]=find(nodenum(:,2)==line(ii,1));line(ii,1)=nodenum(r1,1);[r2,~]=find(nodenum(:,2)==line(ii,2));line(ii,2)=nodenum(r2,1);endendfunction Y = admittance(bus,line,c )%此函数用来形成节点导纳矩阵% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导 6电纳B/2 7.变比%c是用来控制形成节点导纳矩阵的方式的,c=1 形成一般的节点导纳矩阵,可以用来确定B2,c=2,形成化简条件3的节点导纳矩阵,确定B1[nb,~]=size(bus);[nl,~]=size(line);Y=zeros(nb,nb);zt=zeros(nl,1);yt=zeros(nl,1);ym=zeros(nl,1);I=zeros(nl,1);J=zeros(nl,1);K=zeros(nl,1) ;switch ccase 1for k=1:nlzt(k)=line(k,3)+1i*line(k,4);yt(k)=1/zt(k);ym(k)=line(k,5)+1i*line(k,6);I(k)=line(k,1);J(k)=line(k,2);K(k)=line(k,7);endcase 2for k=1:nlyt(k)=1/(line(k,3)+1i*line(k,4));ym=zeros(nl,1);I(k)=line(k,1);J(k)=line(k,2);if line(k,7)~=1K(k)=1;else K(k)=line(k,7);endendcase 3for k=1:nlyt(k)=1/(1i*line(k,4));ym(k)=line(k,5)+1i*line(k,6);I(k)=line(k,1);J(k)=line(k,2);K(k)=line(k,7);endend%针对不同线路设置节点导纳值for k=1:nlif (K(k)==1)&&(J(k)~=0) %普通线路Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)+ym(k);Y(I(k),J(k))=Y(I(k),J(k))-yt(k);Y(J(k),I(k))=Y(I(k),J(k));endif (K(k)==1)&&(J(k)==0) %对地支路Y(I(k),I(k))=Y(I(k),I(k))+ym(k);endif (K(k)>1)&&(J(k)~=0) %非标准变比在j侧的变压器支路,zt ym为折算到i侧的值 Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)/K(k)^2;Y(I(k),J(k))=Y(I(k),J(k))-yt(k)/K(k);Y(J(k),I(k))=Y(I(k),J(k));endif (K(k)<1)&&(J(k)~=0)Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)*K(k)^2;Y(I(k),J(k))=Y(I(k),J(k))-yt(k)*K(k);Y(J(k),I(k))=Y(I(k),J(k));endendend。
PQ分解潮流算法简介
P( k ) H ( k )Q(k)M(k
)
N ( k ) θ( k )
L( k )
U
(
k
)
U
(
k
)
P( k ) P(θ( k ) ,U( k ) )
Q( k ) Q(θ( k ) ,U( k ) )
θ( k ) 1( k ) 2( k )
( k ) n1
T
U( k )
PQ分解潮流算法简介
前言
潮流计算的内容:
根据给定的电网结构、发电计划及负荷分布情况,求出整个电网的运行状态。 (运行状态:节点母线的电压、相角。再由状态变量计算线路输送的有功和无功 功率。)
潮流计算的意义:
(1)潮流计算,对于系统运行方式的分析,对电网规划阶段中设计方案的确定 都是必不可少的。为判别这些运行方式及规划设计方案的合理性、安全性、可靠 性及经济性提供了定量分析的依据。
Ui( k
)U
( j
k
)
(
Gij
sin
( ij
k
)
Bij
cos
( ij
k
)
)
Ui(
k
)U
( j
k
)
Bij
H ( k ) ii
Pi
i
U U( k )
[U
( i
k
)
]2
Bii
U
( i
k
)
U
( j
k
)
(
Gij
ji
sin
( ij
k
)
Bij
cos
( ij
k
)
)
θ θ( k )
c语言编写的PQ分解法解潮流程序
这里要提一下,本人使用的数据出自鞠平主编《电力工程》,PQ分解法可能由于求逆程序的精确度问题而比matlab迭代次数稍多,可将float改为dobule float一试,若有不当之处,还望包涵(另外,本人使用c语言编译器为tc3.0)//PQ分解法解潮流程序#include<stdio.h>#include<math.h>#define N 4 //节点数#define n_PQ 2 //PQ节点数#define n_PV 1 //PV节点数#define n_br 5 //串联支路数#define PI 3.1415void main(){void disp_matrix(float *disp_p,int disp_m,int disp_n); //矩阵显示函数float Us[2*N]={1.0,0,1.0,0,1.05,0,1.05,0}; //电压初值float Ps[N]={0,-0.5,0.2}; //有功初值float Qs[N]={0,-0.3}; //无功初值floatG[N][N],B[N][N],B1[N-1][N-1],B2[n_PQ][n_PQ],invB1[N-1][N-1],invB2[n_PQ][n_PQ];struct //阻抗参数{int nl; //左节点int nr; //右节点float R; //串联电阻值float X; //串联电抗值float Bl; //左节点并联电纳float Br; //右节点并联电纳}ydata[n_br]={{1,2,0,0.1880,-0.6815,0.6040},{1,3,0.1302,0.2479,0.0129,0.0129},{1,4,0.1736,0.3306,0.0172,0.0172},{3,4,0.2603,0.4959,0.0259,0.0259},{2,2,0,0.05,0,0}};float Z2; //Z^2=R^2+X^2 各串联阻抗值的平方float U_amp[N],U_ang[N]; //e,f存储电压的x轴分量和y轴分量,dfe存储电压修正值float dU_amp[N],dU_ang[N]; //电压幅值和相角修正值float mid1[N],mid2[N],dP[N-1],dQ[n_PQ]; //mid1、mid2存储计算雅克比行列式对角线元素的中间值,dS存储PQU的不平衡量float dPQU=1.0; //PQU不平衡量最大值int kk=0; //迭代次数int i,j,k;float t;//形成导纳矩阵-------------------------------------------------------------------------------------------------- for(i=0;i<N;i++)for(j=0;j<N;j++){G[i][j]=0;B[i][j]=0;}for(i=0;i<n_br;i++){if(ydata[i].nl!=ydata[i].nr){Z2=(ydata[i].R)*(ydata[i].R)+(ydata[i].X)*(ydata[i].X);//串联阻抗等效导纳值//非对角元素G[ydata[i].nl-1][ydata[i].nr-1]=(-ydata[i].R)/Z2;B[ydata[i].nl-1][ydata[i].nr-1]=ydata[i].X/Z2;G[ydata[i].nr-1][ydata[i].nl-1]=(-ydata[i].R)/Z2;B[ydata[i].nr-1][ydata[i].nl-1]=ydata[i].X/Z2;//对角元素G[ydata[i].nl-1][ydata[i].nl-1]+=ydata[i].R/Z2;G[ydata[i].nr-1][ydata[i].nr-1]+=ydata[i].R/Z2;B[ydata[i].nl-1][ydata[i].nl-1]+=(-ydata[i].X/Z2);B[ydata[i].nr-1][ydata[i].nr-1]+=(-ydata[i].X/Z2);//并联导纳等效导纳值B[ydata[i].nl-1][ydata[i].nl-1]+=ydata[i].Bl;B[ydata[i].nr-1][ydata[i].nr-1]+=ydata[i].Br;}else{G[ydata[i].nl-1][ydata[i].nr-1]+=ydata[i].R;B[ydata[i].nl-1][ydata[i].nr-1]+=ydata[i].X;}}printf("G=\n");disp_matrix(*G,N,N);printf("B=\n");disp_matrix(*B,N,N);//分离U,deltafor(i=0;i<N;i++){U_amp[i]=Us[2*i];U_ang[i]=Us[2*i+1];}=================================================================== ==================================while(dPQU>0.00001){for(i=0;i<N-1;i++){mid1[i]=0;mid2[i]=0;for(j=0;j<N;j++){mid1[i]=mid1[i]+G[i][j]*U_amp[j]*cos(U_ang[j])-B[i][j]*U_amp[j]*sin(U_ang[j]);mid2[i]=mid2[i]+G[i][j]*U_amp[j]*sin(U_ang[j])+B[i][j]*U_amp[j]*cos(U_ang[j]);}dP[i]=Ps[i]-(U_amp[i]*cos(U_ang[i])*mid1[i]+U_amp[i]*sin(U_ang[i])*mid2[i]);if(i<n_PQ)dQ[i]=Qs[i]-(U_amp[i]*sin(U_ang[i])*mid1[i]-U_amp[i]*cos(U_ang[i])*mid2[i]);}dPQU=0;for(i=0;i<N-1;i++){if(dP[i]<0&&dPQU<-dP[i])dPQU=-dP[i];else if(dP[i]>0&&dPQU<dP[i])dPQU=dP[i];}for(i=0;i<n_PQ;i++){if(dQ[i]<0&&dPQU<-dQ[i])dPQU=-dQ[i];else if(dQ[i]>0&&dPQU<dQ[i])dPQU=dQ[i];}if(dPQU>0.00001){kk++;//形成B',B''矩阵for(i=0;i<N-1;i++)for(j=0;j<N-1;j++){B1[i][j]=B[i][j];if(i<n_PQ&&j<n_PQ)B2[i][j]=B[i][j];//求P,delta修正值for(i=0;i<N-1;i++){dP[i]=dP[i]/U_amp[i];if(i<n_PQ)dQ[i]=dQ[i]/U_amp[i];}//B'求逆----------------------------------------------------------------------------------- for(i=0;i<N-1;i++)for(j=0;j<N-1;j++){if(i!=j)invB1[i][j]=0;elseinvB1[i][j]=1;}for(i=0;i<N-1;i++){for(j=0;j<N-1;j++){if(i!=j){t=B1[j][i]/B1[i][i];for(k=0;k<N-1;k++){B1[j][k]-=B1[i][k]*t;invB1[j][k]-=invB1[i][k]*t;}}}}for(i=0;i<N-1;i++)if(B1[i][i]!=1){t=B1[i][i];for(j=0;j<N-1;j++)invB1[i][j]=invB1[i][j]/t;}for(i=0;i<N-1;i++)dU_ang[i]=0;for(i=0;i<N-1;i++){for(j=0;j<N-1;j++)dU_ang[i]+=invB1[i][j]*dP[j]; dU_ang[i]=dU_ang[i]/U_amp[i]; }//Q,U_amp修正值//B''求逆for(i=0;i<n_PQ;i++)for(j=0;j<n_PQ;j++){if(i!=j)invB2[i][j]=0;elseinvB2[i][j]=1;}for(i=0;i<n_PQ;i++){for(j=0;j<n_PQ;j++){if(i!=j){t=B2[j][i]/B2[i][i];for(k=0;k<n_PQ;k++){B2[j][k]-=B2[i][k]*t;invB2[j][k]-=invB2[i][k]*t;}}}}for(i=0;i<n_PQ;i++)if(B2[i][i]!=1){t=B2[i][i];for(j=0;j<n_PQ;j++)invB2[i][j]=invB2[i][j]/t;}for(i=0;i<n_PQ;i++)dQ[i]=dQ[i]/U_amp[i];for(i=0;i<n_PQ;i++)dU_amp[i]=0;for(i=0;i<n_PQ;i++){for(j=0;j<n_PQ;j++)dU_amp[i]+=invB2[i][j]*dQ[j]; }for(i=0;i<N;i++){U_amp[i]-=dU_amp[i];U_ang[i]-=dU_ang[i];}}elsebreak;}//循环结束---------------------------------------------------------------------------------------------------------------//求平衡节点功率---------------------------------------------------------------------------------------------------mid1[N-1]=0;mid2[N-1]=0;for(j=0;j<N;j++){mid1[N-1]=mid1[N-1]+G[N-1][j]*U_amp[j]*cos(U_ang[j])-B[N-1][j]*U_amp[j]*sin(U_ang[j] );mid2[N-1]=mid2[N-1]+G[N-1][j]*U_amp[j]*sin(U_ang[j])+B[N-1][j]*U_amp[j]*cos(U_ang[j ]);}Ps[N-1]=U_amp[N-1]*cos(U_ang[N-1])*mid1[N-1]+U_amp[N-1]*sin(U_ang[N-1])*mid2[N-1];Qs[N-1]=U_amp[N-1]*sin(U_ang[N-1])*mid1[N-1]-U_amp[N-1]*cos(U_ang[N-1])*mid2[N-1 ];for(i=n_PQ;i<N-1;i++)Qs[i]=U_amp[i]*sin(U_ang[i])*mid1[i]-U_amp[i]*cos(U_ang[i])*mid2[i];//---------------------------------------------------------------------------------------------------------------------------// 显示输出结果printf("kk=%d\n",kk);printf("P=");for(i=0;i<N;i++)printf("%9.4f",Ps[i]);printf("\nQ=");for(i=0;i<N;i++)printf("%9.4f",Qs[i]);printf("\nU_amp=");for(i=0;i<N;i++)printf("%9.4f",U_amp[i]);printf("\nU_ang(deg)=");for(i=0;i<N;i++)printf("%9.4f",U_ang[i]*180/PI);printf("\n\n");}//================================================================== ======================================void disp_matrix(float *disp_p,int disp_m,int disp_n){int i,j;for(i=0;i<disp_m;i++){for(j=0;j<disp_n;j++)printf("%9.4f",*(disp_p+i*disp_m+j));printf("\n");}printf("\n");}。
9P-Q分解法潮流计算
⎡ ΔP ( 0 ) ⎤ ⎡ H N ⎤ ⎡ Δδ ( 0 ) ⎤ =⎢ ⎢ ⎥⎢ (0) ⎥ (0) (0) ⎥ ⎣ ΔQ ⎦ ⎣ J L ⎦ ⎣ ΔU U ⎦
解出
⎡ Δδ ( 0 ) ⎤ ⎢ (0) ⎥ ⎣ ΔU ⎦
–
– –2009-5-18 计算平衡节点功率、PV节点无功以及线路传输功率。 复杂电力系统潮流计算
Yij = G − j ( B + B f ) +
2009-5-18
1 1 1 + j2Bf j2Bf
= G − jB
5
牛顿-拉夫逊法潮流计算
PV节点:已知P、U ,待求量为Q、δ 因为PV节点的电压给定,故 ΔU 为零,该方程不 需要列出。第 k 次迭代时,功率不平衡量
Δ Pi
(k)
= f
n
(k) Pi
( ( = Pi − ∑ U i( k )U (j k ) (Gij cos δ ij k ) + Bij sin δ ij k ) ) j =1
⎡δ (1) ⎤ ⎡δ (0 ) ⎤ ⎡ Δδ (0 ) ⎤ 计算各点电压的新值 ⎢ = ⎢ (0 ) ⎥ − ⎢ (1) ⎥ (0 ) ⎥ ⎣U ⎦ ⎣U ⎦ ⎣ ΔU ⎦ 迭代至收敛,即 Δ U < ε 和 Δ δ < ε
3
修正方程
⎡ ΔP1 ⎤ ⎡ H11 ⎢ ⎥ ⎢ ΔP2 ⎥ ⎢ H 21 ⎢ ⎢L ⎥ ⎢L ⎢ ⎥ ⎢ ⎢ ΔPn ⎥ = ⎢ H n1 ⎢ ΔQ ⎥ ⎢ J ⎢ 1 ⎥ ⎢ 11 ⎢ ΔQ2 ⎥ ⎢ J 21 ⎢L ⎥ ⎢ ⎢ ⎥ ⎢L ⎢ ΔQn ⎥ ⎢ J n1 ⎣ ⎦ ⎣ H12 L H1n N 11 H 22 L H 2n N 21 H n 2 L H 1 n N n1 J 12 L J 1 n J 22 L J 2n J n 2 L J nn L11 L21 Ln1 N 12 L N 1 n ⎤ ⎥ N 22 L N 2n ⎥ ⎥ ⎥ N 22 L N nn ⎥ L12 L L1 n ⎥ ⎥ L22 L L2n ⎥ ⎥ ⎥ Ln 2 L Lnn ⎥ ⎦ ⎡ Δδ 1 ⎤ ⎢ ⎥ Δδ 2 ⎥ ⎢ ⎢ L ⎥ ⎢ ⎥ ⎢ Δδ n ⎥ ⎢ ΔU U ⎥ ⎢ 1 1⎥ ⎢ ΔU 2 U 2 ⎥ ⎢L ⎥ ⎢ ⎥ ⎢ ΔU n U n ⎥ ⎣ ⎦
电力系统分析P-Q分解法潮流计算终稿
电力系统分析P-Q分解法潮流计算终稿《电力系统分析》课程设计报告题目:复杂电力系统潮流分析程序设计所在学院电气工程学院专业班级 12级电气工程及其自动化一班学生姓名陈剑秋学生学号 202130088099 指导教师房大中提交日期 2021年 12 月 16日华南理工大学广州学院电气工程学院电力系统分析课程设计报告摘要电力系统潮流计算是电力系统分析课程基本计算的核心部分之一。
它既有本身的独立意义,又是电力系统规划设计,运行分析和理论研究的基础。
电力系统潮流计算是对复杂电力系统正常和故障条件下稳态运行状态的计算,是电力系统计算分析中的一种最基本的计算。
潮流计算是电力系统的各种计算的基础,同时它又是研究电力系统的一项重要分析功能,是进行故障计算,继电保护鉴定,安全分析的工具。
电力系统潮流计算是计算系统动态稳定和静态稳定的基础。
在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用电力系统潮流计算来定量的比较供电方案或运行方式的合理性、可靠性和经济性本课程设计采用P-Q分解法对三机九节点系统进行潮流计算。
计算结果的得出是通过MATLAB软件编程实现。
关键词:电力系统潮流计算,P-Q分解法,三机九节点系统I华南理工大学广州学院电气工程学院电力系统分析课程设计报告AbstractPower flow calculation is the core part of the power system analysis course basic computing. It has both the independent meaning itself, and is the power system planning and design, the basic operation analysis and theoretical study.Power flow calculation is the calculation of the steady state operation of normal and fault conditions of complex power system, is one of the most basic calculation of power system calculation and analysis of. Power flowcalculation is the basis of all kinds of power system calculation, and it is also an important function of power system analysis study, is the fault calculation, relay protection and identification, safety analysis tool. Power flow calculation is the basis of calculation system of dynamic and static stabilization. In the research of operation mode of power system planning and the existing power system, the rationality of power supply, reliability and economy of the program or run mode comparison requires the use of power flow calculation to quantitativeThe curriculum design using P-Q decomposition method for power flow calculation of the three machine nine bus system. It is concluded that the calculation result is achieved by MATLAB software programming.Keywords: power system power flow calculation, the P-Q decomposition method, three machine nine node systemII华南理工大学广州学院电气工程学院电力系统分析课程设计报告目录要............................................................................ (I)Abstract ..................................................................... ............................................. II 一、绪论............................................................................ ................................... 1 1.1 本课题的目的和意义............................................................................ .......... 1 1.2 国内外发展现状............................................................................ . (1)1.2.1 高斯-赛德尔迭代法............................................................................ .. 2 1.2.2 牛顿-拉夫逊法和P-Q分解法.............................................................. 2 1.2.3 基于MATLAB 的电力系统潮流计算发展前景..................................... 3 二、设计目的............................................................................ ........................... 4 三、设计要求和设计指标............................................................................ ....... 4 四、设计内容............................................................................ ........................... 4 4.1 选题内容............................................................................ ............................. 4 4.2 基础资料............................................................................ ............................. 5 4.3算法原理............................................................................ . (6)4.3.1 节点导纳矩阵形成的计算机方法........................................................ 6 4.3.2 电力网络的潮流方程.. (9)4.3.3 电力网络极坐标形式的潮流方程.................................................... 10 4.3.4 极坐标牛顿潮流算法的修正方程雅和可比矩阵............................ 10 4.3.5 PQ分解法潮流计算...........................................................................11 五、程序设计............................................................................ ......................... 13 5.1 主函数............................................................................ ............................... 13 5.2 子函数............................................................................ ............................... 16 六、输入与输出结果............................................................................ ............. 21 6.1 输入数据............................................................................ ........................... 21 6.2 输出结果............................................................................ ........................... 22 6.3 当bus4-6的发生故障被切断后,系统的运行情况................................. 25 6.4 两机五节点网络............................................................................ ............... 30 七、结果分析............................................................................ ......................... 34 7.1 三机九节点系统正常运行结果分析........................................................... 34 7.2 三机九节点系统故障切除后结果分析.......................................................35 结论............................................................................ ........................................... 35 参考文献............................................................................ .. (36)III华南理工大学广州学院电气工程学院电力系统分析课程设计报告一、绪论1.1 本课题的目的和意义电力系统潮流计算是对复杂电力系统正常和故障条件下稳态运行状态的计算。
电分课设-PQ分解法计算潮流及其仿真结果.docx
摘要潮流计算是研究电力系统稳态运行情况的一种基本电气计算,通过潮流计算可以就给定的运行条件和网路结构确定整个系统的运行状态,确定各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等参数。
常用的潮流计算方法有牛顿-拉弗逊法、P-Q分解法、直流潮流法、并行处理法等。
P-Q分解法速度快,计算效率高,实用性强,Matlab编程与C语言相似,而且极其适合计算矩阵。
因此,本设计采用P-Q分解法并使用Matlab软件编程进行潮流计算,获得简单电力系统各节点电压,功率分布,功率损耗等参数。
关键词:潮流计算,P-Q分解法,Matlab编程计算1潮流计算背景1.1潮流计算意义电力系统潮流计算是研究电力系统稳态运行情况的一种基本电气计算。
它的任务是根据给定的运行条件和网路结构确定整个系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。
电力系统潮流计算的结果是电力系统稳定计算和故障分析的基础。
潮流计算几点意义如下:(1)在电网规划阶段,通过潮流计算,合理规划电源容量及接入点,合理规划网架,选择无功补偿方案,满足规划水平的大、小方式下潮流交换控制、调峰、调相、调压的要求。
(2)在编制年运行方式时,在预计负荷增长及新设备投运基础上,选择典型方式进行潮流计算,发现电网中薄弱环节,供调度员日常调度控制参考,并对规划、基建部门提出改进网架结构,加快基建进度的建议。
(3)正常检修及特殊运行方式下的潮流计算,用于日运行方式的编制,指导发电厂开机方式,有功、无功调整方案及负荷调整方案,满足线路、变压器热稳定要求及电压质量要求。
(4)预想事故、设备退出运行对静态安全的影响分析及作出预想的运行方式调整方案。
在电力系统运行方式和规划方案的研究中,都需要进行潮流计算以比较运行方式或规划供电方案的可行性、可靠性和经济性。
同时,为了实时监控电力系统的运行状态,也需要进行大量而快速的潮流计算。
因此,潮流计算是电力系统中应用最广泛、最基本和最重要的一种电气运算。
第四章 PQ分解法潮流计算
j¹i
极坐标形式的修正方程式(重新排序)
(n1)
é DP1 ù é H11 H12 L H1p H1n M N11 N12 L
ê ê
D P2
ú ú
ê ê
H
21
H 22
L H2p
H2n
M
N21 N22 L
ù é Dd1 ù
úê úê
Dd 2
ú ú
êMú ê
L
M
L úê M ú
ê ê
D Pp
ú ú
ê ê
N22 M H2 p L22 M J 2 p
H2n J2n
ú ú ú
ê ê ê
Dd 2 DU2 /U
2
ú ú ú
êMú ê
L
M
L
úê
ú
ê ê
L
ú ú
=
ê ê
L
L
L
L
M
L
LL
L
L úú
ê ê
L
ú ú
2(nm )
PV节点
ê ê
DPp
ú ú
ê ê
H
p1
N p1
H p2
N p2
M H pp
雅可比矩ê 阵:ú ê
网
自学内容
n 稀疏技术 n 压缩存储 n 节点编号优化 n 高斯消去法 n 因子表法
\
ì í î
Pi Qi
= =
eiai + fiai -
f i bi eibi
极坐标形式的功率方程(电压用相量表示):
å å Pi - jQi = UiÐ -qi (Gij + jBij )U jÐq j = Ui (Gij + jBij )U j (cosqij - j sinqij )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function PQ%用PQ分解法计算大电网潮流% %bus数组1.节点编号2.节点电压3.节点电压角度4.注入有功5.注入无功6.节点类型(1PQ 2PV 3平衡)%line数组1.始端节点编号2.末端节点编号3.电阻4电抗5电导G 6电纳B 7.变比%打开数据文件clearclcbus=load('');line=load('');linenum(:,[1,2])=line(:,[1,2]);[nb,~]=size(bus);[nl,~]=size(line);% nodenum=[(1:nb)' bus(:,1)];%带入子函数数据处理[bus,line,nPQ,nPV,nSW,nodenum] =change1_busline( bus,line );%对节点重新编号Y = admittance(bus,line,1 );%生成节点导纳矩阵Y1= admittance(bus,line,2 );%生成化简条件3的矩阵B1Y2=admittance(bus,line,3 );%生成化简条件3的矩阵B2%-----------------------------------------------------% %临时添加的测试数据% nPQ=4; nPV=0;nSW=1;nb=5;% Y=[ +5i +5i + -5+15i% +5i -10+30i 0 + % +5i -10+30i + 0% + 0 + 0% -5+15i + 0 0%% Y1=[ +5i +5i + -5+15i% +5i -10+30i 0 + % +5i -10+30i + 0% + 0 + 0% -5+15i + 0 0%% bus=[1 1 0 1% 2 1 0 1% 3 1 0 1% 4 1 0 1% 5 0 0 0 3];%% line=[5 2 0 0 0% 2 3 10 -30 0 0 0% 3 4 0 0 0% 4 1 0 0 0% 1 2 -5 0 0 0% 1 3 -5 0 0 0% 1 5 5 -15 0 0 0];%-------------------------------------------------------bus_PV0=bus((nPQ+1):end,2)';%*ones(1,nPV+nSW);bus_U=[ones(1,nPQ) bus_PV0]';%电压幅值bus_e=zeros(nb,1); %电压角度delta_P=zeros(nPQ+nPV,1);delta_Q=zeros(nPQ,1);% delta_e=zeros(nb-1,1);%delta_U=zeros(nPQ,1);c=0;KP=1;KQ=1;%KP KQ用来判断有功、无功是否收敛G=real(Y);B=imag(Y);B10=imag(Y1);B20=imag(Y2);%矩阵B0是进行化简三后的节点导纳矩阵虚部%形成解耦潮流的系数矩阵B1和B2B1=B10(1:nb-1,1:nb-1);B2=B20(1:nPQ,1:nPQ);while c<80%求解P Q的不平衡量for ii=1:nPQ+nPVdelta_P(ii)=bus(ii,4);for jj=1:nbdelta_P(ii)=delta_P(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*cos(bus_e(ii)-bus_e(jj))+B(ii,jj)*sin(bus_e(ii)-bus_e(jj)));endendUP=diag(bus_U(1:(nb-1)));%U矩阵利用各节点电压形成对角阵,来计算修正方程,对角线上的元素与bus_U列元素一一对应error_P=UP\delta_P;if max(abs(error_P))>delta_e=-(UP*B1)\error_P;bus_e=bus_e+[delta_e;0];c=c+1;KQ=1;else KP=0;if KQ~=0elsebreakendendfor ii=1:nPQdelta_Q(ii)=bus(ii,5);for jj=1:nbdelta_Q(ii)=delta_Q(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*sin(bus_e(ii)-bus_e(jj))-B(ii,jj)*cos(bus_e(ii)-bus_e(jj)));endendUQ=diag(bus_U(1:(nb-nPV-nSW)));error_Q=UQ\delta_Q;if max(abs(error_Q))>delta_U=-B2\error_Q;bus_U=bus_U+[delta_U;zeros((nPV+nSW),1)];c=c+1;KP=1;else KQ=0;if KP~=0elsebreakendendend%至此得到收敛的节点电压值%----------------------------------------------%--------------------------------------------% 对计算结果进行数据处理%将节点结果用原节点编号表示bus_Ue=zeros(nb,3);bus_Ue(:,[1,2,3])=[nodenum(:,2) bus_U bus_e/pi*180]; for ii=1:nbfor jj=ii+1:nbif bus_Ue(ii,1)>bus_Ue(jj,1)t=bus_Ue(ii,:);bus_Ue(ii,:)=bus_Ue(jj,:);bus_Ue(jj,:)=t;endendend%r_U是收敛的电压表达成复数的形式r_U=zeros(nb,1);for k=1:nbr_U(k)=bus_U(k)*(cos(bus_e(k))+1i*sin(bus_e(k)));end%计算平衡节点功率SW_S=0;SW_S=SW_S+r_U(nb)*conj(Y(nb,:))*conj(r_U);%计算各支路功率Sijline_S=zeros(nb,nb);line_S0=zeros(nb,nb);for ii=1:nbfor jj=1:nbline_S(ii,jj)=r_U(ii)*(conj(r_U(ii))*conj(Y(ii,ii))+(conj(r_U(ii))-conj(r_U(jj)))*conj(Y(ii,jj)));endend%------------------------------------------%把线路结果还原成原节点编号对应的结果for ii=1:nbfor jj=1:nbline_S0(nodenum(ii,2),nodenum(jj,2))=line_S(ii,jj);endendline_P=real(line_S0);line_Q=imag(line_S0);%计算各支路损耗delta_S=zeros(nl,1);for k=1:nla=linenum(k,1);b=linenum(k,2);delta_S(k)=line_S0(a,b)+line_S(b,a);end%计算网络总损耗S0=sum(delta_S);%-------------------------------------------------%将计算结果输入指定文件fid=fopen('C:\Users\lr\Desktop\matlab练习\训练题\大电网潮流计算\','wt'); fprintf(fid,'节点号\t节点电压幅值\t节点电压角度\n');for k=1:nbfprintf(fid,'%d\t%f\t%f\n',k,bus_Ue(k,1),bus_Ue(k,2));endfprintf(fid,'支路首端\t支路末端\t支路有功\t支路无功\t支路损耗\n');for k=1:nlfprintf(fid,'%d\t\t%d\t\t%f\t%f\t%f\n',linenum(k,1),linenum(k,2),line_P(linenum(k,1),linenum(k,2)),line_Q (linenum(k,1),linenum(k,2)),delta_S(k));endfprintf(fid,'平衡节点功率=%f\n',SW_S);fprintf(fid,'网络总损耗=%f\n',S0);fclose(fid);endfunction [bus,line,nPQ,nPV,nSW,nodenum] =change1_busline( bus,line )%此函数用来对原始输入节点、线路数据进行重新编号% %bus数组1.节点编号2.节点电压3.节点电压角度4.注入有功5.注入无功6.节点类型(1PQ 2PV 3平衡)%line数组1.始端节点编号2.末端节点编号3.电阻4电抗5电导G 6电纳B 7.变比[nb,~]=size(bus);[nl,~]=size(line);% nodenum=[(1:nb)' bus(:,1)];nPQ=0; nPV=0;nSW=0;%PQ=[];PQ=zeros(nb,6);PV=zeros(nb,6);SW=zeros(nb,6);%PQ PV 平衡节点的个数for k=1:nbswitch bus(k,6)case 1nPQ=nPQ+1;PQ(nPQ,:)=bus(k,:);case 2nPV=nPV+1;PV(nPV,:)=bus(k,:);case 3nSW=nSW+1;SW(nSW,:)=bus(k,:);otherwisedisp('节点数据类型出错!');endend%生成重新编号后的节点数据矩阵bus=[PQ;PV;SW];nodenum=[(1:nb)' bus(:,1)];%第一列为新的节点编号,第二列为对应的旧节点编号bus(:,1)=(1:nb)'; %至此实现了节点数据的重新编号%------------------------------------------------------%对线路数据重新编号% nodenum=[(1:nb)' bus(:,1)];%第一列为新的节点编号,第二列为对应的旧节点编号for ii=1:nl[r1,~]=find(nodenum(:,2)==line(ii,1));line(ii,1)=nodenum(r1,1);[r2,~]=find(nodenum(:,2)==line(ii,2));line(ii,2)=nodenum(r2,1);endendfunction Y = admittance(bus,line,c )%此函数用来形成节点导纳矩阵% %bus数组1.节点编号2.节点电压3.节点电压角度4.注入有功5.注入无功6.节点类型(1PQ2PV 3平衡)%line数组1.始端节点编号2.末端节点编号3.电阻4电抗5电导6电纳B/2 7.变比%c是用来控制形成节点导纳矩阵的方式的,c=1 形成一般的节点导纳矩阵,可以用来确定B2,c=2,形成化简条件3的节点导纳矩阵,确定B1[nb,~]=size(bus);[nl,~]=size(line);Y=zeros(nb,nb);zt=zeros(nl,1);yt=zeros(nl,1);ym=zeros(nl,1);I=zeros(nl,1);J=zeros(nl,1);K=zeros(nl,1); switch ccase 1for k=1:nlzt(k)=line(k,3)+1i*line(k,4);yt(k)=1/zt(k);ym(k)=line(k,5)+1i*line(k,6);I(k)=line(k,1);J(k)=line(k,2);K(k)=line(k,7);endcase 2for k=1:nlyt(k)=1/(line(k,3)+1i*line(k,4));ym=zeros(nl,1);I(k)=line(k,1);J(k)=line(k,2);if line(k,7)~=1K(k)=1;else K(k)=line(k,7);endendcase 3for k=1:nlyt(k)=1/(1i*line(k,4));ym(k)=line(k,5)+1i*line(k,6);I(k)=line(k,1);J(k)=line(k,2);K(k)=line(k,7);endend%针对不同线路设置节点导纳值for k=1:nlif (K(k)==1)&&(J(k)~=0) %普通线路Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)+ym(k);Y(I(k),J(k))=Y(I(k),J(k))-yt(k);Y(J(k),I(k))=Y(I(k),J(k));endif (K(k)==1)&&(J(k)==0) %对地支路Y(I(k),I(k))=Y(I(k),I(k))+ym(k);endif (K(k)>1)&&(J(k)~=0) %非标准变比在j侧的变压器支路,zt ym为折算到i侧的值Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)/K(k)^2;Y(I(k),J(k))=Y(I(k),J(k))-yt(k)/K(k);Y(J(k),I(k))=Y(I(k),J(k));endif (K(k)<1)&&(J(k)~=0)Y(I(k),I(k))=Y(I(k),I(k))+yt(k)+ym(k);Y(J(k),J(k))=Y(J(k),J(k))+yt(k)*K(k)^2;Y(I(k),J(k))=Y(I(k),J(k))-yt(k)*K(k);Y(J(k),I(k))=Y(I(k),J(k));endendend。