電力系統(tǒng)潮流計算C語言程序及說明(共18頁)_第1頁
電力系統(tǒng)潮流計算C語言程序及說明(共18頁)_第2頁
電力系統(tǒng)潮流計算C語言程序及說明(共18頁)_第3頁
電力系統(tǒng)潮流計算C語言程序及說明(共18頁)_第4頁
電力系統(tǒng)潮流計算C語言程序及說明(共18頁)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上實驗目的根據(jù)所給的電力系統(tǒng),編制潮流計算程序,通過計算機進行調試,最后完成一個切實可行的電力系統(tǒng)計算應用程序。通過自己設計電力系統(tǒng)計算程序使同學對電力系統(tǒng)分析有進一步理解,同時加強計算機實際應用能力的訓練。程序計算原理1、概述應用計算機進行電力系統(tǒng)計算,首先要掌握電力系統(tǒng)相應計算的數(shù)學模型;其次是運用合理的計算方法;第三則是選擇合適的計算機語言編制計算程序。建立電力系統(tǒng)計算的相關數(shù)學模型,就是建立用于描述電力系統(tǒng)相應計算的有關參數(shù)間的相互關系的數(shù)學方程式。該數(shù)學模型的建立往往要突出問題的主要方面,即考慮影響問題的主要因素,而忽略一些次要因素,使數(shù)學模型既能正確地反映實

2、際問題,又使計算不過于復雜。運用合理的計算方法,就是要求所選用的計算方法能快速準確地得出正確結果,同時還應要求在解算過程中占用內存少,以利提高計算機的解題規(guī)模。選擇合適的語言編寫程序,就是首先確定用什么計算機語言來編制程序;其次是作出計算的流程圖;第三根據(jù)流程圖用選擇的語言編寫計算程序。然后上機調試,直到語法上無錯誤。本程序采用C語言進行編程。所編制的程序難免存在邏輯錯誤,因此先用一個已知結果的系統(tǒng)作為例題進行計算。用程序計算的結果和已知結果相比較,如果結果相差甚遠就要逐步分析程序的計算步驟,查出問題的出處;如果結果比較接近,則逐步分析誤差來源;直到結果正確為止。2、電力系統(tǒng)潮流計算的程序算法

3、潮流計算是電力系統(tǒng)分析中的一種最基本的計算,它的任務是對給定的運行條件確定系統(tǒng)的運行狀態(tài),如母線上的電壓(幅值及相角)、網(wǎng)絡中的功率分布及功率損耗等。目前計算機潮流計算的方法主要有牛頓-拉夫遜算法和PQ分解法。牛頓-拉夫遜算法是數(shù)學上求解非線形方程組的有效方法,具有較好的收斂性,曾經(jīng)是潮流計算中應用比較普遍的方法。PQ快速分解法是從牛頓-拉夫遜算法演變而來的,是將純數(shù)學的牛頓-拉夫遜算法與電力系統(tǒng)具體特點相結合并進行簡化與改進而得出的。PQ快速分解法比牛頓-拉夫遜算法大大提高了計算速度和節(jié)省了內存,故而本程序以PQ快速分解法進行潮流計算。1)形成節(jié)點導納矩陣(1)自導納的形成對節(jié)點i其自導納Y

4、ii是節(jié)點i以外的所有節(jié)點都接地時節(jié)點i對地的總導納。顯然,Yii應等于與節(jié)點i相接的各支路導納之和,即式中,yi0為節(jié)點i與零電位節(jié)點之間的支路導納;yij為節(jié)點i與節(jié)點j之間的支路導納。(2)互導納的形成對節(jié)點i與節(jié)點k之間的互導納是節(jié)點i、k之間的支路導納的負值,即不難理解。若節(jié)點i和k沒有支路直接相連時,便有Yik=0(3)含變壓器支路的處理若節(jié)點p、q間接有變壓器,如下圖所示,則可作出其型等值電路為:圖1 變壓器型等值電路則p、q的自導納和節(jié)點間的互導納分別為2)計算不平衡功率P、Q并形成修正方程式對每一個PQ節(jié)點或每一個PV節(jié)點都可以根據(jù)下列公式計算出有功功率增量P而對于每一個PQ

5、節(jié)點還可以根據(jù)下面的公式計算出無功功率增量Q在有功功率增量和無功功率增量不滿足如下約束條件時利用PQ分解法則可以形成如下修正方程3)利用因子表法求解修正方程在電網(wǎng)計算中經(jīng)常遇到這樣的問題,對方程組需要反復多次求解,而每次求解僅改變常數(shù)項F,系數(shù)矩陣保持不變。按照一般的高斯消去法,對每一改變的常數(shù)項,形成包括常數(shù)項及系數(shù)矩陣在內的增廣矩陣,然后消去回代求出其解??梢钥闯觯看螌υ鰪V矩陣中A矩陣元素的消元都是重復的,為了避免這種重復,我們把對相同的系數(shù)矩陣重復進行的消去與對不同的常數(shù)項進行的消去分開進行,因此對系數(shù)矩陣的消去只需進行一次,并在消去的過程中將對常數(shù)項進行消去運算的運算因子保存下來,形

6、成所謂因子表,這就是因子表法。因為因子表記錄了高斯消去法對常數(shù)項進行消去的全部信息,利用它便可對不同常數(shù)項進行消去,形成上三角矩陣,最后求出全部未知數(shù)。在使用PQ分解法時,其系數(shù)矩陣是在迭代過程中保持不變的,所以為了節(jié)省內存和縮短運算時間我們采取了因子表法。同時由于電網(wǎng)的節(jié)點導納矩陣矩陣是稀疏陣和對稱陣,于是我們可以采取只保存系數(shù)矩陣的上三角陣來使運算更為簡化。若線性方程組一般形式如下:其中稱為系數(shù)矩陣,稱為未知數(shù)向量, 稱為常數(shù)項向量。將矩陣A的元素進行如下處理:得到因子表其中 ;再利用因子表進行前代過程,求出每次迭代后的常數(shù)項。其前代公式是:求得向量;再由因子表與前代得到的向量F,得到方程

7、組求解出此方程即可得到線性方程組的解向量。4)多次迭代最終求得V和以及全線路功率利用上面所介紹的方法求解修正方程組可以求得和。再利用求得每次迭代后的結果。多次迭代當其滿足約束條件和時,迭代結束。迭代結束后即可得到各節(jié)點的V和,再根據(jù)V、來計算PV節(jié)點的無功功率Q和平衡節(jié)點的功率以及網(wǎng)絡中的功率分布。PV節(jié)點及平衡節(jié)點無功功率計算公式為:平衡節(jié)點有功功率計算公式為:以下圖所標示的正方向,輸電線路功率的計算公式如下:圖2 支路功率計算對其進行實部虛部進行分解可得P、Q計算公式為:程序及說明1、主要變量說明1)結構體類型說明(1)節(jié)點功率結構體struct Nodetype float P,Q;其中

8、,P為節(jié)點的有功功率,Q為無功功率。節(jié)點功率不區(qū)分負荷功率和發(fā)電機功率,其值為本節(jié)點連接的各支路輸入功率及節(jié)點所接負荷、發(fā)電機功率之和,且規(guī)定功率流入節(jié)點為正,流出為負。詳細說明參見下一章“算例及結果”的第二節(jié)“源數(shù)據(jù)格式說明”。(2)線路參數(shù)結構體struct Linetype float G,B,B0,k;其中,G、B為線路的導納和容納;B0為線路的考慮變壓器型等值電路后的對地充電容納的一半Bc/2;k為折算到標準變壓器支路后的變壓器變比。詳細說明參見下一章“算例及結果”的第二節(jié)“源數(shù)據(jù)格式說明”。2)變量說明表2 程序主要變量說明主要變量類型含義Nodeint系統(tǒng)總節(jié)點數(shù)NPintPV+

9、PQ節(jié)點數(shù),即非平衡節(jié)點數(shù)NQintPQ節(jié)點數(shù)Numint *原始節(jié)點編號與程序表示編號映射數(shù)組Nostruct Nodetype *節(jié)點功率數(shù)組Vfloat *節(jié)點電壓有效值數(shù)組Dltafloat *節(jié)點電壓相角數(shù)組Ystruct Linetype *線路參數(shù)矩陣BP、BQfloat *有功、無功簡化雅克比矩陣B、B”countunsigned intPQ迭代次數(shù)eP、eQconst有功、無功迭代精度控制kp、kqint有功、無功迭代結束標志dP、dQfloat *有功、無功不平衡量數(shù)組3、程序流程圖開始讀取節(jié)點數(shù)據(jù)讀取線路數(shù)據(jù)并形成Y矩陣形成矩陣B及B并求取因子表設定PQ節(jié)點電壓初值及各節(jié)

10、點電壓相角的初值迭代計算計算平衡節(jié)點功率及全部線路功率結束圖3 程序主流程圖Kp=1,Kq=1Kp=0且Kq=0Kq=1Count+Kp=0計算P,P/NKp=0 ?求+=Kp=0且Kq=0Kq=0計算Q、Q/NKq=0?求VV+=V結束開始圖4 迭代部分流程圖4、程序代碼/* FUNCTION : POWER FLOW */* WRITTEN BY : HUANG&YANG&TONG */* LAST EDITED : 2008-11-24 */#include <stdio.h>#include <math.h>/* 宏定義 */#define eP

11、 0.00001#define eQ 0.00001#define Y_(i,j) (*(*(Y+i)-i+j)#define Yij (*(Yi+j)#define Yji (*(*(Y+j)-j+i)#define Pji Yji.G*cos(tmp)+Yji.B*sin(tmp)#define Pij Yij.G*cos(tmp)+Yij.B*sin(tmp)#define Qji Yji.G*sin(tmp)-Yji.B*cos(tmp)#define Qij Yij.G*sin(tmp)-Yij.B*cos(tmp)/* 結構體變量定義 */struct Nodetype /* 節(jié)點

12、功率 */ float P,Q;struct Linetype /* 線路類型 */ float G,B,B0,k;/* 子函數(shù)聲明 */void in_node(); /* 讀節(jié)點功率 */void in_line(); /* 讀線路參數(shù) */void B_Form(); /* 生成BP、BQ矩陣 */void factor(); /* 求因子表 */void solve(float *B,float *X,int N); /* 解方程組 */void PrtNode(); /*打印節(jié)點參數(shù)*/void ErrorMsg(int Flag); /* 錯誤提示信息 */* 全局變量聲明 */i

13、nt Node; /*節(jié)點數(shù)*/int *Num; /*保存原始節(jié)點序號*/int NP,NQ=0; /*PV+PQ、PQ節(jié)點數(shù)*/struct Nodetype *No; /*節(jié)點數(shù)據(jù)*/struct Linetype *Y; /*線路參數(shù)*/float *BP,*BQ; /*有功、無功簡化雅克比矩陣B*/float *V; /*節(jié)點電壓有效值*/float *Dlta; /*節(jié)點電壓相角值*/unsigned int count=0; /*迭代計數(shù)*/int i,j,k,m; /*通用下標值*/float tmp; /*臨時數(shù)據(jù)暫存*/char *Type; /*節(jié)點類型*/FILE *i

14、n,*out; /*輸入、輸出文件指針*/* 主函數(shù) */* 主函數(shù) */int main(void) int kp=1,kq=1; /*P、Q精度判斷:1-不滿足,0-滿足精度要求*/ float *dP,*dPi,*dQ,*dQi; /*P、Q*/ float Dltai; struct Linetype *Yi; struct Nodetype *Noi; float tP,tQ; if(in=fopen("Data.txt","r")=NULL) ErrorMsg(1); if(out=fopen("out.txt",&quo

15、t;w")=NULL) ErrorMsg(2); in_node(); /*讀取節(jié)點參數(shù)并統(tǒng)計PQ、PV節(jié)點數(shù)*/ in_line(); /*讀取線路參數(shù)并形成Y矩陣*/ B_Form(); /*形成B(BP&BQ)矩陣*/ factor(); /*求B因子式(仍保存于BP&BQ)*/ for(i=0;i<NQ;i+) *(V+i)=1; /*對PQ節(jié)點電壓V賦初值*/ dP=(float *)malloc(sizeof(float)*NP); /*P*/ dQ=dP; /*Q*/*P、Q不同時存在,故而可共用空間*/loop: /*開始迭代*/ if(kp=0

16、&&kq=0) goto loopEnd; count+; /*迭代次數(shù)加一*/ if(count=65535) ErrorMsg(99); /*不收斂,退出*/ kp=0; for(i=0;i<NP;i+) dPi=dP+i; Yi=*(Y+i)-i; Dltai=*(Dlta+i); *dPi=0; for(j=0;j<Node;j+) tmp=Dltai-*(Dlta+j); /*tmp即ij*/ if(i>j) *dPi+=*(V+j)*(Pji); else *dPi+=*(V+j)*(Pij); /*注意到Y矩陣為上三角矩陣,i>j時要交換下

17、標*/ *dPi*=*(V+i); *dPi=(*(No+i).P-*dPi; /*求得Pi*/ if(fabs(*dPi)>0x8fffffff) ErrorMsg(99); /*不收斂,退出*/ if(fabs(*dPi)>eP) kp=1; /*有不滿足精度的P即令kp=1*/ *dPi/=*(V+i); /*求得常數(shù)項Pi/Vi*/ if(kp=0) goto loopQ; solve(BP,dP,NP); for(i=0;i<NP;i+) *(Dlta+i)+=(*(dP+i)/(*(V+i); /*修正相角+=*/loopQ: if(kp=0&&k

18、q=0) goto loopEnd; kq=0; for(i=0;i<NQ;i+) dQi=dQ+i; Yi=*(Y+i)-i; Dltai=*(Dlta+i); *dQi=0; for(j=0;j<Node;j+) tmp=Dltai-*(Dlta+j); /*tmp即ij*/ if(i>j) *dQi+=*(V+j)*(Qji); else *dQi+=*(V+j)*(Qij); /*注意到Y矩陣為上三角矩陣,i>j時要交換下標*/ *dQi*=*(V+i); *dQi=(*(No+i).Q-*dQi; /*求得Qi*/ if(fabs(*dQi)>0x8ff

19、fffff) ErrorMsg(99); /*不收斂,退出*/ if(fabs(*dQi)>eQ) kq=1; /*有不滿足精度的Q即令kq=1*/ *dQi/=*(V+i); /*求得常數(shù)項Qi/Vi*/ if(kq=0) goto loop; solve(BQ,dQ,NQ); for(i=0;i<NQ;i+) *(V+i)+=*(dQ+i); /*修正PQ節(jié)點電壓V+=V*/ goto loop; /*無功迭代,則必定需要下一輪回迭代判斷*/loopEnd: /*迭代結束*/free(dP); /*釋放內存空間*/*計算PV節(jié)點和平衡節(jié)點的無功功率Q*/ for(i=NQ;i&

20、lt;Node;i+) Noi=No+i; Yi=*(Y+i)-i; Dltai=*(Dlta+i); for(j=0;j<Node;j+) tmp=Dltai-*(Dlta+j); /*tmp即ij*/ if(i>j) (*Noi).Q+=*(V+j)*(Qji); else (*Noi).Q+=*(V+j)*(Qij); /*注意到Y矩陣為上三角矩陣,i>j時要交換下標*/ (*Noi).Q*=*(V+i); /*計算平衡節(jié)點的有功功率P*/ i=NP; Noi=No+i; Dltai=*(Dlta+i); for(j=0;j<Node;j+) tmp=Dltai-

21、*(Dlta+j); /*tmp即ij*/ (*Noi).P+=*(V+j)*(Pji); /*注意到Y矩陣為上三角矩陣,i>j時要交換下標*/ (*Noi).P*=*(V+i);/*輸出最終結果*/fprintf(out,"nn【 潮流計算結果(節(jié)點) 】 ( 迭代次數(shù)k=%3d )n",count-1);PrtNode();/*計算全部線路功率*/fprintf(out,"nn【 潮流計算結果(線路) 】n");fprintf(out," 線路 P Qn"); for(k=0;k<Node;k+) i=*(Num+k)

22、; Yi=*(Y+i)-i; Dltai=*(Dlta+i); Noi=No+i; for(m=0;m<Node;m+) j=*(Num+m); if(j=i) continue; tmp=Dltai-*(Dlta+j); /*tmp即ij*/ if(j<i) if(Yji.B=0) continue; /*若Bij=0,則節(jié)點i、j無直接聯(lián)系*/ tP=*(V+j)*(Pji); tP=*(V+i)*Yji.G-tP; tP*=*(V+i); tQ=-*(V+j)*(Qji); tQ-=*(V+i)*(Yji.B-Yji.B0/Yji.k); tQ*=*(V+i); else i

23、f(Yij.B=0) continue; /*若Bij=0,則節(jié)點i、j無直接聯(lián)系*/ tP=*(V+j)*(Pij); tP=*(V+i)*Yij.G-tP; tP*=*(V+i); tQ=-*(V+j)*(Qij); tQ-=*(V+i)*(Yij.B-Yij.B0); tQ*=*(V+i); fprintf(out,"S%d,%d= (%10.6f,%10.6f)n",k+1,m+1,-tP,-tQ); fclose(out); system("cmd /c start out.txt"); return(0);/* 主函數(shù) */* 主函數(shù) */*

24、 子函數(shù):讀節(jié)點數(shù)據(jù) */void in_node() struct Nodetype *Noi; /*臨時變量*/ fscanf(in,"%d %d",&Node,&k);/*讀取節(jié)點數(shù)Node*/ NP=Node-1; /*PV+PQ節(jié)點數(shù),即非平衡節(jié)點數(shù)目*/ Num=(int *)malloc(sizeof(int)*Node); /*開Node個空間,每節(jié)點一個*/ V=(float *)malloc(sizeof(float)*Node); /*電壓*/ Dlta=(float *)malloc(sizeof(float)*Node); /*電壓

25、相角*/ No=(struct Nodetype *)malloc(sizeof(struct Nodetype)*Node);/*節(jié)點功率*/ j=1; while(k!=0) /*若k=0,表明節(jié)點數(shù)據(jù)讀取完畢*/ switch(k) case 1:k=NQ;NQ+;break; /*NQ統(tǒng)計PQ節(jié)點個數(shù)*/ case 2:k=NP-j;j+;break; /*從NP-1個空間倒著保存PV節(jié)點*/ case 3:k=NP;break; /*平衡節(jié)點*/ default:ErrorMsg(3); Noi=No+k; fscanf(in,"%d %f %f %f %f",&

26、amp;i,&(*Noi).P,&(*Noi).Q,V+k,Dlta+k); i-; /*節(jié)點編號減一,以和程序表達方式兼容*/ *(Num+i)=k; /*第i個Num元素中存放i節(jié)點在No中的下標*/ fscanf(in,"%d",&k); /*讀取節(jié)點類型*/ if(NQ+j!=Node) ErrorMsg(4); /*檢驗節(jié)點數(shù)據(jù)個數(shù)是否夠Node個*/fprintf(out,"【 節(jié)點參數(shù)表 】n");PrtNode();fprintf(out," 總節(jié)點:%dn PQ節(jié)點:%dn PV節(jié)點:%dn"

27、,Node,NQ,NP-NQ);/* 子函數(shù):讀線路數(shù)據(jù),并形成節(jié)點導納矩陣Y */void in_line() struct Linetype *Yi; float R,X,k,B; m=sizeof(struct Linetype); Y=(struct Linetype *)malloc(m*Node); /*先開Node行,每一個節(jié)點一行*/ for(i=0;i<Node;i+) /*再在第i行上面開辟Node-i列*/ /*即以上三角存儲 Y 矩陣*/ *(Y+i)=(struct Linetype *)malloc(m*(Node-i); Yi=*(Y+i)-i; for(j

28、=i;j<Node;j+) Yij.G=Yij.B=Yij.B0=Yij.k=0; /*初始化*/ while(feof(in)=0) /*文件指針到文件末*/ fscanf(in,"%d %d %f %f %f %f",&i,&j,&R,&X,&k,&B); i-;j-; i=*(Num+i); /*轉換節(jié)點號為該節(jié)點在程序中的儲存編號*/ j=*(Num+j); (*(*(Y+i).B+=B; /* 將對地充電導納累加到自導納 */ (*(*(Y+j).B+=B; if(k!=1.0) X*=k;R=0; tmp=(

29、1-k)/X; (*(*(Y+i).B+=tmp; /*將變壓器的對地充電容納累加到自導納*/ (*(*(Y+j).B+=-(tmp/k); B=tmp; k=-k; if(i>j) tmp=i;i=j;j=tmp;k=1/k;B*=k; Yi=*(Y+i)-i; /* 以Yi代替*(Y+i)-i,簡化表達式并避免重復計算 */ Yij.B0=B; /*保存ij0、ji0對地充電電容到Bij0*/ Yij.k=k; /*且有B0ji=B0ij/k*/ tmp=R*R+X*X; R/=tmp; X/=tmp; Yij.G=-R; /* 生成互導納 */ Yij.B=X; (*(*(Y+i)

30、.G+=R; /* 將線路互導納累加到自導納 */ (*(*(Y+i).B+=-X; (*(*(Y+j).G+=R; (*(*(Y+j).B+=-X; fclose(in);fprintf(out,"n【 節(jié)點導納矩陣 Y 】n");for(k=0;k<Node;k+) i=k; i=*(Num+i); /*查取第i節(jié)點在程序中存儲序號*/ for(j=0;j<k;j+) fprintf(out,"ttt"); for(m=k;m<Node;m+) j=*(Num+m); /*查取第j節(jié)點在程序中存儲序號*/ if(i<j) fp

31、rintf(out,"(%10.6f,%10.6f) ",Y_(i,j).G,Y_(i,j).B); else fprintf(out,"(%10.6f,%10.6f) ",Y_(j,i).G,Y_(j,i).B); fprintf(out,"n"); /* 子函數(shù):生成BP、BQ矩陣 */void B_Form() float *BPi,*BQi; struct Linetype *Yi; int size=sizeof(float); BP=(float *)malloc(size*NP); /*以上三角存儲*/ for(i=0;

32、i<NP;i+) *(BP+i)=(float *)malloc(size*(NP-i); for(i=0;i<NP;i+) BPi=*(BP+i)-i; /* 以BPi代替*(BP+i)-i,避免重復計算 */ Yi=*(Y+i)-i; for(j=i;j<NP;j+) *(BPi+j)=Yij.B; /*(BPi+j)即相當于BPij*/ BQ=BP; /* BP包含BQ,BP左上角的NQ*NQ子陣即BQ */* 子函數(shù):求因子表 */void factor() float *BPi,*BPk,*BQi; for(i=0;i<NP;i+) BPi=*(BP+i)-i

33、; for(k=0;k<i;k+) BPk=*(BP+k)-k; tmp=(*(BPk+i)/(*(BPk+k); for(j=i;j<NP;j+) (*(BPi+j)-=tmp*(*(BPk+j); *(BPi+i)=1/(*(BPi+i); for(j=i+1;j<NP;j+) *(BPi+j)*=*(BPi+i); /* 子函數(shù):解方程組 */void solve(float *B,float *X,int N) float *Bi,*Xi; for(i=0;i<N;i+) *(X+i)=-*(X+i);/*對常數(shù)項取負*/*對常數(shù)列進行前代*/ for(i=0;

34、i<N;i+) Bi=*(B+i)-i; Xi=X+i; for(j=i+1;j<N;j+) *(X+j)-=*(Bi+j)*Xi; *Xi*=*(Bi+i); /*回代以求解方程組*/ for(i=N-1;i>=0;i-) Bi=*(B+i)-i; Xi=X+i; for(j=N-1;j>i;j-) *Xi-=*(Bi+j)*(X+j); /*打印節(jié)點參數(shù)*/void PrtNode() struct Nodetype *Noi;fprintf(out,"節(jié)點 類型 P Q V n");for(i=0;i<Node;) j=*(Num+i);

35、 /*查取第i節(jié)點在程序中存儲序號*/ Noi=No+j; if(j<NQ) Type="PQ" else Type="PV" if(j=NP) Type="BS" fprintf(out,"%3d %s %10.6f %10.6f %10.6f %10.6fn", +i,Type,(*Noi).P,(*Noi).Q,*(V+j),*(Dlta+j)/0.); /* 子函數(shù):錯誤信息 */void ErrorMsg(int Flag) switch(Flag) case 1:printf("ntEr

36、ror(1): Failed to Open File "Data.txt"!");break; case 2:printf("ntError(2): Failed to Creat File "out.txt"!");break; case 3:printf("ntError(3): Node Data Error, Please Check!");break; case 4:printf("ntError(4): Lack Node Data, Please Check!");br

37、eak; case 99:printf("k=%dntError(99): It's Emanative!",count);break; getch(); fclose(out); exit(Flag);算例及結果1、原始數(shù)據(jù)程序編寫過程中,采用了電力系統(tǒng)分析教材的4節(jié)點、IEEE9節(jié)點參數(shù)進行了驗證。本說明書中僅列出4節(jié)點驗算過程。4節(jié)點測試數(shù)據(jù)來源于參考文獻中的電力系統(tǒng)分析(下冊)第61頁例11-5,用于檢驗程序正確性的參考計算結果見67頁。對其基本情況總結如下。1)網(wǎng)絡連接圖圖6 算例電力系統(tǒng)網(wǎng)絡圖2)節(jié)點參數(shù)表4 算例節(jié)點參數(shù)表節(jié)點類型節(jié)點編號有功功率P無功

38、功率Q電壓V電壓相角11-0.30-0.180012-0.55-0.1300230.501.10034001.0503)線路參數(shù)表5 算例線路參數(shù)表節(jié)點1節(jié)點2阻抗R感抗X變壓器變比k充電容納Bc/2120.10.410.01528140.120.510.01920240.080.410.014133100.30.04)數(shù)據(jù)文件data.txt43 4 0 0 1.05 02 3 0.5 0 1.10 01 1 -0.30 -0.18 0 01 2 -0.55 -0.13 0 001 2 0.1 0.4 1 0.015283 1 0 0.3 0. 01 4 0.12 0.5 1 0.01920

39、2 4 0.08 0.4 1 0.01413圖7 數(shù)據(jù)文件格式2、源數(shù)據(jù)格式說明源數(shù)據(jù)有功功率、無功功率、電壓、阻抗、感抗、對地充電容納均以標幺值表示。數(shù)據(jù)文件必須命名為data.txt且與潮流計算程序放置于同一個文件中。數(shù)據(jù)文件data.txt包含兩類參數(shù):節(jié)點參數(shù)和線路參數(shù)。節(jié)點數(shù)據(jù)塊與線路數(shù)據(jù)塊之間用數(shù)字0作為間隔,即在節(jié)點數(shù)據(jù)塊結束后,另起一行輸入0,然后再在后面按格式要求錄入線路參數(shù)1)節(jié)點參數(shù)節(jié)點參數(shù)包括:系統(tǒng)節(jié)點數(shù)Node、節(jié)點功率(有功P、無功Q),節(jié)點電壓(有效值V、相角Delta)參數(shù)組織格式:(1)節(jié)點數(shù)Node節(jié)點數(shù)Node寫在參數(shù)文件的開頭,如:4表明為四節(jié)點系統(tǒng)。(2)功率和電壓P/Q/V/Delta首先給出節(jié)點參數(shù)示例:2 3 0.5 0 1.10 0第一列數(shù)字2表明該節(jié)點的類型為2-PV節(jié)點;第二列數(shù)字3表明該行數(shù)據(jù)為節(jié)點3的參數(shù);后面三列依次為P、Q、V的給定值,給定值為0,表明該項參數(shù)未知;第六列為相角,非平衡

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論