第一篇:用matlab电力系统潮流计算
题目:潮流计算与matlab
教学单位 电气信息学院
姓 名 学 号
年 级
专 业 电气工程及其自动化
指导教师
职 称 副教授
摘 要
电力系统稳态分析包括潮流计算和静态安全分析。本文主要运用的事潮流计算,潮流计算是电力网络设计与运行中最基本的运算,对电力网络的各种设计方案及各种运行方式进行潮流计算,可以得到各种电网各节点的电压,并求得网络的潮流及网络中的各元件的电力损耗,进而求得电能损耗。本位就是运用潮流计算具体分析,并有MATLAB仿真。
关键词: 电力系统 潮流计算 MATLAB
Abstract Electric power system steady flow calculation and analysis of the static safety analysis.This paper, by means of the calculation, flow calculation is the trend of the power network design and operation of the most basic operations of electric power network, various design scheme and the operation ways to tide computation, can get all kinds of each node of the power grid voltage and seek the trend of the network and the network of the components of the power loss, and getting electric power.The standard is to use the power flow calculation and analysis, the specific have MATLAB simulation.Key words: Power system;Flow calculation;MATLAB simulation
目 录 任务提出与方案论证....................................................................................................................................2 2 总体设计........................................................................................................................................................3 2.1潮流计算等值电路.............................................................................................................................3 2.2建立电力系统模型.............................................................................................................................3 2.3模型的调试与运行.............................................................................................................................3 3 详细设计........................................................................................................................................................4 3.1 计算前提............................................................................................................................................4 3.2手工计算.............................................................................................................................................7 4设计图及源程序...........................................................................................................................................11 4.1MATLAB仿真.......................................................................................................................................11 4.2潮流计算源程序...............................................................................................................................11 5 总结.............................................................................................................................................................31 参考文献..........................................................................................................................................................32 任务提出与方案论证
潮流计算是在给定电力系统网络结构、参数和决定系统运行状态的边界条件的情况下确定系统稳态运行状态的一种基本方法,是电力系统规划和运营中不可缺少的一个重要组成部分。可以说,它是电力系统分析中最基本、最重要的计算,是系统安全、经济分析和实时控制与调度的基础。常规潮流计算的任务是根据给定的运行条件和网路结构确定整个系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。潮流计算的结果是电力系统稳定计算和故障分析的基础。在电力系统运行方式和规划方案的研究中,都需要进行潮流计算以比较运行方式或规划供电方案的可行性、可靠性和经济性。同时,为了实时监控电力系统的运行状态,也需要进行大量而快速的潮流计算。因此,潮流计算是电力系统中应用最广泛、最基本和最重要的一种电气运算。在系统规划设计和安排系统的运行方式时,采用离线潮流计算;在电力系统运行状态的实时监控中,则采用在线潮流计算。是电力系统研究人员长期研究的一个课题。它既是对电力系统规划设计和运行方式的合理性、可靠性及经济性进行定量分析的依据,又是电力系统静态和暂态稳定计算的基础。
潮流计算经历了一个由手工到应用数字电子计算机的发展过程,现在的潮流算法都以计算机的应用为前提用计算机进行潮流计算主要步骤在于编制计算机程序,这是一项非常复杂的工作。对系统进行潮流分析,本文利用 MATLAB中的SimpowerSystems工具箱设计电力系统,在simulink 环境下,不仅可以仿真系统的动态过程,还可以对系统进行稳态潮流分析。
总体设计
SimpowerSystems使用Simulink环境,可以将该系统中的发电机、变压器,线路等模型联结起来,形成电力系统仿真模拟图。在加人测量模块,并对各元件的参数进行设置后,用measurement和sink中的仪器可以观察各元件的电压、电流、功率的大小。
2.1潮流计算等值电路
10MWYN,d11463MWVA15MWGGGG120MW10kVp015.7kWps73kWI%0.50Vs%10.5YN,d1116MWVA463MW“xd0.134x20.161x0.060cosN0.8510kVp011kWps50kWI%0.550Vs%10.5YN,d11210MWVA35kV32km25MW110kV80km25MW110kV70km110kVYN,d11220MWVA20MWGGG415MW”xd0.136x20.16x0.0730cosN0.8p018.6kWps89kWI%0.530MW0Vs%10.510kVp015.7kWps73kWI%0.5GG0V%10.5sYN,d11216MWVA63MWVAp044kWps121kW10kVI%0.350Vs%10.5GG35MWYN,Y,d11210MVA10kVGGG312MW150MW“xd0.128x20.154x0.0540cosN0.85225MW”xd0.128x20.157x0.05910cosN0.8x0.136x20.161x0.0750cosN0.8“d
2.2建立电力系统模型
在Simulink中按照电力系统原型选择元件进行建模。所建立的模型和建立的方法在详细设计中详述。
在电力系统模型的建立工程中主要涉及到的是:元器件的选择及其参数的设置;发电机选型;变压器选择;线路的选择;负荷模型的选择;母线选择。
2.3模型的调试与运行
建立系统模型,并设置好参数以后,就可以在Simulink环境下进行仿真运行。运行的具体结果和分析也在详细设计中详述。
30km35kV0km31p044kWps121kWI%0.350Vs%10.5p013.2kWps63kWI0%0.55V%10.5s(12)80MWVs(23)%6.55MWVs(13)%17.53 详细设计
3.1 计算前提
首先是发电机的参数计算,先对5个发电厂简化为5台发电机来计算。发电机G1:
P141560MWQ160tan(arccos0.8)45MVar发电机G2:
P2463252MWQ2252tan(arccos0.85)156MVar发电机G3:
P331236MWQ336tan(arccos0.8)27MVar发电机G4:
P415050MWQ450tan(arccos0.85)31MVar发电机G5:
P522550MWQ550tan(arccos0.8)37.5MVar
其次是变电站的参数计算,我们还是对7个变电站简化为7台变压器来计算。变压器T1:
2psVN7311023RT1101033.450232SN(1610)2Vs%VN10.51102XT1101079.406SN16103S01p0j变压器T2:(双并联)
I0%SN(0.0157j0.0800)MVA 100RT2XT221psVN18911023101031.3462322SN2(2010)21Vs%VN110.51102101031.7625 32SN22010S022(p0j变压器T3:(四并联)
I0%SN)(0.0372j0.2000)MVA100 1psVN2112111023RT3101030.0922324SN4(6310)XT31Vs%VN2110.5110210105.042 4SN463103I0%SN)(0.1760j0.8820)MVA100S034(p0j变压器T4:(双并联)
1RT11.725021 XT4XT139.70302S042S01(0.0314j0.1600)MVART4变压器T5:
RT54RT30.3680XT54XT320.168S051S03(0.0440j0.2205)MVA41633523100.386 322(1010)
变压器T6:(两个三绕组变压器并联)
RT61RT62RT631[Vs(12)%Vs(13)%Vs(23)%]10.7521Vs2%[Vs(12)%Vs(23)%Vs(13)%]0.25
21Vs3%[Vs(13)%Vs(23)%Vs(12)%]6.752Vs1%21Vs1%VNXT61106.5842SNXT62XT6321Vs2%VN100.1532SN21Vs3%VN104.134 2SNS062(P06j变压器T7:(双并联)
I0%10)(0.0264j0.1100)MVA 100 RT7XT721psVN1503523101030.3062322SN2(1010)21Vs%VN110.535210106.4312SN210103
S072(p0jI0%SN)(0.0220j0.1100)MVA100再次是传输线参数计算,5条传输线的具体计算如下。
根据教材查得r00.21/km x00.4/km b02.810S/km 6线路L1:
线路L2:
线路L3:(双回路)
线路L4:
线路L5:(双回路)RL1r0l10.21408.4XL1x0l10.44016B6L1b0l12.810401.12104S Q1L12BL1V2N0.6776MVarRL2r0l20.2113027.3XL2x0l20.413052B6L2b0l22.8101303.64104S Q1L22BL2V2N2.2022MVarR12rl1L30320.21707.35X11L32x0l320.47014 BL32b40l322.8106703.9210SQ1L32B2L3VN2.3716MVarRL4r0l40.216012.6XL4x0l40.46024BL4b0l42.8106601.68104S Q12L42BL4VN1.0164MVar
11RL5r0l50.21202.12211XL5x0l50.4204 22BL52b0l522.8106201.12104S1QL5BL3VN20.0686MVar23.2手工计算
FLR1:
P2102ST12(RT1jXT1)(3.450j74.406)(0.0285j0.6562)MVA2VN110Sa10MWST1S01jQL1(10.0442j0.1142)MVAP2Q210.044220.11422SL1(RL1jXL1)(8.4j16)(0.070j0.1334)MVAVN21102ST2P2Q2402452(RT2jXT2)(1.346j31.7625)(0.4032j9.5156)MVAVN21102FLR2SbSG120ST260j45200.4032j9.5156(39.5968j35.4844)MVAScSbSa25jQL1SL1(4.4826j35.9144)MVA:
ST3P2Q225221562(RT3jXT3)(0.092j5.042)(0.6679j36.6024)MVA22VN110PQ4.493134.1048(RjX)(27.3j52)(2.67j5.0854)MVAL2L222VN1102222Sc'(4.4931j34.1048)MVASL2FLRSdSG2Sc'120ST3S03jQL2SL2(132.9792j149.229)MVA3:
ST4P2Q262272(RT4jXT4)(1.725j39.703)(0.1091j2.5101)MVAVN21102P2Q2133.59552149.99562(RL3jXL3)(7.35j14)(24.51j46.682)MVA22VN110'Sd(133.5955j149.9956)MVASL3'SeSG3Sd3025ST4S04jQL3SL3(89.945j130.0151)MVAFLR4: ST5P2Q2502312(RT5jXT5)(0.368j20.168)(0.1052j5.7687)MVA22VN110P2Q292.74872133.99372(RL4jXL4)(12.6j24)(27.654j52.674)MVA22VN110Se'(92.7481j133.9937)MVASL4SfSG4Se'80ST5S05jQL4SL4(34.9449j107.3469)MVAFLR5: 152ST72(0.306j6.431)(0.0562j1.1812)MVA35Sh15ST7S07jQL5(15.0782j0.3422)MVA15.078220.34222SL5(2.1j4)(0.3899j0.743)MVA352SiShSL5S06jQL55(20.4945j1.1266)MVA 15237.52ST63(0.386j4.34)(0.514j5.7793)MVA35220.650520.54512ST62(0.386j0.153)(0.1345j0.0533)MVA23526.336298.73692ST61(0.386j6.584)(3.2905j56.1256)MVA352SgSfST61SG5ST62ST63Si35(25.5114j194.12)MVA计算每一个FLR的功率分布和电压分布计算如下: FLR1:
VT2PRQX401.3464531.762512.8970kVVN115 Vb115VT2102.1030kVPRQX10.04428.40.144216VL10.8489kVVb102.1030VaVbVL1101.2541kVFLR2:
功率分布:
SL2ZZZ*T3*L2*SdT3(VbVN)ZZL2****VN(0.092j5.042)(132.9792j149.229)1418.6727.392j57.042T3(4.8812j13.8097)MVAST3ZZZ*L2*L2*SdT3(VbVN)ZZL2VN(27.3j52)(132.9792j149.229)1418.6727.392j57.042T3(108.687j122.62)MVA 电压分布:
Sc1SL2SL2(4.8812j13.8097)(2.67j5.0854)(7.5512j8.7243)MVA7.551227.38.7243522.424kV102.1030VdVbVL2102.103(2.424)104.527kVVL2功率分布:
FLR3:
SL3ZZZ*T4*L3*SeT4(VG3Vd)ZZL3****VN(1.725j39.703)(89.945j130.0151)1037.9279.075j53.73T4(59.444j16.846)MVAST4ZZZ*L3*L3*SeT4(VbVN)ZZL3VN(7.35j14)(89.945j130.0151)1037.9279.075j53.73T4(31.811j60.1256)MVA 电压分布:
Se1SL3SL3(59.444j19.846)(24.51j46.682)(83.954j26.836)MVA83.9547.3526.836149.404kV105.5643VeVdVL396.16kVVL3功率分布:
FLR4:
SL4ZZZ*T5*L4*SfT5(VG3Vd)ZZL4****VN=(0.368j20.168)(34.9449j107.3469)1037.92712.968j44.168T5(20.843j19.689)MVAST4ZZZ*L4*L4*SfT5(VG3Vd)ZZL4VN=(12.6j24)(34.9449j107.3469)1037.92712.968j44.168T5(1.398j44.389)MVA 电压分布:
Se1SL3SL3(59.444j16.846)(24.51j46.682)(83.954j63.528)MVA83.95412.663.5282424.464kV105.5643VeVdVL381.10kVVL4FLR5: 这里我们先将f点和发电机G5当做电源,经过ZT61和ZT63构成两端供电网络以g点作为运算负荷进行计算。ST6ST4(0.386j4.134)(20.2656j70.9293)(22.093837)35(3.900j25.1175)MVA0.772j10.718(0.386j6.584)(20.2656j70.9293)(22.093837)35(16.5061j91.7905)MVA0.772j10.718电压分布:
ST631ST63ST63(16.6421j97.5698)MVA16.64210.38697.56984.13410.9186kV37Vg37VT6326.0814VVT6320.26560.38670.9293(0.153)0.1162kV
26.0814ViVgVT6226.1976VT6220.49452.11.126641.815kV26.1976VhViVL524.3826VL5
4设计图及源程序
4.1MATLAB仿真
相关的原始数据输入格式如下:
1、B1是支路参数矩阵,第一列和第二列是节点编号。节点编号由小到大编写。
2、对于含有变压器的支路,第一列为低压侧节点编号,第二列为高压侧节点编号,将变压器的串联阻抗置于低压侧处理,第三列为支路的串列阻抗参数,第四列为支路的对地导纳参数,第五烈为含变压器支路的变压器的变比,第六列为变压器是否是否含有变压器的参数,其中“1”为含有变压器,“0”为不含有变压器。
3、B2为节点参数矩阵,其中第一列为节点注入发电功率参数;第二列为节点负荷功率参数;第三列为节点电压参数;第六列为节点类型参数,其中“1”为平衡节点,“2”为PQ节点,“3”为PV节点参数。
4、X为节点号和对地参数矩阵。其中第一列为节点编号,第二列为节点对地参数。
4.2潮流计算源程序
%本程序的功能是用牛顿——拉夫逊法进行11节点潮流计算 clear;n=11;%input('请输入节点数:n=');nl=11;%input('请输入支路数:nl=');isb=1;%input('请输入平衡母线节点号:isb=');pr=0.00001;%input('请输入误差精度:pr=');B1=[1
0.03512+0.08306i
0.13455i
0;
0.0068+0.18375i
0
1.02381
1;
0.05620+0.13289i
0.05382i
0;
0.00811+0.24549i
0
1.02381
1;
0.05620+0.13289i
0.05382i
0;
0.04215+0.09967i
0.04037i
0;
0.0068+0.18375i
0
1.02381
1;
0.02810+0.06645i
0.10764i
0;
0.05620+0.13289i
0.05382i
0;0.00811+0.24549i
0
1;
0.03512+0.08306i
0.13455i
0] B2=[0
0
1.1
1.1
0
1;
0
0
0
0
2;
0
0.343+0.21256i
0
0
2;
0
0
0
0
2;
0
0.204+0.12638i
0
0
2;
0
0
0
0
2;
0
0.306+0.18962i
0
0
2;
0
0
0
0
2;
0.5
0
1.1
1.1
0
3;
0
0.343+0.21256i
0
0
2;
0
0
0
0
2];% B1矩阵:
1、支路首端号;
2、末端号;
3、支路阻抗;
4、支路对地电纳 %
5、支路的变比;
6、支路首端处于K侧为1,1侧为0 % B2矩阵:
1、该节点发电机功率;
2、该节点负荷功率;
3、节点电压初始值 %
4、PV节点电压V的给定值;
5、节点所接的无功补偿设备的容量 %
6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点; %
3为PV节点;
%input('请输入各节点参数形成的矩阵: B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);% % %--------------------for i=1:nl
%支路数
if B1(i,6)==0
%左节点处于1侧
p=B1(i,1);q=B1(i,2);
else
%左节点处于K侧
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=');disp(Y)%---------------------------G=real(Y);B=imag(Y);
%分解出导纳阵的实部和虚部
for i=1:n
%给定各节点初始电压的实部和虚部
e(i)=real(B2(i,3));
f(i)=imag(B2(i,3));
V(i)=B2(i,4);
%PV节点电压给定模值
end for i=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、a;不满足收敛要求的节点数IT2 while IT2~=0
% N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列
IT2=0;a=a+1;
for i=1:n
if i~=isb
%非平衡节点
C(i)=0;D(i)=0;
for j1=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)%求i节点有功和无功功率P',Q'的计算值
V2=e(i)^2+f(i)^2;
%电压模平方
%========= 以下针对非PV节点来求取功率差及Jacobi矩阵元素 =========
if B2(i,6)~=3
%非PV节点
DP=P(i)-P1;
%节点有功功率差
DQ=Q(i)-Q1;
%节点无功功率差
%=============== 以上为除平衡节点外其它节点的功率计算 ================= %================= 求取Jacobi矩阵 ===================
for j1=1:n
if j1~=isb&j1~=i
%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);% dP/de=-dQ/df
X2=B(i,j1)*e(i)-G(i,j1)*f(i);% dP/df=dQ/de
X3=X2;
% X2=dp/df X3=dQ/de
X4=-X1;
% X1=dP/de X4=dQ/df
p=2*i-1;q=2*j1-1;
J(p,q)=X3;J(p,N)=DQ;m=p+1;
% X3=dQ/de J(p,N)=DQ节点无功功率差
J(m,q)=X1;J(m,N)=DP;q=q+1;
% X1=dP/de J(m,N)=DP节点有功功率差
J(p,q)=X4;J(m,q)=X2;
% X4=dQ/df X2=dp/df
elseif j1==i&j1~=isb %非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df
X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dQ/de
X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);% dQ/df
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;
end
end
else
%=============== 下面是针对PV节点来求取Jacobi矩阵的元素 ===========
DP=P(i)-P1;
% PV节点有功误差
DV=V(i)^2-V2;
% PV节点电压误差
for j1=1:n
if j1~=isb&j1~=i
%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);
% dP/de
X2=B(i,j1)*e(i)-G(i,j1)*f(i);
% dP/df
X5=0;X6=0;
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;% PV节点电压误差
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;
% PV节点有功误差
J(m,q)=X2;
elseif j1==i&j1~=isb %非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df
X5=-2*e(i);
X6=-2*f(i);
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;% PV节点电压误差
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;
% PV节点有功误差
J(m,q)=X2;
end
end
end
end
end %========= 以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差 =====================
for k=3:N0
% N0=2*n(从第三行开始,第一、二行是平衡节点)
k1=k+1;N1=N;
% N=N0+1 即 N=2*n+1扩展列△P、△Q 或 △U
for k2=k1:N1
% 从k+1列的Jacobi元素到扩展列的△P、△Q 或 △U
J(k,k2)=J(k,k2)./(J(k,k)+eps);% 用K行K列对角元素去除K行K列后的非对角元素进行规格化
end
J(k,k)=1;
% 对角元规格化K行K列对角元素赋1
%==================== 回代运算
=======================================
if k~=3
% 不是第三行
k > 3
k4=k-1;
for k3=3:k4
% 用k3行从第三行开始到当前行的前一行k4行消去
for k2=k1:N1 %
k3行后各行上三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行k列元素消为0)
end
%用当前行K2列元素减去当前行k列元素乘以第k行K14 列元素
J(k3,k)=0;%当前行第k列元素已消为0
end
if k==N0
%若已到最后一行
break;
end
%================== 前代运算
==================================
for k3=k1:N0
% 从k+1行到2*n最后一行
for k2=k1:N1
% 从k+1列到扩展列消去k+1行后各行下三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算
end
%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素
J(k3,k)=0;%当前行第k列元素已消为0
end
else
%是第三行k=3
%====================== 第三行k=3的前代运算 ========================
for k3=k1:N0
%从第四行到2n行(最后一行)
for k2=k1:N1
%从第四列到2n+1列(即扩展列)
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0)
end
%用当前行K2列元素减去当前行3列元素乘以第三行K2列元素
J(k3,k)=0;%当前行第3列元素已消为0
end
end
end %====上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵=====
for k=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
%------修改节点电压-----------
for k=3:N0
DET=abs(J(k,N));
if DET>=pr
%电压偏差量是否满足要求
IT2=IT2+1;%不满足要求的节点数加1
end
end
ICT2(a)=IT2;
%不满足要求的节点数
ICT1=ICT1+1;
%迭代次数 end %用高斯消去法解”w=-J*V“
disp('迭代次数:');disp(ICT1);disp('没有达到精度要求的个数:');disp(ICT2);for k=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为(节点号从小到大排列):');disp(E);
%显示各节点的实际电压标幺值E用复数表示 disp('----------------------');disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);
%显示各节点的电压大小V的模值 disp('----------------------');disp('各节点的电压相角sida为(节点号从小到大排列):');disp(sida);
%显示各节点的电压相角 for p=1:n
C(p)=0;
for q=1:n
C(p)=C(p)+conj(Y(p,q))*conj(E(q));%计算各节点的注入电流的共轭值
end
S(p)=E(p)*C(p);
%计算各节点的功率 S = 电压 X 注入电流的共轭值 end disp('各节点的功率S为(节点号从小到大排列):');disp(S);
%显示各节点的注入功率
disp('----------------------');disp('各条支路的首端功率Si为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
if B1(i,6)==0
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));
Siz(i)=Si(p,q);
else
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)./B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));
Siz(i)=Si(p,q);
end
disp(Si(p,q));
SSi(p,q)=Si(p,q);
ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];
disp(ZF);
disp('----------------------');end disp('各条支路的末端功率Sj为(顺序同您输入B1时一致):');
for i=1:nl
p=B1(i,1);q=B1(i,2);
if B1(i,6)==0
Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));
Sjy(i)=Sj(q,p);
else
Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)*B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));
Sjy(i)=Sj(q,p);
end
disp(Sj(q,p));
SSj(q,p)=Sj(q,p);
ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];
disp(ZF);
disp('----------------------');end disp('各条支路的功率损耗DS为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
DS(i)=Si(p,q)+Sj(q,p);
disp(DS(i));
DDS(i)=DS(i);
ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))];
disp(ZF);
disp('----------------------');end
%本程序的功能是用牛顿——拉夫逊法进行10节点潮流计算 %本程序的功能是用牛顿——拉夫逊法进行潮流计算 clear;n=10;%input('请输入节点数:n=');nl=10;%input('请输入支路数:nl=');isb=1;%input('请输入平衡母线节点号:isb=');pr=0.00001;%input('请输入误差精度:pr=');B1=[1
0.03512+0.08306i
0.13455i
0;
0.0068+0.18375i
0
1.02381
1;
0.05620+0.13289i
0.05382i
0;
0.00811+0.24549i
0
1.02381
1;
0.05620+0.13289i
0.05382i
0;
0.04215+0.09967i
0.04037i
0;
0.0068+0.18375i
0
1.02381
1;
0.02810+0.06645i
0.10764i
0;0.00811+0.24549i
0
1;
0.03512+0.08306i
0.13455i
0] B2=[0
0
1.1
1.1
0
1;
0
0
0
0
2;
0
0.343+0.21256i
0
0
2;
0
0
0
0
2;
0
0.204+0.12638i
0
0
2;
0
0
0
0
2;
0
0.306+0.18962i
0
0
2;
0
0
0
0
2;
0.5
0
1.1
1.1
0
3;
0
0.343+0.21256i
0
0
2];% B1矩阵:
1、支路首端号;
2、末端号;
3、支路阻抗;
4、支路对地电纳 %
5、支路的变比;
6、支路首端处于K侧为1,1侧为0 % B2矩阵:
1、该节点发电机功率;
2、该节点负荷功率;
3、节点电压初始值 %
4、PV节点电压V的给定值;
5、节点所接的无功补偿设备的容量 %
6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点; %
3为PV节点;
%input('请输入各节点参数形成的矩阵: B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);% % %--------------------for i=1:nl
%支路数
if B1(i,6)==0
%左节点处于1侧
p=B1(i,1);q=B1(i,2);
else
%左节点处于K侧
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=');disp(Y)%---------------------------G=real(Y);B=imag(Y);
%分解出导纳阵的实部和虚部
for i=1:n
%给定各节点初始电压的实部和虚部
e(i)=real(B2(i,3));
f(i)=imag(B2(i,3));
V(i)=B2(i,4);
%PV节点电压给定模值
end for i=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、a;不满足收敛要求的节点数IT2 while IT2~=0
% N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列
IT2=0;a=a+1;
for i=1:n
if i~=isb
%非平衡节点
C(i)=0;D(i)=0;
for j1=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)%求i节点有功和无功功率P',Q'的计算值
V2=e(i)^2+f(i)^2;
%电压模平方
%========= 以下针对非PV节点来求取功率差及Jacobi矩阵元素 =========
if B2(i,6)~=3
%非PV节点
DP=P(i)-P1;
%节点有功功率差
DQ=Q(i)-Q1;
%节点无功功率差
%=============== 以上为除平衡节点外其它节点的功率计算 ================= %================= 求取Jacobi矩阵 ===================
for j1=1:n
if j1~=isb&j1~=i
%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);% dP/de=-dQ/df
X2=B(i,j1)*e(i)-G(i,j1)*f(i);% dP/df=dQ/de
X3=X2;
% X2=dp/df X3=dQ/de
X4=-X1;
% X1=dP/de X4=dQ/df
p=2*i-1;q=2*j1-1;
J(p,q)=X3;J(p,N)=DQ;m=p+1;
% X3=dQ/de J(p,N)=DQ节点无功功率差
J(m,q)=X1;J(m,N)=DP;q=q+1;
% X1=dP/de J(m,N)=DP节点有功功率差
J(p,q)=X4;J(m,q)=X2;
% X4=dQ/df X2=dp/df
elseif j1==i&j1~=isb %非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df
X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dQ/de
X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);% dQ/df
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;
end
end
else
%=============== 下面是针对PV节点来求取Jacobi矩阵的元素
===========
DP=P(i)-P1;
% PV节点有功误差
DV=V(i)^2-V2;
% PV节点电压误差
for j1=1:n
if j1~=isb&j1~=i
%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);
% dP/de
X2=B(i,j1)*e(i)-G(i,j1)*f(i);
% dP/df
X5=0;X6=0;
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;% PV节点电压误差
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;
% PV节点有功误差
J(m,q)=X2;
elseif j1==i&j1~=isb %非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df
X5=-2*e(i);
X6=-2*f(i);
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;% PV节点电压误差
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;
% PV节点有功误差
J(m,q)=X2;
end
end
end
end
end %========= 以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差 =====================
for k=3:N0
% N0=2*n(从第三行开始,第一、二行是平衡节点)
k1=k+1;N1=N;
% N=N0+1 即 N=2*n+1扩展列△P、△Q 或 △U
for k2=k1:N1
% 从k+1列的Jacobi元素到扩展列的△P、△Q 或 △U
J(k,k2)=J(k,k2)./J(k,k);% 用K行K列对角元素去除K行K列后的非对角元素进行规格化
end
J(k,k)=1;
% 对角元规格化K行K列对角元素赋1
%==================== 回代运算
=======================================
if k~=3
% 不是第三行
k > 3
k4=k-1;
for k3=3:k4
% 用k3行从第三行开始到当前行的前一行k4行消
去
for k2=k1:N1 %
k3行后各行上三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行k列元素消为0)
end
%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素
J(k3,k)=0;%当前行第k列元素已消为0
end
if k==N0
%若已到最后一行
break;
end
%================== 前代运算
==================================
for k3=k1:N0
% 从k+1行到2*n最后一行
for k2=k1:N1
% 从k+1列到扩展列消去k+1行后各行下三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算
end
%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素
J(k3,k)=0;%当前行第k列元素已消为0
end
else
%是第三行k=3
%====================== 第三行k=3的前代运算 ========================
for k3=k1:N0
%从第四行到2n行(最后一行)
for k2=k1:N1
%从第四列到2n+1列(即扩展列)
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0)
end
%用当前行K2列元素减去当前行3列元素乘以第三行K2列元素
J(k3,k)=0;%当前行第3列元素已消为0
end
end
end %====上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵=====
for k=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
%------修改节点电压-----------
for k=3:N0
DET=abs(J(k,N));
if DET>=pr
%电压偏差量是否满足要求
IT2=IT2+1;%不满足要求的节点数加1
end
end
ICT2(a)=IT2;
%不满足要求的节点数
ICT1=ICT1+1;
%迭代次数 end %用高斯消去法解”w=-J*V“ disp('迭代次数:');disp(ICT1);disp('没有达到精度要求的个数:');disp(ICT2);for k=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为(节点号从小到大排列):');disp(E);
%显示各节点的实际电压标幺值E用复数表示 disp('----------------------');disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);
%显示各节点的电压大小V的模值 disp('----------------------');disp('各节点的电压相角sida为(节点号从小到大排列):');disp(sida);
%显示各节点的电压相角 for p=1:n
C(p)=0;
for q=1:n
C(p)=C(p)+conj(Y(p,q))*conj(E(q));%计算各节点的注入电流的共轭值
end
S(p)=E(p)*C(p);
%计算各节点的功率 S = 电压 X 注入电流的共轭值 end disp('各节点的功率S为(节点号从小到大排列):');disp(S);
%显示各节点的注入功率
disp('----------------------');disp('各条支路的首端功率Si为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
if B1(i,6)==0
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));
Siz(i)=Si(p,q);
else
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)./B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));
Siz(i)=Si(p,q);
end
disp(Si(p,q));
SSi(p,q)=Si(p,q);
ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];
disp(ZF);
disp('----------------------');end disp('各条支路的末端功率Sj为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
if B1(i,6)==0
Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));
Sjy(i)=Sj(q,p);
else
Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)*B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));
Sjy(i)=Sj(q,p);
end
disp(Sj(q,p));
SSj(q,p)=Sj(q,p);
ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];
disp(ZF);
disp('----------------------');end disp('各条支路的功率损耗DS为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
DS(i)=Si(p,q)+Sj(q,p);
disp(DS(i));
DDS(i)=DS(i);
ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))];
disp(ZF);
disp('----------------------');end
%本程序的功能是用牛顿——拉夫逊法进行12节点潮流计算 %本程序的功能是用牛顿——拉夫逊法进行潮流计算 clear;n=12;%input('请输入节点数:n=');nl=12;%input('请输入支路数:nl=');isb=1;%input('请输入平衡母线节点号:isb=');pr=0.00001;%input('请输入误差精度:pr=');B1=[1
0.03512+0.08306i
0.13455i
0;
0.0068+0.18375i
0
1.02381
1;
0.05620+0.13289i
0.05382i
0;
0.00811+0.24549i
0
1.02381
1;
0.05620+0.13289i
0.05382i
0;
0.04215+0.09967i
0.04037i
0;
0.0068+0.18375i
0
1.02381
1;
0.02810+0.06645i
0.10764i
0;
0.05620+0.13289i
0.05382i
0;0.00811+0.24549i
0
1;
0.03512+0.08306i
0.13455i
0;
0.03512+0.08306i
0.13455i
0] B2=[0
0
1.1
1.1
0
1;
0
0
0
0
2;
0
0.343+0.21256i
0
0
2;
0
0
0
0
2;
0
0.204+0.12638i
0
0
2;
0
0
0
0
2;
0
0.306+0.18962i
0
0
2;
0
0
0
0
2;
0.5
0
1.1
1.1
0
3;
0
0.343+0.21256i
0
0
2;
0
0
0
0
2;
0
0
0
0
2];% B1矩阵:
1、支路首端号;
2、末端号;
3、支路阻抗;
4、支路对地电纳 %
5、支路的变比;
6、支路首端处于K侧为1,1侧为0 % B2矩阵:
1、该节点发电机功率;
2、该节点负荷功率;
3、节点电压初始值 %
4、PV节点电压V的给定值;
5、节点所接的无功补偿设备的容量 %
6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点; %
3为PV节点;
%input('请输入各节点参数形成的矩阵: B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);% % %--------------------for i=1:nl
%支路数
if B1(i,6)==0
%左节点处于1侧
p=B1(i,1);q=B1(i,2);
else
%左节点处于K侧
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=');disp(Y)%---------------------------G=real(Y);B=imag(Y);
%分解出导纳阵的实部和虚部
for i=1:n
%给定各节点初始电压的实部和虚部
e(i)=real(B2(i,3));
f(i)=imag(B2(i,3));
V(i)=B2(i,4);
%PV节点电压给定模值
end for i=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、a;不满足收敛要求的节点数IT2 while IT2~=0
% N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列
IT2=0;a=a+1;
for i=1:n
if i~=isb
%非平衡节点
C(i)=0;D(i)=0;
for j1=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)%求i节点有功和无功功率P',Q'的计算值
V2=e(i)^2+f(i)^2;
%电压模平方
%========= 以下针对非PV节点来求取功率差及Jacobi矩阵元素 =========
if B2(i,6)~=3
%非PV节点
DP=P(i)-P1;
%节点有功功率差
DQ=Q(i)-Q1;
%节点无功功率差
%=============== 以上为除平衡节点外其它节点的功率计算 ================= %================= 求取Jacobi矩阵 ===================
for j1=1:n
if j1~=isb&j1~=i
%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);% dP/de=-dQ/df
X2=B(i,j1)*e(i)-G(i,j1)*f(i);% dP/df=dQ/de
X3=X2;
% X2=dp/df X3=dQ/de
X4=-X1;
% X1=dP/de X4=dQ/df
p=2*i-1;q=2*j1-1;
J(p,q)=X3;J(p,N)=DQ;m=p+1;
% X3=dQ/de J(p,N)=DQ节点无功功率差
J(m,q)=X1;J(m,N)=DP;q=q+1;
% X1=dP/de J(m,N)=DP节点有功功率差
J(p,q)=X4;J(m,q)=X2;
% X4=dQ/df X2=dp/df
elseif j1==i&j1~=isb %非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df
X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dQ/de
X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);% dQ/df
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;
end
end
else
%=============== 下面是针对PV节点来求取Jacobi矩阵的元素 ===========
DP=P(i)-P1;
% PV节点有功误差
DV=V(i)^2-V2;
% PV节点电压误差
for j1=1:n
if j1~=isb&j1~=i
%非平衡节点&非对角元
X1=-G(i,j1)*e(i)-B(i,j1)*f(i);
% dP/de
X2=B(i,j1)*e(i)-G(i,j1)*f(i);
% dP/df
X5=0;X6=0;
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;% PV节点电压误差
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;
% PV节点有功误差
J(m,q)=X2;
elseif j1==i&j1~=isb %非平衡节点&对角元
X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/de
X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/df
X5=-2*e(i);
X6=-2*f(i);
p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;% PV节点电压误差
m=p+1;
J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;
% PV节点有功误差
J(m,q)=X2;
end
end
end
end
end %========= 以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差 =====================
for k=3:N0
% N0=2*n(从第三行开始,第一、二行是平衡节点)
k1=k+1;N1=N;
% N=N0+1 即 N=2*n+1扩展列△P、△Q 或 △U
for k2=k1:N1
% 从k+1列的Jacobi元素到扩展列的△P、△Q
或 △U
J(k,k2)=J(k,k2)./(J(k,k)+eps);% 用K行K列对角元素去除K行K列后的非对角元素进行规格化
end
J(k,k)=1;
% 对角元规格化K行K列对角元素赋1
%==================== 回代运算
=======================================
if k~=3
% 不是第三行
k > 3
k4=k-1;
for k3=3:k4
% 用k3行从第三行开始到当前行的前一行k4行消去
for k2=k1:N1 %
k3行后各行上三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行k列元素消为0)
end
%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素
J(k3,k)=0;%当前行第k列元素已消为0
end
if k==N0
%若已到最后一行
break;
end
%================== 前代运算
==================================
for k3=k1:N0
% 从k+1行到2*n最后一行
for k2=k1:N1
% 从k+1列到扩展列消去k+1行后各行下三角元素
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算
end
%用当前行K2列元素减去当前行k列元素乘以第k行K2列元素
J(k3,k)=0;%当前行第k列元素已消为0
end
else
%是第三行k=3
%====================== 第三行k=3的前代运算 ========================
for k3=k1:N0
%从第四行到2n行(最后一行)
for k2=k1:N1
%从第四列到2n+1列(即扩展列)
J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0)
end
%用当前行K2列元素减去当前行3列元素乘以第三行K2列元素
J(k3,k)=0;%当前行第3列元素已消为0
end
end
end %====上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵=====
for k=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
%------修改节点电压-----------
for k=3:N0
DET=abs(J(k,N));
if DET>=pr
%电压偏差量是否满足要求
IT2=IT2+1;%不满足要求的节点数加1
end
end
ICT2(a)=IT2;
%不满足要求的节点数
ICT1=ICT1+1;
%迭代次数 end %用高斯消去法解”w=-J*V" disp('迭代次数:');disp(ICT1);disp('没有达到精度要求的个数:');disp(ICT2);for k=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为(节点号从小到大排列):');disp(E);
%显示各节点的实际电压标幺值E用复数表示 disp('----------------------');disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);
%显示各节点的电压大小V的模值 disp('----------------------');disp('各节点的电压相角sida为(节点号从小到大排列):');disp(sida);
%显示各节点的电压相角 for p=1:n
C(p)=0;
for q=1:n
C(p)=C(p)+conj(Y(p,q))*conj(E(q));%计算各节点的注入电流的共轭值
end
S(p)=E(p)*C(p);
%计算各节点的功率 S = 电压 X 注入电流的共轭值 end disp('各节点的功率S为(节点号从小到大排列):');disp(S);
%显示各节点的注入功率
disp('----------------------');disp('各条支路的首端功率Si为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
if B1(i,6)==0
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));
Siz(i)=Si(p,q);
else
Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)./B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));
Siz(i)=Si(p,q);
end
disp(Si(p,q));
SSi(p,q)=Si(p,q);
ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];
disp(ZF);
disp('----------------------');end disp('各条支路的末端功率Sj为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
if B1(i,6)==0
Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));
Sjy(i)=Sj(q,p);
else
Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)*B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));
Sjy(i)=Sj(q,p);
end
disp(Sj(q,p));
SSj(q,p)=Sj(q,p);
ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];
disp(ZF);
disp('----------------------');end disp('各条支路的功率损耗DS为(顺序同您输入B1时一致):');for i=1:nl
p=B1(i,1);q=B1(i,2);
DS(i)=Si(p,q)+Sj(q,p);
disp(DS(i));
DDS(i)=DS(i);
ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))];
disp(ZF);
disp('----------------------');end
如果源程序的运行结果需要作图可用下面的程序
figure(1);subplot(1,2,1);plot(V);xlabel('节点号');ylabel('电压标幺值');grid on;subplot(1,2,2);plot(sida);xlabel('节点号');ylabel('电压角度');grid on;figure(2);subplot(2,2,1);P=real(S);Q=imag(S);bar(P);xlabel('节点号');ylabel('节点注入有功');grid on;subplot(2,2,2);bar(Q);xlabel('节点号');ylabel('节点注入无功');grid on;subplot(2,2,3);P1=real(Siz);Q1=imag(Siz);bar(P1);xlabel('支路号');ylabel('支路首端注入有功');grid on;subplot(2,2,4);bar(Q1);xlabel('支路号');ylabel('支路首端注入无功');grid on;
总结
通过本次课程设计让我有复习了一次潮流计算的相关知识,跟家清晰了什么事潮流计算以及潮流计算的在电力系统的重要性。电力系统的稳定运行状况即是正常运行状况,是指电力系统在稳定运行条件下电压、功率的分布,也称为潮流分布。电力系统分析的潮流计算是电力系统分析的一个重要的部分。通过对电力系统潮流分布的分析和计算,可进一步对系统运行的安全性,经济性进行分析、评估,提出改进措施。同时潮流分布也是电力系统规划设计的一项基础工作。
整个计算过程的模型建立并不是十分复杂,但计算过程十分繁琐、计算量相当的大,而且由于枝节太多很容易算错。不过在计算潮流计算的过程中却对以往学过的电力系统分析的相关知识进行了一次较为深入的复习。而且整个计算对计算量的要求很大,锻炼了我们的计算能力。而且对细节的把握也得到了锻炼,做题的精细程度得到了提高。
参考文献
[1]何仰赞, 温增银《电力系统分析》(第三版)[M].华中科技大学,2002 [2]http://baike.baidu.com/view/627420.[3]王守相,刘玉田 电力系统潮流计算研究现状--《山东电力技术》1996年05期
[4]何仰赞,温增银.电力系统分析(上册)第三版[M].湖北:华中科技大学出版社,2002 [5] 刘同娟.MATLAB在电路分析中的应用.电气电子教学学报.2002 [6] 西安交通大学等.电力系统计算[M].北京:水利电力出版社,1993.12 [7] 李光琦.电力系统暂态分析[M].北京: 水利电力出版社,2002.5 [8]何仰赞,温增银.电力系统分析(下册)第三版[M].湖北:华中科技大学出版社,2002 [9]韦化,李滨,杭乃善,等.大规模水一火电力系统最优潮流的现代内点算法实现[J].中国电机工程学报,2003.23(6):13一l8.
[10]Chen Luo—nan,Suzuki Hideki,Katou Kazuo.Mean fieldtheory for optimal power flow[J].IEEE Transactions OilPower Systems,1997,12(4):1481·1486
第二篇:基于MATLAB的电力系统潮流计算
基于MATLAB的电力系统潮流计算
%简单潮流计算的小程序,相关的原始数据数据数据输入格式如下:
%B1是支路参数矩阵,第一列和第二列是节点编号。节点编号由小到大编写 %对于含有变压器的支路,第一列为低压侧节点编号,第二列为高压侧节点 %编号,将变压器的串联阻抗置于低压侧处理。%第三列为支路的串列阻抗参数。%第四列为支路的对地导纳参数。
%第五烈为含变压器支路的变压器的变比
%第六列为变压器是否是否含有变压器的参数,其中“1”为含有变压器,%“0”为不含有变压器。
%B2为节点参数矩阵,其中第一列为节点注入发电功率参数;第二列为节点 %负荷功率参数;第三列为节点电压参数;第六列为节点类型参数,其中 %“1”为平衡节点,“2”为PQ节点,“3”为PV节点参数。
%X为节点号和对地参数矩阵。其中第一列为节点编号,第二列为节点对地 %参数。
n=input('请输入节点数:n=');n1=input('请输入支路数:n1=');isb=input('请输入平衡节点号:isb=');pr=input('请输入误差精度:pr=');B1=input('请输入支路参数:B1=');B2=input('请输入节点参数:B2=');X=input('节点号和对地参数:X=');Y=zeros(n);Times=1;%置迭代次数为初始值 %创建节点导纳矩阵 for i=1:n1 if B1(i,6)==0 %不含变压器的支路 p=B1(i,1);q=B1(i,2);Y(p,q)=Y(p,q)-1/B1(i,3);Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4);Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4);else %含有变压器的支路 p=B1(i,1);q=B1(i,2);Y(p,q)=Y(p,q)-1/(B1(i,3)*B1(i,5));Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3);Y(q,q)=Y(q,q)+1/(B1(i,5)^2*B1(i,3));end end Y OrgS=zeros(2*n-2,1);DetaS=zeros(2*n-2,1);%将OrgS、DetaS初始化
%创建OrgS,用于存储初始功率参数 h=0;j=0;for i=1:n %对PQ节点的处理 if i~=isb&B2(i,6)==2 h=h+1;for j=1:n OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));end end end for i=1:n %对PV节点的处理,注意这时不可再将h初始化为0 if i~=isb&B2(i,6)==3 h=h+1;for j=1:n OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));end end end OrgS %创建PVU 用于存储PV节点的初始电压 PVU=zeros(n-h-1,1);t=0;for i=1:n if B2(i,6)==3 t=t+1;PVU(t,1)=B2(i,3);end end PVU %创建DetaS,用于存储有功功率、无功功率和电压幅值的不平衡量 h=0;for i=1:n %对PQ节点的处理 if i~=isb&B2(i,6)==2 h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);end end t=0;for i=1:n %对PV节点的处理,注意这时不可再将h初始化为0 if i~=isb&B2(i,6)==3 h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i,3))^2;end end DetaS %创建I,用于存储节点电流参数 i=zeros(n-1,1);h=0;for i=1:n if i~=isb h=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));end end I %创建Jacbi(雅可比矩阵)Jacbi=zeros(2*n-2);h=0;k=0;for i=1:n %对PQ节点的处理 if B2(i,6)==2 h=h+1;for j=1:n if j~=isb k=k+1;if i==j %对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));else %非对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);end if k==(n-1)%将用于内循环的指针置于初始值,以确保雅可比矩阵换行
k=0;end end end end end k=0;for i=1:n %对PV节点的处理 if B2(i,6)==3 h=h+1;for j=1:n if j~=isb k=k+1;if i==j %对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));Jacbi(2*h,2*k-1)=2*imag(B2(i,3));Jacbi(2*h,2*k)=2*real(B2(i,3));else %非对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;end if k==(n-1)%将用于内循环的指针置于初始值,以确保雅可比矩阵换行
k=0;end end end end end Jacbi %求解修正方程,获取节点电压的不平衡量 DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU %修正节点电压 j=0;for i=1:n %对PQ节点处理 if B2(i,6)==2 j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);end end for i=1:n %对PV节点的处理 if B2(i,6)==3 j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);end end B2 %开始循环********************************************************************** while abs(max(DetaU))>pr OrgS=zeros(2*n-2,1);%!!初始功率参数在迭代过程中是不累加的,所以在这里必须将其初始化为零矩阵 h=0;j=0;for i=1:n if i~=isb&B2(i,6)==2 h=h+1;for j=1:n OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));end end end for i=1:n if i~=isb&B2(i,6)==3 h=h+1;for j=1:n OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));end end end OrgS %创建DetaS h=0;for i=1:n if i~=isb&B2(i,6)==2 h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);end end t=0;for i=1:n if i~=isb&B2(i,6)==3 h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i,3))^2;end end DetaS %创建I i=zeros(n-1,1);h=0;for i=1:n if i~=isb h=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));end end I %创建Jacbi Jacbi=zeros(2*n-2);h=0;k=0;for i=1:n if B2(i,6)==2 h=h+1;for j=1:n if j~=isb k=k+1;if i==j Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));else Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);end if k==(n-1)k=0;end end end end end k=0;for i=1:n if B2(i,6)==3 h=h+1;for j=1:n if j~=isb k=k+1;if i==j Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));Jacbi(2*h,2*k-1)=2*imag(B2(i,3));Jacbi(2*h,2*k)=2*real(B2(i,3));else Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;end if k==(n-1)k=0;end end end end end Jacbi DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU %修正节点电压 j=0;for i=1:n if B2(i,6)==2 j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);end end for i=1:n if B2(i,6)==3 j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);end end B2 Times=Times+1;%迭代次数加1 end Times 一个原始数据的例子 节点数 5 支路数 5平衡节点编号 5 精度pr 0.000001 B1(支路参数矩阵)[1 2 0.04+0.25i 0.5i 1 0;1 3 0.1+0.35i 0 1 0;2 3 0.08+0.30i 0.5i 1 0;4 2 0.015i 0 1.05 1;5 3 0.03i 0 1.05 1] B2(节点参数矩阵)[0-1.6-0.8i 1 0 0 2;0-2-1i 1 0 0 2;0-3.7-1.3i 1 0 0 2;0 5+0i 1.05 1.05 0 3;0 0 1.05 1.05 0 1] X(节点号和对地参数)[1 0;2 0;3 0;4 0;5 0]
电力系统潮流计算
——9结点算例-PQ法
原始数据录入data.txt文档:
标号,起始结点,终止结点,支路电阻参数,支路电抗参数,支路对地导纳参数 1,2,5,0.0,0.063,0.0, 2,5,9,0.019,0.072,0.075, 3,6,9,0.012,0.101,0.105, 4,3,6,0.0,0.059,0.0, 5,6,8,0.039,0.17,0.179, 6,4,8,0.017,0.092,0.079, 7,5,7,0.032,0.161,0.153, 8,4,7,0.01,0.085,0.088, 9,1,4,0.0,0.058,0.0, 潮流程序chaoliu.txt文档: #include ; float x1[N-1],x2 ;for(i=1;i guass(1,N-1,y1,B,x1);for(i=1;i guass(N-M,M,y2,B,x2);for(i=N-M;i else { kp=0;if(kq==0)val(u,g,b,r,ku,kr,h);else goto top;} } } void val(float u[N],float g[N][N],float b[N][N],float r[N],int ku, int kr,float h[N][N]){ float ps=0,pv1=0,pv2=0;float qs=0,qv1=0,qv2=0;float p[N][N]={0};float q[N][N]={0};float s[N][N];float dp[N][N]={0};float dq[N][N]={0};float ds[N][N];float dSp=0,dSq=0;int i,j;FILE *fp1;printf(”n=====ping heng jie dian gong lv =====n“);getch();for(i=0;i printf(”n=======shu ju bao cun=====n“);fp1=fopen(”jieguo.txt“,”w+“);{ fprintf(fp1,”xian lu cao liu:n“);for(i=0;i 关键词:电力系统分析;潮流计算;matlab仿真 中图分类号:tm744 文献标识码:a 文章编号:1006-4311(2016)21-0185-03 0 引言 潮流计算是电力系统稳态运行中的基本计算方法中的一种计算方法,也是电力系统稳态运行中最重要的运算。潮流计算是保证电力系统安全、经济运行的根本。在新电网建设的初期规划中,有了潮流计算,可规划出电源的容量及其接入点,可计算出无功补偿的容量,选择合适的补偿方式,以满足在电网潮流的控制、调压、调相、调峰的交换要求。潮流计算可以选择电力系统的运行方式,便于定期对电力系统中的元件进行检修。 潮流计算的过程 1.1 原始资料 ①系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。(图1) ②发电厂资料: ③变电所资料: 1)变电所1、2、3、4低压母线的电压等级分别为:10kv,35kv,10kv,35kv。 3)每个变电所的功率因数均为cosφ=0.9。 ④输电线路资料: 发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为0.17ω,单位长度的电抗为0.402ω,单位长度的电纳为2.78*10-6s。 1.2 基本要求 ①对给定的网络查找潮流计算所需的各元件等值参数,画出等值电路图。 ②输入各支路数据,各节点数据,利用simulink搭建仿真模型等方法,进行在变电所的某一负荷情况下的潮流计算及仿真,并对计算结果进行分析。 ③如果各母线电压不满足要求,进行电压的调整。(变电所低压母线电压10kv要求调整范围在9.5-10.5之间;电压35kv要求调整范围在35-36之间)。 ④利用matlab软件,进行上述各种情况潮流的计算及仿真。 1.3 节点设置及分析 由上述系统图可知,该系统图为双端供电网络。将母线1,2设为节点1,10,将变电所1、2、3、4的高低压侧分别设为节点2、3、4、5、6、7、8、9。并且,将节点1设为平衡节点,将节点10设为pv节点,其余节点设为pq节点。 1.4 参数求取 将参数整理如表 1、表2所示。 1.5 进行潮流计算 图2为仿真模型图。 从潮流计算的结果可得到,系统的各个节点电压的标幺值可归纳为表3。 由matlab编程调节后,可得到表4的发电厂电压和变压器分接头电压得标幺值。 在得到了上述调节后的电压标幺值,对电机模型和变压器模型进行更改。表5为调节前后各节点的电压标幺值。 由题意可知,变电所低压母线电压10kv要求调整范围在9.5-10.5之间;电压35kv要求调整范围在35-36之间。因此我们可以看出,经过调节后,节点3、5、7、9点电压已经满足了系统的要求。表6是电压调节前后对线路损耗进行分析的记录。 由表6的电压调节前后功率损耗对比,可以看出有功功率随着变压器分接头变比的增大而逐渐增大,使得变压器的低压侧的电压处于允许范围内,符合其要求。 表7为调节后的各支路电压首末端的功率整理表 表8为各节点功率s的标幺值。 1.6 对比 由上面的三种方法简单地比较,我们可以看出,在同一个电力系统中,用不同的方法进行潮流计算,所得到的结果是大致相同的。 结束语 DOI :10.13207 /j.cnki.jnwafu.20 4.12.028 第 32卷 第 12期 402 年 12月 西北农林科技大学学报(自然科学版) ruoJ.of No rthw est Sci-Tech Univ.o f Ag ri.and F or.(Nat.Sci.Ed.)loV.32 No.12 Dec.204 基于 MATLAB的电力系统潮流计算 1张 宁,江红梅,张 渭2 (1西北农林科技大学水利与建筑工程学院,陕西杨凌 71210 ;2哈密市高级中学计算机室 ,新疆哈密 83900) [摘 要] 随着计算机语言技术的不断发展和成熟 ,基于 MAT LA B的潮流计算研究近年来得到了长足的发 展。针对这一现状,以 P-Q分解法为例,分析了 BA SIC , FO RT RA N和 MA T LAB高级语言潮流计算的异同 ,指出了 其优缺点,并针对潮流计算模型结构的特点 ,提出了基于 MA T LAB的潮流算法。 [关键词] 电力系统;潮流计算;MA T LAB [中图分类号] T M715;T M744 [文献标识码] A [文章编号] 1671-9387(204)12-0124-03 潮流计算是电力系统规划、运行的基本研究方 法,随着现代电力系统大系统、强非线性与多元件特 点的日益突出,其计算量与计算复杂度急剧增 [ 1] 加。在处理潮流计算时,其计算机软件的速度已 [ 2] 无法满足大电网模拟和实时控制的仿真要求 ,而 高效的潮流问题相关软件的研究已成为大规模电力 3,4] 系统仿真计算的关键[。随着计算机技术的不断 发展和成熟,对 MA T LA B潮流计算的研究为快速、详细地解决大电网仿真技术问题开辟了新思 路。针对这一现状,本文以某电力网络为例,分 析了 BASIC、FO RT RA N和 M A T LAB 高级语言潮 流计算的异同,并提出了基于 MA T LAB 的潮流算 法,以期为电力系统潮流计算提供参考。[ 5,6] 的有效方法。该方法把非线性方程线性化,由于线 性方程的系数矩阵结构上是稀疏的非对称矩阵,结 合稀疏矩阵技术可使计算机内存占用量大大减少 , 计算速度大大加快;P-Q分解法[ 8]是在 N ew ton jQ ,(i =1 , 2 ,3 ,…, n)(1) ji j∑ =P j=1 U* i nj=1 计算机潮流计算的基本要求是:计算方法具有 [ 11 , 12 ] ∑· ji jZ I = 式中,P iQ 分别为节点 i向网络注入的有功功率,·i和无功功率;jU为节点 j的电压相量 ·* P-Q i,(i =1 ,2 ,3 ,…, n)(2) ji· * Ui 一定的可靠性和收敛性;尽量选用占计算机内 存较少的存储方式;在可靠收敛的前提下,选用计算 速度较快的方法;人机交互环境便于数据输入、校核 和修改,且具有一定的灵活性。 BAS IC是一种解决数学问题的语言,由于其取 ;Uii 为节点 消了编译工作及连接过程,语言的执行时间相应较 · AS IC语句的标识符可为常数和变量,矩阵也 的电压共轭相量;jj的电流相量;I为节点 Y为节 慢。Bji点导纳矩阵;Z为节点阻抗矩阵。式(1)和式(2)各 ji [ 13 ] 可规定为变量进行计算。 有 n个非线性复数方程,对其作不同的应用和处 FO RT RAN 是 1957年发明的用于科学计算的 语言理,就形成了不同的潮流计算方法。其中, N ew ton个工程数学运算函数,可实现潮流计算中的矩阵求.70141E +38 [ 15 ]。要达到题目所要求的计算精积、求逆、稀疏矩阵形成、复数运算以及初等数学运 算等[ 1]。MA T LA B语言允许用户以数学形式的语 度,且兼顾矩阵程序设计的难易程度 ,MA T LA B则成为 言编写程序 ,其比 BASIC 语言和 FO RT RA N等更 首选潮流计算的计算机语言。对于大矩阵的潮流计 为接近书写的数学表达格式 ,且程序易调试。在计 算 ,M A T LAB提供的 M文件可将输入矩阵按格式 算要求相同的情况下 ,使用 MA T LAB编程 ,工作量 先写入一个文本文件,在编程时 ,按文本文件名在命 将会大为减少。 令窗调用 ,大矩阵就被输入到内存中了。MA T LAB 3 基于 MA T LAB的电力系统潮流计 也能直接创建复数矩阵,这两点也是 BA SIC ,(2)求系数矩阵 B ′, B ″的逆阵,计算各节点电压 FO RT RA N 算 的相位角 语言不可比拟的。Δδ。相位角 iΔiδ计算公式为 : P-Q分解法计算电力系统的潮流分布 ,其 试用 -(k) i步骤为: -(B ′)(ΔP (k)/ U (k))=(U 式中 , ΔP (k), U (k)为已知量,相位角 Δδ的计算主(1)形成系数矩阵 B ′, B ″(设该矩阵为 4×4矩 i要(k)Δδ)是矩阵的求积运阵)。 算 。AMA T L B和 BA SIC语言都用命令 inv (B)或 a 1a 2… a 14 IN V (B)来实现矩阵的求逆功能,B ′=B ″= a a … MA T LA B和 … … … … a 24 BAS IC语言求积运算均与数学书写格式一致 ,但 a a … BAS IC语言必须对矩阵进行 MA T说明 ,而且执行 a 44 在程序设计上 ,用 MA T LA B语言编写程序形 时间相应较长 ,计算精度较低。FO RT RAN 语言虽 成的系数矩阵 B ′和B ″,远比 BASIC ,FO RT RA N简 然在参考资料上提供矩阵求逆、求积程序[ 1618 ] ,但 单,矩阵输入、输出与数学书写格式相似。即在命令 其按线性代数的矩阵求逆、求积步骤编程[ ] ,编写窗口输入 : 的程序至少需用 1个三重循环语句 , 所以与 >>B … a (3)相比计算平衡节点功率和线路功率MA T LA B ,工作量大而效率低。 =[ a 1a … a 2 2a a 1平衡节点功率为 … a 4] 再在命令窗口输入 >>B =,则窗口将显示出 B ′, B ″矩阵。 … a … … … a 4 2 ̄S s = +Q 线路功率为 · *· U s is i =P 1 * Y U i =1 n ∑  ̄S ij = U iI =P ji ji +Q ij 平衡节点功率和线路功率的计算属复数运算。MA T LA B和 FO RT RAN 语言都提供复数功能语 在 BASIC , FO RT RAN 语言编程时 , 必须进行 句[ 15 ],MA T LAB 以数学上的复数书写格式编写程 矩阵说明 , BASIC 用 DIM B(4, 4)语句说明矩阵,序 ,方便而且不容易出错;而 FO RT RA N必须对复 F ORT RA N用 DOU BLE PRECISION B(1 ∶4 , 1 ∶4 数变量进行) CMP LX语句的复数类型说明[ ],显 语句同时说明矩阵和矩阵精度;在建立矩阵时, 得较为繁琐。BA SIC不提供复数功能语句 ,一般将实 BASIC ,F ORT RA N语言用 REA D语句和 DA TA 语 数、虚数分开计算 ,最后用输出语句写在一起 ,所以 句输入矩阵;FO RT RAN 语言用 WRIT E语句输出 一般不用 BASIC 语言编写复数运算程序 。矩阵,而 BASIC 语言只能用二重循环语句输出二维 另外 ,MA T LA B可以提供潮流计算中稀疏矩阵 · ·* 126 西北农林科技大学学报(自然科学版) 第 32卷 的建立命令 spconvetr,从而将外部数据转化为稀疏 矩阵,而且 MA T LA B函数 lu也可直接实现 L R三 角分解[了 方便。 一步。矩阵输入、输出格式简单 ,与数学书写格式相 似;以双精度类型进行数据的存储和运算 ,数据精确 ;潮流计算中复杂矩阵的输入问题可通过创建 M文件来解决;MA T LA B称为矩阵实验室 ,其能进 行潮流计算中的各种矩阵运算,包括求逆、求积和矩 19 , 20 ],从而为现代电力系统潮流计算提供度高 讨 论 阵 L R分解等 ,其程序的编写也因 M A T LAB提供 了许多功能函数而变得简单易行。另外 , MA T LAB 稀疏矩阵技术的引入 ,使电力系统潮流计算由传统 方法转变为优化算法成为可能。通过与 BA SIC, FO RT RA N语言的比较,基于 M A T LAB的电力系统潮流计算使计算机在计算、分 析、研究复杂的电力系统潮流分布问题上又前进了 [参考文献] [ 1 ] 薛 巍 ,舒继武 ,王心丰 ,等.电力系统并行算法的研究进展 [ J ] .清华大学学报(自然科学版), 2002 , 42 (9):1192 -195 .[ 2 ] F ernaod L A .Computalnoi complexit y in pow er systems [ J ] .IE E T rans on PAS, 1976 , 95(4):1028 -1037 .[ 3 ] 周济 ,罗应立 ,张建华 ,等.基于 MAT LA B的次同步谐振的特征根分析 [ J ] .现代电力 , 1999 ,(4):67-71.[ 4 ] 王克英 ,穆 钢 ,韩学山 ,等.使潮流方程直接可解的 PMV配置方案研究 [ J ] .中国电机工程学报 , 1999 , 10 (2):67-69.[ 5] 卢天成 ,韩 或 ,李东风.MA T LAB在鸣禽语图分析中的应用 [ J ].辽宁师范大学学报(自然科学版), 2001 , 24 (4):56-58.[ 6] 宋维君.基于 MA T LAB的时域分析法实现 [ J ] .辽宁师专学报(自然科学版), 2002, 1(4):72 -74.[ 9] 邱关源.电路(下册)[ M] .北京 :高等教育出版[ ,7] 0 周孝信等..国电力百科全书 ·电力系统卷 [ M].第 2版.北京 :中国电力出版社 , 2001 .31 .社 199 .67-78 [ 10 ] 赵晋泉 ,侯志俭 ,吴际舜.牛顿最优潮流算法中离散控制量的新处理方法 [ J ].电力系统自动化 , 1999 , 23 (3):32 [ 8] 陈 珩.电力系统稳态分析 [ M] .北京 :高等教育出版社 ,20 .139 -193 .-34 .[ 11 ] [英]劳顿 M A,塞 M G.电气工程师技术手册 [ M] .北京 :机械工业出版社 , 1992 .826 -827 .[ 12 ] 楼顺天 ,陈生潭 ,雷虎明.MA T LAB5 .X程序设计语言 [ M] .西安 :西安电子科技大学出版社 , 2001 .57-78;163 -162 .[ 14 ] 潭浩强 ,田淑清.F ORT RA N语言 ———F ORT RA N 77结构化程序设计 [ M].北京 :清华大学出版[ 13 ] 王沫然.MA T LAB 6.0与科学计算[ M] .北京 :电子工业出版社 , 2001 .1 -5;42 .社 , 1995.58;98.[ 15 ] 刘文远 ,李兴成 ,赵 莉.BA SIC语言与农业实用程序 [ 041 .[ 16 ] 潭浩强 ,崔武子 ,田淑清.FO RT RA N程序设计(二级)教程[ 社 , 1998.105 -123 .[ 17 ] 鲍有文 ,周海燕 ,赵重敏 ,等.FO RT RAN 77程序设计试题汇编 [ M] .北京 :清华大学出版[ 20 ] 邓建中 ,葛仁杰 ,程正兴.计算方法[ M] .西安 :西安交通大学出版社 , 1998 .21 社 ,.68;107 .-31 1998;201 .[ 18 ] 刘万春 ,朱玉文 ,龚圆明.FO RT RA N程序设计[ M].北京 :国防工业出版社 , 2003 .102 -124 .[ 19 ] 同济大学教研室.线性代数[ M].北京 :高等教育出版社 , 1990 .35 ;70-71 .M].北京 :清华大学出版 M] .沈阳 :辽宁科学技术出版社 , 1987.139 -Pow er flow computaino of the electir pow er system based on MA TLA B 1GNAHZ Ning, JIANG Hong -mei ,ZHANG Wei (1 Colge of Water Resocru and A rchlarueti E ngiren , Northwest A &F University, Yanglin, Shanxi 71210 , China ; Computer Rom of High Schol in Hami, Ham i, Xinj iang 83900, China) Acartsb :Wit h the devolpment of the computer langseu in rectn years ,t he reshcra of M A T LAB power wolf algohmtirs got substanli devolpment .T he paper , using P -Q method , analy zed the dif erensc andimsilarseti of BA SIC , FO RT RAN and MA T LAB advaecn langseu, and pointed out t hei r advatn ages and M A T LAB pow er flow algoir thm s.yeK words :electir pow er sy stem ;power f low computaino ;MA T LAB w eaknes , based on the charsietc of the model const ructnoi in pow er flow algohmtirs , bring up t he 南 京 理 工 大 学 《电力系统稳态分析》 课程报告 姓名 XX 学 号: 5*** 自动化学院 电气工程 基于牛顿-拉夫逊法的潮流计算例题编程报学院(系): 专 业: 题 目: 任课教师 硕士导师 告 杨伟 XX 2015年6月10号 基于牛顿-拉夫逊法的潮流计算例题编程报告 摘要:电力系统潮流计算的目的在于:确定电力系统的运行方式、检查系统中各元件是否过压或者过载、为电力系统继电保护的整定提供依据、为电力系统的稳定计算提供初值、为电力系统规划和经济运行提供分析的基础。潮流计算的计算机算法包含高斯—赛德尔迭代法、牛顿-拉夫逊法和P—Q分解法等,其中牛拉法计算原理较简单、计算过程也不复杂,而且由于人们引入泰勒级数和非线性代数方程等在算法里从而进一步提高了算法的收敛性和计算速度。同时基于MATLAB的计算机算法以双精度类型进行数据的存储和运算, 数据精确度高,能进行潮流计算中的各种矩阵运算,使得传统潮流计算方法更加优化。 一 研究内容 通过一道例题来认真分析牛顿-拉夫逊法的原理和方法(采用极坐标形式的牛拉法),同时掌握潮流计算计算机算法的相关知识,能看懂并初步使用MATLAB软件进行编程,培养自己电力系统潮流计算机算法编程能力。 例题如下:用牛顿-拉夫逊法计算下图所示系统的潮流分布,其中系统中5为平衡节点,节点5电压保持U=1.05为定值,其他四个节点分别为PQ节点,给定的注入功率如图所示。计算精度要求各节点电压修正量不大于10-6。 二 牛顿-拉夫逊法潮流计算 1 基本原理 牛顿法是取近似解x(k)之后,在这个基础上,找到比x(k)更接近的方程的根,一步步地迭代,找到尽可能接近方程根的近似根。牛顿迭代法其最大优点是在方程f(x)=0的单根附近时误差将呈平方减少,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点的电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成节点电压新的初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。2 基本步骤和设计流程图 形成了雅克比矩阵并建立了修正方程式,运用牛顿-拉夫逊法计算潮流的核心问题已经解决,已有可能列出基本计算步骤并编制流程图。由课本总结基本步骤如下: 1)形成节点导纳矩阵Y; 2)设各节点电压的初值,如果是直角坐标的话设电压的实部e和虚部f;如果是极坐标的话则设电压的幅值U和相角a; 3)将各个节点电压的初值代入公式求修正方程中的不平衡量以及修正方程的系数矩阵的雅克比矩阵; 4)解修正方程式,求各节点电压的变化量,即修正量; 5)计算各个节点电压的新值,即修正后的值; 6)利用新值从第(3)步开始进入下一次迭代,直至达到精度退出循环; 7)计算平衡节点的功率和线路功率,输出最后计算结果; ① 公式推导 ② 流程图 三 matlab编程代码 clear; % 如图所示1,2,3,4为PQ节点,5为平衡节点 y=0; % 输入原始数据,求节点导纳矩阵 y(1,2)=1/(0.07+0.21j); y(4,5)=0;y(1,3)=1/(0.06+0.18j); y(1,4)=1/(0.05+0.10j); y(1,5)=1/(0.04+0.12j); y(2,3)=1/(0.05+0.10j); y(2,5)=1/(0.08+0.24j); y(3,4)=1/(0.06+0.18j); for i=1:5 for j=i:5 y(j,i)=y(i,j); end end Y=0; % 求节点导纳矩阵中互导纳 for i=1:5 for j=1:5 if i~=j Y(i,j)=-y(i,j); end end end % 求节点导纳矩阵中自导纳 for i=1:5 Y(i,i)=sum(y(i,:)); end Y % Y为导纳矩阵 G=real(Y); B=imag(Y);% 输入原始节点的给定注入功率 S(1)=0.3+0.3j; S(2)=-0.5-0.15j; S(3)=-0.6-0.25j; S(4)=-0.7-0.2j; S(5)=0; P=real(S); Q=imag(S); % 赋初值,U为节点电压的幅值,a为节点电压的相位角 U=ones(1,5); U(5)=1.05; a=zeros(1,5); x1=ones(8,1); x2=ones(8,1); k=0; while max(x2)>1e-6 for i=1:4 for j=1:4 H(i,j)=0; N(i,j)=0; M(i,j)=0; L(i,j)=0; oP(i)=0; oQ(i)=0; end end % 求有功、无功功率不平衡量 for i=1:4 for j=1:5 oP(i)=oP(i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); oQ(i)=oQ(i)-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j))); end oP(i)=oP(i)+P(i); oQ(i)=oQ(i)+Q(i); end x2=[oP,oQ]'; % x2为不平衡量列向量 % 求雅克比矩阵 % 当i~=j时,求H,N,M,L for i=1:4 for j=1:4 if i~=j H(i,j)=-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j))); N(i,j)=-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); L(i,j)=H(i,j); M(i,j)=-N(i,j); end end end % 当i=j时,求H,N,M,L for i=1:4 for j=1:5 if i~=j H(i,i)=H(i,i)+U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)));N(i,i)=N(i,i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); M(i,i)=M(i,i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); L(i,i)=L(i,i)-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j))) end end N(i,i)=N(i,i)-2*(U(i))^2*G(i,i); L(i,i)=L(i,i)+2*(U(i))^2*B(i,i); end J=[H,N;M,L] % J为雅克比矩阵 x1=-((inv(J))*x2); % x1为所求△x的列向量 % 求节点电压新值,准备下一次迭代 for i=1:4 oa(i)=x1(i); oU(i)=x1(i+4)*U(i); end for i=1:4 a(i)=a(i)+oa(i); U(i)=U(i)+oU(i); end k=k+1; end k,U,a % 求节点注入功率 i=5; for j=1:5 P(i)=U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)))+P(i); Q(i)=U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)))+Q(i); end S(5)=P(5)+Q(5)*sqrt(-1); S % 求节点注入电流 I=Y*U' 四 运行结果 节点导纳矩阵 经过五次迭代后的雅克比矩阵 迭代次数以及节点电压的幅值和相角(弧度数) 节点注入功率和电流 五 结果分析 在这次学习和实际操作过程里:首先,对电力系统分析中潮流计算的部分特别是潮流计算的计算机算法中的牛顿-拉夫逊法进行深入的研读,弄明白了其原理、计算过程、公式推导以及设计流程。牛顿-拉夫逊法是求解非线性方程的迭代过程,其计算公式为FJX,式中J为所求函数的雅可比矩阵;X为需要求的修正值;F为不平衡的列向量。利用x(*)=x(k+1)+X(k+1)进行多次迭代,通过迭代判据得到所需要的精度值即准确值x(*)。六 结论 通过这个任务,自己在matlab编程,潮流计算,word文档的编辑功能等方面均有提高,但也暴漏出一些问题:理论知识储备不足,对matlab的性能和特点还不能有一个全面的把握,对word软件也不是很熟练,相信通过以后的学习能弥补这些不足,达到一个新的层次。第三篇:基于MATLAB的电力系统潮流计算设计
第四篇:基于MATLAB的电力系统潮流计算_张宁
第五篇:电力系统潮流计算