前推回代线损潮流计算文档格式.docx
- 文档编号:18436278
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:22
- 大小:103.56KB
前推回代线损潮流计算文档格式.docx
《前推回代线损潮流计算文档格式.docx》由会员分享,可在线阅读,更多相关《前推回代线损潮流计算文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
第一章绪论
1.1课程设计目的
通过本课程设计,掌握配电网潮流计算的基本概念和计算方法,并将前推回代潮流计算法用于实际电网的理论线损计算中,针对某城区配电网,进行线损计算程序设计。
1.2课程设计内容和要求
1.配电网的前推回代潮流计算法
2.掌握基本的、常用的理论线损的计算方法
3.采用VisualStudio工具软件编程
4.针对某城区配电网,对编写的程序进行测试,理论线损计算结果正确。
5.设计说明书要求
第二章课程设计原理
2.1前推回代潮流算法
1)初始化:
给定平衡节点电压;
并为全网其他PQ节点赋电压初始值,一般设幅值为额定电压
,相角为0;
PV节点赋无功注入功率初始功率
2)计算各节点运算功率:
3)从网络的末端开始,逐步前移,有节点电压
,求全网各支路功率分布。
前推过程为:
4)从网络的末端开始,逐步回推,由支路功率求各节点电压
。
有
5)利用求得的各节点电压修正PV节点电压和无功功率
6)检查是否已经收敛。
利用事先给定的收敛标准判断收敛与否。
式中:
7)如不满足收敛标准,将各节点电压计算值作为新的初始值自第二步开始进入下一次迭代。
2.2前推回代编程原理
前推回代潮流计算法针对10(6)kV配电网的单电源树状结构特点,在利用节点双亲孩子兄弟链表对节点与支路进行顺层次和逆层次遍历的基础上,很容易实现配电网的“前推回代”潮流算法。
潮流计算的范围是从馈线出口(树根)至各配变高压侧(树叶)。
节点和支路顺层次遍历主要用于“前推”过程,即由根节点(馈线首端)的电压和支路阻抗、支路电流计算各节点电压。
节点和支路逆层次遍历则主要用于“回代”过程,即由各叶子节点(末端节点)的功率(电流)向上层累加求得其双亲节点和相关支路的功率(电流)。
在某一层所有节点和支路的功率(电流)都求得后,即可按同样方法求得其双亲层所有节点和支路的功率(电流)。
这样就避免了求解潮流方程过程中大量的矩阵运算,利用前推回代潮流计算的方法,直接求出各点电压进而求出各段的功率损耗。
第三章线损计算程序设计
3.1某城区配电网的主要参数
3.1.1配电网节点表示图
图3-1配电网节点表示图
子节点:
1节点的子节点为10,9,7,5,4
2节点的子节点为10,9,7,5,4
3节点的子节点为5,4
6节点的子节点为10,9,7
8节点的子节点为10,9
3.1.2变压器和线路参数
表3-1各节点采用的变压器型号和负荷电量
负荷节
点编号
变压器
型号
有功电量(kW.h)
无功电量(kvar.h)
4
S7-80/6
24.860
29.065
5
8.6
10.05
7
9
表3-2各支路导线的型号和长度
起始
节点
终止
导线型号
馈线长度
(km)
1
2
LJ-120
1.6067
3
LJ-95
0.2521
0.0749
0.1616
6
0.9302
0.1226
8
0.2935
0.1135
10
0.4206
3.2线损计算程序设计简要说明
本程序是采用VisualStudio工具软件编程和执行的。
最终生成可执行文件*.exe,输出*.tet文件供界面程序调用。
线损程序需要两个文件:
“trans.txt”(变压器参数),“lines.txt”(输电线参数)。
而这两个文件中的参数是根据变压器型号和输电线路的长度经过计算得出的。
3.3线损计算流程图
3.4配电网计算结果及分析
表3-3配电网计算结果
计算结果
总有功损耗
2.2
线路有功损耗
0.14
变压器有功损耗
2.07
网损率
3.51
线损率
0.22
系统总有功
62.21
系统总有功负荷
61.35
总无功损耗
11.70
线路无功损耗
0.17
变压器无功损耗
11.51
无功网损率
14.83
无功线损率
系统总无功
78.78
系统总无功负荷
66.5
理论分析结果仍与实际测量结果之间存在偏差,是由于互感器和测量仪器误差、导线参数不精确、未考虑沿线电压降落,以及负荷的非平稳性等因素造成的。
通过程序的运行,得出了线损的数据结果,其中系统总有功:
62.9069KVA,系统总无功负荷:
67.1KVA,而总有功损耗:
2.20686KVA,总无功损耗:
11.6853KVA,所以理论线损比较小。
第四章程序设计
#include"
stdafx.h"
TideCalculate.h"
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
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->
LoadIcon(IDR_MAINFRAME);
voidCTideCalculateDlg:
//{{AFX_DATA_MAP(CTideCalculateDlg)
theClassWizardwilladdDDXandDDVcallshere
BEGIN_MESSAGE_MAP(CTideCalculateDlg,CDialog)
//{{AFX_MSG_MAP(CTideCalculateDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON,OnButton)
//CTideCalculateDlgmessagehandlers
BOOLCTideCalculateDlg:
OnInitDialog()
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);
AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'
smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);
//Setbigicon
SetIcon(m_hIcon,FALSE);
//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
OnSysCommand(UINTnID,LPARAMlParam)
if((nID&
0xFFF0)==IDM_ABOUTBOX)
CAboutDlgdlgAbout;
dlgAbout.DoModal();
else
CDialog:
OnSysCommand(nID,lParam);
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);
OnPaint();
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCTideCalculateDlg:
OnQueryDragIcon()
return(HCURSOR)m_hIcon;
OnButton()
Addyourcontrolnotificationhandlercodehere
inti(0),j(0),k(0);
intiNodeNumber(0);
charcComma('
'
);
CDistributionNodeData*pData=NULL;
floatLos=0.0,LosQ=0.0;
FILE*fp;
CStringFilePath;
FilePath="
line.txt"
;
fp=fopen(FilePath,"
r"
);
charctem;
fscanf(fp,"
%d"
&
iNodeNumber);
%c"
ctem);
pData=newCDistributionNodeData[iNodeNumber];
for(i=0;
i<
iNodeNumber;
i++)
{fscanf(fp,"
pData[i].iNodeNo);
……
}
CStringFilePath;
FilePath="
line.txt"
;
charctem;
iNodeNumber);
ctem);
pData=newCDistributionNodeData[iNodeNumber];
fscanf(fp,"
pData[i].iNodeNo);
pData[i].iNodeType);
%f"
pData[i].NodeU);
pData[i].NodeP);
pData[i].NodeP=pData[i].NodeP/30/24;
pData[i].NodeQ);
pData[i].NodeQ=pData[i].NodeQ/30/24;
pData[i].iFatherNodeNo);
pData[i].iChildNodeNo0);
pData[i].iChildNodeNo1);
/*fscanf(fp,"
pData[i].iChildNodeNo2);
pData[i].iChildNodeNo3);
*/
pData[i].InputArcUnitR0);
pData[i].fInputArcLength0);
pData[i].fInputArcLength0=pData[i].fInputArcLength0*55/1000;
pData[i].InputArcUnitR1);
pData[i].fInputArcLength1);
pData[i].fInputArcLength1=pData[i].fInputArcLength1*55/1000;
pData[i].InputArcUnitR2);
pData[i].fInputArcLength2);
pData[i].InputArcUnitR3);
pData[i].fInputArcLength3);
pData[i].NodeTP0);
pData[i].NodeTPk);
pData[i].NodeTI0);
pData[i].NodeTUk);
pData[i].NodeTSn);
{Sort=pData[i].InputArcUnitR0;
if(fabs(Sort-0.27)<
=0.00001)
{pData[i].InputArcUnitX0=0.342;
if(fabs(Sort-0.33<
{pData[i].InputArcUnitX0=0.335;
Sort=pData[i].InputArcUnitR1;
if(fabs(Sort-0.27)<
=0.00001)
{pData[i].InputArcUnitX1=0.342;
if(fabs(Sort-0.33)<
{pData[i].InputArcUnitX1=0.335;
Sort=pData[i].InputArcUnitR2;
{pData[i].InputArcUnitX2=0.342;
{pData[i].InputArcUnitX2=0.335;
Sort=pData[i].InputArcUnitR3;
{pData[i].InputArcUnitX3=0.342;
{pData[i].InputArcUnitX3=0.335;
}}
fclose(fp);
fclose(fp);
//找末梢点支路的有功损耗
for(i=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 推回 代线损 潮流 计算