南昌大学电力系统分析实验报告

更新时间:2024-06-12 03:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科生实验报告

课程名称: 电力系统分析实验

专业班级: 电力系统124 班 姓 名: 学 号:

所在学期: 2014-2015-2

2015年 6 月 20 日

实验四 配电网潮流计算实验

一、实验目的

本实验针对配电网具有辐射式开环结构的特性,基于前推回代的方法编制程序使系统潮流计算能够由计算机自行完成,即已知配电网首端节点电压和各末端节点的功率,由末端向首端计算网络功率分布,再由首端向末端计算节点电压分布,迭代直至收敛条件。通过实验教学加深学生对配电网潮流计算方法的理解,掌握树状辐射式配电网潮流计算的基本算法。熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。 二、实验器材

计算机、软件(已安装,包括各类编程软件C语言、C++、VB、VC等、应用软件MATLAB等)、移动存储设备(学生自备,软盘、U盘等) 三、实验内容

编制调试配电网潮流计算的计算机程序。程序要求根据已知的配电网参数,完成该配电系统的潮流计算,要求计算出节点电压、功率等参数。

1.先编制好的电力系统潮流计算的计算程序原代码由自备移动存储设备导入计算机。

2.应的编程环境下对程序进行组织调试。 3.应用计算例题验证程序的计算效果。 4.对调试正确的计算程序进行存储、打印。 5.完成本次实验的实验报告。 四、实验数据

31+j2? 11+j1?2S3M10kVS1S22+j2? 42+j1? 5S5

如图所示一个5节点的配电网系统,S1=S2=2+j2(MV·A),S3=S4=S5=4+j4(MV·A),假定所有负荷均为恒功率负荷,节点1为参考节点相

?6角为0o。计算电网个节点电压及支路功率分布,收敛条件为??10。

S4五、实验程序

% 配电网前推回代潮流计算程序

% 使用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 = [0;BranchData(:,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);

end

%----------------- 以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差 ----------------------------

for k=3:N0 % N0=2*n (从第三行开始,第一、二行是平衡节点)

k1=k+1;N1=N; % N=N0+1 即 N=2*n+1扩展列△P、△Q 或 △U

for k2=k1:N1 % 从k+1列的Jacobi元素到扩展列的△P、△Q 或 △U

J(k,k2)=J(k,k2)./J(k,k);% 用K行K列对角元素去除K行K列后的非对角元素进行规格化 end

J(k,k)=1; % 对角元规格化K行K列对角元素赋1 %---------------------- 回代运算 ----------------------------------------

if k~=3 % 不是第三行 k > 3 k4=k-1;

for k3=3:k4 % 用k3行从第三行开始到当前行的前一行k4行消去

for k2=k1:N1 % k3行后各行上三角元素

J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行k列元素消为0)

end %用当前行K2列元素减去当前行k列元素乘以第k行K2列元素

J(k3,k)=0; %当前行第k列元素已消为0 end

if k==N0 %若已到最后一行 break; end

%---------------------- 前代运算 ---------------------------

for k3=k1:N0 % 从k+1行到2*n最后一行

for k2=k1:N1 % 从k+1列到扩展列消去k+1行后各行下三角元素

J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算

end %用当前行K2列元素减去当前行k列元素乘以第k行K2列元素

J(k3,k)=0; %当前行第k列元素已消为0 end

else %是第三行k=3

%---------------------- 第三行k=3的前代运算 -----------------------------------------

for k3=k1:N0 %从第四行到2n行(最后一行)

for k2=k1:N1 %从第四列到2n+1列(即扩展列)

J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0)

end %用当前行K2列元素减去当前行3列元素乘以第三行K2列元素

J(k3,k)=0; %当前行第3列元素已消为0 end end end

%--------上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵------- for k=3:2:N0-1 L=(k+1)./2;

e(L)=e(L)-J(k,N); %修改节点电压实部 k1=k+1;

f(L)=f(L)-J(k1,N); %修改节点电压虚部 end

%------修改节点电压----------- for k=3:N0

DET=abs(J(k,N));

if DET>=pr %电压偏差量是否满足要求 IT2=IT2+1; %不满足要求的节点数加1 end end

ICT2(a)=IT2; %不满足要求的节点数 ICT1=ICT1+1; %迭代次数 end

%用高斯消去法解\disp('迭代次数:'); disp(ICT1);

disp('没有达到精度要求的个数:'); disp(ICT2); for k=1:n

V(k)=sqrt(e(k)^2+f(k)^2); %计算各节点电压的模值

sida(k)=atan(f(k)./e(k))*180./pi; %计算各节点电压的角度 E(k)=e(k)+f(k)*j; %将各节点电压用复数表示 end

%------------------------ 计算各输出量 ------------------------------- disp('各节点的实际电压标幺值E为(节点号从小到大排列):'); disp(E); %显示各节点的实际电压标幺值E用复数表示 disp('-----------------------------------------------------');

disp('各节点的电压大小V为(节点号从小到大排列):'); disp(V); %显示各节点的电压大小V的模值 disp('-----------------------------------------------------');

disp('各节点的电压相角sida为(节点号从小到大排列):');

disp(sida); %显示各节点的电压相角 for p=1:n C(p)=0; for q=1:n

C(p)=C(p)+conj(Y(p,q))*conj(E(q)); %计算各节点的注入电流的共轭值 end

S(p)=E(p)*C(p); %计算各节点的功率 S = 电压 X 注入电流的共轭值 end

disp('各节点的功率S为(节点号从小到大排列):'); disp(S); %显示各节点的注入功率

五、实验结果

在上图所示的简单电力系统中,系统中节点1、2为PQ节点,节点3为PV节点,节点4为平衡节点,已给定

P1s+jQ1s=-0.30-j0.18 P2s+jQ2s=-0.55-j0.13 P3s=0.5 V3s=1.10 V4s=1.05∠0°

容许误差ε=10-5

节点导纳矩阵:

各节点电压:

节点 e f v ζ 1. 0.984637 -0.008596 0.984675 -0.500172 2. 0.958690 -0.108387 0.964798 -6.450306 3. 1.092415 0.128955 1.100000 6.732347 4. 1.050000 0.000000 1.050000 0.000000

各节点功率:

节点 P Q 1 -0.300000 -0.180000 2 –0.550000 -0.130000 3 0.500000 -0.551305 4 0.367883 0.264698

导纳矩阵 Y=

1.0421 - 8.2429i -0.5882 + 2.3529i 0.0000 + 3.6667i -0.4539 + 1.8911i -0.5882 + 2.3529i 1.0690 - 4.7274i 0.0000 + 0.0000i -0.4808 + 2.4038i 0.0000 + 3.6667i 0.0000 + 0.0000i 0.0000 - 3.3333i 0.0000 + 0.0000i -0.4539 + 1.8911i -0.4808 + 2.4038i 0.0000 + 0.0000i 0.9346 - 4.2616i

迭代次数: 4

各节点的实际电压标幺值E为(节点号从小到大排列):

0.9854 - 0.0485i 0.9691 - 0.0759i 1.0968 + 0.0844i 1.0500 + 0.0000i 各节点的电压大小e为(节点号从小到大排列): 0.9854 0.9691 1.0968 1.0500 各节点的电压大小f为(节点号从小到大排列): -0.0485 -0.0759 0.0844 0 各节点的电压大小V为(节点号从小到大排列): 0.9866 0.9721 1.1000 1.0500 各节点的电压相角sida为(节点号从小到大排列): -2.8167 -4.4784 4.4018 0

各节点的功率S为(节点号从小到大排列):

-0.5500 - 0.1300i -0.3000 - 0.1800i 0.5000 + 0.0857i 0.3595 + 0.2343i

实验六 水火电厂间有功功率负荷的经济分配

一、实验目的

本实验通过对水火电厂间有功功率负荷的经济分配的计算机程序编制与调试,获得能计算有功负荷经济分配的计算机程序,即根据已知的水火电厂的耗量特性、发电用水量及各时间段的有功负荷功率,由计算机程序自动完成各时段各电厂的有功出力的计算。通过实验教学加深学生对电力系统经济运行概念的理解,学会运用数学模型进行水火电厂间的有功功率负荷的经济分配计算,熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。

二、实验器材

计算机、软件(已安装,包括各类编程软件C语言、C++、VB、VC等、应用软件MATLAB等)、移动存储设备(学生自备,软盘、U盘等)

三、实验内容

编制调试水、火电厂间有功功率负荷经济分配的计算机程序。程序要求根据已知参数,完成水火电厂间有功功率负荷的经济分配计算,要求计算出各电厂满足经济运行要求所分配的有功负荷等参数。

1.熟悉电力系统经济运行的计算方法,按照计算方法编制程序。 2.将事先编制好的计算程序原代码由自备移动存储设备导入计算机。 3.在相应的编程环境下对程序进行组织调试。 4.应用计算例题验证程序的计算效果。 5.对调试正确的计算程序进行存储、打印。 6.完成本次实验的实验报告。

四、实验数据

一个火电厂和一个水电厂并联运行。火电厂的燃料消耗特性为:

水电厂的耗水量特性为:

水电厂的给定日用水量为

。系统的日负荷变化如下:

时,负荷为700MW,

时 负荷为

时 负荷为350MW,

500MW。火电厂容量为600MW,水电厂容量为450MW。试确定水、火电厂间的功率经济分配。

五、实验程序

%程序说明:ph变量是多行三列的变量,每一列分别对应书中PH1 PH2 PH3;行列数等于迭代次数

%pt变量是多行三列的变量,每一列分别对应书中PT1 PT2 PT3;行列数等于迭代次数

%W变量是一行多列向量,代表书中的全日发电耗水量,列数等于迭代次数 clc;clear;

syms sym_pt sym_ph sym_f sym_w sym_pld sym_y %定义变量 sym_f=3+0.4.*sym_pt+0.00035.*sym_pt^2; %火电消耗方程 sym_w=2+0.8.*sym_ph+1.5.*0.001.*sym_ph^2;%水电消耗方程 sym_df=char(diff(sym_f,'sym_pt'));%火电消耗方程求导 sym_dw=char(diff(sym_w,'sym_ph'));%水电消耗方程求导

sym_mw=[double(sym_df) double('==sym_y*(') double(sym_dw) double(')')]; %建立等式方程

[sym_ph,sym_pt]=solve('sym_ph+sym_pt-sym_pld==0',char(sym_mw),'sym_ph','sym_pt');%求解方程组 format long

%%%用水量误差值设定 e=50;

%%%%实际全日发电耗水量 wd=1.5e7;

%%%y值的初值 y(1)=0.5; %%负荷功率

pld=[350 700 500]; %%实际负荷功率初值 w(1)=0;

%%迭代次数 k=1;

%%%y每次迭代增量 add_num=1e-4; ri=[8 10 6];

while (abs(w(k)-wd)>e) && k<=3000

%公式ph(k,:)=(0.4-0.8.*y(k)+0.0007.*pld)./(0.003.*y(k)+0.0007); ph(k,:)=double(subs(sym_ph,{sym_pld,sym_y},{pld,y(k)}));

% 公式pt(k,:)=(0.8.*y(k)-0.4+0.003.*y(k).*pld)./(0.003.*y(k)+0.0007); pt(k,:)=double(subs(sym_pt,{sym_pld,sym_y},{pld,y(k)}));

%公式w(k)=sum((2+0.8.*ph(k,:)+(1.5e-3).*ph(k,:).^2).*ri.*3600);

w(k)=double(3600.*(ri(1).*subs(sym_w,{ph(k,1)})+ri(2).*subs(sym_w,{ph(k,2)})+ri(3).*subs(sym_w,{ph(k,3)}))); if w(k)>wd

add=add_num; else

add=(-1).*add_num;

end k=k+1;

y(k)=y(k-1)+add; w(k)=w(k-1); end k=k-1;

disp(['迭代次数:']) disp(k(end))

disp('全日发电耗水量为:') disp(w(end)) disp('y值:') disp(y(end))

disp('火电厂分担负荷PT1 PT2 PT3 分别为:') disp(pt(end,:))

disp('水电厂分担负荷PH1 PH2 PH3 分别为:') disp(ph(end,:))

六、实验结果

迭代次数: 5000

全日发电耗水量为:

1.500327200785120e+07 y值:

0.514199999999998

火电厂分担负荷PT1 PT2 PT3 分别为: 1.0e+02 *

2.457677384828078 4.865049279757391 水电厂分担负荷PH1 PH2 PH3 分别为: 1.0e+02 *

1.042322615171922 2.134950720242608

3.489408196940642 1.510591803059359

本文来源:https://www.bwwdw.com/article/5dp6.html

Top