首页 > 编程知识 正文

matlab电力系统分析课程设计,复杂电力系统的潮流计算编程

时间:2023-05-06 03:49:37 阅读:151541 作者:893

matlab电力系统快速解耦法潮流计算及短路计算程序

电力系统快速解耦潮流分析和短路计算一.编程的基本思想: (1)为了在电力系统潮流分析中利用矩阵运算、复数运算,采用matlab编程。 采用文件输入,将系统的各参数作为文件输入,便于程序的通用化。 )2)本程序有两个输入文件:根参数文件和已知的节点状态文件(PQ )。 )3)在形成节点导纳的函数Yn )中,利用循环找到根的起始节点中的最大号数,自动确定节点导纳矩阵的维数,使得程序不仅仅计算9节点网络。 因此,对于任意的n节点网络,以节点导纳矩阵(4)为(3)为前提,在程序支持系统中追加节点,增加负荷引起的PQ参数的变化,或者PQ表格的长度对程序进行了如下优化。 首先,程序执行的基础是PQ表中平衡节点位于第一行,其次是PV节点,最后是PQ节点。 当系统添加节点或删除节点时,都是在PQ表的末端操作,PQ表的顺序不再是平衡节点、PV节点、PQ节点的顺序。 因此,引入seqencing (函数,无论输入的PQ表是什么顺序,在程序读入后都起到按照平衡-PV-PQ的顺序排列的作用。 其次,顺序混乱的PQ表必须对应分支参数表,所以Yn (在函数中加入两个循环体并对应) (参照对应的函数体注释) )满足上述4个条件后,程序可以通用化。 当然,由于水平有限,无法用大量的数据测试程序,难免会有缺陷,这里只是做了一些通用化的尝试。 在本文的最后附上了该程序通用化的实例。 二、潮流计算框图输入系统的分支参数和PQ参数计算节点导纳矩阵设置初始电压值U0,收敛条件和最大迭代次数Kmax,判断是否收敛求解校正方程,得到u和校正U0,U0=U0 U KKmax? N Y输出结果的收敛输出潮流不收敛信息Y N的开始3 .定义对应的函数1 .形成节点导纳矩阵的函数Y N(functiony=Y N ) x,y ) %定义yn这个函数,其功能是自动识别输入表中节点的个数,对应的节点导纳确定%文件是否正确打开了错误(消息); 结束; [HeadPoint,HeadNumber,EndPoint,EndNumber,r,x,b,k]=textread(x,%s %d %s %d %f %f %f %f ); %将读取的参数作为向量处理的数组fclose(FID ); 关闭%文件的l=length(headnumber ); %确定输入表中的行数[Pointstyle,PointNumber,Ps,Qs,Uk,ok]=seqencing(y ); 调用seqencing函数,将y文件中的PQ参数A=PointNumber; for i=1:L; 通过%以下两个循环体实现PQ参数和旁路参数编号对应for j=1:L; ifheadnumber(I )==j; 头编号(I )=a ) j; 黑; 结束; 结束; 结束; for i=1:L; for j=1:L; ifendnumber(I )==j; endnumber(I )=a ) j; 黑; 结束; 结束; 结束; y=Zeros(L,l ); 基于txt文件中的数据表的长度,空节点导纳矩阵fori=1: lm=头编号(I ); n=endnumber(I; ifk(I )==0; %要确定是哪个部件,请输入输电线路部件if n~=0; y(m,m )=y ) m,m ) 1j*B(i ) I )1/(r ) I ) 1j*X(i ) I ); y(n,n )=y ) n ) 1j*B(i ) I )1/) r ) I ) 1j*X(i ) I ); y(m,n )=y ) m,n )-1/(r ) I ) 1j*X(i ) I ); y(n,m )=y(n,m )-1/(r ) I ) 1j*X(i ) ); ELSEy(m,m )=y ) m,m ) r ) I ) 1j*X(i ) I; 结束; else %为变压器元件if n~=0; y(m,m )=y ) m,m )1/(r ) I ) 1j*X(i ) I ); y(m,n )=y ) m,n )-1/(k ) I ) ) (r ) I ) 1j*X(i ) ) ); y(n,n )=y(n,n )1/) k ) I ) k ) I ) ) (r ) I ) 1j*X(i ) I ) ); y(n,m )=y ) n,m )-1/(k ) I ) ) (r ) I ) 1j*X(i ) ); ELSEy(m,m )=y ) m,m ) r ) I ) 1j*X(i ) I; 结束; 结束; 结束; maxm=头编号(1; %根据下面两个循环体,决定输入表中的节点编号的最大值和节点导纳矩阵的维数for i=1:L; if maxm=头编号(I; maxm=头编号(I; 结束; 结束; maxn=endnumber(1; for i=1:L; ifmaxn=endnumber(I; maxn=endnumber(I; 结束; 结束; y=y(1:max(maxm,maxn )、1: max (maxm,maxn ) ); 形成%导纳矩阵2 .对不满足要求的PQ参数表进行排序的函数seqencing(function[pointstyle,PointNumber,Ps,Qs,Uk,Ok]=seqencing )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。