%Q(4)=Q_Min;
%end
%下面可以做PV节点收敛判断
Sum_YU0=0;
Sum_YU1=0;
end
end
%节点注入无功,流入为正,流出为负
Qc2=Q
(2)+0.121-1.045^2*0.067;
Qc3=Q(3)+0.19-1.01^2*0.022;
%电压幅值和相角
angle_U=angle(U)*180/pi;
U=abs(U);
S_Line=zeros(5,5);
%计算平衡节点功率
S_BalanceNode=0;
forj=1:
1:
5
S_BalanceNode=S_BalanceNode+U
(1)*conj(Y(1,j)*U(j));
end
%下面由上面算出的电压值求线路的功率
%这里计算出来的线路功率的有功、无功
%fori=1:
1:
5
%forj=i:
1:
5
%ifi~=j
%S_Line(i,j)=U(i)*(conj(U(i))-conj(U(j)))*conj(y(i,j));
%end
%ifi==2
%%S_Line(2,j)=S_Line(2,j)+U
(2)*conj(0.067*1i);
%end
%ifi==3
%%S_Line(3,j)=S_Line(3,j)+U(3)*conj(0.022*1i);
%end
%end
%end
计算网络的潮流分布----Newton算法(直角坐标)
clear;clc;
%电稳书Page102例题3-5
%计算网络的潮流分布----Newton算法(直角坐标)
%其中节点1是平衡节点
%节点2、3是PV节点,其余是PQ节点
%如果节点有对地导纳支路
%需将对地导纳支路算到自导纳里面
%------------------------------------------------%
%输入原始数据,每条支路的导纳数值,包括自导和互导纳;
y=zeros(5,5);
y(1,2)=1/(0.0194+0.0592*1i);
y(1,5)=1/(0.054+0.223*1i);
y(2,3)=1/(0.04699+0.198*1i);
y(2,4)=1/(0.0581+0.1763*1i);
%由于电路网络的互易性,导纳矩阵为对称的矩阵
fori=1:
1:
5
forj=1:
1:
5
y(j,i)=y(i,j);
end
end
%节点导纳矩阵的形成
Y=zeros(5,5);
%求互导纳
fori=1:
1:
5
forj=1:
1:
5
ifi~=j
Y(i,j)=-y(i,j);
end
end
end
%求自导纳
fori=1:
1:
5
%这句话是说将y矩阵的第i行的所有元素相加,得到自导纳的值
Y(i,i)=sum(y(i,:
));
end
%上面求得的自导纳不包含该节点的对地导纳数值,需要加上
Y(2,2)=Y(2,2)+0.067*1i;
Y(3,3)=Y(3,3)+0.022*1i;
Y(4,4)=Y(4,4)+0.0187*1i;
Y(5,5)=Y(5,5)+0.0246*1i;
%导纳矩阵的实部和虚部
G=real(Y);
B=imag(Y);
%节点2、3需补偿的无功
Qc2=0;Qc3=0;
%原始节点功率
%这里电源功率为正,负荷功率为负
S
(1)=0;
S
(2)=-0.217-0.121*1i+Qc2*1i;
S(3)=-0.749-0.19*1i+Qc3*1i;
S(4)=-0.658+0.039*1i;
S(5)=-0.076-0.016*1i;
%节点功率的PQ
P=real(S);
Q=imag(S);
%下面是两个PV节点的无功初始值
Q
(2)=0;
Q(3)=0;
%给点电压初始值
e=[1.06,1.045,1.01,1,1];
f=[0,0,0,0,0];
U=e+f*1i;
delta_U=zeros(1,5);
delta_P=zeros(1,5);
delta_Q=zeros(1,5);
delta_PQV=ones(8,1);
Sum_GB1=0;Sum_GB2=0;
cont=0;
whilemax(delta_PQV>1e-6),
cont=cont+1;
%forcont=1:
1:
3
%下面开始计算delta_P/delta_Q/delta_U
fori=2:
1:
5
forj=1:
1:
5
Sum_GB1=Sum_GB1+(G(i,j)*e(j)-B(i,j)*f(j));
Sum_GB2=Sum_GB2+(G(i,j)*f(j)+B(i,j)*e(j));
end
delta_P(i)=P(i)-e(i)*Sum_GB1-f(i)*Sum_GB2;
ifi~=2&&i~=3%不为节点2,3则计算无功
delta_Q(i)=Q(i)-f(i)*Sum_GB1+e(i)*Sum_GB2;
end
ifi==2||i==3%这里计算delta_U的值,始终为零
delta_U(i)=U(i)^2-(e(i)^2+f(i)^2);
end
Sum_GB1=0;Sum_GB2=0;
end
%___________________________________%
%下面计算雅克比矩阵
J=zeros(8,8);
forii=2:
1:
5
i=ii-1;
forj=1:
1:
5
Sum_GB1=Sum_GB1+(G(ii,j)*e(j)-B(ii,j)*f(j));
Sum_GB2=Sum_GB2+(G(ii,j)*f(j)+B(ii,j)*e(j));
end
forjj=2:
1:
5
j=jj-1;
ifii~=2&&ii~=3%PQ节点
ifii==jj
J(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii);
J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);
J(2*i,2*i-1)=Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);
J(2*i,2*i)=-Sum_GB1+G(ii,ii)*e(ii)+B(ii,ii)*f(ii);
else
J(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii));
J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);
J(2*i,2*j-1)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);
J(2*i,2*j)=(G(ii,jj)*e(ii)+B(ii,jj)*f(ii));
end
else%PV节点
ifii==jj
J(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii);
J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii);
J(2*i,2*i-1)=-2*e(ii);
J(2*i,2*i)=-2*f(ii);
else
J(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii));
J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii);
J(2*i,2*j-1)=0;
J(2*i,2*j)=0;
end
end
end
Sum_GB1=0;Sum_GB2=0;
end
%在求解修正方程之前建议把delta_P和delta_Q,delta_U全部放在一个矩阵
delta_PQV=[delta_P
(2);delta_U
(2);delta_P(3);delta_U(3);delta_P(4);delta_Q(4);delta_P(5);delta_Q(5)];
%下面求解修正方程;注意矩阵运算时候的左除和右除的区别
delta_ef=-J\delta_PQV;
%下面修正各个节点的电压
fori=2:
1:
5
e(i)=e(i)+delta_ef(2*(i-1)-1);
f(i)=f(i)+delta_ef(2*(i-1));
end%到这里第一轮迭代完成
end
%电压幅值和相角
U=e+f*1i;
angle_U=angle(U)*180/pi;
%节点注入无功,流入为正,流出为负
Sum_YU=0;
fori=2:
1:
3
forj=1:
1:
5
Sum_YU=Sum_YU+Y(i,j)*U(j);
end
Q(i)=imag(U(i)*conj(Sum_YU));
Sum_YU=0;
end
Qc2=Q
(2)+0.121-1.045^2*0.067;
Qc3=Q(3)+0.19-1.01^2*0.022;
U=abs(U);
disp(['Iterationtimes:
'num2str(cont)]);
%显示最终的迭代次数
牛顿算法求解潮流(极坐标):
clear;clc;
%牛顿算法求解潮流(极坐标)
%计算网络的潮流分布
%其中节点5是平衡节点
%节点1、2、3是PQ节点,节点4是PV节点
%如果节点有对地导纳支路
%需将对地导纳支路算到自导纳里面
%------------------------------------------------%
%输入原始数据,每条支路的导纳数值,包括自导和互导纳;
Y=[0.8381-3.7899*1i,-0.4044+1.6203*1i,0,0,-0.4337+2.2586*1i;...
-0.4044+1.6203*1i,0.7769-3.3970*1i,-0.3726+1.8557*1i,0,0;...
0,-0.3726+1.8557*1i,1.1428-7.0210*1i,-0.5224+4.1792*1i,-0.2739+1.2670*1i;...
0,0,-0.5224+4.1792*1i,0.5499-4.3591*1i,0;...
-0.4337+2.2586*1i,0,-0.2739+1.2670*1i,0,0.7077-3.4437*1i];
%导纳矩阵的实部和虚部
G=real(Y);
B=imag(Y);
%给点电压初始值
U=[1,1,1,1,1.05];
angle_U=[0,0,0,0,0];
%fori=1:
1:
5
%U(i)=U_abs(i)*cos(angle_U(i))+U_abs(i)*sin(angle_U(i))*1i;
%end
%原始节点功率
%这里电源功率为正,负荷功率为负
%下面给点PQPV节点功率值
S=[-0.22-0.14*1i,-0.18-0.09*1i,-0.27-0.13*1i,0.35,0];
%节点功率的PQ
P=real(S);
Q=imag(S);
%下面是PV节点的无功初始值
Q(4)=0;
delta_P=zeros(1,5);
delta_Q=zeros(1,5);
%delta_angleU=zeros(1,4);
%delta_absU=zeros(1,4);
delta_PQ=ones(8,1);
Sum_GB1=0;Sum_GB2=0;
cont=0;
%最外层循环,cont代表迭代的次数,这里可以用约束条件来代替
%forcont=1:
1:
4
whilemax(delta_PQ)>1e-6,
%下面计算delta_P/delta_Q/delta_U
cont=cont+1;
fori=1:
1:
4
forj=1:
1:
5
Sum_GB1=Sum_GB1+U(j)*(G(i,j)*cos(angle_U(i)-angle_U(j))+B(i,j)*sin(angle_U(i)-angle_U(j)));
Sum_GB2=Sum_GB2+U(j)*(G(i,j)*sin(angle_U(i)-angle_U(j))-B(i,j)*cos(angle_U(i)-angle_U(j)));
end
delta_P(i)=P(i)-U(i)*Sum_GB1;
ifi~=4%不为节点四则计算无功
delta_Q(i)=Q(i)-U(i)*Sum_GB2;
end
Sum_GB1=0;Sum_GB2=0;
end
%_______________________________________________________%
%下面计算雅克比矩阵
J=zeros(7,7);
forii=1:
1:
4
forjj=1:
1:
4
ifii~=4%PQ节点
ifii==jj
J(2*ii-1,2*ii-1)=U(ii)^2*B(ii,ii)+Q(ii);
J(2*ii-1,2*ii)=-U(ii)^2*G(ii,ii)-P(ii);
J(2*ii,2*ii-1)=U(ii)^2*G(ii,ii)-P(ii);
J(2*ii,2*ii)=U(ii)^2*B(ii,ii)-Q(ii);
else
J(2*ii-1,2*jj-1)=-U(ii)*U(jj)*(G(ii,jj)*sin(angle_U(ii)-angle_U(jj))-B(ii,jj)*cos(angle_U(ii)-angle_U(jj)));
J(2*ii-1,2*jj)=-U(ii)*U(jj)*(G(ii,jj)*cos(angle_U(ii)-angle_U(jj))+B(ii,jj)*sin(angle_U(ii)-angle_U(jj)));
J(2*ii,2*jj-1)=U(ii)*U(jj)*(G(ii,jj)*cos(angle_U(ii)-angle_U(jj))+B(ii,jj)*sin(angle_U(ii)-angle_U(jj)));
J(2*ii,2*jj)=-U(ii)*U(jj)*(G(ii,jj)*sin(angle_U(ii)-angle_U(jj))-B(ii,jj)*cos(angle_U(ii)-angle_U(jj)));
end
else%PV节点
ifii==jj
J(2*ii-1,2*ii-1)=U(ii)^2*B(ii,ii)+Q(ii);
J(2*ii-1,2*ii)=-U(ii)^2*G(ii,ii)-P(ii);
else
J(2*ii-1,2*jj-1)=-U(ii)*U(jj)*(G(ii,jj)*sin(angle_U(ii)-angle_U(jj))-B(ii,jj)*cos(angle_U(ii)-angle_U(jj)));
J(2*ii-1,2*jj)=-U(ii)*U(jj)*(G(ii,jj)*cos(angle_U(ii)-angle_U(jj))+B(ii,jj)*sin(angle_U(ii)-angle_U(jj)));
end
end
end
end
%在求解修正方程之前建议把delta_ef和delta_ef全部放在一个矩阵
delta_PQ=[delta_P
(1);delta_Q
(1);delta_P
(2);delta_Q
(2);delta_P(3);delta_Q(3);delta_P(4)];
%下面求解修正方程;注意矩阵运算时候的左除和右除的区别
J=J(1:
7,1:
7);
delta_ef=-J\delta_PQ;
%下面修正各个节点的电压
fori=1:
1:
4
ifi~=4
U(i)=U(i)+delta_ef(2*i)*U(i);
end
angle_U(i)=angle_U(i)+delta_ef(2*i-1);
end%到这里第一轮迭代完成
end
%下面显示出满足条件后的迭代的次数
disp(['Iterationtimes:
'num2str(cont)]);
%下面计算平衡节点5的功率PQ
forj=1:
1:
5
Sum_GB1=Sum_GB1+U(j)*(G(5,j)*cos(angle_U(5)-angle_U(j))+B(5,j)*sin(angle_U(5)-angle_U(j)));
Sum_GB2=Sum_GB2+U(j)*(G(5,j)*sin(angle_U(5)-angle_U(j))-B(5,j)*cos(angle_U(5)-angle_U(j)));
end
P(5)=U(5)*Sum_GB1;
Q(5)=U(5)*Sum_GB2;
%下面将