電力系統(tǒng)分析課程設(shè)計(jì)---潮流計(jì)算_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  目錄</b></p><p><b>  摘要1</b></p><p>  1.任務(wù)及題目要求2</p><p><b>  2.計(jì)算原理3</b></p><p>  2.1牛頓—拉夫遜法簡介3</p><p>

2、  2.2牛頓—拉夫遜法的幾何意義7</p><p><b>  3計(jì)算步驟7</b></p><p><b>  4.結(jié)果分析9</b></p><p><b>  小結(jié)11</b></p><p><b>  參考文獻(xiàn)12</b></p

3、><p><b>  附錄:源程序13</b></p><p>  本科生課程設(shè)計(jì)成績評定表33</p><p><b>  摘要</b></p><p>  電力系統(tǒng)的出現(xiàn),使高效,無污染,使用方便,易于調(diào)控的電能得到廣泛應(yīng)用,推動了社會生產(chǎn)各個領(lǐng)域的變化,開創(chuàng)了電力時代,發(fā)生率第二次技術(shù)革命。電

4、力系統(tǒng)的規(guī)模和技術(shù)水準(zhǔn)已經(jīng)成為一個國家經(jīng)濟(jì)發(fā)展水平的標(biāo)志之一。</p><p>  電力系統(tǒng)穩(wěn)態(tài)分析包括潮流計(jì)算和靜態(tài)安全分析。電力系統(tǒng)潮流計(jì)算是電力系統(tǒng)最基本的計(jì)算,也是最重要的計(jì)算。所謂潮流計(jì)算,就是已知電網(wǎng)的接線方式與參數(shù)及運(yùn)行條件,計(jì)算電力系統(tǒng)穩(wěn)態(tài)運(yùn)行各母線電壓、個支路電流與功率及網(wǎng)損。對于正在運(yùn)行的電力系統(tǒng),通過潮流計(jì)算可以判斷電網(wǎng)母線電壓、支路電流和功率是否越限,如果有越限,就應(yīng)采取措施,調(diào)整運(yùn)行方式

5、。對于正在規(guī)劃的電力系統(tǒng),通過潮流計(jì)算,可以為選擇電網(wǎng)供電方案和電氣設(shè)備提供依據(jù)。潮流計(jì)算還可以為繼電保護(hù)和自動裝置定整計(jì)算、電力系統(tǒng)故障計(jì)算和穩(wěn)定計(jì)算等提供原始數(shù)據(jù)。</p><p>  在電力系統(tǒng)運(yùn)行方式和規(guī)劃方案的研究中,都需要進(jìn)行潮流計(jì)算以比較運(yùn)行方式或規(guī)劃供電方案的可行性、可靠性和經(jīng)濟(jì)性。同時,為了實(shí)時監(jiān)控電力系統(tǒng)的運(yùn)行狀態(tài),也需要進(jìn)行大量而快速的潮流計(jì)算。因此,潮流計(jì)算是電力系統(tǒng)中應(yīng)用最廣泛、最基本和

6、最重要的一種電氣運(yùn)算。在系統(tǒng)規(guī)劃設(shè)計(jì)和安排系統(tǒng)的運(yùn)行方式時,采用離線潮流計(jì)算;在電力系統(tǒng)運(yùn)行狀態(tài)的實(shí)時監(jiān)控中,則采用在線潮流計(jì)算。</p><p>  關(guān)鍵詞:電力系統(tǒng) 潮流計(jì)算 牛頓-拉夫遜法</p><p><b>  1.任務(wù)及題目要求</b></p><p>  對如下所訴系統(tǒng)編程進(jìn)行潮流計(jì)算:</p><p>

7、  節(jié)點(diǎn)數(shù):3 支路數(shù):3 計(jì)算精度:0.00010</p><p>  支路1: 0.0300+j0.0900</p><p>  1┠—————□—————┨2</p><p>  支路2: 0.0200+j0.0900</p><p>  2┠—————□—————┨3</p><p

8、>  支路3: 0.0300+j0.0900</p><p>  3┠—————□—————┨1</p><p>  節(jié)點(diǎn)1:PQ節(jié)點(diǎn),S(1)=-0.5000-j0.2000</p><p>  節(jié)點(diǎn)2:PQ節(jié)點(diǎn),S(2)=-0.6000-j0.2500</p><p>  節(jié)點(diǎn)3:平衡節(jié)點(diǎn),U(3)=1.0000∠0.

9、0000</p><p>  經(jīng)分析可知題目所給的系統(tǒng)為三節(jié)點(diǎn)組成的環(huán)形回路,且均為線路沒有變壓器。有兩個為PQ節(jié)點(diǎn),這類節(jié)點(diǎn)的有功功率P和無功功率Q是給定的,節(jié)點(diǎn)電壓是待求量。節(jié)點(diǎn)3為平衡節(jié)點(diǎn),在潮流分布算出來以前,網(wǎng)絡(luò)中的功率損失是未知的,因此,至少要有一個節(jié)點(diǎn)的有功功率不能給定,這個節(jié)點(diǎn)承擔(dān)了系統(tǒng)的有功功率平衡,故稱之為平衡節(jié)點(diǎn)。對系統(tǒng)進(jìn)行潮流計(jì)算,要求各線路的功率分布及功率損耗,未知節(jié)點(diǎn)的電壓等,并進(jìn)行編

10、程運(yùn)行得到結(jié)果。</p><p><b>  2.計(jì)算原理</b></p><p>  潮流計(jì)算是電力系統(tǒng)分析中的一種最基本的計(jì)算,它的任務(wù)是對給定的運(yùn)行條件確定系統(tǒng)的運(yùn)行狀態(tài),如各母線上的電壓(幅值及相角),網(wǎng)絡(luò)中的功率分布及功率損耗等。常用的計(jì)算潮流分析的方法有牛頓—拉夫遜法,P—Q分解法等。本次設(shè)計(jì)采用牛頓—拉夫遜法進(jìn)行計(jì)算。</p><p&

11、gt;  牛頓—拉夫遜法(簡稱牛頓法)在數(shù)學(xué)上是求解非線性代數(shù)方程式的有效方法,其要點(diǎn)是把非線性方程式的求解過程變成反復(fù)地對相應(yīng)的線性方程式進(jìn)行求解的過程,即通常所稱的逐次線性化過程。</p><p>  2.1牛頓—拉夫遜法簡介</p><p>  牛頓—拉夫遜法(Newton—Raphson法)是求解非線性方程代數(shù)方程組的有效迭代計(jì)算方法。在牛頓—拉夫遜法的每一次迭代過程中,對非線性方

12、程通過線性化處理逐步近似。下面以單變量加以說明。</p><p>  設(shè)有單變量非線性方程</p><p><b>  (2-1)</b></p><p>  求解此方程時。先給出解的近似值它與真解的誤差為,則將滿足方程,即</p><p><b>  (2-2)</b></p>&l

13、t;p>  將(2-2)式左邊的函數(shù)在附近展成泰勒級數(shù),于是便得</p><p><b> ?。?-3)</b></p><p>  式中,……分別為函數(shù)在處的一階導(dǎo)數(shù),….,n階導(dǎo)數(shù)。</p><p>  如果差值很小,2-3式右端的二次及以上階次的各項(xiàng)均可略去。于是,2-3便簡化為</p><p>  =0

14、 (2-4)</p><p>  這是對于變量的修正量的現(xiàn)行方程式,亦稱修正方程式。解此方程可得修正量 </p><p><b>  (2-5)</b></p><p>  用所求的去修正近似解,變得</p><p><b>  (2-6)</b></p><p>

15、  由于2-6是略去高次項(xiàng)的簡化式,因此所解出的修正量也只是近似值。修正后的近似解同真解仍然有誤差。但是,這樣的迭代計(jì)算可以反復(fù)進(jìn)行下去,迭代計(jì)算的通式是</p><p><b>  (2-7)</b></p><p>  迭代過程的收斂判據(jù)為</p><p><b>  (2-8)</b></p><

16、p>  或 (2-9)</p><p>  式中,為預(yù)先給定的小正數(shù)。</p><p>  這種解法的幾何意義可以從圖1得到說明。函數(shù)y=f(x)為圖中的曲線。f(x)=0的解相當(dāng)于曲線與x軸的交點(diǎn)。如果第k次迭代中得到,則過點(diǎn)作一切線,此切線同x軸的交點(diǎn)便確定了下一個近似值。由此可見,牛頓-拉夫遜法

17、實(shí)質(zhì)上就是切線法,是一種逐步線性化的方法。</p><p>  應(yīng)用牛頓法求解多變量非線性方程組2-1時,假定已給出各變量的初值,…. ,令,,….. 分別為各變量的修正量,使其滿足方程</p><p><b>  (2-10)</b></p><p>  將上式中的n個多元函數(shù)在初始值附近分別展成泰勒級數(shù),并略去含有,,……,二次及以上階次的

18、各項(xiàng),便得</p><p><b>  .</b></p><p><b>  (2-11)</b></p><p>  方程式2-11也可以寫成矩陣形式</p><p><b>  (2-12)</b></p><p>  方程式2-11是對于修正量,

19、,……, 的線性方程組,稱為牛頓法的修正方程式.利用高斯消去法或三角分解法可以解出修正量,,……,。然后對初始近似值進(jìn)行修正</p><p>  (i=1,2,….,n) (2-13)</p><p>  如此反復(fù)迭代,在進(jìn)行k+1次迭代時,從求解修正方程式</p><p><b>  (2-14)</b><

20、;/p><p>  得到修正量,,,并對各變量進(jìn)行修正</p><p>  (i=1,2,…,n) (2-15)</p><p><b>  也可以縮寫為</b></p><p><b>  (2-16)</b></p><p>  和

21、 (2-17) </p><p>  式中的X和分別是由n個變量和修正量組成的n維列向量;F(X)是由n個多元函數(shù)組成的n維列項(xiàng)量;J是n階方陣,稱為雅可比矩陣,它的第i、j個元素是第n個函數(shù)對第j個變量的偏導(dǎo)數(shù);上角標(biāo)(k)表示陣的每一個元素都在點(diǎn)處取值。迭代過程一直到滿足收斂判據(jù)</p><p>  (2-18)

22、 或 (2-19)</p><p>  為止。和為預(yù)先給定的小正數(shù)。</p><p>  將牛頓-拉夫遜法用于潮流計(jì)算,要求將潮流方程寫成形如方程式2-1的形式。由于節(jié)點(diǎn)電壓可以采用不同的坐標(biāo)系表示,牛頓-拉夫遜法潮流計(jì)算也將相應(yīng)的采用不同的

23、計(jì)算公式。</p><p>  2.2牛頓—拉夫遜法的幾何意義</p><p>  牛頓-拉夫遜法幾何意義:</p><p>  圖中為假設(shè)的初始值它和真值之間的差值</p><p>  為:,然后求得:,其與真值之間的</p><p>  差值為:。如此類推,求得逼近真值</p><p>&l

24、t;b>  。</b></p><p>  圖1牛頓法的幾何解釋</p><p><b>  3計(jì)算步驟</b></p><p>  用牛頓—拉夫遜法計(jì)算電力系統(tǒng)潮流的基本步驟:</p><p>  求解過程大致可以分為以下步驟:</p><p>  (1)形成節(jié)點(diǎn)導(dǎo)納矩陣;&l

25、t;/p><p>  (2)將各節(jié)點(diǎn)電壓設(shè)初值 ;</p><p>  (3)將節(jié)點(diǎn)初值代入相關(guān)求式,求出修正方程式的常數(shù)項(xiàng)向量;</p><p>  (4)將節(jié)點(diǎn)電壓初值代入求式,求出雅可比矩陣元素;</p><p>  (5)求解修正方程,求修正向量;</p><p>  (6)求取節(jié)點(diǎn)電壓的新值;</p>

26、<p>  (7)檢查是否收斂,如不收斂,則以各節(jié)點(diǎn)電壓的新值作為初值自第3步重新開始進(jìn)行狹義次迭代,否則轉(zhuǎn)入下一步;</p><p>  (8)計(jì)算支路功率分布,節(jié)點(diǎn)無功功率和平衡節(jié)點(diǎn)功率。</p><p>  圖2中示出牛頓拉夫遜法計(jì)算潮流的程序框圖。</p><p><b>  圖2計(jì)算流程圖</b></p>

27、<p><b>  4.結(jié)果分析</b></p><p>  經(jīng)過用C語言編程運(yùn)算得到第一次迭代結(jié)果為:</p><p><b>  節(jié)點(diǎn)導(dǎo)納矩陣為:</b></p><p>  6.66667+j-20.00000-3.33333+j10.00000-3.33333+j10.00000</p>

28、<p>  -3.33333+j10.00000 5.68627+j-20.58824-2.35294+j10.58824</p><p>  -3.33333+j10.00000-2.35294+j10.58824 5.68627+j-20.58824</p><p>  Gauss_Seidel迭代結(jié)果:</p><p>  第1次迭代

29、PQ節(jié)點(diǎn)e及f的值:0.983500 -0.019500</p><p>  第1次迭代PQ節(jié)點(diǎn)e及f的值:0.973610 -0.033997</p><p>  第2次迭代PQ節(jié)點(diǎn)e及f的值:0.969642 -0.036485</p><p>  第2次迭代PQ節(jié)點(diǎn)e及f的值:0.965875 -0.042673</p><

30、p>  Jacobi 矩陣:</p><p>  19.31452 6.80237-9.57480-3.59699</p><p>  -7.5856018.98468 3.59699-9.57480</p><p>  -9.51651-3.6463119.92097 5.76424</p><p>  3.6463

31、1-9.51651-6.9773519.36506</p><p><b>  不平衡值:</b></p><p><b>  -0.114256</b></p><p><b>  -0.054375</b></p><p><b>  -0.002280&l

32、t;/b></p><p><b>  -0.007412</b></p><p><b>  輸出 df,de</b></p><p>  節(jié)點(diǎn)為 1 的電壓不平衡值: df=-0.00508 de=-0.00267</p><p>  節(jié)點(diǎn)為 2 的電壓不平衡值: df=-

33、0.00006 de=-0.00037</p><p>  -輸出迭代過程中的電壓值</p><p>  節(jié)點(diǎn)為 1 的電壓修正新值: f=-0.04156 e= 0.96698</p><p>  節(jié)點(diǎn)為 2 的電壓修正新值: f=-0.04273 e= 0.96551</p><p>  還不能達(dá)到題

34、目中的精度要求,繼續(xù)進(jìn)行迭代,經(jīng)6次迭代后得到結(jié)果。</p><p><b>  各節(jié)點(diǎn)電壓為:</b></p><p>  U[1]=0.963186 + j-0.042323</p><p>  U[2]=0.962333 + j-0.045732</p><p>  U[3]=1.000000 + j0.00000

35、0</p><p><b>  平衡節(jié)點(diǎn)功率為:</b></p><p>  S[3]=1.118788+j0.518288</p><p><b>  輸電線路功率如下:</b></p><p>  ***** 輸電線路1-2的功率: 0.035453 + j-0.004289</p>

36、<p>  ***** 輸電線路2-1的功率: -0.035412 + j0.004412</p><p>  ***** 輸電線路2-3的功率: -0.564587 + j-0.254058</p><p>  ***** 輸電線路3-2的功率: 0.572847 + j0.291225</p><p>  ***** 輸電線路3-1的功率: 0.5

37、45942 + j0.227063</p><p>  ***** 輸電線路1-3的功率: -0.535453 + j-0.195598</p><p>  輸電線路上損耗的功率為:</p><p>  ***** 輸電線路1-2上的功率損耗: 0.000041 + j 0.000123</p><p>  ***** 輸電線路2-3上的功

38、率損耗: 0.008259 + j 0.037167</p><p>  ***** 輸電線路3-1上的功率損耗: 0.010488 + j 0.031465</p><p>  網(wǎng)絡(luò)總損耗: 0.018789 + j 0.068755</p><p>  結(jié)果滿足了題目中所需的精度要求,并且計(jì)算出了潮流計(jì)算要求的各節(jié)點(diǎn)電壓,網(wǎng)絡(luò)中的功率分布及功率損耗。<

39、;/p><p><b>  小結(jié)</b></p><p>  在這次課程設(shè)計(jì)中,我強(qiáng)烈感覺到自己在很多方面的不足,對別人的依賴性比較強(qiáng)。我想我會在以后的學(xué)習(xí)中不斷去發(fā)現(xiàn)自己的不足,并一一改正,希望在以后的學(xué)習(xí)中不要犯同樣的錯誤。</p><p>  在這次課程設(shè)計(jì)中,我們盡量按照老師的要求做,但在具體的操作過程中,還是出現(xiàn)了很多的問題。搞完這個課程

40、設(shè)計(jì)讓我感覺電力系統(tǒng)分析是一門很有用的課程。因?yàn)槲覍λ膶W(xué)到的知識比較少。在很多時候我很多東西都不了解。并且走了很多的彎路。而且我感覺自己的知識不夠連貫。好些時候都出現(xiàn)了卡殼的情況。這次課程設(shè)計(jì)后,我一定要重新對電力系統(tǒng)分析這門課程做進(jìn)一步的了解。對在此過程中遺留下的問題做好好的研究。爭取早點(diǎn)對電力系統(tǒng)分析這門課程有個全方位的了解。為在以后的畢業(yè)課程設(shè)計(jì)中多些方案。也為我子以后走上工作崗位,提升自己的專業(yè)技能,打下扎實(shí)的基礎(chǔ)。</

41、p><p>  還有就是在十幾天的課程設(shè)計(jì)中,使我養(yǎng)成了很好的學(xué)習(xí)習(xí)慣,和對學(xué)習(xí)知識的嚴(yán)謹(jǐn)?shù)膽B(tài)度,同時也養(yǎng)成了積極查閱相關(guān)資料的好習(xí)慣,好習(xí)慣的養(yǎng)成是來之不易的,我相信在以后的學(xué)習(xí)和工作中,我將繼續(xù)保持這些良好的習(xí)慣,并積極努力的學(xué)習(xí)。讓自己更上一層樓。也感謝班上同學(xué)給了我很多寶貴的意見和參考,使我獲益很多。</p><p><b>  參考文獻(xiàn):</b></p&g

42、t;<p>  [1] 何仰贊 溫增銀 電力系統(tǒng)分析 華中科技大學(xué)出版社 2006</p><p>  [2] 何仰贊 溫增銀 電力系統(tǒng)分析題解 華中科技大學(xué)出版社 2006</p><p>  [3] 王錫凡 現(xiàn)代電力系統(tǒng)分析 科學(xué)出版社 2004</p><p>  [4] 于永源 楊綺雯 電力系統(tǒng)分析(第二版)中國電力出版社 2007&l

43、t;/p><p>  [5] 薛定宇 控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì) 清華大學(xué)出版社 1996</p><p><b>  附錄:源程序</b></p><p>  #include <stdio.h></p><p>  #include <math.h></p><p>  #de

44、fine M 40 /*矩陣階數(shù)*/</p><p>  #define N 10 /*最大迭代次數(shù)*/</p><p>  int i,j,k,a,b,l,z; /* 循環(huán)變量 */</p><p>  int n, /* 節(jié)點(diǎn)數(shù) */<

45、;/p><p>  m, /* 支路數(shù) */</p><p>  dd, /*對地支路數(shù)*/</p><p>  pq, /* PQ節(jié)點(diǎn)數(shù) */</p><p>  pv, /*

46、 PV節(jié)點(diǎn)數(shù) */</p><p>  byq; /* 變壓器數(shù) */</p><p>  float eps, /* 精度 */</p><p>  bb, /* 變比 */</p><p>  max;

47、 /*指標(biāo)標(biāo)志*/</p><p>  float yy[M]; /*中間變量*/</p><p>  static float G[M][M],B[M][M],B1[M][M],B2[M][M],B3[M][M];</p><p>  struct jiedian /* 定義節(jié)點(diǎn)結(jié)構(gòu)

48、體 */</p><p>  { int num,s; /* num為節(jié)點(diǎn)號,s為節(jié)點(diǎn)類型*/</p><p>  float p,q,u,f,v;</p><p>  float dp,dq,df,du;</p><p>  } jiedian[M];</p><p>  struct

49、 zhilu /* 定義支路結(jié)構(gòu)體 */</p><p>  { int num;</p><p>  int p1,p2; /*支路的兩個節(jié)點(diǎn)*/</p><p>  float r,x; /*支路的電阻與電抗*/</p>

50、<p>  } zhilu[M];</p><p>  FILE *fp1,*fp2; /*文件指針*/</p><p>  void data1() /* 讀取數(shù)據(jù)函數(shù) */</p><p>  { int h,numb,a,b;</p><p>

51、;<b>  a=1;</b></p><p>  fp1=fopen("d:\input.txt","r");</p><p>  if(fp1==NULL)</p><p>  { printf(" can not open file !\n");</p><p

52、><b>  exit(0);</b></p><p><b>  }</b></p><p>  fscanf(fp1,"%d,%d,%d,%d,%d,%d,%f\n",&n,&m,&dd,&pq,&pv,&byq,&eps); /*輸入節(jié)點(diǎn)數(shù),支路數(shù),對地支路

53、數(shù),PQ節(jié)點(diǎn)數(shù),PV節(jié)點(diǎn)數(shù),變壓器數(shù)和精度*/</p><p>  j=1;k=pq+1;</p><p>  for(i=1;i<=n;i++) /*輸入節(jié)點(diǎn)類型的輸入功率和節(jié)電電壓初值*/</p><p><b>  {</b></p><p>  fscanf

54、(fp1,"%d,%d",&numb,&h);</p><p>  if(h==1) /*類型h=1是PQ節(jié)點(diǎn)*/</p><p>  { fscanf(fp1,",%f,%f,%f,%f\n",&jiedian[j].p,&a

55、mp;jiedian[j].q,&jiedian[j].u,&jiedian[j].f); /*輸入PQ節(jié)點(diǎn)的數(shù)據(jù)*/</p><p>  jiedian[j].num=numb;</p><p>  jiedian[j].s=h;</p><p><b>  j++;</b></p><p><

56、;b>  }</b></p><p>  if(h==2) /*類型h=2是pv節(jié)點(diǎn)*/</p><p>  { fscanf(fp1,",%f,%f,%f,%f\n",&jiedian[k].p,&jiedian[k].v,&j

57、iedian[k].u,&jiedian[k].f); /*輸入PV節(jié)點(diǎn)的數(shù)據(jù)*/</p><p>  jiedian[k].num=numb;</p><p>  jiedian[k].s=h;</p><p><b>  k++;</b></p><p><b>  }</b>&l

58、t;/p><p>  if(h==3) /*類型h=3是平衡節(jié)點(diǎn)*/</p><p>  { fscanf(fp1,",%f,%f\n",&jiedian[n].u,&jiedian[n].f); /*輸入平衡節(jié)點(diǎn)的數(shù)據(jù)*/</p>&l

59、t;p>  jiedian[n].num=numb;</p><p>  jiedian[n].s=h;</p><p><b>  }</b></p><p><b>  }</b></p><p>  for(i=1;i<=m;i++)

60、 /*輸入支路阻抗*/</p><p><b>  { </b></p><p>  fscanf(fp1,"%d,%d,",&zhilu[i].num,&h);</p><p>  if(h==0)

61、 /*輸入非變壓器支路阻抗*/</p><p>  {fscanf(fp1,"%d,%d,%f,%f\n", &zhilu[i].p1,&zhilu[i].p2,&zhilu[i].r,&zhilu[i].x);</p><p><b>  }</b></p><p

62、>  if(h==1) /*輸入變壓器支路阻抗*/</p><p>  {fscanf(fp1,"%f,%d,%d,%f,%f\n",&bb,&zhilu[i].p1,&zhilu[i].p2,&zhilu[i].r, &zhilu[i].x);</p

63、><p>  zhilu[i].r=zhilu[i].r*bb;</p><p>  zhilu[i].x=zhilu[i].x*bb;</p><p><b>  b=m+a;</b></p><p>  zhilu[b].num=b;</p><p>  zhilu[b].p1=zhilu[i].

64、p1;</p><p>  zhilu[b].p2=0;</p><p>  zhilu[b].r=zhilu[i].r*bb/(1-bb);</p><p>  zhilu[b].x=zhilu[i].x*bb/(1-bb);</p><p>  zhilu[b+1].num=b</p><p>  zhilu[b+

65、1].p1=zhilu[i].p2;</p><p>  zhilu[b+1].p2=0;</p><p>  zhilu[b+1].r=zhilu[i].r/(bb-1);</p><p>  zhilu[b+1].x=zhilu[i].x/(bb-1);</p><p><b>  a=a+2;</b></p&

66、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp1);</p><p>  if((fp2=fopen("d:\output.txt","w"))==NULL)</p><p>

67、  { printf(" can not open file!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  fprintf(fp2,"\n\n ********* 原

68、始數(shù)據(jù) *********\n");</p><p>  fprintf(fp2," ===================================================================\n")</p><p>  fprintf(fp2," 節(jié)點(diǎn)數(shù):%2d 支路數(shù):%2d 對地支路數(shù):%2d

69、 變壓器數(shù):%2d \n PQ節(jié)點(diǎn)數(shù):%2d PV節(jié)點(diǎn)數(shù):%2d 精度:%f\n",n,m+2*byq,dd,byq,pq,pv,eps);</p><p>  fprintf(fp2," -------------------------------------------------------------------\n");</p>&l

70、t;p>  for(i=1;i<=pq;i++)</p><p>  fprintf(fp2," PQ節(jié)點(diǎn) 節(jié)點(diǎn)%2d P[%d]=%+f Q[%d]=%+f\n",</p><p>  jiedian[i].num,jiedian[i].num,jiedian[i].p,jiedian[i].num,jiedian[i].q

71、);</p><p>  for(i=pq+1;i<=pq+pv;i++)</p><p>  fprintf(fp2," PV節(jié)點(diǎn) 節(jié)點(diǎn)%2d P[%d]=%+f V[%d]=%+f\n",</p><p>  jiedian[i].num,jiedian[i].num,jiedian[i].p,jiedi

72、an[i].num,jiedian[i].v);</p><p>  fprintf(fp2," 平衡節(jié)點(diǎn) 節(jié)點(diǎn)%2d u[%d]=%+f f[%d]=%+f\n",</p><p>  jiedian[n].num,jiedian[n].num,jiedian[n].u,jiedian[n].num,jiedian[n].f);</p

73、><p>  fprintf(fp2," -------------------------------------------------------------------\n");</p><p>  for(i=1;i<=m+2*byq;i++)</p><p>  fprintf(fp2," 支路%2d 相關(guān)

74、節(jié)點(diǎn):%2d,%2d R=%+f X=%+f\n",</p><p>  i,zhilu[i].p1,zhilu[i].p2,zhilu[i].r,zhilu[i].x);</p><p>  fprintf(fp2," ===================================================================\n&q

75、uot;);</p><p><b>  }</b></p><p>  void form_y() /* 形成節(jié)點(diǎn)導(dǎo)納矩陣函數(shù) */</p><p><b>  {</b></p><p><b>  float S;</b>

76、</p><p>  for(i=1;i<=m+2*byq;i++) /*節(jié)點(diǎn)導(dǎo)納矩陣的主對角線上的導(dǎo)納*/</p><p>  for(j=0;j<=n;j++)</p><p>  if((zhilu[i].p1==j)||(zhilu[i].p2==j))</p><p>  { S=zhilu[

77、i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x;</p><p>  if(S==0) continue;</p><p>  G[j][j]+=zhilu[i].r/S;</p><p>  B[j][j]+=-zhilu[i].x/S;</p><p><b>  }</b></p

78、><p>  for(i=1;i<=m+2*byq;i++) /*對地導(dǎo)納*/</p><p>  {j=zhilu[i].p1;</p><p>  k=zhilu[i].p2;</p><p>  if((j==0)||(k==0))</p><p>  {S=zhilu[i].r*

79、zhilu[i].r+zhilu[i].x*zhilu[i].x;</p><p>  if(S==0) {G[0][i]=B[0][i]=G[i][0]=B[i][0]=0;continue;}</p><p><b>  if(j==0)</b></p><p>  {G[0][k]+=zhilu[i].r/S;</p>&l

80、t;p>  B[0][k]+=-zhilu[i].x/S;</p><p>  G[k][0]=G[0][k];</p><p>  B[k][0]=B[0][k];</p><p><b>  }</b></p><p><b>  if(k==0)</b></p><p

81、>  {G[0][j]+=zhilu[i].r/S;</p><p>  B[0][j]+=-zhilu[i].x/S;</p><p>  G[j][0]=G[0][j];</p><p>  B[j][0]=B[0][j];</p><p><b>  } </b></p><p&g

82、t;<b>  }</b></p><p><b>  }</b></p><p>  for(k=1;k<=m-dd;k++) /*節(jié)點(diǎn)導(dǎo)納矩陣非主對角線上的導(dǎo)納*/</p><p>  { i=zhilu[k].p1;</p><p>  j=zhil

83、u[k].p2;</p><p>  S=zhilu[k].r*zhilu[k].r+zhilu[k].x*zhilu[k].x;</p><p>  if(S==0) continue;</p><p>  G[i][j]+=-zhilu[k].r/S;</p><p>  B[i][j]+=zhilu[k].x/S;</p>

84、<p>  G[j][i]=G[i][j];</p><p>  B[j][i]=B[i][j];</p><p><b>  }</b></p><p>  for(i=1;i<=(pq+pv);i++) /*形成B'矩陣*/</p><p>  for(j=1;j&

85、lt;=(pq+pv);j++)</p><p>  B1[i][j]=B[jiedian[i].num][jiedian[j].num];</p><p>  for(i=1;i<=pq;i++) /*形成B''矩陣*/</p><p>  for(j=1;j<=pq;j++)</p>&

86、lt;p>  B2[i][j]=B[jiedian[i].num][jiedian[j].num]; </p><p>  /*輸出節(jié)點(diǎn)導(dǎo)納矩陣、系數(shù)矩陣B'、系數(shù)矩陣B''*/</p><p>  fprintf(fp2,"\n\n ********* 計(jì)算結(jié)果 *********\n");&

87、lt;/p><p>  fprintf(fp2,"</p><p>  ===================================================================\n")</p><p>  fprintf(fp2,"\n 節(jié)點(diǎn)導(dǎo)納矩陣為:");</p><p>

88、;  for(i=1;i<=n;i++)</p><p>  { fprintf(fp2,"\n ");</p><p>  for(j=1;j<=n;j++)</p><p>  fprintf(fp2,"%+8.6f+j%+8.6f ",G[i][j],B[i][j]);</p>&l

89、t;p><b>  }</b></p><p>  fprintf(fp2,"\n -------------------------------------------------------------\n");</p><p>  fprintf(fp2,"\n 節(jié)點(diǎn)導(dǎo)納矩陣實(shí)部G為:"); </p&g

90、t;<p>  for(i=1;i<=n;i++)</p><p>  { fprintf(fp2,"\n ");</p><p>  for(j=1;j<=n;j++)</p><p>  fprintf(fp2,"%+8.6f ",G[i][j]);</p><p&

91、gt;<b>  }</b></p><p>  fprintf(fp2,"\n -------------------------------------------------------------\n");</p><p>  fprintf(fp2,"\n 節(jié)點(diǎn)導(dǎo)納矩陣虛部B為:"); </p>

92、<p>  for(i=1;i<=n;i++)</p><p>  { fprintf(fp2,"\n ");</p><p>  for(j=1;j<=n;j++)</p><p>  fprintf(fp2,"%+8.6f ",B[i][j]);</p><p>&

93、lt;b>  }</b></p><p>  fprintf(fp2,"\n -------------------------------------------------------------\n");</p><p>  fprintf(fp2,"\n 系數(shù)矩陣B'為:"); </p><

94、;p>  for(i=1;i<=pv+pq;i++)</p><p>  { fprintf(fp2,"\n ");</p><p>  for(j=1;j<=pv+pq;j++)</p><p>  fprintf(fp2,"%+8.6f ",B1[i][j]);</p><

95、p><b>  }</b></p><p>  fprintf(fp2,"\n -------------------------------------------------------------\n");</p><p>  fprintf(fp2,"\n 系數(shù)矩陣B''為:"); <

96、/p><p>  for(i=1;i<=pq;i++)</p><p>  { fprintf(fp2,"\n ");</p><p>  for(j=1;j<=pq;j++)</p><p>  fprintf(fp2,"%+8.6f ",B2[i][j]);</p>

97、<p><b>  }</b></p><p>  fprintf(fp2,"\n ==============================================================\n");</p><p><b>  }</b></p><p>  void

98、gaoshi(int A,float aa[M][M],float bb[M]) /*高斯計(jì)算函數(shù)*/</p><p>  {int i,j,z;</p><p><b>  int k=0;</b></p><p><b>  float a;</b></p><p>  for(i=k+

99、1;i<A;i++)</p><p>  { for(z=0;(z+i)<A;z++)</p><p>  { aa[i+z][k]=aa[i+z][k]/aa[k][k]; /*校驗(yàn)過程*/</p><p>  bb[i+z]=bb[i+z]-aa[i+z][k]*bb[k];</p><p>  for

100、(j=k+1;j<A;j++)</p><p>  {aa[i+z][j]=aa[i+z][j]-aa[i+z][k]*aa[k][j];}</p><p><b>  }</b></p><p><b>  k=k+1;</b></p><p><b>  }</b>&

101、lt;/p><p>  bb[A-1]=bb[A-1]/aa[A-1][A-1];</p><p>  for(i=A-2,k=A-2;i>=0;i--)</p><p><b>  {a=0;</b></p><p>  for(j=i+1;j<A;j++)</p><p>  {a=a

102、a[i][j]*bb[j]+a;</p><p><b>  }</b></p><p>  bb[i]=(bb[i]-a)/aa[i][i];</p><p><b>  }</b></p><p><b>  }</b></p><p>  floa

103、t solve(float max) /*迭代函數(shù)*/</p><p><b>  {</b></p><p>  float aa[M],bb[M];</p><p>  /**********************************求節(jié)點(diǎn)有功功率不平衡量dp******************

104、********************************/</p><p>  for(i=1;i<=(pq+pv);i++) /*求dp*/</p><p>  { jiedian[i].dp=jiedian[i].p;</p><p>  for(j=1;j<=n;j++)</p><p>

105、;  {jiedian[i].dp=jiedian[i].dp-jiedian[i].u*jiedian[j].u*(G[jiedian[i].num][jiedian[j].num]*cos(jiedian[i].f-jiedian[j].f)+B[jiedian[i].num][jiedian[j].num]*sin(jiedian[i].f-jiedian[j].f));</p><p><b>

106、  }</b></p><p><b>  }</b></p><p>  for(i=1;i<=(pq+pv);i++) /*定義各節(jié)點(diǎn)的dP/U*/</p><p>  if(jiedian[i].s!=3)</p><p>  yy[i]=fabs(jiedian[i].

107、dp/jiedian[i].u);</p><p>  max=yy[1]; /*求dP/U的最大值*/</p><p>  for(i=1;i<=(pq+pv);i++)</p><p>  if(yy[i]>max){max=yy[i];}</p><p>  for(i=1

108、;i<=(pq+pv);i++)</p><p>  fprintf(fp2," 有功功率不平衡量dP[%d]=%+f\n",jiedian[i].num,jiedian[i].dp);</p><p>  fprintf(fp2,"\n -------------------------------------------------------

109、------\n");</p><p>  /*********************************求各節(jié)點(diǎn)的相位角f,df**************************************************/</p><p>  {a=1; /*裝換為高斯函數(shù)的標(biāo)準(zhǔn)形式*

110、/</p><p>  for(i=1;i<=n;i++)</p><p>  {if(jiedian[i].s==3){a=a+1;continue;}</p><p>  aa[i-a]=jiedian[i].dp/jiedian[i].u;</p><p><b>  b=1;</b></p>

111、<p>  for(j=1;j<=n;j++)</p><p>  {if(jiedian[j].s==3){b=b+1;continue;}</p><p>  B3[i-a][j-b]=0.0-B1[i+1-a][j+1-b]*jiedian[i].u;</p><p><b>  }</b></p><

112、p><b>  }</b></p><p>  gaoshi((pv+pq),B3,aa); /*代入高斯函數(shù)求解方程*/</p><p><b>  a=1;</b></p><p>  for(i=1;i<=n;i++)</p><p> 

113、 {if(jiedian[i].s==3){a++;continue;}</p><p>  jiedian[i].df=aa[i-a];</p><p>  jiedian[i].f=jiedian[i].f+jiedian[i].df;}</p><p>  for(i=1;i<=(pq+pv);i++)</p><p>  fpr

114、intf(fp2," df[%d]=%f 電壓的相位角f[%d]=%+f\n",jiedian[i].num,jiedian[i].df,jiedian[i].num,jiedian[i].f);</p><p>  fprintf(fp2,"\n -------------------------------------------------------------\n&q

115、uot;);</p><p>  /*********************************求節(jié)點(diǎn)的無功功率不平衡量dq********************************************/</p><p>  for(i=1;i<=n;i++) /*求dq*/</p><p><b>  {<

116、/b></p><p>  jiedian[i].dq=jiedian[i].q;</p><p>  for(j=1;j<=n;j++)</p><p>  {jiedian[i].dq=jiedian[i].dq-jiedian[i].u*jiedian[j].u*(G[jiedian[i].num][jiedian[j].num]*sin(jied

117、ian[i].f-jiedian[j].f)-B[jiedian[i].num][jiedian[j].num]*cos(jiedian[i].f-jiedian[j].f));</p><p><b>  }</b></p><p><b>  }</b></p><p>  for(i=1;i<=pq;i++)

118、 /*定義各節(jié)點(diǎn)的dQ/U*/</p><p>  yy[i]=fabs(jiedian[i].dq/jiedian[i].u);</p><p>  for(i=1;i<=pq;i++) /*求所有dP/U和dQ/U中的最大值*/</p><p>  if(yy[i]>max){max=yy[i];

119、}</p><p>  for(i=1;i<=pq;i++)</p><p>  fprintf(fp2," 無功功率不平衡量dQ[%d]=%+f\n",jiedian[i].num,jiedian[i].dq);</p><p>  fprintf(fp2,"\n -----------------------------

120、--------------------------------\n"); </p><p>  /********************************計(jì)算各節(jié)點(diǎn)電壓***************************************************/</p><p>  for(i=1;i<=n;i++) /*

121、裝換為高斯函數(shù)的標(biāo)準(zhǔn)形式*/</p><p>  for(j=1;j<=n;j++)</p><p>  B3[i-1][j-1]=0-B2[i][j];</p><p><b>  a=1;</b></p><p>  for(i=1;i<=n;i++)</p><p>  {if(

122、jiedian[i].s!=1){a=a+1;continue;}</p><p>  bb[i-a]=jiedian[i].dq/jiedian[i].u;</p><p><b>  }</b></p><p>  gaoshi(pq,B3,bb); /*代入高斯函數(shù)求解方程*/</p><

123、;p><b>  a=1;</b></p><p>  for(i=1;i<=n;i++)</p><p>  {if(jiedian[i].s==3){a++;continue;}</p><p>  jiedian[i].du=bb[i-a];</p><p>  jiedian[i].u=jiedian

124、[i].u+jiedian[i].du;</p><p><b>  }</b></p><p>  for(i=1;i<=n;i++)</p><p>  if(jiedian[i].s==1)</p><p>  fprintf(fp2," dU[%d]=%f 電壓的大小U[%d]=%+f\n&q

125、uot;,jiedian[i].num,jiedian[i].du,jiedian[i].num,jiedian[i].u);</p><p>  fprintf(fp2,"\n ==============================================================\n"); </p><p>  }return(max);

126、 /*返回循環(huán)標(biāo)志值*/</p><p><b>  }</b></p><p>  float mul_Re(x1,y1,x2,y2) /*求實(shí)部*/</p><p>  float x1,x2,y1,y2;</p><p>

127、;<b>  {float x;</b></p><p>  x=x1*x2-y1*y2;</p><p>  return(x);</p><p><b>  }</b></p><p>  float mul_Im(x1,y1,x2,y2) /*求虛部*/</

溫馨提示

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

最新文檔

評論

0/150

提交評論