电力系统分析潮流计算matlab

  • 格式:docx
  • 大小:138.61 KB
  • 文档页数:15

下载文档原格式

  / 33
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录:

一、软件需求说明书 (3)

二、概要设计说明书 (4)

1、编写潮流计算程序 (4)

2、数据的输入测试 (4)

3、运行得出结果 (4)

4、进行实验结果验证 (4)

三、详细设计说明书 (5)

1、数据导入模块 (5)

2、节点导纳矩阵模块 (5)

3、编号判断模块 (5)

4、收敛条件判定模块 (5)

5、雅可比矩阵模块 (5)

6、迭代计算模块 (5)

7、计算输出参数模块 (5)

四、程序代码 (6)

五、最测试例 (15)

1、输入结果 (15)

2、输出结果 (15)

3、结果验证 (15)

一、软件需求说明书

本次设计利用MATLAB/C++/C(使用MATLAB)编程工具编写潮流计算,实现对节点电压和功率分布的求取。

潮流方程的求解基本方法是迭代,包括牛顿-拉夫逊法,以及P-Q分解法,本次设计采用牛顿迭代法。

牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法,它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。

牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。

二、概要设计说明书

1、编写潮流计算程序

本程序主要分为七个模块:数据导入模块、节点导纳矩阵模块、编号判断模块、收敛条件判定模块、雅可比矩阵模块、迭代计算模块、计算输出参数模块。

下图为潮流迭代框图。

2、数据的输入测试

本次设计是将《电力系统分析》课本P88例题进行潮流计算。

3、运行得出结果

得出电压、有功功率、无功功率、角度的数据。

4、进行实验结果验证

三、详细设计说明书

1、数据导入模块:

利用Excel输入已知节点、支路数据,通过“读取”将数据导入MATLAB 中。

2、节点导纳矩阵模块:

利用已知的电阻电抗及导纳的值,根据导纳的计算公式,计算出节点的自导纳及节点间的互导纳的值,按照节点编号组成导纳矩阵,利用MATLAB“real”和“imag”调用导纳矩阵中的实部和虚部,分别形成电导和电纳的矩阵。

3、编号判断模块:

当首节点在变压器左侧,设为1,位于变压器右侧,设为2,既非1也非0为不含变压器;

节点类型为PQ时,为1,节点类型为PV时,为2,节点类型为VƟ时,为3。

4、收敛条件判定模块:

根据节点的类型赋初值,并进行失配功率的初步计算,判断是否符合收敛条件max{ΔPi,ΔQi}<104-。如不符合,则进行后续的计算。

5、雅可比矩阵模块:

根据节点类型确定雅克比矩阵的阶数,然后根据n维非线性方程组的修正方程求出雅克比矩阵。

6、迭代计算模块:

解修正方程,并进行收敛条件判断,如不符合条件则进行下一次迭代,以一直到符合条件为止。

7、计算输出参数模块:

当满足收敛条件max{ΔPi,ΔQi}<104-

时,结束迭代计算,计算电压、有功功率、无功功率、电压角度等参数。

四、程序代码

clear %清除变量;

filename='E:\MATLAB\zhilu.xlsx';

a=xlsread(filename); %读取支路信息;

filename='E:\MATLAB\jiedian.xlsx';

c=xlsread(filename); %读取节点信息

b=zeros(a(1,7)); %定义节点导纳矩阵

G=zeros(a(1,7));

B=zeros(a(1,7));

for i1=1:(a(1,7))

if (a(i1,5)==0) %%%首节点在变压器左侧

b(a(i1,1),a(i1,1))=b(a(i1,1),a(i1,1))+1/(a(i1,3)+1j*a(i1,4));

b(a(i1,2),a(i1,2))=b(a(i1,2),a(i1,2))+1/((a(i1,3)+1j*a(i1,4))*a(i1,6)

^2);

b(a(i1,1),a(i1,2))=b(a(i1,1),a(i1,2))+(-1/((a(i1,3)+1j*a(i1,4))*a(i1,

6)));

b(a(i1,2),a(i1,1))=b(a(i1,2),a(i1,1))+(-1/((a(i1,3)+1j*a(i1,4))*a(i1, 6)));%%%进行导纳计算

G(a(i1,1),a(i1,1))=real(b(a(i1,1),a(i1,1)));

G(a(i1,2),a(i1,2))=real(b(a(i1,2),a(i1,2)));

G(a(i1,1),a(i1,2))=real(b(a(i1,1),a(i1,2)));

G(a(i1,2),a(i1,1))=real(b(a(i1,2),a(i1,1)));

B(a(i1,1),a(i1,1))=imag(b(a(i1,1),a(i1,1)));

B(a(i1,2),a(i1,2))=imag(b(a(i1,2),a(i1,2)));

B(a(i1,1),a(i1,2))=imag(b(a(i1,1),a(i1,2)));

B(a(i1,2),a(i1,1))=imag(b(a(i1,2),a(i1,1)));

elseif (a(i1,5)==1) %%%首节点在变压器右侧

b(a(i1,1),a(i1,1))=b(a(i1,1),a(i1,1))+1/((a(i1,3)+1j*a(i1,4))*a(i1,6)

^2);

b(a(i1,2),a(i1,2))=b(a(i1,2),a(i1,2))+1/(a(i1,3)+1j*a(i1,4));

b(a(i1,1),a(i1,2))=b(a(i1,1),a(i1,2))+(-1/((a(i1,3)+1j*a(i1,4))*a(i1,

6)));

b(a(i1,2),a(i1,1))=b(a(i1,2),a(i1,1))+(-1/((a(i1,3)+1j*a(i1,4))*a(i1,