课题组前期培训任务一三阶段826zm阅.docx

上传人:b****6 文档编号:4013569 上传时间:2022-11-27 格式:DOCX 页数:15 大小:22KB
下载 相关 举报
课题组前期培训任务一三阶段826zm阅.docx_第1页
第1页 / 共15页
课题组前期培训任务一三阶段826zm阅.docx_第2页
第2页 / 共15页
课题组前期培训任务一三阶段826zm阅.docx_第3页
第3页 / 共15页
课题组前期培训任务一三阶段826zm阅.docx_第4页
第4页 / 共15页
课题组前期培训任务一三阶段826zm阅.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

课题组前期培训任务一三阶段826zm阅.docx

《课题组前期培训任务一三阶段826zm阅.docx》由会员分享,可在线阅读,更多相关《课题组前期培训任务一三阶段826zm阅.docx(15页珍藏版)》请在冰豆网上搜索。

课题组前期培训任务一三阶段826zm阅.docx

课题组前期培训任务一三阶段826zm阅

课题组前期培训任务一

————潮流计算阶段三

 

作者刘珏麟    

指导老师颜伟余娟赵霞 

培养单位电气工程学院  

学科专业电力系统及其自动化 

 

二○一三年八月

 

目录

一、学习MATPOWER3.2提供的潮流计算程序(主函数为runpf.m),与自己所编制的潮流程序进行对比:

3

(1)正确性3

(2)通用性3

(3)代码量3

(4)执行效率3

(5)输入输出接口4

(6)可读性4

二、以MATPOWER3.2为模板,改进阶段二的潮流程序。

4

三、学习PSASP软件中的潮流计算模块,与自己所编制的潮流程序进行对比。

11

(1)正确性11

(2)通用性11

(3)输入输出接口11

四、根据发电机节点和负荷节点的电压要求,对网络1进行调压。

给出至少三种不同类型的调压方案及相应的潮流计算结果11

一、

学习MATPOWER3.2提供的潮流计算程序(主函数为runpf.m),与自己所编制的潮流程序进行对比:

(1)正确性

matpower3.2做为众多学者的心血和结晶,总体上来说,保证其正确性是基本的要求。

我所编写的潮流程序,每一步都是与手算过程一一对应的,也都是按照书上和老师课件上的潮流计算步骤编写的,所以在原理上可以保证其正确性。

但自己的matlab编程才刚刚起步,所以编写的程序存在一些漏洞在所难免,所以并不能保证程序本身的正确性。

但由于我的程序是以铭牌值为输入量,所以在程序正确的情况下结果会更加准确。

(2)通用性

我编写的程序最大的问题就是不具有通用性,都是完全针对本次潮流计算题目编写的程序。

仔细分析,我觉得其实我编写的程序在用牛顿法解潮流的部分还是具有一定的通用性的。

由于这部分大部分的计算是重复的,可以通过循环计算实现其通用性,比如,功率的不平衡量计算部分是具有通用性的,雅可比计算也可以同过一些调整使其具有通用性。

(3)代码量

由于我的程序不具有通用性,并且没有考虑任何其他可能发生的错误,只考虑的潮流计算题目中的变量,所以我编写的程序代码量比matpower小很多,但如果题目更加复杂的话,按照我编程的思路会大大增加程序的代码量,而matpower所使用的代码量是相对固定,当潮流特别复杂的时候,所需要的代码量必然会超过matpower。

(4)执行效率

由于潮流计算题目的计算量不大,迭代次数不多,针对这个题目本身来说,我编写的程序和matpower比较差别并不是特别大。

但如果计算量大了之后,按照我编写的思路,完全没有用到matlab语言中一些相对高级一些的语言,每一步都相对独立,使用的循环和计算方法的效率都相对较低的问题就会显现出来。

(5)输入输出接口

我感觉我编写的程序输入输入接口并不明显,在编写的时候也没有特别考虑这个问题。

我编写的程序输入量是铭牌编号,所以还要通过参数计算才能得到节点和线路参数的有名值和标幺值再参与计算,输出也是在程序计算中直接得到结果,并没有像matpower那样通过读取文件实现输入并将结果以文件形式集中保存并输出,所以思路没有matpower那么严谨,输入输出都显得比较分散。

(6)可读性

我认为由于我编写的程序用的语言都比较简单,而且思路跟书本上完全一样,所以比起复杂的matpower程序更容易读懂,像我这样的matlab菜鸟也可以很容易读懂。

而matpower作为成熟的工具包,里面用了一些比较不常见的函数,没有一定matlab基础读起来会比较困难,不好理解,所以我认为在在程序内容上可读性上我的程序应该会比较好一些。

但由于输入输出接口不明显,所以输入和结果可读性比较弱,需要对程序了解的人才能知道输出结果。

二、以MATPOWER3.2为模板,改进阶段二的潮流程序。

formatcompact

baseMVA=100;

%节点数PV节点数交流线路数直流线路数发电机数

s1=[71702];

%线路编号起节点名终节点名电阻电抗B/2变比

s2=[1260.0054750.04440.0355711;

2360.00330.026650.0213411;

3230.00440.035540.0284611;

4120.00110.05690115.75/220;

5730.00120.0769011;

6740.00075077-0.005301.1110/220;

7750.000792440.050801.0510/220];

%发电机编号发电机所在节点名有功无功

s3=[111.50;

2600];

%节点编号节点名称基准电压节点类型负荷有功无功初始电压相角节点电导电纳

s5=[11220.020.0000000.0000001.00.00.001896-0.0073554;

22220.01-1.000000-1.0000001.00.000;

33220.010.0000000.0000001.00.000;

44220.01-1.000000-0.8000001.00.000;

55220.01-0.200000-0.1500001.00.000;

66220.030.0000000.0000001.00.000;

77220.010.0000000.0000001.00.00.0007475-0.0007992];

%低压侧节点编号高压侧节点编号变比

s6=[1215.75/220;

47110/220;

5710/220];

%计算节点导纳矩阵Y------------------------------------------------------

Y=[];

c=zeros(s1

(1),1);%s1

(1)为节点数,c对各个节点对地导纳的初值设为0

j=sqrt(-1);

fork=1:

s1(3)%交流线路数

m=s2(k,2);n=s2(k,3);bk=s2(k,7);%bk为标准变比

zt=s2(k,4)+s2(k,5)*j;

Y(m,n)=-1/(zt*bk);

Y(n,m)=-1/(zt*bk);

c(m)=c(m)+s2(k,6)*j+(bk-1)/(bk*zt);%计算节点m的对地导纳

c(n)=c(n)+s2(k,6)*j+(1-bk)/(bk^2*zt);%计算节点n的对地导纳

end

b=-sum(Y,2)+c+s5(:

9)+s5(:

10)*j;

fork=1:

s1

(1)

Y(k,k)=b(k);

end

Y;

G=real(Y);B=imag(Y);

%输入节点电压初值,并计算节点注入功率-----------------------------------

u=s5(:

7);theta=s5(:

8);

%各类节点的个数

PQJD=sum(s5(:

4)==1);

PVJD=sum(s5(:

4)==2);

PHJD=sum(s5(:

4)==0);

PS=s5(:

5);QS=s5(:

6);

fork=1:

s1(5)

PS(s3(k,2))=s5(s3(k,2),5)+s3(k,3);

QS(s3(k,2))=s5(s3(k,2),6)+s3(k,4);

end

PS;QS;%PS、QS所有节点(包括PQ、PV、PH)的给定注入功率

%将外部数据映射到内核中--->YNGNBNEFPSNQSN--------------------

%对节点导纳矩阵Y先换行再换列,形成YN

nn=1;

mm=PQJD+1;

Vm=zeros(s1

(1),1);Va=zeros(s1

(1),1);

PSN=zeros(s1

(1),1);QSN=zeros(s1

(1),1);

YM=zeros(size(Y));

fork=1:

s1

(1)

ifs5(k,4)==3

Vm(s1

(1))=u(k);%平衡节点只有一个所以直接输出到E的最后一个元素

Va(s1

(1))=theta(k);

PSN(s1

(1))=PS(k);

QSN(s1

(1))=QS(k);

YM(s1

(1),:

)=Y(k,:

);

elseifs5(k,4)==1

Vm(nn)=u(k);

Va(nn)=theta(k);

PSN(nn)=PS(k);

QSN(nn)=QS(k);

YM(nn,:

)=Y(k,:

);

nn=nn+1;

elseifs5(k,4)==2

Vm(mm)=u(k);

Va(mm)=theta(k);

PSN(mm)=PS(k);

QSN(mm)=QS(k);

YM(mm,:

)=Y(k,:

);

mm=mm+1;

else

end

end

%%对节点导纳矩阵Y再换列,形成YN

nn=1;

mm=PQJD+1;

YN=zeros(size(Y));

fork=1:

s1

(1)

ifs5(k,4)==3

YN(:

s1

(1))=YM(:

k);

elseifs5(k,4)==1

YN(:

nn)=YM(:

k);

nn=nn+1;

elseifs5(k,4)==2

YN(:

mm)=YM(:

k);

mm=mm+1;

else

end

end

GN=real(YN);BN=imag(YN);

YN;GN;BN;Vm;Va;

%---------------------------------------------------------------------

%求不平衡量

pvn=0;

pqn=0;

fori=1:

s1

(1)

ifs5(i,4)==2

pvn=pvn+1;

elseifs5(i,4)==1

pqn=pqn+1;

end

end

%-------------------------------------------

fortime=1:

20

DW=zeros(2*(s1

(1)-1),1);

n=1;

m=PQJD*2+1;

pvpv=1;pv=zeros(PVJD,1);

fori=1:

s1

(1)

forj=1:

s1

(1)

A(i,j)=Va(i)-Va(j);

end

end

form=1:

s1

(1)-1

ifm<=PQJD%PQ节点

DW(2*m-1)=PSN(m)-Vm(m)*(GN(m,:

).*cos(A(m,:

))+BN(m,:

).*sin(A(m,:

)))*Vm;

DW(2*m)=QSN(m)-Vm(m)*(GN(m,:

).*sin(A(m,:

))-BN(m,:

).*cos(A(m,:

)))*Vm;

elseifm>PQJD%PV节点

DW(2*m-1)=PSN(m)-Vm(m)*(GN(m,:

).*cos(A(m,:

))+BN(m,:

).*sin(A(m,:

)))*Vm;

DW(2*m)=0;DW(2*m)=[];

end

end

DW;

%形成雅可比矩阵---------------------------------------------------

sJ=2*(s1

(1)-1);

J=zeros(sJ,sJ);%

form=1:

s1

(1)-1

forn=1:

s1

(1)-1

ifm<=PQJD

ifm==n

J((2*m-1):

2*m,(2*n-1):

2*n)=...

Vm(m)*[-(GN(m,:

).*sin(A(m,:

))*Vm-BN(m,:

).*cos(A(m,:

))*Vm)-Vm(m)*Vm(m)*BN(m,m)...

(GN(m,:

).*cos(A(m,:

))*Vm+BN(m,:

).*sin(A(m,:

))*Vm)+Vm(m)*Vm(m)*GN(m,m);

(GN(m,:

).*cos(A(m,:

))*Vm+BN(m,:

).*sin(A(m,:

))*Vm)-Vm(m)*Vm(m)*GN(m,m)...

(GN(m,:

).*sin(A(m,:

))*Vm-BN(m,:

).*cos(A(m,:

))*Vm)-Vm(m)*Vm(m)*BN(m,m)];

elseifm~=n

J((2*m-1):

2*m,(2*n-1):

2*n)=Vm(m)*[GN(m,n).*sin(A(m,n))-BN(m,n).*cos(A(m,n))...

GN(m,n).*cos(A(m,n))+BN(m,n).*sin(A(m,n));

-GN(m,n).*cos(A(m,n))+BN(m,n).*sin(A(m,n))...

GN(m,n).*sin(A(m,n))-BN(m,n).*cos(A(m,n))]*Vm(n);

end

elseifm>PQJD

ifm==n

J((2*m-1):

2*m,(2*n-1):

2*n)=...

Vm(m)*[-(GN(m,:

).*sin(A(m,:

))*Vm-BN(m,:

).*cos(A(m,:

))*Vm)-Vm(m)*Vm(m)*BN(m,m)...

(GN(m,:

).*cos(A(m,:

))*Vm+BN(m,:

).*sin(A(m,:

))*Vm)+Vm(m)*Vm(m)*GN(m,m);

00];

elseifm~=n

J((2*m-1):

2*m,(2*n-1):

2*n)=...

Vm(m)*[GN(m,n).*sin(A(m,n))-BN(m,n).*cos(A(m,n))...

GN(m,n).*cos(A(m,n))+BN(m,n).*sin(A(m,n));

00]*Vm(n);

end

end

end

end

form=1:

s1

(1)-1

ifm>PQJD

J(2*m,:

)=[];J(:

2*m)=[];

end

end

J;%雅可比矩阵------------------------------

%求电压的不平衡量,并修正电压

DV=J\DW;%DW=-J*DV--->DV=-J\DW

DVm=zeros(s1

(1),1);

DVa=zeros(s1

(1),1);

forn=1:

PQJD

DVa(n)=DV(2*n-1);

DVm(n)=DV(2*n);

end

forn=(PQJD+1):

s1

(1)-1

DVa(n)=DV(2*n-1);

DVm(n)=0;

end

DVm(s1

(1))=0;

DVa(s1

(1))=0;

Vm=Vm+DVm;Va=Va+DVa;

%--------------------------------------------------

ifmax(abs(DV))<1.0e-006

break;

end

end

form=1:

s1

(1)-1

ifm>PQJD

QG(m)=Vm(m)*(GN(m,:

).*sin(A(m,:

))-BN(m,:

).*cos(A(m,:

)))*Vm;

end

end

nn=1;mm=PQJD+1;

fork=1:

s1

(1)

ifs5(k,4)==1

u(k)=Vm(nn);

theta(k)=Va(nn);

nn=nn+1;

elseifs5(k,4)==2

u(k)=Vm(mm);

theta(k)=Va(mm);

Qg(k)=QG(mm);

mm=mm+1;

else

end

end

j=sqrt(-1);

U=u.*cos(theta)+u.*sin(theta)*j;

uy=abs(u).*s5(:

3);

lt=size(s6(:

1),1);

fori=1:

lt

uy(s6(i,1))=uy(s6(i,1))*s6(i,3);

end

disp('节点编号电压幅值电压相角')

JD_DIAN_YA=cat(2,s5(:

2),uy,theta*180/pi)

fork=1:

s1

(1)

ifs5(k,4)==3

VOJD=U(k)*conj(Y(k,:

)*U);

PS(k)=real(VOJD);QS(k)=imag(VOJD);

end

end

Sa=zeros(s1(3),1);

Sb=zeros(s1(3),1);

DSL=zeros(s1(3),1);%线路上损耗的功率

fork=1:

s1(3)

m=s2(k,2);n=s2(k,3);

zt=s2(k,4)+s2(k,5)*j;

bk=s2(k,7);

Sa(k)=U(m)*(conj(U(m))*conj((s2(k,6)*j+(bk-1)/(bk*zt))+s5(m,9)+s5(m,10)*j)...

+(conj(U(m))-conj(U(n)))*conj(1/(zt*bk)));

Sb(k)=U(n)*(conj(U(n))*conj((s2(k,6)*j+(1-bk)/(bk^2*zt))+s5(n,9)+s5(n,10)*j)...

+(conj(U(n))-conj(U(m)))*conj(1/(zt*bk)));

DSL(k)=Sa(k)+Sb(k);

end

disp('线路编号起节点终节点起->终功率终->起功率线路损耗')

XLGLV=cat(2,s2(:

1:

3),Sa*baseMVA,Sb*baseMVA,DSL*baseMVA)

UY=U.*s5(:

3);

disp('平衡节点功率')

VOJDY=VOJD*baseMVA

SaY=Sa*baseMVA;

SbY=Sb*baseMVA;

DSLY=DSL*baseMVA;

运行结果:

节点编号电压幅值电压相角

JD_DIAN_YA=

1.000015.75005.1735

2.0000213.82970.1765

3.0000212.8942-0.8977

4.0000106.6839-6.6285

5.00009.1216-7.8200

6.0000220.00000

7.0000193.1059-7.0653

线路编号起节点终节点起->终功率终->起功率线路损耗

XLGLV=

1.0e+002*

0.01000.02000.0600-0.0081-0.6465i0.0103+0.5950i0.0022-0.0515i

0.02000.03000.0600-0.7028-1.1013i0.7087+1.1073i0.0059+0.0060i

0.03000.02000.03000.5034+0.0317i-0.5022-0.0756i0.0012-0.0439i

0.04000.01000.02001.5000+0.5362i-1.4953-0.3853i0.0047+0.1510i

0.05000.07000.0300-1.2008-0.9434i1.2051+1.1770i0.0042+0.2336i

0.06000.07000.04001.0020+0.7892i-0.9999-0.7998i0.0022-0.0106i

0.07000.07000.05000.2007+0.1548i-0.2001-0.1500i0.0006+0.0048i

平衡节点功率

7.1899e+001+1.7023e+002i

三、学习PSASP软件中的潮流计算模块,与自己所编制的潮流程序进行对比。

(1)正确性

根据matpower修改后的程序是以标幺值为输入量,而PSASP即可以用标幺值也可以用铭牌值作为输入值,结果正确性方面PSASP比较高。

另外,由于在计算过程中取的小数位数不同,所以在电压相角和线路功率的计算中我编的程序算出的结果还存在一定的误差。

(2)通用性

我编的程序目前只支持以标幺值为输入,除了题目给出的参数没有设计其他的相关参数,所以只能计算与例题同类型或参数更少的潮流计算题目,但比起之前针对本题目的程序通用性还是有一定的提高。

而PSASP在潮流计算部分综合考虑考虑了潮流计算可能遇到的各种情况,可以做更多元件的计算,作为商业软件有很强的通用性。

(3)输入输出接口

在修改的程序中加入了输入输出接口的编写,但由于不太会在主程序中读取输入接口的数据,输入的部分和主程序写在一起,所以不是特别明显,而输出接口则基本模仿了matpower的输出模式,但这样的输入输出接口必须同时比对模型的电路图。

PSASP是图模一体的软件,先要画出电路图,在对应的元件图上输入参数,输出结果也在对于元件上表示,所以其输入和输出都相对更加直观。

四、根据发电机节点和负荷节点的电压要求,对网络1进行调压。

给出至少三种不同类型的调压方案及相应的潮流计算结果

方案一:

结合改变发电机端电压调压和借电容器补偿调压

发电机G1母线采用逆调压,电压升高为104%UN;发电机GS母线采用逆调压,电压升高为102%UN;节点5采用电容器补偿容量为35MVA。

潮流计算结果:

 

节点编号电压幅值电压相角

JD_DIAN_YA=

1.000016.38004.7417

2.0000220.55230.0960

3.0000219.8699-0.9232

4.0000114.7487-6.1212

5.000010.0284-7.1539

6.0000224.40000

7.0000207.8291-6.4986

线路编号起节点终节点起->终功率终->起功率线路损耗

XLGLV=

1.0e+002*

1.0e+002*

0.01000.02000.0600-0.0099-0.4294i0.0108+0.3635i0.0008-0.0659i

0.02000.03000.0600-0.7006-0.7018i0.7037+0.6837i0.0032-0.0181i

0.03000.02000.03000.5051+0.0008i-0.5040-0.0488i0.0011-0.0480i

0.04000.01000.02001.5000+0.7244i-1.4951-0.5714i0.0049+0.1530i

0.05000.07000.0300-1.2014-0.5948i1.2045+0.7506i0.0031+0.1558i

0.060

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1