<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

作者: 時(shí)間:2012-06-29 來(lái)源:網(wǎng)絡(luò ) 收藏

1. 引言

本文引用地址:http://dyxdggzs.com/article/176813.htm

是研究系統穩態(tài)問(wèn)題的基礎,在應用系統分布以來(lái),先后出現過(guò)以節點(diǎn)導納矩陣為基礎的逐次迭代法,即導納法,和以阻抗矩陣為基礎的逐次代入法,即阻抗法。針對阻抗法占用計算機內存大的問(wèn)題,又出現了分塊阻抗法及牛頓-拉夫遜法(Newton-Raphson),而NR法也解決了導納法收斂性差的問(wèn)題。PQ分解法是使用極坐標表示時(shí)的NR法,既可用于離線(xiàn)計算,更能夠應用于在線(xiàn)潮流計算。

本文針對NR法和PQ法,在Windows環(huán)境下,使用C++語(yǔ)言開(kāi)發(fā)出了相應的計算工具,對同一個(gè)算例分別使用不同工具,將得到的兩種結果進(jìn)行,發(fā)現對不同復雜度(本文以節點(diǎn)數目多少來(lái)定義網(wǎng)絡(luò )復雜度高低)的算例,應當選擇合適的算法程序以使收斂性和計算速度能同時(shí)滿(mǎn)足要求。

2. 潮流計算的基本原理

潮流計算時(shí)對每個(gè)節點(diǎn)給出兩個(gè)運行參數作為已知條件,另外兩個(gè)作為待求量。由原始數據的給出方式,節點(diǎn)一般分3類(lèi):

(1)PQ節點(diǎn):已知節點(diǎn)有功功率及無(wú)功功率(P,Q),待求量為電壓幅值和電壓相量角度(V, )。

(2)PV節點(diǎn):已知節點(diǎn)有功功率及電壓幅值(P,V),待求量為無(wú)功功率及電壓相量角度(Q, )。

(3)平衡節點(diǎn):此類(lèi)節點(diǎn)一般在系統中只設一個(gè)。給定該節點(diǎn)電壓的幅值V及電壓向量角度 = ,待求量為該點(diǎn)有功功率P及無(wú)功功率Q。本論文中所用算例均只有一個(gè)平衡節點(diǎn)。

2.1 NR法的基本原理

牛頓-拉夫遜法通過(guò)逐次線(xiàn)性化把非線(xiàn)性方程式的求解過(guò)程變成對相應的線(xiàn)性方程式的求解過(guò)程。其修正方程式為:

基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

(1)

2.2 PQ法的基本原理

PQ分解法是在對采用極坐標表示的NR法進(jìn)行有效簡(jiǎn)化的基礎上發(fā)展而來(lái),NR法的核心是求解修正方程式。高壓系統中有功功率潮流主要與各節點(diǎn)電壓向量角度有關(guān),無(wú)功功率潮流則主要受各節點(diǎn)電壓幅值的影響。忽略可以不計入在內的因素,其修正方程式采用極坐標表達為:

基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

(2)、(3)與功率誤差方程式

基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

(4)和

(5)

共同構成PQ分解法迭代過(guò)程中的計算公式。

3. NR算法和PQ算法的C++編程方案設計

考慮到計算工具的通用性和可擴展性,設計時(shí)應將各部分功能進(jìn)行模塊化處理,以利于縮短開(kāi)發(fā)周期,并實(shí)現不同算法中功能相同模塊的重復使用,提高程序代碼使用率。因而選擇VC++6.0中STL所提供的常用容器類(lèi)模板Vector,Complex和String編寫(xiě)程序代碼:Vector模板類(lèi)用于對向量類(lèi)型數組進(jìn)行操作,且Vector對象運行時(shí)可以動(dòng)態(tài)改變自身大小以便容納任何數目的元素;Complex模板類(lèi)用于復數存儲和操作;String模板類(lèi)用于字符串操作。正是C++通用庫STL模板類(lèi)功能便于實(shí)現模塊化,而無(wú)論采用哪種算法都須對電壓,電流及功率復數向量進(jìn)行處理。此外,還要適應不同規模的算例,因此利用STL通用庫模板類(lèi)進(jìn)行編程成為本論文的首選。其次,網(wǎng)絡(luò )參數的輸入統一采用電氣和電子工程師協(xié)會(huì )推薦使用的標準數據格式:IEEE通用數據文件格式(Common Data Format),CDF作為電網(wǎng)的拓撲結構輸入文件,另外每個(gè)算法程序還要給出各自運行耗時(shí),方便計算結果對比。

3.1 文件輸入輸出模塊

文件輸入模塊完成對電力系統網(wǎng)絡(luò )的拓撲結構以及各個(gè)節點(diǎn)和各條支路的參數信息的讀取和存儲,供計算使用。首先建立一組輸入文件,以5節點(diǎn)網(wǎng)絡(luò )為例,按照CDF格式建立輸入文件,包含各節點(diǎn)參數和各支路參數,以“005IEEE.dat”作為文件名存檔。編程時(shí)定義節點(diǎn)信息結構體(BusData)和支路信息結構體(BranchData)。母線(xiàn)節點(diǎn)信息(BUS DATA FOLLOWS)包含:節點(diǎn)編號number、節點(diǎn)名稱(chēng)name、負荷區編號LoadFlowAreaNumber、損耗區編號LossZoneNumber、節點(diǎn)類(lèi)型Type、迭代后的電壓值FinalVoltage、迭代后的電壓向量角度(此處為弧度制)FinalAngle、負荷有功LoadMW、負荷無(wú)功LoadMVAR、發(fā)電機有功GenerationMW、發(fā)電機無(wú)功GenerationMVAR、基準電壓BaseKV。支路信息(BRANCH DATA FOLLOWS)包含:支路起始節點(diǎn)TapBusNumber、支路終端節點(diǎn)ZBusnumber、負荷區LoadFlowArea、損耗區LossZone、支路類(lèi)型Type、支路電阻值BranchR、支路電抗值BranchX、支路對地導納值LineChargingB、變壓器變比TransformerFinalTurnsRatio。通過(guò)ifstream DataFile(filename.c_str())語(yǔ)句打開(kāi)數據輸入文件,對輸入文件數據流操作,將相應信息導入與之對應的結構體變量,完成輸入文件模塊化。

文件輸出模塊用來(lái)輸出并保存潮流計算結果,利用outputfile語(yǔ)句對NR算法和PQ算法每次迭代時(shí)各個(gè)變量的初值和計算后的終值輸出,并將最終結果存入“xxxieee_NR_Result.dat”和“xxxieee_PQ_Result.dat”文檔。

3.2 NR算法模塊化函數編程及流程圖

(1)導納矩陣生成模塊:根據網(wǎng)絡(luò )拓撲結構計算出導納矩陣;

(2)節點(diǎn)功率誤差模塊:根據功率誤差公式計算出各節點(diǎn)功率誤差;

(3)雅可比矩陣生成模塊:由NR法修正方程式系數矩陣公式計算出雅可比矩陣;

(4)修正方程式求解模塊:解修正方程式得到修正量;

(5)節點(diǎn)電壓修正模塊:用修正量去修正各節點(diǎn)電壓值。

流程圖見(jiàn)圖1。

基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

圖1 NR算法模塊化函數編程及流程圖 圖2 PQ算法模塊化函數編程及流程圖

3.3 PQ算法模塊化函數編程及流程圖

(1)導納矩陣生成模塊:根據網(wǎng)絡(luò )拓撲結構計算出導納矩陣;

(2)根據功率誤差公式計算出各節點(diǎn)功率誤差的模塊;

(3)生成修正方程系數矩陣的模塊;

(4)高斯消去法解 修正方程式的模塊;

(5)高斯消去法解Q-V修正方程式的模塊;

(6)修正各節點(diǎn)電壓值的模塊。

流程圖見(jiàn)圖2。

3.4 算法編程細節問(wèn)題說(shuō)明

初始電壓用“平啟動(dòng)”方式,即e=1.0,f=0.0給出;用高斯消去法解修正方程式;NR法雅可比矩陣的形成與迭代同步進(jìn)行,即每次迭代時(shí)系數矩陣都將不同。對高壓電力系統,雅可比矩陣中各行的最大元素是有功功率誤差量對電壓的橫分量e的偏導數與無(wú)功功率誤差量對電壓的縱分量f的偏導數,它們都不在對角元素位置。為減少計算過(guò)程舍入誤差,程序通過(guò)對調雅可比矩陣中奇數行和偶數行的位置來(lái)實(shí)現最大元素放在對角元素位置上,以提高計算精度;對PQ分解法將BX法應用于程序編寫(xiě)。修正方程式的系數矩陣在每次迭代計算時(shí)都將固定不變,在電網(wǎng)拓撲結構數學(xué)模型的建立之初就已確定,與每次電壓相量迭代結果無(wú)直接關(guān)系;由于Vector只能對一維向量進(jìn)行存儲,而矩陣相當于一個(gè)二維數組,就出現了如何將二維數組轉化成一維向量的問(wèn)題。對于一個(gè)i行j列的二維數組,可通過(guò)下面語(yǔ)句將其轉變?yōu)橐痪S向量:

vector Matrix;

for(i=0;i MatrixSize;i++)

for(j=0;j MatrixSize;j++)

Matrix[i* MatrixSize+j]=X[i][j];

其中,一維向量的大小即MatrixSize*MatrixSize,它等于二維數組X[i][j]中所有元素的個(gè)數(也就是矩陣的大小)。由此解決矩陣存儲的問(wèn)題;收斂條件可根據需要輸入,當滿(mǎn)足收斂性要求時(shí)計算結束。

4. C++的兩種不同算法的實(shí)驗驗證

基于C++的電力潮流計算牛-拉法與P-Q法的分析比較

圖3 包含5節點(diǎn)的網(wǎng)絡(luò )模型算例 圖4 斂代特性對數坐標

以圖3的網(wǎng)絡(luò )模型為算例,以 為收斂條件。用C++編程,使用NR算法的輸出結果(直角坐標系)如表1,使用PQ算法程序的輸出結果(極坐標系)如表2。

迭代次數

e 1

f1

e 2

f 2

e 3

f 3

e 4

f 4

1

0.96643

-0.033481

1.10538

0.36074

1.05881

-0.06900

1.05000

0.45748

2

0.87365

-0.07006

1.03350

0.32886

1.03564

-0.07694

0.97694

0.38919

3

0.85947

-0.07176

1.02608

0.33047

1.03355

-0.07737

0.97464

0.39061

4

0.85915

-0.07182

1.02600

0.33047

1.03351

-0.07738

0.97461

0.39067

5

0.85915

-0.07182

1.02600

0.33047

1.03351

-0.07738

0.97461

0.39067

1NR算法程序的輸出結果

迭代次數

Θ1

V1

Θ2

V2

Θ3

V3

Θ4

1

-0.09455

0.89507

0.30580

1.07779

-0.07995

1.03793

0.38080

2

-0.08227

0.87158

030728

1.07857

-0.07405

1.03743

0.37652

3

-0.08239

0.86512

0.31048

1.07813

-0.07448

1.03673

0.38010

4

-0.08316

0.86309

0.31117

1.07798

-0.07468

1.03652

0.38079

5

-0.08332

0.86244

0.31152

1.07794

-0.07471

1.03644

0.38115

6

-0.08339

0.86222

0.31162

1.07792

-0.07473

1.03642

0.38126

7

-0.08341

0.86215

0.31166

1.07791

-0.07473

1.03741

0.38129

8

-0.08342

0.86213

0.31167

1.07791

-0.07474

1.03740

0.38131

9

-0.08342

0.86212

0.31167

1.07791

-0.07474

1.03740

0.38131

10

-0.08342

0.86212

0.31168

1.07791

-0.07474

1.03741

0.38131

2PQ算法程序的輸出結果

算法

IEEE05

迭代次數

IEEE14

迭代次數

IEEE30

迭代次數

IEEE05

運行時(shí)間

IEEE14

運行時(shí)間

IEEE30

運行時(shí)間

NR法

5

5

5

0.100000s

0.291000s

0.911000s

PQ法

5

34

46

0.171000s

0.751000s

2.654000s


3:兩種算法

由表1和表2的比較可以看出,無(wú)論NR法還是PQ法得到的計算結果一致。另外使用IEEE14和IEEE30的算例繼續用這兩種算法程序計算,匯總結果可得到如下結論(如表3):

對于相同的收斂條件,PQ法比NR法計算時(shí)所需要的迭代次數隨著(zhù)復雜度的增加而增加,相應的運行時(shí)間也較長(cháng);但對于迭代一次所需的時(shí)間,PQ法要比NR法少很多。另外對于不同的收斂條件繼續使用NR算法程序和PQ算法程序計算,根據試驗數據可繪制斂代特性比較圖大致如圖4所示,以A點(diǎn)為界,在A(yíng)點(diǎn)之左,PQ法比NR法收斂的快,而在A(yíng)點(diǎn)之右,NR法比PQ法收斂的快。

5.結論

綜上可見(jiàn),偏重于滿(mǎn)足數據精度要求時(shí),可采用NR算法來(lái)計算網(wǎng)絡(luò )潮流的分布情況,而偏重于滿(mǎn)足計算速度要求時(shí)應當選擇PQ法,這就是PQ法也應用于電力網(wǎng)絡(luò )潮流在線(xiàn)計算的原因之一。本文通過(guò)C++平臺分別用NR法和PQ法對算例一進(jìn)行了,有力論證了上述結論,有一定的實(shí)際應用價(jià)值。

參考文獻

[1] 王錫凡.現代電力系統.北京:科學(xué)出版社,2003.

[2] C++ STL中文版. P. J. Plauger ... [等] 著(zhù) 王昕譯.北京-中國電力出版社 2002.5.

[3] 郭志忠, 柳 卓. 兩種潮流算法的比較研究. 中國電機工程學(xué)報, 1987,7 (6) :78-82.

[4] 陳穎,沈沉,梅生偉,盧強.改進(jìn)Jacobian-Free Newton-GMRES(m)的電力系統分布式潮流計算. 電力系統自動(dòng)化, 2006,(09) .

[5] Micheli G D, Newton A R, Sangiovanni-Vincentelli A L. Symmetric Displacement Algorithm for the Timing Analysis of MO S VL S I Circuits. IEEE Trans. CAD, 1983, 2: 167-180.

dc相關(guān)文章:dc是什么


c++相關(guān)文章:c++教程


汽車(chē)防盜機相關(guān)文章:汽車(chē)防盜機原理


關(guān)鍵詞: 分析 比較 P-Q 計算 電力 潮流 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>