版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 一、電力系統(tǒng)潮流計(jì)算概述1</p><p> 二、節(jié)點(diǎn)導(dǎo)納矩陣1</p><p> 1.節(jié)點(diǎn)導(dǎo)納矩陣及其各元素的物理意義1</p><p> 2.節(jié)點(diǎn)導(dǎo)納矩陣的特點(diǎn)1</p><p><b>
2、3.算法推導(dǎo)2</b></p><p> 3.1勵(lì)磁支路2</p><p> 3.2線路支路2</p><p> 3.3變壓器支路3</p><p> 4.程序?qū)崿F(xiàn)方法和技巧3</p><p> 4.1變量說(shuō)明3</p><p> 4.2支路參數(shù)
3、設(shè)置技巧4</p><p><b> 5.程序框圖5</b></p><p> 6.矩陣輸出格式控制6</p><p> 三、潮流計(jì)算的原理及實(shí)現(xiàn)方法6</p><p> 1.牛頓—拉夫遜法(直角、極坐標(biāo))6</p><p> 1.1牛頓—拉夫遜法簡(jiǎn)介6</p
4、><p> 1.2算法推導(dǎo)8</p><p><b> a.直角坐標(biāo)8</b></p><p><b> b.極坐標(biāo)11</b></p><p> 1.3程序?qū)崿F(xiàn)方法和技巧12</p><p> 1.4直角坐標(biāo)和極坐標(biāo)的比較13</p>
5、<p> 1.5程序框圖14</p><p> 2.高斯—塞得爾法15</p><p> 2.1高斯—塞得爾法簡(jiǎn)介15</p><p> 2.2算法推導(dǎo)15</p><p> 2.3程序框圖17</p><p> 3.P-Q分解法18</p><p&g
6、t; 3.1P-Q分解法簡(jiǎn)介18</p><p> 3.2算法推導(dǎo)18</p><p> 3.3程序框圖21</p><p> 4.節(jié)點(diǎn)功率、功率分布及網(wǎng)損計(jì)算22</p><p> 4.1節(jié)點(diǎn)功率22</p><p> 4.2支路功率22</p><p>
7、 a.變壓器支路23</p><p> b.線路支路24</p><p> c.勵(lì)磁支路24</p><p> 4.3網(wǎng)絡(luò)損耗24</p><p> 四、主程序結(jié)構(gòu)圖25</p><p> 五、程序清單26</p><p> 六、程序計(jì)算實(shí)例47</
8、p><p> 1.實(shí)例內(nèi)容47</p><p> 2.程序初值47</p><p> 3.運(yùn)行結(jié)果48</p><p> 3.1節(jié)點(diǎn)導(dǎo)納矩陣48</p><p> 3.2牛頓極坐標(biāo)48</p><p> 3.3牛頓直角坐標(biāo)49</p><p&g
9、t; 3.4高斯塞得爾50</p><p> 3.5P-Q分解法51</p><p> 4.運(yùn)行界面51</p><p> 七、畢業(yè)設(shè)計(jì)的成果、經(jīng)驗(yàn)和不足55</p><p> 1.程序設(shè)計(jì)的優(yōu)點(diǎn)55</p><p> 2.程序中的不足55</p><p>
10、 3.畢業(yè)設(shè)計(jì)成果56</p><p> 4.畢業(yè)設(shè)計(jì)體會(huì)56</p><p><b> 參考書(shū)目57</b></p><p><b> 電力系統(tǒng)潮流計(jì)算</b></p><p> 電力系統(tǒng)潮流計(jì)算概述</p><p> 潮流計(jì)算是電力系統(tǒng)中最基本的計(jì)算,
11、它在給定電網(wǎng)結(jié)構(gòu)、參數(shù)及決定電力系統(tǒng)運(yùn)行狀態(tài)的邊界條件的情況下,通過(guò)計(jì)算來(lái)確定電力系統(tǒng)的運(yùn)行狀態(tài)。如各母線上的電壓(幅值和相角)、網(wǎng)絡(luò)中的功率分布及功率損耗等。潮流計(jì)算是電力系統(tǒng)運(yùn)行、規(guī)劃、以及安全性、可靠性分析和優(yōu)化的基礎(chǔ),也是各種電磁瞬時(shí)過(guò)程和機(jī)電瞬時(shí)過(guò)程分析的基礎(chǔ)和出發(fā)點(diǎn)。潮流計(jì)算一般分為在線計(jì)算和離線計(jì)算。在這里主要是進(jìn)行離線潮流計(jì)算的問(wèn)題。</p><p> 潮流計(jì)算的方法通常有阻抗法和導(dǎo)納法。隨著計(jì)
12、算機(jī)的應(yīng)用發(fā)展,采用稀疏矩陣技術(shù)和節(jié)點(diǎn)優(yōu)化編號(hào)技術(shù)使牛頓-拉夫遜法得到了非常廣泛的應(yīng)用,成為潮流計(jì)算中廣泛采用的優(yōu)秀算法。導(dǎo)納法也就因其稀疏性的特點(diǎn)逐步取代了阻抗法。70 年代中期,Stott 在大量實(shí)踐的基礎(chǔ)上提出了快速分解潮流計(jì)算方法(P_Q分解法),使潮流計(jì)算在內(nèi)存容量和計(jì)算速度上得到了大大的提高,可用于在線計(jì)算,是目前最常用的一種方法。</p><p><b> 節(jié)點(diǎn)導(dǎo)納矩陣</b&g
13、t;</p><p> 節(jié)點(diǎn)導(dǎo)納矩陣及其各元素的物理意義</p><p> 由歐姆定律可知:,也即,其中系數(shù)矩陣Y即稱為節(jié)點(diǎn)導(dǎo)納矩陣。對(duì)于n個(gè)節(jié)點(diǎn)的電力網(wǎng)絡(luò)來(lái)說(shuō),方程組的系數(shù)矩陣:</p><p><b> ?。?- 1)</b></p><p> 顯然可知其中各元素的物理意義:</p><p&
14、gt; 導(dǎo)納矩陣中第i列對(duì)角元素Yii ,即節(jié)點(diǎn)i的自導(dǎo)納,在數(shù)值上等于節(jié)點(diǎn)i加單位電壓,其它節(jié)點(diǎn)都接地時(shí),節(jié)點(diǎn)i向電力網(wǎng)絡(luò)注入的電流。</p><p> 導(dǎo)納矩陣中第i列非對(duì)角元素Yij ,即節(jié)點(diǎn)i與節(jié)點(diǎn)j間的互導(dǎo)納,在數(shù)值上等于節(jié)點(diǎn)i加單位電壓,其它節(jié)點(diǎn)都接地時(shí),節(jié)點(diǎn)j向電力網(wǎng)絡(luò)注入的電流。</p><p><b> 節(jié)點(diǎn)導(dǎo)納矩陣的特點(diǎn)</b></p&
15、gt;<p> 導(dǎo)納矩陣是稀疏矩陣,矩陣的階數(shù)等于電力網(wǎng)的節(jié)點(diǎn)數(shù)。</p><p> 各行非對(duì)角元素的個(gè)數(shù)等于對(duì)應(yīng)節(jié)點(diǎn)所連的不接地支路數(shù)。</p><p> 導(dǎo)納矩陣是一個(gè)對(duì)稱的方陣,非對(duì)角元素Yij=Yji 。</p><p> 對(duì)角線元素即自導(dǎo)納等于i 節(jié)點(diǎn)所有支路導(dǎo)納值的總和,即 Yii=∑yii 。</p><p&g
16、t; 非對(duì)角線元素即互導(dǎo)納等于i、j 節(jié)點(diǎn)間支路導(dǎo)納的負(fù)值,即 Yij=-yij 。</p><p><b> 算法推導(dǎo)</b></p><p> 電力網(wǎng)中常見(jiàn)的有三種類型的支路:勵(lì)磁支路、線路支路、變壓器支路。在節(jié)點(diǎn)導(dǎo)納矩陣程序中,采用逐條支路追加法。而對(duì)于各種支路處理方法略有不同,下面就分別作以推導(dǎo)。</p><p><b>
17、; 勵(lì)磁支路</b></p><p> 如圖1所示,勵(lì)磁支路的另一節(jié)點(diǎn)是接地點(diǎn)0,因此當(dāng)追加勵(lì)磁支路時(shí),只需要修正節(jié)點(diǎn)i的自導(dǎo)納。</p><p><b> ?。?- 2)</b></p><p><b> 線路支路</b></p><p> 如圖2所示,當(dāng)追加線路支路時(shí),節(jié)點(diǎn)i
18、、節(jié)點(diǎn)j的自導(dǎo)納以及它們之間的互導(dǎo)納都需要修改。</p><p><b> ?。?- 3)</b></p><p><b> ?。?- 4)</b></p><p><b> ?。?- 5)</b></p><p> 圖 1 勵(lì)磁支路
19、 圖 2 線路支路</p><p><b> 變壓器支路</b></p><p> 變壓器一共有四種模型,在這里采用如圖3所示的模型,而其它的三種情況均可以化作此模型(詳見(jiàn)后一節(jié))。對(duì)于圖3的模型,有:</p><p><b> ?。?- 6)</b></p><p><b>
20、; ?。?- 7)</b></p><p><b> ?。?- 8)</b></p><p><b> 化簡(jiǎn)后:</b></p><p><b> (2- 9)</b></p><p><b> ?。?- 10)</b></p>
21、<p> 圖 3 變壓器支路</p><p><b> 程序?qū)崿F(xiàn)方法和技巧</b></p><p><b> 變量說(shuō)明</b></p><p> YG、YB分別存放節(jié)點(diǎn)導(dǎo)納矩陣的實(shí)部和虛部;</p><p><b> m 存放循環(huán)數(shù);</b>&
22、lt;/p><p> ?。╥、j、r、x、k)存放支路參數(shù)</p><p> i 、j分別存放支路的節(jié)點(diǎn)號(hào),如果是接地點(diǎn)則存為0;</p><p> r 、x 分別存放支路參數(shù)的實(shí)部和虛部;</p><p> k 存放變比(變壓器支路)或接地容納(線路支路);</p><p><b> 支路參數(shù)設(shè)置技巧&
23、lt;/b></p><p> ?。?)如何區(qū)別支路類型</p><p> 當(dāng)其為勵(lì)磁支路時(shí),令接地端的節(jié)點(diǎn)號(hào)為0,這樣判斷就是勵(lì)磁支路;</p><p> 當(dāng)其為變壓器支路時(shí),令靠近變壓器的一端為負(fù)值,這樣判斷則是變壓器支路;</p><p> 因而判斷就是線路支路。</p><p> ?。?)如何解決變
24、壓器四種模型的統(tǒng)一</p><p> 對(duì)于圖4所示的模型,令,當(dāng)程序判斷時(shí), 節(jié)點(diǎn)號(hào)互換;</p><p> 對(duì)于圖5所示的模型,令,當(dāng)程序判斷時(shí),作 ;</p><p> 對(duì)于圖6所示的模型,同時(shí)做上述兩步;</p><p> 這樣一來(lái)就可以把模型統(tǒng)一到圖3所對(duì)應(yīng)的計(jì)算公式。</p><p> 圖 4
25、 圖 5 圖 6</p><p> ?。?)如何讓線路支路與變壓器支路用同一套計(jì)算公式</p><p> 把線路支路的對(duì)地容納存入變量中,當(dāng)程序處理線路支路時(shí),首先用以下兩個(gè)公式(2-11)和(2-12)把容納加入節(jié)點(diǎn)的自導(dǎo)納中,然后置,這樣即把線路支路看作變比的變壓器支路。</p>&l
26、t;p><b> ?。?- 11)</b></p><p><b> (2- 12)</b></p><p><b> 程序框圖</b></p><p><b> 矩陣輸出格式控制</b></p><p> 由于節(jié)點(diǎn)導(dǎo)納矩陣的輸出中,有實(shí)部和
27、虛部之分、又有正負(fù)號(hào),要把字符j輸出到虛部的正負(fù)號(hào)之前,而且要把整個(gè)矩陣用一屏輸完,就需要進(jìn)行一定的處理。對(duì)于實(shí)部照直輸出即可,對(duì)于虛部則先判斷其正負(fù),輸出或,然后對(duì)其取絕對(duì)值輸出。如果階數(shù)比較大,還可以用printf(“%.NUMf”,變量名);來(lái)控制輸出數(shù)據(jù)的小數(shù)點(diǎn)位數(shù)。其中NUM是希望輸出的小數(shù)點(diǎn)位數(shù)。</p><p> 潮流計(jì)算的原理及實(shí)現(xiàn)方法</p><p> 如上所述,節(jié)點(diǎn)
28、電流與電壓之間的關(guān)系可以通過(guò)節(jié)點(diǎn)方程式來(lái)表述:</p><p><b> (3- 1)</b></p><p> 上式寫(xiě)成展開(kāi)的形式:</p><p><b> ?。?- 2)</b></p><p> 為了求解潮流問(wèn)題,必須利用節(jié)點(diǎn)功率與電流之間的關(guān)系:</p><p&g
29、t;<b> (3- 3)</b></p><p> 其中分別為節(jié)點(diǎn)向網(wǎng)絡(luò)注入的有功功率及無(wú)功功率,當(dāng)點(diǎn)為負(fù)荷節(jié)點(diǎn)時(shí),本身應(yīng)帶負(fù)號(hào)。將式(3- 3)代入式(3- 2),可得到:</p><p><b> (3- 4)</b></p><p> 式(3-4)中有n個(gè)非線性復(fù)數(shù)方程式,是潮流計(jì)算問(wèn)題的基本方程式,對(duì)這個(gè)
30、方程式的不同應(yīng)用和處理,就形成了不同的潮流程序??傮w上可分為:牛頓—拉夫遜法、高斯—塞得爾法、P—Q分解法。以下對(duì)各種跌代方法作一一說(shuō)明。</p><p> 牛頓—拉夫遜法(直角、極坐標(biāo))</p><p><b> 牛頓—拉夫遜法簡(jiǎn)介</b></p><p> 牛頓—拉夫遜法是把非線性方程式的求解過(guò)程變成反復(fù)對(duì)相應(yīng)的線性方程式的求解過(guò)程,
31、從幾何意義上看實(shí)質(zhì)是切線法、是一種逐步線性化的方法,這是牛頓—拉夫遜法的核心所在。</p><p> 設(shè)有變量的非線性聯(lián)立方程組: </p><p><b> ?。?- 5)</b></p><p> 其近似為,設(shè)近似解與精確解分別相差,則如下的方程式成立:</p><p><b&g
32、t; (3- 6)</b></p><p> 上式中任何一式都可按泰勒級(jí)數(shù)展開(kāi),并省略二次以上高次項(xiàng),可得:</p><p><b> (3- 7)</b></p><p> 或簡(jiǎn)寫(xiě)為: </p><p><b> ?。?- 8)</b><
33、;/p><p> 式中,稱為函數(shù)的雅可比矩陣;</p><p> 將代入式(3-7),可得中,然后求解,從而經(jīng)過(guò)第一次迭代后的新值。再將求得的代入,如此循環(huán),直到。(這里為預(yù)先給定的滿足一定精度要求的正整數(shù))</p><p><b> 算法推導(dǎo)</b></p><p><b> 直角坐標(biāo)</b>
34、</p><p> 基本方程式: </p><p><b> ?。?- 9)</b></p><p> 將式(3-2)代入式(3-9),并展開(kāi)功率方程式得:</p><p><b> ?。?- 10)</b></p><p>
35、 節(jié)點(diǎn)電壓以直角坐標(biāo)表示時(shí),有、,將實(shí)部和虛部分列,可得:</p><p><b> ?。?- 11)</b></p><p> 對(duì)于PQ節(jié)點(diǎn),Pis ,Qis是給定的,因而有:</p><p><b> ?。?- 12)</b></p><p> 對(duì)于PV節(jié)點(diǎn),Pis ,Vis是給定的,因而有
36、:</p><p><b> ?。?- 13)</b></p><p><b> 其中令:</b></p><p><b> ?。?- 14)</b></p><p> 則式(3-12)和(3-13)可簡(jiǎn)化為:</p><p><b>
37、(3- 15)</b></p><p><b> ?。?- 16)</b></p><p><b> 建立修正方程式:</b></p><p><b> (3- 17)</b></p><p> 其中用式(3-15)求出,用式(3-16)求出;</p&g
38、t;<p> 而雅可比矩陣各元素按下式求得:</p><p><b> 時(shí), </b></p><p><b> ?。?- 18) </b></p><p><b> ?。?- 19)</b></p><p><b> ?。?- 20)</b
39、></p><p><b> ?。?- 21)</b></p><p><b> 時(shí),</b></p><p><b> ?。?- 22)</b></p><p><b> ?。?- 23)</b></p><p> (3
40、- 24) </p><p><b> (3- 25)</b></p><p> ?。?- 26) </p><p> ?。?- 27) </p><p> 為了求解修正方程式,必須對(duì)雅可比矩陣作一定的處理,可以用高斯消去法、三角分解法、因子表法,而在本程序中采用直接求逆
41、的方法。求逆后有:</p><p><b> (3- 28)</b></p><p> 通過(guò)式(3-28)求出,再修正各節(jié)點(diǎn)電壓,即:</p><p><b> ?。?- 29)</b></p><p> 這樣節(jié)點(diǎn)電壓就離精確值更近了一步。再運(yùn)用新的電壓值進(jìn)行下一次迭代,直到滿足精度要求。&l
42、t;/p><p><b> 極坐標(biāo)</b></p><p> 如上所述,當(dāng)節(jié)點(diǎn)電壓以極坐標(biāo)表示時(shí),有</p><p><b> (3- 30)</b></p><p> 把式(3-30)代入式(3-10),再將實(shí)部、虛部分開(kāi),得功率方程式:</p><p><b&g
43、t; (3- 31)</b></p><p> 式中 (3- 32)</p><p> 在計(jì)算中通常將式(3-31)寫(xiě)成:</p><p><b> ?。?- 33)</b></p><p> 在建立修正方程式時(shí),由于PV節(jié)點(diǎn)的電壓幅值是給定的,不在作為變量,同時(shí),該點(diǎn)不能預(yù)先給定無(wú)功功率Qis ,這
44、樣,方程式中也就失去了約束作用。因此,在迭代過(guò)程中應(yīng)取消與PV節(jié)點(diǎn)有關(guān)的無(wú)功功率方程式。</p><p> 設(shè)節(jié)點(diǎn)總數(shù)為n,PV節(jié)點(diǎn)數(shù)為r,則:</p><p><b> ?。?- 34)</b></p><p> 為了程序上處理方便,把修正方程式排列成下列形式:</p><p><b> (3- 35)
45、</b></p><p> 式中,雅可比矩陣個(gè)元素用下式計(jì)算:</p><p><b> 時(shí)</b></p><p><b> ?。?- 36)</b></p><p><b> ?。?- 37)</b></p><p><b>
46、; ?。?- 38)</b></p><p><b> ?。?- 39)</b></p><p><b> 時(shí),</b></p><p><b> (3- 40)</b></p><p><b> ?。?- 41)</b></p>
47、;<p><b> ?。?- 42)</b></p><p><b> ?。?- 43)</b></p><p> 同上,用直接求逆法處理雅可比矩陣,解出、,再修正各節(jié)點(diǎn)電壓:</p><p><b> (3- 44)</b></p><p> 如此循環(huán)直到
48、滿足精度要求為止。</p><p><b> 程序?qū)崿F(xiàn)方法和技巧</b></p><p> 直角坐標(biāo)法:式(3-15)、(3-16)及式(3-22)~(3-25)中都含有節(jié)點(diǎn)注入電流的分量、,因而求解、及雅可比矩陣中對(duì)角線元素、、、的主要運(yùn)算集中在求、上。節(jié)點(diǎn)注入電流的分量、只與行導(dǎo)納矩陣及相應(yīng)節(jié)點(diǎn)的電壓分量有關(guān)(見(jiàn)式3-14),因此即可先運(yùn)算得到、,從而減小運(yùn)算
49、量、提高計(jì)算精度。</p><p> 另外,在直角坐標(biāo)和極坐標(biāo)中,當(dāng)時(shí),都有、,如此就可以只作兩個(gè)子函數(shù)H(i,j)、N(i,j)來(lái)進(jìn)行調(diào)用,這樣也減小了程序的運(yùn)算量,同時(shí)增加程序的可讀性。</p><p> 注:為了程序計(jì)算的方便,把PV節(jié)點(diǎn)的電壓存放于無(wú)功功率Q的數(shù)組中。</p><p> 直角坐標(biāo)和極坐標(biāo)的比較</p><p>&
50、lt;b> 表格 1</b></p><p><b> 程序框圖</b></p><p><b> 高斯—塞得爾法</b></p><p><b> 高斯—塞得爾法簡(jiǎn)介</b></p><p> 與牛頓法不同的是高斯—塞得爾法把迭代計(jì)算所求得的最新值
51、立即用于計(jì)算下一個(gè)變量的新值而不是等到這一輪迭代結(jié)束之后。這就是高斯—塞得爾法思想的核心所在。通常高斯—塞得爾法迭代的次數(shù)很多,為了加速收斂,可以引入加速因子。</p><p><b> 算法推導(dǎo)</b></p><p> 如果取,則有功方程式:</p><p><b> ?。?- 45)</b></p>
52、<p><b> 把實(shí)部和虛部分開(kāi):</b></p><p><b> ?。?- 46)</b></p><p> 令: (3- 47)</p><p> 因此式(3-46)可簡(jiǎn)化為:</p><p><b> ?。?- 48)</b>&l
53、t;/p><p> 從式(3-4)可以解出:</p><p><b> ?。?- 49)</b></p><p> 將其展開(kāi),并寫(xiě)成高—塞法的迭代格式:</p><p><b> ?。?- 50)</b></p><p><b> 最后引入加速因子:</b&
54、gt;</p><p><b> ?。?- 51)</b></p><p> 這就是高斯迭代的基本公式。</p><p> A.對(duì)于PQ節(jié)點(diǎn),節(jié)點(diǎn)功率是給定的,因此可以直接應(yīng)用式(3-50)和式(3-51)進(jìn)行迭代計(jì)算。</p><p> B.對(duì)于PV節(jié)點(diǎn),電壓幅值是給定的,而無(wú)功功率又需要在迭代過(guò)程中逐次地求出,
55、因此PV節(jié)點(diǎn)必須作以下幾項(xiàng)計(jì)算。</p><p><b> 修正節(jié)點(diǎn)電壓</b></p><p><b> (3- 52)</b></p><p> 用式(3-48)計(jì)算節(jié)點(diǎn)無(wú)功功率</p><p><b> 無(wú)功功率越限檢查</b></p><p&
56、gt; 檢驗(yàn) (3- 53)</p><p> 作完上述三項(xiàng)計(jì)算后,就可以用式(3-50)和式(3-51)計(jì)算節(jié)點(diǎn)電壓的新值。</p><p> C.平衡節(jié)點(diǎn)不必進(jìn)行迭代</p><p> 另外,高斯—塞得爾法的收斂判據(jù)是:</p><p><b> ?。?- 54)</b></p><p
57、><b> 程序框圖</b></p><p><b> P-Q分解法</b></p><p><b> P-Q分解法簡(jiǎn)介</b></p><p> P-Q分解法(改進(jìn)牛頓法)是從改進(jìn)和簡(jiǎn)化牛頓法潮流程序的基礎(chǔ)上提出來(lái)的。它的基本思想是:把節(jié)點(diǎn)功率表示為電壓向量的極坐標(biāo)方程式,抓住主要矛盾
58、,以有功功率誤差作為修正電壓向量角度的依據(jù),以無(wú)功功率誤差作為修正電壓幅值的依據(jù),把有功功率和無(wú)功功率迭代分開(kāi)來(lái)進(jìn)行。即:</p><p><b> (3- 55)</b></p><p> 這樣由于把2n階的方程組變成了二個(gè)n階的方程組,因而計(jì)算量和內(nèi)存方面都有所改善。P-Q分解法的另一個(gè)簡(jiǎn)化是將式(3-55)中的系數(shù)矩陣化作在迭代過(guò)程中不變的對(duì)稱矩陣。迭代過(guò)程
59、中不需要反復(fù)求解系數(shù)矩陣。</p><p> 以上兩點(diǎn)就是P-Q分解法與其它方法的最明顯的區(qū)別。</p><p><b> 算法推導(dǎo)</b></p><p><b> 如上所述,有:</b></p><p><b> ?。?- 56)</b></p><
60、;p> 由于線路兩端電壓的相角差不太大(一般10°~20°),因此近似認(rèn)為、,且近似認(rèn)為。作此近似后,可以將式(3-56)系數(shù)矩陣中的元素表示式從式(3-36)、(3-39)、(3-40)、(3-43)簡(jiǎn)化為:</p><p><b> ?。?- 57)</b></p><p> 將式(3-57)寫(xiě)成矩陣的形式有:</p>
61、<p><b> ?。?- 58)</b></p><p> 再將式(3-58)代入式(3-56)中,并利用矩陣相乘,得:</p><p><b> ?。?- 59)</b></p><p><b> (3- 60)</b></p><p> 進(jìn)一步化簡(jiǎn)后可以得
62、到:</p><p><b> (3- 61)</b></p><p><b> ?。?- 62)</b></p><p> 式(3-61)和式(3-62)也可以簡(jiǎn)寫(xiě)成:</p><p><b> (3- 63)</b></p><p><b
63、> (3- 64)</b></p><p> ***注意:這里的與的階數(shù)是不同的。</p><p> 以上兩式就是P-Q分解法的修正方程式,其中系數(shù)矩陣與只不過(guò)是系統(tǒng)導(dǎo)納矩陣的虛部,因而是對(duì)稱矩陣,而且在迭代過(guò)程中維持不變。它們與功率誤差方程式(3-65):</p><p><b> ?。?- 65)</b></p
64、><p> 構(gòu)成了P-Q分解法迭代過(guò)程中基本計(jì)算公式。</p><p> 至于其迭代過(guò)程,與牛頓極坐標(biāo)法相類似,這里就不再熬述了。</p><p><b> 程序框圖</b></p><p> 節(jié)點(diǎn)功率、功率分布及網(wǎng)損計(jì)算</p><p><b> 節(jié)點(diǎn)功率</b>&l
65、t;/p><p> 要計(jì)算的節(jié)點(diǎn)功率有PV節(jié)點(diǎn)的無(wú)功功率,平衡節(jié)點(diǎn)的有功和無(wú)功功率。</p><p> 電壓取直角坐標(biāo)時(shí),用下式計(jì)算:</p><p><b> ?。?- 66)</b></p><p> 電壓取極坐標(biāo)時(shí),則有:</p><p><b> ?。?- 67)</b&
66、gt;</p><p><b> 支路功率</b></p><p> 如圖7所示,支路功率基本方程式:</p><p><b> (3- 68)</b></p><p><b> 也即:</b></p><p><b> ?。?- 69
67、)</b></p><p> 圖 7 圖 8</p><p> 下面對(duì)各種支路分別討論:</p><p><b> 變壓器支路</b></p><p> 在這里仍然采用節(jié)點(diǎn)導(dǎo)納程序中的變壓器模型,如圖8所示,即有:</p&
68、gt;<p><b> ?。?- 70)</b></p><p> 又由于式(2-6),所以上式可以寫(xiě)成:</p><p><b> ?。?- 71)</b></p><p> 當(dāng)電壓取直角坐標(biāo)時(shí),并把實(shí)部、虛部分開(kāi),有:</p><p><b> (3- 72)<
69、;/b></p><p><b> ?。?- 73)</b></p><p> 當(dāng)電壓取極坐標(biāo)時(shí),并把實(shí)部、虛部分開(kāi),有:</p><p><b> ?。?- 74)</b></p><p><b> ?。?- 75)</b></p><p>
70、 而又考慮到式(3-36)和(3-37),、,則式(3-74)和式(3-75)可進(jìn)一步化簡(jiǎn)為:</p><p><b> (3- 76) </b></p><p><b> (3- 77)</b></p><p> 如此一來(lái),就只需多次調(diào)用H1( int i, int j )和N1(int i , int j)兩個(gè)子
71、函數(shù),這樣就使程序得到了很大的簡(jiǎn)化,也增強(qiáng)了程序的可讀性。</p><p><b> 線路支路</b></p><p> 對(duì)于線路支路,可以把接地導(dǎo)納(數(shù)值存放于變量k中)先行加入線路功率之中,即:</p><p><b> ?。?- 78)</b></p><p> 然后把置變量k=1。這樣
72、就可以把剩下的線路支路看作是變比為1的變壓器支路來(lái)處理。</p><p><b> 勵(lì)磁支路</b></p><p> 勵(lì)磁支路的功率用下式計(jì)算:</p><p><b> ?。?- 79)</b></p><p><b> 網(wǎng)絡(luò)損耗</b></p><
73、;p> 網(wǎng)絡(luò)損耗用下式計(jì)算:</p><p><b> ?。?- 80)</b></p><p><b> 主程序結(jié)構(gòu)圖</b></p><p><b> 程序清單</b></p><p> # include"stdio.h"</p&g
74、t;<p> # include"math.h"</p><p> # define N 5 /* 定義節(jié)點(diǎn)數(shù) */</p><p> # define PI 3.14159</p><p> static float YG[N+1][N+1], YB[N+1][N+1];</p>
75、<p> static float J[2*N+1][2*N+1],JPQ[2*N+1];</p><p> static float P[N+1],Q[N+1],DP[N+1],DQ[N+1];</p><p> static float V[N+1],Sita[N+1],DV[N+1],DSita[N+1];</p><p>
76、 static float e[N+1],f[N+1],De[N+1],Df[N+1];</p><p> static float P_x[N+1][N+1],Q_x[N+1][N+1];</p><p> /* 計(jì)算P、Q的子函數(shù)*/</p><p> float P1(int i)</p><p><b>
77、 {int j;</b></p><p> float P1=0,tempa=0;</p><p> for(j=1;j<=N;j++)</p><p><b> {</b></p><p> if(i==j) continue;</p><p> tempa+=(V
78、[j]*(YG[i][j]*cos(Sita[i]-Sita[j])+YB[i][j]*sin(Sita[i]-Sita[j])));</p><p><b> }</b></p><p> P1=tempa*V[i];</p><p> return(P1);</p><p><b> }</b
79、></p><p> float Q1(int i)</p><p><b> {int j;</b></p><p> float Q1=0,tempb=0;</p><p> for(j=1;j<=N;j++)</p><p><b> {</b>
80、</p><p> if(i==j) continue;</p><p> tempb+=(V[j]*(YG[i][j]*sin(Sita[i]-Sita[j])-YB[i][j]*cos(Sita[i]-Sita[j])));</p><p><b> }</b></p><p> Q1=V[i]*tempb;
81、</p><p> return(Q1);</p><p><b> }</b></p><p> /* 計(jì)算雅可比矩陣元素的子函數(shù) */</p><p> float H1(int i,int j)</p><p><b> {</b></p>&
82、lt;p><b> float H1;</b></p><p> H1=-V[i]*V[j]*(YG[i][j]*sin(Sita[i]-Sita[j])-YB[i][j]*cos(Sita[i]-Sita[j]));</p><p> return(H1);</p><p><b> }</b></p
83、><p> float N1(int i,int j)</p><p> {float N1;</p><p> N1=-V[i]*V[j]*(YG[i][j]*cos(Sita[i]-Sita[j])+YB[i][j]*sin(Sita[i]-Sita[j]));</p><p> return(N1);</p><
84、;p><b> }</b></p><p> float H2(int i,int j)</p><p><b> {</b></p><p> float H2=0;</p><p> H2=(YB[i][j]*e[i]-YG[i][j]*f[i]);</p><
85、;p> return(H2);</p><p><b> }</b></p><p> float N2(int i,int j)</p><p><b> {</b></p><p> float N2=0;</p><p> N2=(-1)*(YG[i]
86、[j]*e[i]+YB[i][j]*f[i]);</p><p> return(N2);</p><p><b> }</b></p><p><b> /* 主程序 */</b></p><p><b> main()</b></p><p>
87、;<b> {</b></p><p> int i,j,m,a,t=0,tt=0;</p><p> int flag1,flag[N+1];</p><p> int Kp,Kq;</p><p> float r,x,k,b;</p><p> float
88、p1,q1,sita1,v1;</p><p> float e1,f1,DV_2;</p><p> float A[N+1],B[N+1];</p><p> float E[N+1],F[N+1];</p><p> float DP_V[N+1],DQ_V[N+1],DSita_V[N+1];</p>&
89、lt;p> float temp1,temp2,temp3,temp;</p><p> float tempa1=0.0,tempa2=0.0;</p><p> float Q_max=5.0 , Q_min=-5.0 ; /* 定義無(wú)功越限檢查的上、下限 */</p><p> float B1[N+1][N+1],B2[N+1]
90、[N+1];</p><p> float max1=0.0,max2=0.0;</p><p> float dP,dQ; /* 定義網(wǎng)損變量 */</p><p> float speed; /* 定義加速因子 */</p><p> FILE *fp1,*fp2;</p><
91、;p> int R; /* 定義PV節(jié)點(diǎn)數(shù)變量 */</p><p> int select; /* 定義程序的選擇變量 */</p><p> /* 打開(kāi)支路參數(shù)原始數(shù)據(jù)文件 */</p><p> if((fp1=fopen("lqp","r"))==NULL)&
92、lt;/p><p><b> {</b></p><p> printf("The file can not open");</p><p><b> exit(0);</b></p><p><b> }</b></p><p>
93、; /* 讀取數(shù)據(jù)并計(jì)算節(jié)點(diǎn)導(dǎo)納矩陣 */</p><p> while(!feof(fp1))</p><p><b> {</b></p><p> fscanf(fp1,"%d%d%f%f%f\n",&i,&j,&r,&x,&k);</p><p>
94、; if(i*j==0)</p><p><b> {</b></p><p><b> if(i==0)</b></p><p><b> {</b></p><p> a=i;i=j;j=a;</p><p><b> }<
95、;/b></p><p> YG[i][i]+=r;</p><p> YB[i][i]-=x;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
96、<p><b> if(i*j>0)</b></p><p><b> {</b></p><p> YB[i][i]+=k;</p><p> YB[j][j]+=k;</p><p><b> k=1;</b></p><p&
97、gt;<b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> if(j<0)</b></p><p><b> {</b></p>
98、<p> a=i;i=j;j=a;</p><p><b> }</b></p><p><b> if(k<0)</b></p><p><b> k=-1/k;</b></p><p><b> }</b></p>
99、;<p> i=fabs(i);</p><p> b=r*r+x*x;</p><p> YG[i][j]=YG[j][i]=(-1)*r/(k*b);</p><p> YB[i][j]=YB[j][i]=x/(k*b); </p><p> YG[j][j]+=r/b;</p><p>
100、 YB[j][j]-=x/b;</p><p> YG[i][i]+=r/(k*k*b);</p><p> YB[i][i]-=x/(k*k*b);</p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp1
101、);</p><p> start: clrscr(); </p><p> /* 計(jì)算方法選擇 */</p><p> printf(" 電力系統(tǒng)潮流計(jì)算\n\n\n\n\n");</p><p> printf("請(qǐng)選擇要使用的計(jì)算方
102、法:\n\n");</p><p> printf("1---牛頓--拉夫遜法(極坐標(biāo))\n\n");</p><p> printf("2---牛頓--拉夫遜法(直角坐標(biāo))\n\n");</p><p> printf("3---高斯--塞得爾法\n\n");</p><
103、;p> printf("4---P--Q分解法\n\n\n");</p><p> printf("please enter the number :");</p><p> scanf("%d",&select);</p><p> switch(select)</p>
104、<p><b> {</b></p><p> case 1: printf(" 牛頓--拉夫遜法(極坐標(biāo))運(yùn)行結(jié)果:\n"); goto label1;</p><p> case 2: printf(" 牛頓--拉夫遜法(直角坐標(biāo))運(yùn)行結(jié)果:\n"); goto la
105、bel2;</p><p> case 3: {</p><p> printf("請(qǐng)輸入加速因子的值(1~1.5)(best for 1.44):"); </p><p> scanf("%f",&speed);</p><p> printf(" 高斯--塞
106、得爾法 運(yùn)行結(jié)果:\n"); goto label3;</p><p><b> }</b></p><p> case 4: printf(" P--Q分解法 運(yùn)行結(jié)果:\n"); goto label4;</p><p><b>
107、 } </b></p><p> goto end_all;</p><p> /* 牛頓極坐標(biāo)程序入口 */</p><p><b> label1: </b></p><p> /* 打開(kāi)節(jié)點(diǎn)原始數(shù)據(jù)文件并讀取 */</p><p> if((fp2=fopen(&q
108、uot;lqp2","r"))==NULL)</p><p><b> {</b></p><p> printf("The file cann't be opened");</p><p><b> exit(0);</b></p><
109、p><b> }</b></p><p><b> R=0;</b></p><p> while(!feof(fp2))</p><p><b> {</b></p><p> fscanf(fp2,"%d%d%f%f%f%f",&
110、i,&flag1,&p1,&q1,&v1,&sita1);</p><p> flag[i]=flag1;</p><p> if(flag[i]==-1) R++;</p><p><b> P[i]=p1;</b></p><p><b> Q[i]=q1;
111、</b></p><p><b> V[i]=v1;</b></p><p> Sita[i]=sita1;</p><p><b> }</b></p><p> fclose(fp2);</p><p> /* 進(jìn)行主循環(huán) */</p>
112、<p><b> t=0;</b></p><p><b> do</b></p><p><b> {</b></p><p> /* 求功率誤差DP、DQ */</p><p> for(i=1;i<=N-1;i++)</p>&l
113、t;p><b> {</b></p><p> DP[i]=P[i]-V[i]*V[i]*YG[i][i]-P1(i);</p><p> JPQ[2*i-1]=DP[i];</p><p><b> }</b></p><p> for(i=1;i<=N-R-1;i++)&l
114、t;/p><p><b> {</b></p><p> DQ[i]=Q[i]+V[i]*V[i]*YB[i][i]-Q1(i);</p><p> JPQ[2*i]=DQ[i];</p><p><b> }</b></p><p> /* 計(jì)算雅可比矩陣各元素 */
115、</p><p> for(i=1;i<=N-R-1;i++) </p><p> for(j=1;j<=N-1;j++)</p><p><b> {</b></p><p><b> if(i!=j)</b></p><p><b>
116、; {</b></p><p> if(j<=N-R-1)</p><p><b> {</b></p><p> J[2*i-1][2*j-1]=H1(i,j);</p><p> J[2*i-1][2*j]=N1(i,j);</p><p> J[2*i][2*j
117、-1]=(-1)*N1(i,j);</p><p> J[2*i][2*j]=H1(i,j);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> J[2*i
118、-1][2*j-1]=H1(i,j);</p><p> J[2*i][2*j-1]=(-1)*N1(i,j);</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p&g
119、t;<b> {</b></p><p> J[2*i-1][2*j-1]=Q1(i);</p><p> J[2*i-1][2*j]=-2*V[i]*V[i]*YG[i][i]-P1(i);</p><p> J[2*i][2*j-1]=-P1(i);</p><p> J[2*i][2*j]=2*V[i]*
120、V[i]*YB[i][i]-Q1(i);</p><p><b> }</b></p><p><b> }</b></p><p> for(i=N-R;i<=N-1;i++) </p><p> for(j=1;j<=N-1;j++)</p><
121、p><b> {</b></p><p><b> if(i!=j)</b></p><p><b> {</b></p><p> if(j<=N-R-1)</p><p><b> {</b></p><p&g
122、t; J[2*i-1][2*j-1]=H1(i,j);</p><p> J[2*i-1][2*j]=N1(i,j);</p><p><b> }</b></p><p> else </p><p> J[2*i-1][2*j-1]=H1(i,j); </p><p&g
123、t;<b> }</b></p><p><b> else</b></p><p> J[2*i-1][2*j-1]=Q1(i); </p><p><b> }</b></p><p> /* 求逆雅可比矩陣 */ </p>
124、<p> for(m=1;m<=2*(N-1)-R;m++)</p><p><b> {</b></p><p> for(i=1;i<=2*(N-1)-R;i++)</p><p> for(j=1;j<=2*(N-1)-R;j++)</p><p> if(i!=m &
125、& j!=m)</p><p> J[i][j]=J[i][j]-J[i][m]*J[m][j]/J[m][m];</p><p> for(j=1;j<=2*(N-1)-R;j++)</p><p><b> if(j!=m)</b></p><p> J[m][j]=(-1)*J[m][j]/J
126、[m][m];</p><p> for(i=1;i<=2*(N-1)-R;i++)</p><p><b> if(i!=m)</b></p><p> J[i][m]=(-1)*J[i][m]/J[m][m];</p><p> J[m][m]=(-1)/J[m][m];</p><
127、p><b> }</b></p><p> for(i=1;i<=2*(N-1)-R;i++)</p><p> for(j=1;j<=2*(N-1)-R;j++)</p><p> J[i][j]=(-1)*J[i][j];</p><p> /* 解修正方程式 */ </p>
128、<p> for(i=1;i<=2*(N-1)-R;i++)</p><p><b> {</b></p><p> int tt=(i+1)/2;</p><p> float temp=0;</p><p> for(j=1;j<=2*(N-1)-R;j++)</p>
129、<p><b> {</b></p><p> temp+=J[i][j]*JPQ[j];</p><p> if(i%2==1)</p><p> DSita[tt]=-temp;</p><p><b> else</b></p><p> DV[
130、tt]=-temp*V[tt];</p><p><b> }</b></p><p><b> }</b></p><p><b> max1=0;</b></p><p> for(i=1;i<N;i++)</p><p><b&
131、gt; {</b></p><p> if(max1<fabs(DSita[i])) max1=fabs(DSita[i]);</p><p> if(max1<fabs(DV[i])) max1=fabs(DV[i]);</p><p><b> }</b></p><
132、;p> /* 修正各節(jié)點(diǎn)電壓 */ </p><p> for(i=1;i<N;i++)</p><p><b> {</b></p><p> Sita[i]=Sita[i]+DSita[i];</p><p> V[i]=V[i]+DV[i];</p><p><b
133、> }</b></p><p><b> t++;</b></p><p> }while(max1>1e-5);</p><p> goto calculate;</p><p> /* 牛頓直角坐標(biāo)程序入口*/</p><p><b> label
134、2: </b></p><p> if((fp2=fopen("lqp2","r"))==NULL)</p><p><b> {</b></p><p> printf("Can not open ");</p><p><b>
135、 exit(0);</b></p><p><b> }</b></p><p> while(!feof(fp2))</p><p><b> {</b></p><p> fscanf(fp2,"%d%d%f%f%f%f\n",&i,&f
136、lag1,&p1,&q1,&e1,&f1);</p><p> flag[i]=flag1;</p><p><b> P[i]=p1;</b></p><p><b> Q[i]=q1;</b></p><p> if(flag[i]==-1) /* 把P
137、V節(jié)點(diǎn)的電壓存放到無(wú)功數(shù)組中 */</p><p><b> Q[i]=e1;</b></p><p><b> e[i]=e1;</b></p><p><b> f[i]=f1;</b></p><p><b> }</b></p>
138、<p> fclose(fp2);</p><p> /* 進(jìn)行主循環(huán) */</p><p><b> t=0;</b></p><p><b> do</b></p><p><b> {</b></p><p> for(i
139、=1;i<N;i++)</p><p><b> {</b></p><p> float tempa=0,tempb=0;</p><p> for(j=1;j<=N;j++)</p><p><b> {</b></p><p> tempa+=YG
140、[i][j]*e[j]-YB[i][j]*f[j];</p><p> tempb+=YG[i][j]*f[j]+YB[i][j]*e[j];</p><p><b> }</b></p><p> A[i]=tempa;</p><p> B[i]=tempb;</p><p> /*
141、 處理PQ節(jié)點(diǎn) */</p><p> if(flag[i]==1)</p><p><b> {</b></p><p> DP[i]=P[i]-(e[i]*A[i]+f[i]*B[i]);</p><p> DQ[i]=Q[i]-(f[i]*A[i]-e[i]*B[i]);</p><p&
142、gt; for(j=1;j<N;j++)</p><p><b> {</b></p><p><b> if(j==i)</b></p><p><b> {</b></p><p> J[2*i-1][2*j-1]=H2(i,j)-B[i];</p&g
143、t;<p> J[2*i-1][2*j]=N2(i,j)-A[i];</p><p> J[2*i][2*j-1]=(-1)*N2(i,j)-A[i];</p><p> J[2*i][2*j]=H2(i,j)+B[i];</p><p><b> }</b></p><p><b>
144、else</b></p><p><b> {</b></p><p> J[2*i-1][2*j-1]=H2(i,j);</p><p> J[2*i-1][2*j]=N2(i,j);</p><p> J[2*i][2*j-1]=(-1)*N2(i,j);</p><p>
145、 J[2*i][2*j]=H2(i,j);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /* 處理PV節(jié)點(diǎn) */</p><p> if(flag[i]=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力系統(tǒng)潮流計(jì)算c程序
- 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì)
- 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì)
- 電力系統(tǒng)課程設(shè)計(jì)-- 潮流計(jì)算
- 電力系統(tǒng)課程設(shè)計(jì)-----潮流計(jì)算
- 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì)
- 電力系統(tǒng)分析課程設(shè)計(jì)-- 電力系統(tǒng)潮流計(jì)算
- 電力系統(tǒng)分析課程設(shè)計(jì)--電力系統(tǒng)潮流計(jì)算
- 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì)
- 基于matlab的電力系統(tǒng)潮流計(jì)算
- 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì)
- 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--電力系統(tǒng)潮流計(jì)算
- 電力系統(tǒng)課程設(shè)計(jì)--潮流計(jì)算
- 電力系統(tǒng)全局潮流計(jì)算研究.pdf
- 電力系統(tǒng)潮流計(jì)算畢業(yè)論文
- 潮流計(jì)算課程設(shè)計(jì)--基于matlab的電力系統(tǒng)潮流計(jì)算
- 9節(jié)點(diǎn)電力系統(tǒng)潮流計(jì)算
- 電力系統(tǒng)綜合課程設(shè)計(jì)--電力系統(tǒng)的潮流計(jì)算和故障分析
- 電力系統(tǒng)穩(wěn)態(tài)潮流計(jì)算課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論