times=0;
while(max(Mismatch_power)>Accuracy) for i=1:(n1-1) Pj=0; for j=1:n1
Pj=Pj+B2(i,3)*B2(j,3)*(real(Y(i,j))*cos(B2(i,4)-B2(j,4))+imag(Y(i,j))*sin(B2(i,4)-B2(j,4))); end
Mismatch_power(i,1)=real(B2(i,1))-real(B2(i,2))-Pj; end
for k=n1:(l+m*2) Qj=0; for j=1:n1
Qj=Qj+B2((k-n1+1),3)*B2(j,3)*(real(Y((k-n1+1),j))*sin(B2((k-n1+1),4)-B2(j,4))-imag(Y((k-n1+1),j))*cos(B2((k-n1+1),4)-B2(j,4))); end
Mismatch_power(k,1)=imag(B2((k-n1+1),1))-imag(B2((k-n1+1),2))-Qj; end
disp('【 当前迭代次数:】'); times
disp('【 失配功率:】'); Mismatch_power
Jacobian=zeros(l+m*2);%雅克比矩阵7*7
%————————————————————————————————————H for i=1:(n1-1) for j=1:(n1-1) if i==j P_H=0; for k=1:n1
P_H=P_H+B2(i,3)*B2(k,3)*(real(Y(i,k))*sin(B2(i,4)-B2(k,4))-imag(Y(i,k))*cos(B2(i,4)-B2(k,4))); end
Jacobian(i,i)=P_H-B2(i,3)*B2(i,3)*(0-imag(Y(i,i))); else
Jacobian(i,j)=0-B2(i,3)*B2(j,3)*(real(Y(i,j))*sin(B2(i,4)-B2(j,4))-imag(Y(i,j))*cos(B2(i,4)-B2(j,4))); end end end
%————————————————————————————————————N for i=1:(n1-1) for j=1:m if i==j P_N=0; for k=1:n1
P_N=P_N+B2(k,3)*(real(Y(i,k))*cos(B2(i,4)-B2(k,4))+imag(Y(i,k))*sin(B2(i,4)-B2(k,4))); end
Jacobian(i,n1-1+i)=0-B2(i,3)*real(Y(i,i))-P_N; else
Jacobian(i,n1-1+j)=0-B2(i,3)*(real(Y(i,j))*cos(B2(i,4)-B2(j,4))+imag(Y(i,j))*sin(B2(i,4)-B2(j,4))); end end end
%————————————————————————————————————K for i=1:m
for j=1:(n1-1) if i==j P_K=0; for k=1:n1
P_K=P_K+B2(i,3)*B2(k,3)*(real(Y(i,k))*cos(B2(i,4)-B2(k,4))+imag(Y(i,k))*sin(B2(i,4)-B2(k,4))); end
Jacobian(n1-1+i,i)=0+B2(i,3)*B2(i,3)*real(Y(i,i))-P_K; else
Jacobian(n1-1+i,j)=B2(i,3)*B2(j,3)*(real(Y(i,j))*cos(B2(i,4)-B2(j,4))+imag(Y(i,j))*sin(B2(i,4)-B2(j,4))); end end end
%————————————————————————————————————L for i=1:m for j=1:m if i==j P_L=0; for k=1:n1
P_L=P_L+B2(k,3)*(real(Y(i,k))*sin(B2(i,4)-B2(k,4))-imag(Y(i,k))*cos(B
2(i,4)-B2(k,4))); end
Jacobian(n1-1+i,n1-1+i)=0-P_L+B2(i,3)*imag(Y(i,i)); else
Jacobian(n1-1+i,n1-1+j)=0-B2(i,3)*(real(Y(i,j))*sin(B2(i,4)-B2(j,4))-imag(Y(i,j))*cos(B2(i,4)-B2(j,4))); end end end
S=zeros(l+m*2,1); %初始化电压角度变化量 S=inv(Jacobian)*(0-Mismatch_power); %求解修正方程 S=(Jacobian)\\(0-Mismatch_power); %求解修正方程 for i=1:(n1-1) %角度初值加变化量 B2(i,4)=B2(i,4)+S(i,1); end
for i=1:m %电压初值加变化量 B2(i,3)=B2(i,3)+S(n1-1+i,1); end
disp('【 雅克比矩阵:】'); Jacobian %显示雅克比矩阵 % S=inv(Jacobian) times=times+1; end
times=times-1;
disp('【 共计迭代次数:】'); times %显示迭代次数 U_It=zeros(n1,1); %初始化电压向量 for i=1:n1
U_It(i,1)=B2(i,3)*cos(B2(i,4))+B2(i,3)*sin(B2(i,4))*1j; end
angle_It=zeros(n1,1); %将电压角度的弧度值转为角度值 for i=1:n1
angle_It(i,1)=B2(i,4)*180/pi; end
Node_S_It=U_It.*(conj(Y)*conj(U_It)); %求解节点功率 disp('【 迭代收敛后各节点的电压幅值:】');
Node_U_It=abs(U_It) %显示迭代收敛后各节点的电压幅值 disp('【 迭代收敛后各节点的电压角度:】'); angle_It %显示迭代收敛后各节点的电压角度 disp('【 迭代收敛后各节点的功率:】'); Node_S_It %显示迭代收敛后各节点的功率 Branch_It=zeros(n,10); for i=1:n;
if B1(i,6)==0; %不带变压器支路 m=B1(i,1); %得到支路号 n=B1(i,2);
Branch_It(i,1)=m; %显示支路号 Branch_It(i,2)=n;
a=U_It(m,1)*(conj(U_It(m,1))*conj(B1(i,4))*0.5+(conj(U_It(m,1))-conj(U_It(n,1)))/conj(B1(i,3)));
Branch_It(i,3)=real(a); %显示Pij
Branch_It(i,4)=imag(a); %显示Qij
b=U_It(m,1)*B1(i,4)*0.5+(U_It(m,1)-U_It(n,1))/B1(i,3); Branch_It(i,5)=sqrt(real(b)^2+imag(b)^2); %显示Iij
c=U_It(n,1)*(conj(U_It(n,1))*conj(B1(i,4))*0.5+(conj(U_It(n,1))-conj(U_It(m,1)))/conj(B1(i,3)));
Branch_It(i,6)=real(c); %显示Pji Branch_It(i,7)=imag(c); %显示Qji
d=U_It(n,1)*B1(i,4)*0.5+(U_It(n,1)-U_It(m,1))/B1(i,3); Branch_It(i,8)=sqrt(real(d)^2+imag(d)^2); %显示Iji e=a+c;
Branch_It(i,9)=real(e); %显示线路损耗有功分量
Branch_It(i,10)=imag(e); %显示线路损耗无功分量
else %带变压器支路(同以上内容) m=B1(i,1); n=B1(i,2); Branch_It(i,1)=m; Branch_It(i,2)=n;
a=U_It(m,1)*(conj(U_It(m,1))/conj(B1(i,3))-conj(U_It(n,1))*conj(1/(B1(i,5)*B1(i,3))));
Branch_It(i,3)=real(a); Branch_It(i,4)=imag(a);
b=U_It(m,1)*(B1(i,5)-1)/B1(i,3)/B1(i,5)+(U_It(m,1)-U_It(n,1))/(B1(i,5)*B1(i,3));
Branch_It(i,5)=sqrt(real(b)^2+imag(b)^2);
c=U_It(n,1)*(conj(U_It(n,1))/(conj(B1(i,5)*B1(i,5)*B1(i,3)))-conj(U_It(m,1))*conj(1/(B1(i,5)*B1(i,3)))); Branch_It(i,6)=real(c); Branch_It(i,7)=imag(c);
相关推荐: