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

上传人:m**** 文档编号:510326505 上传时间:2023-01-21 格式:DOC 页数:9 大小:33.01KB
返回 下载 相关 举报
电力系统通用潮流计算C语言程序_第1页
第1页 / 共9页
电力系统通用潮流计算C语言程序_第2页
第2页 / 共9页
电力系统通用潮流计算C语言程序_第3页
第3页 / 共9页
电力系统通用潮流计算C语言程序_第4页
第4页 / 共9页
电力系统通用潮流计算C语言程序_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《电力系统通用潮流计算C语言程序》由会员分享,可在线阅读,更多相关《电力系统通用潮流计算C语言程序(9页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include#includeusing namespace std; /节点号 类型 负荷有功 负荷无功母线数据(类型 1PV节点,2PQ节点,3平衡节点)struct BUS int busno;int type;float Pd;float Qd;/发电机数据 节点号 有功发电 电压幅值struct Generatorint busno;float Pg;float Vg;/支路信息 节点I 节点J R X B/2 kstruct Lineint busi;int busj;float R;float X;float B;float k;/delta

2、P deltaQ deltaV2/void fun1(double YG50,double YB50,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;iN-1;i+)double A=0,B=0;for(j=0;jN;j+)A+=YGij*ej-YBij*fj; B+=YGij*fj+YBij*ej; dV=Vi*Vi-ei*ei-fi*fi; dP=Pi-ei*A-fi*B; W2*i=dP; dQ=Qi-fi*A+ei*B;

3、if(typei=1) W2*i+1=dQ;else W2*i+1=dV;/Jacobi矩阵/void Jacobi(double YG50,double YB50,double e50,double f50,int type50,int N ,double Ja100101) int i,j; for(i=0;iN;i+) for(j=0;jN;j+) if(i!=j) if(typei=1) Ja2*i2*j=-(YGij*ei+YBij*fi); Ja2*i2*j+1=YBij*ei-YGij*fi; Ja2*i+12*j=Ja2*i2*j+1; Ja2*i+12*j+1=-Ja2*i2

4、*j; else Ja2*i2*j=-YGij*ei+YBij*fi; Ja2*i2*j+1=YBij*ei-YGij*fi; Ja2*i+12*j+1=Ja2*i+12*j=0; else double a50=0,b50=0; for(int k=0;kN;k+) ai+=(YGik*ek-YBik*fk); bi+=(YGik*fk+YBik*ek); Ja2*i2*j=-ai-YGii*ei-YBii*fi; Ja2*i2*j+1=-bi+YBii*ei-YGii*fi; if(typei=1) Ja2*i+12*j=bi+YBii*ei-YGii*fi; Ja2*i+12*j+1=-

5、ai+YGii*ei+YBii*fi; else Ja2*i+12*j=-2*ei; Ja2*i+12*j+1=-2*fi; /高斯消元法解方程组函数/void gauss(double a101,int n) int i,j,k;double c; for(k=0;kn-1;k+) c=akk; for(j=k;j=n;j+) akj/=c; for(i=k+1;in;i+) c=aik; for(j=k;j=0;k-) for(j=k+1;jn;j+) akn-=akj*ajn; void main()ifstream fin;int N=0,GS=0,LD=0,ZLs=0; /节点数 发

6、电机数 负荷数 支路数/BUS *B; Generator *G;Line *L;/从文本中读入原始数据到数组中/fin.open(C:data.txt);if(!fin) cout输入数据文件不存在!m1i;if(m1i=0)break;finm2im3im4i;N+;B =new BUSN;for (i=0;im1i;if(m1i=0)break;finm4im3i;GS+;G =new GeneratorGS;for (i=0;im1i;if(m1i=0)break;finm2im3im4im5im6i;ZLs+;L =new LineZLs;for (i=0;iZLs;i+)Li.bu

7、si=m1i;Li.busj=m2i;Li.R=m3i;Li.X=m4i;Li.B=m5i;Li.k=m6i; LD=N-GS;fin.close();/节点导纳矩阵形成/double YB5050,YG5050,BB5050,K5050;for(i=0;iN;i+)for(j=0;jN;j+)YBij=0;YGij=0;BBij=0;Kij=1;for (l=0;lZLs;l+)i=Ll.busi-1;j=Ll.busj-1;Kij=Ll.k;BBij=BBji=Ll.B;YGij=YGji=Ll.R/(Ll.R*Ll.R+Ll.X*Ll.X);YBij=YBji=-Ll.X/(Ll.R*L

8、l.R+Ll.X*Ll.X);for(i=0;iN;i+)for(j=i;jN;j+) Kij=Kji;Kji=1;for(j=0;jN;j+)if(i!=j)YGii=YGii+(YGij*Kij*Kij);YBii=YBii+(YBij*Kij*Kij+BBij);/修正后/for (l=0;lZLs;l+)i=Ll.busi-1;j=Ll.busj-1;Kij=Ll.k;YGij=-YGij*Kij;YGji=YGij;YBij=-YBij*Kij;YBji=YBij;int type50=0;for(i=0;iN;i+)typei=Bi.type;/PQV的获得/double P50,Q50,V50;for(i=0;iN;i+)Pi=0;Qi=0;Vi=0;Pi=-Bi.Pd;Qi=-Bi.Qd;for (i=0;iGS;i+)PGi.busno-1=Gi.Pg;VGi.busno-1=Gi.Vg;/ 求A=e+f/double e50=0,f50=0;double C100=0,D100=0;for(i=0;iN;i+)if(Vi=0)C2*i=1;else C2*i=Vi;double W100=0,Ja100101=0;/调用Jaco

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

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号