葉凌+鄭鵬
摘 ?要 ?提出了一種配網(wǎng)故障定位算法及其程序的實(shí)現(xiàn),解決線路上各點(diǎn)故障定位,算法的計(jì)算量小,計(jì)算速度快。根據(jù)饋線終端設(shè)備(FTU)獲得的故障過電流信息組成信息矩陣,結(jié)合網(wǎng)絡(luò)描述矩陣對(duì)信息矩陣進(jìn)行計(jì)算到信息判斷矩陣,由信息判斷矩陣可以直接判別出故障區(qū)域。
關(guān)鍵詞 ?故障過電流;故障定位;配電網(wǎng);算法
中圖分類號(hào):TN948 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? ?文章編號(hào):1671-7597(2014)21-0028-02
智能電網(wǎng)項(xiàng)目的展開,在環(huán)網(wǎng)柜內(nèi)、線路柱上開關(guān)安裝了大量的FTU等現(xiàn)場(chǎng)監(jiān)控終端,為提高供電可靠性創(chuàng)造了條件。故障發(fā)生后,利用終端設(shè)備FTU提供的短路電流信息,可以對(duì)故障實(shí)現(xiàn)快速、準(zhǔn)確定位。文獻(xiàn)[1]給出了故障定位的矩陣算法,該算法通過網(wǎng)絡(luò)描述矩陣和故障信息矩陣相乘,在進(jìn)行規(guī)格化處理后,才能判定故障點(diǎn)。計(jì)算量比較大。文獻(xiàn)[2]提出一種基于網(wǎng)形結(jié)構(gòu)的故障區(qū)段定位算法,該算法判斷原理簡單、直觀、可滿足實(shí)時(shí)性要求,但不能診斷饋線末端故障的問題。
綜上述,本文提出了一種饋線故障定位算法。該算法不僅能很好地解決饋線各點(diǎn)故障定位問題,而且計(jì)算量小,處理速度快。
1 ?算法基本原理
首先獲得當(dāng)前運(yùn)行方式的網(wǎng)絡(luò)描述矩陣;在發(fā)生故障時(shí),根據(jù)故障電流信息生成一個(gè)故障信息矩陣;通過矩陣運(yùn)算得到故障判定矩陣,應(yīng)用故障判據(jù)就可判斷出故障區(qū)段。
對(duì)饋線上的設(shè)備作為節(jié)點(diǎn)進(jìn)行編號(hào),編號(hào)無規(guī)則,順序可任取。
①網(wǎng)形結(jié)構(gòu)矩陣D形成規(guī)則。N節(jié)點(diǎn)網(wǎng)絡(luò),則D對(duì)應(yīng)為矩陣。定義如下:如果節(jié)點(diǎn)i有子節(jié)點(diǎn)j,則Dij=1,否則Dij=0。若i和j之間有一條饋線且正方向是由i指向j,則對(duì)應(yīng)Dij=1否則Dij=0。②故障信息矩陣G。假定i有故障電流,且方向和正方向相同,則將G中的元素置1,其余均置0。③故障區(qū)間判斷矩陣P=D+G。
故障區(qū)間是判斷P中元素是否滿足2個(gè)條件:
①Pii=1;②、對(duì)所有的Pii=1的j(j≠i),都有Pij=0。
它的物理意義為:當(dāng)i有故障電流,j在i的下方,j沒有故障電流或反方向故障電流,這時(shí)可判定i,j之間發(fā)生了
故障。
當(dāng)故障發(fā)生在末端i時(shí),其判別條件是:若有Pii=1,且對(duì)于所有的Pij=0(j≠i)。
它的物理意義是:當(dāng)某點(diǎn)i 流過故障電流,且i不存在子節(jié)點(diǎn),那么末端i必然發(fā)生故障。
2 ?應(yīng)用舉例
如圖所示,假設(shè)由A供電,則網(wǎng)絡(luò)描述矩陣D為:D13、D27、D36、D49、D62、D68、D75、D712、D810、D811、D104元素為1,其余均為0。
假設(shè)在圖示f1,f2,f3三點(diǎn)發(fā)生故障
G=[1 1 1 1 0 1 1 1 0 1 1 0]。
P=D+G得出:
P11、P13、P22、P27、P33、P36、P44、P49、P62、P66、P68、P75、P77、P712、P88、P810、P811、P1010、P114、P1111為1,其余元素均為0。
從P中可以看出:
P44=1,P49=1,P99=0,滿足判定條件,故區(qū)段4-9為故障區(qū)段。
P77=1,P75=1,P712=1,P55=0,P1212=0,滿足判定條件,故區(qū)段7-5、7-12為故障區(qū)段。
第10行除了P1010=1,其余都為0,滿足末端故障判定條件,所以節(jié)點(diǎn)10末端饋線發(fā)生故障。
其余均不滿足判斷條件,為非故障區(qū)段。
3 ?算法實(shí)現(xiàn)
程序?qū)崿F(xiàn)如下。
讀文件程序:
int n;
char filename1[100]; ?filename1[100]用來存讀文件的文件路徑
FILE *fp; ? ? ? ? ? ? ? ? ? 文件指針變量
printf(“Enter the file name1:\n”);
gets(filename1); ? ? ? ? ? ? ? ? ? ? ? 從鍵盤獲得讀文件的文件路徑
if((fp=fopen(filename1,”r”))==NULL) ? ? ?打開文件
{ printf(“Cannot open infilep.dat\n”);
exit(0); ? ? ? ? ? ? ? ? ? ? ? 退出
節(jié)點(diǎn)編號(hào)程序:
for(i=1;i<=L;i++) ? ? ? ? ? ? ? ? 行掃描,L為網(wǎng)
絡(luò)層數(shù)
{ f=pow(2,i-1); ? ? ? ? ? ? ? ? ? f表示每層的編號(hào)數(shù)目個(gè)
for(j=1;j<=f;j++) ? ? ? ? ? ? ? 列掃描endprint
{zan=fscanf(fp,”%2d”,&n); ? ?每次從文件中讀取2個(gè)字節(jié),并將其存于&n中
a[i][j]=n;
}
}
網(wǎng)絡(luò)描述矩陣:
for(i=1;i { for(j=1;j<=f;j++) { if((a[i][j]!=0)&&(a[i+1][2*j-1]!=0)) 判斷(父節(jié)點(diǎn)的)左子節(jié)點(diǎn)是否存在 {m=a[i][j]; n=a[i+1][2*j-1]; ? ? ? ? ? ? ? 提取行、列號(hào) c[m][n]=1; ? ? ? ? ? ? ? ? ? ?確定父節(jié)點(diǎn)與左子節(jié)點(diǎn)的正向連接關(guān)系 } if((a[i][j]!=0)&&(a[i+1][2*j]!=0)) ? 判斷(父節(jié)點(diǎn)的)右子節(jié)點(diǎn)是否存在 {m=a[i][j]; n=a[i+1][2*j]; ? ? ? ? ? ? ? ? ?提取行、列號(hào) c[m][n]=1; ? ? ? ? ? ? ? ? ? ? 確定父節(jié)點(diǎn)與右子節(jié)點(diǎn)的正向連接關(guān)系 } } } 故障判斷程序 for(i=1;i<=num;i++) ? ? ? ? ? ? 行掃描,num為編號(hào)數(shù)目 { ? x=y=f=0; ? ? ? ? ? ? ? ? ? ? x,y,f用來計(jì)數(shù) for(j=1;j<=num;j++) ? ? ? ? ? ? 行掃描,num為編號(hào)數(shù)目 { if(i==j) ?continue; ? ? 如果i==j,跳出去執(zhí)行j++ if((p[i][i]==1)&&(p[i][j]==1)&&(p[j][j]==0)) x=x+1; ? ? ? ? ? ? ? ? ?滿足條件的元素個(gè)數(shù) else if((p[i][i]==1)&&(p[i][j]==1)&&(p[j][j]==1)) y=y+1; ? ? ? ? ? ? ? ? 對(duì)角元素為1,但不滿足條件的元素個(gè)數(shù) else if(p[i][i]==0) f=f+1;} ? ? ? ? ? ? ? ? ? 對(duì)角元素為0即完全不滿足條件的 if((x==0)&&(y==0)&&(f==0)) ? ? ? ? 符合末端判據(jù)要求 fprintf(fp1,"有故障發(fā)生在節(jié)點(diǎn)%d之后的末端饋線上\n",i); if((x>0)&&(y==0)) for(k=1;k<=num;k++) { if(k==i) continue; if((p[i][i]==1)&&(p[i][k]==1)&&(p[k][k]==0)) ? ?符合區(qū)段故障判據(jù)要求 fprintf(fp1,"有故障發(fā)生在節(jié)點(diǎn)%d和節(jié)點(diǎn)%d之間的饋線上\n",i,k); } } 將程序運(yùn)行后內(nèi)容如下: 所得結(jié)果與實(shí)際故障情況相吻合,體現(xiàn)了所編程序的正確性、可行性。 參考文獻(xiàn) [1]劉健,倪健立,杜宇.配電網(wǎng)故障區(qū)段判斷和隔離的統(tǒng)一矩陣算法[J].電力系統(tǒng)自動(dòng)化,1999,23(1):31-33. [2]衛(wèi)志農(nóng),何樺,鄭玉平.配電網(wǎng)故障區(qū)段定位的一種新算法[J].電力系統(tǒng)自動(dòng)化,2001,2(14):46-50. [3]蔣秀潔,熊信銀,等.改進(jìn)矩陣算法及其在配電網(wǎng)故障區(qū)段定位中的應(yīng)用[J].電網(wǎng)技術(shù),2004,28(19):60-63. [4]楊俊起,陳滟濤,楊凌霄,王福忠.配電網(wǎng)故障區(qū)段定位的改進(jìn)矩陣算法研究[J].南京理工大學(xué)學(xué)報(bào),2007,33(5):135-138.endprint {zan=fscanf(fp,”%2d”,&n); ? ?每次從文件中讀取2個(gè)字節(jié),并將其存于&n中 a[i][j]=n; } } 網(wǎng)絡(luò)描述矩陣: for(i=1;i { for(j=1;j<=f;j++) { if((a[i][j]!=0)&&(a[i+1][2*j-1]!=0)) 判斷(父節(jié)點(diǎn)的)左子節(jié)點(diǎn)是否存在 {m=a[i][j]; n=a[i+1][2*j-1]; ? ? ? ? ? ? ? 提取行、列號(hào) c[m][n]=1; ? ? ? ? ? ? ? ? ? ?確定父節(jié)點(diǎn)與左子節(jié)點(diǎn)的正向連接關(guān)系 } if((a[i][j]!=0)&&(a[i+1][2*j]!=0)) ? 判斷(父節(jié)點(diǎn)的)右子節(jié)點(diǎn)是否存在 {m=a[i][j]; n=a[i+1][2*j]; ? ? ? ? ? ? ? ? ?提取行、列號(hào) c[m][n]=1; ? ? ? ? ? ? ? ? ? ? 確定父節(jié)點(diǎn)與右子節(jié)點(diǎn)的正向連接關(guān)系 } } } 故障判斷程序 for(i=1;i<=num;i++) ? ? ? ? ? ? 行掃描,num為編號(hào)數(shù)目 { ? x=y=f=0; ? ? ? ? ? ? ? ? ? ? x,y,f用來計(jì)數(shù) for(j=1;j<=num;j++) ? ? ? ? ? ? 行掃描,num為編號(hào)數(shù)目 { if(i==j) ?continue; ? ? 如果i==j,跳出去執(zhí)行j++ if((p[i][i]==1)&&(p[i][j]==1)&&(p[j][j]==0)) x=x+1; ? ? ? ? ? ? ? ? ?滿足條件的元素個(gè)數(shù) else if((p[i][i]==1)&&(p[i][j]==1)&&(p[j][j]==1)) y=y+1; ? ? ? ? ? ? ? ? 對(duì)角元素為1,但不滿足條件的元素個(gè)數(shù) else if(p[i][i]==0) f=f+1;} ? ? ? ? ? ? ? ? ? 對(duì)角元素為0即完全不滿足條件的 if((x==0)&&(y==0)&&(f==0)) ? ? ? ? 符合末端判據(jù)要求 fprintf(fp1,"有故障發(fā)生在節(jié)點(diǎn)%d之后的末端饋線上\n",i); if((x>0)&&(y==0)) for(k=1;k<=num;k++) { if(k==i) continue; if((p[i][i]==1)&&(p[i][k]==1)&&(p[k][k]==0)) ? ?符合區(qū)段故障判據(jù)要求 fprintf(fp1,"有故障發(fā)生在節(jié)點(diǎn)%d和節(jié)點(diǎn)%d之間的饋線上\n",i,k); } } 將程序運(yùn)行后內(nèi)容如下: 所得結(jié)果與實(shí)際故障情況相吻合,體現(xiàn)了所編程序的正確性、可行性。 參考文獻(xiàn) [1]劉健,倪健立,杜宇.配電網(wǎng)故障區(qū)段判斷和隔離的統(tǒng)一矩陣算法[J].電力系統(tǒng)自動(dòng)化,1999,23(1):31-33. [2]衛(wèi)志農(nóng),何樺,鄭玉平.配電網(wǎng)故障區(qū)段定位的一種新算法[J].電力系統(tǒng)自動(dòng)化,2001,2(14):46-50. [3]蔣秀潔,熊信銀,等.改進(jìn)矩陣算法及其在配電網(wǎng)故障區(qū)段定位中的應(yīng)用[J].電網(wǎng)技術(shù),2004,28(19):60-63. [4]楊俊起,陳滟濤,楊凌霄,王福忠.配電網(wǎng)故障區(qū)段定位的改進(jìn)矩陣算法研究[J].南京理工大學(xué)學(xué)報(bào),2007,33(5):135-138.endprint {zan=fscanf(fp,”%2d”,&n); ? ?每次從文件中讀取2個(gè)字節(jié),并將其存于&n中 a[i][j]=n; } } 網(wǎng)絡(luò)描述矩陣: for(i=1;i { for(j=1;j<=f;j++) { if((a[i][j]!=0)&&(a[i+1][2*j-1]!=0)) 判斷(父節(jié)點(diǎn)的)左子節(jié)點(diǎn)是否存在 {m=a[i][j]; n=a[i+1][2*j-1]; ? ? ? ? ? ? ? 提取行、列號(hào) c[m][n]=1; ? ? ? ? ? ? ? ? ? ?確定父節(jié)點(diǎn)與左子節(jié)點(diǎn)的正向連接關(guān)系 } if((a[i][j]!=0)&&(a[i+1][2*j]!=0)) ? 判斷(父節(jié)點(diǎn)的)右子節(jié)點(diǎn)是否存在 {m=a[i][j]; n=a[i+1][2*j]; ? ? ? ? ? ? ? ? ?提取行、列號(hào) c[m][n]=1; ? ? ? ? ? ? ? ? ? ? 確定父節(jié)點(diǎn)與右子節(jié)點(diǎn)的正向連接關(guān)系 } } } 故障判斷程序 for(i=1;i<=num;i++) ? ? ? ? ? ? 行掃描,num為編號(hào)數(shù)目 { ? x=y=f=0; ? ? ? ? ? ? ? ? ? ? x,y,f用來計(jì)數(shù) for(j=1;j<=num;j++) ? ? ? ? ? ? 行掃描,num為編號(hào)數(shù)目 { if(i==j) ?continue; ? ? 如果i==j,跳出去執(zhí)行j++ if((p[i][i]==1)&&(p[i][j]==1)&&(p[j][j]==0)) x=x+1; ? ? ? ? ? ? ? ? ?滿足條件的元素個(gè)數(shù) else if((p[i][i]==1)&&(p[i][j]==1)&&(p[j][j]==1)) y=y+1; ? ? ? ? ? ? ? ? 對(duì)角元素為1,但不滿足條件的元素個(gè)數(shù) else if(p[i][i]==0) f=f+1;} ? ? ? ? ? ? ? ? ? 對(duì)角元素為0即完全不滿足條件的 if((x==0)&&(y==0)&&(f==0)) ? ? ? ? 符合末端判據(jù)要求 fprintf(fp1,"有故障發(fā)生在節(jié)點(diǎn)%d之后的末端饋線上\n",i); if((x>0)&&(y==0)) for(k=1;k<=num;k++) { if(k==i) continue; if((p[i][i]==1)&&(p[i][k]==1)&&(p[k][k]==0)) ? ?符合區(qū)段故障判據(jù)要求 fprintf(fp1,"有故障發(fā)生在節(jié)點(diǎn)%d和節(jié)點(diǎn)%d之間的饋線上\n",i,k); } } 將程序運(yùn)行后內(nèi)容如下: 所得結(jié)果與實(shí)際故障情況相吻合,體現(xiàn)了所編程序的正確性、可行性。 參考文獻(xiàn) [1]劉健,倪健立,杜宇.配電網(wǎng)故障區(qū)段判斷和隔離的統(tǒng)一矩陣算法[J].電力系統(tǒng)自動(dòng)化,1999,23(1):31-33. [2]衛(wèi)志農(nóng),何樺,鄭玉平.配電網(wǎng)故障區(qū)段定位的一種新算法[J].電力系統(tǒng)自動(dòng)化,2001,2(14):46-50. [3]蔣秀潔,熊信銀,等.改進(jìn)矩陣算法及其在配電網(wǎng)故障區(qū)段定位中的應(yīng)用[J].電網(wǎng)技術(shù),2004,28(19):60-63. [4]楊俊起,陳滟濤,楊凌霄,王福忠.配電網(wǎng)故障區(qū)段定位的改進(jìn)矩陣算法研究[J].南京理工大學(xué)學(xué)報(bào),2007,33(5):135-138.endprint