课程课程设计报告
附录(设计流程图、程序、表格、数据等) 1.设计流程图:
求出启动 输入原始数据 形成节点导纳矩阵 设非平衡节点电压初值ei(0)fi(0); 令迭代次数k=0 对PQ节点计算?Pi(k).?Qi(k)对PV节点计算?Pi(k),?Ui2(k) 令节点号i=1 雅客比矩阵是否形成,i>n? 计算雅客比矩阵各元素(k)(k)(k)(k)(k) Hij,Nij,Jij,L(ijk),Rij,Sij增加迭代次数k=k+1 增加节点号i=i+1 解修正方程,由?Pi(k).?Qi(k)?Ui2(k)及雅客比矩阵用高斯法求各节点的电压增量?e(k)i计算节点的新电压 ,?fi(k) ei(k?1)?ei(k)??ei(k) fi(k?1)?fi(k)??fi(k)?e(k)max,?f(k)max 迭代是否收敛 ?e(k),?f(k)maxmax??计算平衡节点的功率及线路功率 停止 5
课程课程设计报告
2.程序设计: #include\#include\#include\#include\
#define NBUS 5 #define NLINE 7
/* Global variables */ intnL,nSH,nBUS,nVA; double d,t; int L;
struct Line {
intNum,NumI,NumJ; double R; double X; double B; double K; };
struct Bus {
intNum ;
doubleVolt,Phase,GenP,GenQ,LoadP,LoadQ; int Type; };
struct Shunt {
intNum,NumI; double G,B; };
void main() {
FILE *fp; FILE *fpout; inti,j,k,l,h,c;
int i1,i2,i3,kp,kq,LH[100];
double d,d1,d2,d3,d4,d5,d6,t,r,x,g,b,tt,LL,e,ps,qs,shsh,sum,w;
6
课程课程设计报告
struct Line sL[NLINE]; struct Bus sBus[NBUS]; struct Shunt sSH[NBUS];
double YG[NBUS][NBUS],YB[NBUS][NBUS]; double
V[100][2],U[100],dPQ[100],PQ[100][2],JJ[100][100]={0},H[100][100],J[100][100],N[100][100],L[100][100],sP[NBUS][NBUS]={0},sQ[NBUS][NBUS]={0},dsp,dsq,sumgen,dp;
i1=i2=i3=0;
d1=d2=d3=d4=d5=d6=ps=qs=0.0;
e=0.00001;
for(i=0;i if((fp=fopen(\ { printf(\exit(0); } fscanf(fp,\ for(i=0;i sBus[i].Num=sBus[i].Type=0;sBus[i].Volt=1.0; sBus[i].Phase=sBus[i].GenP=sBus[i].GenQ=sBus[i].LoadP=sBus[i].LoadQ=0.0; fscanf(fp,\ sBus[i].Num=i1;sBus[i].Volt=d1;sBus[i].Phase=d2;sBus[i].GenP=d3;sBus[i].GenQ=d4;sBus[i].LoadP=d5,sBus[i].LoadQ=d6;sBus[i].Type=i2; }; for(i=0;i sL[i].Num=sL[i].NumI=sL[i].NumJ=0; sL[i].R=sL[i].X=sL[i].B=0.0;sL[i].K=1.0; fscanf(fp,\ sL[i].Num=i1;sL[i].NumI=i2;sL[i].NumJ=i3;sL[i].R=d1;sL[i].X=d2;sL[i].B=d3;sL[i].K=d4; } for(i=0;i sSH[i].Num=sSH[i].NumI=0;sSH[i].G=sSH[i].B=0.0; fscanf(fp,\ sSH[i].Num=i1;sSH[i].NumI=i2;sSH[i].B=d1; } if(fp!=NULL) fclose(fp); /*Make Y Matrix*/ for(i=1;i 7 课程课程设计报告 YG[i][j]=0.0; YB[i][j]=0.0; }; for(l=0; l i=sL[l].NumI; j=sL[l].NumJ; r=sL[l].R; x=sL[l].X; d1=r*r+x*x; g=r/d1; b=-x/d1; if(fabs(sL[l].K-1.0)<0.000001) {/*Normal lines or transformers*/ YG[i][i]=YG[i][i]+g; YG[j][j]=YG[j][j]+g; YB[i][i]=YB[i][i]+b+sL[l].B; YB[j][j]=YB[j][j]+b+sL[l].B; YG[i][j]=YG[i][j]-g; YG[j][i]=YG[j][i]-g; YB[i][j]=YB[i][j]-b; YB[j][i]=YB[j][i]-b; } else {/*abnormal transformer ratio*/ if(fabs(sL[l].B)>0.000001) { YG[i][i]=YG[i][i]+g/sL[l].B/sL[l].B; YB[i][i]=YB[i][i]+b/sL[l].B/sL[l].B; YG[j][j]=YG[j][j]+g; YB[j][j]=YB[j][j]+b; YG[i][j]=YG[i][j]-g/sL[l].B; YG[j][i]=YG[j][i]-g/sL[l].B; YB[i][j]=YB[i][j]-b/sL[l].B; YB[j][i]=YB[j][i]-b/sL[l].B; } else printf(\节点-,%-2d之间变压器变比为0 \\n\ } } //Check the Y matrix 8 课程课程设计报告 if((fp=fopen(\ printf(\fprintf(fp,\ for(i=1;i /* 设定电压初值 */ for(i=1;i for(i=1;i for(i=1;i /* 输出电压初值 if((fp=fopen(\电压初值.txt\{ printf(\电压初值.txt' \\n\exit(0); } fprintf(fp,\电压初值---\\n\for(i=1;i fprintf(fp,\if(fp!=NULL) fclose(fp);*/ for(c=1;;c++) 9