用高斯赛德尔法求节点电压_第1页
用高斯赛德尔法求节点电压_第2页
用高斯赛德尔法求节点电压_第3页
用高斯赛德尔法求节点电压_第4页
用高斯赛德尔法求节点电压_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学电力系统分析课程设计说明书目录摘要11.设计目标22设计原理22.1 高斯-赛德尔迭代法22.2 MTLAB与MATPOWER32.3 节点导纳矩阵与节点类型42.3.1 节点导纳矩阵42.3.2 节点类型52.4 潮流计算63 计算过程及步骤74 MATPOWER中建模解决问题84.1 MATPOWER的技术规则84.1.1.数据文件格式84.1.2.控制选项94.2 MATPOWER实际建模104.2.1 建模中的实际问题104.2.3 建模结果显示12小结17参考文献18摘要大型线性方程组的求解是大规模科学与工程计算的核心。随着计算机的飞速发展,迭代法已取代直接法成为求解大型

2、线性方程组的最重要的一类方法。而判断迭代法好坏的标准通常是通过迭代法的收敛速度刻画的,从而迭代法的收敛速度成为一个很重要的问题,因此我们应该找收敛速度比较快的迭代方法,这样才有实际价值。因此,本文就通过数值实验说明,求线性方程组的近似解时,高斯-赛德尔迭代法的收敛速度比雅可比迭代法的收敛速度要快一些。随着科学技术的发展,生产实际中出现了大量的大型稀疏线性代数方程组,同时,用差分方法逼近微分方程的过程中,也需要求解这类线性方程组。因而,研究大型稀疏线性方程组的解法成了人们所关注的焦点。由于迭代法能够充分利用矩阵的稀疏性,从而节省存储单元,因而它是解大型稀疏线性代数方程组的比较实用的方法之一。 众

3、所周知,构造一个迭代法,它的收敛性和收敛速度是一个关键问题,不收敛的格式自然不能用,而收敛满的方法同样由于其费时且不一定能得出结果使得人们无法使用,这样在实际使用迭代法求解问题时就必须寻求收敛性好且收敛速度较快的方法。 20世纪50年代是用数字计算机求解电力系统潮流问题的开始阶段,人们普遍采用以节点导纳矩阵为基础的高斯-赛德尔迭代法。这个方法的原理比较简单,要求的数字计算机的内存量也比较小,适应当时的电子数字计算机制作水平和电力系统理论水平。高斯-赛德尔潮流计算法在牛顿法以及各种解耦法出现以后似乎成了一种边缘性的方法。但是此方法原理简单, 编程实现容易, 特别是对于配网潮流有其独特优势。1.设

4、计目标 在已知的节点导纳矩阵下,告诉部分节点类型及数据,要通过高斯-赛德尔法求出未知的节点电压,通过分析,找到要掌握的问题有以下几点:高斯-赛德尔法到底是什么,通过手算还是软件。 在明白了这些问题后有了大致的方向,我打算通过上网、去图书馆查找相关书籍找相关知识、准备相关软件。2设计原理2.1 高斯-赛德尔迭代法要掌握著名德国数学家高斯和数学家赛德尔研究出的这种非线性代数方程组的迭代解法,还需要学习德国数学家雅可比研究出的雅可比迭代法,其推导过程如下;线性方程组Ax=b (2-1)设线性方程组(2-1)的系数矩阵A可逆且主对角线元素a11,a22,ann均不为零,令D=diag(a11,a22,

5、ann) (2-2)并将A分解成A=(A-D)+D (2-3)从而式(2-1)可写成 Dx=D-Ax+b (2-4)令 x=B1+f1 (2-5)其中B1=1-D-1A, f1=D-1b (2-6)以伪迭代矩阵的迭代法(公式) x(k+1)=B1X(k)+f1 (2-7) 式(2-6)称为雅可比迭代法,用向量的分量来表示,式(2-6)为 (2-8)其中x(0)=(x10,x20x30,.xn0)T为初始向量., 由雅可比迭代公式可知,在迭代的每一步计算过程中是用x(k)的全部分量来计算x(k+1)的所有分量,显然在计算第i个分量x(k+1)时,已经计算出的最新分量 x1(k+1), Xi-1(

6、k+1)没有被利用,从直观的角度看,最新的分量可能比旧的分量要好些,因此,对这些最新计算出来的第K+1次近似x(k+1)的分量 Xj(k+1)加以利用,就得到所谓解方程组的高斯赛德尔迭代法。具体如下:把矩阵A分解成A=D-L-U (2-9)其中D=diag(a11,a22,ann),-L,-U分别为A 的主对角元除外的下三角和上三角部分,于是,方程组(2-1)便可写成(D-L)x=Ux+b (2-10)即 x=B2x+f2 (2-11)其中B2=(D-L)-1U,f2=(D-L)-1b (2-12)以B2为迭代矩阵构成的迭代法(公式)x(k+1)=B2x(k)+f2 称为高斯-赛德尔迭代法,用

7、向量表示的形式为 (2-13)收敛判据:复数模型: (2-14)实数模型:, (2-15)2.2 MTLAB与MATPOWER 潮流计算经历了一个由手工利用交直流计算到应用数字电子计算机的发展过程,目前常见的潮流计算仿真软件主要有电科院的PASAP,美国的BPA,PSS/E等,但源代码都不公开,所以最佳方案还是基于MATLAB语言编写的电力潮流计算的软件MATPOWER。MATPOWER是一个用MATLAB的M文件编写的软件包,由康奈尔大学电力系统工程研究中心开发,最新版本是MATPOWER4.1,浙江大学的甘德强教授在康奈尔工作期间是主要研发人员。 首先在MATPOWER主页下载相关的压缩文

8、件,解压文件,将解压后文件放到MATLAB的搜索路径下。实际操作中注意完成以上步骤后要在MATLAB中的SET PATH中将MATPOWER添加到MATLAB路径中,这步必不可少。2.3 节点导纳矩阵与节点类型2.3.1 节点导纳矩阵节点导纳矩阵以导纳形式描述电力网络节点注入电流和节点电压关系的矩阵。它给出了电力网络连接关系和元件特性的全部信息。根据基尔霍夫电流定律可写出电力网络中的n个节点方程式:(2-16) 可用矩阵的形式表示I=YV。其中, (2-17) (2-18) (2-19) 对角元素为节点 i的自导纳,非对角线为节点 i与节点j之间的互导纳。节点导纳矩阵反映了网络的参数及接线情况

9、,因此,节点导纳矩阵可以看成是对电力网络电气特性的一种数学抽象。由导纳矩阵所联系的节点方程式是电力网络广泛应用的一种数学模型。节点导纳矩阵的有以下特点:(1)导纳矩阵是稀疏矩阵。它的对角线元素一般不为零,但在非对角线元素中则存在不少零元素。在电力系统的接线图中,一般每个节点与平均不超过34个其他节点有直接的支路连接。因此,在导纳矩阵的非对角线元素中每行仅有34个非零元素,其余的都是零元素,而且网络的规模越大,这种现象越显著。 (2)导纳矩阵为对称矩阵。由网络的互易特性易知 Yij=Yji。导纳矩阵的对称性和稀疏性对于应用计算机求解电力系统问题有很大的影响。如果能充分地利用这两个特点,如在程序设

10、计中储存导纳矩阵的对角元素和上三角元素(或下三角元素),排除零元素的储存和运算,就可以大大地节省储存单元和提高计算速度。2.3.2 节点类型 (1)PQ节点:PQ节点指的是该节点的注入有功功率和无功功率是已知的,而该节点的电压幅值和相位是未知的。在电力系统中,各负荷节点、担任基本负荷的发电厂都属于PQ节点,部分互联电力网的联络节点也可以定义为PQ节点。(2)PV节点:PV节点指的是节点的注入有功功率和无功功率是已知的,而该节点的无功功率和电压相位是未知的。在电力系统中,具备无功功率调节的节点都可以作为PV节点,部分互联电力网的联络节点也可以定义为PV节点。(3)平衡节点:平衡节点的电压幅值和相

11、位是给定的,而其注入有功功率和无功功率是待求量。平衡节点的A相电压相位是系统的相位基准,最后计算结果中的所有相位值都是以平衡节点的A相电压相位作为参考的,所以平衡节点在系统中只能有一个,且必须有一个,它对系统起到功率平衡的作用,可以向系统提供缺损的功率,也可以吸收系统中多余的功率。从理论上讲,平衡节点代表与系统相连的无穷大系统,实际应用中,一般选取系统中的主调频发电厂为平衡节点比较合理,最后计算结果中的平衡节点功率就是此发电厂必须向系统提供的功率。如果系统是与另一更大的电力系统S相连,则也可以选取这个连接点作为平衡节点,最后计算结果中的平衡节点功率就是系统S通过平衡节点向系统提供的功率。另外如

12、果系统是一独立系统且只有一个电源点,则必须选此电源点为平衡节点。2.4 潮流计算 电力系统潮流计算的结果是计算出各节点电压、相位、支路功率、网络损耗等。通过计算可以得到节点电压,可以评估电压是否满足电能质量指标的要求;节点电压相位是评估系统稳定性的重要参数。潮流计算结果是各种控制技术措施、调度方案、规划方案评估的依据。电力系统潮流计算属于稳态分析范畴,不涉及系统元件的动态特性和过渡过程。因此其数学模型不包含微分方程,是一组高阶非线性方程。非线性代数方程组的解法离不开迭代,因此,潮流计算方法首先要求它是能可靠的收敛,并给出正确答案。在用数字计算机求解电力系统潮流问题的开始阶段,人们普遍采用以节点

13、导纳矩阵为基础的高斯-赛德尔迭代法(一下简称导纳法)。这个方法的原理比较简单,要求的数字计算机的内存量也比较小,适应当时的计算机制作水平和电力系统理论水平,于是电力系统计算人员转向以阻抗矩阵为主的逐次代入法。但是阻抗法运算量大,解决其缺点的另一途径是采用牛顿-拉夫逊法,直到现在牛顿法都广泛使用。后来又有了在牛顿法基础上的PQ法,也得到了广泛使用。3 计算过程及步骤如图3-1所示的简单电力系统,节点导纳矩阵为:节点2、3的注入功率已知,节点1为平衡节点,节点4为PV节点,用高斯-塞德尔法求节点2、3、4的电压,只迭代一次,取节点2、3的电压初值均为10。(图中各值均为标么值)。 图3-1 电力系

14、统模型图 设 (3-1) (3-2)由高斯-赛德尔迭代式,即 (3-3)可得: (3-4) (3-5) (3-6) (3-7)4 MATPOWER中建模解决问题4.1 MATPOWER的技术规则4.1.1.数据文件格式 在潮流计算时,把电网的各种参数写成MATPOWER的数据文件格式,一般为M文件,MATPOWER4.0提供两种数据文件格式:version.1和version.2,我采用version.2格式。每个电网用变量名为“mpc”的结构体来定义,结构体mpc的不同字段用baseMVA、bus、branch、gen等来定义和返回电网的具体参数。在这些字段中,除baseMVA是标量外,其他

15、都是矩阵。列的数据类似于标准的IEEE和PTI列的数据格式。MATPOWER中提供了大量的IEEE制定的典型模型,规范细节可以再caseformat.m中看到。mpc不同字段的简要介绍如下:(1)字段baseMVA是标量,设置基准电压,一般为100MVA。 (2)字段bus是一个矩阵,用来设置电网母线参数。矩阵每一行都对应一个单一的母线,列的数据格式为bus_i、type、Pd、Qd、Gs、Bs、area、Vm、Va、baseKV、zone、Vmax、Vmin。bus_i用来设置母线编号;type用来设置母线类型,1为PQ节点母线,2为PV节点母线,3为平衡节点母线,4为孤立节点母线;Pd、Q

16、d用来设置母线注入负荷的有功功率和无功功率;Gs、Bs用来设置该母线并联电导和电纳;baseKV用来设置母线基准电压;Vm和Va用来设置母线电压幅值和相位初值;Vmax、Vmin用来设置母线工作时最高、最低电压幅值;area、zone用来设置电网断面号和分区号,一般为1。(3)字段gen 为一个矩阵,用来设置接入电网的发电机参数。矩阵的每一行对应一个发电机,列的数据格式为bus、Pg、Qg、Qmax、Qmin、Vg、mBase、status、Pmax、Pmin。bus用来设置接入发电机的母线编号;Pg、Qg用来设置接入发电机的有功功率和无功功率;Pmax、Pmin用来设置接入发电机的有功功率最

17、大和最小允许值;Qmax、Qmin用来设置接入发电机的无功功率最大和最小允许值;Vg用来设置接入发电机的工作电压;mBase用来设置接入发电机的基准功率;status用来设置发电机的工作状态,1表示投入,0退出。(4)字段branch用来设置电网中各支路参数。矩阵的每一行都对应一个单一支路,列的数据格式为fbus、tbus、r、x、b、rateA、rateB、rateC、ratio、angle、status、angmin、angmax。Fbus、tbus用来设置该支路由起始节点编号和终止节点编号;r、x、b用来设置该支路的电阻、电抗、电纳;rateA、rateB、rateC用来设置该支路长期、

18、短期、紧急允许功率;ratio用来设置该支路的变比,导线时为0,变压器时为变比;angle为支路的相位角度,导线时为0;status用来设置支路工作状态,1为投入,0退出运行;angmin、angmax用来设置支路相位角度的最大最小差值。4.1.2.控制选项MATPOWER软件不但能够进行交流潮流计算,还能进行直流潮流、最优潮流等计算,进行计算时还可以选用不同的算法及输出格式。为实现以上功能,MATPOWER采用一个选项向量“mpoption”来达到对选项的控制。在变量名PF_ALG中通过改变值来达到改变算法,1对应牛顿法,2对应快速解耦算法(XB版本),3对应快速解耦算法(BX版本),4为高

19、斯-赛德尔法,系统默认为1,即牛顿法。在PF_MAX_IT中设置牛顿法的最大迭代次数,PF_MAX_IT_GS设置高斯-赛德尔法的最大迭代次数,系统默认为1000次。为实现系统算法从牛顿法到高斯-赛德尔法转换,使用方法如下所示:在MATPOWER中文手册还有对MATPOWER的使用详细介绍(在MATPOWER/docs中有manual.pdf),在MATPOWER中有很多M文件很重要,比如runpf.m为定义一个运算潮流程序,Ext2int.m为将数据矩阵从外部节点编号转换为内部节点编号,loadcase.m为将数据从文件或者结构体重导入到数据矩阵中,还有很多,这些M文件使我们的建模得以实现,

20、同时也是我们很好找到我们模型中问题。在我的建模过程中遇到了很多这样的问题,比如error('loadcase: syntax error or undefined data matrix(ices) in the filen%s', err5); mpc = loadcase(casedata);通过不断分析,加深理解,这些错误都是因为搭建的模型不足以有结果,所以系统的这些功能方便了我在编程时查找错误,这是这是它的一大优势。另外,MATPOWER还提供了很多实例,如case_ieee30.m 就是 IEEE30 节点系统,这些实例给了初学者很多启发,同时也起到了规范作用。4.2

21、 MATPOWER实际建模4.2.1 建模中的实际问题 首先要将bus模型建立起来,因为建模方便的需要,将题目的1243点编号变成1432,所以点1为平衡节点,2、4点是PQ节点,点3是PV节点,根据bus的中的type类型的定义,1为3,2、4为1,3为2。Bus的矩阵如下:% bus data% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vminmpc.bus = 1 3 0 0 0 0 1 1.04 0 100 1 1.1 0.94; 2 1 100 -50 0 0 1 1 0 100 1 1.1 0.94; 3 2 0 0 0

22、 0 1 1.05 0 100 1 1.1 0.94; 4 1 -50 20 0 0 1 1 0 100 1 1.1 0.94; ;接着要搭建支路模型,一开始我错误的判断支路是3条,其实后来仔细分析是5条,这都是因为基本功不扎实导致的,branch的矩阵如下:% branch data% fbus tbus r x b rateA rateB rateC ratio angle status angmin angmaxmpc.branch = 1 4 0.316 0.949 0 0 0 0 0 0 1 -360 360; 3 4 0.0554 0.998 0 0 0 0 0 0 1 -360

23、360; 2 4 0.316 0.949 0 0 0 0 0 0 1 -360 360; 1 2 0.316 0.949 0 0 0 0 0 0 1 -360 360; 2 3 0.316 0.949 0 0 0 0 0 0 1 -360 360; ;然后其他一些语句的编写形成了我的M文件,然后试着运行,但是却一次次失败,通过对IEEE提供的范例,然后我试着对IEEE的case与文件对比,在它们的差异中,对IEEE的case逆推,找出关键原因在于发电机模型必不可少,这可能是MATPOWER的开发中作者的意图在于对电力系统的完整分析,数据来源上充沛,而局部的节点导纳矩阵的建模确由于loadcas

24、e.m、runpf.m等函数文件中严格要求而受到限制。由于这次的目标仅仅是求出节点电压,所以我试着加入发电机的模型,是它的潮流计算能得出节点电压,发电机的模型建立如下:% generator data% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin mpc.gen = 1 0 0 300 -300 1 100 1 250 10; 3 163 0 300 -300 1 100 1 300 10; ;4.2.2 建模结果显示在MATLAB的命令窗口输入:计算机输出的结果如下: 系统默认高斯-赛德尔法为1000次迭代,显示结果中会给出四个节点的电压幅值相

25、位,而且会给出最大最小值,会给出各支路的损耗,节点功率。但这仅仅是发电机模型随机选取的结果,随机时会对节点电压产生较大的影响比如,会有下面的结果:或者出现这次会发现电压发生很大的变化,说明发电机模型会有很大的影响,所以发电机模型要认真建立,通过分析,我把发电机模型设为如下: % generator data% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin mpc.gen = 1 0 0 300 -300 1 100 1 250 10; 3 30 0 300 -300 1 100 1 300 10; ;运行结果如下: 以上便是程序运行结果。 小结 课程设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论