




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上看大家在人人上發了各種電力系統作業,剛編完我也來得瑟一下吧,基本上可以解決開式單直網絡和樹狀網絡的計算。樹狀網絡計算時要自己先設定好支路的起始節點和終止節點標號以及計算順序,本來想做一個樹狀圖的的深度遍歷來進行自動排序,不過從網上找到一個深度遍歷代碼太長,在此就偷個懶把順序自己輸進去了。測試后3-4,3-3,以及例3-2答案基本正確。另外fun3是不加入橫向電壓分量計算的函數,在例3-2計算用的是這個函數。另外就是迭代終止條件的問題上我只是設定固定迭代次數為3,也可以用精度來限定,大致就是如此吧。請大家多多指教了。源代碼:#include #include #incl
2、ude #include using namespace std; struct node/節點類 int i;/節點編號 double U,P,Q,delta;/額定電壓 計算負荷 電壓相角 ; struct line/線路類 連接父節點子節點 node f_node,s_node;/父節點 子節點 double R,X,B;/線路參數R X B/2 double P_in,Q_in,P_out,Q_out,d_P,d_Q,D_U,d_U;/線路輸入輸出功率以及線路消耗功率 void Set_node(node nod1,node nod2) f_node=nod1; s_node=nod2
3、; ; void fun1(line &lin)/由后往前遞推功率 double p=lin.P_out; double q=lin.Q_out; double u=lin.s_node.U; lin.d_P=(p*p+q*q)/u/u*lin.R; lin.d_Q=(p*p+q*q)/u/u*lin.X; lin.P_in=lin.d_P+lin.P_out; lin.Q_in=lin.d_Q+lin.Q_out; ; void fun2(line &lin)/由前往后推電壓 double p=lin.P_in; double q=lin.Q_in; double u=lin.f_node.
4、U; lin.D_U=(p*lin.R+q*lin.X)/u; lin.d_U=(p*lin.X-q*lin.R)/u; lin.s_node.U=sqrt(pow(lin.f_node.U-lin.D_U,2)+pow(lin.d_U,2);/子節點電壓 lin.s_node.delta=lin.f_node.delta-atan(lin.d_U/(lin.f_node.U-lin.D_U); ; void fun3(line &lin)/由前往后推電壓不計橫向分量 double p=lin.P_in; double q=lin.Q_in; double u=lin.f_node.U; li
5、n.D_U=(p*lin.R+q*lin.X)/u; lin.d_U=(p*lin.X-q*lin.R)/u; lin.s_node.U=lin.f_node.U-lin.D_U,2;/子節點電壓 lin.s_node.delta=lin.f_node.delta-atan(lin.d_U/(lin.f_node.U-lin.D_U); ; void main() int num_l; int num_n;/支路數 節點數 ifstream fin; fin.open(E:data.txt); finnum_nnum_l;/輸入節點數支路數 ofstream fout; fout.open(E
6、:databak.txt); node *nod; nod=new nodenum_n;/節點數目 line *lin; lin=new linenum_l;/線路數目 nod0.delta=0; double *u;/節點額定電壓 u=new doublenum_n; for(int i=0;iui; ; double *p;/節點有功功率 p=new doublenum_n; for(int i=0;ipi; ; double *q;/節點無功功率 q=new doublenum_n; for(int i=0;iqi; ; for(int i=0;inum_n;i+)/設定節點標號 參數
7、nodi.i=i; nodi.P=pi; nodi.Q=qi; nodi.U=ui; ; double *r;/線路電阻 r=new doublenum_l; for(int i=0;iri; ; double *x;/線路電抗 x=new doublenum_l; for(int i=0;ixi; ; double *b;/線路電納 b=new doublenum_l; for(int i=0;ibi; ; for(int i=0;inum_l;i+)/設定線路參數 lini.R=ri; lini.X=xi; lini.B=bi; ; for(int i=0;ilini.f_node.i;
8、finlini.s_node.i; ; for(int i=0;inum_l;i+)/計算節點運算負荷 nodlini.f_node.i.Q-=lini.B*nodlini.f_node.i.U*nodlini.f_node.i.U; nodlini.s_node.i.Q-=lini.B*nodlini.s_node.i.U*nodlini.s_node.i.U; ; double *P_c,*Q_c;/保存運算負荷數據 P_c=new doublenum_n; Q_c=new doublenum_n; for(int tc=0;tcnum_n;tc+) P_ctc=nodtc.P; Q_ct
9、c=nodtc.Q; ; for(int i=0;inum_l;i+)/設定線路節點數據 lini.Set_node(nodlini.f_node.i,nodlini.s_node.i); ; for(int re=0;re3;re+)/迭代運算開始 fout第re+1次迭代endl; double to_P(0),to_dP(0); for(int i=1;inum_n;i+) to_P+=nodi.P; ; for(int tc=0;tcnum_n;tc+)/重置運算負荷 nodtc.P=P_ctc; nodtc.Q=Q_ctc; ; for(int ts=0;tsnum_l;ts+)/置
10、各線路初始輸出功率為子節點運算負荷 lints.P_out=lints.s_node.P; lints.Q_out=lints.s_node.Q; ; for(int i=0;i0;j-) fun1(linj); nodlinj.f_node.i.P+=linj.P_in; nodlinj.f_node.i.Q+=linj.Q_in; for(int i=0;inum_l;i+)/設定線路節點數據 lini.Set_node(nodlini.f_node.i,nodlini.s_node.i); ; for(int ts=0;tsnum_l;ts+) lints.P_out=lints.s_n
11、ode.P; lints.Q_out=lints.s_node.Q; ; ; fun1(linj); for(int i=0;inum_l;i+)/設定線路節點數據 lini.Set_node(nodlini.f_node.i,nodlini.s_node.i); ; int t=0;/求線路各點電壓 for(t=0;tnum_l-1;t+) fun2(lint); nodlint.s_node.i.U=lint.s_node.U; nodlint.s_node.i.delta=lint.s_node.delta; for(int i=0;inum_l;i+)/設定線路節點數據 lini.Se
12、t_node(nodlini.f_node.i,nodlini.s_node.i); ; ; fun2(lint); nodlint.s_node.i.U=lint.s_node.U; nodlint.s_node.i.delta=lint.s_node.delta; fout支路信息:endl; for(int i=0;inum_l;i+)/輸出線路信息 fout支路lini.f_node.i+1-lini.s_node.i+1:endl; fout始端功率:lini.P_in+jlini.Q_inendl; fout末端功率:lini.P_out+jlini.Q_outendl; fout
13、功率損耗:lini.d_P+jlini.d_Qendl; fout電壓損耗lini.f_node.U-lini.s_node.Uendl; ; fout節點信息:endl; for(int i=0;inum_n;i+)/輸出節點信息 fout節點i+1endl; fout電壓:nodi.U相角:nodi.delta*180/3.14endl; ; double *lu;/求最低電壓及最低電壓點 lu=new doublenum_n; int *lua; lua=new intnum_n; for(int i=0;inum_n;i+) lui=nodi.U; luai=i; ; for(int
14、i=0;inum_n-1;i+) if(luilui+1) double st; int a; st=lui; a=luai; lui=lui+1; luai=luai+1; lui+1=st; luai+1=a; ; ; for(int i=0;inum_l;i+) to_dP+=lini.d_P; ; fout全網信息:endl; fout總電源有功:lin0.P_inendl; fout總負荷有功:to_Pendl; fout總有功損耗:to_dPendl; fout網損率:to_dP/(to_P+lin0.P_in)endl; fout最低電壓:lunum_n-1最低電壓點:luanu
15、m_n-1+1endl; deletelu; deletelua; ; deletenod; deletelin; deleteu; deletep; deleteq; deleter; deletex; deleteb; 附:3-4的data文件3 2 113 110 100 0 0.17 20 0 1.7 15 8.5 1.22 20.5 20.2 0. 0 0 1 1 2輸出為:第1次迭代 支路信息: 支路1-2: 始端功率:1.02165+j0. 末端功率:1.00434+j0. 功率損耗:0.+j0. 電壓損耗0. 支路2-3: 始端功率:0.5034+j0.3068 末端功率:0.
16、5+j0.3 功率損耗:0.0034+j0.0068 電壓損耗0.109 支路2-4: 始端功率:0.+j0. 末端功率:0.2+j0.15 功率損耗:0.+j0. 電壓損耗0. 節點信息: 節點1 電壓:10.5相角:0 節點2 電壓:10.2259相角:-0. 節點3 電壓:10.1169相角:-1.25281 節點4 電壓:10.152相角:-1.072 全網信息: 總電源有功:1.02165 總負荷有功:1 總有功損耗:0. 網損率:0. 最低電壓:10.1169最低電壓點:3 第2次迭代 支路信息: 支路1-2: 始端功率:1.02078+j0.69156 末端功率:1.00423+
17、j0. 功率損耗:0.+j0. 電壓損耗0. 支路2-3: 始端功率:0.+j0. 末端功率:0.5+j0.3 功率損耗:0.+j0. 電壓損耗0. 支路2-4: 始端功率:0.20091+j0. 末端功率:0.2+j0.15 功率損耗:0.+j0. 電壓損耗0. 節點信息: 節點1 電壓:10.5相角:0 節點2 電壓:10.2264相角:-0.86489 節點3 電壓:10.1175相角:-1.25273 節點4 電壓:10.1525相角:-1.07194 全網信息: 總電源有功:1.02078 總負荷有功:1.70434 總有功損耗:0. 網損率:0. 最低電壓:10.1175最低電壓點
18、:3 第3次迭代 支路信息: 支路1-2: 始端功率:1.02078+j0. 末端功率:1.00423+j0. 功率損耗:0.+j0. 電壓損耗0. 支路2-3: 始端功率:0.+j0. 末端功率:0.5+j0.3 功率損耗:0.+j0. 電壓損耗0. 支路2-4: 始端功率:0.20091+j0. 末端功率:0.2+j0.15 功率損耗:0.+j0. 電壓損耗0. 節點信息: 節點1 電壓:10.5相角:0 節點2 電壓:10.2264相角:-0.86489 節點3 電壓:10.1175相角:-1.25273 節點4 電壓:10.1525相角:-1.07194 全網信息: 總電源有功:1.0
19、2078 總負荷有功:1.70423 總有功損耗:0. 網損率:0. 最低電壓:10.1175最低電壓點:3例3-2的data:4 3 10.5 10 10 10 0 0.3 0.5 0.2 0 0.2 0.3 0.15 1.2 1 1.5 2.4 2 3 0 0 0 0 1 1 2 1 3輸出:第1次迭代支路信息:支路1-2:始端功率:1.02165+j0.末端功率:1.00434+j0.功率損耗:0.+j0.電壓損耗0.支路2-3:始端功率:0.5034+j0.3068末端功率:0.5+j0.3功率損耗:0.0034+j0.0068電壓損耗0.支路2-4:始端功率:0.+j0.末端功率:0.2+j0.15功率損耗:0.+j0.電壓損耗0.節點信息:節點1電壓:10.5相角:0節點2電壓:10.2248相角:-0.節點3電壓:10.1155相角:-1.2529節點4電壓:10.1507相角:-1.07205全網信息:總電源有功:1.02165總負荷有功:1總有功損耗:0.網損率:0.最低電壓:10.1155最低電壓點:3第2次迭代支路信息:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分居協議書模板
- 合伙股權轉讓合同范本
- 授權代理書合同范本
- 2025年大學輔導員選拔:學生職業生涯規劃指導就業趨勢分析與試題
- 鮮貨運輸合同范本
- 2025年小學英語畢業考試模擬試卷:英語歌曲與童謠教學在小學英語教學中的情感教育功能
- 2025年小學英語畢業考試模擬試卷:英語寫作思路拓展與作文評分標準試題
- 2025年成人高考《語文》現代文閱讀技巧易錯點剖析試卷
- 2025年醫保知識考試題庫及答案:醫保目錄解讀與醫療保險改革案例分析試題
- 2025年小學英語畢業考試模擬試卷:英語短劇表演腳本劇本構思與劇情發展
- 2024年中華人民共和國企業所得稅年度納稅申報表(帶公式)20240301更新
- 2024年遂寧市中考物理真題試卷(含答案解析)
- 商業綜合體物業管理服務標準
- 湖北省武漢市武昌區七校2023-2024學年九年級下學期期中數學試題
- 特種設備使用管理新版規則
- 集中供熱老舊管網改造工程施工方案及技術措施
- 軍事科技現狀及未來發展趨勢分析
- 人教版數學五年級下冊分數比較大小練習100題及答案
- DB21-T 3031-2018北方寒區閘壩混凝土病害診斷、修補與防護技術規程
- JJF(新) 116-2023 微機鹽含量測定儀校準規范
- 創傷性硬膜下出血的健康教育
評論
0/150
提交評論