电力系统分析PQ分解法潮流计算.docx
- 文档编号:3894814
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:14
- 大小:410.49KB
电力系统分析PQ分解法潮流计算.docx
《电力系统分析PQ分解法潮流计算.docx》由会员分享,可在线阅读,更多相关《电力系统分析PQ分解法潮流计算.docx(14页珍藏版)》请在冰豆网上搜索。
电力系统分析PQ分解法潮流计算
电力系统分析程序设计报告
P-Q分解法潮流计算
学院电气工程
专业班级
学生姓名
学号
指导教师房大中
提交日期2014年12月15日
程序设计
主函数
Sbase_MVA=100.
fid=fopen('Nodedata.txt');
N=textscan(fid,'%s%u%d%f%f%f%f%f%f')
fclose(fid);
busnumber=size(N{1},1)
fori=1:
busnumber
Bus(i).name=N{1}(i);
Bus(i).type=N{2}(i);
Bus(i).no=i;
Bus(i).Base_KV=N{3}(i);
Bus(i).PG=N{4}(i);
Bus(i).QG=N{5}(i);
Bus(i).PL=N{6}(i);
Bus(i).QL=N{7}(i);
Bus(i).pb=N{8}(i);
Bus(i).V=1.0;
Bus(i).angle=0;
end
fid=fopen('Aclinedata.txt');
A=textscan(fid,'%s%s%f%f%f%f')
fclose(fid);
aclinenumber=size(A{1},1)
fori=1:
aclinenumber
Acline(i).fbname=A{1}(i);
Acline(i).tbname=A{2}(i);
Acline(i).Base_KV=A{3}(i);
Acline(i).R=A{4}(i);
Acline(i).X=A{5}(i);
Acline(i).hB=A{6}(i);
fork=1:
busnumber
ifstrcmp(Acline(i).fbname,Bus(k).name)
Acline(i).fbno=Bus(k).no;
end
ifstrcmp(Acline(i).tbname,Bus(k).name)
Acline(i).tbno=Bus(k).no;
end
end
end
fid=fopen('Transdata.txt');
T=textscan(fid,'%s%f%f%s%f%f%f%f')
fclose(fid);
tansnumber=size(T{1},1)
fori=1:
tansnumber
Trans(i).fbname=T{1}(i);
Trans(i).fbBase_KV=T{2}(i);
Trans(i).fbrated_KV=T{3}(i);
Trans(i).tbname=T{4}(i);
Trans(i).tbBase_KV=T{5}(i);
Trans(i).tbrated_KV=T{6}(i);
Trans(i).R=T{7}(i);
Trans(i).X=T{8}(i);
fork=1:
busnumber
ifstrcmp(Trans(i).fbname,Bus(k).name)
Trans(i).fbno=Bus(k).no;
end
ifstrcmp(Trans(i).tbname,Bus(k).name)
Trans(i).tbno=Bus(k).no;
end
end
Trans(i).k=Trans(i).tbrated_KV*Trans(i).fbBase_KV/Trans(i).fbrated_KV/Trans(i).tbBase_KV;
tempx=Trans(i).fbrated_KV^2/Trans(i).fbBase_KV^2;
Trans(i).X=tempx*Trans(i).X;
Trans(i).R=tempx*Trans(i).R;
end
%N=0
%Trans
(1)
%Trans
(2)
%forY=G+jBmatrix
[G,B,B2]=FormYmatrix(Bus,busnumber,Acline,aclinenumber,Trans,tansnumber);
%B:
=B';B2:
=B"
dlmwrite('Gmatrix.txt',G,'delimiter','\t','precision',6);
dlmwrite('Bmatrix.txt',B,'delimiter','\t','precision',6);
G
B
B2
pause
[JP,JQ]=FormJPQmatrix(Bus,B,B2,busnumber);
JP
iJP=-inv(JP)
JQ
iJQ=-inv(JQ)
pause
%maxiteration=0
fori=1:
busnumber
NodeV(i)=Bus(i).V;
Nodea(i)=Bus(i).angle;
VX(i)=Bus(i).V*cos(Bus(i).angle);
VY(i)=Bus(i).V*sin(Bus(i).angle);
dQGQL(i)=Bus(i).QG-Bus(i).QL;
dPGPL(i)=Bus(i).PG-Bus(i).PL;
end
NodeV=NodeV'
Nodea=Nodea'
%VX=VX'
%VY=VY'
dQGQL=dQGQL'
dPGPL=dPGPL'
pause
%fornointer=1:
10
maxdP=1.;
maxdQ=1.;
epsilon=0.000001;
noiteration=0;
while(maxdP>epsilon)&(maxdP>epsilon)
[deltaP,deltaQ,maxdP,maxdQ]=FormdPQvector(Bus,NodeV,Nodea,dQGQL,dPGPL,B,G,busnumber);
deltaP;
deltaQ;
maxdP;
maxdQ;
da=iJP*deltaP;
dV=iJQ*deltaQ;
Nodea=Nodea+da;
NodeV=NodeV+dV;
noiteration=noiteration+1;
ifnoiteration>20
break
end
end
fori=1:
busnumber
Bus(i).V=NodeV(i);
NodeV(i)=NodeV(i)*Bus(i).Base_KV;
Bus(i).angle=Nodea(i);
Nodea(i)=Nodea(i)*180/pi;
end
noiteration
Nodea=Nodea'
NodeV=NodeV'
Clear
子函数
%生成G、B矩阵
function[G,B,X]=FormYmatrix(Bus,busnumber,Acline,aclinenumber,Trans,tansnumber)
Y=zeros(busnumber);
X=zeros(busnumber);
fori=1:
busnumber
Y(i,i)=Y(i,i)+Bus(i).pb*j;
end
fori=1:
aclinenumber
f=Acline(i).fbno;
t=Acline(i).tbno;
Y(f,f)=Y(f,f)+Acline(i).hB*j+1/(Acline(i).R+Acline(i).X*j);
Y(t,t)=Y(t,t)+Acline(i).hB*j+1/(Acline(i).R+Acline(i).X*j);
Y(f,t)=Y(f,t)-1/(Acline(i).R+Acline(i).X*j);
Y(t,f)=Y(t,f)-1/(Acline(i).R+Acline(i).X*j);
X(f,f)=X(f,f)-1/Acline(i).X;
X(t,t)=X(t,t)-1/Acline(i).X;
X(f,t)=1/Acline(i).X;
X(t,f)=1/Acline(i).X;
end
fori=1:
tansnumber
f=Trans(i).fbno;
t=Trans(i).tbno;
Y(f,f)=Y(f,f)+1/(Trans(i).R+Trans(i).X*j);
Y(t,t)=Y(t,t)+1/(Trans(i).R+Trans(i).X*j)/Trans(i).k^2;
Y(f,t)=Y(f,t)-1/(Trans(i).R+Trans(i).X*j)/Trans(i).k;
Y(t,f)=Y(t,f)-1/(Trans(i).R+Trans(i).X*j)/Trans(i).k;
X(f,f)=X(f,f)-1/Trans(i).X;
X(t,t)=X(t,t)-1/Trans(i).X;
X(f,t)=1/Trans(i).X;
X(t,f)=1/Trans(i).X;
end
G=real(Y);
B=imag(Y);
end
%生成JP、JQ矩阵
function[JP,JQ]=FormJPQmatrix(Bus,B,B2,busnumber)
JP=B;
JQ=B2;
fori=1:
busnumber
ifBus(i).type==1
fork=1:
busnumber
JQ(i,k)=0.;
JQ(k,i)=0.;
JP(i,k)=0.;
JP(k,i)=0.;
end
JQ(i,i)=1.;
JP(i,i)=1.;
end
ifBus(i).type==3
fork=1:
busnumber
JQ(i,k)=0.;
JQ(k,i)=0.;
end
JQ(i,i)=1.;
end
end
end
%计算偏节点PQ差量
function[deltaP,deltaQ,maxdP,maxdQ]=FormdPQvector(Bus,NodeV,Nodea,dQGQL,dPGPL,B,G,busnumber)
deltaQ=dQGQL;
deltaP=dPGPL;
maxdP=0.;
maxdQ=0.;
fori=1:
busnumber
ifBus(i).type==1
deltaQ(i)=0.;
deltaP(i)=0.;
end
ifBus(i).type==3
deltaQ(i)=0.;
%y1=0;
%y2=0;
y3=0;
fork=1:
busnumber
if(B(i,k)~=0|G(i,k)~=0)
%y1=y1+(G(i,k)*VX(k)-B(i,k)*VY(k));
%y2=y2+(G(i,k)*VY(k)+B(i,k)*VX(k));
y3=y3+NodeV(k)*(G(i,k)*cos(Nodea(i)-Nodea(k))+B(i,k)*sin(Nodea(i)-Nodea(k)));
end
end
deltaP(i)=deltaP(i)-y3*NodeV(i);
%deltaP2(i)=(deltaP2(i)-(y1*VX(i)+y2*VY(i)))/Bus(i).V;
end
ifBus(i).type==2
%y1=0;
%y2=0;
y3=0;
y4=0;
fork=1:
busnumber
if(B(i,k)~=0|G(i,k)~=0)
%y1=y1+(G(i,k)*VX(k)-B(i,k)*VY(k));
%y2=y2+(G(i,k)*VY(k)+B(i,k)*VX(k));
y3=y3+NodeV(k)*(G(i,k)*cos(Nodea(i)-Nodea(k))+B(i,k)*sin(Nodea(i)-Nodea(k)));
y4=y4+NodeV(k)*(G(i,k)*sin(Nodea(i)-Nodea(k))-B(i,k)*cos(Nodea(i)-Nodea(k)));
end
end
deltaP(i)=deltaP(i)-y3*NodeV(i);
%deltaP2(i)=(deltaP2(i)-(y1*VX(i)+y2*VY(i)))/Bus(i).V;
deltaQ(i)=deltaQ(i)-y4*NodeV(i);
%deltaQ2(i)=(deltaQ2(i)-(y1*VY(i)-y2*VX(i)))/Bus(i).V;
end
ifmaxdP maxdP=abs(deltaP(i)); end ifmaxdQ maxdQ=abs(deltaQ(i)); end deltaP(i)=deltaP(i)/NodeV(i); deltaQ(i)=deltaQ(i)/NodeV(i); end end 输入数据 节点数据(Nodedata.txt) bus1118.0.0.0.0.0. bus2318.1.630.0.0.0. bus3318.0.850.0.0.0. bus42230.0.0.0.0.0. bus52230.0.0.1.250.50. bus62230.0.0.0.90.30. bus72230.0.0.0.0.0. bus82230.0.0.1.00.350. bus92230.0.0.0.0.0. 支路数据(Aclinedata.txt) bus4bus5230.0.010.0850.088 bus4bus6230.0.0170.0920.079 bus5bus7230.0.0320.1610.153 bus6bus9230.0.0390.170.179 bus7bus8230.0.00850.0720.0745 bus8bus9230.0.01190.10080.1045 变压器数据(Transdata.txt) bus118.018.0bus4230.230.0.00.0576 bus218.018.0bus7230.230.0.00.0625 bus318.018.0bus9230.230.0.00.0586 输出数据 Sbase_MVA= 100 busnumber= 9 aclinenumber= 6 tansnumber= 3 noiteration= 9 max_no_itearation= 20 Nodea= 09.66874.7711-2.4066-4.3499-4.01733.7991 0.62151.9256 NodeV= 181818227220224229227231 结果分析 busnumber=9,aclinenumber=6,tansnumber=3表示此次计算为9节点,6支路,3变压器的网络。 B、B2分别为B'和B'',JP为除平衡节点外的矩阵,JQ为除平衡节点和PV节点外的矩阵。 iJP、iJQ分别为JP、JQ的逆矩阵乘以-1。 NodeV=1,Nodea=0为平直启动的初值。 dPGPL和dQGQL为PQ节点的偏差量。 根据: noiteration=9 Nodea=09.66874.7711-2.4066-4.3499-4.01733.79910.62151.9256 NodeV=181818227220224229227231 可知此次计算迭代次数为9次,节点1~9的电压如表1所示: 表1迭代计算的节点电压 节点编号 V(kV) δ(度) 1 18 0 2 18 9.6687 3 18 4.7711 4 227 -2.4066 5 220 -4.3499 6 224 -4.0173 7 229 3.7991 8 227 0.6215 9 230 1.9256 迭代过程中maxdP和maxdQ的值如表2所示: 表2迭代过程量(maxdP、maxdQ) 迭代次数 maxdP maxdQ 1 1.6300 0.2835 2 0.0472 0.3049 3 0.0227 0.0136 4 0.0022 0.0036 5 5.3667e-004 4.0016e-004 6 8.1193e-005 1.2925e-004 7 1.3329e-005 2.9343e-005 8 3.5700e-006 2.9027e-006 9 1.7669e-007 6.1075e-007 由表2可知,此次计算具有较好的收敛性。 心得总结 MATLAB是一个数学建模和计算软件,通过编程能够将复杂的矩阵计算转移到计算机上进行演算,极大的降低了人手计算的强度,给计算工作带来了极大的便利。 但是对于初学的我来说也存在着一定的难度,不过通过网上丰富的资源和同学的帮助我慢慢的掌握了这个软件的基本操作,对我以后工作打了一定的基础。 虽然学习MATLAB的时间虽然很短,但却让我了解到了它的强大和它的功能,需要我们自己不断的去摸索,而且在摸索过程中,我们能获得更大进步!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力系统 分析 PQ 解法 潮流 计算
![提示](https://static.bdocx.com/images/bang_tan.gif)