![C語言編寫短路電流計算的程序Word版_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/6e2b7176-2e41-4ad5-adc1-1486ca405419/6e2b7176-2e41-4ad5-adc1-1486ca4054191.gif)
![C語言編寫短路電流計算的程序Word版_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/6e2b7176-2e41-4ad5-adc1-1486ca405419/6e2b7176-2e41-4ad5-adc1-1486ca4054192.gif)
![C語言編寫短路電流計算的程序Word版_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/6e2b7176-2e41-4ad5-adc1-1486ca405419/6e2b7176-2e41-4ad5-adc1-1486ca4054193.gif)
![C語言編寫短路電流計算的程序Word版_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/6e2b7176-2e41-4ad5-adc1-1486ca405419/6e2b7176-2e41-4ad5-adc1-1486ca4054194.gif)
![C語言編寫短路電流計算的程序Word版_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/6e2b7176-2e41-4ad5-adc1-1486ca405419/6e2b7176-2e41-4ad5-adc1-1486ca4054195.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、初始條件:如圖所示電力系統(tǒng),最大運行方式時,兩個電源同時送電,變壓器并聯(lián)運行,忽略線路電阻,線路電抗0.4/km。計算k1和k2點在最大運行方式時的三相短路電流。要求完成的主要任務(wù): (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)1.寫出三相短路電流的計算方法;2.用C或FORTRAN語言實現(xiàn)三相短路電流的計算程序;3.調(diào)試程序并求出計算結(jié)果;4.撰寫計算方法原理、計算流程文檔及設(shè)計說明書;5.提供計算程序代碼。 代碼使用C+編寫的,共有三個文件,請建立工程,一起編譯。這是Plural.hpp#ifndef PLURAL_HPP#define PLURAL_HPP/類名稱:Plu
2、ral/方法:GetR,GetI,SetRI,SetR,SetI/數(shù)據(jù):m_pluralR,m_pluralIclass Plural public: Plural(); Plural(float pR, float pI); Plural(); float GetR() const; float GetI() const; void SetRI(float pR, float pI); void SetR(float pR); void SetI(float pI); private: float m_pluralR; float m_pluralI;/名稱: 復數(shù)乘法,PluralMul(
3、Plural plural1, Plural plural2)/參數(shù):復數(shù)plural1 plural2/返回值:復數(shù)Plural PluralMul(Plural plural1, Plural plural2);2 / 12/函數(shù)名:復數(shù)除法,運算浮點數(shù)除以復數(shù)/參數(shù):num,分子,是一個浮點數(shù)。den,分母,是一個復數(shù)/返回值:結(jié)果的復數(shù)Plural PluralDiv(float num, Plural den);/函數(shù)名:復數(shù)求倒數(shù)/參數(shù):den,分母,是一個復數(shù)/返回值:此復數(shù)的倒數(shù)Plural PluralDiv(Plural plu);/參數(shù):mat為待變換的復數(shù)矩陣的數(shù)組名,
4、n為階數(shù)/返回值:無/說明 :變換后的結(jié)果依舊保存在mat中void MatrixInv(Plural *mat, int n);#endif#include plural.hpp#include #include #include /類名稱:Plural/方法:GetR,GetI,SetRI,SetR,SetI/數(shù)據(jù):m_pluralR,m_pluralIPlural:Plural() m_pluralR = 0; m_pluralI = 0;Plural:Plural(float pR, float pI) m_pluralR = pR; m_pluralI = pI; Plural:Pl
5、ural()float Plural:GetR() const return m_pluralR;float Plural:GetI() const return m_pluralI;void Plural:SetRI(float pR, float pI) m_pluralR = pR; m_pluralI = pI;void Plural:SetR(float pR) m_pluralR = pR;void Plural:SetI(float pI) m_pluralI = pI;/名稱: 復數(shù)乘法,PluralMul(Plural plural1, Plural plural2)/參數(shù):
6、復數(shù)plural1 plural2/返回值:復數(shù)Plural PluralMul(Plural plural1, Plural plural2) Plural result; result.SetRI(plural1.GetR() * plural2.GetR() - plural1.GetI() * plural2.GetI(),plural1.GetR() * plural2.GetI() + plural1.GetI() * plural2.GetR(); return result;/函數(shù)名:復數(shù)除法,運算浮點數(shù)除以復數(shù)/參數(shù):num,分子,是一個浮點數(shù)。den,分母,是一個復數(shù)/返回
7、值:結(jié)果的復數(shù)Plural PluralDiv(float num, Plural den) Plural result; float k; k = den.GetR() * den.GetR() + den.GetI() * den.GetI(); result.SetR(num*den.GetR()/k); result.SetI(-1.0*num*den.GetI()/k); return result;/函數(shù)名:復數(shù)求倒數(shù)/參數(shù):den,分母,是一個復數(shù)/返回值:此復數(shù)的倒數(shù)Plural PluralDiv(Plural plu) Plural result; float k; k =
8、 plu.GetR() * plu.GetR() + plu.GetI() * plu.GetI(); result.SetR(plu.GetR()/k); result.SetI(-1.0*plu.GetI()/k); return result;/說明:以下3個函數(shù)組合用來求復數(shù)矩陣的逆。double *inv(double *A,double *Ainv,int n);void mulAB(double *A,double *B,double *C,int am,int an,int bm,int bn);/參數(shù):mat為待變換的復數(shù)矩陣的數(shù)組名,n為階數(shù)/返回值:無/說明 :變換后的結(jié)
9、果依舊保存在mat中void MatrixInv(Plural *mat, int n);/矩陣求逆。A為原矩陣,Ainv為求逆之后矩陣,n為階數(shù)double *inv(double *A, double *Ainv, int n)int *is, *js, i, j, k, l, u, v;double d, p;for (i=0; in*n; i+)*(Ainv+i) = *(A+i);is = (int*)malloc(n*sizeof(int);js = (int*)malloc(n*sizeof(int);for (k=0; k=n-1; k+) d=0.0; for (i=k; i
10、=n-1; i+) for (j=k; jd) d = p; isk = i; jsk = j; if (d + 1.0 = 1.0) free(is); free(js); return NULL; if (isk != k) for (j=0; j=n-1; j+) u = k*n+j; v = isk * n + j; p = Ainvu; Ainvu = Ainvv; Ainvv = p; if (jsk != k) for (i=0; i=n-1; i+) u = i * n + k; v = i * n + jsk; p = Ainvu; Ainvu = Ainvv; Ainvv
11、= p; l = k * n + k; Ainvl = 1.0 / Ainvl; for (j=0; j=n-1; j+) if (j != k) u = k * n + j; Ainvu = Ainvu * Ainvl; for (i=0; i=n-1; i+) if (i != k) for (j=0; j=n-1; j+) if (j != k) u = i * n + j; Ainvu = Ainvu - Ainvi*n+k * Ainvk*n+j; for (i=0; i=0; k-) if (jsk!=k) for (j=0; j=n-1; j+) u = k*n+j; v = j
12、sk * n + j; p = Ainvu; Ainvu = Ainvv; Ainvv = p; if (isk != k) for (i=0; i=n-1; i+) u = i * n + k; v = i * n + isk; p = Ainvu; Ainvu = Ainvv; Ainvv = p; free(is);free(js);return Ainv;/參數(shù):a為原矩陣,b為逆矩陣,c為結(jié)果。其他在此都為nvoid mulAB(double *a, double *b, double *c, int am, int an, int bm, int bn)int i, j, l, u
13、;if (an != bm) printf(不能完成原矩陣和其逆矩陣矩陣相乘n); return;for (i=0; iam; i+)for (j=0; jbn; j+) u=i*bn+j; cu=0.0; for (l=0; lan; l+) cu=cu+ai*an+l*bl*bn+j;return;/復數(shù)矩陣求逆。參數(shù):mat為待求矩陣,n為階數(shù)void MatrixInv(Plural *mat,int n) int i, j; double pluralRnn, pluralInn; double *a = NULL, *b = NULL, *c = NULL; double *res
14、ultR = NULL, *resultI = NULL; Plural resultnn; for (i=0; in; i+) for(j=0; jn; j+) pluralRij = mati*n+j.GetR(); pluralIij = mati*n+j.GetI(); printf(原始矩陣為:n); for(i=0;in;i+) for(j=0;jn;j+) printf(%10.4f + j%0.4ft, (*pluralR)i*n+j,(*pluralI)i*n+j); printf(n); a = (double*)malloc(n*n*sizeof(double); b =
15、 (double*)malloc(n*n*sizeof(double); c = (double*)malloc(n*n*sizeof(double); resultR = inv(*pluralR,a,n); resultI = inv(*pluralI,b,n); if (resultI != NULL) printf(n求逆之后虛部是:n); if (n%2 = 0) for (i=0; in; i+) for (j=0; jn; j+) printf(%10.4f + j%0.4ft, resultR=NULL? 0:resultRi*n+j, resultI=NULL ? 0:res
16、ultIi*n+j); printf(n); else for (i=0; in; i+) for (j=0; jn; j+) printf(%10.4f + j%0.4ft, resultR=NULL? 0:resultRi*n+j, resultI=NULL ? 0:-1.0*resultIi*n+j); printf(n); / 測試所求實部逆矩陣/ mulAB(*pluralR,a,c,n,n,n,n);/ printf(nn求逆后原實部和現(xiàn)在的實部乘積是n);/ for(i=0;in;i+)/ / for(j=0;jn;j+)/ printf(%10.4ft, ci*n+j);/ p
17、rintf(n);/ / 測試用所求逆矩陣/ mulAB(*pluralI,b,c,n,n,n,n);/ printf(nn求逆之后原虛部和現(xiàn)在的虛部乘積是:n);/ for (i=0; in; i+)/ / for (j=0; jn; j+)/ printf(%10.4ft, -1.0*ci*n+j);/ printf(n);/ for (i=0; in; i+) for (j=0; jn; j+) mati*n+j.SetRI(resultR = NULL ? 0:resultRi*n+j, resultI = NULL ? 0:resultIi*n+j); free(a); free(b
18、); free(c); #include #include plural.hpp/#include input.hppusing namespace std;void NodInit() float g1S, g1X, g2S, g2X, l1L, l1D, l2L, l2D, t1S, t1U, t2S, t2U; cout g1S; cout g1X; cout endl * endl endl; cout g2S; cout g2X; cout endl * endl endl; cout l1L; cout l1D; cout endl * endl endl; cout l2L; cout l2D; cout endl * endl endl; cout t1S; cout t1U; cout endl * endl endl; cout t2S; cout t2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)兩間門面租賃合同
- 單位向私人借款合同書
- 國際空運運輸代理合同
- 風險管理與應對策略制定作業(yè)指導書
- 2025年泰安考從業(yè)資格證貨運試題
- 小學三年級,五年級下冊數(shù)學口算題比賽試卷
- 小學二年級數(shù)學萬以內(nèi)口算題
- 2025年北京交通運輸從業(yè)資格證怎樣考試
- 2025年西藏貨運從業(yè)資格證模擬考試系統(tǒng)
- 2025年烏蘭察布下載貨運從業(yè)資格證模擬考試題
- 2024年同等學力人員申請碩士學位英語試卷與參考答案
- 臨床用血管理培訓
- 介入手術(shù)室護理風險
- 小學一年級數(shù)學20以內(nèi)的口算題(可直接打印A4)
- 春季安全行車教育培訓
- 2024年6月第3套英語六級真題
- 2024年江蘇省公務(wù)員錄用考試《行測》題(A類)
- 2024年10月時政100題(附答案)
- 江蘇省無錫市2024年中考數(shù)學試卷(含答案)
- 2024年保密知識測試試題及答案(奪冠)
- 北師大版八年級下冊因式分解(分組分解法)100題及答案
評論
0/150
提交評論