收藏 分销(赏)

matlab潮流计算.doc

上传人:精**** 文档编号:3562793 上传时间:2024-07-09 格式:DOC 页数:16 大小:67KB
下载 相关 举报
matlab潮流计算.doc_第1页
第1页 / 共16页
matlab潮流计算.doc_第2页
第2页 / 共16页
matlab潮流计算.doc_第3页
第3页 / 共16页
matlab潮流计算.doc_第4页
第4页 / 共16页
matlab潮流计算.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、附录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节点;%-clear all;format long;n=input(请输入节点数:nodes=);nl=input(请输入支路数:lines=);isb=input(请输入平衡母

2、线节点号: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);%-for i=1:nl%支路数 if B1(i,6)=0%左节点处于1侧 p=B1(i,1);q=B1(i,2); else %左节点处于K侧 p=B1(i,2);q=B1(i,1);end Y(p,q)=Y(p,q)-1./(B1(i,

3、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);%分解出导纳阵的实部和虚部for i=1:n%给定各节点初始电压的实部和虚部e(i)=real(B2(i,3);f(i)=imag(B2(i,3); V(i)=B2(i,4);%PV节点电压给定模值endfor i=1:n%给定各节点注入功

4、率 S(i)=B2(i,1)-B2(i,2); %i节点注入功率SG-SL B(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;不满足收敛要求的节点数IT2while IT2=0 % N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列 IT2=0;a=a+1;for i=1:n if i=isb%非平衡节点C(i)=0;D(i)=0;for j1=1:n C(i)=C(i)+G(i,j1)*e(j1)-B(i,j

5、1)*f(j1);%(Gij*ej-Bij*fj) D(i)=D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1);%(Gij*fj+Bij*ej)end P1=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矩阵元素- if B2(i,6)=3%

6、非PV节点 DP=P(i)-P1;%节点有功功率差 DQ=Q(i)-Q1; %节点无功功率差%以上为除平衡节点外其它节点的功率计算-%求取Jacobi矩阵-for j1=1:n if j1=isb&j1=i%非平衡节点&非对角元 X1=-G(i,j1)*e(i)-B(i,j1)*f(i);% dP/de=-dQ/df X2=B(i,j1)*e(i)-G(i,j1)*f(i);% dP/df=dQ/de X3=X2; % X2=dp/df X3=dQ/de X4=-X1; % X1=dP/de X4=dQ/df p=2*i-1;q=2*j1-1; J(p,q)=X3;J(p,N)=DQ;m=p+

7、1; % X3=dQ/de J(p,N)=DQ节点无功功率差 J(m,q)=X1;J(m,N)=DP;q=q+1; % X1=dP/de J(m,N)=DP节点有功功率差J(p,q)=X4;J(m,q)=X2; % X4=dQ/df X2=dp/dfelseif j1=i&j1=isb%非平衡节点&对角元 X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i); % dQ/de X4=-C(i)+G(i,i)*e(i)+B(

8、i,i)*f(i);% dQ/df p=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;%扩展列Q m=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节点电压误差for j1=1:n if j1=isb&j1=i%非平衡节点&非对角元 X1=-G(i,j1)*e(i)-B(i,j1)*f(i); % dP/de X2=B(i,j1)*e(i)-G(i,j1)*

9、f(i); % dP/df X5=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;elseif j1=i&j1=isb%非平衡节点&对角元 X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df X5=-2*e(i); X6=-2*f(i); p=2*i-1;q=2*j1-1;J(p,q)=X5;

10、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%以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差- for k=3:N0 % N0=2*n (从第三行开始,第一、二行是平衡节点) k1=k+1;N1=N; % N=N0+1 即 N=2*n+1扩展列P、Q 或U for k2=k1:N1% 从k+1列的Jacobi元素到扩展列的P、Q 或U J(k,k2)=J(k,k2)./J(k,k);% 用K行K列对角元素去除K行K列后的非对角元素进

11、行规格化end J(k,k)=1; % 对角元规格化K行K列对角元素赋1 %回代运算- if k=3 % 不是第三行 k 3 k4=k-1; for k3=3:k4% 用k3行从第三行开始到当前行的前一行k4行消去 for k2=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列元素已消为0end if k=N0 %若已到最后一行break;end %前代运算- for k3=k1:N0 % 从k+1

12、行到2*n最后一行 for k2=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列元素已消为0end else %是第三行k=3 %第三行k=3的前代运算- for k3=k1:N0 %从第四行到2n行(最后一行) for k2=k1:N1 %从第四列到2n+1列(即扩展列) J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0) end %用当前行

13、K2列元素减去当前行3列元素乘以第三行K2列元素 J(k3,k)=0; %当前行第3列元素已消为0endendend%上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵%-for k=3:2:N0-1 L=(k+1)./2; e(L)=e(L)-J(k,N); %修改节点电压实部 k1=k+1; f(L)=f(L)-J(k1,N); %修改节点电压虚部end %修改节点电压-for k=3:N0 DET=abs(J(k,N); if DET=pr %电压偏差量是否满足要求 IT2=IT2+1; %不满足要求的节点数加1endend ICT2(a)=IT2; %不满足要求的节点数 IC

14、T1=ICT1+1; %迭代次数end%用高斯消去法解w=-J*Vdisp(迭代次数:);disp(ICT1);disp(没有达到精度要求的个数:);disp(ICT2);for k=1:n V(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

15、); %显示各节点的电压大小V的模值disp(-);disp(各节点的电压相角deg为:);disp(sida); %显示各节点的电压相角for p=1:nC(p)=0;for q=1:n C(p)=C(p)+conj(Y(p,q)*conj(E(q); %计算各节点的注入电流的共轭值end S(p)=E(p)*C(p); %计算各节点的功率 S = 电压 X 注入电流的共轭值enddisp(各节点的功率S为:);disp(S); %显示各节点的注入功率disp(-);disp(各条支路的首端功率Si为:);for i=1:nl p=B1(i,1);q=B1(i,2);if B1(i,6)=0

16、 Si(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);else Si(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),)=,num2

17、str(SSi(p,q);disp(ZF);disp(-);enddisp(各条支路的末端功率Sj为:);for i=1:nl p=B1(i,1);q=B1(i,2);if B1(i,6)=0 Sj(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,

18、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为:);for i=1:nl p=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

19、分解法进行潮流计算的Matlab程序代码%PQ分解法潮流计算程序%本文中的实例数据如下:节点数为9;支路数为9;平衡母线节点号为1;误差精度为0.00001;PQ节点数为5;%主程序clear all;format long;n=input(请输入节点数:n=);nl=input(请输入支路数:nl=); isb=input(请输入平衡母线节点号:isb=); pr=input(请输入误差精度:pr=); B1=input(请输入由支路参数形成的矩阵:B1=); %输入B1 B2=input(请输入由支路参数形成的矩阵:B2=); %输入B2na=input(请输入PQ节点数na=); Y=z

20、eros(n);YI=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);O=zeros(1,n);for i=1:nl if B1(i,6)=0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Y(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,

21、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);for i=1:n S(i)=B2(i,1)-B2(i,2); BI(i,i)=BI(i,i)+B2(i,5);end P=real(S);Q=imag(S);for i=1:n e(i)=real(B2(i,3); f(i)=imag(B2(i,3); V(i)=B2(i,4);endfor i=1:n if B2

22、(i,6)=2 V(i)=sqrt(e(i)2+f(i)2); O(i)=atan(f(i)./e(i); endendfor i=2:n if i=n B(i,i)=1./B(i,i); else IC1=i+1; for j1=IC1:n B(i,j1)=B(i,j1)./B(i,i); end B(i,i)=1./B(i,i); for k=i+1:n for j1=i+1:n B(k,j1)=B(k,j1)-B(k,i)*B(i,j1); end end endendp=0;q=0;for i=1:n if B2(i,6)=2 p=p+1;k=0; for j1=1:n if B2(j

23、1,6)=2 k=k+1; A(p,k)=BI(i,j1); end end endendfor i=1:na if i=na A(i,i)=1./A(i,i); else k=i+1; for j1=k:na A(i,j1)=A(i,j1)./A(i,i); end A(i,i)=1./A(i,i); for k=i+1:na for j1=i+1:na A(k,j1)=A(k,j1)-A(k,i)*A(i,j1); end end end endICT2=1;ICT1=0;kp=1;kq=1;K=1;DET=0;ICT3=1;while ICT2=0|ICT3=0 ICT2=0;ICT3=

24、0; for i=1:n if i=isb C(i)=0; for k=1:n C(i)=C(i)+V(k)*(G(i,k)*cos(O(i)-O(k)+BI(i,k)*sin(O(i)-O(k); end DP1(i)=P(i)-V(i)*C(i); DP(i)=DP1(i)./V(i); DET=abs(DP1(i); if DET=pr ICT2=ICT2+1; end end end Np(K)=ICT2; if ICT2=0 for i=2:n DP(i)=B(i,i)*DP(i); if i=n IC1=i+1; for k=IC1:n DP(k)=DP(k)-B(k,i)*DP(

25、i); end else for LZ=3:i L=i+3-LZ; IC4=L-1; for MZ=2:IC4 I=IC4+2-MZ; DP(I)=DP(I)-B(I,L)*DP(L); end end end end for i=2:n O(i)=O(i)-DP(i); end kq=1;L=0; for i=1:n if B2(i,6)=2 C(i)=0;L=L+1; for k=1:n C(i)=C(i)+V(k)*(G(i,k)*sin(O(i)-O(k)-BI(i,k)*cos(O(i)-O(k); end DQ1(i)=Q(i)-V(i)*C(i); DQ(L)=DQ1(i)./V

26、(i); DET=abs(DQ1(i); if DET =pr ICT3=ICT3+1; end end end else kp=0; if kq=0; L=0; for i=1:n if B2(i,6)=2 C(i)=0;L=L+1; for k=1:n C(i)=C(i)+V(k)*(G(i,k)*sin(O(i)-O(k)-BI(i,k)*cos(O(i)-O(k); end DQ1(i)=Q(i)-V(i)*C(i); DQ(L)=DQ1(i)./V(i); DET=abs(DQ1(i); end end end end Nq(K)=ICT3; if ICT3=0 L=0; for i

27、=1:na DQ(i)=A(i,i)*DQ(i); if i=na for LZ=2:i L=i+2-LZ; IC4=L-1; for MZ=1:IC4 I=IC4+1-MZ; DQ(I)=DQ(I)-A(I,L)*DQ(L); end end else IC1=i+1; for k=IC1:na DQ(k)=DQ(k)-A(k,i)*DQ(i); end end end L=0; for i=1:n if B2(i,6)=2 L=L+1; V(i)=V(i)-DQ(L); end end kp=1; K=K+1; else kq=0; if kp=0 K=K+1; end end for i

28、=1:n Dy(K-1,i)=V(i); endenddisp(迭代次数);disp(K); disp(每次没有达到精度要求的有功功率个数为);disp(Np);disp(每次没有达到精度要求的无功功率个数为);disp(Nq);for k=1:n E(k)=V(k)*cos(O(k)+V(k)*sin(O(k)*j; O(k)=O(k)*180./pi;end disp(各节点的电压标幺值E为:);disp(E);disp(各节点的电压V大小为:);disp(V);disp(各节点的电压相角O为:);disp(O);for p=1:n C(p)=0; for q=1:n C(p)=C(p)+

29、conj(Y(p,q)*conj(E(q); end S(p)=E(p)*C(p);end disp(各节点的功率S为:);disp(S);disp(各条支路的首端功率Sj为:); for i=1:nl if B1(i,6)=0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Si(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);end disp(各条支路的末端功率Sj为:); for i=1:nl if B1(i,6)=0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Sj(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); end disp(各条支路的功率损耗DS为:); for i=1:nl

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服