当前位置:文档之家› 现代电力系统潮流计算作业复习进程

现代电力系统潮流计算作业复习进程

现代电力系统潮流计算作业复习进程
现代电力系统潮流计算作业复习进程

现代电力系统——潮流计算作业

0 序章

作业要求(A组):

0.1 调用matpower中的runpf函数,分析输入文件中各矩阵定义;

0.2 调用某一个算例,输出潮流结果,并分析。

0.3 完成0.1和0.2的基础上,分析matpower中牛顿法和快速解耦法,给出流程图,写出newtonpf和fdpf函数每行程序定义。

0.4 完成0.3的基础上,制造一个病态潮流算例,并跟踪调试,分析病态原因。

1 分析输入文件中各矩阵的定义

1.1 MATPOWER的安装

MATPOWER工具箱的安装步骤如下:

1)下载matpower压缩包。官方下载网址:https://www.doczj.com/doc/4e11064791.html,/matpower/,目前最新版本为6.0b1,稳定版本为5.1,建议下载稳定版本。

2)解压压缩包,得到文件夹matpower5.1,并将文件夹移动到MATLAB所在路径的toolbox文件夹下。我的路径为:C:\Program Files\MATLAB\R2016a\toolbox。

3)添加地址到MATLAB路径。打开MATLAB,点击“文件”→“设置路径”→“添加并包含子文件夹…”,找到matpower5.1所在的位置,点击“确定”,再点“保存”→“关闭”。

4)测试matpower工具是否安装成功。在MATLAB命令行窗口输入“test_matpower”,出现一系列的测试,均显示“ok”,最后显示“All tests successful (3256 passed, 682 skipped of 3938)”,则表示安装成功。

1.2 矩阵的定义

打开文档“caseformat.m”,或者在MATLAB命令行窗口中输入“help caseformat”,可以得到关于输入矩阵的数据定义。当然,也可以参考docs文件夹下的manual文档,其中对matpower工具箱进行了详细说明。

在matpower中,输入矩阵至少包含三种:母线参数矩阵(Bus Data),发电机参数矩阵(Generator Data),支路参数矩阵(Branch Data)。为了进行最优潮流的相关计算,

输入矩阵还包含发电机费用参数矩阵(generator cost data)。以下对三种基本的输入参数矩阵数据格式进行详细说明。

表1.1 母线参数矩阵主要数据格式说明

表1.2 发电机参数矩阵主要数据格式说明

表1.3 支路参数矩阵主要数据格式说明

1.3 case9数据分析

根据以上分析,打开一个算例,比如默认的case9,进行分析。算例case9.m文件包含两个变量和四个矩阵。其中baseMVA=100,表示功率的基准值为100MVA。三个基本的矩阵定义如下。

表1.4 算例case9的母线参数矩阵

表1.6 算例case9的支路参数矩阵

根据参数矩阵,可以推测出case9的电力系统单线图,如图1.1所示。该系统是一个环形网络,包含三个带有发电机的母线,其中母线1是平衡节点,母线2和3均为PV节点,其他的母线都是PQ节点。所有的母线电压初始幅值均设置为1(p.u.),相角为0度,电压基准值为345kV。系统包含3个负荷,分别是母线5上的负荷为90+j30(MVA),母线7上的负荷为100+j35(MVA),母线9上的负荷为125+j50(MVA)。支路1-4,3-6,8-2只有电抗值,电阻和电纳均为0,可以推测该支路为变压器支路的等效。

图1.1 系统单线图

2 计算潮流并分析

2.1 调用runpf计算case9系统的潮流

在MATLAB命令行窗口输入“runpf”或“runpf(‘case9’)”,或者直接运行“runpf.m”,得到case9系统的潮流计算结果:

MATPOWER Version 5.1, 20-Mar-2015 -- AC Power Flow (Newton)

Newton's method power flow converged in 4 iterations.

Converged in 0.03 seconds

================================================================================

| System Summary |

================================================================================

How many? How much? P (MW) Q (MVAr)

--------------------- ------------------- ------------- -----------------

Buses 9 Total Gen Capacity 820.0 -900.0 to 900.0

Generators 3 On-line Capacity 820.0 -900.0 to 900.0

Committed Gens 3 Generation (actual) 320.0 34.9

Loads 3 Load 315.0 115.0

Fixed 3 Fixed 315.0 115.0

Dispatchable 0 Dispatchable -0.0 of -0.0 -0.0

Shunts 0 Shunt (inj) -0.0 0.0

Branches 9 Losses (I^2 * Z) 4.95 51.31

Transformers 0 Branch Charging (inj) - 131.4

Inter-ties 0 Total Inter-tie Flow 0.0 0.0

Areas 1

Minimum Maximum

------------------------- --------------------------------

Voltage Magnitude 0.958 p.u. @ bus 9 1.003 p.u. @ bus 6

Voltage Angle -4.35 deg @ bus 9 9.67 deg @ bus 2

P Losses (I^2*R) - 2.46 MW @ line 8-9

Q Losses (I^2*X) - 16.74 MVAr @ line 8-2

================================================================================ | Bus Data | ================================================================================ Bus Voltage Generation Load

# Mag(pu) Ang(deg) P (MW) Q (MVAr) P (MW) Q (MVAr)

----- ------- -------- -------- -------- -------- --------

1 1.000 0.000* 71.95 24.07 - -

2 1.000 9.669 163.00 14.46 - -

3 1.000 4.771 85.00 -3.65 - -

4 0.987 -2.407 - - - -

5 0.975 -4.017 - - 90.00 30.00

6 1.003 1.926 - - - -

7 0.986 0.622 - - 100.00 35.00

8 0.996 3.799 - - - -

9 0.958 -4.350 - - 125.00 50.00

-------- -------- -------- --------

Total: 319.95 34.88 315.00 115.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 4 71.95 24.07 -71.95 -20.75 -0.000 3.32

2 4 5 30.7

3 -0.59 -30.55 -13.69 0.17

4 0.94

3 5 6 -59.45 -16.31 60.89 -12.43 1.449 6.31

4 3 6 85.00 -3.6

5 -85.00 7.89 0.000 4.24

5 6 7 24.11 4.54 -24.01 -24.40 0.095 0.81

6 7 8 -75.99 -10.60 76.50 0.26 0.506 4.29

7 8 2 -163.00 2.28 163.00 14.46 0.000 16.74

8 8 9 86.50 -2.53 -84.04 -14.28 2.465 12.40

9 9 4 -40.96 -35.72 41.23 21.34 0.266 2.26

-------- --------

Total: 4.955 51.31

2.2 潮流计算结果分析

Matpower工具箱的潮流计算结果由四部分组成:程序运行信息,系统概述,母线数据,支路数据。

其中,程序运行信号包含潮流计算类型,使用的迭代算法,迭代次数,所用时间。本次潮流计算是交流潮流计算,采用了Newton法,迭代了4次得到了符合精度要求的结果,耗时0.03s。

系统概述描述了系统的基本信息。包括系统元件的数量,元件的功率大小,电压和功率损耗的极值。如case9系统包含9个节点,3个发电机,3个负荷,9条支路。总装机容量820MW,在线容量820MW,实际发电320MW,负荷消耗有功315MW,总网损4.95MW。母线9上电压幅值最小:0.958(p.u.),电压相角也最小:-4.35°,母线6上电压幅值最大:1.003(p.u.),母线2上相角最大:9.67°,支路8-9上消耗了最多的有功功率:2.46MW。

母线数据包含母线电压结果,发电机输出功率,负荷消耗功率,累计功率。

表2.1 潮流计算结果母线数据

支路数据包含起始母线注入功率、终止母线注入功率和支路上的功率损耗。

表2.1 潮流计算结果支路数据

319.95MW,负荷消耗的总有功功率为315MW,网损为4.955MW。另外可以得到系统的潮流分布图如图2.1所示。

71.95

71.95

1.00

0.987-2.407

∠0.975-4.017

0.958-4.350

∠0.9860.622

1.003 1.926

1.0 4.771

1.09.669

0.996 3.799

图2.1 系统潮流分布图

3 迭代算法分析

3.1 牛顿法分析

打开newtonpf.m文档,可以看到matpower的牛顿法的介绍和代码。函数的输入参数包含系统的节点导纳矩阵,节点的注入复功率,初始电压,平衡节点、PV节点和PQ 节点的标号列向量,以及包含终止误差、最大迭代次数和输出选项的结构体。返回节点电压,收敛标志和迭代次数。

通过分析可以得到matpower的牛顿法的程序流程图,如图3.1所示,这和一般的牛顿法潮流计算程序并没有什么区别。

图3.1 牛顿法潮流计算程序流程图

以下是newtonpf函数的每行程序的定义。

function [V, converged, i] = newtonpf(Ybus, Sbus, V0, ref, pv, pq, mpopt)

%NEWTONPF 使用完整的牛顿法求解潮流

% [V, CONVERGED, I] = NEWTONPF(YBUS, SBUS, V0, REF, PV, PQ, MPOPT)

% 通过分别给定完整系统的导纳矩阵(针对所有节点),节点的注入

% 复功率(针对所有节点),节点电压的初始值,和平衡节点、PV节点和PQ节

% 点标号的列向量,求解节点电压。节点电压矢量包含发电机节点(包括平衡

% 节点)的设定值和平衡节点的参考角度,以及幅度的大小和角度的初始值。

% MPOPT是一个MATPOWER选项结构体,可用于设置终止误差限,最大迭代次数和% 输出选项(有关详细信息,请参阅MPOPTION)。如果未指定此参数,则使用

% 默认选项。最终返回节点电压相量,收敛标志以及迭代次数。

%

% 参考RUNPF.

%% 缺省参数设置

if nargin < 7 % 如果输入参数少于7项

mpopt = mpoption; % 则设置mpopt的缺省值为mpoption

end

%% 求解选项

tol = mpopt.pf.tol; % 终止误差限

max_it = mpopt.pf.nr.max_it; % 最大迭代次数

%% 初始化

converged = 0; % 收敛标志位清零,不收敛

i = 0; % 迭代次数清零

V = V0; % 初始电压值

Va = angle(V); % 电压相位初始值

Vm = abs(V); % 电压幅值初始值

%% 为了更新电压,建立电压的指针

npv = length(pv); % PV节点数目

npq = length(pq); % PQ节点数目

j1 = 1; j2 = npv; %% PV节点的电压相角

j3 = j2 + 1; j4 = j2 + npq; %% PQ节点的电压相角

j5 = j4 + 1; j6 = j4 + npq; %% PQ节点的电压幅值

%% 计算修正方程式的常数项

mis = V .* conj(Ybus * V) - Sbus; % 计算误差

F = [ real(mis([pv; pq])); % delta(P) 有功误差

imag(mis(pq)) ]; % delta(Q) 无功误差

%% 判断误差

normF = norm(F, inf); % F的无穷范数(等效于取最大值)

if mpopt.verbose > 1 % 如果该标志位大于1,则保存进度信息到文档fprintf('\n it max P & Q mismatch (p.u.)');

fprintf('\n---- ---------------------------');

fprintf('\n%3d %10.3e', i, normF);

end% 将进度信息输出到文档中

if normF < tol % 误差是否小于误差限

converged = 1; % 收敛标志置1

if mpopt.verbose > 1 % 如果该标志位大于1,则保存进度信息到文档fprintf('\nConverged!\n');% 将该字符串输出到指定文档中end

end

%% 进行牛顿迭代

while (~converged && i < max_it) % 不收敛并且小于最大迭代次数%% 更新迭代次数

i = i + 1; % 迭代次数加1

%% 更新雅克比矩阵

[dSbus_dVm, dSbus_dVa] = dSbus_dV(Ybus, V); % 计算雅克比矩阵各元素

j11 = real(dSbus_dVa([pv; pq], [pv; pq])); % 得到雅克比矩阵的子矩阵H j12 = real(dSbus_dVm([pv; pq], pq)); % 得到雅克比矩阵的子矩阵N

j21 = imag(dSbus_dVa(pq, [pv; pq])); % 得到雅克比矩阵的子矩阵J

j22 = imag(dSbus_dVm(pq, pq)); % 得到雅克比矩阵的子矩阵L

J = [ j11 j12;

j21 j22; ]; % 得到雅克比矩阵

%% 计算修正量

dx = -(J \ F); % 得到修正量

%% 更新电压

if npv % 如果是PV节点

Va(pv) = Va(pv) + dx(j1:j2); % 更新PV节点的电压相位end

if npq % 如果是PQ节点

Va(pq) = Va(pq) + dx(j3:j4); % 更新PQ节点的电压相位

Vm(pq) = Vm(pq) + dx(j5:j6); % 更新PQ节点的电压幅值end

V = Vm .* exp(1j * Va); % 更新所有的节点电压

Vm = abs(V); %% 所有节点电压幅值-->Vm

Va = angle(V); %% 所有节点电压相位-->Va

%% 计算修正方程式的常数项

mis = V .* conj(Ybus * V) - Sbus; % 计算误差

F = [ real(mis(pv)); % PV节点的有功功率误差

real(mis(pq)); % PQ节点的有功功率误差

相关主题
文本预览
相关文档 最新文档