电力系统分析课设短路电流计算C语言程序

合集下载

课程设计---电力系统短路故障的计算机算法程序设计

课程设计---电力系统短路故障的计算机算法程序设计

电力系统分析课程设计报告书题目:电力系统短路故障的计算机算法程序设计专业:电气工程及其自动化班级:学号:学生姓名:指导教师:2012年3 月11 日目录1目的与原理 (4)1.1 关于电力系统短路故障的计算机算法程序设计目的 (4)1.2 原理 (4)2总体设计 (6)2.1 程序设计说明 (6)2.2 选择计算机语言 (6)3程序设计 (9)3.1 流程图: (9)3.2 习题实例 (10)4总结 (18)参考文献 (19)1目的与原理1.1关于电力系统短路故障的计算机算法程序设计目的电力系统正常运行的破坏多半是由于短路故障引起的,发生短路时,系统从一种状态剧变成另一种状态,并伴随复杂的暂态现象。

所谓短路故障,是指一切不正常的相与相之间或相与地发生通路的情况。

根据所给的电力系统,编制短路电流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。

通过自己设计电力系统计算程序使同学对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。

1.2原理①计算机计算原理应用计算机进行电力系统计算,首先要掌握电力系统相应计算的数学模型;其次是运用合理的计算方法;第三则是选择合适的计算机语言编制计算程序。

建立电力系统计算的相关数学模型,就是建立用于描述电力系统相应计算的有关参数间的相互关系的数学方程式。

该数学模型的建立往往要突出问题的主要方面,即考虑影响问题的主要因素,而忽略一些次要因素,使数学模型既能正确地反映实际问题,又使计算不过于复杂。

运用合理的计算方法,就是要求所选用的计算方法能快速准确地得出正确结果,同时还应要求在解算过程中占用内存少,以利提高计算机的解题规模。

选择合适的语言编写程序,就是首先确定用什么计算机语言来编制程序;其次是作出计算的流程图;第三根据流程图用选择的语言编写计算程序。

然后上机调试,直到语法上无错误。

所编制的程序难免存在逻辑错误,因此先用一个已知结果的系统作为例题进行计算。

华中科技大学电力系统分析课程设计报告 基于matlab的短路电流计

华中科技大学电力系统分析课程设计报告 基于matlab的短路电流计

华中科技大学电力系统分析课程设计报告基于matlab的短路电流计2021-2021第二学期课程设计电力系统短路故障的计算机算法程序设计姓名学号班级指导教师张凤鸽1目录一、课程设计说明?????????????????3 二、选择所用计算机语言的理由???????????3 三、程序主框图、子框图及主要数据变量说明?????5 四、三道计算题及网络图?????????????9 五、设计体会???????????????????21 六、参考文献???????????????????22 七、附录(主程序及其注释)????????????232电分课设报告一、课程设计说明根据所给的电力系统,编制短路电流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。

通过自己设计电力系统短路计算的程序,加深对电力系统短路计算的理解,同时培养自己在计算机编程方面的能力,提示自我的综合素质。

短路电流(short-circuit current)电力系统在运行中,相与相之间或相与地(或中性线)之间发生非正常连接(即短路)时流过的电流。

其值可远远大于额定电流,并取决于短路点距电源的电气距离。

例如,在发电机端发生短路时,流过发电机的短路电流最大瞬时值可达额定电流的10~15倍。

大容量电力系统中,短路电流可达数万安。

这会对电力系统的正常运行造成严重影响和后果。

三相系统中发生的短路有 4 种基本类型:三相短路,两相短路,单相对地短路和两相对地短路。

其中三相短路虽然发生的机会较少,但情况严重,又是研究其它短路的基础。

所以我们先研究最简单的三相短路电流的暂态变化规律。

二、选择所用计算机语言的理由MATLAB是一套功能强大的工程计算软件,被广泛的应用于自动控制、机械设计、流体力学和数理统计等工程领域。

工程技术人员通过使用MATLAB提供的工具箱,可以高效的求解复杂的工程问题,并可以对系统进行动态的仿真,用强大的图形功能对数值计算结果进行显示。

电力系统潮流计算C语言程序及说明

电力系统潮流计算C语言程序及说明

程序的稳定性分析
程序在不同计算机上的运行 结果是否一致。
程序运行过程中,输入数据 的变化对输出结果的影响程 度。
程序在长时间运行过程中, 输出结果是否保持稳定。
程序在处理异常情况时的表 现和稳定性。
程序的扩展性分析
代码可读性:C语言程序应具备良好的可读性,方便后续维护和修改 算法效率:C语言程序应采用高效的算法,提高计算速度 内存占用:C语言程序应合理利用内存,避免内存泄漏和不必要的内存占用 扩展性:C语言程序应具备良好的扩展性,方便添加新功能和优化性能
THANK YOU
汇报人:XX
程序的异常处理说明
异常类型:输入 错误、计算错误、 内存不足等
异常处理方式: 使用try-catch 语句进行异常捕 获和处理
异常处理流程: 当异常发生时, 程序会输出错误 信息并终止运行
异常处理结果: 确保程序在遇到 异常时能够正确 处理并给出相应 的提示信息
C语言程序应用示例
示例程序的输入数据格式
添加标题
添加标题
添加标题Βιβλιοθήκη 输入输出函数:用于数据的输入和 输出
函数:可重复使用的代码块,具有 特定的功能
C语言程序中电力系统模型的建立
定义节点和支路:根 据电力系统网络结构, 定义节点和支路,为 潮流计算做准备。
建立数学模型:根据 电力系统的物理特性 和元件参数,建立数 学模型,包括节点电 压、支路电流等。
实际运行时 间测试
程序的内存占用性能分析
内存占用情况:分 析程序运行过程中 内存的占用情况, 包括堆内存和栈内 存。
内存泄漏检测:检 查程序是否存在内 存泄漏,即程序运 行结束后未正确释 放的内存。
内存使用优化:根 据内存占用情况, 优化程序中的数据 结构或算法,降低 内存占用。

课程设计电力系统短路电流的计算

课程设计电力系统短路电流的计算

课程设计说明书题目名称:某系统短路计算系部:专业班级:学生姓名:学号:指导教师:完成日期:电力工程系课程设计任务书学年学期年月日教研室主任(签名)系(部)主任(签名)年月日摘要电能是现代社会中最重要,也是最方便的能源。

电能具有许多优势,它能够方便地转化为别种形式的能,它的输送和分派易于实现;它的应用规模也很灵活。

电力系统正常运行的破坏多半是由短路故障引发的。

发生短路时,系统从一种状态剧变到另一种状态,并伴随产生复杂的暂态现象。

所谓短路,是指一切不正常的相与相之间或相与地发生通路的情形。

在三相系统中,可能发生的短路有:三相短路、两相短路、两相短路接地和单相接地短路。

关于各类不对称短路,都能够对短路点列写各序网络的电势方程,依照不对称短路的不同类型列写边界条件方程。

联立求解这些方程能够求得短路点电压和电流的各序分量。

关键词:短路各序网络不对称短路目录1 课程设计的题目及目的 (1)1.1 课程设计选题 (1)1.2 课程设计的目的 (1)2 短路电流计算的大体概念和方式 (2)2.1 大体概念的介绍 (2)2.2 电力系统各序网络的制定 (2)2.3 不对称三相量的分解 (3)2.4 短路电流计算的大体方式 (4)3 计算进程及步骤 (6)3.1 系统C的正序电抗的计算 (6)3.2 K点发生接地短路的电流计算 (8)3.3 短路时发电机和系统C故障电流计算 (10)4 仿真实验 (13)4.1 基于公用资源的交直流电力系统分析程序包有以下应用功能 (13)4.2 仿真结果部份截图 (14)5 结果分析 (18)5.1 短路电流计算结果的应用 (18)5.2 阻碍短路电流的因素及限制短路电流的方法 (19)总结 (20)致谢 (21)1 课程设计的题目及目的1.1 课程设计选题如下图发电机G ,变压器T 一、T2和线路L 电抗参数都以统一基准的标幺值给出,系统C 的电抗值是未知的,但已知其正序电抗等于负序电抗。

电力系统分析课程设计报告_4

电力系统分析课程设计报告_4

电力系统分析课程设计报告题目: 电力系统三相对称短路计算专业: 电气工程及其自动化班级:姓名:学号:指导教师:目录电力系统分析........................................................................................................................... - 0 -第一章设计目的与任务 ......................................................................................................... - 2 -1.1设计目的.................................................................................................................... - 2 -1.2设计任务.................................................................................................................... - 2 -第二章基础理论与原理 ......................................................................................................... - 2 -2.1 对称短路计算的基本方法 ....................................................................................... - 2 -2.2 用节点阻抗矩阵的计算方法 ................................................................................... - 4 -2.3 用节点导纳矩阵的计算方法 ................................................................................... - 6 -2.4 用三角分解法求解节点阻抗矩阵 ........................................................................... - 7 -2.5 短路发生在线路上任意处的计算方法 ................................................................... - 8 -第三章程序设计..................................................................................................................... - 9 -3.1 变量说明................................................................................................................... - 9 -3.2 程序流程图............................................................................................................. - 10 -3.2.1主程序流程图 .............................................................................................. - 11 -3.2.2导纳矩阵流程图 .......................................................................................... - 12 -3.2.3三角分解法流程图 ...................................................................................... - 13 -3.3 程序源代码见附录1 ............................................................................................ - 14 -第四章结果分析................................................................................................................... - 14 -第五章收获与建议............................................................................................................... - 15 -参考文献................................................................................................................................. - 17 -附录......................................................................................................................................... - 17 -附录1: 程序源代码..................................................................................................... - 18 - 附录2: 测试系统数据与系统图 ................................................................................... - 23 - 附录3: 测试系统的运行结果- 25 -第一章设计目的与任务1.1设计目的1、加深理解并巩固电力系统发生短路的基本知识。

(整理)电力系统分析之短路电流计算

(整理)电力系统分析之短路电流计算

电力系统分析之短路电流计算电力系统是由生产、输送、分配、及使用电能的发电机、变压器、电力线路和用户组成一个整体,它除了有一次设备外还应有用于保护一次设备安全可靠运行的二次设备。

对电力系统进行分析应包括正常运行时的运行参数和出现故障时的故障参数进行分析计算。

短路 是电力系统出现最多的故障,短路电流的计算方法有很多,而其中以“应用运算曲线”计算短路电流最方便实用。

应用该方法的步骤如下:1、 计算系统中各元件电抗标幺值; 1)、基准值,基准容量(如取基准容量Sj=100MV A ),基准电压Uj 一般为各级电压的平均电压。

2)系统中各元件电抗标幺值计算公式如下:发电机 ϕCos P S X Xe j d d /100%''"*⋅= 式中"*d X 为发电机次暂态电抗百分值 变压器 ejd b S S U X ⋅=100%* 式中U d %为变压器短路电压的百分值 线路 20*ej j U S L X X ⋅= 式中X 0为每仅是电抗的平均值(架空线为0.4欧/公里)电抗器 2*3100%jj e e k k U S I U X X ⋅⋅=式中X k %为电抗器的短路电抗百分值 系统阻抗标幺值 Zhj x S S X =* S Zh 断路器的遮断容量2、 根据系统图作出等值电路图, 将各元件编号并将相应元件电抗标幺值标于元件编号下方;3、 对网络化简,以得到各电源对短路点的转移电抗,其基本公式有:串联X 1X 2X3X 3 =X 1+X 2并联X 1X 2X32121213//X X X X X X X +⋅==三角形变为等值星形X 23X 12X 13X 3X 1X 213231213121X X X X X X ++⋅=13231223122X X X X X X ++⋅=13231223133X X X X X X ++⋅=星形变为等值三角形X 2X 1X 3X 13X 12X 233212112X X X X X X ⋅++= 1323223X X X X X X ⋅++= 2131331X X X X X X ⋅++= 4、 将标幺值电抗转换为以各支路发电机容量为基准的计算电抗X js , jnj js S S X X ⋅=∑ 式中:∑j X ---以S j 为基准容量的标幺值电抗X js ---以S n 为基准容量的计算电抗 5、 短路电流计算: 1)、无限大容量电源的短路电流计算:当系统中X X =0,以供电电源为基准的计算电抗X js ≥3时,可以认为短路电流周期分量在整个短路时间内保持不变,即 jsnj X I X I I I I ====''∑∞*2.0 式中:∑*X ---以S j 为基准容量的标幺值电抗X js ---以S n 为基准容量的计算电抗 2)、有限容量电源的短路电流计算:有限容量电源的短路电流周期分量在短路时间内是变化的。

电力系统分析潮流计算C语言编程-pq分解法2

电力系统分析潮流计算C语言编程-pq分解法2
void factor();/*求因子表*/
void solve(float **B,float *X,int N);/*解方程组*/
void PrtNode();/*打印输出节点参数*/
void ErrorMsg(int Flag);/*错误信息*/
int Node;/*节点数*/
int num;/*原始节点序号*/
kp=0;
for(i=0;i<NP;i++)
{
dPi=dP+i;
Yi=*(Y+i)-i;
Dltai=*(Dlta+i);
*dPi=0;
for(j=0;j<Node;j++)
{
temp=Dltai-*(Dlta+j);
if(i>j)*dPi+=*(V+j)*(Pji);
tP=*(V+j)*(Pij);
tP=*(V+i)*Yij.G-tP;
tP*=*(V+i);
tQ=*(V+j)*(Qij);
tQ-=*(V+i)*(Yij.B-Yij.B0);
tQ*=*(V+i);
}
fprintf(out,"S[%d,%d]=(%10.6f,%10.6f)\n",k+1,m+1,-tP,-tQ)
*(num+i)=k;
fscanf(in,"%d",&k);
}
if(NQ+j!=Node)ErrorMsg(4);
fprintf(out,"【节点参数表】\n");

C语言编写短路电流计算的程序

C语言编写短路电流计算的程序

初始条件:如图所示电力系统,最大运行方式时,两个电源同时送电,变压器并联运行,忽略线路电阻,线路电抗0.4Ω/km。

计算k1和k2点在最大运行方式时的三相短路电流。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.写出三相短路电流的计算方法;2.用C或FORTRAN语言实现三相短路电流的计算程序;3.调试程序并求出计算结果;4.撰写计算方法原理、计算流程文档及设计说明书;5.提供计算程序代码。

代码使用C++编写的,共有三个文件,请建立工程,一起编译。

这是Plural.hpp#ifndef PLURAL_HPP#define PLURAL_HPP//类名称:Plural//方法:GetR,GetI,SetRI,SetR,SetI//数据: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;};//名称: 复数乘法,PluralMul(Plural plural1, Plural plural2)//参数:复数plural1 plural2//返回值:复数Plural PluralMul(Plural plural1, Plural plural2);//函数名:复数除法,运算浮点数除以复数//参数:num,分子,是一个浮点数。

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 <stdio.h>#include <stdlib.h>#include <math.h>//类名称:Plural//方法:GetR,GetI,SetRI,SetR,SetI//数据:m_pluralR,m_pluralIPlural::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{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)// 参数:复数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,分子,是一个浮点数。

电力系统分析之短路电流计算

电力系统分析之短路电流计算

电力系统分析之短路电流计算电力系统是由生产、输送、分配、及使用电能的发电机、变压器、电力线路和用户组成一个整体,它除了有一次设备外还应有用于保护一次设备安全可靠运行的二次设备。

对电力系统进行分析应包括正常运行时的运行参数和出现故障时的故障参数进行分析计算。

短路 是电力系统出现最多的故障,短路电流的计算方法有很多,而其中以“应用运算曲线”计算短路电流最方便实用。

应用该方法的步骤如下:1、 计算系统中各元件电抗标幺值; 1)、基准值,基准容量(如取基准容量Sj=100MV A ),基准电压Uj 一般为各级电压的平均电压。

2)系统中各元件电抗标幺值计算公式如下:发电机 ϕCos P S X Xe j d d /100%''"*⋅= 式中"*d X 为发电机次暂态电抗百分值 变压器 ej d b S S U X ⋅=100%*式中U d %为变压器短路电压的百分值 线路 20*ej j U S L X X ⋅= 式中X 0为每仅是电抗的平均值(架空线为0.4欧/公里)电抗器 2*3100%jj e e k k U S I U X X ⋅⋅=式中X k %为电抗器的短路电抗百分值 系统阻抗标幺值 Zhj x S S X =* S Zh 断路器的遮断容量2、 根据系统图作出等值电路图, 将各元件编号并将相应元件电抗标幺值标于元件编号下方;3、 对网络化简,以得到各电源对短路点的转移电抗,其基本公式有:串联X 1X 2X3X 3 =X 1+X 2并联三角形变为等值星形 星形变为等值三角形4、 将标幺值电抗转换为以各支路发电机容量为基准的计算电抗X js ,式中:∑j X ---以S j 为基准容量的标幺值电抗X js ---以S n 为基准容量的计算电抗 5、 短路电流计算: 1)、无限大容量电源的短路电流计算:当系统中X X =0,以供电电源为基准的计算电抗X js ≥3时,可以认为短路电流周期分量在整个短路时间内保持不变,即式中:∑*X ---以S j 为基准容量的标幺值电抗X js ---以S n 为基准容量的计算电抗 2)、有限容量电源的短路电流计算:有限容量电源的短路电流周期分量在短路时间内是变化的。

短路电流计算程序

短路电流计算程序

短路电流计算程序2 OPEN "BH2.txt" FOR OUTPUT AS #13 REM B44 INPUT I96 REM GREETING-1 PROGREM8 READ N, L, B, L1, G10 o = N + 112 DIM W(o), Z(o), a(o), r(B + 1), x(B + 1), i(N), J(N), t(N) 14 DIM L(B + 1), k(B + 1), N(B + 1), M(B + 1), s(B + 1)16 FOR i = 1 TO N18 READ W(i)20 NEXT i22 M = W(N): m9 = M + N + 124 DIM C(m9), D(m9), H(m9), y(m9), E(o), F(o), P(o)26 FOR i = 1 TO m928 H(i) = 030 NEXT i32 FOR i = 1 TO L34 READ J, k, r, x, b136 s = W(J): t = W(k)38 m1 = s - J + k40 IF J > k THEN 4442 m1 = t - k + J44 IF r >= 0 THEN GOSUB 6846 IF r < 0 THEN GOSUB 7848 NEXT i50 IF I9 = 1 THEN 6652 FOR J = 1 TO N54 J0 = W(J) - J: j1 = J - W(J) + 156 IF J <> 1 THEN j1 = j1 + W(J - 1)58 FOR k = j1 TO J60 PRINT "Y"; J; k; "="; H(J0 + k)62 NEXT k64 NEXT J66 GOTO 9068 H(s) = H(s) + b1 - 1 / x70 H(t) = H(t) + b1 - 1 / x72 IF i * k = 0 THEN 7574 H(m1) = H(m1) + 1 / x75 IF J <= (N - G) THEN 7776 t(J) = x77 RETURN78 IF ABS(r) = 2 THEN 8480 H(s) = H(s) - 1 / x: H(t) = H(t) - 1 / (b1 * b1 * x)84 H(s) = H(s) - 1 / (b1 * b1 * x): H(t) = H(t) - 1 / x86 H(m1) = H(m1) + 1 / (b1 * x)88 RETURN90 FOR i = 1 TO m992 C(i) = 0: D(i) = 094 NEXT i96 FOR i = 1 TO N98 READ E1, F1100 E(i) = E1: F(i) = F1102 NEXT i104 FOR o = 1 TO L106 READ J, k, I1, I2107 IF J * k = 0 THEN 113108 IF J < k THEN 112110 J0 = W(J) - J: C(J0 + k) = I1: D(J0 + k) = I2: GOTO 114 112 K0 = W(k) - k: C(K0 + J) = -I1: D(K0 + J) = -I2113 i(J) = I1: J(J) = I2114 NEXT o116 FOR i = 1 TO B118 READ r(i)120 NEXT i122 M0 = r(B): M5 = M0 + B + 1124 DIM U(M5)126 FOR i = 1 TO M5128 U(i) = 0130 NEXT i132 FOR i = 1 TO L1134 READ J, k, r, x, b1136 s = r(J): t = r(k)138 m1 = s - J + k140 IF J > k THEN 144142 m1 = t - k + J144 IF r >= 0 THEN GOSUB 168146 IF r < 0 THEN GOSUB 178148 NEXT i150 IF I9 = 1 THEN 166152 FOR J = 1 TO B154 J0 = r(J) - J: j1 = J - r(J) + 1156 IF J <> 1 THEN j1 = j1 + r(J - 1)158 FOR k = j1 TO J160 PRINT "Y0"; J; k; U(J0 + k)162 NEXT k164 NEXT J166 GOTO 196168 U(s) = U(s) + b1 - 1 / x172 IF J * k = 0 THEN 176174 U(m1) = U(m1) + 1 / x176 RETURN178 IF J * k = 0 THEN 188180 IF ABS(r) = 2 THEN 184182 U(s) = U(s) - 1 / x: U(t) = U(t) - 1 / (b1 * b1 * x): GOTO 185184 U(s) = U(s) - 1 / (b1 * b1 * x): U(t) = U(t) - 1 / x185 U(m1) = U(m1) + 1 / (b1 * x)186 RETURN188 IF k = 0 THEN 192190 U(t) = U(t) - 1 / x: t(k) = x: GOTO 194192 U(s) = U(s) - 1 / x: t(J) = x194 GOTO 186196 PRINT "+---7---+"198 INPUT X2200 IF X2 = 0 THEN 252202 PRINT "J,K,L": INPUT J, k, L204 E1 = (1 - L) * E(J) + L * E(k): F1 = (1 - L) * F(J) + L * F(k)206 E(N + 1) = E1: F(N + 1) = F1208 IF J < k THEN 220210 J0 = W(J) - J: Y0 = H(J0 + k)212 H(J0 + k) = 0: C1 = C(J0 + k): D1 = D(J0 + k)214 C(J0 + k) = 0: D(J0 + k) = 0216 C(W(N) + J) = -C1: C(W(N) + k) = C1: D(W(N) + J) = -D1: D(W(N) + k) = D1 218 GOTO 226220 K0 = W(k) - k: Y0 = H(K0 + J): H(K0 + J) = 0222 C1 = C(K0 + J): D1 = D(K0 + J): C(K0 + J) = 0: D(K0 + J) = 0224 C(W(N) + J) = C1: C(W(N) + k) = -C1: D(W(N) + J) = D1: D(W(N) + k) = -D1 226 FOR i = 1 TO N228 IF i <> J THEN 232230 H(M + i) = Y0 / L: GOTO 238232 IF i <> k THEN 236234 H(M + i) = Y0 / (1 - L): GOTO 238236 H(M + i) = 0238 NEXT i240 H(M + N + 1) = -Y0 * (1 / L + 1 / (1 - L))242 J2 = W(J): K2 = W(k)244 H(J2) = H(J2) + Y0 - Y0 / L246 H(K2) = H(K2) + Y0 - Y0 / (1 - L)248 W(N + 1) = W(N) + N + 1: N = N + 1250 GOTO 256252 PRINT "AT WHICH BUS": INPUT J254 E1 = E(J): F1 = F(J)256 FOR i = 1 TO N258 IF X2 = 0 THEN 262262 s = J264 IF i <> s THEN 268266 Z(i) = -1: GOTO 270268 Z(i) = 0270 NEXT i272 GOSUB 404274 Z0 = Z(s)276 PRINT "+---2---+": INPUT X3278 IF X3 = 0 THEN 332280 IF X2 = 0 THEN 312282 J2 = r(J): K2 = r(k)284 IF J < k THEN 288286 Y2 = U(J2 - J + k): U(J2 - J + k) = 0: GOTO 290288 Y2 = U(K2 - k + J): U(K2 - k + J) = 0290 I2 = r(B)292 FOR i = 1 TO B294 IF i <> J THEN 298296 U(I2 + i) = Y2 / L: GOTO 304298 IF i <> k THEN 302300 U(I2 + i) = Y2 / (1 - L): GOTO 304302 U(I2 + i) = 0304 NEXT i306 U(I2 + B + 1) = -Y2 * (1 / L + 1 / (1 - L))308 U(J2) = U(J2) + Y2 - Y2 / L: U(K2) = U(K2) + Y2 - Y2 / (1 - L) 310 r(B + 1) = r(B) + B + 1: B = B + 1312 FOR i = 1 TO B314 IF X2 = 0 THEN 318316 s = B: GOTO 320318 s = J320 IF i <> s THEN 324322 x(i) = -1: GOTO 326324 x(i) = 0326 NEXT i328 GOSUB 404330 X0 = x(s): GOTO 346332 PRINT "TTT"334 INPUT X4336 IF X4 = 0 THEN 372338 Z4 = 0: m1 = 1340 W1 = 0: W2 = 0342 PRINT "RESULT OF 3 SHORT-CURCUIT"344 GOTO 378346 PRINT "TTI"348 INPUT X5350 IF X5 = 1 THEN 360354 W1 = 1: W2 = 1356 PRINT "RESULT OF SINGLE CONNECTING THE EARTH" 358 GOTO 378360 Z4 = Z0 * X0 / (Z0 + X0)362 m1 = SQR(3 * (1 - Z0 * X0 / ((Z0 + X0) * (Z0 + X0))))364 W1 = -X0 / (Z0 + X0)366 W2 = -Z0 / (Z0 + X0)368 PRINT "RESULT OF DOUBLE CONNECTING THE EARTH" 370 GOTO 378372 Z4 = Z0: m1 = SQR(3)374 W1 = -1: W2 = 0376 PRINT "RESULT OF DOUBLE SHORT-CURCUIT"378 Z5 = Z4 + Z0: I1 = F1 / Z5: I2 = -E1 / Z5380 I3 = W1 * I1: I4 = W1 * I2382 I5 = W2 * I1: I6 = W2 * I2384 I7 = m1 * SQR(I1 * I1 + I2 * I2)386 E1 = E1 + I2 * Z0: F1 = F1 - Z0 * I1388 E2 = Z0 * I4: F2 = -Z0 * I3390 E3 = X0 * I6: F3 = -X0 * I5391 PRINT #1, "IK+="; I1; "+J"; I2392 PRINT #1, "IK-="; I3; "+J"; I4393 PRINT #1, "IK0="; I5; "+J"; I6394 PRINT #1, "IMAX="; I7396 PRINT #1, "UK+="; E1; "+J"; F1398 PRINT #1, "UK-="; E2; "+J"; F2399 PRINT #1, "UK0="; E3; "+J"; F3400 GOTO 516404 N0 = N406 FOR i = 1 TO N408 IF X3 = 1 THEN 412410 a(i) = W(i): P(i) = Z(i): GOTO 416412 IF i > B THEN 416414 a(i) = r(i): P(i) = x(i)416 NEXT i418 IF X3 = 1 THEN 430420 I7 = a(N)422 FOR i = 1 TO I7424 y(i) = H(i)426 NEXT i428 GOTO 440430 I7 = a(B)432 FOR i = 1 TO I7434 y(i) = U(i)436 NEXT i438 IF X3 = 1 THEN N = B444 IF o <> 1 THEN O1 = O1 + a(o - 1)446 FOR q = O1 TO o448 Q0 = a(q) - q: Q1 = q - a(q) + 1450 IF q <> 1 THEN Q1 = Q1 + a(q - 1)452 IF Q1 >= O1 THEN 456454 Q1 = O1456 FOR i = Q1 TO q - 1458 IF i > q - 1 THEN 462460 y(o0 + q) = y(o0 + q) - y(o0 + i) * y(Q0 + i) / y(a(i)) 462 NEXT i464 NEXT q466 NEXT o468 FOR o = 1 TO N470 o0 = a(o) - o: O1 = o - a(o) + 1472 IF o <> 1 THEN O1 = O1 + a(o - 1)474 FOR q = O1 TO o - 1476 IF q > o - 1 THEN 480478 P(o) = P(o) - y(o0 + q) * P(q)480 NEXT q482 P(o) = P(o) / y(a(o))484 NEXT o486 FOR o = N TO 1 STEP -1488 o0 = a(o) - o: O1 = o - a(o) + 1490 IF o <> 1 THEN O1 = O1 + a(o - 1)492 FOR q = O1 TO o - 1494 IF q > o - 1 THEN 498496 P(q) = P(q) - y(o0 + q) * P(o) / y(a(q))498 NEXT q500 NEXT o502 IF X3 = 1 THEN N = B504 FOR i = 1 TO N506 IF X3 = 1 THEN 510508 Z(i) = P(i): GOTO 512510 x(i) = P(i)512 NEXT i514 RETURN516 FOR i = 1 TO N0518 E1 = E(i) + Z(i) * I2: F1 = F(i) - Z(i) * I1520 E2 = Z(i) * I4: F2 = -Z(i) * I3522 IF X2 = 1 THEN 530524 IF i > B THEN 528526 E3 = x(i) * I6: F3 = -x(i) * I5: GOTO 542528 E3 = 0: F3 = 0: GOTO 542530 IF i < B THEN 526536 E3 = 0: F3 = 0538 IF i <> N0 THEN 542540 E3 = E4: F3 = F4542 A1 = E1 + E2 + E3: A2 = F1 + F2 + F3544 A4 = (F1 + F2) * COS(3.14159 * 2 / 3) + (E2 - E1) * SIN(3.14159 * 2 / 3) + F3 546 A3 = (E1 + E2) * COS(3.14159 * 2 / 3) + (F1 - F2) * SIN(3.14159 * 2 / 3) + E3 548 A5 = (E1 + E2) * COS(3.14159 * 2 / 3) + (F2 - F1) * SIN(3.14159 * 2 / 3) + E3 550 A6 = (F1 + F2) * COS(3.14159 * 2 / 3) + (E1 - E2) * SIN(3.14159 * 2 / 3) + F3 551 PRINT #1, "U"; i; "+="; E1; "+J"; F1552 PRINT #1, "U"; i; "-="; E2; "+J"; F2553 PRINT #1, "U"; i; "0="; E3; "+J"; F3554 PRINT #1, "UA="; A1; "+J"; A2555 PRINT #1, "UB="; A3; "+J"; A4556 PRINT #1, "UC="; A5; "+J"; A6557 NEXT i558 FOR J = 2 TO N0560 j1 = W(J) - J562 IF J <= B THEN J2 = r(J) - J564 J3 = J - W(J) + W(J - 1) + 1566 IF J <= B THEN J4 = J - r(J) + r(J - 1) + 1568 FOR k = J3 TO J - 1569 IF H(j1 + k) = 0 THEN 624570 C1 = -I1 * (Z(J) - Z(k)) * H(j1 + k): C2 = -I2 * (Z(J) - Z(k)) * H(j1 + k)572 C3 = -I3 * (Z(J) - Z(k)) * H(j1 + k): C4 = -I4 * (Z(J) - Z(k)) * H(j1 + k)574 IF X3 = 0 THEN 604576 IF X2 = 1 THEN 586578 IF J <= B THEN 582580 C5 = 0: C6 = 0: GOTO 604582 C5 = -I5 * (x(J) - x(k)) * U(J2 + k): C6 = -I6 * (x(J) - x(k)) * U(J2 + k): GOTO 604 583 IF t(k) <> 0 THEN 585584 C5 = L(k): C6 = s(k): GOTO 604585 C5 = I5 * x(k) / t(k): C6 = I6 * x(k) / t(k): GOTO 604586 IF J < B THEN 582588 IF J <> B THEN 596590 FOR q = J4 TO J - 1592 L(q) = -I5 * (x(J) - x(q)) * U(J2 + q): s(q) = -I6 * (x(J) - x(q)) * U(J2 + q)594 NEXT q596 C5 = 0: C6 = 0598 IF J <> N0 THEN 604600 IF k > B - 1 THEN 604602 GOTO 584604 C1 = C1 + C(j1 + k): C2 = C2 + D(j1 + k): GOTO 606606 A1 = C1 + C3 + C5: A2 = C2 + C4 + C6608 b1 = (C1 + C3) * COS(3.14159 * 2 / 3) + (C2 - C4) * SIN(3.14159 * 2 / 3) + C5612 D1 = (C1 + C3) * COS(3.14159 * 2 / 3) + (C4 - C2) * SIN(3.14159 * 2 / 3) + C5 614 D2 = (C2 + C4) * COS(3.14159 * 2 / 3) + (C1 - C3) * SIN(3.14159 * 2 / 3) + C6 616 PRINT #1, "IF+("; J; "-"; k; ")="; C1; "+J"; C2618 PRINT #1, "IF-("; J; "-"; k; ")="; C3; "+J"; C4620 PRINT #1, "IF0("; J; "-"; k; ")="; C5; "+J"; C6621 PRINT #1, "IA("; J; "-"; k; ")="; A1; "+J"; A2622 PRINT #1, "IB("; J; "-"; k; ")="; b1; "+J"; B2623 PRINT #1, "IC("; J; "-"; k; ")="; D1; "+J"; D2624 NEXT k626 IF X3 = 1 THEN 644628 IF X4 = 0 THEN 644630 IF X2 = 0 THEN 634632 IF J > (N0 - G - 1) THEN 640634 IF J <= (N0 - G) THEN 644636 i(J) = i(J) + Z(J) * I1 / t(J): J(J) = J(J) + Z(J) * I2 / t(J)638 PRINT #1, "IG"; J; "="; i(J); "+J"; J(J): GOTO 644640 IF J = N0 THEN 644642 IF J < N0 THEN 636644 NEXT J646 END注:以下为数据输入部分,此为一个电网一种运行方式下的例子。

电力系统通用潮流计算C语言程序

电力系统通用潮流计算C语言程序

#include <iostream〉#include 〈fstream>#include<iomanip>#include〈math。

h〉using namespace std;//节点号类型负荷有功负荷无功母线数据(类型1=PV节点,2=PQ节点,3=平衡节点)struct BUS{int busno;int type;float Pd;float Qd;};//发电机数据节点号有功发电电压幅值struct Generator{int busno;float Pg;float Vg;};//支路信息节点I 节点J R X B/2 kstruct Line{int busi;int busj;float R;float X;float B;float k;};//deltaP deltaQ deltaV^2//void fun1(double YG[][50],double YB[][50],double e[],double f[],int type[],int N,double W[],double P[],double Q[],double V[]){double dP=0,dQ=0,dV=0;int i,j;for(i=0;i<N-1;i++){double A=0,B=0;for(j=0;j〈N;j++){A+=YG[i][j]*e[j]-YB[i][j]*f[j];B+=YG[i][j]*f[j]+YB[i][j]*e[j];}dV=V[i]*V[i]-e[i]*e[i]—f[i]*f[i];dP=P[i]—e[i]*A—f[i]*B;W[2*i]=dP;dQ=Q[i]-f[i]*A+e[i]*B;if(type[i]==1)W[2*i+1]=dQ;else W[2*i+1]=dV;}}//Jacobi矩阵//void Jacobi(double YG[][50],double YB[][50],double e[50],double f[50],int type[50],int N ,double Ja[100][101]){int i,j;for(i=0;i<N;i++){for(j=0;j〈N;j++){if(i!=j){if(type[i]==1){Ja[2*i][2*j]=—(YG[i][j]*e[i]+YB[i][j]*f[i]);Ja[2*i][2*j+1]=YB[i][j]*e[i]-YG[i][j]*f[i];Ja[2*i+1][2*j]=Ja[2*i][2*j+1];Ja[2*i+1][2*j+1]=—Ja[2*i][2*j];}else {Ja[2*i][2*j]=—YG[i][j]*e[i]+YB[i][j]*f[i];Ja[2*i][2*j+1]=YB[i][j]*e[i]-YG[i][j]*f[i];Ja[2*i+1][2*j+1]=Ja[2*i+1][2*j]=0;}}else {double a[50]={0},b[50]={0};for(int k=0;k<N;k++){a[i]+=(YG[i][k]*e[k]—YB[i][k]*f[k]);b[i]+=(YG[i][k]*f[k]+YB[i][k]*e[k]);Ja[2*i][2*j]=—a[i]-YG[i][i]*e[i]-YB[i][i]*f[i];Ja[2*i][2*j+1]=-b[i]+YB[i][i]*e[i]-YG[i][i]*f[i];if(type[i]==1){Ja[2*i+1][2*j]=b[i]+YB[i][i]*e[i]—YG[i][i]*f[i];Ja[2*i+1][2*j+1]=-a[i]+YG[i][i]*e[i]+YB[i][i]*f[i];}else {Ja[2*i+1][2*j]=—2*e[i];Ja[2*i+1][2*j+1]=-2*f[i];}}}}}}//高斯消元法解方程组函数//void gauss(double a[][101],int n){int i,j,k;double c;for(k=0;k〈n-1;k++) {c=a[k][k];for(j=k;j〈=n;j++) a[k][j]/=c;for(i=k+1;i〈n;i++){c=a[i][k];for(j=k;j<=n;j++)a[i][j]—=c*a[k][j];}}a[n-1][n]/=a[n-1][n-1];for(k=n-2;k>=0;k——)for(j=k+1;j<n;j++) a[k][n]-=a[k][j]*a[j][n];}void main(){ifstream fin;int N=0,GS=0,LD=0,ZLs=0; //节点数发电机数负荷数支路数// BUS *B;Generator *G;Line *L;//从文本中读入原始数据到数组中//fin。

电力系统故障分析课设程序(C语言)

电力系统故障分析课设程序(C语言)

故障分析上级计算1、该环节的任务、要求与教学安排•课程名称:故障分析上机计算•课程类型: 教学实践环节•学分:2•适用对象: 电气工程及其自动化专业(继电保护及自动远动技术专业方向)••先修课程:《电力系统分析基础》、《电力系统故障分析》(及计算机C 语言课程)1.1 课程设计的目的A.巩固“电力系统故障分析”课程的理论知识,进一步掌握故障计算的基本知识和计算方法;B.熟悉使用计算机计算电力系统故障过程,掌握数学模型,提高编程能力;C.提高独立分析问题和解决问题的工作能力。

1.2 该环节的主要内容(1)手算简单故障对给定的电力系统接线图,选择母线C或母线D为短路点,计算三相短路、两相短路、单相接地和两相接地短路等短路故障,过程与要求参见指导书(任务一)。

(2)上机计算软件平台:Tuber C或VC、VC++•采用节点阻抗方程计算简单故障;•画出程序流程,编写程序代码,要求程序代码易懂、通用;•上机计算故障,得出正确结果;•原始数据与结果采用数据文件格式;•进行结果分析。

• 1.7推荐参考书A.《电力系统故障分析上机计算指导书》,徐玉琴,校印讲义。

B. 《电力系统故障分析》,刘万顺,中国电力出版社,1998年。

C. 《C程序设计》,谭浩强,清华大学出版社,1991年。

• 2.2 故障计算的程序流程☐采用节点阻抗方程计算简单故障;☐程序代码要易懂、通用;☐原始数据与结果采用数据文件格式;☐得出的结果正确.编写的程序如下:#include<stdio.h>#include<math.h>#define M 100 /*最大值路数*/#define N 100 /*最大节点数*/int F,T,R;int C;int w,h,r,n, /*节点数*/m, /*支路数*/v,LX; /*故障类型*/float b1[M][M],b0[M][M]; /*电阻导纳的数组*/float rr,tt,C1[M][M],C0[M][M];static float Z1[M][M],Z0[M][M]; /*阻抗矩阵的数组*/ static float Ip1,Ip2,Ip0; /*口电流*/static float Up1,Up2,Up0; /*口电压*/static float Zp1,Zp2,Zp0; /*口阻抗*/static float U1[M],U2[M],U0[M],il[N],I1[M][M],I2[M][M],I0[M][M],UAR[M],UBR[M],UCR[M],UAI[M],UBI[M],UCI[M], IAR[M][M],IBR[M][M],ICR[M][M],IAI[M][M],IBI[M][M],ICI[M][M], UA[M],UB[M],UC[M],IA[M][M],IB[M][M],IC[M][M]; struct zlz /* 正序结构体*/{ int h; /* h=1为正序*/int p1,p2; /* 支路前后的两个节点*/float x; /* 支路的电抗*/} zlz[M];struct zlf /* 零序结构体*/{ int h; /* h=0为零序*/int p1,p2; /* 支路前后的两个节点*/float x; /* 支路的电抗*/} zlf[M];struct sdl /*节点输入电流结构体*/{int h, /* h=3为节点注入电流*/p1; /* 注入的节点*/float i; /* 注入的电流值*/}sdl[M];FILE *fp1,*fp2; /* 文件指针定义*/void Read_data() /* 读取原始数据*/{ int i,j;fp1=fopen("input.txt","r"); /* 打开input.txt文件*/if(fp1==NULL){printf(" 文件为空,重新检查输入!\n");}fscanf(fp1,"%d,%d,%d,%d\n",&n,&m,&v,&r); /*输入节点数,正支路数, 负支路数,注入电流数*/j=1;do{for(i=1;i<=m+v+r;i++){ fscanf(fp1,"%d",&h);if(h==1){fscanf(fp1,",%d,%d,%f\n",&zlz[i].p1,&zlz[i].p2,&zlz[i].x);j++;}if(h==0){fscanf(fp1,",%d,%d,%f\n",&zlf[i].p1,&zlf[i].p2,&zlf[i].x);j++; }if(h==3){fscanf(fp1,",%d,%f\n",&sdl[i].p1,&sdl[i].i);j++;} } } while(j<=m+v+r);fclose(fp1);if((fp2=fopen("output.txt","w"))==NULL){ printf(" 文件为空,重新检查输入!\n");}/*程序原始数据输出*/fprintf(fp2,"\n 原始数据\n");fprintf(fp2," \n");fprintf(fp2," 节点数:%2d 正支路数:%2d 负支路数:%2d 注入电流数:%2d \n", n,m,v,r);fprintf(fp2," \n");for(i=1;i<=m;i++)fprintf(fp2," 相关节点:%2d,%2d X1=%f \n",zlz[i].p1,zlz[i].p2,zlz[i].x);for(i=m+1;i<=m+v;i++)fprintf(fp2," 相关节点:%2d,%2d X0=%f \n",zlf[i].p1,zlf[i].p2,zlf[i].x);for(i=m+v+1;i<=m+v+r;i++)fprintf(fp2," 注入电流节点:%2d il=%f \n",sdl[i].p1,sdl[i].i);}void Form_Z() /* 形成节点阻抗矩阵并输出*/{ int a,b,i,j,k;float Z;float ZZ[50][50];for(i=0;i<=m;i++)for(j=0;j<=m;j++){b1[i][j]=0;b0[i][j]=0;Z1[i][j]=0;Z0[i][j]=0;}for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;b1[a][b]=1/zlz[i].x;b1[b][a]=1/zlz[i].x;}for(i=m+1;i<=m+v;i++){a=zlf[i].p1;b=zlf[i].p2;b0[a][b]=1/zlf[i].x;b0[b][a]=1/zlf[i].x;}/*后根据节点电压法算出导纳矩阵*//*正序*/for(i=1;i<=n;i++)for(j=1;j<=n;j++){Z1[i][j]=0;}for(i=1;i<=n;i++)for(j=0;j<=n;j++){Z1[i][i]=Z1[i][i]+b1[i][j];}for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(i!=j){Z1[i][j]=-1*b1[i][j];}/*零序*/for(i=1;i<=n;i++)for(j=1;j<=n;j++){Z0[i][j]=0;}for(i=1;i<=n;i++)for(j=0;j<=n;j++){Z0[i][i]=Z0[i][i]+b0[i][j];}for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(i!=j){Z0[i][j]=-1*b0[i][j];}/*以文件的形式输出导纳矩阵*/fprintf(fp2," 输出正序导纳矩阵:\n\n");for(i=1;i<=n;i++){fprintf(fp1,"\n ");for(j=1;j<=n;j++){ if(Z1[i][j]>=0)fprintf(fp2,"j%f ",Z1[i][j]);elsefprintf(fp2,"-j%f ",-Z1[i][j]); }}fprintf(fp2," \n \n 输出零序导纳矩阵:\n\n"); for(i=1;i<=n;i++){fprintf(fp1,"\n ");for(j=1;j<=n;j++){ if(Z0[i][j]>=0)fprintf(fp2,"j%f ",Z0[i][j]);elsefprintf(fp2,"-j%f ",-Z0[i][j]); }}fprintf(fp1,"\n\n\n");for(i=1;i<=n;i++) /*求正序阻抗矩阵*/for(j=1;j<=n;j++)ZZ[i][j]=0;for(k=1;k<=n;k++){ZZ[k][k]=-1/Z1[k][k];for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i!=k&&j!=k){ZZ[i][k]=-Z1[i][k]/Z1[k][k];ZZ[k][j]=-Z1[k][j]/Z1[k][k];Z=Z1[i][k]*Z1[k][j]/Z1[k][k];ZZ[i][j]=Z1[i][j]-Z;}}for(i=1;i<=n;i++)for(j=1;j<=n;j++){Z1[i][j]=ZZ[i][j];}}for(i=1;i<=n;i++)for(j=1;j<=n;j++){Z1[i][j]=-Z1[i][j];}for(i=1;i<=n;i++) /*求零序阻抗矩阵*/for(j=1;j<=n;j++)ZZ[i][j]=0;for(k=1;k<=n;k++){ZZ[k][k]=-1/Z0[k][k];for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i!=k&&j!=k){ZZ[i][k]=-Z0[i][k]/Z0[k][k];ZZ[k][j]=-Z0[k][j]/Z0[k][k];Z=Z0[i][k]*Z0[k][j]/Z0[k][k];ZZ[i][j]=Z0[i][j]-Z;}}for(i=1;i<=n;i++)for(j=1;j<=n;j++){Z0[i][j]=ZZ[i][j];}}for(i=1;i<=n;i++)for(j=1;j<=n;j++){Z0[i][j]=-Z0[i][j];}fprintf(fp2," 输出正序阻抗矩阵:\n\n");for(i=1;i<=n;i++){fprintf(fp1,"\n ");for(j=1;j<=n;j++){ if(Z1[i][j]>=0)fprintf(fp2,"j%f ",Z1[i][j]);elsefprintf(fp2,"-j%f ",-Z1[i][j]); }}fprintf(fp2," \n \n 输出零序阻抗矩阵:\n\n"); for(i=1;i<=n;i++){fprintf(fp1,"\n ");for(j=1;j<=n;j++){ if(Z0[i][j]>=0)fprintf(fp2,"j%f ",Z0[i][j]);elsefprintf(fp2,"-j%f ",-Z0[i][j]); }}fprintf(fp2,"\n\n\n");for(i=1;i<=n;i++)il[i]=0;for(i=m+v+1;i<=m+v+r;i++){a=sdl[i].p1;il[a]=sdl[i].i;}fprintf(fp2,"\n输出注入电流值: \n ");for(i=1;i<=n;i++)fprintf(fp2," il[%d]=%f\n ",i,il[i]);}void XZ_L() /*断相阻抗矩阵修正*/{int i,j;printf(" 请输入发生两相断相故障的两个节点(F、T):");scanf("%d,%d",&F,&T);for(i=1;i<=m;i++)for(j=1;i<=m;i++){Z1[i][j]=Z1[i][j]-(Z1[i][F]-Z1[i][T])*(Z1[F][j]-Z1[T][j])/(Z1[F][F]+Z1[T][T]-2*Z1[ F][T]-1/b1[F][T]);}for(i=1;i<=m;i++)for(i=1;i<=m;i++){Z0[i][j]=Z0[i][j]-(Z0[i][F]-Z0[i][T])*(Z0[F][j]-Z0[T][j])/(Z0[F][F]+Z0[T][T]-2*Z0[ F][T]-1/b0[F][T]);}}void SAN_L() /*三相短路故障*/{int j;float tt1;printf(" 请输入发生三相故障的节点:");scanf("%d",&F);tt1=0;for(j=1;j<=n;j++){tt1+=Z1[F][j]*il[j]; }Zp1=Z1[F][F];Ip1=-tt1/Zp1;Ip2=0;Ip0=0;Up1=0;Up2=0;Up0=0;}void CHUAN_L() /*串联型故障*/{int j;float zs,tt1;if(LX==1){printf(" 请输入发生一相接地短路故障的节点:");scanf("%d",&F);printf(" 请输入过度电阻zs:");scanf("%f",&zs);tt1=0;for(j=1;j<=n;j++){tt1+=Z1[F][j]*il[j]; }Zp1=Z1[F][F];Zp2=Z1[F][F];Zp0=Z0[F][F];Ip1=-tt1/(Zp1+Zp2+Zp0+3*zs);Ip2=Ip1;Ip0=Ip1;Up1=tt1+Ip1*Zp1;Up2=Ip2*Zp2;Up0=Ip0*Zp0;}if(LX==2){Zp1=Z1[F][F]+Z1[T][T]-2*Z1[F][T];Zp2=Z1[F][F]+Z1[T][T]-2*Z1[F][T];Zp0=Z0[F][F]+Z0[T][T]-2*Z0[F][T];tt1=0;for(j=1;j<=n;j++){tt1+=Z1[F][j]*il[j]; }Ip1=-tt1/(Zp1+Zp2+Zp0);Ip2=Ip1;Ip0=Ip1;Up1=Ip1*(Zp2+Zp0);Up2=-Ip2*Zp2; Up0=-Ip0*Zp0; }}void BING_L() /*并联型故障*/{int j;float tt1,zp;if(LX==3||LX==4){printf(" 请输入发生两相短路或两相接地短路故障的节点:"); scanf("%d",&F);printf(" 请输入过度电阻zp:");scanf("%f",&zp);Zp1=Z1[F][F];Zp2=Z1[F][F];Zp0=Z0[F][F];if(LX==3){tt1=0;for(j=1;j<=n;j++){tt1+=Z1[F][j]*il[j]; }Ip1=-tt1/(2*Zp1+zp);Ip2=-Ip1;Ip0=0;Up1=tt1+Z1[F][F]*Ip1;Up2=Z1[F][F]*Ip2;Up0=0;}if(LX==4){tt1=0;for(j=1;j<=n;j++){tt1+=Z1[F][j]*il[j]; }Ip1=-tt1/(Zp1+Zp1*(Zp0+zp)/(Zp1+Zp0+3*zp));Ip2=-Ip1*(Zp0+3*zp)/(Zp1+Zp0+3*zp);Ip0=-Ip1*Zp1/(Zp1+Zp0+3*zp);Up1=tt1+Z1[F][F]*Ip1;Up2=Z1[F][F]*Ip2;Up0=Z0[F][F]*Ip0; }}if(LX==5){ Zp1=Z1[F][F]+Z1[T][T]-2*Z1[F][T];Zp2=Z1[F][F]+Z1[T][T]-2*Z1[F][T];Zp0=Z0[F][F]+Z0[T][T]-2*Z0[F][T];tt1=0;for(j=1;j<=n;j++){tt1+=Z1[F][j]*il[j]; }Ip1=-tt1/(Zp1+Zp2*Zp0/(Zp2+Zp0));Ip2=-Ip1*Zp0/(Zp2+Zp0);Ip0=-Ip1*Zp2/(Zp2+Zp0);Up1=Ip1*Zp2*Zp0/(Zp2+Zp0);Up2=Up1; Up0=Up1;}}void DY_() /*求各节点的电压*/{int i,j;float tt[M];for(i=1;i<=n;i++)tt[i]=0;for(i=1;i<=n;i++)for(j=1;j<=n;j++){tt[i]=tt[i]+Z1[i][j]*il[j];}if(LX==0){for(i=1;i<=n;i++){U1[i]=tt[i]+Z1[i][F]*Ip1; U2[i]=0; U0[i]=0; }}if(LX==1||LX==2||LX==3||LX==4||LX==5){for(i=1;i<=n;i++){U1[i]=tt[i]+Z1[i][F]*Ip1; U2[i]=Z1[i][F]*Ip2; U0[i]=Z0[i][F]*Ip0;} } } void DL_L() /*求各支路的电流*/{int a,b,i,j;for(i=1;i<=n;i++)for(j=1;j<=n;j++){I1[i][j]=0;I2[i][j]=0;I0[i][j]=0;}for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;I1[a][b]=(U1[a]-U1[b])/zlz[i].x;I2[a][b]=(U2[a]-U2[b])/zlz[i].x;a=zlf[m+i].p1;b=zlf[m+i].p2;I0[a][b]=(U0[a]-U0[b])/zlf[m+i].x;}}void FZXS_L() /*分支系数计算*/{ int i,a,b;for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;if(a!=0&&b!=0)C1[a][b]=I1[a][b]/Ip1;C0[a][b]=I0[a][b]/Ip0; }}void HX_L() /*换相*/{int i,a,b;for(i=1;i<=n;i++){UAR[i]=0;UBR[i]=0.866*(U1[i]-U2[i]);UCR[i]=0.866*(U2[i]-U1[i]);UAI[i]=U0[i]+U1[i]+U2[i];UBI[i]=U0[i]-0.5*(U1[i]+U2[i]);UCI[i]=U0[i]-0.5*(U1[i]+U2[i]);}for(i=1;i<=m;i++){ a=zlz[i].p1;b=zlz[i].p2;IAR[a][b]=I0[a][b]+I1[a][b]+I2[a][b];IBR[a][b]=I0[a][b]-0.5*(I1[a][b]+I2[a][b]);ICR[a][b]=I0[a][b]-0.5*(I1[a][b]+I2[a][b]);IAI[a][b]=0;IBI[a][b]=0.866*(I2[a][b]-I1[a][b]);ICI[a][b]=0.866*(I1[a][b]-I2[a][b]); }}void MO_L() /*求相电压、电流的模值*/{int i,a,b;for(i=1;i<=n;i++){UA[i]=sqrt(UAR[i]*UAR[i]+UAI[i]*UAI[i]);UB[i]=sqrt(UBR[i]*UBR[i]+UBI[i]*UBI[i]);UC[i]=sqrt(UCR[i]*UCR[i]+UCI[i]*UCI[i]);}for(i=1;i<=m;i++){ a=zlz[i].p1;b=zlz[i].p2;IA[a][b]=sqrt(IAR[a][b]*IAR[a][b]+IAI[a][b]*IAI[a][b]);IB[a][b]=sqrt(IBR[a][b]*IBR[a][b]+IBI[a][b]*IBI[a][b]);IC[a][b]=sqrt(ICR[a][b]*ICR[a][b]+ICI[a][b]*ICI[a][b]);}}void XDLSC_L() /*输出函数*/{int i,a,b;fprintf(fp2,"\n\n请输入故障类型:三相短路——0、单相接地——1、两相断相——2、两相短路——3、两相接地短路——4、单相断相——5 \n");fprintf(fp2,"\n\n故障类型:%d\n\n",LX);fprintf(fp2,"\n输出口参数值:\n");fprintf(fp2," Ip1=%f\n Ip2=%f\n Ip0=%f\n ",Ip1,Ip2,Ip0);fprintf(fp2," Up1=%f\n Up2=%f\n Up0=%f\n ",Up1,Up2,Up0);fprintf(fp2,"\n输出各节点序电压值:");for(i=1;i<=n;i++){if(U1[i]>=0)fprintf(fp2,"\n U1[%d]=j%f\n ",i,U1[i]);else fprintf(fp2,"\n U1[%d]=-j%f\n ",i,-U1[i]);if(U2[i]>=0)fprintf(fp2," U2[%d]=j%f\n ",i,U2[i]);else fprintf(fp2," U2[%d]=-j%f\n ",i,-U2[i]);if(U0[i]>=0)fprintf(fp2," U0[%d]=j%f\n ",i,U0[i]);else fprintf(fp2," U1[%d]=-j%f\n ",i,-U0[i]);} fprintf(fp2,"\n输出各支路序电流值:");for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;fprintf(fp2,"\n I1[%d][%d]=%f\n I2[%d][%d]=%f\n I0[%d][%d]=%f\n",a,b,I1[a][b],a,b,I2[a][b],a,b,I0[a][b]); }fprintf(fp2,"\n\n");fprintf(fp2,"\n输出分布系数:\n");for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;if(a!=0&&b!=0){fprintf(fp2," C1[%d][%d]=%f\n C0[%d][%d]=%f\n",a,b,C1[a][b],a,b,C0[a][b]);}}fprintf(fp2,"\n\n");fprintf(fp2,"\n输出各节点各相电压值:");for(i=1;i<=n;i++){if(UAI[i]>0)fprintf(fp2,"\n UA[%d]=%f + j%f",i,UAR[i],UAI[i]);if(UAI[i]<0) fprintf(fp2,"\n UA[%d]=%f - j%f",i,UAR[i],-UAI[i]);if(UAI[i]==0) fprintf(fp2,"\n UA[%d]=%f ",i,UAR[i]);if(UBI[i]>0)fprintf(fp2," UB[%d]=%f + j%f",i,UBR[i],UBI[i]);if(UBI[i]<0) fprintf(fp2," UB[%d]=%f - j%f",i,UBR[i],-UBI[i]);if(UBI[i]==0) fprintf(fp2," UB[%d]=%f ",i,UBR[i]);if(UCI[i]>0)fprintf(fp2," UC[%d]=%f + j%f",i,UCR[i],UCI[i]);if(UCI[i]<0) fprintf(fp2," UC[%d]=%f - j%f",i,UCR[i],-UCI[i]);if(UCI[i]==0) fprintf(fp2," UC[%d]=%f",i,UCR[i]);}fprintf(fp2,"\n输出各支路各相电流值:\n");for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;if(IAI[a][b]>0)fprintf(fp2,"\n IA[%d][%d]=%f + j%f",a,b,IAR[a][b],IAI[a][b]);if(IAI[a][b]<0) fprintf(fp2,"\n IA[%d][%d]=%f - j%f ",a,b,IAR[a][b],-IAI[a][b]);if(IAI[a][b]==0) fprintf(fp2,"\n IA[%d][%d]=%f ",a,b,IAR[a][b]);if(IBI[a][b]>0)fprintf(fp2," IB[%d][%d]=%f + j%f ",a,b,IBR[a][b],IBI[a][b]);if(IBI[a][b]<0) fprintf(fp2," IB[%d][%d]=%f - j%f ",a,b,IBR[a][b],-IBI[a][b]);if(IBI[a][b]==0) fprintf(fp2," IB[%d][%d]=%f ",a,b,IBR[a][b]);if(ICI[a][b]>0)fprintf(fp2," IC[%d][%d]=%f + j%f ",a,b,ICR[a][b],ICI[a][b]);if(ICI[a][b]<0) fprintf(fp2," IC[%d][%d]=%f - j%f ",a,b,ICR[a][b],-ICI[a][b]);if(ICI[a][b]==0) fprintf(fp2," IC[%d][%d]=%f ",a,b,ICR[a][b]);}fprintf(fp2,"\n\n输出各节点各相电压模值:\n");for(i=1;i<=n;i++){fprintf(fp2,"\n |UA|[%d]=%f |UB|[%d]=%f |UC|[%d]=%f",i,UA[i],i,UB[i],i,UC[i]);}fprintf(fp2,"\n\n输出各支路各相电流模值:\n");for(i=1;i<=m;i++){a=zlz[i].p1;b=zlz[i].p2;fprintf(fp2,"\n |IA|[%d][%d]=%f |IB|[%d][%d]=%f|IC|[%d][%d]=%f",a,b,IA[a][b],a,b,IB[a][b],a,b,IC[a][b]);}fprintf(fp2,"\n\n\n\n");}void main() /* 程序主函数*/{ Read_data(); /*读入原始数据*/Form_Z(); /*形成节点阻抗矩阵并输出*/for(w=1;w<=100;w++){ printf(" 请输入故障类型:三相短路——0、单相接地——1、两相断相——2、两相短路——3、两相接地短路——4、单相断相——5 \n");scanf("%d",&LX);if(LX==0)SAN_L(); /*三相短路故障*/if(LX==1||LX==2){if(LX==2)XZ_L(); /*断相阻抗矩阵修正*/CHUAN_L();} /*串联型故障*/if(LX==3||LX==4||LX==5){if(LX==5)XZ_L(); /*断相阻抗矩阵修正*/BING_L();} /*并联型故障*/DY_(); /*计算节点电压*/DL_L(); /*求各支路的电流*/FZXS_L(); /*分支系数计算*/HX_L(); /*换相*/MO_L(); /*求相电压、电流的模值*/XDLSC_L(); /*输出函数*/printf(" 是否计算其它的故障(1/0): ");scanf("%d",&C);if(C==1)continue;elsebreak;}printf("\n原始数据由input.txt输入,计算结果在output.txt中\n");}电网图如下:两相接地短路故障发生在图中第三点;输入文件如下:5,9,9,41,0,1,0.94176 %第一个1表示正序,下边相对应的0表示零序,3表示注入电流1,0,2,2.04189 %后边的0,2 表示两节点间的线路1,0,4,0.361,1,3,1.20981,1,4,0.75611,3,4,0.90741,4,5,1.81471,2,5,2.41971,0,3,0.380,0,1,0.930,0,2,1.666670,0,4,0.6967960,1,3,3.62950,3,4,2.72210,1,4,2.26840,4,5,5.44420,2,5,7.25900,0,3,0.463883,1,1.061909 %此处1表示注入电流节点,1.061909表示注入电流3,2,0.4897423,3,2.6315793,4,2.777778输出文件如下:原始数据节点数: 5 正支路数: 9 负支路数: 9 注入电流数: 4相关节点: 0, 1 X1=0.941760相关节点: 0, 2 X1=2.041890相关节点: 0, 4 X1=0.360000相关节点: 1, 3 X1=1.209800相关节点: 1, 4 X1=0.756100相关节点: 3, 4 X1=0.907400相关节点: 4, 5 X1=1.814700相关节点: 2, 5 X1=2.419700相关节点: 0, 3 X1=0.380000相关节点: 0, 1 X0=0.930000相关节点: 0, 2 X0=1.666670相关节点: 0, 4 X0=0.696796相关节点: 1, 3 X0=3.629500相关节点: 3, 4 X0=2.722100相关节点: 1, 4 X0=2.268400相关节点: 4, 5 X0=5.444200相关节点: 2, 5 X0=7.259000相关节点: 0, 3 X0=0.463880注入电流节点: 1 il=1.061909注入电流节点: 2 il=0.489742注入电流节点: 3 il=2.631579注入电流节点: 4 il=2.777778输出正序导纳矩阵:j3.211001 j0.000000 -j0.826583 -j1.322576 j0.000000 j0.000000 j0.903017 j0.000000 j0.000000 -j0.413274 -j0.826583 j0.000000 j4.560212 -j1.102050 j0.000000 -j1.322576 j0.000000 -j1.102050 j5.753459 -j0.551055 j0.000000 -j0.413274 j0.000000 -j0.551055 j0.964330 输出零序导纳矩阵:j1.791628 j0.000000 -j0.275520 -j0.440839 j0.000000 j0.000000 j0.737759 j0.000000 j0.000000 -j0.137760 -j0.275520 j0.000000 j2.798614 -j0.367363 j0.000000 -j0.440839 j0.000000 -j0.367363 j2.427025 -j0.183682 j0.000000 -j0.137760 j0.000000 -j0.183682 j0.321442 输出正序阻抗矩阵:j0.383678 j0.037293 j0.097248 j0.114630 j0.081486 j0.037293 j1.401991 j0.024882 j0.074990 j0.643691 j0.097248 j0.024882 j0.255398 j0.076483 j0.054369 j0.114630 j0.074990 j0.076483 j0.230503 j0.163856 j0.081486 j0.643691 j0.054369 j0.163856 j1.406485 输出零序阻抗矩阵:j0.600949 j0.014681 j0.075778 j0.126575 j0.078621j0.014681 j1.479662 j0.008574 j0.054306 j0.665169j0.075778 j0.008574 j0.374484 j0.073922 j0.045916j0.126575 j0.054306 j0.073922 j0.468217 j0.290828j0.078621 j0.665169 j0.045916 j0.290828 j3.562243输出注入电流值:il[1]=1.061909il[2]=0.489742il[3]=2.631579il[4]=2.777778il[5]=0.000000请输入故障类型:三相短路——0、单相接地——1、两相断相——2、两相短路——3、两相接地短路——4、单相断相——5故障类型:4输出口参数值:Ip1=-2.455569Ip2=1.459908Ip0=0.995660Up1=0.372858Up2=0.372858Up0=0.372858输出各节点序电压值:U1[1]=j0.761228U2[1]=j0.141973U0[1]=j0.075449U1[2]=j0.938902U2[2]=j0.036326U0[2]=j0.008537U1[3]=j0.372858U2[3]=j0.372858U0[3]=j0.372858U1[4]=j0.812199U2[4]=j0.111658U0[4]=j0.073602U1[5]=j0.866499U2[5]=j0.079373U0[5]=j0.045717输出各支路序电流值:I1[0][1]=-0.808303I2[0][1]=-0.150752I0[0][1]=-0.081128I1[0][2]=-0.459820I2[0][2]=-0.017790I0[0][2]=-0.005122I1[0][4]=-2.256109I2[0][4]=-0.310160I0[0][4]=-0.105628I1[1][3]=0.321020I2[1][3]=-0.190846I0[1][3]=-0.081942I1[1][4]=-0.067414I2[1][4]=0.040094I0[1][4]=0.000814I1[3][4]=-0.484176I2[3][4]=0.287856I0[3][4]=0.109936I1[4][5]=-0.029922I2[4][5]=0.017790I0[4][5]=0.005122I1[2][5]=0.029922I2[2][5]=-0.017790I0[2][5]=-0.005122I1[0][3]=-0.981206I2[0][3]=-0.981206I0[0][3]=-0.803782输出分布系数:C1[1][3]=-0.130731C0[1][3]=-0.082299C1[1][4]=0.027453C0[1][4]=0.000818C1[3][4]=0.197175C0[3][4]=0.110415C1[4][5]=0.012185C0[4][5]=0.005144C1[2][5]=-0.012185C0[2][5]=-0.005144输出各节点各相电压值:UA[1]=0.000000 + j0.978649 UB[1]=0.536275 - j0.376151 UC[1]=-0.536275 - j0.376151UA[2]=0.000000 + j0.983764 UB[2]=0.781631 - j0.479077 UC[2]=-0.781631 - j0.479077UA[3]=0.000000 + j1.118575 UB[3]=0.000000 UC[3]=0.000000UA[4]=0.000000 + j0.997459 UB[4]=0.606669 - j0.388327 UC[4]=-0.606669 - j0.388327UA[5]=0.000000 + j0.991589 UB[5]=0.681651 - j0.427220 UC[5]=-0.681651 - j0.427220输出各支路各相电流值:IA[0][1]=-1.040184 IB[0][1]=0.398400 + j0.569439 IC[0][1]=0.398400 - j0.569439IA[0][2]=-0.482732 IB[0][2]=0.233683 + j0.382798 IC[0][2]=0.233683 - j0.382798IA[0][4]=-2.671898 IB[0][4]=1.177506 + j1.685192 IC[0][4]=1.177506 - j1.685192IA[1][3]=0.048231 IB[1][3]=-0.147029 - j0.443276 IC[1][3]=-0.147029 + j0.443276IA[1][4]=-0.026506 IB[1][4]=0.014474 + j0.093102 IC[1][4]=0.014474 - j0.093102IA[3][4]=-0.086384 IB[3][4]=0.208096 + j0.668580 IC[3][4]=0.208096 - j0.668580IA[4][5]=-0.007010 IB[4][5]=0.011188 + j0.041319 IC[4][5]=0.011188 - j0.041319IA[2][5]=0.007010 IB[2][5]=-0.011188 - j0.041319 IC[2][5]=-0.011188 + j0.041319IA[0][3]=-2.766194 IB[0][3]=0.177424 IC[0][3]=0.177424输出各节点各相电压模值:|UA|[1]=0.978649 |UB|[1]=0.655043 |UC|[1]=0.655043|UA|[2]=0.983764 |UB|[2]=0.916767 |UC|[2]=0.916767|UA|[3]=1.118575 |UB|[3]=0.000000 |UC|[3]=0.000000|UA|[4]=0.997459 |UB|[4]=0.720309 |UC|[4]=0.720309|UA|[5]=0.991589 |UB|[5]=0.804465 |UC|[5]=0.804465输出各支路各相电流模值:|IA|[0][1]=1.040184 |IB|[0][1]=0.694970 |IC|[0][1]=0.694970|IA|[0][2]=0.482732 |IB|[0][2]=0.448488 |IC|[0][2]=0.448488|IA|[0][4]=2.671898 |IB|[0][4]=2.055820 |IC|[0][4]=2.055820|IA|[1][3]=0.048231 |IB|[1][3]=0.467024 |IC|[1][3]=0.467024|IA|[1][4]=0.026506 |IB|[1][4]=0.094220 |IC|[1][4]=0.094220|IA|[3][4]=0.086384 |IB|[3][4]=0.700216 |IC|[3][4]=0.700216|IA|[4][5]=0.007010 |IB|[4][5]=0.042807 |IC|[4][5]=0.042807|IA|[2][5]=0.007010 |IB|[2][5]=0.042807 |IC|[2][5]=0.042807|IA|[0][3]=2.766194 |IB|[0][3]=0.177424 |IC|[0][3]=0.177424整定计算用此程序计算,结果正确:故障点在第一点;输入文件:6,10,12,41,0,1,0.45231,0,2,0.321,0,5,1.11,0,6,1.061,1,2,0.171,2,3,0.6051,4,5,0.9451,3,4,0.6051,3,5,0.6431,5,6,0.5290,0,1,0.20220,0,2,0.4640,0,3,2.0760,0,4,2.0350,0,5,1.90,0,6,0.27210,1,2,0.69150,2,3,1.8150,4,5,2.8360,3,4,1.8150,3,5,1.9280,5,6,1.5883,1,2.21093,2,3.1253,5,0.90913,6,0.9434输出文件为:原始数据节点数: 6 正支路数:10 负支路数:12 注入电流数: 4 相关节点: 0, 1 X1=0.452300相关节点: 0, 2 X1=0.320000相关节点: 0, 5 X1=1.100000相关节点: 0, 6 X1=1.060000相关节点: 1, 2 X1=0.170000相关节点: 2, 3 X1=0.605000相关节点: 4, 5 X1=0.945000相关节点: 3, 4 X1=0.605000相关节点: 3, 5 X1=0.643000相关节点: 5, 6 X1=0.529000相关节点: 0, 1 X0=0.202200相关节点: 0, 2 X0=0.464000相关节点: 0, 3 X0=2.076000相关节点: 0, 4 X0=2.035000相关节点: 0, 5 X0=1.900000相关节点: 0, 6 X0=0.272100相关节点: 1, 2 X0=0.691500相关节点: 2, 3 X0=1.815000相关节点: 4, 5 X0=2.836000相关节点: 3, 4 X0=1.815000相关节点: 3, 5 X0=1.928000相关节点: 5, 6 X0=1.588000注入电流节点: 1 il=2.210900注入电流节点: 2 il=3.125000注入电流节点: 5 il=0.909100注入电流节点: 6 il=0.943400输出正序导纳矩阵:j8.093275 -j5.882353 j0.000000 j0.000000 j0.000000 j0.000000-j5.882353 j10.660245 -j1.652892 j0.000000 j0.000000 j0.000000j0.000000 -j1.652892 j4.860995 -j1.652892 -j1.555210 j0.000000j0.000000 j0.000000 -j1.652892 j2.711093 -j1.058201 j0.000000j0.000000 j0.000000 -j1.555210 -j1.058201 j5.412861 -j1.890359j0.000000 j0.000000 j0.000000 j0.000000 -j1.890359 j2.833755输出零序导纳矩阵:j6.391730 -j1.446132 j0.000000 j0.000000 j0.000000 j0.000000-j1.446132 j4.152268 -j0.550964 j0.000000 j0.000000 j0.000000j0.000000 -j0.550964 j2.102296 -j0.550964 -j0.518672 j0.000000j0.000000 j0.000000 -j0.550964 j1.394974 -j0.352609 j0.000000j0.000000 j0.000000 -j0.518672 -j0.352609 j2.027320 -j0.629723j0.000000 j0.000000 j0.000000 j0.000000 -j0.629723 j4.304842输出正序阻抗矩阵:j0.222915 j0.136700 j0.088321 j0.074136 j0.051979 j0.034674j0.136700 j0.188079 j0.121517 j0.102000 j0.071516 j0.047707j0.088321 j0.121517 j0.469397 j0.394008 j0.276252 j0.184284j0.074136 j0.102000 j0.394008 j0.740331 j0.336282 j0.224329j0.051979 j0.071516 j0.276252 j0.336282 j0.430048 j0.286879j0.034674 j0.047707 j0.184284 j0.224329 j0.286879 j0.544262输出零序阻抗矩阵:j0.170511 j0.062137 j0.020746 j0.010063 j0.007394 j0.001082j0.062137 j0.274640 j0.091696 j0.044477 j0.032681 j0.004781j0.020746 j0.091696 j0.636604 j0.308786 j0.226886 j0.033189j0.010063 j0.044477 j0.308786 j0.901247 j0.246975 j0.036128j0.007394 j0.032681 j0.226886 j0.246975 j0.622552 j0.091068j0.001082 j0.004781 j0.033189 j0.036128 j0.091068 j0.245618输出注入电流值:il[1]=2.210900il[2]=3.125000il[3]=0.000000il[4]=0.000000il[5]=0.909100il[6]=0.943400请输入故障类型:三相短路——0、单相接地——1、两相断相——2、两相短路——3、两相接地短路——4、单相断相——5故障类型:0输出口参数值:Ip1=-4.485989Ip2=0.000000Ip0=0.000000Up1=0.000000Up2=0.000000Up0=0.000000输出各节点序电压值:U1[1]=-j0.000000U2[1]=j0.000000U0[1]=j0.000000U1[2]=j0.386765U2[2]=j0.000000U0[2]=j0.000000U1[3]=j0.603796U2[3]=j0.000000U0[3]=j0.000000U1[4]=j0.667431U2[4]=j0.000000U0[4]=j0.000000U1[5]=j0.766827U2[5]=j0.000000U0[5]=j0.000000U1[6]=j0.844455U2[6]=j0.000000U0[6]=j0.000000输出各支路序电流值:I1[0][1]=0.000000I2[0][1]=0.000000I0[0][1]=0.000000I1[0][2]=-1.208641I2[0][2]=0.000000I0[0][2]=0.000000I1[0][5]=-0.697116I2[0][5]=0.000000I0[0][5]=0.000000I1[0][6]=-0.796656I2[0][6]=0.000000I0[0][6]=0.000000I1[1][2]=-2.275089I2[1][2]=0.000000I0[1][2]=0.000000I1[2][3]=-0.358729I2[2][3]=0.000000I0[2][3]=0.000000I1[4][5]=-0.105181I2[4][5]=0.000000I0[4][5]=0.000000I1[3][4]=-0.105181I2[3][4]=0.000000I0[3][4]=0.000000I1[3][5]=-0.253547I2[3][5]=0.000000I0[3][5]=0.000000I1[5][6]=-0.146744I2[5][6]=0.000000I0[5][6]=0.000000输出分布系数:C1[1][2]=0.507154C0[1][2]=-1.#IND00C1[2][3]=0.079967C0[2][3]=-1.#IND00C1[4][5]=0.023447C0[4][5]=-1.#IND00C1[3][4]=0.023447C0[3][4]=-1.#IND00C1[3][5]=0.056520C0[3][5]=-1.#IND00C1[5][6]=0.032712C0[5][6]=-1.#IND00输出各节点各相电压值:UA[1]=0.000000 - j0.000000 UB[1]=-0.000000 + j0.000000 UC[1]=0.000000 + j0.000000UA[2]=0.000000 + j0.386765 UB[2]=0.334939 - j0.193383 UC[2]=-0.334939 - j0.193383UA[3]=0.000000 + j0.603796 UB[3]=0.522887 - j0.301898 UC[3]=-0.522887 - j0.301898UA[4]=0.000000 + j0.667431 UB[4]=0.577995 - j0.333715 UC[4]=-0.577995 - j0.333715UA[5]=0.000000 + j0.766827 UB[5]=0.664072 - j0.383414 UC[5]=-0.664072 - j0.383414UA[6]=0.000000 + j0.844455 UB[6]=0.731298 - j0.422228 UC[6]=-0.731298 - j0.422228输出各支路各相电流值:IA[0][1]=0.000000 IB[0][1]=-0.000000 - j0.000000 IC[0][1]=-0.000000 + j0.000000IA[0][2]=-1.208641 IB[0][2]=0.604321 + j1.046683 IC[0][2]=0.604321 - j1.046683IA[0][5]=-0.697116 IB[0][5]=0.348558 + j0.603702 IC[0][5]=0.348558 - j0.603702IA[0][6]=-0.796656 IB[0][6]=0.398328 + j0.689904 IC[0][6]=0.398328 - j0.689904IA[1][2]=-2.275089 IB[1][2]=1.137545 + j1.970227IC[1][2]=1.137545 - j1.970227IA[2][3]=-0.358729 IB[2][3]=0.179365 + j0.310659 IC[2][3]=0.179365 - j0.310659IA[4][5]=-0.105181 IB[4][5]=0.052591 + j0.091087 IC[4][5]=0.052591 - j0.091087IA[3][4]=-0.105181 IB[3][4]=0.052591 + j0.091087 IC[3][4]=0.052591 - j0.091087IA[3][5]=-0.253547 IB[3][5]=0.126774 + j0.219572 IC[3][5]=0.126774 - j0.219572IA[5][6]=-0.146744 IB[5][6]=0.073372 + j0.127081 IC[5][6]=0.073372 - j0.127081输出各节点各相电压模值:|UA|[1]=0.000000 |UB|[1]=0.000000 |UC|[1]=0.000000|UA|[2]=0.386765 |UB|[2]=0.386757 |UC|[2]=0.386757|UA|[3]=0.603796 |UB|[3]=0.603783 |UC|[3]=0.603783|UA|[4]=0.667431 |UB|[4]=0.667416 |UC|[4]=0.667416|UA|[5]=0.766827 |UB|[5]=0.766810 |UC|[5]=0.766810|UA|[6]=0.844455 |UB|[6]=0.844436 |UC|[6]=0.844436输出各支路各相电流模值:|IA|[0][1]=0.000000 |IB|[0][1]=0.000000 |IC|[0][1]=0.000000|IA|[0][2]=1.208641 |IB|[0][2]=1.208614 |IC|[0][2]=1.208614|IA|[0][5]=0.697116 |IB|[0][5]=0.697100 |IC|[0][5]=0.697100|IA|[0][6]=0.796656 |IB|[0][6]=0.796638 |IC|[0][6]=0.796638|IA|[1][2]=2.275089 |IB|[1][2]=2.275039 |IC|[1][2]=2.275039|IA|[2][3]=0.358729 |IB|[2][3]=0.358721 |IC|[2][3]=0.358721|IA|[4][5]=0.105181 |IB|[4][5]=0.105179 |IC|[4][5]=0.105179|IA|[3][4]=0.105181 |IB|[3][4]=0.105179|IC|[3][4]=0.105179|IA|[3][5]=0.253547 |IB|[3][5]=0.253542 |IC|[3][5]=0.253542|IA|[5][6]=0.146744 |IB|[5][6]=0.146741 |IC|[5][6]=0.146741请输入故障类型:三相短路——0、单相接地——1、两相断相——2、两相短路——3、两相接地短路——4、单相断相——5故障类型:0输出口参数值:Ip1=-5.316901Ip2=0.000000Ip0=0.000000Up1=0.000000Up2=0.000000Up0=0.000000输出各节点序电压值:U1[1]=j0.273177U2[1]=j0.000000U0[1]=j0.000000U1[2]=-j0.000000U2[2]=j0.000000U0[2]=j0.000000U1[3]=j0.353910U2[3]=j0.000000U0[3]=j0.000000U1[4]=j0.457678U2[4]=j0.000000U0[4]=j0.000000U1[5]=j0.619763U2[5]=j0.000000U0[5]=j0.000000U1[6]=j0.746350U2[6]=j0.000000U0[6]=j0.000000输出各支路序电流值:I1[0][1]=-0.603974I2[0][1]=0.000000I0[0][1]=0.000000I1[0][2]=0.000000I2[0][2]=0.000000I0[0][2]=0.000000I1[0][5]=-0.563421I2[0][5]=0.000000I0[0][5]=0.000000I1[0][6]=-0.704104I2[0][6]=0.000000I0[0][6]=0.000000I1[1][2]=1.606927I2[1][2]=0.000000I0[1][2]=0.000000I1[2][3]=-0.584975I2[2][3]=0.000000I0[2][3]=0.000000I1[4][5]=-0.171518I2[4][5]=0.000000I0[4][5]=0.000000I1[3][4]=-0.171518I2[3][4]=0.000000I0[3][4]=0.000000I1[3][5]=-0.413457I2[3][5]=0.000000I0[3][5]=0.000000I1[5][6]=-0.239296。

电分课设报告 电力系统短路故障的计算机 算法程序设计

电分课设报告  电力系统短路故障的计算机 算法程序设计

2008-2009学年度第一学期课程设计电力系统短路故障的计算机算法程序设计姓名学号班级05级电气(2)班指导教师谭亲跃1.课程设计说明:根据所给的电力系统,编制短路电流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。

通过自己设计电力系统计算程序使同学们对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。

2.选择所用计算机语言的理由我们使用的是第四代计算机语言的MATLAB,利用其丰富的函数资源,它的优点如下:1语言简洁紧凑,使用方便灵活,库函数极其丰富。

MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。

由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。

可以说,用MATLAB进行科技开发是站在专家的肩膀上。

具有FORTRAN和C等高级语言知识的读者可能已经注意到,如果用FORTRAN 或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。

例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。

在求解过程中,最麻烦的要算第二部分。

解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。

即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。

解线性方程的程序用FORTRAN 和C这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。

以下用MATLAB编写以上两个小程序的具体过程。

MATLAB求解下列方程,并求解矩阵A的特征值。

Ax=b,其中:A= 32 13 45 6723 79 85 1243 23 54 6598 34 71 35b= 1234解为:x=A\b;设A的特征值组成的向量e,e=eig(A)。

可见,MATLAB的程序极其简短。

更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。

电力系统下课程设计-短路电流计算..

电力系统下课程设计-短路电流计算..

《电力系统分析》课程设计报告题目:3G9bus短路电流计算系别电气工程学院专业班级10级电气四班学生姓名学号指导教师提交日期 2012年12月10日目录一、设计目的 (3)二、短路电流计算的基本原理和方法 (3)2.1电力系统节点方程的建立 (3)2.2利用节点阻抗矩阵计算短路电流 (4)三、3G9bus短路电流在计算机的编程 (6)3.1、三机九节点系统 (6)3.3输出并计算结果 (13)四.总结 (15)一、设计目的1.掌握电力系统短路计算的基本原理;2.掌握并能熟练运用一门计算机语言(MATLAB 语言或FORTRAN 或C 语言或C++语言);3.采用计算机语言对短路计算进行计算机编程计算。

二、短路电流计算的基本原理和方法2.1电力系统节点方程的建立利用节点方程作故障计算,需要形成系统的节点导纳(或阻抗)矩阵。

一般短路电流计算以前要作电力系统的潮流计算,假定潮流计算的节点导纳矩阵已经形成,在此基础上通过追加支路的方式形成电力短路电流计算的节点导纳矩阵YN 。

1)对发电机节点在每一发电机节点增加接地有源支路 i E 与i i i Z R jX =+串联 求短路稳态解:i QiE E =i i qiZ R jX =+求短路起始次暂态电流解:i i E E ''= i i i Z R jX ''=+一般情况下发电机定子绕组电阻忽略掉,并将i E 与i i i Z R jX =+的有源支路转化成电流源i i i I E Z =与导纳1i i i i i Y G B R jX =+=+并联的形式2)负荷节点的处理负荷节点在短路计一算中一般作为节点的接地支路,并用恒定阻抗表示,其数值由短路前瞬间的负荷功率和节点实际电压算出,即首先根据给定的电力系统运行方式制订系统的等值电路,并进行各元件标么值参数的计算,然后利用变压器和线路的参数形成不含发电机和负荷的节点导纳矩阵 YN 。

电力系统分析报告课程设计-电力系统短路故障地计算机算法程序设计

电力系统分析报告课程设计-电力系统短路故障地计算机算法程序设计

电力系统分析课程设计电力系统短路故障的计算机算法程序设计姓名____刘佳琪___学号_2014409436__班级__20144094___指导教师___鲁明芳____目录1 目的与原理 (1)1.2 关于电力系统短路故障的计算机算法程序设计目的 (1)1.2 设计原理 (1)1.2.1计算机计算原理 (1)1.2.2电力系统短路计算计算机算法 (2)2 计算机编程环境及编程语言的选择 (2)2.1 优势特点 (2)2.1.1编程环境 (3)2.1.2简单易用 (3)2.1.3强处理能力 (3)2.1.4图形处理 (3)2.1.5模块集和工具箱 (4)2.1.6程序接口 (4)2.1.7应用软件开发 (4)3 对称故障的计算机算法 (5)3.1 用阻抗矩阵计算三相短路电流 (7)3.2 用节点导纳矩阵计算三相短路电流 (9)4 附录程序清单 (14)4.1 形成节点导纳矩阵 (14)4.2 形成节点阻抗矩阵 (15)4.2 对称故障的计算 (17)1 目的与原理1.1 关于电力系统短路故障的计算机算法程序设计目的电力系统正常运行的破坏多半是由于短路故障引起的,发生短路时,系统从一种状态剧变成另一种状态,并伴随复杂的暂态现象。

所谓短路故障,是指一切不正常的相与相之间或相与地发生通路的情况。

本文根据电力系统三相对称短路的特点,建立了合理的三相短路的数学模型,在此基础上,形成电力系统短路电流实用计算方法;节点阻抗矩阵的支路追加法。

编制了对任意一个电力系统在任意点发生短路故障时三相短路电流及其分布的通用计算程序,该办法适用于各种复杂结构的电力系统。

从一个侧面展示了计算机应用于电力系统的广阔前景。

根据所给的电力系统,编制短路电流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。

通过自己设计电力系统计算程序使同学对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。

电力系统的短路故障是严重的,而又是发生几率最多的故障,一般说来,最严重的短路是三相短路。

电力系统潮流及短路电流计算程序之欧阳理创编

电力系统潮流及短路电流计算程序之欧阳理创编

班级:姓名:学号:一、作业要求编写程序计算图1所示算例系统的潮流及三相短路电流。

潮流计算:方法不限,计算系统的节点电压和相角。

短路电流:4号母线发生金属性三相短路时(z f=0),分别按照精确算法和近似算法计算短路电流、系统中各节点电压以及网络中各支路的电流分布,并对两种情况下的计算结果进行比较。

二、电路图及参数图1 3机9节点系统表1 9节点系统支路参数表2 9节点系统发电机参数表3 9节点系统负荷参数三、计算步骤 (1) 进行系统正常运行状态的潮流计算,求得(0)i U (2) 形成不含发电机和负荷的节点导纳矩阵Y N ;(3)将发电机表示为电流源i I (/i diE jx ''=)和导纳i y (1/di jx '=)的并联组合;节点负荷用恒阻抗的接地支路表示;形成包括所有发电机支路和负荷支路的节点导纳矩阵Y ,即在Y N 中的发电机节点和负荷节点的自导纳上分别增加发电机导纳iy 和负荷导纳,LD iy (*,,22LD i LDi LDiLD i i i S P jQ y V V -==);(4)利用1Z Y -=,计算节点阻抗矩阵,从而得到阻抗矩阵中的第f 列;(5) 利用公式(6-7)或(6-10)计算短路电流;(6) 利用公式(6-8)或(6-11)计算系统中各节点电压; (7)利用公式(6-9)计算变压器支路的电流;对输电线路利用П型等值电路计算支路电流。

四、计算结果节点导纳矩阵Yn : Columns 1 through 50 -17.3611i 0 0 0 +17.3611i 00 0 -16.0000i 0 0 0 0 0 0 -17.0648i 0 0 0 +17.3611i 0 0 3.3074 -39.3089i -1.3652 +11.6041i0 0 0 -1.3652 +11.6041i 2.5528 -17.3382i0 0 0 -1.9422 +10.5107i 00 0 +16.0000i 0 0 -1.1876 + 5.9751i0 0 0 0 00 0 0 +17.0648i 0 0 Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i-1.9422 +10.5107i 0 0 00 -1.1876 + 5.9751i 0 03.2242 -15.8409i 0 0 -1.2820 +5.5882i0 2.8047 -35.4456i -1.6171 +13.6980i 00 -1.6171 +13.6980i 2.7722 -23.3032i -1.1551+ 9.7843i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i电压幅值:1.0400 1.0250 1.0250 1.0258 0.9956 1.0127 1.0258 1.0159 1.0324电压相角:0 0.1620 0.0814 -0.0387 -0.0696 -0.0644 0.0649 0.0127 0.0343节点有功:0.7164 1.6300 0.8500 0.0000 -1.2500 -0.9000 -0.0000 -1.0000 -0.0000节点无功:0.2705 0.0665 -0.1086 0.0000 -0.5000 -0.3000 -0.0000 -0.3500 -0.0000修正后的节点导纳矩阵Y:Columns 1 through 50 -20.6944i 0 0 0 +17.3611i 00 0 -19.3333i 0 0 0 0 0 0 -20.3982i 0 0 0 +17.3611i 0 0 3.3074 -39.3089i-1.3652 +11.6041i0 0 0 -1.3652 +11.6041i 3.8716 -17.6627i0 0 0 -1.9422 +10.5107i 00 0 +16.0000i 0 0 -1.1876 + 5.9751i0 0 0 0 00 0 0 +17.0648i 0 0 Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i-1.9422 +10.5107i 0 0 00 -1.1876 + 5.9751i 0 04.1321 -16.0184i 0 0 -1.2820 +5.5882i0 2.8047 -35.4456i -1.6171 +13.6980i 00 -1.6171 +13.6980i 3.7323 -23.6669i -1.1551+ 9.7843i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i节点阻抗矩阵Z的第4列:0.0463 + 0.1252i0.0329 + 0.0693i0.0316 + 0.0707i0.0552 + 0.1493i0.0589 + 0.1204i0.0562 + 0.1226i0.0397 + 0.0838i0.0416 + 0.0814i0.0378 + 0.0845i精确计算结果:短路电流:模值:6.4459相角:-71.9365节点电压模值:0.1831 0.5687 0.5427 0.0000 0.1466 0.1506 0.4537 0.4463 0.4495支路电流:i j Iij1 4 0.5779-3.1264i2 7 1.3702-1.4433i3 9 0.64294-1.4808i4 5 -0.77968+1.5248i4 6 -0.6411+1.477i5 7 -0.89528+1.6436i6 9 -0.73353+1.5487i7 8 0.50734+0.10234i8 9 0.062766+0.056451i近似计算结果:短路电流:模值:6.2838相角:-69.7198节点电压模值:0.1611 0.5214 0.5157 0.0000 0.1827 0.16750.4227 0.4348 0.4217五、程序流程图六、程序及输入文件input_data.xls 文件:Sheet1Sheet2powerflow_cal.m 文件:l=9;%支路数n=9;%节点数m=6;%PQ节点数Yn=zeros(n);%初始化节点导纳矩阵Y DATA1=xlsread('input_data.xls',1);%计算节点导纳矩阵Yfor k=1:li=DATA1(k,1);j=DATA1(k,2);R=DATA1(k,3);X=DATA1(k,4);B2=DATA1(k,5);Yn(i,i)=Yn(i,i)+1i*B2+1/(R+1i*X); Yn(j,j)=Yn(j,j)+1i*B2+1/(R+1i*X); Yn(i,j)=Yn(i,j)-1/(R+1i*X);Yn(j,i)=Yn(j,i)-1/(R+1i*X);enddisp('节点导纳矩阵Yn:');disp(Yn);G=real(Yn);B=imag(Yn);DATA2=xlsread('input_data.xls',2);P=zeros(1,n);Q=zeros(1,n);U=ones(1,n);P(2:n)=DATA2(2:n,3);Q(4:n)=DATA2(4:n,4);U(1:3)=DATA2(1:3,5);%设置节点电压初值e(1)=DATA2(1,5);e(2:n)=1.0;f(1:n)=0.0;%设置迭代次数t=0;tmax=10;while t<=tmax%计算f(x)a(1:n)=0.0;c(1:n)=0.0;for i=2:nfor j=1:na(i)=a(i)+G(i,j)*e(j)-B(i,j)*f(j);c(i)=c(i)+G(i,j)*f(j)+B(i,j)*e(j);endendfor i=2:ndeltaP(i)=P(i)-e(i)*a(i)-f(i)*c(i);endfor j=4:ndeltaQ(j)=Q(j)-f(j)*a(j)+e(j)*c(j);endfor k=2:3deltaU2(k)=U(k)*U(k)-e(k)*e(k)-f(k)*f(k);endfx=[deltaP(2:n) deltaQ(4:n) deltaU2(2:3)]'; %计算雅克比矩阵Jfor i=2:nfor j=2:nif i~=jH(i,j)=-(G(i,j)*e(i)+B(i,j)*f(i));N(i,j)=B(i,j)*e(i)-G(i,j)*f(i);elseH(i,j)=-a(i)-(G(i,i)*e(i)+B(i,i)*f(i)); N(i,j)=-c(i)+(B(i,i)*e(i)-G(i,i)*f(i));endendendfor i=4:nfor j=2:nif i~=jM(i,j)=B(i,j)*e(i)-G(i,j)*f(i);L(i,j)=G(i,j)*e(i)+B(i,j)*f(i);elseM(i,j)=c(i)+(B(i,i)*e(i)-G(i,i)*f(i));L(i,j)=-a(i)+(G(i,i)*e(i)+B(i,i)*f(i));endendendfor i=2:3for j=2:nif i~=jR(i,j)=0;S(i,j)=0;elseR(i,j)=-2*e(i);S(i,j)=-2*f(i);endendendJ=[H(2:n,2:n) N(2:n,2:n);M(4:n,2:n) L(4:n,2:n);R(2:3,2:n) S(2:3,2:n)];if max(abs(fx))<0.0001%输出结果break;else%求解修正方程获得dxdx=-J^(-1)*fx;dx=dx';e(2:n)=e(2:n)+dx(1:n-1);f(2:n)=f(2:n)+dx(n:2*(n-1));t=t+1;endendif t>tmaxstr='潮流计算不收敛';disp(str);elsea(1:n)=0.0;c(1:n)=0.0;for i=1:nfor j=1:na(i)=a(i)+G(i,j)*e(j)-B(i,j)*f(j); c(i)=c(i)+G(i,j)*f(j)+B(i,j)*e(j);endendfor i=1:nU(i)=e(i)+1i*f(i);amp(i)=abs(U(i));arg(i)=angle(U(i));P(i)=e(i)*a(i)+f(i)*c(i); Q(i)=f(i)*a(i)-e(i)*c(i); enddisp('电压幅值:');disp(amp);disp('电压相角:');disp(arg);disp('节点有功:');disp(P);disp('节点无功:');disp(Q);end%计算短路电流f=4;zf=0.0;%修正节点导纳矩阵Xd=DATA2(1:3,6);E=DATA2(1:3,7);for i=1:3Ii(i)=E(i)/(1i*Xd(i));endY=Yn;for i=1:3Y(i,i)=Y(i,i)+1/(1i*Xd(i));endfor j=4:nY(j,j)=Y(j,j)+(-P(j)+1i*Q(j))/(U(j)*U(j)); enddisp('修正后的节点导纳矩阵Y:');disp(Y);Z=Y^(-1);disp('节点阻抗矩阵Z的第4列:');disp(Z(:,4));%精确计算disp('精确计算结果:');U0=U;If=U0(f)/(Z(f,f)+zf);amp=abs(If);arg=atand(imag(If)/real(If));disp('短路电流:'); disp('模值:');disp(amp);disp('相角:');disp(arg);for i=1:nU(i)=U0(i)-Z(i,f)*If; amp=abs(U);enddisp('节点电压模值:'); disp(amp);disp('支路电流: ');str=['i ''j '' Iij']; disp(str);for k=1:li=DATA1(k,1);j=DATA1(k,2);r=DATA1(k,3);x=DATA1(k,4);z=r+1i*x;I=(U(i)-U(j))/z;str=[num2str(i) ' ' num2str(j) ' ' num2str(I)]; disp(str);end%近似计算disp('近似计算结果:');U0(1:n)=1.0;If=U0(f)/(Z(f,f)+zf);amp=abs(If);arg=atand(imag(If)/real(If));disp('短路电流:');disp('模值:');disp(amp);disp('相角:');disp(arg);for i=1:nU(i)=U0(i)-Z(i,f)*If;amp=abs(U);enddisp('节点电压模值:');disp(amp);。

电力系统三相短路的编程计算

电力系统三相短路的编程计算

电力系统三相短路的编程计算简介:电力系统三相短路是指电力系统发生故障时,三相电流短路连接,导致系统电流急剧增加,可能引发设备烧毁和电力系统瘫痪的危险。

因此,进行电力系统短路计算是非常重要的。

本文将介绍如何利用编程语言进行电力系统三相短路计算。

1.三相短路计算原理三相短路计算是指在给定电网拓扑、负荷数据以及故障点位置的情况下,通过计算得到短路电流的数值和相位。

计算过程主要包括以下几个步骤:1.确定故障位置:根据电网的拓扑结构确定故障点的位置。

2.分解复杂电网为简化电路:将复杂的电网拓扑结构分解为简化的电路模型。

3.计算电流分布:通过求解电流方程,得到各支路的电流分布。

4.计算短路电流:根据电流分布和故障点位置,计算短路电流大小和相位。

2.编程实现步骤2.1数据输入首先,需要从用户获取输入数据,包括电网拓扑结构、负荷数据和故障点位置。

可以通过编程语言提供的输入函数或者读取数据文件的方式获取数据。

2.2电网拓扑解析将输入的电网拓扑结构进行解析,构建电路模型。

可以采用图论算法进行解析,比如深度优先遍历或广度优先遍历,将电网拓扑结构转化为图的邻接矩阵或邻接表。

2.3电流分布计算利用电路分析的方法,根据电路模型和负荷数据,计算每个节点的电压值。

可以采用基尔霍夫电压法或者毕奥萨法进行计算。

2.4短路电流计算根据故障点位置和电流分布,计算各个支路的电流值和相位。

可以采用基尔霍夫电流法来计算短路电流。

2.5结果输出将计算得出的短路电流值和相位进行输出,可以利用编程语言提供的输出函数或者将结果保存到文件中。

3.编程计算实例以下是一个使用Python语言实现电力系统三相短路计算的示例代码:```pythonimport numpy as np#输入电网拓扑结构、负荷数据和故障点位置等数据topology = np.array([[0, 1, 1, 0],[1,0,1,1],[1,1,0,1],[0,1,1,0]])loads = np.array([100, 200, 150, 100])fault_location = 2#电压计算voltages = np.linalg.solve(topology, loads)#短路电流计算short_circuit_current = loads[fault_location] /np.sum(voltages)#输出结果print("短路电流大小:", short_circuit_current)```以上代码使用numpy库进行矩阵计算,首先输入电网拓扑结构、负荷数据和故障点位置等数据,然后利用numpy库提供的线性方程求解函数linalg.solve(计算电压值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.C语言实现三相短路电流的计算程序
代码使用C++编写的:
#include "stdafx.h"
#include"stdio.h"
#include"math.h"
#define Sd 100
#define Uav1 37
#define Uav2 6.3
int main(int argc, char* argv[])
{
double xg1,S2,l1,l2,xT,Sn,xg2,x1,x2,x3;
printf("请输入发电机G1参数:xg1=");
scanf("%lf",&xg1);
printf("请输入发电机G2提供的短路功率:S2=");
scanf("%lf",&S2);
xg2=0.1*Sd/S2*10;
printf("请输入线路L1参数:l1=");
scanf("%lf",&l1);
x1=0.4*l1*Sd/Uav1/Uav1;
printf("请输入线路L2参数:l2=");
scanf("%lf",&l2);
x2=0.4*l2*Sd/Uav1/Uav1;
printf("请输入变压器参数:Vk%=");
scanf("%lf",&xT);
printf("请输入变压器参数:Sn=");
scanf("%lf",&Sn);
x3=0.5*xT/100*Sd/Sn;
printf("xg1=%lf,xg2=%lf,x1=%lf,x2=%lf,x3=%lf\n",xg1,xg2,x1,x2,x3);
double c,x4,x5,x6,I1k,I1,I2k,I2;
c=sqrt(3);
x4=xg2+x2;
x5=x1*x4/(x1+x4);
x6=x5+x3;
I1k=1/x5;
I1=I1k*Sd/Uav1/c;
printf("\n短路点在k1处时,短路电流标幺值I1k=%lf,有名值I1=%lf",I1k,I1);
I2k=1/x6;
I2=I2k*Sd/Uav2/c;
printf("\n短路点在k2处时,短路电流标幺值I2k=%lf,有名值I2=%lf\n",I2k,I2);
return 0;
}。

相关文档
最新文档