为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

matlab潮流计算

2020-04-16 7页 doc 23KB 10阅读

用户头像 个人认证

is_529050

暂无简介

举报
matlab潮流计算附录1使用牛顿拉夫逊法进行潮流计算的Matlab程序代码%牛拉法计算潮流程序%-----------------------------------------------------------------------%B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳%5、支路的变比;6、支路首端处于K侧为1,1侧为0%B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值%4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量%6、节点分类标号:1为平衡节点(应为1号节点);2为P...
matlab潮流计算
附录1使用牛顿拉夫逊法进行潮流计算的Matlab程序代码%牛拉法计算潮流程序%-----------------------------------------------------------------------%B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳%5、支路的变比;6、支路首端处于K侧为1,1侧为0%B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值%4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量%6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点;3为PV节点;%------------------------------------------------------------------------clearall;formatlong;n=input('请输入节点数:nodes=');nl=input('请输入支路数:lines=');isb=input('请输入平衡母线节点号:balance=');pr=input('请输入误差精度:precision=');B1=input('请输入由各支路参数形成的矩阵:B1=');B2=input('请输入各节点参数形成的矩阵:B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);%------------------------------------------------------------------fori=1:nl %支路数ifB1(i,6)==0 %左节点处于1侧p=B1(i,1);q=B1(i,2);else%左节点处于K侧p=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %非对角元Y(q,p)=Y(p,q);%非对角元Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4); %对角元K侧Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4); %对角元1侧end%求导纳矩阵disp('导纳矩阵Y=');disp(Y)%-------------------------------------------------------------------G=real(Y);B=imag(Y); %分解出导纳阵的实部和虚部fori=1:n %给定各节点初始电压的实部和虚部e(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4); %PV节点电压给定模值endfori=1:n %给定各节点注入功率S(i)=B2(i,1)-B2(i,2); %i节点注入功率SG-SLB(i,i)=B(i,i)+B2(i,5); %i节点无功补偿量end%---------------------------------------------------------------------P=real(S);Q=imag(S);%分解出各节点注入的有功和无功功率ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0;%迭代次数ICT1、a;不满足收敛要求的节点数IT2whileIT2~=0%N0=2*n雅可比矩阵的阶数;N=N0+1扩展列IT2=0;a=a+1;fori=1:nifi~=isb %非平衡节点C(i)=0;D(i)=0;forj1=1:nC(i)=C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1);%Σ(Gij*ej-Bij*fj)D(i)=D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1);%Σ(Gij*fj+Bij*ej)endP1=C(i)*e(i)+f(i)*D(i);%节点功率P计算eiΣ(Gij*ej-Bij*fj)+fiΣ(Gij*fj+Bij*ej)Q1=C(i)*f(i)-e(i)*D(i);%节点功率Q计算fiΣ(Gij*ej-Bij*fj)-eiΣ(Gij*fj+Bij*ej)%求i节点有功和无功功率P',Q'的计算值V2=e(i)^2+f(i)^2; %电压模平方%以下针对非PV节点来求取功率差及Jacobi矩阵元素-----------------------------ifB2(i,6)~=3 %非PV节点DP=P(i)-P1; %节点有功功率差DQ=Q(i)-Q1;%节点无功功率差%以上为除平衡节点外其它节点的功率计算--------------------------------------%求取Jacobi矩阵----------------------------------------------------------forj1=1:nifj1~=isb&j1~=i %非平衡节点&非对角元X1=-G(i,j1)*e(i)-B(i,j1)*f(i); %dP/de=-dQ/dfX2=B(i,j1)*e(i)-G(i,j1)*f(i); %dP/df=dQ/deX3=X2;%X2=dp/dfX3=dQ/deX4=-X1;%X1=dP/deX4=dQ/dfp=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;m=p+1;%X3=dQ/deJ(p,N)=DQ节点无功功率差J(m,q)=X1;J(m,N)=DP;q=q+1;%X1=dP/deJ(m,N)=DP节点有功功率差J(p,q)=X4;J(m,q)=X2;%X4=dQ/dfX2=dp/dfelseifj1==i&j1~=isb %非平衡节点&对角元X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);%dP/deX2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);%dP/dfX3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);%dQ/deX4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);%dQ/dfp=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;%扩展列△Qm=p+1;J(m,q)=X1;q=q+1;J(p,q)=X4;J(m,N)=DP;%扩展列△PJ(m,q)=X2;endendelse%下面是针对PV节点来求取Jacobi矩阵的元素-----------------------------------------DP=P(i)-P1; %PV节点有功误差DV=V(i)^2-V2; %PV节点电压误差forj1=1:nifj1~=isb&j1~=i %非平衡节点&非对角元X1=-G(i,j1)*e(i)-B(i,j1)*f(i);%dP/deX2=B(i,j1)*e(i)-G(i,j1)*f(i);%dP/dfX5=0;X6=0;p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;%PV节点电压误差m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;%PV节点有功误差J(m,q)=X2;elseifj1==i&j1~=isb %非平衡节点&对角元X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);%dP/deX2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);%dP/dfX5=-2*e(i);X6=-2*f(i);p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;%PV节点电压误差m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;%PV节点有功误差J(m,q)=X2;endendendendend%以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差---------------------------------------fork=3:N0%N0=2*n(从第三行开始,第一、二行是平衡节点)k1=k+1;N1=N;%N=N0+1即N=2*n+1扩展列△P、△Q或△Ufork2=k1:N1 %从k+1列的Jacobi元素到扩展列的△P、△Q或△UJ(k,k2)=J(k,k2)./J(k,k);%用K行K列对角元素去除K行K列后的非对角元素进行规格化endJ(k,k)=1;%对角元规格化K行K列对角元素赋1 %回代运算-------------------------------------------------------------------ifk~=3%不是第三行k>3k4=k-1;fork3=3:k4 %用k3行从第三行开始到当前行的前一行k4行消去fork2=k1:N1 %k3行后各行上三角元素J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行k列元素消为0)end%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素J(k3,k)=0;%当前行第k列元素已消为0endifk==N0%若已到最后一行break;end%前代运算------------------------------------------------------------fork3=k1:N0%从k+1行到2*n最后一行fork2=k1:N1%从k+1列到扩展列消去k+1行后各行下三角元素J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算end%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素J(k3,k)=0;%当前行第k列元素已消为0endelse%是第三行k=3%第三行k=3的前代运算----------------------------------------------------fork3=k1:N0%从第四行到2n行(最后一行)fork2=k1:N1%从第四列到2n+1列(即扩展列)J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0)end%用当前行K2列元素减去当前行3列元素乘以第三行K2列元素J(k3,k)=0;%当前行第3列元素已消为0endendend%上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵%-----------------------------------------------------------------------------------fork=3:2:N0-1L=(k+1)./2;e(L)=e(L)-J(k,N);%修改节点电压实部k1=k+1;f(L)=f(L)-J(k1,N);%修改节点电压虚部end%修改节点电压---------------------------fork=3:N0DET=abs(J(k,N));ifDET>=pr%电压偏差量是否满足要求IT2=IT2+1;%不满足要求的节点数加1endendICT2(a)=IT2;%不满足要求的节点数ICT1=ICT1+1;%迭代次数end%用高斯消去法解"w=-J*V"disp('迭代次数:');disp(ICT1);disp('没有达到精度要求的个数:');disp(ICT2);fork=1:nV(k)=sqrt(e(k)^2+f(k)^2);%计算各节点电压的模值sida(k)=atan(f(k)./e(k))*180./pi;%计算各节点电压的角度E(k)=e(k)+f(k)*1i;%将各节点电压用复数示end%计算各输出量------------------------------------------------------disp('各节点的实际电压标幺值E为:');disp(E);%显示各节点的实际电压标幺值E用复数表示disp('-----------------------------------------------------');disp('各节点的电压大小V为:');disp(V);%显示各节点的电压大小V的模值disp('-----------------------------------------------------');disp('各节点的电压相角deg为:');disp(sida);%显示各节点的电压相角forp=1:nC(p)=0;forq=1:nC(p)=C(p)+conj(Y(p,q))*conj(E(q));%计算各节点的注入电流的共轭值endS(p)=E(p)*C(p);%计算各节点的功率S=电压X注入电流的共轭值enddisp('各节点的功率S为:');disp(S);%显示各节点的注入功率disp('-----------------------------------------------------');disp('各条支路的首端功率Si为:');fori=1:nlp=B1(i,1);q=B1(i,2);ifB1(i,6)==0Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));Siz(i)=Si(p,q);elseSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)./B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));Siz(i)=Si(p,q);enddisp(Si(p,q));SSi(p,q)=Si(p,q);ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];disp(ZF);disp('-----------------------------------------------------');enddisp('各条支路的末端功率Sj为:');fori=1:nlp=B1(i,1);q=B1(i,2);ifB1(i,6)==0Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));Sjy(i)=Sj(q,p);elseSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)*B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));Sjy(i)=Sj(q,p);enddisp(Sj(q,p));SSj(q,p)=Sj(q,p);ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];disp(ZF);disp('-----------------------------------------------------');enddisp('各条支路的功率损耗DS为:');fori=1:nlp=B1(i,1);q=B1(i,2);DS(i)=Si(p,q)+Sj(q,p);disp(DS(i));DDS(i)=DS(i);ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))];disp(ZF);disp('-----------------------------------------------------');end附录2使用PQ分解法进行潮流计算的Matlab程序代码%PQ分解法潮流计算程序%本文中的实例数据如下:节点数为9;支路数为9;平衡母线节点号为1;误差精度为0.00001;PQ节点数为5;%主程序clearall;formatlong;n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');isb=input('请输入平衡母线节点号:isb=');pr=input('请输入误差精度:pr=');B1=input('请输入由支路参数形成的矩阵:B1=');%输入B1B2=input('请输入由支路参数形成的矩阵:B2=');%输入B2na=input('请输入PQ节点数na=');Y=zeros(n);YI=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);O=zeros(1,n);fori=1:nlifB1(i,6)==0p=B1(i,1);q=B1(i,2);elsep=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));YI(p,q)=YI(p,q)-1./B1(i,3);Y(q,p)=Y(p,q);YI(q,p)=YI(p,q);Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4);YI(q,q)=YI(q,q)+1./B1(i,3);Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4);YI(p,p)=YI(p,p)+1./B1(i,3);end%求导纳矩阵disp('节点导纳矩阵为:');disp(Y);G=real(Y);B=imag(YI);BI=imag(Y);fori=1:nS(i)=B2(i,1)-B2(i,2);BI(i,i)=BI(i,i)+B2(i,5);endP=real(S);Q=imag(S);fori=1:ne(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4);endfori=1:nifB2(i,6)==2V(i)=sqrt(e(i)^2+f(i)^2);O(i)=atan(f(i)./e(i));endendfori=2:nifi==nB(i,i)=1./B(i,i);elseIC1=i+1;forj1=IC1:nB(i,j1)=B(i,j1)./B(i,i);endB(i,i)=1./B(i,i);fork=i+1:nforj1=i+1:nB(k,j1)=B(k,j1)-B(k,i)*B(i,j1);endendendendp=0;q=0;fori=1:nifB2(i,6)==2p=p+1;k=0;forj1=1:nifB2(j1,6)==2k=k+1;A(p,k)=BI(i,j1);endendendendfori=1:naifi==naA(i,i)=1./A(i,i);elsek=i+1;forj1=k:naA(i,j1)=A(i,j1)./A(i,i);endA(i,i)=1./A(i,i);fork=i+1:naforj1=i+1:naA(k,j1)=A(k,j1)-A(k,i)*A(i,j1);endendendendICT2=1;ICT1=0;kp=1;kq=1;K=1;DET=0;ICT3=1;whileICT2~=0||ICT3~=0ICT2=0;ICT3=0;fori=1:nifi~=isbC(i)=0;fork=1:nC(i)=C(i)+V(k)*(G(i,k)*cos(O(i)-O(k))+BI(i,k)*sin(O(i)-O(k)));endDP1(i)=P(i)-V(i)*C(i);DP(i)=DP1(i)./V(i);DET=abs(DP1(i));ifDET>=prICT2=ICT2+1;endendendNp(K)=ICT2;ifICT2~=0fori=2:nDP(i)=B(i,i)*DP(i);ifi~=nIC1=i+1;fork=IC1:nDP(k)=DP(k)-B(k,i)*DP(i);endelseforLZ=3:iL=i+3-LZ;IC4=L-1;forMZ=2:IC4I=IC4+2-MZ;DP(I)=DP(I)-B(I,L)*DP(L);endendendendfori=2:nO(i)=O(i)-DP(i);endkq=1;L=0;fori=1:nifB2(i,6)==2C(i)=0;L=L+1;fork=1:nC(i)=C(i)+V(k)*(G(i,k)*sin(O(i)-O(k))-BI(i,k)*cos(O(i)-O(k)));endDQ1(i)=Q(i)-V(i)*C(i);DQ(L)=DQ1(i)./V(i);DET=abs(DQ1(i));ifDET>=prICT3=ICT3+1;endendendelsekp=0;ifkq~=0;L=0;fori=1:nifB2(i,6)==2C(i)=0;L=L+1;fork=1:nC(i)=C(i)+V(k)*(G(i,k)*sin(O(i)-O(k))-BI(i,k)*cos(O(i)-O(k)));endDQ1(i)=Q(i)-V(i)*C(i);DQ(L)=DQ1(i)./V(i);DET=abs(DQ1(i));endendendendNq(K)=ICT3;ifICT3~=0L=0;fori=1:naDQ(i)=A(i,i)*DQ(i);ifi==naforLZ=2:iL=i+2-LZ;IC4=L-1;forMZ=1:IC4I=IC4+1-MZ;DQ(I)=DQ(I)-A(I,L)*DQ(L);endendelseIC1=i+1;fork=IC1:naDQ(k)=DQ(k)-A(k,i)*DQ(i);endendendL=0;fori=1:nifB2(i,6)==2L=L+1;V(i)=V(i)-DQ(L);endendkp=1;K=K+1;elsekq=0;ifkp~=0K=K+1;endendfori=1:nDy(K-1,i)=V(i);endenddisp('迭代次数');disp(K);disp('每次没有达到精度要求的有功功率个数为');disp(Np);disp('每次没有达到精度要求的无功功率个数为');disp(Nq);fork=1:nE(k)=V(k)*cos(O(k))+V(k)*sin(O(k))*j;O(k)=O(k)*180./pi;enddisp('各节点的电压标幺值E为:');disp(E);disp('各节点的电压V大小为:');disp(V);disp('各节点的电压相角O为:');disp(O);forp=1:nC(p)=0;forq=1:nC(p)=C(p)+conj(Y(p,q))*conj(E(q));endS(p)=E(p)*C(p);enddisp('各节点的功率S为:');disp(S);disp('各条支路的首端功率Sj为:');fori=1:nlifB1(i,6)==0p=B1(i,1);q=B1(i,2);elsep=B1(i,2);q=B1(i,1);endSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));disp(Si(p,q));enddisp('各条支路的末端功率Sj为:');fori=1:nlifB1(i,6)==0p=B1(i,1);q=B1(i,2);elsep=B1(i,2);q=B1(i,1);endSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));disp(Sj(q,p));enddisp('各条支路的功率损耗DS为:');fori=1:nlifB1(i,6)==0p=B1(i,1);q=B1(i,2);elsep=B1(i,2);q=B1(i,1);endDS(i)=Si(p,q)+Sj(q,p);disp(DS(i));endfori=1:KCs(i)=i;forj=1:nDy(K,j)=Dy(K-1,j);endend附录3进行三相短路容量计算的Matlab程序代码%短路容量计算程序%---------------------------------------------------------------------%B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳%5、支路的变比;6、支路首端处于K侧为1,1侧为0%B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值%4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量%6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点;%Yd为修改后的节点导纳矩阵%-----------------------------------------------------------------------clearall;formatlong;g1=input('300MW发电机数:g1=');g2=input('250MW发电机数:g2=');n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');B1=input('请输入由各支路参数形成的矩阵:B1=');B2=input('请输入各节点参数形成的矩阵:B2=');Y=zeros(n);%Y为修改前节点导纳矩阵fori=1:nl %支路数ifB1(i,6)==0 %左节点处于1侧p=B1(i,1);q=B1(i,2);else%左节点处于K侧p=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %非对角元Y(q,p)=Y(p,q);%非对角元Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4); %对角元K侧Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4); %对角元1侧end%----------------------------------------------------------%Y2-Y5为各PQ节点负荷的导纳Y1=0;Y2=conj(B2(2,2));Y3=conj(B2(3,2));Y4=conj(B2(4,2));Y5=conj(B2(5,2));Xd300=0.51j/0.950413^2;XT300=0.033212j/0.950413^2;Xd250=0.714j/0.950413^2;XT250=0.038747j/0.950413^2;Y6=g1/(XT300+Xd300)+g2/(XT250+Xd250);%处理相应的负荷及机组部分的导纳%------------------------------------------------------------C=[Y1,Y2,Y3,Y4,Y5,Y6];Yd=Y;fori=1:nYd(i,i)=Yd(i,i)+C(i);%修改各节点自导纳enddisp(Yd);Z=inv(Yd);%求节点阻抗矩阵forj=1:nI(j)=1/Z(j,j);%电压故障前电压标幺值为1S(j)=abs(I(j));Sn(j)=S(j)*100;%短路电流有名值end%计算完毕----------------------------------------------------disp('各节点短路时的短路电流幅值标幺值')disp(abs(I))disp('短路容量有名值Sn=');disp(Sn);...
/
本文档为【matlab潮流计算】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索