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

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

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

#include#includeusing 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

A=0,B=0;for(j=0;j

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

=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

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

{ c=a[k][k]; for(j=k;j<=n;j++)

a[k][j]/=c; for(i=k+1;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

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<<"输入数据文件不存在!"<

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

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

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

B=m5[i];L[i]、k=m6[i]; }LD=N-GS;fin、close();//节点导纳矩

相关文档
最新文档