Matlab牛拉法潮流计算程序.docx

上传人:牧羊曲112 文档编号:3161283 上传时间:2023-03-11 格式:DOCX 页数:10 大小:39.55KB
返回 下载 相关 举报
Matlab牛拉法潮流计算程序.docx_第1页
第1页 / 共10页
Matlab牛拉法潮流计算程序.docx_第2页
第2页 / 共10页
Matlab牛拉法潮流计算程序.docx_第3页
第3页 / 共10页
Matlab牛拉法潮流计算程序.docx_第4页
第4页 / 共10页
Matlab牛拉法潮流计算程序.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Matlab牛拉法潮流计算程序.docx》由会员分享,可在线阅读,更多相关《Matlab牛拉法潮流计算程序.docx(10页珍藏版)》请在三一办公上搜索。

1、Matlab牛拉法潮流计算程序%本程序的功能是用牛顿拉夫逊法进行潮流计算 % B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳 % 5、支路的变比;6、支路首端处于K侧为1,1侧为0 % B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值 % 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量 % 6、节点分类标号:1为平衡节点;2为PQ节点; % 3为PV节点; clear; n=input(请输入节点数:n=); nl=input(请输入支路数:nl=); isb=input(请输入平衡母线节点号:isb=); pr=input(请输入误差

2、精度:pr=); 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)*B1(i,5); %非对角元 Y(q,p)

3、=Y(p,q); %非对角元 Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)2)+B1(i,4)./2; %对角元K侧 Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; %对角元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节点电压给定模值 end for 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;不满足收敛要求的节点数IT2 while IT2=0 % N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列 IT2=0;a=a+1; fori=1:n if i=isb %非平衡节点 C(i)=0;D(i)=0; for j1=1:n C(i)=C(i)+G(i,j1)*e(

5、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) 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矩阵元素

6、 = if B2(i,6)=3 %非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*

7、j1-1; J(p,q)=X3;J(p,N)=DQ;m=p+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/df 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 X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i)

8、; % dQ/de X4=-C(i)+G(i,i)*e(i)+B(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;%扩展列P J(m,q)=X2; end end else %= 下面是针对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(

9、i,j1)*f(i); % dP/de X2=B(i,j1)*e(i)-G(i,j1)*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=-

10、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; end end end end end %= 以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差 = 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

11、,k2)./J(k,k);% 用K行K列对角元素去除K行K列后的非对角元素进行规格化 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);%消去运算 end %用当前行K2列元素减去当前行k列元素乘以第k行K2列元素 J(k3,k)=0; %当前行第k列元素已消为0 end if k=N0 %若已到最后一行 br

12、eak; end %= 前代运算 = for k3=k1:N0 % 从k+1行到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列元素已消为0 end 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,k

13、2);%消去运算 end %用当前行K2列元素减去当前行3列元素乘以第三行K2列元素 J(k3,k)=0; %当前行第3列元素已消为0 end end end %=上面是用线性变换方式高斯消去法将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; %不满足要求的节点数加1 end en

14、d ICT2(a)=IT2; %不满足要求的节点数 ICT1=ICT1+1; %迭代次数 end %用高斯消去法解w=-J*V disp(迭代次数:); 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)*j; %将各节点电压用复数表示 end %= 计算各输出量 = disp(各节点的实际电压标幺值E为(节点号从小到大排列):); disp(E);

15、 %显示各节点的实际电压标幺值E用复数表示 disp(-); disp(各节点的电压大小V为(节点号从小到大排列):); disp(V); %显示各节点的电压大小V的模值 disp(-); disp(各节点的电压相角sida为(节点号从小到大排列):); disp(sida); %显示各节点的电压相角 for p=1:n C(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 注入电流的共轭值 end disp(各节点的功率S为(节点号从小

16、到大排列):); disp(S); %显示各节点的注入功率 disp(-); disp(各条支路的首端功率Si为(顺序同您输入B1时一致):); fori=1:nl p=B1(i,1);q=B1(i,2); if B1(i,6)=0 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). -c

17、onj(E(q)*conj(1./(B1(i,3)*B1(i,5); Siz(i)=Si(p,q); end disp(Si(p,q); SSi(p,q)=Si(p,q); ZF=S(,num2str(p),num2str(q),)=,num2str(SSi(p,q); disp(ZF); disp(-); end disp(各条支路的末端功率Sj为(顺序同您输入B1时一致):); fori=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). -

18、conj(E(p)*conj(1./(B1(i,3)*B1(i,5); Sjy(i)=Sj(q,p); else 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); end disp(Sj(q,p); SSj(q,p)=Sj(q,p); ZF=S(,num2str(q),num2str(p),)=,num2str(SSj(q,p); disp(ZF); disp(-); end disp(各条支路的功率损耗DS为(顺序同

19、您输入B1时一致):); fori=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 figure(1); subplot(1,2,1); plot(V); xlabel(节点号);ylabel(电压标幺值); grid on; subplot(1,2,2); plot(sida); xlabel(节点号);ylabel(电压角度); grid on; f

20、igure(2); subplot(2,2,1); P=real(S);Q=imag(S); bar(P); xlabel(节点号);ylabel(节点注入有功); grid on; subplot(2,2,2); bar(Q); xlabel(节点号);ylabel(节点注入无功); grid on; subplot(2,2,3); P1=real(Siz);Q1=imag(Siz); bar(P1); xlabel(支路号);ylabel(支路首端注入有功); grid on; subplot(2,2,4); bar(Q1); xlabel(支路号);ylabel(支路首端注入无功); grid on;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号