第一篇:2第二章 電力系統(tǒng)潮流計算-2
第二章 電力系統(tǒng)潮流計算
2.1 概 述
2.2 潮流計算問題的數學問題 2.3 潮流計算的牛頓法 2.4 潮流計算的P-Q分解法
2.5 靜態(tài)安全分析及補償法
2.5.1 靜態(tài)安全分析概述
靜態(tài)安全分析是電力系統(tǒng)規(guī)劃和調度的常用手段,用以校驗輸變電設備強迫退出運行后系統(tǒng)的運行狀態(tài),回答諸如“假如電網中某一條500kv輸電線路開斷后,系統(tǒng)運行狀態(tài)發(fā)生什么變化”之類的問題[21,22]。對這個問題的回答可能是系統(tǒng)的潮流和電壓都在容許的范圍之內,或者出現某些輸變電設備過負荷或某些母線電壓越界的情況。前者的系統(tǒng)是安全的,后者則是不安全的。因此,靜態(tài)安全分析是電力系統(tǒng)安全分析的一個重要組成部分,它不涉及電力系統(tǒng)的動態(tài)過程的分析,故稱為靜態(tài)安全分析,是以下各節(jié)介紹的主要內容。動態(tài)安全分析問題的討論詳見第5章及第6章。
利用靜態(tài)安全分析可以進行事故預想,對一個輸電系統(tǒng)規(guī)劃方案而言,可以校驗其承受事故的能力;對運行中的電力系統(tǒng)而言,可以檢驗其運行方式及接線方式的安全性,進而給出事故前后應采用的防范措施或校正措施。靜態(tài)安全分析中需要校驗的典型事故包括發(fā)電機組或輸變電設備的強迫停運,也包括短路引起的保護動作致使多個設備同時退出運行的情況。
系統(tǒng)規(guī)劃設計人員在進行發(fā)電系統(tǒng)和輸電系統(tǒng)規(guī)劃時,應利用靜態(tài)安全分析考慮各種可能的設備開斷情況,并評估其后果是否滿足安全性的要求。為此,規(guī)劃設計人員一般需要增加一些冗余的設備或調整計劃以減少中斷供電的可能性。
在電力系統(tǒng)的運行中,為了避免過負荷和電壓越界引起的設備損壞,或由于過負荷設備在系統(tǒng)保護作用下退出運行而導致大面積連鎖反應性的停電,在線或實時地進行系統(tǒng)靜態(tài)安全分析非常重要[23,24]。特別是隨著電力市場的進展,電力系統(tǒng)的發(fā)輸配電各環(huán)節(jié)由統(tǒng)一管理、統(tǒng)一調度逐步轉向雙邊合同交易和發(fā)電廠商的競價上網,使系統(tǒng)運行出現了諸多不確定因素,對電力系統(tǒng)運行的安全監(jiān)視和控制提出了更高的要求。
由于不涉及元件動態(tài)特性和電力系統(tǒng)的動態(tài)過程,靜態(tài)安全分析實質上是電力系統(tǒng)運行的穩(wěn)態(tài)分析問題,即潮流問題。也就是說,可以根據預想的事故,設想各種可能的設備開斷情況,完成相應的潮流計算,即可得出系統(tǒng)是否安全的結論。但是,靜態(tài)安全分析要求檢驗的預想事故數量非常大,而在線分析或實時分析又要在短時間內完成這些計算、因此,開發(fā)研究了許多專門用于靜態(tài)安全分析的方法,如補償法、直流潮流法及靈敏度分析法等,以下將分別介紹這些基本的方法。2.5.2 補償法
電力系統(tǒng)基本運行方式計算完畢以后,往往還要求系統(tǒng)運行人員或規(guī)劃設計人員進行一些特殊運行方式的計算,以分析系統(tǒng)中某些支路開斷以后系統(tǒng)的運行狀態(tài),以下簡稱斷線運行方式。這對于確保電力系統(tǒng)可靠運行,合理安排檢修計劃都是非常必要的。
發(fā)電廠運行狀態(tài)的變化,如發(fā)電廠之間出力的調整和某些發(fā)電廠退出運行等情況,在程序中都是比較容易模擬的。因為這時網絡結構和網絡參數均未發(fā)生變化,所以網絡的阻抗矩陣、導納短陣以及P-Q分解法中的因子表都應和基本運行方式一樣。因此,我們只要按照新的運行方式給定各發(fā)電廠的出力,就可以直接轉入迭代程序。應該指出,在這種情況下不必重新送電壓初值,利用基本運行方式求得的節(jié)點電壓作為電壓初值可能更有利于收斂。
當系統(tǒng)因故障或檢修而開斷線路或變壓器時,要引起電網參數或局部系統(tǒng)結構發(fā)生變化,因此在這種情況下進行潮流計算時,要修改網絡的阻抗矩陣或導納矩陣。
對于牛頓法潮流程序來說,修正導納矩陣以后,即可轉入迭代程序(見圖2-5)。
對于P-Q分解法來說,修改導納矩陣以后,應該先轉入形成因子表程序,然后再進行迭代計算(見圖2-9)。在程序編制上這樣處理比較簡單,只需要增加修改導納矩陣的程序,但是,由于需要重新形成因子表,因此計算速度較慢。為了進一步發(fā)揮P-Q分解法的優(yōu)點,提高計算速度,可以采用補償法的原理[7],在原有基本運行方式的因子表的基礎上進行開斷運行方式的計算。當潮流程序用作在線靜態(tài)安全監(jiān)視時,利用補償法以加速順序開斷方式的檢驗就顯得特別重要。
應該指出,補償法的概念不僅應用于P-Q分解法潮流程序中,也廣泛應用在短路電流、復雜故障以及動態(tài)穩(wěn)定計算程序的網絡處理上。以下首先介紹補償法的基本原理,然后討論如何利用補償法進行開斷運行方式的計算。
如圖2-12所示,設網絡N的導納矩陣已經形成,并對它進行三角分解而得到因子表。現在的問題是,當向網絡節(jié)點i、j之間追加阻抗zij時.如何根據已知的節(jié)點注入電流
利用原電力網絡N的因子表,求得新條件下的電壓
如果我們能夠求得流入原網絡N的注入電流向量
&的等效電路 圖2-14 求電流Iij那么利用原網絡因子表對此I?進行消去回代運算就可以得到節(jié)點電壓向量V。但
&并不知道,因而也就不是在各節(jié)點電壓求出以前,追加支路Zij上通過的電流Iij能直接利用I?求節(jié)點電壓。
根據迭加原理,可以把圖2-12所示網絡拆為兩個等值網絡,如圖2-13(a)及(b)所示。節(jié)點電壓向量V可以表示為
式中:V(0)相當子沒有追加支路,或追加支路開路的情況下各節(jié)點的電壓向量,見圖2-13(a)。由于這種情況下各節(jié)點的注入電流I已知,因此利用原網絡N的因子表不難求得
現在討論如何求得圖2-13(b)中各節(jié)點電壓V(1)。在這個圖中,向原網絡注入的電流向量為
圖2-13 補償法原理示意圖
&現在暫時還是未知量。但如果假定I&?1,則利用原網絡因子表就可以求其中Iijij&為單位電流時,網絡各節(jié)點的電壓 得當Iij
&那么由于網絡是線性的,這樣,如果能求出I就可以按下式求得最終的電壓向量: ij
&。為此,需要利用等值發(fā)電機原理 因此,現在的關鍵問題就在于如何求得Iij如上所述,V(0)相當于追加支路Zij開路情況下網絡各節(jié)點的電壓。如果現在把整個系統(tǒng)看成是支路Zij的等值電源,那么這個電源的空載電壓就是
電源的等值內阻抗ZT的值應為
(ij)(ij)&&這是因為(V)是在i,j兩點分別通入正、負單位電流而在i,j點造成的壓?Vij降,在數值上應等于從i,j點看進去的輸入阻抗。這樣,就可以得到圖2-14所示的等值電路由該回可以直接求出
&的等效電路 圖2-14 求電流Iij
式中:
&代入式(2-90)中.即可得到所需要的節(jié)點電壓向量V。將式(2-93)求得的I ij以上討論了補償法的基本原理。實用上,利用補償法求解節(jié)點電壓的過程可按以下步驟進行:
(1)利用原網絡的因子表對于單位電流向量
進行消去回代運算.求出V?ij?。
?人(2)利用式(2-92)求等值發(fā)電機的內阻抗ZT,并進而根據式(2-94)求Zij(3)利用原網絡因子表對節(jié)點注入電流向量I進行消去回代運算,求出V?0?,見圖2-13(a)。
&。(4)根據式(2-93)求出流經追加支路Zij的電流Iij(5)利用式(2-90)求出節(jié)點電壓向量V。
當網絡發(fā)生一次變化或操作后,需要對不同的節(jié)點注入電流I求解節(jié)點電壓
?可以暫時貯存時,步驟(1)及(2)的運其只需要進行一次,把計算結果V??、Zijij起來。這樣,對不同的I求V時,只需要作步驟(3)~(5)的運算。因此利用補償法求解網絡節(jié)點電壓和一般用因子表求解網絡節(jié)點電壓相比,在運算量上并沒有顯著的增加,但是形成一次因子表的運算量約為求解一次網絡節(jié)點方程運算量的10倍左右,因此,當網絡進行一次操作,要求反復求解網絡方程的次數小于5次時,用補償法比重新形成因子表要節(jié)約很大的運算量[8]。
補償法在原理上也可用于網絡同時進行兩處或多處操作的情況,這時需要遞歸地套用以上的計算步驟,本書不再詳述,有興趣的讀者可以參考文獻[3]。
以上介紹了補償法的原理,下面我們討論在P-Q分解法潮流程序中如何利用補償法進行開斷運行方式的計算。
對于式(2-81)、式(2-82)所示的修正方程式,可以分別看成是由“導納矩陣”B?及B??所描述網絡的節(jié)點方程式,其注入電流分別為?PV及?QV,待求的節(jié)點電壓為V0??及?V,這樣就可以完全套用以上的計算過程。在這種情況下對B?及B??來說,圖2-12中追加支路阻抗應分別為
當開斷元件不是線路而是非標準變比的變壓器時,式(2-95)的電流表示式應改寫為
式中;nT為非標準變比,在j側。這時式(2-91)~(2-93)相應地變?yōu)?/p>
式中:
必須注意,以上斷線操作在式(2-96)中實際上只考慮了斷開電線路和變壓器的不接地支路。嚴格地講,輸電線路對地電容或非標準變比變壓器接地支路也應同時斷開,但是,這樣就成為同時出現3處操作的情況,使計算復雜化。計算實踐表明,在利用補償法進行系統(tǒng)開斷運行方式計算時,不計接地支路的影響,給計算帶來的誤差是很小的,完全可以忽略不計。
2.6 靜態(tài)安全分析的直流潮流法
直流潮流模型把非線性電力系統(tǒng)潮流問題簡化為線性電路問題,從而使分析計算非常方便。直流潮流模型的缺點是精確度差,只能校驗過負荷,不能校驗電壓越界的情況。但直流潮流模型是線性模型,不僅計算快,適合處理斷線分析,而且便于形成便于用線性規(guī)劃求解的優(yōu)化問題,因此,得到了廣泛的應用。2.6.1 直流潮流模型
支路有功潮流可表示為
式中:tij為支路ij的變壓器非標準變比;?ij為支路ij兩端節(jié)點電壓的相角差;Gij,Bij為節(jié)
點導納矩陣元素的實部與虛部。
式中:rij,xij為支路ij的電阻和電抗,當i?j時,將交流潮流很據P-Q分解法的簡化條件進行簡化,就可以得到如下直流潮流方程
由式(2-104)可知Bij?1,但為了以下應用方便起見,我們定義 xij 因此,最后,得到
寫成矩陣形式,為
式中:P為節(jié)點注入功率向量,其中元素Pi?PGi?PDi,這里PGi和PDi分別為節(jié)點i的發(fā)電機出力和負荷;?為節(jié)點電壓相角向量;B為節(jié)點導納矩陣的虛部,其元素由式(2-106)和式(2-107)構成。
式(2-109)也可寫成另一種形式:
式中:X為B的逆矩陣:
同樣,將P?Q分解法的簡化條件代入支路潮流方程式(2-102),可以得到
將上式寫成矩陣形式,式中;Pl為各支路有功功率潮流構成的向量;?為各支路兩端相角差向量;Bl為由各支路導納組成的對角矩陣,設系統(tǒng)的支路數為l,則Bl為l階方陣。
設網絡關聯(lián)矩陣為A,則有
式(2-109)、式(2-ll0)、式(2-113)均為線性方程,是直流潮流方程的基本形式。當系統(tǒng)運行方式及接線方式給定時,即得到關于?的方程(2-109),通過三角分解或矩陣直接求逆可以由式(2-110)求出狀態(tài)向量?,并進而出式(2-113)求出各支路的有功潮流。
2.6.2 直流潮流的斷線模型
由以上討論可以看出,應用直流潮流模型求解輸電系統(tǒng)的狀態(tài)和支路有功潮流非常簡單。現在我們還要指出,由于模型是線性的,故可以快速進行追加和開斷線路后的潮流計算。
設原輸電系統(tǒng)網絡的節(jié)點阻抗矩陣為X,支路k兩端的節(jié)點為i,j。這里的支路是指兩節(jié)點間各線路的并聯(lián),線路是支路中的一個元件。當支路A增加一條電抗為xk的線路(以下稱追加線路k)時,形成新的網絡。根據1.4節(jié)的支路追加原理,新網絡的節(jié)點阻抗矩陣X?應為[見式(1-107)]
式中:
式(2-117)可以簡寫為
式中:
式中:
式中:Xii,Xjj,Xij均為X中的元素。由式(2-118)可知節(jié)點阻抗矩陣的修正量為
根據式(2-121)和線性關系式(2-l05),在節(jié)點注入功率不變的情況下,我們可以直接得到加線路k后的狀態(tài)向量的增量為
式中:?k?ekT?為追加線路前支路k兩端電壓的相角差。新網絡的狀態(tài)向量為
這樣我們就得到了追加線路k后,阻抗矩陣和狀態(tài)向量的修正公式(2-118)和式(2-123)。當網絡去掉或斷開支路k時只要將xk換為?xk,以上公式同樣適用。
應該指出,當網絡開斷支路k使系統(tǒng)解列時,新的阻抗矩陣X?不存在,這時式(2-119)中的?k為無窮大,或?xk??k?0。因此,應用直流潮流模型可以方便地找出網絡中那些開斷后引起系統(tǒng)解列的線路,對于這些線路不能直接進行斷線分析。
2.6.3 N?1檢驗與故障排序方法
目前比較常見的網絡安全運行要求是滿足N?1檢驗,即在全部N條線路中任意開斷一條線路后,系統(tǒng)的各項運行指標均應滿足給定的要求。在網絡規(guī)劃形成網絡結構的初期,最重要的原則是使網絡不出現過負荷,即網絡能夠滿足安全的輸送電力的要求,為此我們應進行逐條線路開斷后的過負荷校驗。當任意一條線路開斷后能夠引起系統(tǒng)其他線路出現過負荷或系統(tǒng)解列時,說明網絡沒有滿足N?1檢驗。
嚴格的N?1檢驗需要對全部線路進行N次斷線分析,計算工作量很大。實際上,網絡中有一些線路在開斷后并不引起系統(tǒng)過負荷,因此我們可根據各線路開斷后引起系統(tǒng)過負荷的可能性進行故障排序,然后按照順序依次對過負荷可能性較大的線路進行校驗。當校驗到某條線路開斷后不引起過負荷時,則排在其后的線路就可以不再進行校驗,從而可以顯著地減少計算量,這個過程也稱為故障選擇。目前國內外已出現了不少故障排序方法[25,26],這些方法評判系統(tǒng)事故的標準各不相同。本節(jié)將介紹一種以是否引起系統(tǒng)過負荷作為標準的故障排序方法。
為了綜合反映系統(tǒng)的過負荷情況,定義標量函數PI(Performance lndex)作為系統(tǒng)行為指標:
式中:Pl為線路l的有功潮流;Pl為線路l的傳輸容量;?l為支路l中的并聯(lián)線路數;?l為
線路l的權系數,反映該線路故障對系統(tǒng)的影響;L為網絡支路數。
由式(2-124)可以看出,當系統(tǒng)中沒有過負荷時,Pl均不大于1,PI指標較Pl小。當系統(tǒng)中有過負荷時,過負荷線路的Pl大于1,正指數將使PI指標變得很Pl大。因此這個指標可以概括地反映系統(tǒng)安全性。為了突出地反映過負荷的情況,甚至可以用高次指數項代替式中的二次項。
通過分析PI指標對各線路導納變化的靈敏度就可以反映出相應線路故障對系統(tǒng)安全性的影響。當線路k故障時,PI指標的變化量為
式中:?Bk即Bk,為線路k的導納。?PIk的值越大,PI值增加越多,說明線路k障引起系統(tǒng)過負荷的可能性越大。
?PIk可以用特勒根定理和伴隨網絡的方法進行計算,有興趣的讀者可參閱參考文獻[3]。以下我們將推導一個利用正常情況潮流計算結果的直接計算?PIk的公式。
? 設線路k開斷后其他各線路潮流變?yōu)镻l(l?1,2,L,L;l?k),這時系統(tǒng)行為指標相應地變?yōu)?/p>
顯然
為了便于推導,我們將系統(tǒng)行為指標轉化為相角的函數并用矩陣的形式表示。由式(2—113)可知
代入式(2-124)并定義
將式(2-114)代入式(2-129),后者可進一步表示為
式中:
為一對稱矩陣。由上式可知w具有與節(jié)點導納矩陣B相同的結構,相當于以元素2??l?lBl2Pl可取代Bl按形成導納矩陣的算法直接形成w。這樣,PI?可表示為
式中:??為線路k開斷后的節(jié)點電壓相角向量。
式(2-132)包含了線路k的有關項,但新的系統(tǒng)行為指標PI?中不應當包含這一項,因此,將式(2-130)和式(2-133)代入式(2-127)可得
由式(2-123)可知
將以上兩式代入式(2-134),有
考慮到矩陣X和w的對稱性,令
式中:
將式(2-136)代入式(2-135),后式可簡化為
對于開斷線路k而言,以上各式中的?k應為
將上式代入(2-138)后,可以得到
因為Pk?Bk?k,所以
式(2-138)-(2-140)只是表現形式不同,并無本質區(qū)別。這些公式中的各量均可由正常情況下的潮流計算數據求得。在已形成矩陣X,w,R,T的情況下,用這些公式計算各條線路開斷后的?PI值比較方便。
故障排序過程實際上是對所有線路按式(2-38)[或式(2-139)和式(2-140)]計算?PI值,并根據?PI從大到小排序。在斷線分析時,首先對?PI值最大的線路進行開斷后的潮流計算和檢驗,直到開斷某條線路后不再引起系統(tǒng)過負荷為止,其余?PI值較小的線路引起系統(tǒng)過負荷的可能性很小,因而無需做斷線分析。但是,采用這種系統(tǒng)行為指標可能存在一定的“退蔽”現象,例如當有個別線路過負荷而其他線路潮流較小時,其?PI值可能小于沒有過負荷但線路潮流都比較大時的?PI值、因而根據這個指標進行故障選擇排序可能會出現一定的誤差。因此我們建議在實際應用時,應在連續(xù)校驗幾條線路故障都未引起系統(tǒng)過負荷的情況下才終止斷線分析。2.7 靜態(tài)安全分析的靈敏度法 2.7.1 節(jié)點功率方程的線性化
第2.6節(jié)中介紹的直流潮流模型是一種簡單而快速的靜態(tài)安全分析方法,但這種方法只能進行有功潮流的計算,沒有考慮電壓和無功問題。采用潮流計算的P—Q分解法和補償法進行斷線分析可以同時給出有功潮流、無功潮流以及節(jié)點電壓的估計。但為了使計算結果達到一定的精度,要求必須進行反復迭代,否則其計算結果,特別是電壓及無功潮流的誤羌較大。我們將在本節(jié)介紹一種斷線分析的靈敏度法[28]。這種方法將線路開斷視為正常運行情況的一種擾動,從電力系統(tǒng)潮流方程的泰勒級數展開式出發(fā),導出了靈敏度短陣,以節(jié)點注入功率的增量模擬斷線的影響,較好地解決了電力系統(tǒng)斷線分析計算問題。這種方法簡單明了,省去了大量的中間計算過程,顯著提高了斷線分析的效率。應用本方法既可以提供全面的系統(tǒng)運行指標(包括有功、無功潮流,節(jié)點電壓、相角),又具有很高的計算精度和速度,因此是比較實用的靜態(tài)安全分析方法。
網絡斷線分析還可以結合故障選擇技術(見2.6.3節(jié)),以減少斷線分析的次數,進一步提高靜態(tài)安全的效率。
如前所述,電力系統(tǒng)節(jié)點功率方程為[見式(2-9)]
式中:PiS,QiS分別為節(jié)點i的有功和無功功率注入量;其余各量的意義與式(2-9)相同
對于正常情況下的系統(tǒng)狀態(tài),式(2-141)可概括為
式中;W0為正常情況下節(jié)點有功、無功注入功率向量;X0為正常情況下由節(jié)點電壓、相角組成的狀態(tài)向量;Y0為正常情況的網絡參數。
若系統(tǒng)注入功率發(fā)生擾動為?W,或網絡發(fā)生變化?Y,狀態(tài)變量也必然會出現變化,設其變化量為?X,并滿足方程
將式(2-143)按泰勒級數展開,則有,當擾動及狀態(tài)改變量不大時,可以忽略??X?項及高次項,由于f?X,Y?是Y的線性函數,故f???X,Y??0。因此式(2-144)可簡化為
將式(2-142)代入后,上式成為
由此可求出狀態(tài)變量與節(jié)點功率擾動和網絡結構變化的線性關系式為
當不考慮網絡結構變化時,?Y?0式(2-146)成為
式中:
J0為潮流計算這代結束時的雅可比矩陣;S0則稱為靈敏度矩陣。因為在潮流計算時J0已經進行了三角分解,所以S0很容易通過回代運算求出。
當不考慮節(jié)點注入功率的擾動時,?W?0式(2-146)變?yōu)?/p>
或經過變換可改寫成如下形式:
式中:I為單位矩陣。
最后,我們得到
與式(2-147)相比,?Wy可看作是由于斷線而引起的節(jié)點注入功率的擾動:
上式中右端各項均可由正常情況的潮流計算結果求出,因此斷線分析模擬完全是在正常接線及正常運行方式的基礎上進行的。為了校驗各種斷線時的系統(tǒng)運行情況,只要按式(2-151)求出相應的節(jié)點注入功率增量?Wy,然后就可利用正常情況下的靈敏度矩陣由式(2-150)直接求出狀態(tài)變量的修正量。修正后系統(tǒng)的狀態(tài)變量為
節(jié)點狀態(tài)向量X已知后,即可按下式求出任意支路ij的潮流功率:
式中:tij為支路變比標之值,bij0為支路ij容納的1/2 2.7.2 斷線處節(jié)點注人功率增量的計算
斷線分析的關鍵是按式(2-151)求出斷線處節(jié)點注入功率增量?Wy。靜態(tài)安全校驗主要是進行單線開斷分析,但也可能涉及到多回線開斷的情況,下面我們僅討論單線開斷的情況。對多回線開斷情況感興趣的讀者,可參看文獻[28]。為敘述方便,暫時假定系統(tǒng)中所有節(jié)點均為PQ節(jié)點,將式(2-151)簡寫為
式中:
?Wt與斷線支路在正常運行情況下的潮流有關。
設系統(tǒng)中總的支路數為b,斷線支路兩端節(jié)點為ij,則在b階向量?Y中只有與支路ij對應的元素為非零元素,即
對于一個節(jié)點數為N的網絡來說,式(2-156)中的fy??X0,Y0?為2N?b階矩陣,由式(2-141)可知,只有節(jié)點i和j的注入功率和支路ij的導納有直接關系,即只有求節(jié)點i,j 的注入功率時才用到Gij和Bij。所以該矩陣每列只有4個非零元素。
設支路ij的阻抗角為?ij,即
則有
利用以上關系和式(2-141),可以求得
將式(2-153)代入以上兩式可得
同理可得到
式(2-158)和式(2-159)中的4個元素即為fY??X0,Y0?中對應于支路ij的4個非零元素,其他元素為
式中:k??i,j?表示k不屬于節(jié)點集?i,j?。
綜合式(2-157)-(2-160),可得出式(2-156)的簡化形式為
???X0,Y0?是一個2N?2N?b階矩陣,相式(2-155)中的L0為2N?2N階方陣,fxy當于用雅可比矩陣對各支路導納元素求偏導,每條支路對應一個2N?2N階方陣,其結構如圖2-15所示。
???X0,Y0?的矩陣結構 圖2-15 fxy由于當k??i,j?且m??i,j?時有
所以對每條支路來說;2N?2N階矩陣中最多只有16個非零元素,它們由雅可比矩陣或由式(2-158)、式(2-159)求出:
同理可對Pj及Qj求出與式(2-163)類似的8個偏導數公式。
以上諸式中,Hij,Nij,Jij,Lij均為雅可比矩陣的元素:
由于?Y中只有一個非零元素?Yij??yij,所以式(2-155)變?yōu)?/p>
式(2-1 65)中,只有對應于節(jié)點i、j兩行兩列交叉處2i?1,2i,2j?1,2j有非零元素,其余 元素均為零。
由以上討論可知,在?Wl及L0中只有與斷線端點有關的元素才是非零元素,故式(2-154)可以寫成更緊湊的形式:
式中:
式中:Sij?1?,Sij?2?,Sij?3?,Sij?4?等為靈敏度矩陣中行和列都與斷線端點有關的元素,且有
式(2-166)中等式左邊的向量表示斷開線路ij時在節(jié)點i、j形成的節(jié)點注入功率增量,其他節(jié)點的增量為零。據此我們即可由式(2-150)求出各狀態(tài)變量的修正量。式(2-166)是斷線分析的主要公式,式中右端各項均可由牛頓法正常潮流計算結果獲得。在形成H矩陣時只需進行兩個4階方陣的運算[見式(2-167)],因而可以非常簡便地求出由于斷線引起的注入功率增量,快速進行靜態(tài)安全分析。2.7.3 快速斷線分析計算流程
快速斷線分析方法的計算流程如圖2-16所示。由圖可知,在進行斷線分析之前,首先要用牛頓法計算正常運行情況時的潮流,提供斷線分析所需的數據。這些數據包括雅可比矩陣J0、靈敏度矩陣S0、正常情況下各節(jié)點電壓相角和支路潮流等等。
斷線分析計算包括3部分(以單線開斷為例):
(1)按式(2-166)求出相應的節(jié)點注入功率增量,其中主要的計算是按式(2-167)求出H矩陣。
(2)按式(2-150)求各節(jié)點狀態(tài)變量的改變量,并按式(2-152)求出斷線后新的狀態(tài)變量。
(3)按式(2-153)求出斷線后各支路潮流功率。
圖2-16 快速斷線分析計算流程圖
應當指出,當斷線使系統(tǒng)分解成兩個不相連的子系統(tǒng)時,式(2-167)中H矩陣的逆矩陣不存在,因而不能直接進行斷線分析.以上討論我們曾假定所有節(jié)點均為PQ節(jié)點。實際上,當與斷線相連的節(jié)點為PV節(jié)點時,在節(jié)點功率方程式(2-141)中只有一個與有功功率有關的方程,故斷線分析只需計算該節(jié)點的有功功率增量,并認為無功功率增量為零,因此式(2-166)和式(2-167)中要除去與無功功率有關的行和列。當斷線與系統(tǒng)平衡節(jié)點相連時,由于式(2-141)中不包含與平衡節(jié)點有關的方程,因此不求平衡節(jié)點注入功率的增量。這實際說明,PV節(jié)點的無功注入功率和平衡節(jié)點的有功及無功注入功率本身就是不定的,所以求它們的增量沒有意義。
在靜態(tài)安全校驗中,如果只分析斷線對某些關鍵節(jié)點的狀態(tài)變量和關鍵支路潮流的影響,那么在圖2-16的后兩框中可只對這些節(jié)點和支路求斷線后的數值,從而可進——步減少計算量。
【例2-32】 試對IEEE—14節(jié)點系統(tǒng)進行斷線分析,并與牛頓—拉弗森法計算結果進行比較。表2-9給出了該系統(tǒng)的原始數據,其中有關數據己化為以100MVA為基準的標么值
【解】 根據斷線分析計算流程圖2-16,可確定計算步驟如下: 1)用牛頓法計算正常情況下的交流潮流。
當精度為0.0001時,對所給系統(tǒng)迭代3次可以收斂,其節(jié)點電壓、相角及支路潮流均在表2-10中給出。
2)以斷開線路5—6為例說明斷線分析計算過程。①計算由于線路5—6開斷而引起的節(jié)點注入功率增量 首先根據式(2-167)形成H矩陣。
由正常情況潮流計算結果和雅可比矩陣及靈敏度矩陣元素可知[雅可比矩陣和靈敏度矩陣己由潮流計算獲知,這里未列出,此外,雅可比矩陣元素也可由式(2-164)算出]
然后由式(2-166)計算斷線處的節(jié)點注入功率增量為
②根據式(2-150)求各狀態(tài)變量的改變量 對節(jié)點2的相角而言,其改變量??2為
同理可求出其他節(jié)點狀態(tài)變量的改變量。
③根據式(2-152)求出各節(jié)點斷線后新的狀態(tài)變量。
將正常情況的狀態(tài)變量與②中求出的狀態(tài)改變量對應相加即可獲得線路5—6開斷后各節(jié)點新的狀態(tài)變量。其值如表2-11中的第2、3列所示。表2-11中的第4、5列給出了該線開斷情況下直接采用牛頓法計算的結果,表中最后兩列為兩種方法計算結果之差的絕對值。
由表2-11可以得出電壓的平均誤差為0.002040,最大誤差為0.00517。相角的平均誤差為0.00654,最大誤差為0.01265。因此應用這種方法可以取得很好的精度,但計算時間卻只有牛頓—拉弗森法迭代一次所需時間的1/7。3)斷開其他線路時的計算結果。
為全面考察斷線分析方法的計算精度,在表2-12中列出了斷開其他線路時的計算結果。通過計算可知,總的電壓平均誤差為0.00478,相角平均誤差為0.001199。在計算中可以獲知線路5—6開斷時的誤差最大,這也正是前面選擇這條線路為例的緣由。有關支路的情況及誤差分析可參看參考文獻[28]。
第二篇:電力系統(tǒng)潮流計算
南 京 理 工 大 學
《電力系統(tǒng)穩(wěn)態(tài)分析》
課程報告
姓名
XX
學 號: 5*** 自動化學院 電氣工程
基于牛頓-拉夫遜法的潮流計算例題編程報學院(系): 專
業(yè): 題
目: 任課教師 碩士導師 告
楊偉 XX
2015年6月10號
基于牛頓-拉夫遜法的潮流計算例題編程報告
摘要:電力系統(tǒng)潮流計算的目的在于:確定電力系統(tǒng)的運行方式、檢查系統(tǒng)中各元件是否過壓或者過載、為電力系統(tǒng)繼電保護的整定提供依據、為電力系統(tǒng)的穩(wěn)定計算提供初值、為電力系統(tǒng)規(guī)劃和經濟運行提供分析的基礎。潮流計算的計算機算法包含高斯—賽德爾迭代法、牛頓-拉夫遜法和P—Q分解法等,其中牛拉法計算原理較簡單、計算過程也不復雜,而且由于人們引入泰勒級數和非線性代數方程等在算法里從而進一步提高了算法的收斂性和計算速度。同時基于MATLAB的計算機算法以雙精度類型進行數據的存儲和運算, 數據精確度高,能進行潮流計算中的各種矩陣運算,使得傳統(tǒng)潮流計算方法更加優(yōu)化。
一 研究內容
通過一道例題來認真分析牛頓-拉夫遜法的原理和方法(采用極坐標形式的牛拉法),同時掌握潮流計算計算機算法的相關知識,能看懂并初步使用MATLAB軟件進行編程,培養(yǎng)自己電力系統(tǒng)潮流計算機算法編程能力。
例題如下:用牛頓-拉夫遜法計算下圖所示系統(tǒng)的潮流分布,其中系統(tǒng)中5為平衡節(jié)點,節(jié)點5電壓保持U=1.05為定值,其他四個節(jié)點分別為PQ節(jié)點,給定的注入功率如圖所示。計算精度要求各節(jié)點電壓修正量不大于10-6。
二 牛頓-拉夫遜法潮流計算 1 基本原理
牛頓法是取近似解x(k)之后,在這個基礎上,找到比x(k)更接近的方程的根,一步步地迭代,找到盡可能接近方程根的近似根。牛頓迭代法其最大優(yōu)點是在方程f(x)=0的單根附近時誤差將呈平方減少,而且該法還可以用來求方程的重根、復根。電力系統(tǒng)潮流計算,一般來說,各個母線所供負荷的功率是已知的,各個節(jié)點的電壓是未知的(平衡節(jié)點外)可以根據網絡結構形成節(jié)點導納矩陣,然后由節(jié)點導納矩陣列寫功率方程,由于功率方程里功率是已知的,電壓的幅值和相角是未知的,這樣潮流計算的問題就轉化為求解非線性方程組的問題了。為了便于用迭代法解方程組,需要將上述功率方程改寫成功率平衡方程,并對功率平衡方程求偏導,得出對應的雅可比矩陣,給未知節(jié)點賦電壓初值,將初值帶入功率平衡方程,得到功率不平衡量,這樣由功率不平衡量、雅可比矩陣、節(jié)點電壓不平衡量(未知的)構成了誤差方程,解誤差方程,得到節(jié)點電壓不平衡量,節(jié)點電壓加上節(jié)點電壓不平衡量構成節(jié)點電壓新的初值,將新的初值帶入原來的功率平衡方程,并重新形成雅可比矩陣,然后計算新的電壓不平衡量,這樣不斷迭代,不斷修正,一般迭代三到五次就能收斂。2 基本步驟和設計流程圖
形成了雅克比矩陣并建立了修正方程式,運用牛頓-拉夫遜法計算潮流的核心問題已經解決,已有可能列出基本計算步驟并編制流程圖。由課本總結基本步驟如下:
1)形成節(jié)點導納矩陣Y;
2)設各節(jié)點電壓的初值,如果是直角坐標的話設電壓的實部e和虛部f;如果是極坐標的話則設電壓的幅值U和相角a;
3)將各個節(jié)點電壓的初值代入公式求修正方程中的不平衡量以及修正方程的系數矩陣的雅克比矩陣;
4)解修正方程式,求各節(jié)點電壓的變化量,即修正量; 5)計算各個節(jié)點電壓的新值,即修正后的值;
6)利用新值從第(3)步開始進入下一次迭代,直至達到精度退出循環(huán); 7)計算平衡節(jié)點的功率和線路功率,輸出最后計算結果; ① 公式推導
② 流程圖
三
matlab編程代碼
clear;
% 如圖所示1,2,3,4為PQ節(jié)點,5為平衡節(jié)點
y=0;
% 輸入原始數據,求節(jié)點導納矩陣
y(1,2)=1/(0.07+0.21j);
y(4,5)=0;y(1,3)=1/(0.06+0.18j);
y(1,4)=1/(0.05+0.10j);
y(1,5)=1/(0.04+0.12j);
y(2,3)=1/(0.05+0.10j);
y(2,5)=1/(0.08+0.24j);
y(3,4)=1/(0.06+0.18j);
for i=1:5
for j=i:5
y(j,i)=y(i,j);
end
end
Y=0;
% 求節(jié)點導納矩陣中互導納
for i=1:5
for j=1:5
if i~=j
Y(i,j)=-y(i,j);
end
end
end
% 求節(jié)點導納矩陣中自導納
for i=1:5
Y(i,i)=sum(y(i,:));
end
Y
% Y為導納矩陣
G=real(Y);
B=imag(Y);% 輸入原始節(jié)點的給定注入功率
S(1)=0.3+0.3j;
S(2)=-0.5-0.15j;
S(3)=-0.6-0.25j;
S(4)=-0.7-0.2j;
S(5)=0;
P=real(S);
Q=imag(S);
% 賦初值,U為節(jié)點電壓的幅值,a為節(jié)點電壓的相位角
U=ones(1,5);
U(5)=1.05;
a=zeros(1,5);
x1=ones(8,1);
x2=ones(8,1);
k=0;
while max(x2)>1e-6
for i=1:4
for j=1:4
H(i,j)=0;
N(i,j)=0;
M(i,j)=0;
L(i,j)=0;
oP(i)=0;
oQ(i)=0;
end
end
% 求有功、無功功率不平衡量
for i=1:4
for j=1:5
oP(i)=oP(i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)));
oQ(i)=oQ(i)-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)));
end
oP(i)=oP(i)+P(i);
oQ(i)=oQ(i)+Q(i);
end
x2=[oP,oQ]';
% x2為不平衡量列向量
% 求雅克比矩陣
% 當i~=j時,求H,N,M,L
for i=1:4
for j=1:4
if i~=j
H(i,j)=-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)));
N(i,j)=-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)));
L(i,j)=H(i,j);
M(i,j)=-N(i,j);
end
end
end
% 當i=j時,求H,N,M,L
for i=1:4
for j=1:5
if i~=j H(i,i)=H(i,i)+U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)));N(i,i)=N(i,i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)));
M(i,i)=M(i,i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)));
L(i,i)=L(i,i)-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)))
end
end
N(i,i)=N(i,i)-2*(U(i))^2*G(i,i);
L(i,i)=L(i,i)+2*(U(i))^2*B(i,i);
end
J=[H,N;M,L]
% J為雅克比矩陣
x1=-((inv(J))*x2);
% x1為所求△x的列向量
% 求節(jié)點電壓新值,準備下一次迭代
for i=1:4
oa(i)=x1(i);
oU(i)=x1(i+4)*U(i);
end
for i=1:4
a(i)=a(i)+oa(i);
U(i)=U(i)+oU(i);
end
k=k+1;
end
k,U,a
% 求節(jié)點注入功率
i=5;
for j=1:5
P(i)=U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)))+P(i);
Q(i)=U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)))+Q(i);
end
S(5)=P(5)+Q(5)*sqrt(-1);
S
% 求節(jié)點注入電流
I=Y*U'
四
運行結果
節(jié)點導納矩陣
經過五次迭代后的雅克比矩陣
迭代次數以及節(jié)點電壓的幅值和相角(弧度數)
節(jié)點注入功率和電流
五 結果分析
在這次學習和實際操作過程里:首先,對電力系統(tǒng)分析中潮流計算的部分特別是潮流計算的計算機算法中的牛頓-拉夫遜法進行深入的研讀,弄明白了其原理、計算過程、公式推導以及設計流程。牛頓-拉夫遜法是求解非線性方程的迭代過程,其計算公式為?F?J?X,式中J為所求函數的雅可比矩陣;?X為需要求的修正值;?F為不平衡的列向量。利用x(*)=x(k+1)+?X(k+1)進行多次迭代,通過迭代判據得到所需要的精度值即準確值x(*)。六 結論
通過這個任務,自己在matlab編程,潮流計算,word文檔的編輯功能等方面均有提高,但也暴漏出一些問題:理論知識儲備不足,對matlab的性能和特點還不能有一個全面的把握,對word軟件也不是很熟練,相信通過以后的學習能彌補這些不足,達到一個新的層次。
第三篇:電力系統(tǒng)潮流計算程序設計
電力系統(tǒng)潮流計算程序設計
姓名:韋應順
學號:2011021052 電力工程學院
牛頓—拉夫遜潮流計算方法具有能夠將非線性方程線性化的特點,而使用MATLAB語言是由于MATLAB語言的數學邏輯強,易編譯。
【】【】1.MATLAB程序12
Function tisco %這是一個電力系統(tǒng)潮流計算的程序 n=input(‘n請輸入節(jié)點數:n=’); m=input(‘請輸入支路數:m=’);ph=input(‘n請輸入平衡母線的節(jié)點號:ph=’); B1=input(‘n請輸入支路信號:B1=’);%它以矩陣形式存貯支路的情況,每行存貯一條支路 %第一列存貯支路的一個端點 %第二列存貯支路的另一個端點 %第三列存貯支路阻抗
%第四列存貯支路的對地導納
%第五列存貯變壓器的變比,注意支路為1 %第六列存貯支路的序號
B2=input(‘n請輸入節(jié)點信息:B2=’); %第一列為電源側的功率 %第二列為負荷側的功率 %第三列為該點的電壓值
%第四列為該點的類型:1為PQ,2為PV節(jié)點,3為平衡節(jié)點 A=input(‘n請輸入節(jié)點號及對地阻抗:A=’); ip=input(‘n請輸入修正值:ip=’); %ip為修正值);Y=zeros(n);
Y(p,q)=Y(p,q)-1./(B1(i3)*B1(i5);e=zeros(1,n);
Y(p,q)=Y(p,q);f=zeros(1,n);
no=2*ph=1; Y(q,q)=Y(q,q)+1./B1(i3)+B1(i4)/2;
End for i=1:n
G=real(Y);if A(i2)=0
B=imag(Y);p=A(i1);
Y(p p)=1./A(i2);for i=1:n End e(i)=real(B2(i3));End f(i)=imag(B2(i3));For i=1:m S(i)=B2(i1)-B2(i2);p=B1(i1);V(i)=B2(i3);p=B1(i2);end Y(p,p)=Y(p,p)+1./(B1(i3)*B1(i5)^2+B1(i4)./2P=real(S);Q=imag(S);[C,D,DF]=xxf(G,B,e,f,P,Q,n,B2,ph,V,no);J=jacci(Y,G,B,P,Q,e,f,V,C,D,B2,n,ph,no);[De,Di]=hxf(J,D,F,ph,n,no);t=0;while
max(abs(De))>ip&max(abs(Dfi)>ip
t=t+1;
e=e+De;
f=f+Df;
[C,D,DF]=xxf(G,B,e,f,P,Q,n,B2,ph,V,no);
J=jacci(Y,G,B,P,Q,e,f,V,C,D,B2,n,ph,no);
[De,Df]=hxf(J,Df,ph,n,no);end v=e+f*j;for i=1:n hh(i)=conj(Y(ph,i)*v(i));end S(ph)=sum(hh)*v(ph);B2(ph,1)=S(ph);V=abs(v);
jd=angle(v)*180/p;resulte1=[A(:,1),real(v),imag(v),V,jd,real(S’),imag(S’),real(B2(:1)),imag(B2(:1)),real(B2(:2)),imag(B2(:,2))];for i=1:m
a(i)=conj((v(B1(i1))/B1(i5)-v(B1(i2))/B1(i3));
b(i)=v(B1(i1))*a(i)-j*B1(i4)*v(B1(i))^2/2;
c(i)=-v(B1(i2))*a(i)-j*B1(i4)*v(B1(i2))^2/2;end result2=[B1(:,6),B1(:,1),B1(:,2),real(b’),imag(b’),real(c’),imag(c’), real(b’+c’),imag(b’+c’)];printcut(result1,S,b,c,result2);type resultm function [C,D,Df]=xxf(G,B,e,f,P,Q,n,B2,ph,V,no)%該子程序是用來求取Df for i=1:n
If
i=ph
C(i)=0;
D(i)=0;
For j=i:n
C(i)=C(i)+G(i,j)*e(j)-B(i,j)*f(j);D(i)=D(i)+G(i,j)*f(j)+B(i,j)*e(j);end
P1=C(i)*e(i)+D(i)*f(i);Q1=C(i)*f(i)-D(i)*e(i);V1=e(i)^2+f(i)^2;If
B2(i4)=2 p=2*i-1;
Df(p)=P(i)-P1;p=p+1;else p=2*i-1;
Df(p)=P(i)-P1;p=p+1;
Df(p)=Q(i)-Q1;end end end Df=Df’;If ph=n Df(no?=[];end
function [De,Df]=hxf(J,Df,ph,n,no)%該子函數是為求取De Df DX=JDf;DX1=DX;
x1=length(DX1);if ph=n DX(no)=0;DX(no+1)=0;
For i=(no+2):(x1+2)DX(i)=DX1(i-2);End Else
DX=[DX1,0,0];End k=0;
[x,y]=size(DX);For i=1:2:x K=k+1;
Df(k)=DX(i);De(k)=DX(i+1);End End case 2 Function for j=1:n J=jacci(Y,G,B,PQ,e,f,V,C,D,B2,n,ph,no)X1=G(i,j)*f(i)-B(i,j)*e(i);
X2=G(i,j)*e(i)+B(i,j)*f(i);%該子程序是用來求取jacci矩陣
for i=1:n X3=0;switch B2(i4)X4=0;case 3 P=2*i-1;continue q=2*j-1;case 1 J(p,q)=X1;for j=1:n m=p+1;if
J=&J=ph J(m,q)=X3;X1=G(i)*f(i)-B(i,j)*e(i);q=q+1;X2=G(i,j)*e(i)+B(i,j)*f(i);J(p,q)=X2;X3=-X2;J(m,q)=X4;X4=X1;X1=D(i)+G(i,j)*f(i)-B(i,j)*e(i);p=2*i-1;X2=C(i)+G(i,j)*e(i)+B(i,j)*f(i);q=2*j-1;X3=0;J(p,q)=X1;X4=0;m=p+1;P=2*i-1;J(p,q)=X2;q=2*j-1;J(m,q)=X4;J(p,q)=X1;Else if j=&j=jph m=p+1;X1=D(i)+G(i,j)*f(i)-B(i,j)*e(i);J(m,q)=X3;X2=C(i)+G(i,j)*e(i)+B(i,j)*f(i);q=q+1;X3= C(i)+G(i,j)*e(i)-B(i,j)*f(i);J(p,q)=X2;X4= C(i)+G(i,j)*f(i)-B(i,j)*e(i);J(m,q)=X4;P=2*i-1;end q=2*j-1;end J(p,q)=X1;end m=p+1;end J(m,q)=X3;if ph=n q=q+1;J(no:)=[];J(p,q)=X2;J(no:)=[];J(m,q)=X4;J(:,no)=[];End J(:,no)=[];End
2實例驗證 【例題】設有一系統(tǒng)網絡結線見圖1,各支路阻抗和各節(jié)點功率均已以標幺值標示于圖1中,其中節(jié)點2連接的是發(fā)電廠,設節(jié)點1電壓保持U1=1.06定值,試計算其中的潮流分布,請輸入節(jié)點數:n=5 請輸入支路數:m=7 請輸入平衡母線的節(jié)點號:ph=l 請輸入支路信息:
BI=[ l 2 0.02+0.06i O l 1;1 3 0.08+0.24i 0 1 2;2 3 0.06+0.18i 0 l 3: 2 4 0.06+0.18i O l 4: 2 5 0.04+0.12i 0 l 5: 3 4 0.01+0.03i 0 l 6: 4 5 0.08+0.24i O 1 7] 請輸入節(jié)點信息:
B2=[ 0 0 1.06 3;0.2+0.20i 0 1 1;一O.45一O.15i 0 l l;一0.4-0.05i 0 l 1;一0.6—0.1i 0 1 l] 請輸入節(jié)點號及對地阻抗: A=[l 0;2 0;3 0;4 0;5 O ] 請輸入修正值:ip=0.000 0l
參考文獻
[1]陳珩.電力系統(tǒng)穩(wěn)定分析[M].北京:中國電力出版社,2002:139—187.
[2]鄭阿奇.MATLAB實用教程[M].北京:電子工業(yè)出版社,2005:1-243.
[3] 束洪春,孫士云,等.云電送粵交商流混聯(lián)系統(tǒng)全過 程動態(tài)電壓研究[J】.中國電力,2008,4l(10):l-4. SHU Hong—ch吼,SUN Shi-yun,et a1.Research on fun prc'cess dyn鋤ic Voltage stabil時of hybrid AC/DC poWer tmnsmission System舶m Yu衄an proVince to G啪gdong province【J】.Electric Power,2008,4l(10): l-4.
[4] 朱新立,湯涌,等.大電網安全分析的全過程動態(tài)仿 真技術[J】.電網技術,2008,32(22):23—28. SONG Xin—Ii,TANG Yof唱,et a1. Full dyn鋤ic simulation for the stabilhy a眥lysis of large power system【J】.Power System融IlrIolo影,2008,32(22): 23.28.
[5]Roytelm鋤I,Shallidehpour S M.A comprehcnsivc long teml dynaIIlic simulation for powcr system recoVery【J】. IEEE Transactions 0n Power Systems,1994,9(3). [6] 石雩梅,汪志宏,等.發(fā)電機勵磁系統(tǒng)數學模型及參 數對電網動態(tài)穩(wěn)定性分析結果影響的研究[J】.繼電 器,2007,35(21):22-27.
SHI Xue.mei,WANG Zlli-hon舀et a1.Iksearch on the innuence of g鋤e翰to璐baScd ∞de詛iled excitation system models柚d parameterS t0 power鏟id dyn鋤ic stabil時【J】.Relay,2007,35(2 1):22-27.
[7] 方思立,朱方.快速勵磁系統(tǒng)對系統(tǒng)穩(wěn)定的影響[J】.中 國電機工程學報,1986,6(1):20.28.
FANG Si.1i,ZHU Fang.The effbct of f弧t.respon∞
excitation system on the stability of power netwofk【J】. Proceedings ofthe CSEE,1986,6(1):20-28.
[8] 劉取.電力系統(tǒng)穩(wěn)定性及發(fā)電機勵磁控制[M】.北京: 中國電力出版社,2007.
LIU Qu.Power system S詛bility鋤d generator excitation control【M】.BeUing:ChiIla Electric Powef Press,2007. [9] Dallachy J L,Anderson T.EXperience with rcplacing ro詛ting exciters wim static exciters【J】.1k InStitution of Electrical Engineers,1 996.
[10] 陳利芳,陳天祿.淺談自并勵勵磁系統(tǒng)在大容量機組 中的應用【J】.繼電器,2007,35(1):8l培4. CHEN Li-f抽島CHEN Tian—lIL Application of 辯l仁exci組tion mode in large capacity髫memtor unit【J】. ReIay'2007,35(1):81-84.
[11] 方思立,劉增煌,孟慶和.大型汽輪發(fā)電機自并勵勵 磁系統(tǒng)的應用條件【J].中國電力,1994,27(12):61.63. FANG Si.Ii,LIU Zeng-hu鋤g,MENG Qin爭hc.m application conditions of large turbine generator self-excitation system【J】.Electric Powef,1994,27(12): 61.63.
[12]梁小冰,黃方能.利用EMTDC進行長持續(xù)時間過程 的仿真研究【J】.電網技術,2002,26(9):55.57. LIANG Xiao-bing,HUANG Fan爭眥ng.How to cany out simulalion of long dul‘ation processes by use of EMTDC【J】.Power System 11echnology,2002,26(9): 55-57.
[13]王卉,陳楷,彭哲,等.數字仿真技術在電力系統(tǒng)中 的應用及常用的幾種數字仿真工具【J】.繼電器,2004,32(21):7l一75.
wANG Hui,CHEN Kai,PENG zhe,et a1.Application of digital simulation眥hniques棚d severaJ simulation tools in power system[J】.Relay,2004,32(21):71·75.
[14]IEEE Power Engmeering Socie哆.IEEE std 421.5.2005 IEEE玎ccOmmended practice for excitation system models for power system stabiI時studies【s】.
第四篇:電力系統(tǒng)潮流計算程序
電力系統(tǒng)潮流計算c語言程序,兩行,大家可以看看,仔細研究,然后在這個基礎上修改。謝謝
#include “stdafx.h” #include #include“Complex.h” #include“wanjing.h” #include“gauss.h” using namespace std; int _tmain(int argc, _TCHAR* argv[]){ int i; //i作為整個程序的循環(huán)變量 int N=Bus::ScanfBusNo();//輸入節(jié)點個數 int L=Line::ScanflineNo();//輸入支路個數 if((L&&N)==0){return 0;} //如果找不到兩個文件中的任意一個,退出 Line *line=new Line[L];//動態(tài)分配支路結構體 Line::ScanfLineData(line);//輸入支路參數 Line::PrintfLineData(line,L);//輸出支路參數 Bus *bus=new Bus[N];//動態(tài)分配結點結構體 for(int i=0;i bus[i].Sdelta.real=0; bus[i].Sdelta.image=0;} Bus::ScanfBusData(bus);//輸入節(jié)點參數 Bus::PrintfBusData(bus,N);//輸出結點參數 Complex **X;X=new Complex *[N];for(i=0;i Bus::JisuanNodeDnz(X,line,bus,L,N);//計算節(jié)點導納矩陣 Bus::PrintfNodeDnz(X,N);//輸出節(jié)點導納矩陣 int NN=(N-1)*2;double **JacAug;JacAug=new double *[NN];for(i=0;i double *x;x=new double[NN];int count=1; LOOP: Bus::JisuanNodeI(X,bus,N);//計算節(jié)點注入電流 Bus::JisuanNodeScal(X,bus,N);//計算節(jié)點功率 Bus::JisuanNodeScal(X,bus,N);//計算節(jié)點功率 Bus::JisuanNodeSdelta(bus,N);//計算節(jié)點功率差值 Bus::PrintfNodeScal(X,bus,N);//輸出節(jié)點功率差值 int icon=wehcon1(bus,N);//whether converbence看迭代是否結束 if(icon==1){ cout<<“icon=”< Bus::JisuanJacAug(JacAug,X,bus,N);//計算雅可比增廣矩陣 // Bus::PrintfJacAug(JacAug,N); gauss::gauss_slove(JacAug,x,NN);//解方程組求出電壓差值 Bus::ReviseNodeV(bus,x,N);//修正節(jié)點電壓 // Bus::PrintfNodeV(bus,N); count++; goto LOOP;} else { for(i=0;i { int statemp,endtemp; Complex aa,bb,cc,dd,B; B.real=0; B.image=-line[i].B; statemp=line[i].start; endtemp=line[i].end; aa=Complex::productComplex(Complex::getconj(bus[statemp-1].V), B); bb=Complex::subComplex (Complex::getconj(bus[statemp-1].V), Complex::getconj(bus[endtemp-1].V)); cc=Complex::productComplex(bb , Complex::getconj(line[i].Y)); dd=Complex::CaddC(aa,cc); line[i].stoe=Complex::productComplex(bus[statemp-1].V,dd); aa=Complex::productComplex(Complex::getconj(bus[endtemp-1].V), B); bb=Complex::subComplex (Complex::getconj(bus[endtemp-1].V), Complex::getconj(bus[statemp-1].V)); cc=Complex::productComplex(bb , Complex::getconj(line[i].Y)); dd=Complex::CaddC(aa,cc); line[i].etos=Complex::productComplex(bus[endtemp-1].V,dd); } cout<<“icon=”< Bus::JisuanNodeScal(X,bus,N);//計算節(jié)點功率 for(i=0;i { bus[i].Scal.real = bus[i].Scal.real + bus[i].Load.real;//發(fā)電機功率=注入功率+負荷功率 bus[i].Scal.image= bus[i].Scal.image+ bus[i].Load.image; bus[i].V=Complex::Rec2Polar(bus[i].V); } cout<<“====節(jié)點電壓===============發(fā)電機發(fā)出功率======”< for(i=0;i { cout<<“節(jié)點”<<(i+1)<<'t'; Complex::PrintfComplex(bus[i].V); coutt(bus[i].Scal.real); coutt(bus[i].Scal.image); cout< } cout<<“======線路傳輸功率==========”< for(i=0;i { int statemp,endtemp; statemp=line[i].start; endtemp=line[i].end; cout< Complex::PrintfComplex(Complex::ComDivRea(line[i].stoe,0.01)); Complex::PrintfComplex(Complex::ComDivRea(line[i].etos,0.01)); cout< } } return 0;} #include “stdafx.h” #include #include“Complex.h” #include“wanjing.h” #include“gauss.h” using namespace std; int _tmain(int argc, _TCHAR* argv[]){ int i; //i作為整個程序的循環(huán)變量 int N=Bus::ScanfBusNo();//輸入節(jié)點個數 int L=Line::ScanflineNo();//輸入支路個數 if((L&&N)==0){return 0;} //如果找不到兩個文件中的任意一個,退出 Line *line=new Line[L];//動態(tài)分配支路結構體 Line::ScanfLineData(line);//輸入支路參數 Line::PrintfLineData(line,L);//輸出支路參數 Bus *bus=new Bus[N];//動態(tài)分配結點結構體 for(int i=0;i bus[i].Sdelta.real=0; bus[i].Sdelta.image=0;} Bus::ScanfBusData(bus);//輸入節(jié)點參數 Bus::PrintfBusData(bus,N);//輸出結點參數 Complex **X;X=new Complex *[N];for(i=0;i Bus::JisuanNodeDnz(X,line,bus,L,N);//計算節(jié)點導納矩陣 Bus::PrintfNodeDnz(X,N);//輸出節(jié)點導納矩陣 int NN=(N-1)*2;double **JacAug;JacAug=new double *[NN];for(i=0;i double *x;x=new double[NN];int count=1; LOOP: Bus::JisuanNodeI(X,bus,N);//計算節(jié)點注入電流 Bus::JisuanNodeScal(X,bus,N);//計算節(jié)點功率 Bus::JisuanNodeScal(X,bus,N);//計算節(jié)點功率 Bus::JisuanNodeSdelta(bus,N);//計算節(jié)點功率差值 Bus::PrintfNodeScal(X,bus,N);//輸出節(jié)點功率差值 int icon=wehcon1(bus,N);//whether converbence看迭代是否結束 if(icon==1){ cout<<“icon=”< Bus::JisuanJacAug(JacAug,X,bus,N);//計算雅可比增廣矩陣 // Bus::PrintfJacAug(JacAug,N); gauss::gauss_slove(JacAug,x,NN);//解方程組求出電壓差值 Bus::ReviseNodeV(bus,x,N);//修正節(jié)點電壓 // Bus::PrintfNodeV(bus,N); count++; goto LOOP;} else { for(i=0;i { int statemp,endtemp; Complex aa,bb,cc,dd,B; B.real=0; B.image=-line[i].B; statemp=line[i].start; endtemp=line[i].end; aa=Complex::productComplex(Complex::getconj(bus[statemp-1].V), B); bb=Complex::subComplex (Complex::getconj(bus[statemp-1].V), Complex::getconj(bus[endtemp-1].V)); cc=Complex::productComplex(bb , Complex::getconj(line[i].Y)); dd=Complex::CaddC(aa,cc); line[i].stoe=Complex::productComplex(bus[statemp-1].V,dd); aa=Complex::productComplex(Complex::getconj(bus[endtemp-1].V), B); bb=Complex::subComplex (Complex::getconj(bus[endtemp-1].V), Complex::getconj(bus[statemp-1].V)); cc=Complex::productComplex(bb , Complex::getconj(line[i].Y)); dd=Complex::CaddC(aa,cc); line[i].etos=Complex::productComplex(bus[endtemp-1].V,dd); } cout<<“icon=”< Bus::JisuanNodeScal(X,bus,N);//計算節(jié)點功率 for(i=0;i { bus[i].Scal.real = bus[i].Scal.real + bus[i].Load.real;//發(fā)電機功率=注入功率+負荷功率 bus[i].Scal.image= bus[i].Scal.image+ bus[i].Load.image; bus[i].V=Complex::Rec2Polar(bus[i].V); } cout<<“====節(jié)點電壓===============發(fā)電機發(fā)出功率======”< for(i=0;i { cout<<“節(jié)點”<<(i+1)<<'t'; Complex::PrintfComplex(bus[i].V); coutt(bus[i].Scal.real); coutt(bus[i].Scal.image); cout< } cout<<“======線路傳輸功率==========”< for(i=0;i { int statemp,endtemp; statemp=line[i].start; endtemp=line[i].end; cout< Complex::PrintfComplex(Complex::ComDivRea(line[i].stoe,0.01)); Complex::PrintfComplex(Complex::ComDivRea(line[i].etos,0.01)); cout< } } return 0;} #include class Complex//定義復數類 { public: double real;double image;int RecPolar;//0表示直角坐標,1表示極坐標 static Complex CaddC(Complex c1,Complex c2);//求兩個復數和 static Complex subComplex(Complex c1,Complex c2);//求兩個復數差 static Complex productComplex(Complex c1,Complex c2);//求兩個復數積 static Complex divideComplex(Complex c1,Complex c2);//求兩個復數商 static Complex ComDivRea(Complex c1,double r2);//除數 static Complex getconj(Complex c1);//求一個復數共軛 static Complex getinverse(Complex c1);//取倒數 static double getComplexReal(Complex c1);//求一個復數實部 static double getCompleximage(Complex c1);//求一個復數虛部 static void PrintfComplex(Complex c1);//顯示一個復數 static void PrintfmultiComplex(Complex C,int N);//顯示多個復數 static void zeroComplex(Complex c1);//將復數復零 static Complex Rec2Polar(Complex c1);//取極坐標 Complex(){ RecPolar=0;} }; Complex Complex::Rec2Polar(Complex c1)//極坐標表示 { Complex Node;Node.real=sqrt(c1.real*c1.real+c1.image*c1.image);Node.image=atan2(c1.image,c1.real)*180/3.1415926;Node.RecPolar=1;return Node;} Complex Complex::CaddC(Complex c1,Complex c2)//復數加法 { Complex Node; Node.real=c1.real+c2.real; Node.image=c1.image+c2.image; return Node;} Complex Complex::subComplex(Complex c1,Complex c2)//復數減法 { Complex Node; Node.real=c1.real-c2.real; Node.image=c1.image-c2.image; return Node;} Complex Complex::productComplex(Complex c1,Complex c2)//復數乘法 { Complex Node; Node.real=c1.real*c2.real-c1.image*c2.image; Node.image=c1.image*c2.real+c2.image*c1.real; return Node;} Complex Complex::divideComplex(Complex c1,Complex c2)//復數除法 { Complex Node; Node.real=(c1.real*c2.real+c1.image*c2.image)/(pow(c2.real,2)+pow(c2.image,2));Node.image=(c1.image*c2.real-c1.real*c2.image)/(pow(c2.real,2)+pow(c2.image,2));return Node;} Complex Complex::ComDivRea(Complex c1,double r1)//復數除數 { Complex Node;Node.real=c1.real/(r1);Node.image=c1.image/(r1);return Node;} Complex Complex::getconj(Complex c1)//取共軛 { Complex Node; Node.real=c1.real;Node.image=-c1.image; return Node;} Complex Complex::getinverse(Complex c1)//取倒數 { Complex Node;Node.real=1;Node.image=0;Node=(Complex::divideComplex(Node,c1));return Node;} double Complex::getComplexReal(Complex c1)//取實部 { return c1.real;} double Complex::getCompleximage(Complex c1)//取虛部 { return c1.image;} void Complex::PrintfComplex(Complex c1)//按直角坐標輸出 { if(c1.RecPolar==0){ cout.precision(6); cout.width(8); cout.setf(ios::right); cout< ”; cout.precision(6); cout.width(8); cout.setf(ios::left); cout< ”;} else { cout< Complex::zeroComplex(Complex c1)//清零 { c1.real=0;c1.image=0;} class gauss { public: static void gauss_slove(double **a,double *x,int NN);static void gauss_output();}; void gauss::gauss_slove(double **a,double *x,int NN){ int n,i,j,k,*pivrow,**pivcol;double eps,pivot,sum,aik,al; n=NN;pivrow=new int[n];pivcol=new int *[n]; for(i=0;i pivot= fabs(a[k][k]); pivrow[k]=k;//行 pivcol[k][0]=k;pivcol[k][1]=k;//列n*2矩陣 for(i=k;i { for(j=k;j { if(pivot { pivot=fabs(a[i][j]); pivrow[k]=i;//行 pivcol[k][1]=j;//列 } } } if(pivot { cout<<“error”< getchar(); exit(0); } if(pivrow[k]!=k)//行變換 { for(j=k;j<(n+1);j++) { al=a[pivrow[k]][j]; a[pivrow[k]][j]=a[k][j]; a[k][j]=al; } } if(pivcol[k][1]!=k)//列變換 { for(i=0;i { al=a[i][pivcol[k][1]]; a[i][pivcol[k][1]]=a[i][k]; a[i][k]=al; } } if(k!=(n-1))//將矩陣化為上三角形 式 { for(i=(k+1);i { aik=a[i][k]; for(j=k;j<(n+1);j++) { a[i][j]-=aik*a[k][j]/a[k][k]; } } } } x[n-1]=a[n-1][n]/a[n-1][n-1];//解方程 for(i=(n-2);i>=0;i--){ sum=0; for(j=(i+1);j { sum +=a[i][j]*x[j];0.182709 0.016894-0.0310701 -0.0402051 0.156702 -0.0355909-0.0668055 -0.00703229-0.0886481 -0.0129814-0.0390805 -0.0135062-0.1023 -0.0460568 -0.0342827 -0.00382402-0.102896 -0.0184062 } x[i]=(a[i][n]-sum)/a[i][i];} for(k=(n-2);k>=0;k--){ al=x[pivcol[k][1]]; x[pivcol[k][1]]=x[pivcol[k][0]]; x[pivcol[k][0]]=al;} cout<<“節(jié)點電壓修正量”< cout< } ====節(jié)點功率計算值==== 0.935261 -0.159048 0.573909 0.0789973-0.00289889 -0.00796623-0.0791247 -0.0168362-0.436255 -0.0580392 0.0359139 -0.0106592-0.229118 -0.0885419-0.136179 -0.148207 0.0446243 0.0111298-0.0223764 -0.00695775-0.0237482 -0.198318 -5.24266e-015 -0.0354071 -0.0925078 -1.05629e-015 -0.0391348 0.014529 0.00158644 -0.0258771 -0.109514 icon=1進行第2次迭代 節(jié)點電壓修正量 =================-0.00164889-0.000540034-0.00261067-0.00532027-0.00235315-0.00600971-0.00189677-0.00643874-0.0023631-0.00650659-0.00170949-0.0074907-0.00164545-0.00485415-0.00493977-0.0119042-0.00331285-0.0175611-0.00207908 -0.00347744-0.0869347-9.48909e-015-0.0110778-0.0538236-7.53784e-016-0.0168097 7.049e-005-0.00146487-0.00458276 0.00251645 -0.00336375-0.00530645-0.0147816-0.000326161-0.00640487-0.00251701-0.0169829-0.00175286-0.0174333-0.0239063 -0.0119192-0.076014 -0.0160104-0.441997 -0.0750285 0.000250012 3.72542e-005-0.228052 -0.108844-0.100078 -0.105634 0.000410707 0.000378067-0.057497 -0.0195879 0.200039 0.0582563-0.00307326-0.0163809-0.00232773-0.0175806 8.74293e-005-0.0192018 0.000558996-0.0197776-0.000247851-0.0193784-0.00115346-0.0185848-0.00127275-0.0186244-0.00010108-0.0188966 0.000553585-0.0200901-3.76315e-005-0.0208303 0.00308341-0.0219386-0.00195916-0.0205356-0.00184757-0.0076401 0.00197593-0.0245534 0.00434657-0.027534 ====節(jié)點功率計算值==== 0.98623 -0.134163 0.583136 0.166278-0.111173 0.199792 -0.0621041 -0.0821379 -0.0350785 -0.0902383 -0.0320461 -0.0951562 -0.0220362 -0.175458 4.72557e-015 -0.0320661 -0.0871134 -7.03489e-017 -0.0350769 0.000273455 1.51804e-005 -0.0240417 -0.10604 icon=1進行第3次迭代 節(jié)點電壓修正量 =================-2.67079e-005-2.30128e-006-2.20543e-005-6.00686e-005-2.33043e-005-6.85601e-005-3.22294e-005-2.61107e-005-2.80198e-005-6.6167e-005-2.34528e-005 -0.0739846 0.0227868-0.0158709-0.0248173-0.0179447-0.0578368-0.00890719-0.0337091-0.00693706-0.111601 1.21429e-014-0.0159145-0.0667319 9.24355e-016-0.0228592 7.10354e-005-6.6188e-006-0.00889343-0.0184098 -5.66132e-005-4.4646e-005-1.74668e-005-4.50947e-005-0.000181763-3.81763e-006-0.000286581-6.68993e-005-1.28441e-005-5.17172e-005-0.000223284-4.54717e-005-2.47586e-005 4.32335e-007-0.000258494 1.82635e-005-0.000272051-6.95195e-006-0.000251969 1.11318e-005-0.000279418 5.74737e-005-0.000307368 6.86998e-005-0.000320274 5.38112e-005-0.00031447 3.59531e-005-0.00030494 3.37607e-005-0.000307449 5.26532e-005-0.000310721 6.92761e-005-0.000350373 5.60942e-005-0.00040977 0.000123641-0.000440259 1.36149e-005-0.000426973-1.70227e-005-9.37794e-005 0.000113675-0.000544011 0.000176034-0.000636202 ====節(jié)點功率計算值==== 0.986878 -0.133979 0.583 0.167193-0.024 -0.012-0.076 -0.016-0.442 -0.0748606 1.43501e-008 1.07366e-008-0.228 -0.109 -0.0999999 -0.104049 4.51318e-008 8.98835e-008-0.0579999 -0.0199999 0.2 0.0591018-0.112 -0.0749997 0.2 0.0242519-0.062 -0.016-0.082 -0.025-0.035 -0.018 -0.0900001 -0.058-0.032 -0.00899997-0.095 -0.0339999-0.022 -0.00699998-0.175 -0.112 -6.07156e-015 -1.19217e-014-0.032 -0.016-0.087 -0.0669999 7.03078e-017 -9.23979e-016-0.035 -0.0229999 1.09492e-007 4.45699e-008 1.54958e-009 -2.01531e-010-0.024 -0.00899994-0.106 -0.0189996 icon=0,迭代結束。 ====節(jié)點電壓===============發(fā)電機發(fā)出功率====== 節(jié)點1 1.05 0。 98.6878-13.3979 節(jié)點2 1.045 -1.846。 29.4193 節(jié)點3 1.02384-3.83352。 0 節(jié) 點25 1.01216-9.68486。 0 0 0 節(jié)點4 1.01637-4.55698。 0 節(jié) 點26 0.994393 -10.1089。 0 0 0 節(jié)點5 1.01 -6.48617。 節(jié) 點27 1.02012-9.42025。 0 11.5139 0 節(jié)點6 1.01332-5.38073。 0 節(jié) 點28 1.00992-5.86244。 0 0 0 節(jié)點7 1.00489-6.38368。 0 節(jié) 點29 1.00022-10.6579。 0 0 節(jié)點8 19.5951 節(jié)點9 0 節(jié)點10 0 節(jié)點11 5.91018 節(jié)點12 0 節(jié)點13 2.42519 節(jié)點14 0 節(jié)點15 0 節(jié)點16 0 節(jié)點17 0 節(jié)點18 0 節(jié)點19 0 節(jié)點20 0 節(jié)點21 0 節(jié)點22 0 節(jié)點23 0 節(jié)點24 0 1.01 -5.62974。 1.03905-6.78143。 1.03595-8.69362。 -4.5962。 1.04711-7.80323。 1.05 -6.34392。 1.03242-8.7401。 1.02788-8.86784。 1.03458-8.45044。 1.03051-8.83678。 1.01845-9.5141。 1.01604-9.70326。 1.02022-9.50938。 1.0237-9.17478。 1.02432-9.17024。 1.01802-9.36719。 1.01339-9.68362。 0 20 節(jié) 點30 0.988705 -11.5464。 0 0 0 ====== 線路傳輸功率========== 2to1 -57.7373 5.41674i 58.3454 0 -15.1827i 3to1 -39.659 -7.75964i 40.3424 1.78481i 4to2 -30.87 -9.74186i 31.4153 0 3.58352i 4to3 -37.0772 -7.78596i 37.259 6.55964i 5to2 -44.3717 -9.78456i 45.2968 0 4.84242i 6to2 -38.4766 -8.22625i 39.3252 0 2.87667i 6to4 -34.946 1.92384i 35.0885 0 -3.28202i 7to5 -0.16304 -6.41767i 0.171702 0 2.2985i 7to6 -22.637 -4.48233i 22.7745 0 1.44238i 8to6 -11.8939 -5.48098i 11.913 0 3.70557i 6to9 12.3737 -12.3826i -12.3737 0 13.0033i 6to10 10.9107 -3.80907i -10.9107 0 4.53223i 11to9 5.91018i 0 -5.08963i 10to9 -32.652 -2.3712i 32.652 0 3.46974i 4to12 23.5411 -11.5375i -23.5411 0 13.2407i 13to12 2.42519i 1.05 -1.90978i 1.66484i 14to12 -7.9019 -2.06732i 7.97894 30to29 -3.6702 -0.542564i 3.70398 2.22749i 0.606393i 15to12 -18.254 -5.74885i 18.4835 28to8 -1.89152 -3.79982i 1.89395 6.20089i-4.9239i 16to12-7.53872 -2.90237i 7.59633 28to6 -14.7868 -2.82565i 14.8234 3.02352i 0.294601i 15to14-1.69544 -0.461488i 1.70189 請按任意鍵繼續(xù)...0.467323i 17to16-4.03014 1.10238i 18to15-6.08074 1.46028i 19to18-2.87549 0.478389i 20to19 6.6418-2.93222i 20to10 -8.8418 3.85077i 17to10-4.96987 4.76656i 21to10-16.1562 9.42843i 22to10-7.87782 4.21401i 22to21 1.34443-2.01837i 23to15-5.59369 2.25006i 24to22-6.48186 2.08163i 24to23-2.38596 0.579814i 25to24-0.167617 0.281364i 26to25 -3.5 2.3674i 27to25 3.39433-2.08638i 28to27 16.1446 3.13006i 29to27-6.10398 1.67047i 30to27-6.92979-1.07089i-1.37839i-0.467767i 2.96679i-3.66679i-4.72911i-9.18162i-4.10132i 2.01969i-2.17981i-2.00141i-0.56401i -0.28102i-2.29999i 2.11848i-2.10093i-1.50639i -1.3574i 4.03872 6.12096 2.88074 -6.62452 8.9242 4.98423 16.2709 7.93248 -1.34378 5.62846 6.53339 2.39369 0.167814 3.54513 -3.37751 -16.1446 6.19083 7.09313 高等電力系統(tǒng)分析 IEEE30節(jié)點潮流程序 班級:電研114班 姓名:王大偉 學號:2201100151 電力系統(tǒng)潮流計算發(fā)展史 對潮流計算的要求可以歸納為下面幾點: (1)算法的可靠性或收斂性(2)計算速度和內存占用量(3)計算的方便性和靈活性 電力系統(tǒng)潮流計算屬于穩(wěn)態(tài)分析范疇,不涉及系統(tǒng)元件的動態(tài)特性和過渡過程。因此其數學模型不包含微分方程,是一組高階非線性方程。非線性代數方程組的解法離不開迭代,因此,潮流計算方法首先要求它是能可靠的收斂,并給出正確答案。隨著電力系統(tǒng)規(guī)模的不斷擴大,潮流問題的方程式階數越來越高,目前已達到幾千階甚至上萬階,對這樣規(guī)模的方程式并不是采用任何數學方法都能保證給出正確答案的。這種情況促使電力系統(tǒng)的研究人員不斷尋求新的更可靠的計算方法。 在用數字計算機求解電力系統(tǒng)潮流問題的開始階段,人們普遍采用以節(jié)點導納矩陣為基礎的高斯-賽德爾迭代法(一下簡稱導納法)。這個方法的原理比較簡單,要求的數字計算機的內存量也比較小,適應當時的電子數字計算機制作水平和電力系統(tǒng)理論水平,于是電力系統(tǒng)計算人員轉向以阻抗矩陣為主的逐次代入法(以下簡稱阻抗法)。 20世紀60年代初,數字計算機已經發(fā)展到第二代,計算機的內存和計算速度發(fā)生了很大的飛躍,從而為阻抗法的采用創(chuàng)造了條件。阻抗矩陣是滿矩陣,阻抗法要求計算機儲存表征系統(tǒng)接線和參數的阻抗矩陣。這就需要較大的內存量。而且阻抗法每迭代一次都要求順次取阻抗矩陣中的每一個元素進行計算,因此,每次迭代的計算量很大。 阻抗法改善了電力系統(tǒng)潮流計算問題的收斂性,解決了導納法無法解決的一些系統(tǒng)的潮流計算,在當時獲得了廣泛的應用,曾為我國電力系統(tǒng)設計、運行和研究作出了很大的貢獻。但是,阻抗法的主要缺點就是占用計算機的內存很大,每次迭代的計算量很大。當系統(tǒng)不斷擴大時,這些缺點就更加突出。為了克服阻抗法在內存和速度方面的缺點,后來發(fā)展了以阻抗矩陣為基礎的分塊阻抗法。這個方法把一個大系統(tǒng)分割為幾個小的地區(qū)系統(tǒng),在計算機內只需存儲各個地區(qū)系統(tǒng)的阻抗矩陣及它們之間的聯(lián)絡線的阻抗,這樣不僅大幅度的節(jié)省了內存容量,同時也提高了節(jié)省速度。 克服阻抗法缺點的另一途徑是采用牛頓-拉夫遜法(以下簡稱牛頓法)。牛頓法是數學中求解非線性方程式的典型方法,有較好的收斂性。解決電力系統(tǒng)潮流計算問題是以導納矩陣為基礎的,因此,只要在迭代過程中盡可能保持方程式系數矩陣的稀疏性,就可以大大提高牛頓潮流程序的計算效率。自從20世紀60年代中期采用了最佳順序消去法以后,牛頓法在收斂性、內存要求、計算速度方面都超過了阻抗法,成為直到目前仍被廣泛采用的方法。 在牛頓法的基礎上,根據電力系統(tǒng)的特點,抓住主要矛盾,對純數學的牛頓法進行了改造,得到了P-Q分解法。P-Q分解法在計算速度方面有顯著的提高,迅速得到了推廣。 牛頓法的特點是將非線性方程線性化。20世紀70年代后期,有人提出采用更精確的模型,即將泰勒級數的高階項也包括進來,希望以此提高算法的性能,這便產生了保留非線性的潮流算法。另外,為了解決病態(tài)潮流計算,出現了將潮流計算表示為一個無約束非線性規(guī)劃問題的模型,即非線性規(guī)劃潮流算法。 近20多年來,潮流算法的研究仍然非常活躍,但是大多數研究都是圍繞改進牛頓法和P-Q分解法進行的。此外,隨著人工智能理論的發(fā)展,遺傳算法、人工神經網絡、模糊算法也逐漸被引入潮流計算。但是,到目前為止這些新的模型和算法還不能取代牛頓法和P-Q分解法的地位。由于電力系統(tǒng)規(guī)模的不斷擴大,對計算速度的要求不斷提高,計算機的并行計算技術也將在潮流計算中得到廣泛的應用,成為重要的研究領域。第五篇:電力系統(tǒng)潮流計算發(fā)展史