2022年短路电流计算 .pdf

上传人:Q****o 文档编号:30522822 上传时间:2022-08-06 格式:PDF 页数:11 大小:69.60KB
返回 下载 相关 举报
2022年短路电流计算 .pdf_第1页
第1页 / 共11页
2022年短路电流计算 .pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《2022年短路电流计算 .pdf》由会员分享,可在线阅读,更多相关《2022年短路电流计算 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、题目 : 三相短路电流计算初始条件:如图所示电力系统,最大运行方式时,两个电源同时送电,变压器并联运行,忽略线路电阻,线路电抗0.4?/km。计算 k1 和 k2 点在最大运行方式时的三相短路电流。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 写出三相短路电流的计算方法;2. 用 C 或 FORTRAN 语言实现三相短路电流的计算程序;3. 调试程序并求出计算结果;4. 撰写计算方法原理、计算流程文档及设计说明书;5. 提供计算程序代码。代码使用 C+ 编写的,共有三个文件,请建立工程,一起编译。这是Plural.hpp #ifndef PLURAL_

2、HPP #define PLURAL_HPP / 类名称: Plural / 方法: GetR,GetI,SetRI,SetR,SetI / 数据: m_pluralR,m_pluralI class 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_plura

3、lR; float m_pluralI; ; / 名称 : 复数乘法, PluralMul(Plural plural1, Plural plural2) / 参数:复数plural1 plural2 / 返回值:复数Plural PluralMul(Plural plural1, Plural plural2); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - / 函数名:复数除法,运算浮点数除以复数/ 参数: num ,分

4、子,是一个浮点数。den ,分母,是一个复数/ 返回值:结果的复数Plural PluralDiv(float num, Plural den); / 函数名:复数求倒数/ 参数: den ,分母,是一个复数/ 返回值:此复数的倒数Plural PluralDiv(Plural plu); / 参数: mat 为待变换的复数矩阵的数组名,n 为阶数/ 返回值:无/ 说明 :变换后的结果依旧保存在mat 中void MatrixInv(Plural *mat, int n); #endif #include plural.hpp #include #include #include / 类名称:

5、 Plural / 方法: GetR,GetI,SetRI,SetR,SetI / 数据: m_pluralR,m_pluralI Plural:Plural() m_pluralR = 0; m_pluralI = 0; Plural:Plural(float pR, float pI) m_pluralR = pR; m_pluralI = pI; Plural:Plural() float Plural:GetR() const 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第

6、2 页,共 11 页 - - - - - - - - - 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; / 名称 : 复数乘法, PluralMul(Plural plural1, Plural plural2

7、) / 参数:复数plural1 plural2 / 返回值:复数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; / 函数名:复数除法,运算浮点数除以复数/ 参数: num ,分子,是一个浮点数。d

8、en ,分母,是一个复数/ 返回值:结果的复数Plural PluralDiv(float num, Plural den) Plural result; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - float k; k = den.GetR() * den.GetR() + den.GetI() * den.GetI(); result.SetR(num*den.GetR()/k); result.SetI(-1.0*n

9、um*den.GetI()/k); return result; / 函数名:复数求倒数/ 参数: den ,分母,是一个复数/ 返回值:此复数的倒数Plural PluralDiv(Plural plu) Plural result; float k; k = plu.GetR() * plu.GetR() + plu.GetI() * plu.GetI(); result.SetR(plu.GetR()/k); result.SetI(-1.0*plu.GetI()/k); return result; / 说明:以下3 个函数组合用来求复数矩阵的逆。double *inv(double

10、*A,double *Ainv,int n); void mulAB(double *A,double *B,double *C,int am,int an,int bm,int bn); / 参数: mat 为待变换的复数矩阵的数组名,n 为阶数/ 返回值:无/ 说明 :变换后的结果依旧保存在mat 中void MatrixInv(Plural *mat, int n); / 矩阵求逆。 A 为原矩阵, Ainv 为求逆之后矩阵,n 为阶数double *inv(double *A, double *Ainv, int n) int *is, *js, i, j, k, l, u, v; d

11、ouble 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+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - d=0.0; for (i=k; i=n-1; i+) for (j=k; jd) d = p; isk

12、 = 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 = p; l = k * n + k; Ainvl = 1.0 /

13、Ainvl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 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 * Ainv

14、k*n+j; for (i=0; i=0; k-) if (jsk!=k) for (j=0; j=n-1; j+) u = k*n+j; v = jsk * 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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -

15、- - - 第 6 页,共 11 页 - - - - - - - - - free(is); free(js); return Ainv; / 参数: a 为原矩阵, b 为逆矩阵, c 为结果。其他在此都为n void mulAB(double *a, double *b, double *c, int am, int an, int bm, int bn) int i, j, l, u; if (an != bm) printf(不能完成原矩阵和其逆矩阵矩阵相乘n); return; for (i=0; iam; i+) for (j=0; jbn; j+) u=i*bn+j; cu=0.

16、0; for (l=0; lan; l+) cu=cu+ai*an+l*bl*bn+j; return; / 复数矩阵求逆。参数:mat 为待求矩阵, n 为阶数void MatrixInv(Plural *mat,int n) int i, j; double pluralRnn, pluralInn; double *a = NULL, *b = NULL, *c = NULL; double *resultR = NULL, *resultI = NULL; Plural resultnn; for (i=0; in; i+) for(j=0; jn; j+) pluralRij = m

17、ati*n+j.GetR(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 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*size

18、of(double); b = (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, resul

19、tI=NULL ? 0:resultIi*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); / 测试所求实部逆矩阵名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - -

20、- / mulAB(*pluralR,a,c,n,n,n,n); / printf(nn求逆后原实部和现在的实部乘积是n); / for(i=0;in;i+) / / for(j=0;jn;j+) / printf(%10.4ft, ci*n+j); / printf(n); / / 测试用所求逆矩阵/ mulAB(*pluralI,b,c,n,n,n,n); / printf(nn求逆之后原虚部和现在的虚部乘积是:n); / for (i=0; in; i+) / / for (j=0; jn; j+) / printf(%10.4ft, -1.0*ci*n+j); / printf(n);

21、 / 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); free(c); #include #include plural.hpp /#include input.hpp using namespace std; void NodInit() float g1S, g1X, g2S, g2X, l1L, l1D, l2L, l2D, t1S, t1U, t2S, t2U; c

22、out 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 t2U; int main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

23、- 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - NodInit(); Plural matrix233; matrix200.SetRI(0,1);matrix201.SetRI(0,2);matrix210.SetRI(0,1);matrix211.SetRI(0,1); matrix202.SetRI(0,2);matrix212.SetRI(0,1);matrix220.SetRI(0,3);matrix221.SetRI(0,2);matrix222.SetRI(0,1); MatrixInv(*matrix2,3); pr

24、intf(n1点短路电流是 n); printf(%f + j%f,PluralDiv(matrix200).GetR(), PluralDiv(matrix200).GetI(); printf(n2点短路电流是 n); printf(%f + j%f,PluralDiv(matrix211).GetR(), PluralDiv(matrix211).GetI(); printf(n3点短路电流是 n); printf(%f + j%f,PluralDiv(matrix211).GetR(), PluralDiv(matrix211).GetI(); getchar(); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁