资源描述
电力系统分析课程设计电力系统短路故障的计算机算法程序设计
34
2020年4月19日
文档仅供参考
电力系统分析课程设计
电力系统短路故障的计算机
算法程序设计
姓 名____刘佳琪___
学 号_ 409436__
班 级__ 4094___
指导教师___鲁明芳____
目录
1 目的与原理 ……………………………………………………………………………1
1.2 关于电力系统短路故障的计算机算法程序设计目的 ……………………………1
1.2 设计原理 ……………………………………………………………………………1
1.2.1计算机计算原理 ………………………………………………………………1
1.2.2电力系统短路计算计算机算法 ………………………………………………2
2 计算机编程环境及编程语言的选择 ………………………………………………2
2.1 优势特点 ……………………………………………………………………………2
2.1.1编程环境 ………………………………………………………………………3
2.1.2简单易用 ………………………………………………………………………3
2.1.3强处理能力 ……………………………………………………………………3
2.1.4图形处理 ………………………………………………………………………3
2.1.5模块集和工具箱 ………………………………………………………………4
2.1.6程序接口 ………………………………………………………………………4
2.1.7应用软件开发 …………………………………………………………………4
3 对称故障的计算机算法 ……………………………………………………………5
3.1 用阻抗矩阵计算三相短路电流 …………………………………………………7
3.2 用节点导纳矩阵计算三相短路电流 ………………………………………………9
4 附录 程序清单 ………………………………………………………………………14
4.1 形成节点导纳矩阵 ………………………………………………………………14
4.2 形成节点阻抗矩阵 ………………………………………………………………15
4.2 对称故障的计算 …………………………………………………………………17
1 目的与原理
1.1 关于电力系统短路故障的计算机算法程序设计目的
电力系统正常运行的破坏多半是由于短路故障引起的,发生短路时,系统从一种状态剧变成另一种状态,并伴随复杂的暂态现象。所谓短路故障,是指一切不正常的相与相之间或相与地发生通路的情况。
本文根据电力系统三相对称短路的特点,建立了合理的三相短路的数学模型,在此基础上, 形成电力系统短路电流实用计算方法;节点阻抗矩阵的支路追加法。编制了对任意一个电力系统在任意点发生短路故障时三相短路电流及其分布的通用计算程序,该办法适用于各种复杂结构的电力系统。从一个侧面展示了计算机应用于电力系统的广阔前景。
根据所给的电力系统,编制短路电流计算程序,经过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。经过自己设计电力系统计算程序使同学对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。
电力系统的短路故障是严重的,而又是发生几率最多的故障,一般说来,最严重的短路是三相短路。当发生短路时, 其短路电流可达数万安以至十几万安,它们所产生的热效应和电动力效应将使电气设备遭受严重破环。为此,当发生短路时,继电保护装置必须迅速切除故障线路,以避免故障部分继续遭受危害,并使非故障部分从不正常运行情况下解脱出来,这要求电气设备必须有足够的 机械强度和热稳定度,开关电气设备必须具备足够的开断能力,即必须经得起可能最大短路的侵扰而不致损坏。因此,电力系统短路电流计算是电力系统运行分析,设计计算的重要环节,许多电业设计单位和个人倾注极大精力从事这一工作的研究。由于电力系统结构复杂,随着生产发展,技术进步系统日趋扩大和复杂化,短路电流计算工作量也随之增大,采用计算机辅助计算势在并行。
1.2 设计原理
1.2.1 计算机计算原理
应用计算机进行电力系统计算,首先要掌握电力系统相应计算的数学模型;其次是运用合理的计算方法;第三则是选择合适的计算机语言编制计算程序。
建立电力系统计算的相关数学模型,就是建立用于描述电力系统相应计算的有关参数间的相互关系的数学方程式。该数学模型的建立往往要突出问题的主要方,即考虑影响问题的主要因素,而忽略一些次要因素,使数学模型既能正确地反映实际问题,又使计算不过于复杂。
运用合理的计算方法,就是要求所选用的计算方法能快速准确地得出正确结果,同时还应要求在解算过程中占用内存少,以利于提高计算机的解题规模。
选择合适的语言编写程序,就是首先确定用什么计算机语言来编制程序;其次是做出计算的流程图;第三根据流程图用选择的语言编写计算程序。然后上机调试,直到语法上无错误。
所编制的程序难免存在逻辑错误。因此先用一个已知结果的系统作为例题进行计算。用程序计算的结果和已知结果相比较,如果结果相差甚远就要逐步分析程序的计算步骤,查出问题的出处;如果结果比较接近,则逐步分析误差来源;直到结果正确为止。
最后将所编制出的正确计算程序,用于电力系统的实际计算。
1.2.2 电力系统短路计算计算机算法
一般在电力系统短路计算中,多数情况下只要计算短路电流、电压的周期分量起始值。因此,电力系统短路电流计算的数学模型,可归结为求解短路故障初始状态下的等值电路稳态解的问题。对于三相对称短路,可建立一相等值电路的计算模型,对于不对称短路,则可应用对称分量法建立系统的正、负、零序网络,从而建立故障计算的序网络模型。
2 计算机编程环境及编程语言的选择
本课程设计采用数学建模软件MATLAB a为主要设计工具。
MATLAB能够进行矩阵运算、绘制函数和数据、实现算法、创立用户界面、连接其它编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表示式与数学、工程中常见的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,而且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
2.1 优势特点
1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2) 具有完备的图形处理功能,实现计算结果和编程的可视化;
3) 友好的用户界面及接近数学表示式的自然化语言,使学者易于学习和掌握;
4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
2.1.1 编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就能够直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
2.1.2 简单易用
MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户能够在命令窗口中将输入语句与执行命令同步,也能够先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表示式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
2.1.3 强处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,能够方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在一般情况下,能够用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其它初等数学运算、多维数组操作以及建模动态仿真等。
2.1.4 图形处理
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,而且能够对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表示式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不但在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其它软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出众的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改进,对这方面有特殊要求的用户也能够得到满足。
2.1.5 模块集和工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户能够直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
2.1.6 程序接口
新版本的MATLAB能够利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写能够和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
2.1.7 应用软件开发
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,能够直接向Excel和HDF5进行连接。
3 对称故障的计算机算法
对称故障是指三相短路故障。
这里首先经过一个简单的例子进行说明。
右图(a)所示的电力系统有三
条母线,标为①②③,其等值
电路如图(b)所示,图中xc1、
xc2、xc3代表和该母线连接的
输电线的容抗总和,ZL代表母
线③的负荷阻抗,Zf代表故障
阻抗,故障发生在母线③。图
(b)也可简化为图(c)所示,是
一个有三个节点的有源网络,
U1、U2、U3是节点电压,
I1、I2、I3是节点注入电
流,故障阻抗Zf是外加到
节点③的三相对称阻抗,
当Zf = 0时,代表三相直
接短路。右图(c)也能够看成是有
三个端口的有源网络,每个节点
与零电位点构成一个端口,按叠
加定理能够经过阻抗型参数方程
或导纳型参数方程来表示其电压
和电流的关系。以下分别进行叙
述。
图3.1 电力系统接线网络及简化网络
3.1 用阻抗矩阵计算三相短路电流
图16.2(c)网络的阻抗型参数方程如下:
(3.1)
式中, U1(0)、U2(0)、U3(0)为各节点的开路电压(也即注入电流I1 = I2 = I3 = 0时各节点的电压),开路电压可由正常运行的潮流计算求得。近似计算中,则设各节点开路电压标幺值为1.0。阻抗矩阵中的各元素Z11、Z12、Z13、等,为各节点的自阻抗和各节点之间的互阻抗,据自、互阻抗的物理意义能够确定其数值如下:
其余类推。
当在节点③发生三相故障时,相当于在节点③接上故障阻抗Zf,流过Zf的故障电流If,其参考方向如图16.2(c)所示,其它节点没有外接电路,因此其注入电流为零,因此节点③故障时的边界条件是
(3.2)
将公式(3.1)与(3.2)联立求解,得
(3.3)
公式(3.3)就是计算故障电流的数学模型。当Zf给定时,只要知道故障点的开路电压U3(0)和自阻抗Z33就能够算出If。求出If后代入公式(3.1)可求得各节点的电压为
将上述关系推广到有n个节点的电力系统,则其阻抗型参数方程为
(3.4)
设在节点k发生三相故障,故障阻抗为Zf时,其边界条件
(3.5)
联立求解式(3.4)和(3.5),得
(3.6)
故障电流求出后,代入式(3.4)求出各节点电压
(3.7)
各节点电压求得后,可按下式求各支路电流
(3.8)
式中,Zij为连接节点i与节点j的支路阻抗。在略去输电线电容电流的条件下,支路电流也就是输电线电流。
公式(3.6)、(3.7)、(3.8)就是计算三相故障的基本数学模型,从式中看到当Zf给定后,只需知道节点的开路电压Uk(0)和阻抗矩阵中的元素Zij,就能够求出需要的结果。节点的开路电压能够由正常的潮流计算得出,阻抗矩阵中的所有元素能够用支路追加法求得。当这些量都已求出并储存于计算机中,计算短路电流的工作就很简单。要计算任一节点的短路电流和电压、电流分布时,只要按上述公式编好程序,取出有关的开路电压,有关的自阻抗、互阻抗进行计算便可。一般利用支路追加法可直接形成节点阻抗矩阵。
3.2 用节点导纳矩阵计算三相短路电流
导纳矩阵易于形成,而且是稀疏矩阵,因此占用计算机的内存容量少,因此常利用导纳矩阵来计算短路电流。直接利用导纳矩阵的元素来计算并不方便,实际的做法是利用已知的导纳矩阵来求出阻抗矩阵中的有关元素,然后依然利用前述公式(3.6)、(3.7)、(3.8)来进行计算。
一个网络的导纳矩阵与其阻抗矩阵存在互为逆矩阵的关系,因此一种方法是将导纳矩阵直接求逆,得出阻抗矩阵。但当矩阵的阶数大时这样做计算量大,因此常见下面的方法。
当计算k点的短路电流时,从公式(3.6)、(3.7)、(3.8)看到所需的阻抗矩阵元素是Z1k, Z2k,…,Zkk,…,Znk,而按定义
当Ik = 1时,Zik=Ui,也就是在k点注入单位电流,而其它节点注人电流都为零时,则节点k的电压值就等于其自阻抗Zkk,其它各节点的电压值就等于各节点与节点k之间的互阻抗Zik。因此只要在计算机上进行下面的一次线性方程组的求解,就能够算出各节点的电压值
(3.9)
解出的各点电压值就等于所需的阻抗值
(3.10)
图3.2给出了三相短路计算的原理框图。
例3.1 如图3.3所示网络,母线③发
生三相直接短路,试作下列计算:
(1)母线③的故障电流。(2)故障后母
线1、2的电压。各元件参数如下:
发电机 G1,100MV·A;G2,200MV·A。
额定电压均为10.5 kV,次暂态电抗xd''*均
为0.2。
变压器 T1,100MV·A;T2,200MV·A。
变比均为10.5kV/115kV,短路电压百分数
均为10。
电力线路 三条电力线路(L1、L2、L3)
参数均为115kV,60km,电抗x1=0.44Ω/km, 图3.2 三相短路计算的原理框图
电容C1=0.008×10-6 F/km。
负荷 LD1,50MW, cosφ=0.985;LD2,100MW, cosφ=1。
解:元件参数的标幺值注于简化等值电路网络图3.4中(元件参数的计算、网络的简化略),首先据图16.4电路所示,形成节点导纳矩阵。
图3.3 例3.1图 图3.4 例3.1简化等值电路
网络节点导纳矩阵为
然后,对YB求逆或解线性方程组,得节点阻抗矩阵为
③点短路电流为
节点①、②的电压为
例3.2 图3.5所示电力系统,负荷全部略去,简化后的各电抗标幺值注于等值网络中。试计算f点三相短路时的短路电流及网络中的电流分布。
解题步骤:
(1)请输入短路点的数目NF
(2)请输入节点数n
(3)请输入支路数nl
(4)输入各支路参数矩阵B
矩阵B的每行是由下列参数构成的:
①某支路的首端号p;
②末端号q,且p<q;
③支路的阻抗(R+jX);
④支路的对地电纳;
⑤支路的变比K;
⑥折算到哪一侧的标志(如果支路的首端p处于高压侧则请输入“1”,否则请输入“0”)。
(5)输入由短路点号,短路点阻抗形成的矩阵D
(6)请输入由各节点的初电压标幺值形成的列矩阵V0
(7)形成节点阻抗矩阵Z
(8)求短路点电流
(9)求网络中各节点的电压
(10)求网络中各支路电流
解:输入数据:
请输入短路点的数目:NF=1
请输入节点数:n=4
请输入支路数:nl=5
请输入由线路参数形成的矩阵:B=[0 1 0.2i 0 1 0; 0 2 4i 0 1 0; 1 3 0.51i 0 1 0; 2 3 0.59i 0 1 0; 3 4 1.43i 0 1 0]
请输入由各节点的初电压标幺值形成的列矩阵:V0=[1;1;1;1]
请输入由短路号,短路点阻抗组成的矩阵D=[4, 0]
结果:
4点短路时的电流的标幺值If=
0 – 0.4890i
各节点的电压标幺值U(节点号从小到大排)为:
0.9153
0.7380
0.6993
0
各支路短路电流的标幺值I(顺序同您输入B时一样)为:
0 + 4.5765i
0 + 0.1845i
0 – 0.4235i
0 – 0.0655i
0 – 0.4890i
4 附录 程序清单
4.1 形成节点导纳矩阵
%本程序是形成节点导纳矩阵
n=input('请输入节点数:n=');
nl=input('请输入支路数:nl=');
B=input('请输入由支路参数形成的矩阵:B=');
X=input('请输入由节点号及其对地阻抗形成的矩阵:X=');
Y=zeros(n);
for i=1:n
if X(i,2)~=0;
p=X(i,1);
Y(p,p)=1./X(i,2);
end
end
for i=1:nl
if B(i,6)==0
p=B(i,1);q=B(i,2);
else
p=B(i,2);q=B(i,1);
end
Y(p,q)=Y(p,q)-1./(B(i,3)*B(i,5));
Y(q,p)=Y(p,q);
Y(q,q)=Y(q,q)+1./(B(i,3)*B(i,5)^2)+B(i,4)./2;
Y(p,p)=Y(p,p)+1./B(i,3)+B(i,4)./2;
end
disp('导纳矩阵Y=');
disp(Y)
4.2 形成节点阻抗矩阵
%本程序是用支路追加法形成节点阻抗矩阵
n=input('请输入节点数:n=');
nl=input('请输入支路数:nl=');
B=input('请输入由支路参数形成的矩阵:B=');
m=0;Z=zeros(n);
for k1=1:nl
p=B(k1,1);q=B(k1,2);
if B(k1,6)==0
l=1./B(k1,5);
elsel=B(k1,5);
end
if p==0
if q>m %追加接地树枝
Z(q,q)=B(k1,3);m=m+1;
else %追加接地连支
for k=1:m,
Z(k,m+1)=-Z(k,q);Z(m+1,k)=-Z(q,k);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
for l1=1:m
for k=1:m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
for k=1:m+1
Z(m+1,k)=0
end
end
else if q>m %追加不接地树枝
for k=1:m
Z(k,q)=Z(k,p)*l;Z(q,k)=Z(p,k)*l;
end
Z(q,q)=l^2*Z(p,p)+l^2*B(k1,3);
m=m+1;
else
for k=1:m %追加不接地连支
Z(k,m+1)=l*Z(k,p)-Z(k,q);
Z(m+1,k)=l*Z(p,k)-Z(q,k);
end
Z(m+1,m+1)=l^2*Z(p,p)+Z(q,q)-2*l*Z(p,q)+l^2*B(k1,3);
for l1=1:m
for k=1:m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
for k=1:m+1
Z(m+1,k)=0;
end
end
end
end
disp('阻抗矩阵Z=');
disp(Z)
4.3 对称故障的计算
%本程序是计算三相短路的短路电流、各节点电压、各支路的电流
NF=input('请输入短路点的数目:NF=');
n=input('请输入独立节点数:n=');
nl=input('请输入支路数:nl=');
B=input('请输入由线路参数形成的矩阵:B=');
V0=input('请输入由各节点的初电压标幺值形成的列矩阵:V0=');
D=input('请输入由短路号、短路点阻抗组成的矩阵:D=');
m=0;Z=zeros(n);V=zeros(n);I=zeros(nl);
for k1=1:nl
p=B(k1,1);q=B(k1,2);
if B(k1,6)==0
k=1./B(k1,5);
else k=B(k1,5);
end
if p==0
if q>m %追加接地树枝
Z(q,q)=B(k1,3);m=m+1;
else %追加接地连支
for i=1:m,
Z(i,m+1)=-Z(i,q);Z(m+1,i)=-Z(q,i);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
for i=1:m
for j=1:m
Z(i,j)=Z(i,j)-Z(i,m+1)*Z(m+1,j)./Z(m+1,m+1);
end
Z(i,m+1)=0;
end
for i=1:m+1
Z(m+1,i)=0;
end
end
else if q>m %追加不接地树支
for i=1:m
Z(i,q)=Z(i,p)*k;Z(q,i)=Z(p,i)*k;
end
Z(q,q)=k^2*Z(p,p)+k^2*B(k1,3);
m=m+1;
else
for i=1:m %追加不接地连支
Z(i,m+1)=k*Z(i,p)-Z(i,q);
Z(m+1,i)=k*Z(p,i)-Z(q,i);
end
Z(m+1,m+1)=k^2*Z(p,p)+Z(q,q)-2*k*Z(p,q)+k^2*B(k1,3);
for i=1:m
for j=1:m
Z(i,j)=Z(i,j)-Z(i,m+1)*Z(m+1,j)./Z(m+1,m+1);
end
Z(i,m+1)=0;
end
for i=1:m+1
Z(m+1,i)=0;
end
end
end
end
for k=1:NF %求各短路点的电流标幺值
I(D(k,1),D(k,1))=V0(D(k,1),1)./(Z(D(k,1),D(k,1))+D(k,2));
ft=num2str(D(k,1));
ts1=('点短路时');
ts2=('电流的标幺值If=');
dn=strcat(ft,ts1,ts2);
disp(dn);
disp(I(D(k,1),D(k,1)));
for i=1:n
V(i,i)=V0(i,1)-I(D(k,1),D(k,1))*Z(i,D(k,1)); %求各节点的电压标
end
end
展开阅读全文