#include<iostream>
#include<math.h>
#include<conio.h>
#include<iomanip>
#include<string>
using namespace std;
#define n 14
#define m 9
int i,j,k,kp=1,kq=1,h=0;
double PU[n-1],Y[n-1],X[n-1],PMAX,QMAX;
double SR[n][n],SI[n][n],LosSR[n][n],LosSI[n][n];
double B1[n][n];
double B2[n][n];
double A[n][n];
double e=0.000001;
double G[n][n]={
10.51298952, -6.840980661, 0, 0, 0, 0, 0, 0, 0, -1.686033151, -1.98597571, 0, 0, 0,
-6.840980661, 9.568017784, 0, 0, 0, 0, 0, 0, 0, -1.701139667, 0, 0, 0, -1.025897455,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0, 0, 0, 5.326055039, -3.902049552, 0, 0, 0, -1.424005487, 0, 0, 0, 0, 0,
0, 0, 0, -3.902049552, 5.782934306, -1.880884754, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -1.880884754, 3.835913317, 0, 0, 0, 0, 0, -1.955028563, 0, 0,
0, 0, 0, 0, 0, 0, 4.014992027, -2.489024587, 0, 0, 0, -1.52596744, 0, 0,
0, 0, 0, 0, 0, 0, -2.489024587, 6.724946148, -1.136994158, 0, 0, -3.098927404, 0, 0,
0, 0, 0, -1.424005487, 0, 0, 0, -1.136994158, 2.560999645, 0, 0, 0, 0, 0,
-1.686033151, -1.701139667, 0, 0, 0, 0, 0, 0, 0, 9.521323611, -1.135019192, 0, 0, -4.999131601,
-1.98597571, 0, 0, 0, 0, 0, 0, 0, 0, -1.135019192, 3.120994902, 0, 0, 0,
0, 0, 0, 0, 0, -1.955028563, -1.52596744, -3.098927404, 0, 0, 0, 6.579923407, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -1.025897455, 0, 0, 0, 0, 0, 0, 0, -4.999131601, 0, 0, 0, 6.025029056
};
double B[n][n]={
-38.63517121, 21.57855398, 4.88951266, 1.855499558, 0, 0, 0, 0, 0, 5.115838326, 5.068816978, 0, 0, 0,
21.57855398, -35.52753946, 0, 0, 0, 0, 0, 0, 0, 5.193927398, 0, 4.257445335, 0, 4.234983682,
4.88951266, 0, -19.54900595, 9.09008272, 0, 0, 0, 0, 0, 0, 0, 0, 5.676979847, 0,
1.855499558 ,0, 9.09008272, -24.09250638, 10.36539413, 0, 0, 0, 3.029050457, 0, 0, 0, 0, 0,
0, 0, 0, 10.36539413, -14.76833788, 4.402943749, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4.402943749, -8.497018094, 0, 0, 0, 0, 0, 4.094074344, 0, 0,
0, 0, 0, 0, 0, 0, -5.427938591, 2.251974626, 0, 0, 0, 3.175963965, 0, 0,
0, 0, 0, 0, 0, 0, 2.251974626, -10.66969355, 2.314963475, 0, 0, 6.102755448, 0, 0,
0, 0, 0, 3.029050457, 0, 0, 0, 2.314963475, -5.344013932, 0, 0, 0, 0, 0,
5.115838326, 5.193927398, 0, 0, 0, 0, 0, 0, 0, -30.2707154, 4.781863152, 0, 0, 15.26308652,
5.068816978, 0, 0, 0, 0, 0, 0, 0, 0, 4.781863152, -9.811480129, 0, 0, 0,
0, 4.257445335, 0, 0, 0, 4.094074344, 3.175963965, 6.102755448, 0, 0, 0, -17.34073281, 0, 0,
0, 0, 5.676979847, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5.676979847, 0,
0, 4.234983682, 0, 0, 0, 0, 0, 0, 0, 15.26308652, 0, 0, 0, -19.44707021
};
double y[n][n]={
0,0.0064,-0.11,-0.05936,0,0,0,0,0,0.0187,0.0173,0,0,0,
0.0064,0,0,0,0,0,0,0,0,0.017,0,-0.31063,0,0.0246,
0.10757,0,0,0,0,0,0,0,0,0,0,0,0,0,
0.05752,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0.0187,0.017,0,0,0,0,0,0,0,0,0.0219,0,0,0.0264,
0.0173,0,0,0,0,0,0,0,0,0.0219,0,0,0,0,
0,0.28951,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0.0246,0,0,0,0,0,0,0,0.0264,0,0,0,0};
double Yre[n][n];
double Yim[n][n];
double U[]={1,1,1,1,1,1,1,1,1,1.045,1.01,1.07,1.09,1.06},
R[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
double P[]={-0.478,-0.076,0,-0.295,-0.09,-0.035,-0.061,-0.135,-0.149,0.183,-0.942,-0.112,0},
Q[]={0.039,-0.016,0,-0.166,-0.058,-0.018,-0.016,-0.058,-0.050};
void Tringlar1(); //B'
void Tringlar2(); //B''
void Voltage(); //迭代
void Delta(); //迭代
void Pinbranch(); //支路功率
void out(); //输出
void main()
{
Tringlar1();
Tringlar2();
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
Yre[i][j]=-G[i][j];
if(i==j)
Yre[i][j]=0;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
Yim[i][j]=-B[i][j];
if(i==j)
Yim[i][j]=0;
}
}
while(kp==1||kq==1)
{
if(kp==1)
{
Delta();
}
if (PMAX<e)
{
kp=0;
}
if(kq==1)
{
Voltage();
}
if (QMAX<e)
kq=0;
h++;
}
Pinbranch();
out();
}
void Tringlar1()
{
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
B1[i][j]=B[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
A[i][j]=B1[i][j];
if(i==j)
{
for(k=0;k<i;k++)
{
A[i][i]=A[i][i]-(A[k][i]*A[k][i]*A[k][k]);
}
}
else if(i!=j)
{
for(k=0;k<i;k++)
{
A[i][j]-=A[k][i]*A[k][j]*A[k][k];
}
A[i][j]=A[i][j]/A[i][i];
}
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
if(i==j)
B1[i][j]=1/A[i][j];
else
B1[i][j]=A[i][j];
}
}
}
//B''
void Tringlar2()
{
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
B2[i][j]=B[i][j];
}
}
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
A[i][j]=B2[i][j];
if(i==j)
{
for(k=0;k<i;k++)
{
A[i][i]-=A[k][i]*A[k][i]*A[k][k];
}
}
else if(i!=j)
{
for(k=0;k<i;k++)
{
A[i][j]-=A[k][i]*A[k][j]*A[k][k];
}
A[i][j]=A[i][j]/A[i][i];
}
}
}
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(i==j)
B2[i][j]=1/A[i][j];
else
B2[i][j]=A[i][j];
}
}
}
void Delta()
{
for(i=0;i<n-1;i++)
{
PU[i]=0;
for(k=0;k<n;k++)
{
PU[i]=PU[i]+(U[k]*(G[i][k]*cos(R[i]-R[k])+B[i][k]*sin(R[i]-R[k])));//4-7
}
PU[i]=P[i]-PU[i]*U[i];
// DeltaP[h][i]=PU[i];
}
PMAX=fabs(PU[0]);
for(i=0;i<n-1;i++)
{
if(PMAX<fabs(PU[i]))
PMAX=fabs(PU[i]);
}
for(i=0;i<n-1;i++)
{
PU[i]=PU[i]/U[i];
}
for(i=0;i<n-1;i++)
{
Y[i]=PU[i];
for(k=0;k<i;k++)
{
Y[i]=Y[i]-(B1[k][i]*Y[k]);
}
}
for(i--;i>=0;i--)
{
X[i]=Y[i]*B1[i][i];
for(k=i+1;k<n-1;k++)
{
X[i]-=B1[i][k]*X[k];
}
}
for(i=0;i<n-1;i++)
{
R[i]-=X[i]/U[i];
}
}
void Voltage()
{
for(i=0;i<m;i++)
{
PU[i]=0;
for(k=0;k<n;k++)
{
PU[i]+=U[k]*(G[i][k]*sin(R[i]-R[k])-B[i][k]*cos(R[i]-R[k]));//4-7
}
PU[i]=Q[i]-PU[i]*U[i];
//PU[i];
}
QMAX=fabs(PU[0]);
for(i=0;i<n-1;i++)
{
if(QMAX<fabs(PU[i]))
QMAX=fabs(PU[i]);
}
for(i=0;i<m;i++)
{
PU[i]=PU[i]/U[i];
}
for(i=0;i<m;i++)
{
Y[i]=PU[i];
for(k=0;k<i;k++)
{
Y[i]-=B2[k][i]*Y[k];
}
}
for(i--;i>=0;i--)
{
X[i]=Y[i]*B2[i][i];
for(k=i+1;k<m;k++)
{
X[i]-=B2[i][k]*X[k];
}
}
for(i=0;i<m;i++)
{
U[i]-=X[i];
}
}
void Pinbranch()
{
for(j=0;j<n;j++)
{
P[n-1]-=U[n-1]*U[j]*(G[n-1][j]*cos(R[n-1]-R[j])+B[n-1][j]*sin(R[n-1]-R[j]));//4-7
}
for(i=m;i<n;i++)
{
for(j=0;j<n;j++)
{
Q[i]-=U[i]*U[j]*(G[i][j]*sin(R[i]-R[j])-B[i][j]*cos(R[i]-R[j]));
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
SR[i][j]=(U[i]*U[i]-U[i]*U[j]*cos(R[i]-R[j]))*Yre[i][j]-U[i]*U[j]*sin(R[i]-R[j])*Yim[i][j];
SI[i][j]=-((U[i]*U[i]-U[i]*U[j]*cos(R[i]-R[j]))*Yim[i][j]+U[i]*U[j]*sin(R[i]-R[j])*Yre[i][j])-U[i]*U[i]*y[i][j];
if(i==j)
SI[i][j]=0;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
LosSR[i][j]=SR[i][j]+SR[j][i];
LosSI[i][j]=SI[i][j]+SI[j][i];
}
}
}
/*void Compare()
{
PMAX=fabs(PU[i]);QMAX=fabs(PU[i]);
for(i=0;i<n-1;i++)
{
if(PMAX<fabs(PU[i]))
PMAX=fabs(PU[i]);
}
for(i=0;i<m;i++)
{
if(QMAX<fabs(PU[i]))
QMAX=fabs(PU[i]);
}
if(PMAX<e&&QMAX<e)
{l=1;}
}
*/
void out()
{
cout<<fixed<<showpoint<<setprecision(4);
cout<<"结点电压幅值:"<<endl;
for(i=0;i<n;i++)
{
cout<<"U"<<i+1<<"="<<U[i]<<" ";
}
cout<<endl<<endl<<endl<<"结点电压相位:"<<endl;
for(i=0;i<n;i++)
{
cout<<"R"<<i+1<<"="<<R[i]*180/3.141592654<<" ";
}
cout<<endl<<endl<<endl<<"注入有功功率:"<<endl;
for(i=0;i<n;i++)
{
cout<<"P"<<i+1<<"="<<P[i]<<" ";
}
cout<<endl<<endl<<endl<<"注入无功功率:"<<endl;
for(
评论0
最新资源