牛顿-拉夫逊法计算机程序研究
课程名称:电力系统分析
指导教师:
姓 名: ___ 学号:____________ 年级专业班级:_____________
提交日期 2014年1月12日
1概念
潮流计算是电力系统分析中的一种最基本的计算,它的任务是对给定的运行条件确定系统的运行状态,比如各母线上的电压幅值与相角、网络中的功率分布及功率损耗等。在简单电力网络中,一般可采取手工计算方法,如单端供电网络,给定首端电压以及末端功率,从末端向前推出功率损耗,再从首端向后推出电压损耗。然而,实际的电力系统十分复杂,少则几十个节点,多则上千节点,此时采取手工运算基本不可能实现运行要求,计算机代替手算的方法由此产生。它服务于大系统,较之手算,速度快,结果精确,能够满足电力系统运行要求。本文主要研究了基于matlab的牛顿-拉夫逊潮流计算方法,结合书本例子,验证了该程序的实用性。
2分析方法
网络方程式(如节点方程)是潮流计算的基础方程式。如果能够给出电压源(或电流源),直接求解网络方程就可以求得网络内电流和电压的分布。但是在潮流计算中,在网络的运行状态确认以前,无论是电源的电势,还是节点的注入电流都是无法事先给定的。
对于一个三节点简单电力系统,其网络方程为:
(1) 将节点电流用节点功率与电压表示后代入上式,这样n节点系统的潮流方程为
=
nYVijj1**j (i=1,2,…,n) (2)
将上述方程的实部,虚部分开,对于每一个节点课的两个实数方程,但是变量仍有4个,P,Q,V, 。我们需要给定其中两个,这样方程就有解了。按给定量的不同,分为PQ节点(又叫负荷节点),PV节点(又叫电压控制节点),还有平衡节点(给定V, )。下面采用的方法,是将节点电压表示为极坐标形式
ViViVi(cosijsini) (3) 将(3)带入(2)可得 与 的表达式,即由电压幅值,相角计算不平衡量的公式。 具体有下述两种方法: 1)直角坐标算法:
给定e(k),f(k),算出△P(k),△Q(k),然后与预设偏差作比较,如果符合则进行全网潮流计算,如果不符合,则用雅各比矩阵算出△e(k),△f(k),修正得e(k+1),f(k+1),重新计算△P(k+1),△Q(k+1)并与预设值比较。
·2)极坐标算法:
给定V(k),δ(k),算出△P(k),△Q(k),然后与预设偏差作比较,如果符合则进行全网潮流计算,如果不符合,则用雅各比矩阵算出△V(k),△δ(k),修正得V(k+1),δ(k+1),重新计算△P(k+1),△Q(k+1)并与预设值比较。
3具体例子
以《电力系统分析》(何仰赞着)61页例11-5为例进行验证。采用极坐标法。
等效电力网络图
首先用busdata(节点矩阵)矩阵描述1到4号节点的数据: Busdata
从左到右依次为 bus_i(节点号)type(节点类型) Pd(负荷需求有功功率/MVA)Qd(符合需求无功功率/MVar)Gs(并联电导的功率/MVA) Bs(并联电纳的功率/MVar) area(电力区域号) Vm(节点电压幅值)Va(节点电压相角)baseKV(节点处实际电压/kV) zone(损耗区域) Vmax(最大电压幅值) Vmin(最小电压幅值)
mpc.bus=[1 1 30 18 0 0 1 1 0 110 1 1.1 0.9 2 1 55 13 0 0 1 1 0 110 1 1.1 0.9 3 2 0 0 0 0 1 1.1 0 110 1 1.1 0.9 4 3 0 0 0 0 1 1.05 0 110 1 1.1 0.9]; 然后用gendata(电机矩阵)描述系统输入 Generator data
bus(节点号) Pg(发电机发出有功/MVA) Qg(发电机发出无功/MVar) Qmax(最大发出无功) Qmin(最小发出无功) Vg(给定电压幅值标幺) mBase(电机容量/MVA) status(运行状态) Pmax(最大发出有功/MVA)Pmin(最小发出有功/MVA) Pc1(PQ性能曲线下的实际输出功率) Pc2(PQ性能曲线上的实际输出功率) Qc1min(pc1下最小输出功率) Qc1max(pc1下最大输出功率) Qc2min(pc2下最小输出功率) Qc2max(pc2下最大输出功率) ramp_agc(负荷跟踪/ AGC斜坡率) ramp_10(10分钟储备斜坡率) ramp_30 (30分钟储备斜坡率)ramp_q(2秒内功率曲线斜率) apf(区域参与因素) mpc.gen=[3 50 0 300 -300 1.1 100 1 250 10 0 0 0 0 0 0 0 0 0 0 0 4 0 0 300 -300 1.05 100 1 250 10 0 0 0 0 0 0 0 0 0 0 0]; 最后用branchdata(支路矩阵)描述系统输入 Branch data
fbus(始端节点) tbus(末端节点) r(全线路电阻) x(全线路电抗) b(全线路电纳) rateA(长期评级) rateB(短期评级) rateC(紧急评级) ratio(变压器支路变压器的变比) angle(变压器相位转换角) status(线路运行状态) angmin(最小角度差) angmax(最大角度差) mpc.branch=[1 2 0.1 0.4 0.0306 250 250 250 0 0 1 -360 360 3 1 0 0.2479 0 250 250 250 1.1 0 1 -360 360 1 4 0.12 0.5 0.0384 250 250 250 0 0 1 -360 360 2 4 0.08 0.4 0.0282 250 250 250 0 0 1 -360 360];
三个矩阵输入完毕后,一起保存在casebook.m文件下,并在开头加上mpc.version = '2';(定义mpc版本),mpc.baseMVA = 100;(设置基准功率)。 执行makeYbus(100,mpc.bus,mpc.branch) 求得系统节点导纳矩阵如下:
ans =
(1,1) 1.0421 - 8.2434i (2,1) -0.5882 + 2.3529i (3,1) 0 + 3.6672i (4,1) -0.4539 + 1.11i
(1,2) -0.5882 + 2.3529i (2,2) 1.0690 - 4.7274i (4,2) -0.4808 + 2.4038i (1,3) 0 + 3.6672i (3,3) 0 - 3.3338i (1,4) -0.4539 + 1.11i (2,4) -0.4808 + 2.4038i (4,4) 0.9346 - 4.2616i 然后运行runpf(casebook) 得到如下潮流计算结果
MATPOWER Version 4.1, 14-Dec-2011 -- AC Power Flow (Newton) Newton's method power flow converged in 4 iterations. Converged in 0.02 seconds
================================================================================ | System Summary | ================================================================================ How many? How much? P (MW) Q (MVAr) --------------------- ------------------- ------------- -----------------
Buses 4 Total Gen Capacity 500.0 -600.0 to 600.0 Generators 2 On-line Capacity 500.0 -600.0 to 600.0 Committed Gens 2 Generation (actual) 86.8 35.8 Loads 2 Load 85.0 31.0 Fixed 2 Fixed 85.0 31.0 Dispatchable 0 Dispatchable -0.0 of -0.0 -0.0 Shunts 0 Shunt (inj) -0.0 0.0 Branches 4 Losses (I^2 * Z) 1.79 14.57 Transformers 1 Branch Charging (inj) - 9.8 Inter-ties 0 Total Inter-tie Flow 0.0 0.0 Areas 1
Minimum Maximum ------------------------- -------------------------------- Voltage Magnitude 0.965 p.u. @ bus 2 1.100 p.u. @ bus 3 Voltage Angle -6.45 deg @ bus 2 6.73 deg @ bus 3 P Losses (I^2*R) - 0.97 MW @ line 2-4 Q Losses (I^2*X) - 6.41 MVAr @ line 3-1
================================================================================ | Bus Data | ================================================================================ Bus Voltage Generation Load # Mag(pu) Ang(deg) P (MW) Q (MVAr) P (MW) Q (MVAr) ----- ------- -------- -------- -------- -------- --------
1 0.985 -0.500 - - 30.00 18.00 2 0.965 -6.450 - - 55.00 13.00 3 1.100 6.731 50.00 9.34 - - 4 1.050 0.000* 36.79 26.47 - -
-------- -------- -------- --------
Total: 86.79 35.81 85.00 31.00
================================================================================ | Branch Data | ================================================================================ Brnch From To From Bus Injection To Bus Injection Loss (I^2 * Z)
# Bus Bus P (MW) Q (MVAr) P (MW) Q (MVAr) P (MW) Q (MVAr) ----- ----- ----- -------- -------- -------- -------- -------- --------
1 1 2 24.62 -1.47 -24.00 1.06 0.625 2.50 2 3 1 50.00 9.34 -50.00 -2.93 -0.000 6.41 3 1 4 -4.62 -13.61 4.82 10.45 0.197 0.82 4 2 4 -31.00 -14.06 31.97 16.02 0.966 4.83 -------- -------- Total: 1.788 14.57 其中节点电压幅值与相角为 # Mag(pu) Ang(deg) ----- ------- -------- --------
1 0.985 -0.500 2 0.965 -6.450 3 1.100 6.731 4 1.050 0.000* 功率损耗为
Brnch From To From Bus Injection To Bus Injection Loss (I^2 * Z)
# Bus Bus P (MW) Q (MVAr) P (MW) Q (MVAr) P (MW) Q (MVAr) ----- ----- ----- -------- -------- -------- -------- -------- --------
1 1 2 24.62 -1.47 -24.00 1.06 0.625 2.50 2 3 1 50.00 9.34 -50.00 -2.93 -0.000 6.41 3 1 4 -4.62 -13.61 4.82 10.45 0.197 0.82 4 2 4 -31.00 -14.06 31.97 16.02 0.966 4.83 -------- -------- Total: 1.788 14.57 与书上一致。
所使用的牛顿-拉夫逊程序如下:(列出核心程序) %% do Newton iterations while (~converged && i < max_it)
%% update iteration counter 增加迭代次数 i = i + 1;
%% evaluate Jacobian 再计算一次雅各比矩阵 [dSbus_dVm, dSbus_dVa] = dSbus_dV(Ybus, V); j11 = real(dSbus_dVa([pv; pq], [pv; pq])); j12 = real(dSbus_dVm([pv; pq], pq)); j21 = imag(dSbus_dVa(pq, [pv; pq])); j22 = imag(dSbus_dVm(pq, pq)); J = [ j11 j12; j21 j22; ]; %% compute update step
dx = -(J \\ F);
%% update voltage 更新电压 if npv
Va(pv) = Va(pv) + dx(j1:j2); end if npq
Va(pq) = Va(pq) + dx(j3:j4); Vm(pq) = Vm(pq) + dx(j5:j6); end
V = Vm .* exp(1j * Va); Vm = abs(V); Va = angle(V); %% evalute F(x) 更新F(x) mis = V .* conj(Ybus * V) - Sbus; F = [ real(mis(pv)); real(mis(pq)); imag(mis(pq)) ];
%% check for convergence 检查是否收敛 normF = norm(F, inf); if verbose > 1
fprintf('\\n%3d end if normF < tol converged = 1; if verbose
fprintf('\\nNewton''s method power flow converged in %d iterations.\\n', i); end end end
if verbose 如果迭代次数过多 if ~converged
fprintf('\\nNewton''s method power did not converge in %d iterations.\\n', i); end end
4结论
电力系统潮流计算机程序极大的减轻了人们进行潮流计算时的负担,快速而准确,较之于手工法有极大优势,缺点就是电机矩阵参数比较难以获得,只有专业从业人员才可能有相关数据。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务