潮流计算报告记录.docx
《潮流计算报告记录.docx》由会员分享,可在线阅读,更多相关《潮流计算报告记录.docx(30页珍藏版)》请在冰豆网上搜索。
潮流计算报告记录
潮流计算报告记录
————————————————————————————————作者:
————————————————————————————————日期:
一、系统结构图:
二、网络参数:
1、支路参数:
网络类型
支路
编号
电压
等级
(kV)
装机容量
(MW)
导线的技术参数
(Ω)
(Ω)
()
环
网
1-2
220
100
13.6
125.5
67.85
1-3
8.321
130.5
52.24
3-5
10.2
128.8
74.99
2-3
8.5
105.4
28.36
1-4
7.579
129.6
51.45
4-5
13.84
125.31
2.78
辐
射
网
1-2
——
——
2
4
——
2-3
3
6
3-4
4
8
2-5
1
2
5-6
4
4
2、节点参数:
节点类型
节点编号
发电功率(MW)
负荷视在功率
环
网
1
0
未知(平衡节点)
2
100
0(PV节点)
3
0
15+9.4i
4
0
27+6i
5
0
35.5+25.5i
辐
射
网
1
0
未知(平衡节点)
2
0
4+2i
3
0
6+3.2i
4
0
3+1.44i
5
0
4+3.2i
6
0
2+1.1i
三、潮流计算流程图:
四、matlab程序:
clear;
Un=input('请输入Un:
');%输入所需的额定电压
PQ=[
%节点电压有功无功
Un00
Un42
Un63.2
Un31.44
Un43.2
Un21.1
];
FT=[
%首端末端
43
32
65
52
21
];
RX=[
%RX
48
36
44
12
24
];
NN=size(PQ,1);%节点数
NB=size(FT,1);%支路数数
V=PQ(:
1);%V初始电压相量
maxd=1
k=1
whilemaxd>0.0001
k=k+1;
PQ2=PQ;%每一次迭代各节点的注入有功和无功相同
PL=0.0;
fori=1:
NB
kf=FT(i,1);%前推始节点号
kt=FT(i,2);%前推终节点号
x=(PQ2(kf,2)^2+PQ2(kf,3)^2)/V(kf)/V(kf);%计算沿线电流/平方A
losss(i,1)=RX(i,1)*x;%计算线路有功损耗/MW
losss(i,2)=RX(i,2)*x;%计算线路无功损耗/MW
PQ1(i,1)=PQ2(kf,2)+RX(i,1)*x;%计算支路首端有功/MWRX(i,1)*R
PQ1(i,2)=PQ2(kf,3)+RX(i,2)*x;%计算沿支路的无功/MWRX(i,2)*X
PQ2(kt,2)=PQ2(kt,2)+PQ1(i,1);%用PQ1去修正支路末端节点的有功P单位MW
PQ2(kt,3)=PQ2(kt,3)+PQ1(i,2);%用PQ1去修正支路末端节点的有功Q单位Mvar
end
angle
(1)=0.0;
fori=NB:
-1:
1
kf=FT(i,2);%回代始节点号
kt=FT(i,1);%回代终节点号
dv1=(PQ1(i,1)*RX(i,1)+PQ1(i,2)*RX(i,2))/V(kf);%计算支路电压损耗的纵分量dv1
dv2=(PQ1(i,1)*RX(i,2)-PQ1(i,2)*RX(i,1))/V(kf);%计算支路电压损耗的横分量dv2
V2(kt)=sqrt((V(kf)-dv1)^2+dv2^2);%计算支路末端电压/kV
angle(kt)=angle(kf)+atand(dv2/(V(kf)-dv1));%计算支路
end
maxd=abs(V2
(2)-V
(2));
V2
(1)=V
(1);
fori=3:
1:
NN
ifabs(V2(i)-V(i))>maxd;
maxd=abs(V2(i)-V(i));
end
end
fullloss(1,1)=0;%计算线路总损耗
fullloss(1,2)=0;
finalPQ=max(PQ1);
fori=1:
NB
fullloss(1,1)=fullloss(1,1)+losss(i,1);
fullloss(1,2)=fullloss(1,2)+losss(i,2);
end
disp('辐射网迭代次数:
')
k
disp('辐射网系统电压差精度:
')
maxd
disp('辐射网系统末端节点有功和无功:
')
finalPQ%潮流分布即支路首端潮流MVA
disp('辐射网系统总功率损耗:
')
fullloss%线路总损耗MVA
disp('辐射网系统各支路功率损耗:
')
losss%各支路损耗MVA
disp('辐射网系统各节点电压幅值:
')
V=V2%节点电压模计算结果kV
disp('辐射网系统各节点电压相角:
')
angle%节点电压角度计算结果单位度
end
clc
disp('辐射网迭代次数:
')
k
disp('辐射网系统电压差精度:
')
maxd
disp('辐射网系统末端节点有功和无功/MVA:
')
FinPQ=finalPQ(1,1)+finalPQ(1,2)*j%潮流分布即支路首端潮流MVA
disp('辐射网系统总功率损耗/MVA:
')
Fulloss=fullloss(1,1)+fullloss(1,2)*j%线路总损耗MVA
disp('辐射网系统各支路功率损耗/MVA:
')
for(a=1:
5)
LOSS=losss(a,1)+losss(a,2)*j%各支路损耗MVA
end
disp('辐射网系统各节点电压幅值/KV:
')
V=V2%节点电压模计算结果kV
disp('辐射网系统各节点电压相角:
')
angle%节点电压角度计算结果单位度
n=5;%input('节点数');
nl=6;%input('支路数');
isb=1;%input('平衡母线节点号');
pr=0.000001;%input('误差精度:
pr=');
B1=[1,2,13.6+125.5i,0.00006785i,1,0;
1,3,8.321+130.5i,0.00005224i,1,0;
3,5,10.2+128.8i,0.00007499i,1,0;
2,3,8.5+105.4i,0.00002836i,1,0;
1,4,7.579+129.6i,0.00005145i,1,0;
4,5,13.84+125.31i,0.0000278i,1,0];%input('由支路参数形成的矩阵');
B2=[-FinPQ,0,Un,0,0,1;
100,0,Un,Un,0,3;
0,15+9.4i,Un,0,0,2;
0,27+6i,Un,0,0,2;
0,35.5+25.5i,Un,0,0,2];%input('各节点参数形成的矩阵');
Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);%对各矩阵置零
%-------修改部分------------
ym=1;
SB=100;UB=Un;%定义视在功率和电压基值
ifym~=0%若不是标幺值
YB=SB./UB./UB;%定义导纳标幺值
BB1=B1;
BB2=B2;
fori=1:
nl
B1(i,3)=B1(i,3)*YB;%切换为阻抗标幺值
B1(i,4)=B1(i,4)./YB;%切换为导纳标幺值
end
disp('支路矩阵B1=');
sparseB1=sparse(B1);
disp(sparseB1)%输出标幺值稀疏矩阵B1
disp('-----------------------------------------------------');
fori=1:
n
B2(i,1)=B2(i,1)./SB;%切换为视在功率标幺值
B2(i,2)=B2(i,2)./SB;%切换为视在功率标幺值
B2(i,3)=B2(i,3)./UB;%切换为电压标幺值
B2(i,4)=B2(i,4)./UB;%切换为电压标幺值
B2(i,5)=B2(i,5)./SB;%切换为视在功率标幺值
end
disp('节点矩阵B2=');
sparseB2=sparse(B2);
disp(sparseB2)%输出标幺值稀疏矩阵B2
end
disp('-----------------------------------------------------');
%%%---------------------------------------------------
fori=1:
nl%支路数
ifB1(i,6)==0%左节点处于1侧
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));%求解非对角元导纳
Y(q,p)=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=');
sparseY=sparse(Y);
disp(sparseY)%输出导纳稀疏矩阵
disp('-----------------------------------------------------');
%----------------------------------------------------------
G=real(Y);B=imag(Y);%分解出导纳阵的实部和虚部
fori=1:
n
e(i)=real(B2(i,3));%给定i节点初始电压的实部
f(i)=imag(B2(i,3));%给定i节点初始电压的虚部
V(i)=B2(i,4);%PV节点电压给定模值
end
fori=1:
n%给定各节点注入功率
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和不满足精度要求的节点个数IT2
whileIT2~=0%仍有不满足精度要求的节点
IT2=0;a=a+1;%IT2置零
fori=1:
n
ifi~=isb%非平衡节点
C(i)=0;D(i)=0;
forj1=1:
n
C(i)=C(i)+G(i,j1)*e(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)
%求P',Q'
V2=e(i)^2+f(i)^2;%电压模平方
%=========以下针对非PV节点来求取功率差及Jacobi矩阵元素=========
ifB2(i,6)~=3%非PV节点
DP=P(i)-P1;%节点有功功率差
DQ=Q(i)-Q1;%节点无功功率差
%===============以上为除平衡节点外其它节点的功率计算=================
%=================求取Jacobi矩阵===================
forj1=1:
n
ifj1~=isb&j1~=i%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);%X1=N(i,j1)=dDP(i)/de(j1)
X2=B(i,j1)*e(i)-G(i,j1)*f(i);%X2=H(i,j1)=dDP(i)/df(j1)
X3=X2;%X2=H(i,j1)=dDP(i)/df(j1)=X3=M(i,j1)=dDQ(i)/de(j1)
X4=-X1;%X1=N(i,j1)=dDP(i)/de(j1)=-X4=-L(i,j1)=-dDQ(i)/df(j1)
p=2*i-1;q=2*j1-1;
J(p,q)=X3;J(p,N)=DQ;m=p+1;%扩展列△Q
J(m,q)=X1;J(m,N)=DP;q=q+1;%扩展列△P
J(p,q)=X4;J(m,q)=X2;%对Jacobi矩阵赋值
elseifj1==i&j1~=isb%非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);%X1=N(i,i)=dDP(i)/de(i)
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);%X2=H(i,i)=dDP(i)/df(i)
X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);%X3=M(i,i)=dDQ(i)/de(i)
X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);%X4=L(i,i)=dDQ(i)/df(i)
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;%对Jacobi矩阵赋值
end
end
else
%===============下面是针对PV节点来求取Jacobi矩阵的元素===========
DP=P(i)-P1;%PV节点有功误差
DV=V(i)^2-V2;%PV节点电压误差
forj1=1:
n
ifj1~=isb&j1~=i%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);%X1=N(i,j1)=dDP(i)/de(j1)
X2=B(i,j1)*e(i)-G(i,j1)*f(i);%X2=H(i,j1)=dDP(i)/df(j1)
X5=0;X6=0;%X5=R(i,j1)=X6=S(i,j1)=0
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;%扩展列△V
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;%扩展列△P
J(m,q)=X2;%对Jacobi矩阵赋值
elseifj1==i&j1~=isb%非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);%X1=N(i,i)=dDP(i)/de(i)
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);%X2=H(i,i)=dDP(i)/df(i)
X5=-2*e(i);%X5=R(i,i)=-2e(i)
X6=-2*f(i);%X6=F(i,i)=-2f(i)
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;%扩展列△V
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;%扩展列△P
J(m,q)=X2;%对Jacobi矩阵赋值
end
end
end
end
end
%=========以上为求雅可比矩阵的各个元素=====================
fork=3:
N0%N0=2*n(从第三行开始,第一、二行是平衡节点)
k1=k+1;N1=N;%N=N0+1即N=2*n+1扩展列△P、△Q
fork2=k1:
N1%扩展列△P、△Q
J(k,k2)=J(k,k2)./J(k,k);%非对角元规格化
end
J(k,k)=1;%对角元规格化
ifk~=3%不是第三行
%============================================================
k4=k-1;
fork3=3:
k4%用k3行从第三行开始到当前行前的k4行消去
fork2=k1:
N1%k3行后各行下三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算
end
J(k3,k)=0;
end
ifk==N0
break;
end
%==========================================
fork3=k1:
N0
fork2=k1:
N1
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算
end
J(k3,k)=0;
end
else
fork3=k1:
N0
fork2=k1:
N1
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算
end
J(k3,k)=0;
end
end
end
%====上面是用线性变换方式将Jacobi矩阵化成单位矩阵(利用线性代数求解电压实部与虚部)=====
fork=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
%------修改节点电压-----------
fork=3:
N0
DET=abs(J(k,N));
ifDET>=pr%电压偏差量是否满足要求
IT2=IT2+1;%不满足要求的节点数加1
end
end
ICT2(a)=IT2;
ICT1=ICT1+1;
end
%用高斯消去法解"w=-J*V"
disp('迭代次数');
disp(ICT1);
disp('没有达到精度要求的个数');
disp(ICT2);
disp('-----------------------------------------------------');
fork=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为(节点号从小到大排列):
');
sparseE=sparse(E);
disp(sparseE);
EE=E*UB;
disp('-----------------------------------------------------');
disp('各节点的实际电压EE为(节点号从小到大排列):
');
sparseEE=sparse(EE);
disp(sparseEE);
disp('-----------------------------------------------------');
disp('各节点的电压标幺值幅值V为(节点号从小到大排列):
');
sparseV=sparse(V);
disp(sparseV);
disp('-----------------------------------------------------');
VV=V*UB;
disp('各节点的电压幅值VV为(节点号从小到大排列):
');
sparseVV=sparse(VV);
disp(sparseVV);
disp('-----------------------------------------------------');
disp('各节点的电压相角为(节点号从小到大排列):
');
sparsesida=sparse(sida);
disp(sparsesida)
disp('-----------------------------------------------------');
forp=1:
n
C(p)=0;
forq=1:
n
C(p)=C(p)+conj(Y(p,q))*conj(E(q));%计算电流的共轭
end
S(p)=E(p)*C(p);%计算节点的视在功率
end
disp('各节点的功率标幺值S为(节点号从小到大排列):
');
sparseS=sparse(S);
disp(sparseS);
disp('-----------------------------------------------------');
disp('各节点的功率实际值SS为(节点号从小到大排列):
');
SS=S*SB;
sparseSS=sparse(SS);
disp(sparseSS);
disp('-----------------------------------------------------');
disp('各条支路的功率损耗S标幺值和实际值SS为(顺序支路参数矩阵顺序一致):
');
HDDS=0;
fori=1:
nl
p=B1(i,1);q=B1(i,2);
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(E(p)-E(q))*(conj(E(p))-conj(E(q)))*conj(1./(B1(i,3))))+E(q)*(conj(E(q))*conj(B1(i,4)./2));
ZF1=['S