电力系统分析课设 C语言

合集下载

《C语言程序设计》课程设计任务书-建电11412

《C语言程序设计》课程设计任务书-建电11412

《C语言》课程设计任务书一、性质与目的:本课程设计是学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力。

通过实习,加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时通过查询资料,培养学生自学、接受新知识能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,培养学生实际上机调试能力。

二、基本要求:1、选题规定2、设计结束后,要求每个学生上交一份打印的实习报告。

3、设计期间,学生要服从指导教师统一安排,遵守机房制度。

4、严格遵守纪律,不迟到,不早退。

对于无故缺勤者,成绩按不及格处理。

三、设计内容:题目见后边附录四、课程设计的成绩评定a)实习期间的平时表现;b)设计任务的考核成绩;c)设计报告的批阅成绩。

根据以上的成绩由指导教师进行综合评定,成绩分优、良、中、及格和不及格五个等级。

五、实习进程实习为期一周,共22学时,周一至周四每天利用半天时间查阅资料,另外半天到计算机房调试程序(上机的具体时间遵照机房的安排),周五对所设计的软件进行上机考核验收,考核合格者书写设计报告(电子版和打印版),下周一交给指导教师。

六、设计报告格式首先是封面(如下图)其次是目录(要求根据报告内容自动生成)一、设计思路二、程序流程图三、源程序清单四、程序运行结果五、设计总结六、教师评语(学生不要填写)然后是根据目录而写的具体内容附录:(一)基础部分:1.输入一个五位整数,将它反向输出。

例如输入12345,输出应为54321。

(15分)2.用两种循环结构分别编程计算1+2+3…+100的值。

运行结果为“1+2+…+100=5050”(15分)3. 从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。

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

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

程序的稳定性分析
程序在不同计算机上的运行 结果是否一致。
程序运行过程中,输入数据 的变化对输出结果的影响程 度。
程序在长时间运行过程中, 输出结果是否保持稳定。
程序在处理异常情况时的表 现和稳定性。
程序的扩展性分析
代码可读性:C语言程序应具备良好的可读性,方便后续维护和修改 算法效率:C语言程序应采用高效的算法,提高计算速度 内存占用:C语言程序应合理利用内存,避免内存泄漏和不必要的内存占用 扩展性:C语言程序应具备良好的扩展性,方便添加新功能和优化性能
THANK YOU
汇报人:XX
程序的异常处理说明
异常类型:输入 错误、计算错误、 内存不足等
异常处理方式: 使用try-catch 语句进行异常捕 获和处理
异常处理流程: 当异常发生时, 程序会输出错误 信息并终止运行
异常处理结果: 确保程序在遇到 异常时能够正确 处理并给出相应 的提示信息
C语言程序应用示例
示例程序的输入数据格式
添加标题
添加标题
添加标题Βιβλιοθήκη 输入输出函数:用于数据的输入和 输出
函数:可重复使用的代码块,具有 特定的功能
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、加深理解并巩固电力系统发生短路的基本知识。

c语言程序课程设计报告 电费系统

c语言程序课程设计报告 电费系统

课程设计课程名称 C语言课程设计题目名称酒店房间预订系统学院物理与光电工程专业班级 14级光电信息科学与工程(2)班学号3114008620 3114008621 3114008622 3114008623 3114008615 姓名陆卓焱佘金鸿谭江瀚欧阳永祥梁应贤任课教师郑玲利2016年 5月20日广东工业大学课程设计任务书一、课程设计的内容《C语言课程设计》是《C语言程序设计》课程的姐妹课程。

通过课程设计这一教学实践环节,使学生熟练掌握C语言的基础知识(数据类型、运算符和表达式)、C语言的三种基本结构(顺序结构、选择结构和循环结构)、数组、函数和指针的使用,并通过学生自学,掌握用户建立的数据类型和文件的使用。

通过《酒店房间预订系统》题目的完成,使学生能够运用C语言的知识分析问题和解决问题,使综合分析问题和解决问题的能力得到提高。

该题目要求学生在Visual C++环境中实现程序的编译、连接和运行。

具体完成的内容如下:1、系统功能设计(具有插入、查询、修改、删除、显示等功能);2、总体设计方案;3、模块设计(函数算法及代码设计);4、程序调试;5、系统的操作说明。

二、课程设计的要求与数据1、要求使用模块化程序设计。

2、代码使用锯齿形的书写格式。

3、小组采用分工合作的形式完成设计任务。

三、课程设计应完成的工作1、完成“酒店房间预订系统”程序的设计和调试。

2、撰写课程设计报告(论文),其结构如下:封面、任务书、摘要、小组情况、目录、正文、参考文献(详细信息请参考“C语言课程设计报告提纲”)。

3、提交材料课程设计结束,学生应该提交1)纸质版的设计报告一份;2)电子版的设计报告一份;3)电子版的系统文件一套(含*.C程序和数据文件)。

四、课程设计进程安排五、应收集的资料及主要参考文献[1] 谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.6.[2] 谭浩强. C程序设计(第四版)学习辅导[M].北京:清华大学出版社,2010.7. 发出任务书日期: 2016年 4 月25 日指导教师签名:计划完成日期: 2016年5月13日基层教学单位责任人签章:主管院长签章摘要在市场经济的激烈的竞争情况下,对酒店整个来说,对酒店经营状况起决定作用的是酒店的服务管理水平。

电力系统分析潮流计算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");

电力系统分析课程设计

电力系统分析课程设计

电力系统分析课程设计本课程设计旨在通过潮流计算方法,对电力系统进行分析和优化。

设计要求包括了各元件参数计算、绘制等效电路、功率分布计算和调压计算等环节。

在设计过程中,我们采用了基于节点电压法的潮流计算方法,并结合实际情况进行了调整和优化。

通过本次课程设计,我们深入了解了电力系统的基本原理和潮流计算方法,同时也提高了我们的实际操作能力。

设计意义电力系统是现代社会不可或缺的基础设施之一,而潮流计算则是电力系统分析和优化的基础。

本课程设计旨在通过实践操作,加深对电力系统的理解和掌握潮流计算方法,为今后从事相关工作打下基础。

设计要求本课程设计要求对电力系统进行潮流计算,并进行相应的优化。

具体要求包括各元件参数计算、绘制等效电路、功率分布计算和调压计算等环节。

同时,还要结合实际情况进行调整和优化,确保计算结果的准确性和可靠性。

设计环节3.1 设计思路本次课程设计采用基于节点电压法的潮流计算方法,通过对电力系统各元件的参数计算和等效电路的绘制,得出系统中各节点的电压和功率分布情况,并进行调压计算和优化。

设计思路简单明了,操作难度适中,适合初学者进行实践操作。

3.2 潮流计算过程3.2.1 各元件参数计算在潮流计算过程中,需要对电力系统中各元件的参数进行计算。

这些参数包括电阻、电抗、导纳等,是潮流计算的基础。

在计算过程中,需要结合实际情况进行调整和优化,确保计算结果的准确性和可靠性。

3.2.2 绘制等效电路绘制等效电路是潮流计算过程中的重要环节。

通过等效电路的绘制,可以得出电力系统中各节点的电压和功率分布情况,为后续的调压计算和优化提供依据。

在绘制过程中,需要注意各元件的参数和连接方式,确保等效电路的准确性和可靠性。

3.2.3 功率分布计算功率分布计算是潮流计算过程中的关键环节。

通过功率分布计算,可以得出电力系统中各节点的功率分布情况,为后续的调压计算和优化提供依据。

在计算过程中,需要注意各节点的负荷情况和电力系统的运行状态,确保计算结果的准确性和可靠性。

C语言单相智能电表课程设计

C语言单相智能电表课程设计

C语言单相智能电表课程设计一、课程目标知识目标:1. 学生能理解C语言在单相智能电表编程中的应用,掌握相关数据类型、语法结构及编程技巧。

2. 学生能掌握单相智能电表的基本原理和功能,了解其硬件与软件的关联性。

3. 学生能运用C语言编写程序,实现单相智能电表的基本功能,如电量计算、数据显示等。

技能目标:1. 学生能运用C语言编程实现单相智能电表的数据处理和分析,提高问题解决能力。

2. 学生能通过课程学习,培养良好的编程习惯,提高代码编写效率。

3. 学生能运用所学知识,进行项目实践,具备一定的团队协作能力。

情感态度价值观目标:1. 学生对C语言编程产生兴趣,认识到编程在工程技术领域的重要性和广泛应用。

2. 学生通过课程学习,培养严谨的科学态度和积极的学习态度,增强自信心。

3. 学生能够关注智能电表在生活中的应用,认识到节能减排的重要性,提高环保意识。

本课程针对高年级学生,结合C语言编程和单相智能电表相关知识,旨在提高学生的编程技能和实际问题解决能力。

课程要求学生在理解基本原理的基础上,动手实践,培养团队协作精神。

通过课程目标的设定,使学生在知识、技能和情感态度价值观方面取得全面发展。

二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构、函数等基本概念。

2. 单相智能电表原理:介绍单相智能电表的工作原理、硬件组成、功能特点。

3. C语言编程实践:- 编程环境与工具的使用。

- 电量计算算法实现。

- 数据显示与存储方法。

- 异常处理与错误检测。

4. 项目实践:- 设计并实现一个简单的单相智能电表程序。

- 针对实际应用场景,优化程序功能。

- 团队协作,完成项目报告与展示。

5. 教学内容安排与进度:- C语言基础回顾(1课时)。

- 单相智能电表原理(1课时)。

- C语言编程实践(4课时)。

- 项目实践(4课时)。

- 项目报告与展示(1课时)。

教学内容参照教材相关章节,结合课程目标,保证科学性和系统性。

电力系统潮流计算的C语言实现

电力系统潮流计算的C语言实现

//////////////////////////////////////////////////////////////////////// PQ分解法潮流////文件输入格式:节点总数n(包括联络节点),支路数zls ////节点数(发电机和负荷)nb,接地电抗数mdk,迭代精度eps // //考虑负荷静特性标志kk2(0考虑),平衡节点号,优化标志(0不优化) ////最大迭代次数it1,支路左右节点号izl[],jzl[],支路电阻zr[],电抗zx[] ////支路容纳zyk[],节点号nob[]及标志nobt[](0-PQ,-1-PV) ////发电机和负荷有功、无功pg[],qg[],pl[],ql[] ////电压v0[](pv节点输入实际值,PQ节点任输入一值) // //电抗节点号idk[],电抗值dkk[] ////////////////////////////////////////////////////////////////////////#include "math.h"#include "stdio.h"#define NS 2000 //最大节点数#define NS2 NS * 2#define NS4 1000 //NS4、NS必须大于2*zls。

#define ZS 3000 //最大支路数#define ZS2 ZS * 2#define DKS 200 //最大电抗器数#define N2 ZS * 4#define N3 ZS * 8 + NS * 4FILE *fp1, *fp2;char inname[12], outname[12];// fp1输入数据文件指针fp2输出文件指针// inname[]输入数据文件名outname[]输出数据文件名int n, zls, nb, mdk, mpj, bnsopton, it1, dsd, kk2, nzls;// 节点总数n(包括联络节点) 支路数(回路数)zls 节点数nb(发电机和负荷) // 接地电抗数mdk 精度eps 平衡节点号mpj// 节点优化(标志)bnsopton(=0节点不优化,!=0节点优化)// 最大迭代次数it1 最低电压或最大功率误差节点号dsd// 负荷静特性标志(=0考虑负荷静特性)// 支路数(双回线算一条支路)int izl[ZS], jzl[ZS], idk[DKS], yds[NS], ydz[NS], iy[ZS2];// izl[],jzl[],idk[]:分别存放左、右节点号和电抗器节点号。

电力系统通用潮流计算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。

武汉理工大学电力系统分析C程序-短路电流计算

武汉理工大学电力系统分析C程序-短路电流计算

5.C语言实现三相短路电流的计算程序代码使用C++编写的:#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_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{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,分子,是一个浮点数。

基于MATLAB和VisualBasic的电力系统课程设计

基于MATLAB和VisualBasic的电力系统课程设计

信息工程学院电力系统分析课程设计报告书题目: 电力系统短路故障的计算机算法程序设计专业:班级:学号:学生姓名:指导教师:年月日信息工程学院课程设计任务书目录2.2 总流程图 (2)3 详细设计 (3)3.1 VB界面制作详细程序 (3)3.2 测试算例 (8)4 总结 (17)参考文献 (18)附录 (19)1 任务提出与方案论证1.1 任务提出电力系统的故障有很多种,而短路则是最为严重的一种,包括一相短路接地,两相短路,两相短路接地,三相短路,其中三相短路在电力系统中虽然发生的概率很小,但一旦发生产生的影响非常严重,电力系统中设备的动稳定和热稳定校验都要以三相短路电流为依据,因此我选择做电力系统三相短路的计算程序更有意义。

电力系统发生短路故障造成的危害性是最大的。

作为电力系统三大计算之一,分析短路故障的参数更为重要。

通过课程设计, 使学生巩固电力系统三相短路计算的基本原理与方法,掌握短路电流的数值求解方法,开发系统短路故障电流的计算程序。

同时,通过软件开发,也有助于计算机操作能力和软件开发能力的提高。

1.2 方案论证本课程设计根据电力系统分析课程中所讲的基于节点方程的三相短路计算的原理和方法,编程实现了三相短路计算。

本程序输入含有网络拓扑信息和电器元件的参数,输出三相短路的短路电流和短路后网络各节点的电压参数和各支路的电流参数,并以文件的形式保存,方便用户的读取、打印,实现了设计的要求。

对于编程语言的选择有很多种,目前比较流行的是C语言和MA TLAB两种,因为这两种语言相对较简单,而MATLAB作为专门的数学软件又更具简介性和直观性,是一种基于解释的语言,目标在于用户方便,开发简单,但编译器则承担了更大重任,因此程序执行效率方面也有损失。

VB语言是目前世界上最为流行使用最为广泛的面向对象设计语言用他来设计界面,很多软件的界面都使用VB编写的,能起到美化界面的作用,就我个人而言,我学过VB课程,相对于其他语言来说,VB的运用更为熟悉和了解,因此,在本课程设计中我选择VB语言进行界面的美化,MATLAB在后台调用函数对电力系统对称短路计算,从而实现VB和MA TLAB联合编程。

电力系统通用潮流计算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.open("C:\\data.txt");if(!fin){cout<<"输入数据文件不存在!"<<endl;getchar();}int m1[50]={0},m2[50]={0};float m3[50],m4[50],m5[50],m6[50];int i,j,l;for(i=0;;i++){fin>>m1[i];if(m1[i]==0)break;fin>>m2[i]>>m3[i]>>m4[i];N++;}B =new BUS[N];for (i=0;i<N;i++){B[i].busno=m1[i];B[i].type=m2[i];B[i].Pd=m3[i];B[i].Qd=m4[i];}for(i=0;;i++){fin>>m1[i];if(m1[i]==0)break;fin>>m4[i]>>m3[i];GS++;}G =new Generator[GS];for (i=0;i<GS;i++){G[i].busno=m1[i];G[i].Pg=m4[i];G[i].Vg=m3[i];}for(i=0;;i++){fin>>m1[i];if(m1[i]==0)break;fin>>m2[i]>>m3[i]>>m4[i]>>m5[i]>>m6[i];ZLs++;}L =new Line[ZLs];for (i=0;i<ZLs;i++){L[i].busi=m1[i];L[i].busj=m2[i];L[i].R=m3[i];L[i].X=m4[i];L[i].B=m5[i];L[i].k=m6[i];}LD=N-GS;fin.close();//节点导纳矩阵形成//double YB[50][50],YG[50][50],BB[50][50],K[50][50];for(i=0;i<N;i++){for(j=0;j<N;j++){YB[i][j]=0;YG[i][j]=0;BB[i][j]=0;K[i][j]=1;}}for (l=0;l<ZLs;l++){i=L[l].busi-1;j=L[l].busj-1;K[i][j]=L[l].k;BB[i][j]=BB[j][i]=L[l].B;YG[i][j]=YG[j][i]=L[l].R/(L[l].R*L[l].R+L[l].X*L[l].X);YB[i][j]=YB[j][i]=-L[l].X/(L[l].R*L[l].R+L[l].X*L[l].X);}for(i=0;i<N;i++){for(j=i;j<N;j++) {K[i][j]=K[j][i];K[j][i]=1;}for(j=0;j<N;j++){if(i!=j){YG[i][i]=YG[i][i]+(YG[i][j]*K[i][j]*K[i][j]);YB[i][i]=YB[i][i]+(YB[i][j]*K[i][j]*K[i][j]+BB[i][j]);}}}//修正后//for (l=0;l<ZLs;l++){i=L[l].busi-1;j=L[l].busj-1;K[i][j]=L[l].k;YG[i][j]=-YG[i][j]*K[i][j];YG[j][i]=YG[i][j];YB[i][j]=-YB[i][j]*K[i][j];YB[j][i]=YB[i][j];}int type[50]={0};for(i=0;i<N;i++){type[i]=B[i].type;}//PQV的获得//double P[50],Q[50],V[50];for(i=0;i<N;i++){P[i]=0;Q[i]=0;V[i]=0;P[i]=-B[i].Pd;Q[i]=-B[i].Qd;}for (i=0;i<GS;i++){P[G[i].busno-1]=G[i].Pg;V[G[i].busno-1]=G[i].Vg;}// 求A=e+f//double e[50]={0},f[50]={0};double C[100]={0},D[100]={0};for(i=0;i<N;i++){if(V[i]==0){C[2*i]=1;}else C[2*i]=V[i];}double W[100]={0},Ja[100][101]={0}; //调用Jacobi函数和高斯函数//for(int t=1;t<10;t++){for(i=0;i<2*N-2;i++){e[i]=C[2*i];f[i]=C[2*i+1];}fun1(YG,YB,e,f,type,N,W,P,Q,V);double it=fabs(W[0]);for(i=1;i<2*N-2;i++){if (it<fabs(W[i])) {it=fabs(W[i]);j=i;}}//中间迭代过程//cout<<setw(10)<<"迭代次数"<<setw(20)<<"最大的功率误差"<<setw(8)<<"节点号"<<endl;cout<<setw(10)<<t<<setw(20)<<it<<setw(8)<<j/2+1<<endl;if (it<0.00001) break;Jacobi(YG,YB,e,f,type,N,Ja);for(i=0;i<2*N-2;i++){Ja[i][2*N-2]=W[i];}//高斯消元法解方程//gauss(Ja,2*N-2);for(i=0;i<2*N-2;i++){D[i]=-Ja[i][2*(N-1)];C[i]+=D[i];}}//平衡节点//for(i=0;i<N;i++){double a=0,b=0;for(int j=0;j<N;j++){a+=(YG[i][j]*e[j]-YB[i][j]*f[j]);b+=(YB[i][j]*e[j]+YG[i][j]*f[j]);}P[i]=e[i]*a+f[i]*b;Q[i]=f[i]*a-e[i]*b;}//支路//double PZL[100][101]={0},QZL[100][101]={0},pr[100][101]={0},qx[100][101]={0};double x1=0,x2=0,y1=0,y2=0,I2=0;for(int k=0;k<ZLs;k++){i=L[k].busi-1;j=L[k].busj-1;x1=e[i]/L[k].k-e[j];y1=f[i]/L[k].k-f[j];x2=-e[i]*YG[i][j]-f[i]*YB[i][j];y2=-f[i]*YG[i][j]+e[i]*YB[i][j];QZL[i][j]=(x1*y2-x2*y1);PZL[i][j]=(x1*x2+y1*y2);I2=(PZL[i][j]*PZL[i][j]+QZL[i][j]*QZL[i][j])/(e[i]*e[i]+f[i]*f[i]);pr[i][j]=I2*L[k].R;qx[i][j]=I2*L[k].X-(e[i]*e[i]+f[i]*f[i]+e[j]*e[j]+f[j]*f[j])*L[k].B;QZL[i][j]+=(e[i]*e[i]+f[i]*f[i])*(-L[k].B);x1=e[j]*L[k].k-e[i];y1=f[j]*L[k].k-f[i];x2=-e[j]*YG[j][i]-f[j]*YB[j][i];y2=-f[j]*YG[j][i]+e[j]*YB[j][i];QZL[j][i]=(x1*y2-x2*y1);PZL[j][i]=(x1*x2+y1*y2);I2=(PZL[j][i]*PZL[j][i]+QZL[j][i]*QZL[j][i])/(e[j]*e[j]+f[j]*f[j]);pr[j][i]=I2*L[k].R;qx[j][i]=I2*L[k].X-(e[i]*e[i]+f[i]*f[i]+e[j]*e[j]+f[j]*f[j])*L[k].B;QZL[j][i]+=(e[j]*e[j]+f[j]*f[j])*(-L[k].B);}//全网数据//int high=1,low=1;double PG=0,PL=0,Prr=0,Vh=sqrt(e[0]*e[0]+f[0]*f[0]),Vl=sqrt(e[0]*e[0]+f[0]*f[0]);for(k=0;k<N;k++){Prr+=P[k];if(B[k].type==1) PL+=B[k].Pd;else PG+=P[k];if(sqrt(e[k]*e[k]+f[k]*f[k])>Vh){Vh=sqrt(e[k]*e[k]+f[k]*f[k]);high=k+1;}if(sqrt(e[k]*e[k]+f[k]*f[k])<Vl){Vl=sqrt(e[k]*e[k]+f[k]*f[k]);low=k+1;}}//输出数据到文件databak.txt//ofstream fout;fout.open("C:\\databak.txt");fout<<"节点"<<endl;fout<<setw(8)<<"节点号"<<setw(16)<<"V"<<setw(16)<<"弧度"<<setw(16)<<"发电P"<<setw(16)<<"发电Q"<<setw(16)<<"负荷P"<<setw(16)<<"负荷Q"<<endl;for(i=0;i<LD;i++){fout<<setw(8)<<i+1<<setw(16)<<sqrt(e[i]*e[i]+f[i]*f[i])<<setw(16)<<atan2(f[i],e[i])*180/3.14159<<setw(16)<<0 <<setw(16)<<0<<setw(16)<<B[i].Pd<<setw(16)<<B[i].Qd<<endl;}for(j=0;j<GS;j++){i=G[j].busno-1;fout<<setw(8)<<i+1<<setw(16)<<V[i]<<setw(16)<<atan2(f[i],e[i])*180/3.14159<<setw(16)<<P[i]<<setw(16)<<Q[i]<< setw(16)<<0<<setw(16)<<0<<endl;}fout<<"支路"<<endl;fout<<setw(4)<<"i"<<setw(4)<<"j"<<setw(10)<<"i_j有功"<<setw(10)<<"i_j无功"<<setw(10)<<"j_i有功"<<setw(12)<<"j_i无功"<<setw(12)<<"有功损耗"<<setw(12)<<"无功损耗"<<endl;for (k=0;k<ZLs;k++){i=L[k].busi-1;j=L[k].busj-1;fout<<setw(4)<<L[k].busi<<setw(4)<< L[k].busj <<setw(10)<<PZL[i][j] <<setw(10)<<QZL[i][j]<<setw(10)<< PZL[j][i] <<setw(12)<<QZL[j][i]<<setw(12)<<pr[i][j]<<setw(12)<<qx[i][j]<<endl;}fout<<"全网数据"<<endl;fout<<setw(14)<<"发电有功"<<setw(14)<<"负荷有功"<<setw(14)<<"有功损耗"<<setw(14)<<"最高电压"<<setw(14)<<"节点号"<<setw(14)<<"最低电压"<<setw(14)<<"节点号"<<endl;fout<<setw(14)<<PG<<setw(14)<<PL<<setw(14)<<Prr<<setw(14)<<Vh<<setw(14)<<high<<setw(14)<<Vl<<setw(14) <<low<<endl;fout.close();}。

c课程设计之电力

c课程设计之电力

c 课程设计之电力一、教学目标本课程旨在让学生了解和掌握电力相关的知识,包括电的基本概念、电力生成和传输的原理、电力的应用等。

通过本课程的学习,学生将能够:1.描述电的基本概念,如电流、电压、电阻等。

2.解释电力生成和传输的原理,包括火力发电、水力发电、核电等。

3.分析电力的应用,如家电、工业生产、电力系统等。

此外,学生还将培养以下技能:1.能够使用实验仪器进行简单的电力实验。

2.能够阅读和理解电力相关的图表和数据。

3.能够运用所学的电力知识解决实际问题。

在情感态度价值观方面,学生将:1.培养对科学的兴趣和好奇心,对电力知识有积极的学习态度。

2.培养团队合作和沟通交流的能力。

3.培养对电力资源的节约和环保意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.电的基本概念:电流、电压、电阻等。

2.电力生成和传输的原理:火力发电、水力发电、核电等。

3.电力的应用:家电、工业生产、电力系统等。

具体到教材的章节,我们将从第一章“电的基本概念”开始,然后第二章“电力生成和传输的原理”,最后第三章“电力的应用”。

每个章节都会有相应的课堂讲解、实验演示和练习题。

三、教学方法为了激发学生的学习兴趣和主动性,我们将采用多种教学方法:1.讲授法:教师对电力相关知识进行系统的讲解和阐述。

2.讨论法:学生分组讨论电力知识,促进学生之间的交流和合作。

3.案例分析法:分析实际的电力应用案例,让学生更好地理解电力的应用。

4.实验法:安排实验课,让学生亲自动手进行电力实验,增强实践能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:电力知识相关的教材,作为学生学习的基础。

2.参考书:提供电力知识相关的参考书籍,丰富学生的学习资料。

3.多媒体资料:制作电力知识的教学PPT、视频等,直观地展示电力知识。

4.实验设备:准备实验所需的仪器设备,如电压表、电流表等,让学生能够进行实际的电力实验。

五、教学评估为了全面反映学生的学习成果,我们将采用多种评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。

电路c课程设计

电路c课程设计

电路c课程设计一、课程目标知识目标:1. 学生能理解并掌握电路的基本概念,包括电流、电压、电阻等;2. 学生能描述并分析不同类型的电路元件,如电阻器、电容器、电感器等;3. 学生能运用欧姆定律和基尔霍夫定律解决简单的电路问题;4. 学生能解释串并联电路的特点及计算方法。

技能目标:1. 学生能够设计简单的串联和并联电路,并进行实际操作;2. 学生能够运用测量工具(如电压表、电流表)进行电路参数的测量;3. 学生能够通过实验观察电路现象,并进行分析、解释;4. 学生能够运用电路知识解决实际问题,如计算家庭用电量。

情感态度价值观目标:1. 学生能够认识到电路在日常生活和科技发展中的重要性,增强对科学的兴趣和好奇心;2. 学生在小组合作中培养团队精神和沟通能力,学会倾听他人意见,尊重事实;3. 学生通过电路实验,培养观察、分析和解决问题的能力,树立勇于探索、勤奋学习的态度;4. 学生能够关注电路安全,养成安全用电的好习惯。

本课程针对初中年级学生,结合电路知识的特点,注重理论与实践相结合,培养学生的动手操作能力和科学思维能力。

课程目标具体、可衡量,旨在帮助学生掌握电路基础知识,提高解决问题的能力,并培养正确的情感态度价值观。

后续教学设计和评估将围绕这些具体学习成果展开。

二、教学内容本章节教学内容主要包括以下几部分:1. 电路基本概念:介绍电流、电压、电阻等基本概念,通过实例让学生理解其在电路中的作用。

2. 电路元件:讲解电阻器、电容器、电感器等常见电路元件的类型、符号及功能。

3. 欧姆定律和基尔霍夫定律:引导学生掌握欧姆定律的计算方法,以及基尔霍夫定律在复杂电路中的应用。

4. 串并联电路:分析串联电路和并联电路的特点,教授计算方法,并进行实际操作。

5. 电路测量:教授如何使用电压表、电流表等测量工具进行电路参数的测量。

6. 家庭电路:结合实际生活,介绍家庭电路的组成和用电量的计算。

教学安排如下:第一课时:电路基本概念及元件介绍第二课时:欧姆定律及串并联电路特点第三课时:基尔霍夫定律及电路测量第四课时:家庭电路及用电量计算教材章节关联:第一章:电学基本概念第二章:电路元件第三章:欧姆定律和基尔霍夫定律第四章:串并联电路第五章:电路测量第六章:家庭电路教学内容注重科学性和系统性,结合课程目标,确保学生能够掌握电路基础知识,提高实际操作能力。

电力系统分析课设 C语言

电力系统分析课设 C语言

目录1 课程设计说明 (2)2 编程语言的选择及理由 (2)3 程序设计 (3)3.1 主体流程图 (3)3.2 详细流程图 (4)3.2.1 创建系统(create)流程图 (4)3.2.2 加载系统函数(load)流程图 (5)3.2.3 计算子函数(calculate)流程图 (5)3.2.4 改变短路节点(change)流程图 (6)3.3 数据及变量说明 (7)3.4 程序代码及注释 (8)3.5 测试算例 (8)4 设计体会 (16)参考文献 (16)附录 (16)1课程设计说明本课程设计根据电力系统分析课程中所讲的基于节点方程的三相短路计算的原理和方法。

采用c语言编程。

实现了三相短路计算的计算机实现。

本程序输入含有网络拓扑信息和电器元件的参数,输出三相短路的短路电流和短路后网络各节点的电压参数和各支路的电流参数。

并以文件的形式保存,方便用户的读取,打印。

实现了设计的要求。

三相短路在电力系统中虽然发生的概率很小,但一旦发生产生的影响非常严重,电力系统中设备的动稳定和热稳定校验都要以三相短路电流为依据,因此我选择做是电力系统三相短路的计算程序,觉得更有意义。

应用计算机进行电力系统计算,首先要建立电力系统相应的数学模型,如建立电力系统等效网络和节点方程;其次是运用合理的计算方法计算结果,如三角分解法,LDU分解法等;第三则是选择合适的计算机语言编制计算程序,实现程序的准确性,提高精确度。

本设计利用节点方程来实现电力系统三相短路计算。

首先,根据给定的电力系统运行方式制定系统的一相等值网络,计算出各元器件的参数,其次根据网络方程利用变压器和线路参数形成不含发电机和负荷的节点导纳矩阵Y;然后,利用系统形成的节点导纳矩阵求解系统阻抗矩阵Z;第三则是应用节点阻抗矩阵计算短路电流。

电力系统短路电流的实际工程计算中,许多实际问题的解决并不需要十分精确的结果。

因此采用近似计算法,在建立系统节点方程时,采用网络模型和参数做简化处理,等值电路的制定通常将发电机作为含源支路,表示为节点注入电流源和节点电抗的形式;系统中存在同步发电机时,按发电机支路处理;同时,忽略发电机、变压器和输电线路的电阻,不计线路的电容,略去变压器的励磁电流,负荷忽略不计;在标幺参数计算时,选取各级平均额定电压作为基准电压,忽略元件的额定电压和平均电压的差别,认为变压器变比的标幺值为1;此外,还假定所有的发电机的电势具有相同的相位,所有的元件仅用电抗表示,避免复数运算。

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

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

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

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

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

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

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

运用合理的计算方法,就是要求所选用的计算方法能快速准确地得出正确结果,同时还应要求在解算过程中占用内存少,以利提高计算机的解题规模.选择合适的语言编写程序,就是首先确定用什么计算机语言来编制程序;其次是作出计算的流程图;第三根据流程图用选择的语言编写计算程序.然后上机调试,直到语法上无错误.本程序采用C 语言进行编程.所编制的程序难免存在逻辑错误,因此先用一个已知结果的系统作为例题进行计算。

用程序计算的结果和已知结果相比较,如果结果相差甚远就要逐步分析程序的计算步骤,查出问题的出处;如果结果比较接近,则逐步分析误差来源;直到结果正确为止。

2、电力系统潮流计算的程序算法潮流计算是电力系统分析中的一种最基本的计算,它的任务是对给定的运行条件确定系统的运行状态,如母线上的电压(幅值及相角)、网络中的功率分布及功率损耗等。

目前计算机潮流计算的方法主要有牛顿—拉夫逊算法和PQ 分解法。

牛顿—拉夫逊算法是数学上求解非线形方程组的有效方法,具有较好的收敛性,曾经是潮流计算中应用比较普遍的方法。

PQ 快速分解法是从牛顿-拉夫逊算法演变而来的,是将纯数学的牛顿-拉夫逊算法与电力系统具体特点相结合并进行简化与改进而得出的。

PQ 快速分解法比牛顿—拉夫逊算法大大提高了计算速度和节省了内存,故而本程序以PQ 快速分解法进行潮流计算.1)形成节点导纳矩阵(1)自导纳的形成对节点i 其自导纳Y ii 是节点i 以外的所有节点都接地时节点i 对地的总导纳。

c语言程序设计实验教学大纲(电气类)

c语言程序设计实验教学大纲(电气类)

《C语言程序设计》课程实验教学大纲一、课程基本信息课程编号:××××课程名称:C语言程序设计实验学时:24学时课程类别:公共基础课课程性质:必修课先行课程:计算机文化基础适用专业:计算机科学与技术、网络工程、电气工程及其自动化、自动化、电子信息工程、机械工程及自动化等责任单位:电气信息工程系二、实验的教学目的与要求通过由浅入深、循序渐进、精讲多练,培养学生对学习计算机的兴趣,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。

使学生通过上机实验来验证课堂教学的理论,进一步掌握C语言的基本语法、基本操作、程序设计的基本概念与编程技术,并学会设计一些简单的综合应用程序,运用所学知识解决实际问题。

三、实验环境的要求VC++6.0或TC2.0或win-TC或TC3.0四、实验的内容与教学安排1、实验内容2、实验教学安排(实验开展时间、实验前期准备、实验课堂组织、实验课后安排等)1)提前预习实验内容,做好上机准备。

在上课前编写好程序,并认真检查程序确保程序无语法错误。

对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意。

2)上机输入和调试自己所编的程序。

一人一组,独立上机,上机过程中出现的问题,除了是系统的问题以外,一般应自己独立处理。

3)每次首先完成教师指定的验证性实验内容,再自己编写相应实验题目。

4)实验课结束后或实验课当堂,把程序及设计文档上传到服务器上,以备案;5)上机结束后,整理出实验报告,实验报告应包括以下内容:题目、实验目的、实验内容及程序清单、运行结果、对运行情况所作的分析以及本次调试程序取得的经验。

五、实验的成果要求和成绩评定1、成果要求验证型实验需根据测试数据验证算法的正确性。

设计型实验由学生个人分析、设计、编程、调试验证程序的正确性。

综合型实验由学生综合运用所学知识,要求能够正确合理地解决具体问题。

2、成绩评定1)实验课的考核方式:对实验情况及实验报告完成情况进行考核;2)实验课考核成绩由实验完成情况及实验报告完成情况确定,实验课成绩的比例不大于总成绩的20%。

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

目录1 课程设计说明 (2)2 编程语言的选择及理由 (2)3 程序设计 (3)3.1 主体流程图 (3)3.2 详细流程图 (4)3.2.1 创建系统(create)流程图 (4)3.2.2 加载系统函数(load)流程图 (5)3.2.3 计算子函数(calculate)流程图 (5)3.2.4 改变短路节点(change)流程图 (6)3.3 数据及变量说明 (7)3.4 程序代码及注释 (8)3.5 测试算例 (8)4 设计体会 (16)参考文献 (16)附录 (16)1课程设计说明本课程设计根据电力系统分析课程中所讲的基于节点方程的三相短路计算的原理和方法。

采用c语言编程。

实现了三相短路计算的计算机实现。

本程序输入含有网络拓扑信息和电器元件的参数,输出三相短路的短路电流和短路后网络各节点的电压参数和各支路的电流参数。

并以文件的形式保存,方便用户的读取,打印。

实现了设计的要求。

三相短路在电力系统中虽然发生的概率很小,但一旦发生产生的影响非常严重,电力系统中设备的动稳定和热稳定校验都要以三相短路电流为依据,因此我选择做是电力系统三相短路的计算程序,觉得更有意义。

应用计算机进行电力系统计算,首先要建立电力系统相应的数学模型,如建立电力系统等效网络和节点方程;其次是运用合理的计算方法计算结果,如三角分解法,LDU分解法等;第三则是选择合适的计算机语言编制计算程序,实现程序的准确性,提高精确度。

本设计利用节点方程来实现电力系统三相短路计算。

首先,根据给定的电力系统运行方式制定系统的一相等值网络,计算出各元器件的参数,其次根据网络方程利用变压器和线路参数形成不含发电机和负荷的节点导纳矩阵Y;然后,利用系统形成的节点导纳矩阵求解系统阻抗矩阵Z;第三则是应用节点阻抗矩阵计算短路电流。

电力系统短路电流的实际工程计算中,许多实际问题的解决并不需要十分精确的结果。

因此采用近似计算法,在建立系统节点方程时,采用网络模型和参数做简化处理,等值电路的制定通常将发电机作为含源支路,表示为节点注入电流源和节点电抗的形式;系统中存在同步发电机时,按发电机支路处理;同时,忽略发电机、变压器和输电线路的电阻,不计线路的电容,略去变压器的励磁电流,负荷忽略不计;在标幺参数计算时,选取各级平均额定电压作为基准电压,忽略元件的额定电压和平均电压的差别,认为变压器变比的标幺值为1;此外,还假定所有的发电机的电势具有相同的相位,所有的元件仅用电抗表示,避免复数运算。

三相对称短路为金属性短路。

本课程设计的关键部分是利用系统节点导纳矩阵形成节点阻抗矩阵,本程序采用LDU 分解法,然后利用节点导纳矩阵和阻抗矩阵的乘积为单位矩阵列写方程,节点导纳矩阵经LDU分解后,回代求解系统阻抗矩阵。

利用节点阻抗矩阵进行短路计算,首先利用故障前的节点注入电流和系统节点阻抗矩阵求取故障前系统的各节点电压;然后,利用金属短路时短路点残压为0,对地电阻为0,计算短路点电流;最后,利用故障前节点电压、节点阻抗和短路点电流求得短路后各节点电压和各支路电流。

2编程语言的选择及理由能够实现程序编写的语言有多种,本课程设计中采用C语言进行电力系统对称短路计算程序的编写。

个人对c语言和metlab相对较熟悉。

之所以选择C语言编程,从主观上说,是因为我学过C语言课程,相对于其他的编程语言而言,C语言的应用更为熟悉和了解。

另外,从客观上说,C语言是目前世界上最为流行、使用最为广泛的高级程序设计语言。

,C的效率MATLAB比高多了,MATLAB虽然语法简单,但执行效率不高。

MATLAB是用于特定的方面的,比如说矩阵运算方面、DSP就很有优势,而C语言不同。

很多软件的底层都是C编写的。

MATLAB提供的是一种基于解释的语言,虽然也是一种高级语言,但是还是很简单的,它的目标在于用户方便,开发简单。

而实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。

另一方面MATLAB这么做也是基于其专用于科学计算的目的来考虑的,无法应用于通用的程序设计。

c语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,因此我选择用c语言编写程序。

3程序设计3.1主体流程图图3-1 主体流程图3.2详细流程图3.2.1创建系统(create)流程图图3-2 create函数流程图3.2.2加载系统函数(load)流程图图3-3 节点导纳矩阵形成流程图3.2.3计算子函数(calculate)流程图图3-4 计算子函数流程图3.2.4改变短路节点(change)流程图图3-5 change函数流程图3.3数据及变量说明本程序中将电路的支路分为三类:电抗支路、电流支路、发电机直流,数据输入时分开输入格式如下:电抗支路:支路数、节点首端好、节点末端好,支路电抗值。

发电机支路:发电机台数、发电机接入点,发电机电势、发电机之路电抗。

电容支路:支路数、电容节点号,电容支路电抗值。

程序中的变量定义如下:FILE *fp; //文件指针float If; //短路电流float V0[10]; //节点电压初值float In[10]; //注入电流float V[10]; //节点电压float I[10]; //支路电流int count[2][10]; //数组用于储存支路号float z[10][10]; //储存支路电抗值float yjs[10][10]; //存放计算导纳矩阵中的中间值float ye[10]; //储存发电机支路导纳float Y[10][10]; //节点导纳矩阵float Z[10][10]; //阻抗矩阵float dk; //电抗值int e1[10];float yc[10]; //节点对地电抗float ycjs[10];int e[10]; //发电机接入点float E[10];float Ig[10];float Emid[10];float ze[10]; //储存发电机支路导纳int m,n,a,f,i=0,j=0,sd,md,butn,times,timesc;/*n 是节点数,a 是支路数,f 是短路点,i 为行标,j 为列标*/1、文件读入程序如下:printf("请输入系统的节点数,支路数,故障节点\n"); scanf("%d%d%d",&n,&a,&f); fp=fopen(name,"w+");fprintf(fp,"系统参数如下所示:\n\n");fprintf(fp,"1.系统的节点数为%d\n2.系统的支路数为%d\n3.系统的短路点为%d\n\n",n,a,f); fprintf(fp,"支路电抗参数如下\n"); 2、计算主程序如下:(1)、 If=V0[f-1]/Z[f-1][f-1];(短路电流计算) for(i=0;i<n;i++) V[i]=V0[i]-Z[i][f-1]*If; (2)、for(i=0;i<n;i++)(导纳矩阵计算) {for(j=0;j<n;j++)Y[i][i]=Y[i][i]-yjs[i][j]; Y[i][i]=Y[i][i]-ye[i]-ycjs[i]; }for(i=0;i<n;i++) for(j=i+1;j<n;j++) {Y[i][j]=yjs[i][j]; Y[j][i]=yjs[i][j]; }3.4 程序代码及注释具体源程序代码及其注释见附录。

3.5 测试算例【例6-3】在如图3-5所示的电力系统中分别在节点1和节点5接入发电机支路,其标幺值参数为:22.0,15.0,0.15151j z j z E E ====&&。

在节点3发生三相短路,计算短路电流及网络中的电流分布。

线路的电阻和电容略去不计,变压器的标幺变比等于1。

各元件参数的标幺值如下:013.0,016.0,02.0,05.0018.0,065.0024.0,08.003.0,96.0,184.0,05.1,105.043034032023042024034232445451212j y y j y y j y y j z j z j z k j z k j z ======+=+=+=====图3-6 电力系统等值网络图图3-7 三相短路时的等值网络图由以上网络图可得计算过程如下: (1)、形成输入文件: 系统参数如下所示: 1.系统的节点数为5 2.系统的支路数为5 3.系统的短路点为3 支路电抗参数如下z12=0.1050 z23=0.0650 z24=0.0800 z43=0.0500 z54=0.1840 发电机接入点及其电抗如下:共2台发电机进入系统 z1=0.1500 z5=0.2200 e1=1.0000 e5=1.0000 共0个节点有接地电容 (2)、计算后得到的输出文件: 计算结果如下: 1、节点导纳矩阵:-16.1905 9.5238 9.5238 -37.4084 15.3846 12.5000 15.3846 -35.3846 20.0000 12.5000 20.0000 -37.9348 5.4348-+-+1E &5E &1z 5z z z 23z 34z 45z 1234512z 23z 24z 34z 45z 230y 320y 240y 420y 340y 430y 12:1k 1:45k5.4348 -9.98022、节点阻抗矩阵:0.1181 0.0958 0.0902 0.0858 0.04670.0958 0.1629 0.1533 0.1459 0.07940.0902 0.1533 0.1860 0.1611 0.08770.0858 0.1459 0.1611 0.1729 0.09410.0467 0.0794 0.0877 0.0941 0.15153、短路节点是:34、短路电流:If=5.37675、各节点电压:V1=0.5152 V2=0.1758 V3=0 V4=0.1336 V5=0.52826、发电机支路电流如下:Ig[1][0]=-3.2321Ig[5][0]=-2.14457、各支路电流:I12=-3.2321 I23=-2.7046 I24=-0.5275 I43=-2.6720 I54=-2.1445图3-8 对称短路计算结果图3-8 改变短路点后计算结果【习题6-10】如图3-9所示网络,略去负荷,试用节点阻抗矩阵法求节点5发生三相短路时,短路点的短路电流及线路L-2、L-3的电流。

相关文档
最新文档