基于MATLAB电力系统潮流计算程序设计.docx
- 文档编号:10636573
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:52
- 大小:96.48KB
基于MATLAB电力系统潮流计算程序设计.docx
《基于MATLAB电力系统潮流计算程序设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB电力系统潮流计算程序设计.docx(52页珍藏版)》请在冰豆网上搜索。
基于MATLAB电力系统潮流计算程序设计
基于MATLAB电力系统潮流计算程序设计
————————————————————————————————作者:
————————————————————————————————日期:
1绪论
1.1潮流计算
1.1.1潮流计算概述
电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行条件及系统接线情况确定整个电力系统各部分的运行状态:
各母线的电压,各元件中流过的功率,系统的功率损耗等等。
在电力系统规划的设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量地分析比较供电方案或运行方式的合理性、可靠性和经济性。
此外,电力系统潮流计算也是计算系统动态稳定和静态稳定的基础。
所以潮流计算是研究电力系统的一种很重要也很基础的计算。
电力系统潮流计算也分为离线计算和在线计算两种,前者主要用于系统规划设计和安排系统的运行方式,后者则用于正在运行系统的随时监视及实时控制。
利用计算机进行电力系统潮流计算从50年代中期就已经开始。
在这20年内,潮流计算曾采用了各种不同的方法,这些方法的发展主要围绕着对潮流计算的一些基本要求进行的。
对潮流计算的要求可以归纳为下面几点:
(1)计算方法的可靠性或收敛性;
(2)对计算机内存量的要求;
(3)计算速度;
(4)计算的方便性和灵活性。
电力系统潮流计算问题在数学上是一组多元非线性方程式求解问题,其解
法都离不开迭代。
因此,对潮流计算方法,首先要求它能可靠地收敛,并给出正确答案。
由于电力系统结构及参数的一些特点,并且随着电力系统不断扩大,潮流计算方程式的阶数也越来越高,对这样的方程式并不是任何数学方法都能保证给出正确答案的。
这种情况成为促使电力系统计算人员不断寻求新的更可靠方法的重要因素。
在用数字计算机解电力系统潮流问题的开始阶段,普遍采取以节点导纳矩阵为基础的逐次代入法。
这个方法的原理比较简单,要求的数字计算机内存量比较低,适应50年代电子计算机制造水平和当时电力系统理论水平。
但它的收
敛性较差,当系统规模变大时,迭代次数急剧上升,在计算中往往出现迭代不
收敛的情况。
这就迫使电力系统计算人员转向以阻抗矩阵为基础的逐次代入法。
60年代初,数字计算机已发展到第二代,计算机的内存和速度发生了很大的飞跃,从而为阻抗法的采用创造了条件。
阻抗法要求的数字计算机储存表征系统接线和参数的阻抗矩阵需要较大的内存量。
而且阻抗法每迭代一次都要求顺次取阻抗矩阵中的每一个元素进行运算,因此,每次迭代的运算量很大。
这两种情况是过去电子管数字计算机无法适应的。
阻抗法改善了系统潮流计算问题的收敛性,解决了导纳法无法求解的一些系统的潮流计算,在60年代获得了广泛的应用,曾为我国电力系统设计、运行和研究作出了很大的贡献。
目前,我国电力工业中仍有一些单位采用阻抗法计算潮流。
阻抗法的主要缺点是占用计算机内存大,每次迭代的计算量大。
当系统不断扩大时,这些缺点就更加突出。
一个内存16K的计算机在采用阻抗法时只能计算100个节点以下的系统,32K内存的计算机也只能计算150个节点以下的系统。
这样,我国很多电力系统为了采用阻抗法计算潮流就不得不先对系统进行相当的简化工作。
为了克服阻抗法在内存和速度方面的缺点,60年代中期发展了以阻抗矩阵为基础的分块阻抗法。
这个方法把一个大系统分割为几个小的地区系统,在计算机内只需要存储各个地区系统的阻抗矩阵及它们之间联络线的阻抗,这样不仅大幅度地节省了内存容量,同时也提高了计算速度。
克服阻抗法缺点的另一途径是采用牛顿-拉夫逊法。
这是数学中解决非线性方程式的典型方法,有较好的收敛性。
在解决电力系统潮流计算问题时,是以导纳矩阵为基础的,因此,只要我们能在迭代过程中尽可能保持方程式系数矩阵的稀疏性,就可以大大提高牛顿-拉夫逊法潮流程序的效率。
自从60年代中期,在牛顿-拉夫逊法中利用了最佳顺序消去法以后,牛顿法在收敛性、内存要求、速度方面都超过了阻抗法,成为60年代末期以后广泛采用的优秀方法。
与此同时,为了保证可靠的收敛,在我国还进行了网流法潮流计算的研究。
随着电力系统的日益扩大和复杂化,特别是电力系统逐步实现自动控制的需要,对系统潮流计算在速度、内存以及收敛性方面都提出了更高的要求。
70年代以来,潮流计算方法通过不同的途径继续向前发展,其中比较成功的一个方法就是P-Q分解法。
这个方法,根据电力系统的退热点,抓住主要矛盾,对纯数学的牛顿法进行了改进,从而在内存容量及计算速度方面都大大向前迈进内了一步。
使一个32K内存容量的数字计算机可以计算1000个节点系统的潮流问题,此法计算速度已能用于在线计算,作系统静态安全监视。
目前,我国很多电力系统都采用了P-Q分解法潮流
程序。
潮流计算灵活性和方便性的要求,对数字计算机的应用也是一个很关键的问题。
过去在很长时间内,电力系统潮流计算是借助于交流台进行的。
交流台模拟了电力系统,因此在交流计算台上计算潮流时,计算人员可以随时监视系统各部分运行状态是否满足要求,如发现某些部分运行不合理,则可以立即进行调整。
这样,计算的过程就相当于运算人员对系统进行操作、调整的过程,非常直观,物理概念也很清楚。
当利用数字计算机进行潮流计算时,就失去了这种直观性。
为了弥补这个缺点,潮流程序的编制必须尽可能使计算人员在计算机计算的过程中加强对计算机过程的监视和控制,并便于作各种修改和调整。
电力系统潮流计算问题并不是单纯的计算问题,把它当作一个运行方式的调整问题可能更为确切。
为了得到一个合理的运行方式,往往需要不断根据计算结果,修改原始数据。
在这个意义上,我们在编制潮流计算程序时,对使用的方便性和灵活性必须予以足够的重视。
因此,除了要求计算方法尽可能适应各种修改、调整以外,还要注意输入和输出的方便性和灵活性,加强人机联系,以便使计算人员能及时监视计算过程并适当地控制计算的进行。
电力系统潮流计算是电力系统分析中的一种最基本的计算,是对复杂电力系统正常和故障条件下稳态运行状态的计算。
潮流计算的目标是求取电力系统在给定运行状态的计算。
即节点电压和功率分布,用以检查系统各元件是否过负荷、各点电压是否满足要求,功率的分布和分配是否合理以及功率损耗等。
对现有电力系统的运行和扩建,对新的电力系统进行规划设计以及对电力系统进行静态和暂态稳定分析都是以潮流计算为基础。
潮流计算结果可用如电力系统稳态研究,安全估计或最优潮流等对潮流计算的模型和方法有直接影响。
实际电力系统的潮流技术主要采用牛顿-拉夫逊法。
在运行方式管理中,潮流是确定电网运行方式的基本出发点;在规划领域,
需要进行潮流分析验证规划方案的合理性;在实时运行环境,调度员潮流保证了在预想操作情况下电网的潮流分布以及校验运行可靠性。
在电力系统调度运行的多个领域都涉及到电网潮流计算。
潮流是确定电力网络运行状态的基本因素,潮流问题是研究电力系统稳态问题的基础和前提。
牛顿-拉夫逊法早在50年代末就已应用于求解电力系统潮流问题,但作为一种实用的,有竞争力的电力系统潮流计算方法,则是在应用了稀疏矩阵技巧和高斯消去法求修正方程后。
牛顿-拉夫逊法是求解非线性代数方程有效的迭代计算。
P-Q分解法进行电力系统分析的潮流计算程序的编制与调试,获得电力
系统中各节点电压,为进一步进行电力系统分析作准备。
通过本文加深对电力
系统潮流计算原理的理解和计算,初步学会运用计算机知识解决电力系统的问题,掌握潮流计算的过程及其特点。
熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。
1.1.2潮流计算的意义
电力系统潮流计算是电力系统最基本的计算,也是最重要的计算。
所谓潮流计算,就是已知电网的接线方式与参数及运行条件,计算电力系统稳态运行各母线电压、各支路电流与功率及网损。
对于正在运行的电力系统,通过潮流计算可以判断电网母线电压、支路电流和功率是否越限,如果有越限,就应采取措施,调整运行方式。
对于正在规划的电力系统,通过潮流计算,可以为选择电网供电方案和电气设备提供依据。
潮流计算还可以为继电保护和自动装置定整计算、电力系统故障计算和稳定计算等提供原始数据。
在运行方式管理中,潮流是确定电网运行方式的基本出发点;在规划领域,需要进行潮流分析验证规划方案的合理性;在实时运行环境,调度员潮流提供了多个在预想操作情况下电网的潮流分布以校验运行可靠性。
在电力系统调度运行的多个领域都涉及到电网潮流计算。
潮流是确定电力网络运行状态的基本因素,潮流问题是研究电力系统稳态问题的基础和前提。
1.2MATLAB
1.2.1MATLAB概述
目前电子计算机已广泛应用于电力系统的分析计算,潮流计算是其基本应用软件之一。
现有很多潮流计算方法。
对潮流计算方法有五方面的要求:
(1)计算速度快
(2)内存需要少(3)计算结果有良好的可靠性和可信性(4)适应性好,亦即能处理变压器变比调整、系统元件的不同描述和与其它程序配合的能力强(5)简单。
MATLAB是一种交互式、面向对象的程序设计语言,广泛应用于工业界与学术界,主要用于矩阵运算,同时在数值分析、自动控制模拟、数字信号处理、
动态分析、绘图等方面也具有强大的功能。
MATLAB程序设计语言结构完整,且具有优良的移植性,它的基本数据元素是不需要定义的数组。
它可以高效率
地解决工业计算问题,特别是关于矩阵和矢量的计算。
MATLAB与C语言和
FORTRAN语言相比更容易被掌握。
通过M语言,可以用类似数学公式的方式来编写算法,大大降低了程序所需的难度并节省了时间,从而可把主要的精力集中在算法的构思而不是编程上。
另外,MATLAB提供了一种特殊的工具:
工具箱(TOOLBOXES).这些工具箱主要包括:
信号处理(SIGNALPROCESSING)、控制系统(CONTROLSYSTEMS)、神经网络(NEURALNETWORKS)、模糊逻辑(FUZZYLOGIC)、小波(WAVELETS)和模拟(SIMULATION)等等。
不同领域、不同层次的用户通过相应工具的学习和应用,可以方便地进行计算、分析及设计工作。
MATLAB设计中,原始数据的填写格式是很关键的一个环节,它与程序使用的方便性和灵活性有着直接的关系。
原始数据输入格式的设计,主要应从使用的角度出发,原则是简单明了,便于修改。
1.2.2MATLAB的优缺点
MATLAB语言最大的特点是简单和直接,它主要有如下特点:
编程效率高
MATLAB是一种面向科学与工程计算的高级语言,允许使用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列出公式与求解问题。
因此,MATLAB语言也可通俗地称为演算纸式科学算法语言。
由于它编写简单,所以编程效率高,易学易懂。
用户使用方便
MATLAB语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。
人们用任何一种语言编写程序一般都要经过四个步骤:
编辑、编译、链接,以及执行和调试。
各个步骤之间是顺序关系,编程的过程就是在它们之间做瀑布型的循环。
MATLAB语言与其他语言相比,较好的解决了上述问题,把编辑、编译、链接和执行融为一体。
它能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误以至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。
具体的说,MATLAB运行时,如直接在命令行输入MATLAB语句(命令),包括调M文件的语句,每输入一条语句,就立即对其进行处理,完成编译、链
接和运行的全过程。
又如,将MATLAB源程序编辑为M文件,由于MATLAB
磁盘文件也是M文件,所以编辑后的源文件就可以直接运行,而不需要进行编
译和链接。
在运行M文件时,如果有错,计算机屏幕上会给出详细的出错信息,用户经修改后再执行,直到正确为止。
所以可以说,MATLAB语言不仅是一种语言,广义上讲是一种该语言的开发系统,即语言调试系统。
扩充能力强,交互性好
高版本的MATLAB语言有丰富的库函数,在进行复杂的数序运算时可以直接调用,而且MATLAB的库函数同用户文件在形成上一样,所以用户文件也可作为MATLAB的库函数来调用。
因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高MATLAB的使用效率和扩充它的功能。
另外,为了充分利用FORTRAN、C等语言的资源,包括用户已编好的FORTRAN、C语言程序,通过建立Me文件的形式,混合编程,方便地调用有关的FORTRAN、C语言的子程序,还可以在C语言和FORTRAN语言中方便地使用MATLAB的数值计算功能。
这样良好的交互性使程序员可以使用以前编写过的程序,减少重复性工作,也使现在编写的程序具有重复利用的价值。
移植性和开放性很好
MATLAB是用C语言编写的,而C语言的可移植性很好。
于是MATLAB可以很方便地移植到能运行C语言的操作平台上。
MATLAB合适的工作平台有:
Windows系列、UNIX、Linux、VMS6.1和PowerMac。
除了内部函数外,MATLAB所有的核心文件和工具箱文件都是公开的,都是可读可写的源文件,用户可以通过对源文件的修改和自己编程构成新的工具箱。
语句简单,内涵丰富
MATLAB语言中最基本最重要的成分是函数,其一般形式为[a,b,c,...]=fun(d,e,f,...),即一个函数由函数名,输入变量d,e,f,...和输出变量a,b,c,...组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性)。
这不仅使MATLAB的库函数功能更丰富,而且大大减少了需要的磁盘空间看,使得MATLAB编写的M文件简单、短小而高效。
高效方便的矩阵和数组运算
MATLAB语言像BASIC、FORTRAN和C语言一样规定了矩阵的算术运算符、关系运算符、罗技运算符、条件运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“.”就可用于数组间的运算。
另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库
函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题
时,显得大为简捷、高效、方便,这是其他高级语言所不能比拟的。
在此基础上,高版本的MATLAB一定能名副其实地称为“万能演算纸”式的科学算法语言。
方便的绘图功能
MATLAB的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标、半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。
另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。
这种为科学研究着想的设计是通用的编程语言所不能及的。
MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢,并且MATLAB的界面功能比较弱,不能实现交互界面、数据采集和端口操作等功能。
1.3总结
本文介绍了图形化潮流计算软件的开发设计思想和总体结构,阐述了该软件所具备的功能和特点。
结合电力系统的特点,软件采用MATLAB语言运行于WINDOWS操作系统的图形化潮流计算软件。
本系统的主要特点是操作简单,图形界面直观,运行稳定,计算准确。
计算中,算法做了一些改进,提高了计算速度,各类的有效封装又使程序具有很好的模块性、可维护性和重用性。
2电力系统的潮流计算
2.1概述
潮流计算在数学上是多元非线性方程组的求解问题,求解的方法有很多种。
自从20世纪50年代计算机应用于电力系统以来,当时求解潮流的方法是以节点导纳矩阵为基础的逐次代入法(导纳法),后来为解决导纳法的收敛性较差的问题,出现了以阻抗矩阵为基础的逐次代入法(阻抗法),到20世纪60年代,针对阻抗法占用计算机内存大的问题又出现了分块阻抗法及牛顿—拉夫逊法。
牛顿-拉夫逊法是数学上解非线性方程式的有效方法,有较好的收敛性,将N—R法用于潮流计算是以导纳矩阵为基础的,由于利用了导纳矩阵的对称性、稀疏性及节点编号顺序优化等技巧,使N—R法在收敛性、占用内存、计算机速度方面的优点都超过了阻抗法,成为20世纪60年代末期以后普遍采用的方法,同时国内外广泛研究了诸如非线性规划法、直流法、交流法等各种不同的潮流计算方法。
20世纪70年代以来,又涌现出了更新的潮流计算方法,其中有1974年由B.Stoot和O.Alsac提出的快速分解法以及1978年由岩本伸一等提出的保留非线性的高速潮流计算法,其中快速分解法从1975年开始已在国内使用,并习惯称之为PQ分解法。
由于PQ分解法在计算速度上大大超过了N—R法,不但能应用于离线潮流计算,而且也能应用于在线潮流计算。
2.2潮流计算的基本方程
2.2.1节点的分类
用一般的电路理论求解网络方程,目的是给出电压源(或电流源)研究网络内的电流(或电压)分布,作为基础的方程式,一般用线性代数方程式表示。
然而在电力系统中,给出发电机或负荷连接母线上电压或电流(都是向量)的情况是很少的,一般是给出发电机母线上发电机的有功功率(P)和母线电压的幅值(U),给出负荷母线上负荷消耗的有功功率(P)和无功功率(Q)。
主要目的是由这些已知量去求电力系统内的各种电气量。
所以,根据电力系统中各节点性质的不同,很自然的把节点分成三种类型。
PQ节点对这一类节点,事先给定的是节点功率(P、Q),待求的未知量是节点电
压向量(U、θ),所以叫“PQ节点”。
通常变电所母线都是PQ节点,当某
些发电机的输出功率P、Q给定时,也作为PQ节点。
PQ节点上的发电机称之为PQ机(或PQ给定型发电机)。
在潮流计算中,系统大部分节点属于PQ节点。
PU节点
这类节点给出的参数是该节点的有功功率P及电压幅值U,待求量为该节点的无功功率Q及电压向量的相角θ。
这类节点在运行中往往要有一定可调节的无功电源,用于维持给定的电压值。
通常选择有一定无功功率储备的发电机母线或者变电所有无功补偿设备的母线作PU节点处理。
PU节点上的发电机称之为PU机。
平衡节点在潮流计算中,这类节点一般只设一个。
对该节点,给定其电压值,并在
计算中取该节点电压向量的方向作为参考轴,相当于给定该点电压向量的角度为零。
也就是说,对平衡节点给定的运行参数是U和θ,因此又称为Uθ节点,而待求量是该节点的P,Q,整个系统的功率平衡由这一节点承担。
关于平衡节点的选择,一般选择系统中担任调频调压的某一发电厂(或发电机),有时也可能按其他原则选择,例如,为提高计算的收敛性,可以选择
出线数多或者靠近电网中心的发电厂母线作平衡节点。
以上三类节点4个运行参数P、Q、U、θ中,已知量都是两个,待求量也是两个,只是类型不同而已。
2.2.2基本方程式
在潮流计算中任何复杂的电力系统都可以归结为以下元件(参数)组成:
发电机(注入电流或功率);
负荷(注入负的电流或功率);输电线支路(电阻、电抗);变压器支路(电阻、电抗、变比);母线上对地支路(阻抗和导纳);线路上的对地支路(一般为线路充电电容导纳)。
集中了以上各种类型的元件的简单网络如图2.1(a)所示。
必须指出,如果仅研究稳态情况下的潮流而不涉及暂态过程的计算,则不
需要发电机和负荷的阻抗参数,只需要给出发电机和负荷的注入功率和电流,
并且规定发电机和负荷的注入功率和电流取正,而负荷取负。
Pg1+jQg1
(a)潮流计算用的电网结构图
(a)Theflowcalculationgridchart
I
1无源线性网络
I
4
-PR4-jQR4
Pg2+jQg2I2
(可用导纳矩
I5-PR5
-
jQR5
0+j0I3
阵或阻抗矩阵
表示)
I6-PR6-jQR6
R6R4
R5
(b)潮流计算等值网络
(b)thetrendtocalculatetheequivalentnetwork
图2.1潮流计算用的电网结构图和等值网络
Figure2.1Theflowcalculationgridstructurediagramandtheequivalentnetwork
将图2.1(a)中的发电机和负荷节点用无阻抗线从网络中抽出(为不失一般性,将既非发电机又非负荷的浮动节点当作零注入功率的母线抽出网络之外),剩下的部分既由接地和不接地支路组成一个无源线性网络如图2.1(b)所示。
对于这个无源线性网络可用相应的导纳矩阵(或阻抗矩阵)来描述,采用导纳矩阵时,节点注入电流和节点电压构成以下线性方程组
I=YU
1
⎡I⎤
⎡U⎤
1
⎢⎥
⎢⎥
其中I=⎢I2⎥
U=⎢U2⎥
⎢⎥
⎢⎥
⎢⎥
⎢⎥
⎢⎣In⎥⎦
可展开为如下形式:
⎢⎣Un⎥⎦
i∑ijj
n
I=YU(i1,=2,...,)n
j=1
若U=ZI
可展开为如下形式:
(2.1)
i∑ijj
n
U=ZI(i1,=2,...,)n
j=1
(2.2)
式中n为网络节点数。
由于实际电网中测量的节点注入量一般不是电流而
是功率,因此必须将式(2.1)中的注入电流用节点注入功率来表示。
根据电工理论,节点功率与节点电流之间的关系为
iiiii
S=P+jQ=UI(2.3)式中,Pi=PGi-PLDi,Qi=QGi-QLDi
因此用导纳矩阵式(2.1)时,PQ节点可以表示为
i
I=Si
=Pi-jQi
(2.4)
UiUi
把这个关系式代入式(2.1)中,得
Pi-jQiUi
n
=∑
j=1
YU
ijj
(i1,=2,...,)n
(2.5)
比较式(2.1)和(2.5),由于功率代替电流的结果,使式(2.1)电流电压的线性方程组变化为功率和电压的非线性方程组,这个非线性方程组就是潮流计算的基本方程。
式(2.5)是一组共有n个非线性方程组组成的复数方程组,如果把实部和虚部分开便得到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 电力系统 潮流 计算 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)