1. 程式人生 > >完成了一個潮流計算程式

完成了一個潮流計算程式

 用C++實現了一個潮流計算程式,是高斯-塞得爾潮流計算

使用了boost,STL庫,

從檔案中讀入原始資料,格式為THFormat

在程式中實現了個元件類從檔案中讀取自動生成的方法,設計時模仿了MFC中得Runtime_class的巨集,定義了兩個巨集,一個巨集用於在類的定義中(h),展開後是一個靜態常量(int型)宣告,兩個巨集用於在類的實現中,展開後是那個靜態常量的定義主要完成向BuildManager註冊元件類的識別符號和函式指標(該函式完成從字串構造出元件類例項的功能),類似於委託機制.節點導納矩陣,採用十字連結串列,每行的頭,儲存該節點對地的導納.對於節點(PQ節點,PV節點和平衡節點),我使用狀態模式(NodeStates)實現不同行為時,產生狀態的轉換

這樣做的好處就是,新增元件類,只需使用巨集,就可以完成物件的建立.無需使用switch語句判斷需要建立那個物件類.使用boost類庫中的ptr_vector,好處就不在這兒說了

在THFormat格式中,之間將GenerCV的P轉化成了標識值,

使用高斯-塞得爾潮流計算,設定epsilon=0.000001時,計算結果和實驗資料的res計算結果吻合(各節點電壓的小數點後四位相同),迭代次數38次

對於節點電壓迭代公式中的Pi-jQi要注意是注入系統功率的Pi+jQi的共扼複數,對於PV節點要注意電壓大小不變,相交變