潮流计算matlab程序
- 格式:docx
- 大小:17.26 KB
- 文档页数:3
clear;
%各节点参数:节点编号,类型,电压幅值,电压相位,注入有功,注入无功
%类型:1=PQ节点,2=PV节点,3=平衡节点
%本程序中将最后一个节点设为平衡节点
R_1=[1 1 1.0 0 0.2 0.2j;
2 1 1.0 0 -0.45 -0.15j;
3 1 1.0 0 -0.45 -0.05j;
4 1 1.0 0 -0.6 -0.1j;
5 3 1.0 0 0 0];
%支路号 首端节点 末端节点 支路导纳
R_2=[1 5 2 1.25-3.75j;
2 2 3 10.00-30.00j;
3 3 4 1.25-3.75j;
4 1 4 2.50-7.50j;
5 1 5 5.00-15.00j;
6 1 2 1.667-5.00j];
n=5;L=6;%需要改变的到此为止
i=0;j=0;a=0;precision=1;k=0;
Y=zeros(n,n);u=zeros(1,n);delt=zeros(1,n);P=zeros(1,n);Q=zeros(1,n);
G=[];B=[];PP=[];uu=[];U=[];dp=[];dq=[];
for a=1:L
i=R_2(a,2);
j=R_2(a,3);
Y(i,j)=-R_2(a,4);
Y(j,i)=Y(i,j);
end
for a=1:n
for b=1:n
if a~=b
Y(a,a)=Y(a,a)+Y(a,b);
end
end
end
for i=1:n
for j=1:n
if i==j
Y(i,j)=-Y(i,j);
end
end
end
Y %形成导纳矩阵
for i=1:n
for j=1:n
G(i,j)=real(Y(i,j)); B(i,j)=imag(Y(i,j));
end
end
for a=1:n
u(a)=R_1(a,3);
P(a)=R_1(a,5);
Q(a)=R_1(a,6);
delt(a)=R_1(a,4);
end
while precision>0.0001 %判断是否满足精度要求
for a=1:n-1
for b=1:n
pt(b)=u(a)*u(b)*(G(a,b)*cos(delt(a)-delt(b))+B(a,b)*sin(delt(a)-delt(b)));
qt(b)=u(a)*u(b)*(G(a,b)*sin(delt(a)-delt(b))-B(a,b)*cos(delt(a)-delt(b)));
end
pt,qt
pi(a)=sum(pt);qi(a)=sum(qt); %计算PQ节点的注入功率
dp(a)=P(a)-pi(a);
dq(a)=Q(a)-qi(a); %计算PQ节点的功率不平衡量
end
for a=1:n-1
for b=1:n-1
if a==b
H(a,a)=-qi(a)-u(a)^2*B(a,a); N(a,a)=pi(a)+u(a)^2*G(a,a);
J(a,a)=pi(a)-u(a)^2*G(a,a); L(a,a)=qi(a)-u(a)^2*B(a,a);
JJ(2*a-1,2*a-1)=H(a,a); JJ(2*a-1,2*a)=N(a,a);
JJ(2*a,2*a-1)=J(a,a); JJ(2*a,2*a)=L(a,a);
else
H(a,b)=u(a)*u(b)*(G(a,b)*sin(delt(a)-delt(b))-B(a,b)*cos(delt(a)-delt(b)));
J(a,b)=-u(a)*u(b)*(G(a,b)*cos(delt(a)-delt(b))+B(a,b)*sin(delt(a)-delt(b)));
N(a,b)=-J(a,b);L(a,b)=H(a,b);
JJ(2*a-1,2*b-1)=H(a,b);JJ(2*a-1,2*b)=N(a,b);
JJ(2*a,2*b-1)=J(a,b); JJ(2*a,2*b)=L(a,b);
end
end
end %计算jocbi各项,并放入统一矩阵JJ中,对JJ下标统一编号
JJ
for a=1:n-1
PP(2*a-1)=dp(a);
PP(2*a)=dq(a);
end %按统一矩阵形成功率不平衡
uu=inv(JJ)*PP';precision=max(abs(uu)); %判断是否收敛
for b=1:n-1
delt(b)=delt(b)+uu(2*b-1); u(b)=u(b)+uu(2*b)*u(b); %将结果分解为电压幅值和角度
end %求解修正方程,得电压幅值变化量(标幺值)和角度变化量
k=k+1;
end
for a=1:n
U(a)=u(a)*(cos(delt(a))+j*sin(delt(a)));
end
for b=1:n
I(b)=Y(n,b)*U(b);%求平衡节点的注入电流
end
S5=U(n)*sum(conj(I))%求平衡节点的注入功率
for a=1:n
for b=1:n
S(a,b)=U(a)*(conj(U(a))-conj(U(b)))*conj(-Y(a,b));
end
end %求节点i,j节点之间的功率,方向为由i指向j,
S %显示支路功率