怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序

《Q分解法潮流计算matlab小程序》由会员分享,可在线阅读,更多相关《Q分解法潮流计算matlab小程序(18页珍藏版)》请在人人文库网上搜索。

1、Q分解法潮流计算matlab小程序1(2010-06-23 14:43:08)转载标签:杂谈题目是东南大学陈怡编的电力系统分析里,五节点的算例,本程序的通用性有待提高。各元件的有关数据如下:(1)发电机G1的端电压为1p.u,发出的有功、无功可调节;(2)发电机G2的端电压为1p.u,按指定的有功P=0.5发电,取=0.0001;(3)其中,G1为平衡节点,编号为5;G2为PV节点,编号为4;其余为PQ节点,编号为1、2、3。其它数据见上图所示。(4)本程序均采用标幺值进行计算,角度为度(),但程序运行中均是用弧度进行计算。在编程开始时,先创建了MATLAB数据,如下所示,仅在MATLAB命令。

2、窗口中有效:systemdata.dat表示“系统数据”:552311branch.dat表示“支路数据”:表4-1 支路数据支路状态节点号节点号RXB(K)1120.0250.080.141130.030.10.181230.020.060.1032400.19051.052233500.19051.0522generator.dat表示“发电机数据”:表4-2 发电机数据140.500.01500.01500.01500.0150140.82151.000.01500.01500.01500.0150140.82loads.dat表示“负荷数据”:表4-3 负荷数据节点状态节点号PQ11-。

3、0.8055-0.53212-0.1800-0.1201300pvnode.dat表示“节点数据”:41.00.54.600000.00001balance.dat表示“平衡节点数据”:51.0000下面对本程序作简单的说明:其中,node_counts表示“节点数”,branch_counts表示“支路数(含并联支路、接地支路)”,generator_counts表示“发电机数”,load_counts表示“负荷数”,pvnode_counts表示“PV节点数”,bal_counts表示“平衡节点数”,branch表示“支路数据”,generator表示“发电机数据”,loads表示“负荷数。

4、据”,pvnode表示“节点数据”,balance表示“平衡节点数据”,Y表示“节点导纳矩阵”,B1表示“B”,B2表示“B”,U表示“节点电压”,dPQ表示“有功无功的不平衡量”,K表示“迭代次数”,eps表示“收敛精度 ”,SIJ、SJI表示“支路潮流”,p表示“注入有功”,q表示“注入无功”。主程序:%=算例为5节点5支路网(东南大学陈怡编)% *% *P-Q法潮流计算主程序*% *%M函数在Workspace看不到变量的值function UPQ,SIJ,SJI,BalanceNodePQ,LossIJPQ,LossP,LossQ=flowmain(systemdata,branch,。

5、generator,loads,pvnode,balance)clearclc%定义全局变量2010-1global node_counts;%节点数global branch_counts;%支路数(含并联支路、接地支路)global generator_counts;%发电机数global load_counts;%负荷数global pvnode_counts;%PV节点数global bal_counts;%平衡节点数global branch;%支路数据global generator;%发电机数据global loads;%负荷数据global pvnode;%PV节点数据glob。

6、al balance;%平衡节点数据global Y;%节点导纳矩阵global B1;%global B2;global U;%节点电压global dPQ;global KKK;%迭代次数global eps;%收敛精度global SIJ;%支路潮流global p;%注入有功global q;%注入无功% 下述方法仅在MATLAB命令窗口中有效load systemdata.dat;%系统数据load branch.dat;%支路数据load generator.dat;%发电机数据load loads.dat;%负荷数据load pvnode.dat;%PV节点数据load bala。

7、nce.dat;%平衡节点数据%赋初值node_counts=systemdata(1);branch_counts=systemdata(2);generator_counts=systemdata(3);load_counts=systemdata(4);pvnode_counts=systemdata(5);bal_counts=systemdata(6);% % %节点导纳矩阵Y的形成Y=produce_Y(node_counts,branch_counts,branch)% % %形成B撇和B撇撇B1=produce_B1(node_counts,balance,Y)B2=produ。

8、ce_B2(node_counts,pvnode,B1,pvnode_counts)% %给节点电压赋初值U=first_SetVol(node_counts,bal_counts,pvnode_counts,balance,pvnode);for ii=1:node_countsdisp(sprintf(初始电压(%d)%d %d,ii,U(ii,1),U(ii,2);end% % %形成delta_p,delta_q% % %形成循环迭代esp=0.0001;end_flag=0;KKK=0;ticwhile end_flag=0end_flag,U=flow_solution(esp);。

9、endt=toc%求平衡节点功率及各支路功率SIJ=branch_flow(U,Y,pi); %显示潮流结果end子程序1(形成节点导纳矩阵):%节点导纳矩阵的形成functionjdY=produce_Y(node_counts,branch_counts,branch)for x=1:node_countsfor y=1:node_countsjdY(x,y)=0;%各节点导纳Y清零endendfor t=1:branch_counts%接地支路ifbranch(t,1)=4zlZ=branch(t,4)+i*branch(t,5);%算各支路阻抗Zif zlZ=0 %三绕组变压器联结点j。

10、dY(branch(t,2),branch(t,2)=jdY(branch(t,2),branch(t,2)+1/zlZ;endend%变压器支路ifbranch(t,1)=2 | branch(t,1)=3zlZ=branch(t,4)+i*branch(t,5);%算各支路阻抗ZjdY(branch(t,2),branch(t,3)=-1/zlZ/branch(t,6);%算节点I与J节点间互导纳YijjdY(branch(t,3),branch(t,2)=-1/zlZ/branch(t,6);%算节点J与I节点间互导纳YjijdY(branch(t,2),branch(t,2)=jdY(。

11、branch(t,2),branch(t,2)+1/zlZ/branch(t,6)2;%算I节点自导纳YiijdY(branch(t,3),branch(t,3)=jdY(branch(t,3),branch(t,3)+1/zlZ;%算J节点自导纳Yjjend%线路支路ifbranch(t,1)=1zlZ=branch(t,4)+i*branch(t,5);%算各支路阻抗ZjdY(branch(t,2),branch(t,3)=-1/zlZ;%算节点I与J节点间互导纳YijjdY(branch(t,3),branch(t,2)=-1/zlZ;%算节点J与I节点间互导纳YjijdY(branch。

12、(t,2),branch(t,2)=jdY(branch(t,2),branch(t,2)+1/zlZ+i*branch(t,6)/2;%算I节点自导纳YiijdY(branch(t,3),branch(t,3)=jdY(branch(t,3),branch(t,3)+1/zlZ+i*branch(t,6)/2;%算J节点自导纳Yjjendenddisp(sprintf(-节点导纳矩阵-); %显示子程序2(形成 ):function jdB1=produce_B1(node_counts,balance,Y)disp(sprintf(-B-);for a=1:node_countsif a=。

13、balance(1)Y(a,:)=;y=Y;y(:,a)=;y1=y;endendjdB1=imag(y1);子程序3(形成 ):function jdB2=produce_B2(node_counts,pvnode,B1,pvnode_counts)disp(sprintf(-B-);for a=1:node_countsfor b=1:pvnode_countsif a=pvnode(b,1)B1(a,:)=;m=B1;m(:,a)=;n=m;endendendjdB2=n;子程序4(电压赋初值):%给节点电压赋初值function U0=first_SetVol(node_counts,。

14、bal_counts,pvnode_counts,balance,pvnode)disp(sprintf(-节点电压赋初值-);for i=1:node_countsU0(i,1)=1.000;%PQ节点电压值相角U0(i,2)=0;endfor j=1:bal_counts%重置平衡节点电压U0(balance(j,1),1)=balance(j,2);U0(balance(j,1),2)=0;endfor j=1:pvnode_counts%重置PV节点电压U0(pvnode(j,1),1)=pvnode(j,2);U0(pvnode(j,1),2)=0;end子程序5(潮流计算的迭代):。

15、function end_flag,U=flow_solution(esp)global node_counts;global branch_counts;global generator_counts;global load_counts;global pvnode_counts;global bal_counts;global generator;global loads;global pvnode;global balance;global p;%注入有功global q;%注入无功global esp;global B1;global B2;global Y;global U;glob。

16、al delta_p_q;global KKK;%迭代次数global pi;%初始化for ii=1:node_countsp(ii)=0;q(ii)=0;endpi=3./180;for ii=1:node_countsfor jj=1:node_countsGIJ=real(Y(ii,jj);BIJ=imag(Y(ii,jj);p(ii)=p(ii)+U(ii,1)*U(jj,1)*(GIJ*cos(U(ii,2)-U(jj,2)*pi)+BIJ*sin(U(ii,2)-U(jj,2)*pi);%注入有功求和q(ii)=q(ii)+U(ii,1)*U(jj,1)*(GIJ*sin(U(i。

17、i,2)-U(jj,2)*pi)-BIJ*cos(U(ii,2)-U(jj,2)*pi);%注入无功求和endendNN_counts=1;for jj=1:load_counts%是发电机PQ节点if loads(jj,1)=1 %是节PQ点dPQ(NN_counts,1)=loads(jj,2);dPQ(NN_counts,2)=loads(jj,3)-p(dPQ(NN_counts,1);NN_counts=NN_counts+1;endendfor jj=1:generator_counts%是发电机PQ节点if generator(jj,1)=1 & generator(jj,10)。

18、=2%是发电机PQ节点dPQ(NN_counts,1)=generator(jj,2);dPQ(NN_counts,2)=generator(jj,3)-p(dPQ(NN_counts,1);NN_counts=NN_counts+1;endendMM_counts=1;for jj=1:load_counts%是发电机PQ节点if loads(jj,1)=1 %是节PQ点dPQ(NN_counts,1)=loads(jj,2);%存PQ节点号dPQ(NN_counts,2)=loads(jj,4)-q(dPQ(NN_counts,1);%存无功失配功率dqNN_counts=NN_count。

19、s+1; MM_counts=MM_counts+1;endendNN_counts=NN_counts-1;MM_counts=MM_counts-1;dPQ=(dPQ)% % %求解delta_p_div_vdelta_p_div_v=dPQ(1 2 3 4,2)./U(1 2 3 4,1)delta_q_div_v=dPQ(5 6 7,2)./U(1 2 3,1)% % %判断是否收敛if (abs(max(delta_p_div_v)1);BB=B; BB(:,phpv)=;BB(phpv,:)=;B2=BB; B2=inv(B2);disp(BB)disp(B2)%-计算各节点有功功。

20、率不平衡量deltaPik=0; kp=1;kq=1;while(kp=0)|(kq=0)&k=20)kp=1;kq=1;notph=find(TYPE(:,1)3);deltaPi=zeros(x-1,1);pq=find(TYPE(:,1)=1);pqnum=size(B2);pqnum=pqnum(1);deltaQi=zeros(pqnum,1);for m=1:(x-1)sum1=0;for n=1:xsum1=sum1+U(notph(m)*U(n)*(G(notph(m),n)*cos(a(notph(m)-a(n)+B(notph(m),n)*sin(a(notph(m)-a(。

21、n);enddeltaPi(m)=P(notph(m)-sum1;enddisp(有功功率不平衡量)disp(k)disp(deltaPi)max1=max(abs(deltaPi);if max1=e kp=0;if kq=0breakelsefor m=1:pqnumsum2=0;for n=1:xsum2=sum2+U(pq(m)*U(n)*(G(pq(m),n)*sin(a(pq(m)-a(n)-B(pq(m),n)*cos(a(pq(m)-a(n); enddeltaQi(m)=Q(pq(m)-sum2;endmax2=max(abs(deltaQi);if max2=e kq=0;。

22、if kp=0breakelsek=k+1;endelseUq=U;Uq(phpv)=;Upq=Uq;deltaU=-B2*(deltaQi./Upq);for m=1:pqnum U(pq(m)=U(pq(m)+deltaU(m);endkp=1;k=k+1;endend elseUp=U; Up(ph)=;Unotph=Up;deltaa=(-B1*(deltaPi./Unotph)./Unotph); for m=1:(x-1)a(notph(m)=a(notph(m)+deltaa(m);enddisp(电压相角修正)disp(k)disp(deltaa)disp(a)kq=1;for。

23、 m=1:pqnumsum2=0;for n=1:xsum2=sum2+U(pq(m)*U(n)*(G(pq(m),n)*sin(a(pq(m)-a(n)-B(pq(m),n)*cos(a(pq(m)-a(n); enddeltaQi(m)=Q(pq(m)-sum2;end disp(wu功功率不平衡量)disp(k)disp(deltaQi) Uq=U;Uq(phpv)=;Upq=Uq;deltaU=-B2*(deltaQi./Upq);for m=1:pqnum U(pq(m)=U(pq(m)+deltaU(m);enddisp(电压修正)disp(k)disp(deltaU)disp(U。

24、)kp=1;k=k+1;endendsum3=0+j*0;for m=1:xsum3=sum3+conj(Y(ph,m)*(U(m)*cos(a(m)-i*U(m)*sin(a(m)endSph=(U(ph)*cos(a(ph)+j*U(ph)*sin(a(ph)*sum3;%-求线路功率Sij和SjiSij=zeros(y,1);Sji=zeros(y,1);for m=1:yif KT(m)=0 Sij(m)=(U(I(m)*cos(a(I(m)+i*U(I(m)*sin(a(I(m)*(U(I(m)*cos(a(I(m)-i*U(I(m)*sin(a(I(m)*(-i*B0(m)/2)+。

25、(U(I(m)*cos(a(I(m)-i*U(I(m)*sin(a(I(m)-U(J(m)*cos(a(J(m)+i*U(J(m)*sin(a(J(m)*conj(-Y(I(m),J(m); Sji(m)=(U(J(m)*cos(a(J(m)+i*U(J(m)*sin(a(J(m)*(U(J(m)*cos(a(J(m)-i*U(J(m)*sin(a(J(m)*(-i*B0(m)/2)+(U(J(m)*cos(a(J(m)-i*U(J(m)*sin(a(J(m)-U(I(m)*cos(a(I(m)+i*U(I(m)*sin(a(I(m)*conj(-Y(I(m),J(m);elseif W=1 。

26、Sij(m)=(U(I(m)*cos(a(I(m)+i*U(I(m)*sin(a(I(m)*(U(I(m)*cos(a(I(m)-i*U(I(m)*sin(a(I(m)*(1-KT(m)/(KT(m)2*conj(1/ZT(m)+(U(I(m)*cos(a(I(m)-i*U(I(m)*sin(a(I(m)-U(J(m)*cos(a(J(m)+i*U(J(m)*sin(a(J(m)*conj(-Y(I(m),J(m);Sji(m)=(U(J(m)*cos(a(J(m)+i*U(J(m)*sin(a(J(m)*(U(J(m)*cos(a(J(m)-i*U(J(m)*sin(a(J(m)*(KT(m。

27、)-1)/KT(m)*conj(1/ZT(m)+(U(J(m)*cos(a(J(m)-i*U(J(m)*sin(a(J(m)-U(I(m)*cos(a(I(m)+i*U(I(m)*sin(a(I(m)*conj(-Y(I(m),J(m);else Sij(m)=(U(I(m)*cos(a(I(m)+i*U(I(m)*sin(a(I(m)*(U(I(m)*cos(a(I(m)-i*U(I(m)*sin(a(I(m)*(KT(m)-1)/KT(m)*conj(1/ZT(m)+(U(I(m)*cos(a(I(m)-i*U(I(m)*sin(a(I(m)-U(J(m)*cos(a(J(m)+i*U(J。

28、(m)*sin(a(J(m)*conj(-Y(I(m),J(m);Sji(m)=(U(J(m)*cos(a(J(m)+i*U(J(m)*sin(a(J(m)*(U(J(m)*cos(a(J(m)-i*U(J(m)*sin(a(J(m)*(1-KT(m)/(KT(m)2*conj(1/ZT(m)+(U(J(m)*cos(a(J(m)-i*U(J(m)*sin(a(J(m)-U(I(m)*cos(a(I(m)+i*U(I(m)*sin(a(I(m)*conj(-Y(I(m),J(m);endendenddeltaSij=Sij+Sji;S=zeros(x,1)+i*zeros(x,1);for b。

29、=1:x for m=1:yif I(m)=b S(b)=S(b)+Sij(m);elseif J(m)=bS(b)=S(b)+Sji(m);else S(b)=S(b);endendendendP=real(S); Q=imag(S); sumdeltaS=sum(S);fid=fopen(shiyanfprintf(fid, *电力系统06 白云霄 *n);jieguo.txt,wt);fprintf(fid, *潮流上机输出结果*n);fprintf(fid, 迭代次数k为: %d n,k);fprintf(fid, =n);fprintf(fid, 平衡节点%d的复功率Sph为: %f。

30、+j*(%f) n,ph,real(Sph),imag(Sph); fprintf(fid, =n);fprintf(fid, 节点电压U为: n);for m=1:xfprintf(fid, 第%d个节点电压: %fn,m,U(m);endfprintf(fid, =n);fprintf(fid, 节点相角a为: n);for m=1:xfprintf(fid, 第%d个节点相角: %fn,m,a(m);endfprintf(fid, =n);fprintf(fid, 节点复功率S为: n);for m=1:xfprintf(fid, 第%d个节点复功率: %f+i*(%f)n,m,real。

31、(S(m),imag(S(m);endfprintf(fid, =n);fprintf(fid, 节点有功功率P为: n);for m=1:xfprintf(fid, 第%d个节点有功功率: %fn,m,P(m);endfprintf(fid, =n);fprintf(fid, 节点无功功率Q为: n);for m=1:xfprintf(fid, 第%d个节点无功功率Q: %fn,m,Q(m);endfprintf(fid, =n);fprintf(fid, 线路功率Sij和Sji为: n);for m=1:yfprintf(fid, 节点%d到节点%d的功率为: %f+i*(%f) n,I(。

32、m),J(m),real(Sij(m),imag(Sij(m);fprintf(fid, 节点%d到节点%d的功率为: %f+i*(%f) n,J(m),I(m),real(Sji(m),imag(Sji(m);endfprintf(fid, =n);fprintf(fid, 网络总损耗sumdeltaS为: %f+i*(%f) n,real(sumdeltaS),imag(sumdeltaS);fprintf(fid, =n);fprintf(fid, 线路功率损耗deltaSij为: n);for m=1:yfprintf(fid, %d-%d线路的功率损耗为: %f+i*(%f) n,I(m),J(m),real(deltaSij(m),imag(deltaSij(m);end。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值