精品高压输电网潮流的计算机算法程序设计毕业论文论文Word格式.docx
《精品高压输电网潮流的计算机算法程序设计毕业论文论文Word格式.docx》由会员分享,可在线阅读,更多相关《精品高压输电网潮流的计算机算法程序设计毕业论文论文Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的能力
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文(设计)期间的出勤情况
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
2、是否完成指定的论文(设计)任务(包括装订及附件)?
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文(设计说明书)所体现的整体水平
建议成绩:
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
二、论文(设计)水平
评阅教师:
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
2、对答辩问题的反应、理解、表达情况
3、学生答辩过程中的精神状态
评定成绩:
教研室主任(或答辩小组组长):
(签名)
教学系意见:
系主任:
目录
第一章课程设计概述3
1.1设计目的3
1.3设计题目4
1.4设计内容4
1.5设计时间4
第二章潮流计算设计题目及思路5
2.1潮流计算题目5
2.2对题目的分析及设计思路5
第三章电力系统潮流计算概述6
3.1电力系统概述6
3.2潮流计算的意义6
3.3牛顿—拉夫逊法潮流计算基本步骤7
第四章程序流程图及程序代码7
4.1程序流程图7
4.2运用MATLAB编程程序代码8
4.3例题数据代码20
第五章运行结果分析21
5.1运用MATLAB运行结果21
5.2运用powerworld软件仿真30
5.2.1使用powerworld仿真潮流分布30
第六章总结31
参考文献32
第一章课程设计概述
1.1设计目的
1.掌握电力系统潮流计算的基本原理和电力系统运行方式的变化;
2.掌握并能熟练运用一门计算机语言(MATLAB语言或C语言或C++语言);
3.采用计算机语言对潮流计算进行计算机编程计算。
1.2设计要求
1.程序源代码;
2.选定算例的输入,输出文件;
3.程序说明;
4.选定算例的程序计算过程;
5.选定算例的手算过程(至少迭代2次)(可选)。
1.3设计题目
高压输电网潮流的计算机算法程序设计(PQ分解法、牛顿-拉夫逊法)
或中压配电网潮流的计算机算法程序设计(前推后代法、同伦延拓法等)
或电力系统短路故障的计算机算法程序设计(要求不限)
1.4设计内容
1.根据电力系统网络推导电力网络数学模型,写出节点导纳矩阵;
2.赋予各节点电压变量(直角坐标系形式)初值后,求解不平衡量;
3.形成雅可比矩阵;
4.求解修正量后,重新修改初值,从2开始重新循环计算;
5.求解的电压变量达到所要求的精度时,再计算各支路功率分布、功率损耗和平衡节点功率;
6.上机编程调试;
连调;
7.计算分析给定系统潮流分析并与手工计算结果作比较分析。
8.准备计算机演示答辩,书写该课程设计说明书(必须计算机打印)。
1.5设计时间
2012年春季第17周至第18周
第2章潮流计算设计题目及思路
2.1潮流计算题目
题目:
设计原始资料网络接线如下图所示:
其中已知:
各支路阻抗表幺值参数分别为Z12=0.04+j00.25,Z13=0.10+j0.35,Z23=0.08+j0.30,ZT1=j0.015,ZT2=j0.03,K=1.05,L1、L2电纳为0.5。
运用以极坐标表示的高斯—塞德尔法、牛顿—拉夫逊法、P-Q分解法计算该系统的潮流分布。
计算精度要求各节点电压修正量不大于。
2.2对题目的分析及设计思路
此电力系统是一个5节点,3支路的电力网络。
然后确定节点类型,由于一般无发电设备的变电所、功率固定的发电厂为PQ节点;
有可调无功设备的变电所、有励磁储备的发电厂为PV节点;
主调频电厂或出线多的发电厂为平衡节点。
通过对此电力系统分析,我们很容易得以节点1、2、3为PQ节点,节点4为PV节点,节点5为平衡节点。
综合比较牛顿拉夫逊法(直角坐标、极坐标)、PQ分解法等多种求解方法的特点,最后确定采用牛顿拉夫逊法(极坐标)。
因为此方法所需解的方程组最少。
第3章电力系统潮流计算概述
3.1电力系统概述
电力工业发展初期,电能是直接在用户附近的发电站(或称发电厂)中生产的,各发电站孤立运行。
随着工农业生产和城市的发展,电能的需要量迅速增加,而热能资源和水能资源丰富的地区又往往远离用电比较集中的城市和工矿区,为了解决这个矛盾,就需要在动力资源丰富的地区建立大型发电站,然后将电能远距离输送给电力用户。
同时,为了提高供电的可靠性以及资源利用的综合经济性,又把许多分散的各种形式的发电站,通过送电线路和变电所联系起来。
这种由发电机、升压和降压变电所,送电线路以及用电设备有机连接起来的整体,即称为电力系统。
3.2潮流计算的意义
(1)在电网规划阶段,通过潮流计算,合理规划电源容量及接入点,合理规划网架,选择无功补偿方案,满足规划水平的大、小方式下潮流交换控制、调峰、调相、调压的要求。
(2)在编制年运行方式时,在预计负荷增长及新设备投运基础上,选择典型方式进行潮流计算,发现电网中薄弱环节,供调度员日常调度控制参考,并对规划、基建部门提出改进网架结构,加快基建进度的建议。
(3)正常检修及特殊运行方式下的潮流计算,用于日运行方式的编制,指导发电厂开机方式,有功、无功调整方案及负荷调整方案,满足线路、变压器热稳定要求及电压质量要求。
(4)预想事故、设备退出运行对静态安全的影响分析及作出预想的运行方式调整方案。
总结为在电力系统运行方式和规划方案的研究中,都需要进行潮流计算以比较运行方式或规划供电方案的可行性、可靠性和经济性。
同时,为了实时监控电力系统的运行状态,也需要进行大量而快速的潮流计算。
因此,潮流计算是电力系统中应用最广泛、最基本和最重要的一种电气运算。
在系统规划设计和安排系统的运行方式时,采用离线潮流计算;
在电力系统运行状态的实时监控中,则采用在线潮流计算。
3.3牛顿—拉夫逊法潮流计算基本步骤
牛顿—拉夫逊法潮流计算的基本步骤不外乎有如下几步。
1、形成节点导纳矩阵。
2、设各节点电压的初始值和求出功率偏差
3、根据公式算出雅可比矩阵。
4、解如下线性方程组,得到
依据如下公式计算修正量,并形成迭代公式:
这样反复迭代计算,直至所有节点|ΔU|<
ε和|Δδ|<
ε为止。
5、计算线路功率分布,PV节点无功功率和平衡节点注入功率。
第四章程序流程图及程序代码
4.1程序流程图
根据牛顿—拉夫逊法潮流计算的基本步骤可以得到如下程序流程图
4.2运用MATLAB编程程序代码
%*******************?
?
********************
clc;
clearall
formatlong;
%********************?
*****************
globalnSWnPQnPV;
%?
PQ?
PV?
globalnb;
globalnl;
globalbus;
%bus:
globalline;
%line:
globalY;
%Y:
globalnodenum;
globallPQ;
globalmyf;
***************
openfile;
%?
busline?
change;
ybus;
NR;
PQ;
flow;
ret;
output;
%*************************?
%******************?
functionopenfile
globalnbnl;
globalbus;
[dfile,pathname]=uigetfile('
*.m'
'
SelectDataFile'
);
ifpathname==0
error('
youmustselectavaliddatafile'
)
else
lfile=length(dfile);
%stripoff.m
eval(dfile(1:
lfile-2));
end
[nl,ml]=size(line);
nl
[nb,mb]=size(bus);
nb
outfile='
'
;
forI=1:
length(dfile)
ifdfile(I)=='
.'
break;
end
outfile=strcat(outfile,dfile(I));
outfile=strcat(outfile,'
.txt'
myf=fopen(outfile,'
w'
%**********************?
*********************
functionchange
globalnPQ;
nSW=0;
nPV=0;
nPQ=0;
forI=1:
nb,%nb?
type=bus(I,6);
iftype==3,%?
nSW=nSW+1;
SW(nSW,:
)=bus(I,:
elseiftype==2,%?
PV?
nPV=nPV+1;
PV(nPV,:
else%?
PQ?
nPQ=nPQ+1;
PQ(nPQ,:
bus=[PQ;
PV;
SW];
PQPVSW?
newbus=[1:
nb]'
nodenum=[newbusbus(:
1)];
bus(:
1)=newbus;
nl%?
forJ=1:
2
fork=1:
ifline(I,J)==nodenum(k,2)
line(I,J)=nodenum(k,1);
break
end
functionY=ybus(bus,line)
Y=zeros(nb,nb);
0
fork=1:
I=line(k,1);
J=line(k,2);
Zt=line(k,3)+j*line(k,4);
ifJ~=0%?
Yt=1Zt;
Ym=line(k,5)+j*line(k,6);
Ym
K=line(k,7);
K
if(K==0)&
(J~=0)%?
:
K=0;
Y(I,I)=Y(I,I)+Yt+Ym;
Y(J,J)=Y(J,J)+Yt+Ym;
Y(I,J)=Y(I,J)-Yt;
Y(J,I)=Y(I,J);
(J==0)%?
K=0,J=0,R=X=0;
Y(I,I)=Y(I,I)+Ym;
ifK>
0%?
Zt?
Ym?
i?
K?
j?
Y(J,J)=Y(J,J)+YtKK;
Y(I,J)=Y(I,J)-YtK;
ifK<
K?
Y(J,J)=Y(J,J)+K*K*Yt;
Y(I,J)=Y(I,J)+K*Yt;
%***************?
functionNR
max1=100;
eps1=1.0e-10;
eps2=1.0e-10;
fprintf(myf,'
------?
Y----\n'
fprintf(myf,'
%10f+j*(%10f)'
real(Y(I,J)),imag(Y(I,J)));
\n'
fori=1:
max1
angl(:
1)=bus(1:
nb-1,3);
u(:
nPQ,2);
x=[angl;
u];
bus?
PQPV?
x
Jac=form_jac(bus,Y);
del=dPQ(Y,bus);
dx=Jac\del;
dx
forI=1:
nb+nPQ-1
%10f'
Jac(I,J));
fprintf(myf,'
-----?
%d?
dP?
dQ----\n'
i);
%10e'
del(I,1));
dx(I,1));
forI=nb:
dx(I,1)=dx(I,1)*x(I,1);
delUU,?
x=x-dx;
----?
delta?
U---\n'
angl=x(1:
nb-1,1);
x,?
u=x(nb:
nb+nPQ-1,1);
nb-1%?
bus(I,3)=angl(I,1);
ang%d%10f\n'
I,angl(I,1));
nPQ%?
bus(I,2)=u(I,1);
U%d%10f\n'
I,u(I,1));
if(max(abs(dx))<
eps1)&
(max(abs(dPQ(Y,bus)))<
eps2)%?
ifi==max1%?
?
!
************
functionPQ
forI=nPQ+1:
nb%?
Q,?
P,Q
ifbus(I,6)==3%?
P
sum=0;
ang=bus(I,3)-bus(J,3);
A=real(Y(I,J))*cos(ang)+imag(Y(I,J))*sin(ang);
sum=sum+bus(I,2)*bus(J,2)*(A);
bus(I,4)=sum;
P?
B=real(Y(I,J))*sin(ang)-imag(Y(I,J))*cos(ang);
sum=sum+bus(I,2)*bus(J,2)*B;
bus(I,5)=sum;
Q?
******************
functionflow
lPQ(k,1)=I;
lPQ?
lPQ(k,2)=J;
ifJ~=0
Ui=bus(I,2