武汉理工大学 电力系统分析课设 高斯-赛德尔法求节点电压

发布时间 : 星期日 文章武汉理工大学 电力系统分析课设 高斯-赛德尔法求节点电压更新完毕开始阅读

武汉理工大学《电力系统分析》课程设计说明书

?1.8509?j0.226 ?1.865?6.96

oU

.(1)3...1P(1)(1)(0)3?jQ3?(?YU?YU?YU)311322344.Y33(0)U3

?

1?1?j0.5(?(?1?j3)?1.04?(?0.666?j12)?(1.8509?j0.226)?(?2?j6)?1.05)3.666?j111?2.6593?j0.8265

?2.78?17.3

.(0)4o

***(1)2**(1)3**(0)4Q?Im(U ?

.(1)4(1)4?(Y41U1?Y42U?YU?YU))

*?14.635

U

...?jQ1P(1)(1)?(4.4?Y41U1?Y42U2?Y43U4)Y44(0)U4

10.3?j14.635?(?0?1?(?1?j3)?(1.8509?j0.226)?(?2?j6)?(2.6593?j0.8265))3?j91.05

?1.6656?j0.133

?1.67?4.57o

3 MATPOWER中建模解决问题

3.1 MATPOWER的技术规则

3.1.1数据文件格式

在潮流计算时,把电网的各种参数写成MATPOWER的数据文件格式,一般为M文件,MATPOWER4.0提供两种数据文件格式:version.1和version.2,我采用version.2格式。每个电网用变量名为“mpc”的结构体来定义,结构体mpc的不同字段用baseMVA、bus、branch、gen等来定义和返回电网的具体参数。在这些字段中,除baseMVA是标量外,其他都是矩阵。列的数据类似于标准的IEEE

11

武汉理工大学《电力系统分析》课程设计说明书

和PTI列的数据格式。MATPOWER中提供了大量的IEEE制定的典型模型,规范细节可以再caseformat.m中看到。mpc不同字段的简要介绍如下: (1)字段baseMVA是标量,设置基准电压,一般为100MVA。

(2)字段bus是一个矩阵,用来设置电网母线参数。矩阵每一行都对应一个单一的母线,列的数据格式为bus_i、type、Pd、Qd、Gs、Bs、area、Vm、Va、baseKV、zone、Vmax、Vmin。bus_i用来设置母线编号;type用来设置母线类型,1为PQ节点母线,2为PV节点母线,3为平衡节点母线,4为孤立节点母线;Pd、Qd用来设置母线注入负荷的有功功率和无功功率;Gs、Bs用来设置该母线并联电导和电纳;baseKV用来设置母线基准电压;Vm和Va用来设置母线电压幅值和相位初值;Vmax、Vmin用来设置母线工作时最高、最低电压幅值;area、zone用来设置电网断面号和分区号,一般为1。

(3)字段gen 为一个矩阵,用来设置接入电网的发电机参数。矩阵的每一行对应一个发电机,列的数据格式为bus、Pg、Qg、Qmax、Qmin、Vg、mBase、status、Pmax、Pmin。bus用来设置接入发电机的母线编号;Pg、Qg用来设置接入发电机的有功功率和无功功率;Pmax、Pmin用来设置接入发电机的有功功率最大和最小允许值;Qmax、Qmin用来设置接入发电机的无功功率最大和最小允许值;Vg用来设置接入发电机的工作电压;mBase用来设置接入发电机的基准功率;status用来设置发电机的工作状态,1表示投入,0退出。

(4)字段branch用来设置电网中各支路参数。矩阵的每一行都对应一个单一支路,列的数据格式为fbus、tbus、r、x、b、rateA、rateB、rateC、ratio、angle、status、angmin、angmax。Fbus、tbus用来设置该支路由起始节点编号和终止节点编号;r、x、b用来设置该支路的电阻、电抗、电纳;rateA、rateB、rateC用来设置该支路长期、短期、紧急允许功率;ratio用来设置该支路的变比,导线时为0,变压器时为变比;angle为支路的相位角度,导线时为0;status用来设置支路工作状态,1为投入,0退出运行;angmin、angmax用来设置支路相位角度的最大最小差值。

3.1.2控制选项

MATPOWER软件不但能够进行交流潮流计算,还能进行直流潮流、最优潮流等计算,进行计算时还可以选用不同的算法及输出格式。为实现以上功能,

12

武汉理工大学《电力系统分析》课程设计说明书

MATPOWER采用一个选项向量“mpoption”来达到对选项的控制。在变量名PF_ALG中通过改变值来达到改变算法,1对应牛顿法,2对应快速解耦算法(XB版本),3对应快速解耦算法(BX版本),4为高斯-赛德尔法,系统默认为1,即牛顿法。

在PF_MAX_IT中设置牛顿法的最大迭代次数,PF_MAX_IT_GS设置高斯-赛德尔法的最大迭代次数,系统默认为1000次。为实现系统算法从牛顿法到高斯-赛德尔法转换,使用方法如下所示:

在MATPOWER中文手册还有对MATPOWER的使用详细介绍(在MATPOWER/docs中有manual.pdf),在MATPOWER中有很多M文件很重要,比如runpf.m为定义一个运算潮流程序,Ext2int.m为将数据矩阵从外部节点编号转换为内部节点编号,loadcase.m为将数据从文件或者结构体重导入到数据矩阵中,还有很多,这些M文件使我们的建模得以实现,同时也是我们很好找到我们模型中问题。在我的建模过程中遇到了很多这样的问题,比如error('loadcase: syntax error or undefined data matrix(ices) in the file\\n%s', err5); mpc = loadcase(casedata);通过不断分析,加深理解,这些错误都是因为搭建的模型不足以有结果,所以系统的这些功能方便了我在编程时查找错误,这是这是它的一大优势。

另外,MATPOWER还提供了很多实例,如case_ieee30.m 就是 IEEE30 节点系统,这些实例给了初学者很多启发,同时也起到了规范作用。

3.2 MATPOWER实际建模

3.2.1 建模中的实际问题

首先要将bus模型建立起来,因为建模方便的需要,将题目的1243点编号变

成1432,所以点1为平衡节点,2、4点是PQ节点,点3是PV节点,根据bus的中的type类型的定义,1为3,2、4为1,3为2。Bus的矩阵如下:

%% bus data

% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin

13

武汉理工大学《电力系统分析》课程设计说明书

mpc.bus = [

1 3 0 0 0 0 1 1.04 0 100 1 1.1 0.94; 2 1 100 -50 0 0 1 1 0 100 1 1.1 0.94; 3 2 0 0 0 0 1 1.05 0 100 1 1.1 0.94; 4 1 -50 20 0 0 1 1 0 100 1 1.1 0.94; ];

接着要搭建支路模型,一开始我错误的判断支路是3条,其实后来仔细分析是5条,这都是因为基本功不扎实导致的,branch的矩阵如下:

%% branch data

% fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax mpc.branch = [

1 4 0.316 0.949 0 0 0 0 0 0 1 -360 360; 3 4 0.0554 0.998 0 0 0 0 0 0 1 -360 360; 2 4 0.316 0.949 0 0 0 0 0 0 1 -360 360; 1 2 0.316 0.949 0 0 0 0 0 0 1 -360 360; 2 3 0.316 0.949 0 0 0 0 0 0 1 -360 360; ];

然后其他一些语句的编写形成了我的M文件,然后试着运行,但是却一次次失败,通过对IEEE提供的范例,然后我试着对IEEE的case与文件对比,在它们的差异中,对IEEE的case逆推,找出关键原因在于发电机模型必不可少,这可能是MATPOWER的开发中作者的意图在于对电力系统的完整分析,数据来源上充沛,而局部的节点导纳矩阵的建模确由于loadcase.m、runpf.m等函数文件中严格要求而受到限制。由于这次的目标仅仅是求出节点电压,所以我试着加入发电机的模型,是它的潮流计算能得出节点电压,发电机的模型建立如下:

%% generator data

% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin mpc.gen = [

14

联系合同范文客服:xxxxx#qq.com(#替换为@)