牛頓 拉夫遜法潮流計算總體設計

2023-02-10 05:18:05 字數 2371 閱讀 6682

1 程式介面

輸入檔案包括五個測試檔案,分別為 具體格式說明見第4節)。 每個算例的程式輸出檔案為計算結果.xls,導納矩陣.txt,迭代結果.txt。

2 設計語言

採用c++語言,模組化程式設計,可以方便安全的實現函式呼叫功能.。

3 設計思路

源程式包括以下檔案:

標頭檔案主要完成匯入程式執行所用的各檔案包,對各種資料/結構體、類的定義。(對變數和類的說明參見程式中的注釋部分)。 各cpp檔案主要是對類的實現,包括子函式的實現和物件的使用。

牛頓-拉夫遜潮流計算的主流程如下圖所示:

下面就詳細說明各功能塊的實現

3.1 定義計算所用的系統變數

程式的具體實現由和完成。具體定義的系統變數如下表:

作為程式計算的全域性變數,在進行某一類潮流計算中這些變數成為公用變數。在進行計算時,減少了資料宣告的冗餘,也方便了對於統一引數的呼叫。

3.2 讀入原始資料資訊

程式具體實現由和完成。其中,完成這一功能的實體函式是creaddata類中的read (char *)函式,傳遞的形參為原始資料檔名。

由於原始資料檔案的特點,每一組資料的長度未知,所以先利用標準程式庫中的vector容器可以自動動態分配記憶體的特性,使用vector對原始資料檔案進行讀取,然後將讀入的資料賦值到相應的變數中。在程式中還對原始資料中沒有,但是進行計算時需要的資訊進行了計算,比如節點個數,節點電壓模值等。

3.3 節點優化編號

程式具體實現由和完成。

程式中實現了靜態優化編號、半動態優化編號和動態優化編號三種優化編號方式。三種節點優化方式分別由nodeoptimize類中staticoptimize()函式、halfdymoptimize()函式和dynamicoptimize()函式實現。具體優化演算法見《現代電力系統分析》32頁。

節點優化編號完成後,將一般支路的端點號、變壓器支路的端點號和節點編號進行調整,使原始的節點號更新為新的節點編號,並且將節點資訊陣列按照新的節點編號大小重新排列,即使其陣列下標和節點編號對應,方便在以後的計算中讀取節點資訊。這個功能是由nodeoptimize類中adjustnodeno()函式實現的。

3.4 形成導納矩陣

程式具體實現由和完成。

程式中實現了稀疏導納矩陣的形成,由ymatrix類中spareymatrix()函式實現。首先,將一般支路和變壓器支路的端點編號進行調整,將編號較小的端點統一作為一般支路和變壓器支路的出點,將編號較大的端點統一作為一般支路和變壓器支路的收點。在形成導納陣時,通過對支路(包括一般支路和接地支路)和變壓器支路節點出點和收點的遍歷,可以得到每行對應的非零元素的位置資訊,然後通過對支路型別的判斷,根據不同的支路按照不同方式計算導納,最後放到稀疏矩陣的相應的位置上去。

在程式中考慮了雙回線的影響。因為雙回線始終是排在相鄰的兩個支路,所以通過比較當前處理的支路和上一條處理的支路的端點號是否一致,就可以判斷出是否為雙回線。

形成導納陣之後,得到了導納陣的上三角非零元素,對角元素,上三角非零元素的行首位址和列號。

3.5 形成修正方程

程式具體實現由和完成。

在程式中對修正方程式採取了按節點邊形成邊消去的過程,在形成雅克比矩陣元素的同時積累常數項,減少了迭代過程中的運算量。這個功能主要是由jacobi類中formjacobi()和formfactortable(int)函式完成的。

因為在對雅克比矩陣進行消去形成因子表的過程中,會產生注入新的注入元,使得因子表的稀疏儲存結構和雅克比矩陣不一樣,所以在程式中預先計算出注入元的個數,位置。這個功能是由getnewinnum()函式完成的,在這個函式中還根據導納陣的儲存結構,消除掉平衡節點所對應的行和列,建立了雅克比矩陣的儲存結構。

3.6 進行潮流計算

程式具體實現由和實現。

powerflow類的getdelt**()函式對修正方程就行回代運算,得到了各節點電壓的修正量。然後,powerflow類的pflow()函式根據個節點功率誤差的情況和最大的迭代次數,進行迭代,最終計算出各節點的電壓幅值和相角。

3.7 列印輸出結果

程式具體實現由和實現。

利用計算出得節點電壓幅值和相角進行節點相關資料計算和支路相關資料計算,並且將結果輸出到輸出檔案中。這個功能由powerflow類的outputresult()函式實現。

4 輸入檔案說明

資料檔案儲存基本資訊包括:

1.控制資訊:

end方式名稱值為0,計算時採用直角座標形式;為1,則採用極座標形式。

2.線路資料和接地支路資料:

線路資料:

接地支路資料(兩端節點名相同):

end3.變壓器資料:

end4.發電機資料:

end 節點型別:0—平衡節點,1—pq節點,2—pv節點

5.負荷資料:

end 節點型別都為1—pq節點。

注:所有不同資料型別均以end作為資料結束的標誌。

牛頓拉夫遜法實驗報告及程式

實驗報告 實驗課程 電力系統分析 學生姓名 學號專業班級 電力系統班 2010年 6 月 14 日 南昌大學實驗報告 學生姓名學號專業班級 電力系統班 實驗型別 驗證 綜合 設計 創新實驗日期 2010.5.31 6.14 實驗成績 一 實驗專案名稱 電力系統潮流計算實驗 二 實驗目的 本實驗通過對...

牛頓法潮流程式報告

任課教師 杜正春 班級 碩822 學校 西安交通大學 姓名 張 目錄一 原始資料輸入格式1 第一部分 節點資料1 第二部分 支路資料2 第三部分 接地支路2 二 資料結構簡介2 bus 母線類2 branch 支路類2 yii 導納矩陣對角元素類3 yij 導納矩陣非對角元素類3 ground 接地...

1牛頓迭代法的簡介

1.1 牛頓迭代法的概述 牛頓迭代法 newton s method 又稱為牛頓 拉夫遜方法 newton raphson method 它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。多數方程不存在求根公式,因此求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。方...