% 使用IEEE 33节点配电系统作为算例,可实现弱环网情况下的潮流计算
countnum=0
BranchData = [
1 2 0.0922 0.0470
2 3 0.4930 0.2511
3 4 0.3660 0.1864
4 5 0.3811 0.1941
5 6 0.8190 0.7070
6 7 0.1872 0.6188
7 8 0.7114 0.2351
8 9 1.0300 0.7400
9 10 1.0440 0.7400
10 11 0.1966 0.0650
11 12 0.3744 0.1238
12 13 1.4680 1.1550
13 14 0.5416 0.7129
14 15 0.5910 0.5260
15 16 0.7463 0.5450
16 17 1.2890 1.7210
17 18 0.7320 0.5740
2 19 0.1640 0.1565
19 20 1.5042 1.3554
20 21 0.4095 0.4784
21 22 0.7089 0.9373
3 23 0.4512 0.3083
23 24 0.8980 0.7091
24 25 0.8960 0.7011
6 26 0.2030 0.1034
26 27 0.2842 0.1447
27 28 1.0590 0.9337
28 29 0.8042 0.7006
29 30 0.5075 0.2585
30 31 0.9744 0.9630
31 32 0.3105 0.3619
32 33 0.3410 0.5302
] % 支路,阻抗
NodeData = [
2 100.00 60.00
3 90.00 40.00
4 120.00 80.00
5 60.00 30.00
6 60.00 20.00
7 200.00 100.00
8 200.00 100.00
9 60.00 20.00
10 60.00 20.00
11 45.00 30.00
12 60.00 35.00
13 60.00 35.00
14 120.00 80.00
15 60.00 10.00
16 60.00 20.00
17 60.00 20.00
18 90.00 40.00
19 90.00 40.00
20 90.00 40.00
21 90.00 40.00
22 90.00 40.00
23 90.00 50.00
24 420.00 200.00
25 420.00 200.00
26 60.00 25.00
27 60.00 25.00
28 60.00 20.00
29 120.00 70.00
30 200.00 600.00
31 150.00 70.00
32 210.00 100.00
33 60.00 40.00
] % 节点,负荷
UB = 12.66 % 电压基准 kV
SB = 10 % 功率基准 MVA
ZB = UB^2/SB % 阻抗基准 ohm
BranchData(:,[3,4]) = BranchData(:,[3,4]) / ZB % 阻抗标幺化
NodeData(:,[2,3]) = NodeData(:,[2,3]) / SB / 1000% 功率标幺化
NN = 33 % 节点数
A0 = zeros(NN)
for n = 1:NN-1
A0(BranchData(n,1),BranchData(n,2)) = 1
end % 形成 A0
AssociatedMatrix=0
for n=2:NN-1
AssociatedMatrix(n,n)=1
temp=BranchData(n-1,1)
AssociatedMatrix(n,1:n-1)=AssociatedMatrix(temp,1:n-1)
end
A0T = A0' % 形成 A0 的转置
S = [0-NodeData(:,2) - i*NodeData(:,3)] % 形成 S
ZL = [0BranchData(:,3) + i*BranchData(:,4)] % 形成 ZL
V = ones(NN,1)
V(1) = 1 % 各个节点电压赋初值
IL(NN,1) = -conj(S(NN) / V(NN)) % 最末支路电流赋初值
Delta = 1 % 收敛判据赋初值
TempV = V % 赋初值,用于记忆上次迭代结果
while Delta > 1e-8
countnum=countnum+1
IN = conj(S ./ V) % 节点注入电流
for n = 1:NN-1
IL(NN-n) = A0(NN-n,NN-n+1:end) * IL(NN-n+1:end) - IN(NN-n)
end % 电流回代过程
for n = 2:NN
V(n) = A0T(n,1:n-1) * V(1:n-1) - ZL(n) * IL(n)
end % 电压前推过程
Delta = max(abs(V-TempV)) % 更新收敛判据
TempV = V % 记忆迭代结果
end
Vangle(:,1)=abs(V)
Vangle(:,2)=angle(V)/3.1415*180
for i=1:NN-1
st=BranchData(i,1)
en=BranchData(i,2)
Sij(i,1)=V(st)*conj((V(st)-V(en))/ZL(i+1))
Sji(i,1)=V(en)*conj((V(en)-V(st))/ZL(i+1))
end
希望你能用到
MATLAB简单潮流计算程序如下:
function lianxuchaoliu
clear
clc
n=9%节点数;
nl=9%支路数;
isb=1%平衡节点号;
pr=0.00001%误差精度;
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
一、课程设计的目的与要求 目的:培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 要求:基本要求: 1.编写潮流计算程序; 2.在计算机上调试通过; 3.运行程序并计算出正确结果; 4.写出课程设计报告 二、设计步骤: 1.根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。2.在给定的电力网络上画出等值电路图。 3.运用计算机进行潮流计算。 4.编写设计说明书。 三、设计原理 1. 牛顿-拉夫逊原理 牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额
课程设计报告
2 定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。 牛顿—拉夫逊迭代法的一般步骤: (1)形成各节点导纳矩阵Y。 (2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。 (3)计算各个节点的功率不平衡量。 (4)根据收敛条件判断是否满足,若不满足则向下进行。 (5)计算雅可比矩阵中的各元素。 (6)修正方程式个节点电压 (7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。 (8)计算平衡节点输出功率和各线路功率 2. 网络节点的优化 1)静态地按最少出线支路数编号 这种方法由称为静态优化法。在编号以前。首先统计电力网络个节点的出线支路数,然后,按 出线支路数有少到多的节点顺序编号。当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也 2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出 来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。 3. MATLAB编程应用 Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)