8mo工学吐哈油田红连线配电网理论线损计算.docx
《8mo工学吐哈油田红连线配电网理论线损计算.docx》由会员分享,可在线阅读,更多相关《8mo工学吐哈油田红连线配电网理论线损计算.docx(27页珍藏版)》请在冰点文库上搜索。
8mo工学吐哈油田红连线配电网理论线损计算
8mo[工学]吐哈油田红连线配电网理论线损计算
《电力系统分析》
课程设计任务书
题目
吐哈油田红连线配电网理论线损计算
学生姓名
学号
专业班级
设计(论文)内容及基本要求
1)设计要求
掌握电力系统潮流计算的基本概念和计算方法,并用于实际电网的理论线损计算当中;针对吐哈油田红连线配电网,进行线损计算程序设计。
其目的在于加深学生对电力系统稳态分析课程中基本概念和计算方法的掌握和理解,培养学生运用所学知识分析和解决问题的能力。
2)内容
①学习并熟悉VC++编程语言的环境。
②掌握变压器、线路等元件的等值电路和等值参数的求解方法,
掌握二叉树理论,并根据网络接线图写出网络的数据结构。
③掌握基本的、常用的理论线损的计算方法。
④针对吐哈油田红连线配电网,进行理论线损计算。
⑤利用VC++语言编程并完成调试,并对计算结果进行分析。
⑥整理课程设计论文。
起止时间
指导教师签名
2010年6月日
系(教研室)主任签名
2010年6月日
学生签名
2010年6月日
一、设计目的意义……………………………………………1
二、课程设计原理……………………………………………1
三、课程设计内容……………………………………………1
四、结果分析…………………………………………………3
五、设计总结…………………………………………………5
六、同组同学名单…………………………………………....5
七、参考文献…………………………………………………5
附录…………………………………………………………...6
一、设计目的意义
近年来,能源危机遍及世界各国,开发和节约能源已成为当务之急。
能源危机促使人们重视能源的开发和利用,节能本身就是一种能源,是一种不可忽视的能源,是一种必须加以管理的能源。
电能是油田生产的重要动力,随着油田的发展、油气勘探开发的深入,用电量将不断增大,同时电能在传输、使用中的损耗随之增大。
因此,做好油田配电网的优化,切实有效地抓好电力管理工作,减少电能在生产输送、分配及利用中的损耗,提高电能的利用效率,提高决策的科学性,对于确保油田的正常生产,提高油田的经济效益具有十分重要的意义。
长期以来我国油田的6kV、10kV配电网建设未得到应有的重视,处于资金短缺、网络结构陈旧、技术装备落后、自动化水平低、事故发生时恢复供电所需时间长的状况,造成了我国油田配电网网损长期居高不下。
油田的单位电耗逐年上升,采油成本逐年增加。
油田配电网的优化运行可以达到减低网损,具有巨大的经济意义。
近年来人们采用各种控制方案解决石油开采中的普通存在的电能浪费现象,降低网损也是配电网络重构和网络规划的重要目标之一。
油田配电网的优化运行和优化规划的基础是油田配电网的理论线损计算。
二、课程设计原理
前推回代潮流计算法:
前推回代潮流计算法针对10(6)kV配电网的单电源树状结构特点,在利用节点双亲孩子兄弟链表对节点与支路进行顺层次和逆层次遍历的基础上,很容易实现配电网的“前推回代”潮流算法。
潮流计算的范围是从馈线出口(树根)至各配变高压侧(树叶)。
节点和支路顺层次遍历主要用于“前推”过程,即由根节点(馈线首端)的电压和支路阻抗、支路电流计算各节点电压。
节点和支路逆层次遍历则主要用于“回代”过程,即由各叶子节点(末端节点)的功率(电流)向上层累加求得其双亲节点和相关支路的功率(电流)。
在某一层所有节点和支路的功率(电流)都求得后,即可按同样方法求得其双亲层所有节点和支路的功率(电流)。
这样就避免了求解潮流方程过程中大量的矩阵运算[23],利用前推回代潮流计算的方法,直接求出各点电压进而求出各段的功率损耗。
三、课程设计内容
1.学习并熟悉VC++编程语言的环境。
2.掌握变压器、线路等元件的等值电路和等值参数的求解方法,掌握二叉树理论,并根据网络接线图写出网络的数据结构。
3.掌握基本的、常用的理论线损的计算方法。
4.针对吐哈油田红连线配电网,进行理论线损计算。
5.利用VC++语言编程并完成调试,并对计算结果进行分析。
6.整理课程设计论文。
吐哈油田红连线(10个节点)
表1各节点采用的变压器型号和负荷电量
负荷节
点编号
变压器
型号
有功电量(kW.h)
无功电量(kvar.h)
4
S7-80/6
24.860
29.065
5
S7-80/6
8.6
10.05
7
S7-80/6
8.6
10.05
9
S7-80/6
8.6
10.05
表2各支路导线的型号和长度
起始
节点
终止
节点
导线型号
馈线长度
(km)
1
2
LJ-120
1.6067
2
3
LJ-95
0.2521
3
4
LJ-120
0.0749
3
5
LJ-95
0.1616
2
6
LJ-120
0.9302
6
7
LJ-120
0.1226
6
8
LJ-120
0.2935
8
9
LJ-120
0.1135
8
10
LJ-120
0.4206
四、结果分析
10,
总有功损耗:
2.20686,
线路有功损耗:
0.139919,
变压器有功损耗:
2.06694,
网损率:
3.50814,
线损率:
0.222423,
系统总有功:
62.9069,
系统总有功负荷:
60.7,
总无功损耗:
11.6853,
线路无功损耗:
0.171208,
变压器无功损耗:
11.5141,
无功网损率:
14.8318,
无功线损率:
0.217309,
系统总无功:
78.7853,
系统总无功负荷:
67.1,
系统pp:
0.489759,
子节点:
1,
10,9,7,5,4,
....................
2,
10,9,7,5,4,
....................
3,
5,4,
....................
4,
....................
5,
....................
6,
10,9,7,
....................
7,
....................
8,
10,9,
....................
9,
....................
10,
....................
理论分析结果仍与实际测量结果之间存在偏差,是由于互感器和测量仪器误差、导线参数不精确、未考虑沿线电压降落、抽油机负荷的正弦近似以及负荷的非平稳性等因素造成的
通过程序的运行,得出了线损的数据结果,其中系统总有功:
62.9069KVA,系统总无功负荷:
67.1KVA,而总有功损耗:
2.20686KVA,总无功损耗:
11.6853KVA,所以理论线损比较小。
五、设计总结
本次课程设计主要是对吐哈油田红连线配电网理论线损计算。
在这次课程设计的过程中,自己能够查阅了相关资料,对课程设计的题目、要求和具体内容深刻的分析,并完成了此次设计。
通过本次设计,我能够巩固所学的基本理论、专业知识,并综合运用所学知识来解决实际的工程问题,学习工程设计的基本技能和基本方法。
总之,此次课程设计,使我能把在课堂上学习的理论知识应用到实践中,更好的发现了自己在学习中的不足之处。
在设计中,通过查阅资料,解决了在设计中所遇到的一些问题。
通过此次课程设计,我受益匪浅,学到了很多东西。
六、同组同学的名单
苏录峰
杜敏娜
梁鹏伟
朱海峰
白瑞涛
彭兴德
七、参考文献
[
附录
程序说明
由于程序中定义了多种变量,所以先对每种变量的含义作以解释:
intiNodeNo——节点编号;
intiNodeType——节点类型;
floatNodeU——源点电压;
floatNodeP——节点负荷有功;
floatNodeQ——节点负荷无功;
intiFatherNodeNo——父节点编号;
intiChildNodeNo——子节点编号;
floatInputArcUnitR——输出弧电阻;
floatInputArcUnitX——输出弧电抗;
floatfInputArcLength——输出弧长度;
floatNodeInputI——节点输入电流;
floatNodeOutputI——节点输出电流;
CComplexNodeLoadI——负荷电流;
floatNodeTP0——节点变压器空载损耗功率;
floatNodeTPk——节点变压器短路损耗功率;
floatNodeTSn——节点变压器的额定功率
程序分析
其中第一列为节点编号,第二列为节点类型(0表示电源节点,2表示中间节点,5表示负荷节点),第三列为节点电压,第四列和第五列分别为几点的有功P和无功Q,第六列为父节点编号,第七列和第八列为子结点编号,第九列至第12列为父节点到两个子节点之间的单位长度电阻和电线杆个数,第13至17为变压器的五个参数,依次为P0,PK,I0,UK,和SN。
10,
1,0,6.3,64.11,92.79,-1,2,-1,-1,-1,0.27,1.6067,0,0,0,0,0,0,0,0,80,
2,2,6.3,0,0,1,3,6,-1,-1,0.33,0.2521,0.27,0.9302,0,0,0,0,0,0,80,
3,2,6.3,0,0,2,4,5,-1,-1,0.27,0.0749,0.33,0.1616,0,0,0,0,0,0,80,
4,5,6.3,24.86,29.065,3,-1,-1,-1,-1,0.27,0,0.27,0,0,0,0,0,0.27,1.65,80,
5,5,6.3,8.6,10.05,3,-1,-1,-1,-1,0.27,0,0.27,0,0,0,0,0,0.27,1.65,80,
6,2,6.3,0,0,2,7,8,-1,-1,0.27,0.1226,0.27,0.2935,0,0,0,0,0,0,80,
7,5,6.3,8.6,10.05,6,-1,-1,-1,-1,0.27,0,0.27,0,0,0,0,0,0.27,1.65,80,
8,2,6.3,0,0,6,9,10,-1,-1,0.27,0.1135,0.27,0.4206,0,0,0,0,0,0,80,
9,5,6.3,8.6,10.05,8,-1,-1,-1,-1,0.27,0,0.27,0,0,0,0,0,0.27,1.65,80,
10,5,6.3,0,0,8,-1,-1,-1,-1,0.33,0,0.33,0,0,0,0,0,0,0,80,
1,2,3,4,5,6,7,8,9,10,
程序设计:
//
(1)TideCalculateDlg.cpp:
implementationfile
//
#include"stdafx.h"
#include"TideCalculate.h"
#include"TideCalculateDlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CTideCalculateDlgdialog
CTideCalculateDlg:
:
CTideCalculateDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CTideCalculateDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CTideCalculateDlg)
//NOTE:
theClassWizardwilladdmemberinitializationhere
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCTideCalculateDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTideCalculateDlg)
//NOTE:
theClassWizardwilladdDDXandDDVcallshere
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTideCalculateDlg,CDialog)
//{{AFX_MSG_MAP(CTideCalculateDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON,OnButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CTideCalculateDlgmessagehandlers
BOOLCTideCalculateDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCTideCalculateDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCTideCalculateDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCTideCalculateDlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}
voidCTideCalculateDlg:
:
OnButton()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
inti(0),j(0),k(0);
intiNodeNumber(0);
charcComma('');
CDistributionNodeData*pData=NULL;
floatLos=0.0,LosQ=0.0;
FILE*fp;
CStringFilePath;
FilePath="吐哈油田红连线数据.txt";
fp=fopen(FilePath,"r");
charctem;
fscanf(fp,"%d",&iNodeNumber);
fscanf(fp,"%c",&ctem);
pData=newCDistributionNodeData[iNodeNumber];
for(i=0;i{fscanf(fp,"%d",&pData[i].iNodeNo);
……
}
CStringFilePath;
FilePath="吐哈油田红连线数据.txt";
fp=fopen(FilePath,"r");
charctem;
fscanf(fp,"%d",&iNodeNumber);
fscanf(fp,"%c",&ctem);
pData=newCDistributionNodeData[iNodeNumber];
for(i=0;i{
fscanf(fp,"%d",&pData[i].iNodeNo);
fscanf(fp,"%c",&ctem);