前推回代线损潮流计算讲解

上传人:suij****uang 文档编号:151025145 上传时间:2022-09-11 格式:DOCX 页数:31 大小:97.80KB
收藏 版权申诉 举报 下载
前推回代线损潮流计算讲解_第1页
第1页 / 共31页
前推回代线损潮流计算讲解_第2页
第2页 / 共31页
前推回代线损潮流计算讲解_第3页
第3页 / 共31页
资源描述:

《前推回代线损潮流计算讲解》由会员分享,可在线阅读,更多相关《前推回代线损潮流计算讲解(31页珍藏版)》请在装配图网上搜索。

1、课程设计任务书(指导教师填写)课程设计名称电力工程课程设计学生姓名 专业班级设计题目某城区配电网理论线损计算一一前推回代潮流计算法一、课程设计目的通过本课程设计,掌握配电网潮流计算的基本概念和计算方法,并将前推回 代潮流计算法用于实际电网的理论线损计算中,针对某城区配电网,进行线损计 算程序设计。二、设计内容、技术条件和要求1. 配电网的前推回代潮流计算法2. 掌握基本的、常用的理论线损的计算方法3. 采用Visual Studio工具软件编程4. 针对某城区配电网,对编写的程序进行测试,理论线损计算结果正确。5. 设计说明书要求: 简述配电网的前推回代潮流计算法的基本原理; 程 序流程图;源

2、程序代码;可验证算法正确性的计算实例;3000字以上三、时间进度安排1.前推回代潮流计算法原理学习:2天2. Visual Studio工具软件编程学习:1天3. 编写程序:2天4.测试程序:2天5.撰写课程设计说明书:2天6.准备答辩及答辩:1天四、主要参考文献1. 陈珩.电力系统稳态分析(第3版).北京:中国电力出版社,2007.2. DL/T 686-1999电力网电能损耗计算导则.电力行业标准.3. DL/T 738-2000农村电网节电技术规程.电力行业标准.4. Q/CSG 1 1301-2008线损理论计算技术标准.南方电网企业标准.指导教师签字:某城区配电网理论线损计算前推回代

3、潮流计算法摘要线损是供电企业的一项重要技术经济指标,线损管理工作的效果直接影响着 供电企业的经济效益。它不但可以反映配电网结构和运行方式的合理性,而且可 以反映电力企业的技术管理水平。配网直接服务于用户,要有效地降损,首先要 了解电网的自然线损状况;以自然线损为尺度,分清统计线损的构成;了解不同 用电性质的配网中“管理线损”的产生原因及其大小;量化线损管理指标;有的 放矢地采取技术和管理降损措施。随着现代社会的发展,电能在国民生产,生活中 的作用越来越重要,成为国民经济发展的命脉。而在电能的生产,传输的过程中, 作为载体的线路网络本身也作为负载而消耗功率,这不但影响电网的电能质量,对 设备和装

4、置的正常运行和用户的用电安全造成威胁,更为重要的是在传输过程中 会产生极其巨大的能量损耗,造成严重的资源浪费。因此,我们有必要计算电网的 损耗,以便有效的对输电网的经济性进行评估,进而以最小的损耗获取最大的经 济效益。本文将前推回代潮流计算法用于实际电网的理论线损计算中,针对某城 区配电网,进行线损计算程序设计。关键词:配电网线损计算 前推回代第一章绪论11.1课程设计目的11.2课程设计内容和要求1第二章课程设计原理22.1前推回代潮流算法22.2前推回代编程原理3第三章线损计算程序设计43.1某城区配电网的主要参数43.1.1配电网节点表示图43.1.2变压器和线路参数43.2线损计算程序

5、设计简要说明53.3线损计算流程图63.4配电网计算结果及分析7第四章程序设计8第五章结果分析与总结24主要参考文献25iii第一章绪论1.1课程设计目的通过本课程设计,掌握配电网潮流计算的基本概念和计算方法,并将前推回 代潮流计算法用于实际电网的理论线损计算中,针对某城区配电网,进行线损计 算程序设计。1.2课程设计内容和要求1. 配电网的前推回代潮流计算法2. 掌握基本的、常用的理论线损的计算方法3. 采用Visual Studio工具软件编程4. 针对某城区配电网,对编写的程序进行测试,理论线损计算结果正确。5. 设计说明书要求第二章课程设计原理2.1前推回代潮流算法1)初始化:给定平衡

6、节点电压;并为全网其他PQ节点赋电压初始值,一般设幅值为额定电压叩,相角为0; PV节点赋无功注入功率初始功率00*X7 -H- JH -r-ptS(。)= S+ U(0)2V*2)计算各节点运算功率:iLii io3)从网络的末端开始,逐步前移,有节点电压U。),求全网各支路功率分布。前推过程为:户=P(o)+Z P?)+Ap(i)01)= 0。)+ E Q(1)+ AQ(i) ij jjkij4)从网络的末端开始,逐步回推,由支路功率求各节点电压U。有P(i)R + QXP(i)X _ QRU = (U -4)ijijj)2 + ( ijij_ij)2j i UUiiP(1)X _ QRj

7、U,J ,J6(i)=0(1) arctanij j P R + Q XU -Jj_ijijji Ui5)利用求得的各节点电压修正PV节点电压和无功功率U(1)= U曷 i i i(=U况U(G sin0_B cos0)i i j ij ij ij ijj=16)检查是否已经收敛。利用事先给定的收敛标准判断收敛与否。AQ LoadIcon(IDR_MAINFRAME);void CTideCalculateDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CTideCalculateD

8、lg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_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_MAPEND_MESSAGE_MAP()/ CTideCalculateDlg message handlersB

9、OOL CTideCalculateDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);/ Se

10、t the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid

11、CTideCalculateDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam); void CTideCalculateDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM)

12、dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialo

13、g:OnPaint();/ The system calls this to obtain the cursor to display while the user drags / the minimized window.HCURSOR CTideCalculateDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CTideCalculateDlg:OnButton()/ TODO: Add your control notification handler code hereinti(0),j(0),k(0);intiNodeNumber

14、(0);char cComma();CDistributionNodeData *pData = NULL;float Los=0.0,LosQ=0.0;FILE *fp;CString FilePath;FilePath=line.txt;fp=fopen(FilePath,r);char ctem;fscanf(fp,%d,&iNodeNumber);fscanf(fp,”%c”,&ctem);pData = new CDistributionNodeDataiNodeNumber;for(i=0;iiNodeNumber;i+)fscanf(fp,%d,&pDatai.iNodeNo);

15、CString FilePath;FilePath=line.txt ;fp=fopen(FilePath,r);char ctem;fscanf(fp,%d,&iNodeNumber);fscanf(fp,”%c”,&ctem);pData = new CDistributionNodeDataiNodeNumber;for(i=0;iiNodeNumber;i+)fscanf(fp,%d,&pDatai.iNodeNo);fscanf(fp,”%c”,&ctem);fscanf(fp,%d,&pDatai.iNodeType);fscanf(fp,”%c”,&ctem);fscanf(fp

16、,”%f”,&pDatai.NodeU);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.NodeP);pDatai.NodeP=pDatai.NodeP/30/24;fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.NodeQ);pDatai.NodeQ=pDatai.NodeQ/30/24;fscanf(fp,”%c”,&ctem);fscanf(fp,”%d”,&pDatai.iFatherNodeNo);fscanf(fp,”%c”,&ctem);fscanf(fp,%d,&pDatai.iChildNo

17、deNo0);fscanf(fp,”%c”,&ctem);fscanf(fp,%d,&pDatai.iChildNodeNo1);fscanf(fp,”%c”,&ctem);/*fscanf(fp,%d,&pDatai.iChildNodeNo2);fscanf(fp,”%c”,&ctem);fscanf(fp,%d,&pDatai.iChildNodeNo3);fscanf(fp,”%c”,&ctem);*/fscanf(fp,”%f”,&pDatai.InputArcUnitR0);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.fInputArc

18、Length0);pDatai.fInputArcLength0=pDatai.fInputArcLength0*55/1000;fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.InputArcUnitR1);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.fInputArcLength1);pDatai.fInputArcLength1=pDatai.fInputArcLength1*55/1000;fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.InputArcUn

19、itR2);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.fInputArcLength2);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.InputArcUnitR3);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.fInputArcLength3);fscanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.NodeTP0);fscanf(fp,”%c”,&ctem);fscanf(fp,%f,&pDatai.NodeTPk);f

20、scanf(fp,”%c”,&ctem);fscanf(fp,”%f”,&pDatai.NodeTI0);fscanf(fp,”%c”,&ctem);fscanf(fp,%f,&pDatai.NodeTUk);fscanf(fp,”%c”,&ctem);fscanf(fp,%f,&pDatai.NodeTSn);fscanf(fp,”%c”,&ctem);for(i=0;iiNodeNumber;i+)Sort=pDatai.InputArcUnitR0 ;if(fabs(Sort- 0.27)=0.00001)pDatai.InputArcUnitX0=0.342 ;if(fabs(Sort

21、-0.33=0.00001)pDatai.InputArcUnitX0=0.335 ;Sort=pDatai.InputArcUnitR1 ;if(fabs(Sort-0.27)=0.00001)pDatai.InputArcUnitX1=0.342 ;if(fabs(Sort-0.33)=0.00001)pDatai.InputArcUnitX1=0.335 ;Sort=pDatai.InputArcUnitR2 ;if(fabs(Sort-0.27)=0.00001)if(fabs(Sort-0.33)=0.00001)pDatai.InputArcUnitX2=0.335 ;Sort=p

22、Datai.InputArcUnitR3 ;if(fabs(Sort-0.27)=0.00001)pDatai.InputArcUnitX3=0.342 ;if(fabs(Sort-0.33)0;i-)tem=-1;if(pDatai.iNodeType=5)tem=i; while(tem=0)Code=pDatatem.iFatherNodeNo ;if(Code=0)pDataCode-1.TwigNodepDataCode-1.TwigNum=I;pDataCode-1.TwigNum+;tem=Code-1;Loss=0;LossQ=0;/找本支路参数for(i=iNodeNumbe

23、r-1;i0;i-)Code=pDatai.iFatherNodeNo ;Rtem=0;Xtem=0;Ltem=0;if(Code=-1)continue;if(Code!=-1)tem=pDataCode-1.iChildNodeNo0 ;if(tem=pDatai.iNodeNo)Rtem=pDataCode-1.InputArcUnitR0 ;Xtem=pDataCode-1.InputArcUnitX0 ;Ltem=pDataCode-1.fInputArcLength0 ; tem=pDataCode-1.iChildNodeNo1 ;if(tem=pDatai.iNodeNo) R

24、tem=pDataCode-1.InputArcUnitR1 ;Xtem=pDataCode-1.InputArcUnitX1 ;Ltem=pDataCode-1.fInputArcLength1 ; tem=pDataCode-1.iChildNodeNo2 ;if(tem=pDatai.iNodeNo) Rtem=pDataCode-1.InputArcUnitR2 ;Xtem=pDataCode-1.InputArcUnitX2 ;Ltem=pDataCode-1.fInputArcLength2 ; tem=pDataCode-1.iChildNodeNo3 ;if(tem=pData

25、i.iNodeNo) Rtem=pDataCode-1.InputArcUnitR3 ;Xtem=pDataCode-1.InputArcUnitX3 ;Ltem=pDataCode-1.fInputArcLength3 ;计算本支路的有功损耗和无功损耗float Tatalp=0;float Power;int tem;float ftem4,ftemQ4,Utem,Utem0,ftem0;int Limit=50;Power=Tatalp=0;float LossP=0,LossQ=0,Loss2(0),Load(0),LossQ2(0),LoadQ(0);float loadpp=0;f

26、or(i=iNodeNumber-1;i=0;i-)if(pDatai.iNodeType=5)LossP=(float)(pDatai.NodeTPk*(1.5*pDatai.NodeP*pDatai.NodeP+pDatai.NodeQ*pDatai.NodeQ)/(pDatai.NodeTSn*pDatai.NodeTSn)+pDatai.NodeTP0 ;LossQ=0.04*(1.5*pDatai.NodeP*pDatai.NodeP+pDatai.NodeQ*pDatai.NodeQ)/(pDatai.NodeTSn)+0.024*pDatai.NodeTSn ;pDatai.Dl

27、taNodeP=LossP ;pDatai.DltaNodeQ=LossQ ;Loss2+=LossP;LossQ2+=LossQ ;Load+=pDatai.NodeP ;LoadQ+=pDatai.NodeQ;loadpp+=pDatai.NodeP*pDatai.NodeP ;if( pDatai.NodeTP0=0 & pDatai.NodeTPk=0)pDatai.SampleType=1;else pDatai.NodeP=0;pDatai.NodeQ=0 ;pDatai.DltaNodeP=0;pDatai.DltaNodeQ=0 ; float Loss=0;float Ief

28、f(0),AvS(0),DeltaPL(0),TemP,TemQ,TemPijint Code(0),TemCode;float Rtem(0);float Xtem(0);float Ltem(0);/计算干线的的有功损耗和无功损耗float temLossP(0),temLossQ(0);float TemP=TemQ=TemPij=0;float Temppij=0;int CodeEnd;for(j=0;jpDatai.TwigNum;+j)CodeEnd=pDatai.TwigNodej;/1.5*pi2if(pDataCodeEnd.SampleType)TemP+=pDataCo

29、deEnd.NodeP*pDataCodeEnd.NodeP;elseTemP+=1.5*pDataCodeEnd.NodeP*pDataCodeEnd.NodeP;Temppij+=pDataCodeEnd.NodeP*pDatai.DltaNodeP;TemQ+=pDataCodeEnd.NodeQ;/pijfor(k=j+1;kpDatai.TwigNum;+k)TemPij+=2*pDataTemCode.NodeP*pDataCodeEnd.NodeP;if(pDatai.iNodeType=5)TemP=1.5*pDatai.NodeP*pDatai.NodeP;TemQ=pDat

30、ai.NodeQ;Temppij+=pDatai.NodeP*pDatai.DltaNodeP;pDataCode-1.DltaNodeP+=pDatai.DltaNodeP;pDataCode-1.DltaNodeQ+=pDatai.DltaNodeQ;TemQ=(TemQ+pDatai.DltaNodeQ)*(TemQ+pDatai.DltaNodeQ);temLossP=(TemP+TemPij+TemQ+2*Temppij+pDatai.DltaNodeP*pDatai.DltaNodeP)/pDatai.NodeU/pDatai.NodeU*Rtem*Ltem/1000;temLos

31、sQ=(TemP+TemPij+TemQ+2*Temppij+pDatai.DltaNodeP*pDatai.DltaNodeP)/pDatai.NodeU/pDatai.NodeU*Xtem*Ltem/1000;pDataCode-1.DltaNodeP+=temLossP;pDataCode-1.DltaNodeQ+=temLossQ;Loss+=temLossP;LossQ+=temLossQ;配电网的总有功损耗Los=Loss+Loss2;LosQ=LossQ+LossQ2;数据的输出:ofstreamWrite(line.txt);Write.width(9);WriteiNodeN

32、umber,endl;Write总有功损耗:Los,endl;Write线路有功损耗:Loss,endl;Write变压器有功损耗:Loss2,endl;Write网损率:100*Los/(Los+Load),endl;Write线损率:100*Loss/(Los+Load),endl;Write系统总有功:(Los+Load),endl;Write系统总有功负荷:Load,endl;Write总无功损耗:LosQ,endl;Write线路无功损耗:LossQ,endl;Write变压器无功损耗:LossQ2,endl;Write无功网损率:100*LosQ/(LosQ+LoadQ),endl

33、;Write无功线损率:100*LossQ/(LosQ+LoadQ),endl;Write系统总无功:(LosQ+LoadQ),endl;Write系统总无功负荷:LoadQ,endl;Write系统 pp: loadpp*0.5/6.3/6.3*0.27*0.1,endl;Write子节点:endl;for(i=0;iiNodeNumber;i+) Writei+1 ,;Writeendl;for(j=0;jpDatai.TwigNum;+j)WritepDatai.TwigNodej+1 ,;Writeendl;Write;Writeendl;Write.close();if(pData)

34、delete pData;pData = NULL;第五章结果分析与总结根据设计所得出的数据与理论计算所得的结果基本一致,即所设计的线损计 算程序满足了基本要求。通过这次实践,我了解了配电网线损计算方法,熟悉了 线损计算程序的设计步骤,锻炼了工程设计实践能力,培养了自己独立设计能力。 此次毕业设计是对我专业知识和专业基础知识一次实际检验和巩固,同时也是走 向工作岗位前的一次热身。但是此次课程设计也暴露出自己专业基础的很多不足 之处。比如缺乏综合应用专业知识的能力,对vc编程软件不能熟练运用等等。 使我明白自己知识还很浅薄。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。 课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又 是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。 同时,设计让我感触很深。使我对抽象的理论有了具体的认识。主要参考文献1电力系统稳态分析(第3版).陈珩.北京:中国电力出版社,2007.DL/T 686-1999电力网电能损耗计算导则电力行业标准.3 DL/T 738-2000农村电网节电技术规程电力行业标准.4 Q/CSG 1 1301-2008线损理论计算技术标准南方电网企业标准.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!