实验报告06级.docx
《实验报告06级.docx》由会员分享,可在线阅读,更多相关《实验报告06级.docx(82页珍藏版)》请在冰豆网上搜索。
实验报告06级
昆明理工大学电力工程学院学生实验报告
实验课程名称:
《电力系统计算机辅助分析》上机实验
开课实验室:
七号楼计算机中心机房2009年10月19日
年级、专业、班
电自061
学号
姓名
成绩
实验项目名称
电力系统计算中常用的数值算法
指导教师
宋琪
教师评语
教师签名:
宋琪
年月日
一、上机实验目的
1、了解、掌握MATLAB软件的基本运用
2、掌握高斯消去法、因子表求解线性方程组的基本原理
3、读懂课本中相应算法的实际例程
4、掌握MATLAB针对上述算法提供的函数
二、算法功能与原理
三、程序流程图
图17.1形成因子表的框图
四、过程记录
例:
17.1求以下系数矩阵的因子表
例17.2在例17.1因子表的基础上进行前代
输入数据为:
请输入矩阵A=[1560;5270;6738;0084]
输入常数项矩阵B=[1;2;3;4]
结果:
利用因子表对常数项进行前代的结果为:
B=1.00000.130400.3846
例17.3求例17.2线性方程组的解。
输入数据为:
请输入矩阵A=[1560;5270;6738;0084]
请输入常数项矩阵B=[1;2;3;4]
五、源码
1.因子表的形成过程
clc;
clearall;
A=[1560;5270;6738;0084];
[n,m]=size(A);
fori=1:
n%按行进行循环
A(i,i)=1./A(i,i);%用对角元位置存储归一化该行所用的系数
forj=i+1:
n%用归一化系数乘以本行对角元右侧的元素,并存于原位
A(i,j)=A(i,j)*A(i,i);
end
fork=i+1:
n%用被归一化的行,消去下面的剩余行
forj=i+1:
n%实际被处理的元素,在被归一化的对角元的右下角
A(k,j)=A(k,j)-A(k,i)*A(i,j);
end
end
end
disp('矩阵A的因子表为:
');
disp(A)
运行结果:
矩阵A的因子表为:
1.00005.00006.00000
5.0000-0.04351.00000
6.0000-23.0000-0.1000-0.8000
008.00000.0962
2.利用因子表的前代过程
clc;
clearall;
A=[1560;5270;6738;0084];
[n,m]=size(A);
fori=1:
n%按行进行循环
A(i,i)=1./A(i,i);%用对角元位置存储归一化该行所用的系数
forj=i+1:
n%用归一化系数乘以本行对角元右侧的元素,并存于原位
A(i,j)=A(i,j)*A(i,i);
end
fork=i+1:
n%用被归一化的行,消去下面的剩余行
forj=i+1:
n%实际被处理的元素,在被归一化的对角元的右下角
A(k,j)=A(k,j)-A(k,i)*A(i,j);
end
end
end
disp('矩阵A的因子表为:
');
disp(A)
B=[1234]';
fori=1:
4
B(i)=B(i)*A(i,i);%用因子表对角元进行归一化
forj=i+1:
4
B(j)=B(j)-A(j,i)*B(i);%用因子表对角元下面的元素作为消去系数
end
end
disp(B);
运行结果:
矩阵A的因子表为:
1.00005.00006.00000
5.0000-0.04351.00000
6.0000-23.0000-0.1000-0.8000
008.00000.0962
1.0000
0.1304
0
0.3846
3.利用因子表的回代过程
clc;
clearall;
A=[1560;5270;6738;0084];
[n,m]=size(A);
fori=1:
n%按行进行循环
A(i,i)=1./A(i,i);%用对角元位置存储归一化该行所用的系数
forj=i+1:
n%用归一化系数乘以本行对角元右侧的元素,并存于原位
A(i,j)=A(i,j)*A(i,i);
end
fork=i+1:
n%用被归一化的行,消去下面的剩余行
forj=i+1:
n%实际被处理的元素,在被归一化的对角元的右下角
A(k,j)=A(k,j)-A(k,i)*A(i,j);
end
end
end
disp('矩阵A的因子表为:
');
disp(A)
B=[1234]';
fori=1:
4
B(i)=B(i)*A(i,i);%用因子表对角元进行归一化
forj=i+1:
4
B(j)=B(j)-A(j,i)*B(i);%用因子表对角元下面的元素作为消去系数
end
end
disp(B);
[m,n]=size(A);
fori=n-1:
-1:
1%从倒数第二行开始回代,直到第一行
forj=i+1:
1:
n%取用因子表中,每行对角元右边的元素
B(i)=B(i)-A(i,j)*B(j);
end
end
disp(B);
运行结果:
矩阵A的因子表为:
1.00005.00006.00000
5.0000-0.04351.00000
6.0000-23.0000-0.1000-0.8000
008.00000.0962
1.0000
0.1304
0
0.3846
0.0401
-0.1773
0.3077
0.3846
六、讨论
昆明理工大学电力工程学院学生实验报告
实验课程名称:
《电力系统计算机辅助分析》上机实验
开课实验室:
七号楼计算机中心机房2009年10月26日
年级、专业、班
电自061
学号
姓名
成绩
实验项目名称
电力网络的
数学模型
指导教师
宋琪
教师评语
教师签名:
宋琪
年月日
一、上机实验目的
1、掌握节点导纳矩阵和节点阻抗矩阵的生成算法
2、掌握电力系统计算所需原始数据的准备过程
3、读懂课本中相应算法的实际例程
二、算法功能与原理
三、程序流程图
四、过程记录
例17.6用节点导纳矩阵的程序求图17.10所示的节点网络的导纳矩阵。
解:
输入数据:
请输入节点数:
n=5
请输入支路数:
nl=5
请输入由支路参数形成的矩阵:
B=
[120.03i01.050;
230.08+0.3i0.5i10;
340.015i01.051;
250.1+0.35i010;
350.04+0.25i0.5i10]
请输入由节点号及其对地阻抗形成的矩阵:
X=[10;20;30;40;50]
例17.7形成如图17.20所示网络的阻抗阵。
解:
输入数据如下:
请输入节点数:
n=3
请输入支路数:
nl=6
请输入由支路参数形成的矩阵:
B=[012i010;024i010;122i010;
0320i010;238i010;135i010
五、源码
4.节点导纳矩阵的形成过程
clc;
clearall;
n=5;%节点数
nl=5;%支路数
B=[120.03i01.050;230.08+0.3i0.5i10;430.015i01.050;250.1+0.35i010;350.04+0.25i0.5i10];
disp('支路参数阵B=');
disp(B);
X=[10;20;30;40;50];%节点并联支路参数
Y=zeros(n);%确定导纳阵阶数,并用0进行初始化
%对节点上的并联支路进行处理
fori=1:
n
ifX(i,2)~=0;
p=X(i,1);%找到有接地支路的节点号
Y(p,p)=1./X(i,2);%节点接地支路参数直接计入自导纳
end
end
fori=1:
nl%循环处理原始数据中的每一条支路
%p,q分别代表导纳矩阵中元素的下标
ifB(i,6)==0%变压器参数要求归算至始端,注意第3、4支路与1、2支路的区别
p=B(i,1);q=B(i,2);
else
p=B(i,2);q=B(i,1);
end
%非对角元处理
Y(p,q)=Y(p,q)-1./(B(i,3)*B(i,5));
Y(q,p)=Y(p,q);
%对角元分为两种情况,p是首端,q是末端
%因为变压器阻抗归算至首端,所以从末端看到的变压器阻抗要经过归算
Y(q,q)=Y(q,q)+1./(B(i,3)*B(i,5)^2)+B(i,4)./2;
Y(p,p)=Y(p,p)+1./B(i,3)+B(i,4)./2;
end
disp('导纳矩阵Y=:
');
disp(Y)
运行结果:
支路参数阵B=
1.00002.00000+0.0300i01.05000
2.00003.00000.0800+0.3000i0+0.5000i1.00000
4.00003.00000+0.0150i01.05000
2.00005.00000.1000+0.3500i01.00000
3.00005.00000.0400+0.2500i0+0.5000i1.00000
导纳矩阵Y=:
0-33.3333i0+31.7460i000
0+31.7460i1.5846-35.7379i-0.8299+3.1120i0-0.7547+2.6415i
0-0.8299+3.1120i1.4539-66.9808i0+63.4921i-0.6240+3.9002i
000+63.4921i0-66.6667i0
0-0.7547+2.6415i-0.6240+3.9002i01.3787-6.2917i
5.节电阻抗矩阵的形成
clc;
clear;
n=3;
nl=6;
B=[012i010;024i010;122i010;0320i010;238i010;135i010];
m=0;%用于存储最大节点号
Z=zeros(n);
fork1=1:
nl
p=B(k1,1);q=B(k1,2);
ifB(k1,6)==0%变压器支路首端是低压侧
l=1./B(k1,5);
elsel=B(k1,5);%变压器支路首端是高压侧
end
ifp==0
ifq>m%追加接地树支
Z(q,q)=B(k1,3);m=m+1;
else%追加接地连支
fork=1:
m,
Z(k,m+1)=-Z(k,q);Z(m+1,k)=-Z(q,k);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
forl1=1:
m
fork=1:
m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
fork=1:
m+1
Z(m+1,k)=0;
end
end
elseifq>m%追加不接地树支
fork=1:
m
Z(k,q)=Z(k,p)*l;Z(q,k)=Z(p,k)*l;
end
Z(q,q)=l^2*Z(p,p)+l^2*B(k1,3);
m=m+1;
else
fork=1:
m%追加不接地连支
Z(k,m+1)=l*Z(k,p)-Z(k,q);
Z(m+1,k)=l*Z(p,k)-Z(q,k);
end
Z(m+1,m+1)=l^2*Z(p,p)+Z(q,q)-2*l*Z(p,q)+l^2*B(k1,3);
forl1=1:
m
fork=1:
m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
fork=1:
m+1
Z(m+1,k)=0;
end
end
end
end
Z=Z(1:
n,1:
n);
disp('阻抗矩阵Z=');
disp(Z)
运行结果:
阻抗矩阵Z=
0+1.4124i0+0.9605i0+1.0734i
0+0.9605i0+1.8531i0+1.1299i
0+1.0734i0+1.1299i0+3.6158i
六、讨论
昆明理工大学电力工程学院学生实验报告
实验课程名称:
《电力系统计算机辅助分析》上机实验
开课实验室:
七号楼计算机中心机房2009年11月2日
年级、专业、班
电自061
学号
姓名
成绩
实验项目名称
电力系统故障的计算机算法
指导教师
宋琪
教师评语
教师签名:
宋琪
年月日
一、上机实验目的
1、掌握电力系统对称故障计算的基本原理及算法
2、掌握电力系统简单不对称故障计算的基本原理及算法
3、读懂课本中相应算法的实际例程
二、算法功能与原理
三、程序流程图
四、过程记录
例18.2图18.6电力系统,负荷全部略去,简化后的各电抗标么值注于等值网络中。
试计算f点三相短路时的短路电流及网络中的电流分布。
例18.3如图18.5所示的网络,母线3发生三相直接短路,试作下列计算:
①故障后0秒、2秒、4秒时母线3的短路电流;
②故障后2秒、4秒时电源与故障点间的支路电流。
各元件的参数如下:
发电机:
:
100MVA;:
200MVA。
额定电压均为10.5KV,次暂态电抗均为0.2。
变压器:
:
100MVA;:
200MVA。
变比均为10.5/115KV,短路电压百分数均为10。
电力线路:
三条电力线路参数均为115KV,60Km,
电抗=0.44Ω/Km,
电容
负荷:
,50MW,cosΦ=0.985;,100MW,cosΦ=1。
例18.4在例题18.1的系统中,已知下列情况:
二台发电机中性点均不接地;二台变压器均为Y0/△-11接线,发电机侧为△接,Y0侧中性点直接接地;三条电力线路的零序电抗均为0.20(以50MVA为基准值)。
要求计算节点3处a相接地短路,b、c两相短路,以及b、c两相接地短路时,故障点的短路电流。
(Zf=Zg=0)
五、源码
1.用节点导纳矩阵计算三相短路电流
clc;
clearall;
NF=1;
n=4;
nl=5;
B=[010.2i010;024i010;130.51i010;230.59i010;341.43i010];
V0=[1;1;1;1];
D=[4,0];
m=0;Z=zeros(n);V=zeros(n);I=zeros(nl);
fork1=1:
nl
p=B(k1,1);q=B(k1,2);
ifB(k1,6)==0%变压器支路首端是低压侧
l=1./B(k1,5);
elsel=B(k1,5);%变压器支路首端是高压侧
end
ifp==0
ifq>m%追加接地树支
Z(q,q)=B(k1,3);m=m+1;
else%追加接地连支
fork=1:
m,
Z(k,m+1)=-Z(k,q);Z(m+1,k)=-Z(q,k);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
forl1=1:
m
fork=1:
m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
fork=1:
m+1
Z(m+1,k)=0;
end
end
elseifq>m%追加不接地树支
fork=1:
m
Z(k,q)=Z(k,p)*l;Z(q,k)=Z(p,k)*l;
end
Z(q,q)=l^2*Z(p,p)+l^2*B(k1,3);
m=m+1;
else
fork=1:
m%追加不接地连支
Z(k,m+1)=l*Z(k,p)-Z(k,q);
Z(m+1,k)=l*Z(p,k)-Z(q,k);
end
Z(m+1,m+1)=l^2*Z(p,p)+Z(q,q)-2*l*Z(p,q)+l^2*B(k1,3);
forl1=1:
m
fork=1:
m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
fork=1:
m+1
Z(m+1,k)=0;
end
end
end
end
fork=1:
NF
I(D(k,1),D(k,1))=V0(D(k,1),1)./(Z(D(k,1),D(k,1))+D(k,2));
ft=num2str(D(k,1));
ts1=('点短路时');
ts2=('电流的标幺值If=');
dn=strcat(ft,ts1,ts2);
disp(dn);
disp(I(D(k,1),D(k,1)));
fori=1:
n
V(i,i)=V0(i,1)-I(D(k,1),D(k,1))*Z(i,D(k,1));
end
fori=1:
nl
ifB(i,6)==0
k=B(i,5);
elsek=1./B(i,5);
end
p=B(i,1);q=B(i,2);
ifp==0
e=0;b=B(i,3);
I(i,i)=(e-V(q,q)./k)./b;
else
I(i,i)=(V(p,p)-V(q,q)./k)./B(i,3);
end
end
disp('各节点的电压标幺值U为(节点号从小到大排):
');
fori=1:
n
disp(V(i,i));
end
disp('各支路短路电流的标幺值I为(顺序同您输入B时一样):
')
fori=1:
nl
disp(I(i,i));
end
end
运行结果:
4点短路时电流的标幺值If=
0-0.4890i
各节点的电压标幺值U为(节点号从小到大排):
0.9153
0.7380
0.6993
0
各支路短路电流的标幺值I为(顺序同您输入B时一样):
0+4.5765i
0+0.1845i
0-0.4235i
0-0.0655i
0-0.4890i
2.用计算曲线计算三相短路电流
clc;
clearall;
NF=1;
n=3;
nl=5;
Sb=100;
D=[30];
vb=[115115115];
V0=[1;1;1];
B=[010.15i01010011;020.075i01020011;120.1i010002;130.1i010002;230.1i010002];
N=6;
m=0;Z=zeros(n);sq3=sqrt(3);s=zeros(N,1);
fork1=1:
nl
p=B(k1,1);q=B(k1,2);
ifB(k1,6)==0%变压器支路首端是低压侧
l=1./B(k1,5);
elsel=B(k1,5);%变压器支路首端是高压侧
end
ifp==0
ifq>m%追加接地树支
Z(q,q)=B(k1,3);m=m+1;
else%追加接地连支
fork=1:
m,
Z(k,m+1)=-Z(k,q);Z(m+1,k)=-Z(q,k);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
forl1=1:
m
fork=1:
m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
fork=1:
m+1
Z(m+1,k)=0;
end
end
elseifq>m%追加不接地树支
fork=1:
m
Z(k,q)=Z(k,p)*l;Z(q,k)=Z(p,k)*l;
end
Z(q,q)=l^2*Z(p,p)+l^2*B(k1,3);
m=m+1;
else
fork=1:
m%追加不接地连支
Z(k,m+1)=l*Z(k,p)-Z(k,q);
Z(m+1,k)=l*Z(p,k)-Z(q,k);
end
Z(m+1,m+1)=l^2*Z(p,p)+Z(q,q)-2*l*Z(p,q)+l^2*B(k1,3);
forl1=1:
m
fork=1:
m
Z(l1,k)=Z(l1,k)-Z(l1,m+1)*Z(m+1,k)./Z(m+1,m+1);
end
Z(l1,m+1)=0;
end
fork=1:
m+1
Z(m+1,k)=0;
end
end
end
end
Vb=zeros(1,n);V=zeros(1,n);Vd=zeros(1,n);