资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
#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;/deltaP 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; 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*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=-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; /节点数 发电机数 负荷数 支路数/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.busi=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*Ll.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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号