Você está na página 1de 3

void Calculo_do_fluxo(int n_ramos, complex<double> C[], complex<double> Z[],int

noi_novo[],int nof_novo[])
{
//*****Declarao de Variveis Locais*****//
int ref,k,i,j,n_nos;
double erro,DP,Pper1,Pper2,P,Pt;
complex<double> Ib[len],dV[len], Vb[len], Iac[len],S[len];
DP=1;
erro=0.001;
Pper1 = 0;
n_nos = n_ramos+1;
for (i=1;i<=n_nos;i++) //*****Padronizando tenso nas barras*****//
{
Vb[i]=complex<double>(1.05,0.0);
}
while(DP > erro)
{
for(i=n_nos;i>=1;i--)

//*****Calculando correntes nas barras(backward)

*****//
{
Ib[i]=conj(C[i])/conj(Vb[i]);
}
for(i=1;i<=n_ramos;i++) //*****Zerando os vetores de corrente acumulada*
****//
{
Iac[i]=complex<double>(0.0,0.0);
}
for(i=1;i<=n_nos;i++)
ramo*****//
{

//*****Somando as correntes resultantes em cada

ref=i;
for(j=1;j<=n_ramos;j++)
{
if(ref==nof_novo[j])
{
Iac[j]=Iac[j]+Ib[noi_novo[i]];
ref=noi_novo[j];
j=0;
}
}

}
for(j=1;j<=n_ramos;j++) //*****Calculando perdas em cada ramo*****//
{
S[j]=Z[j]*(pow(Iac[j].real(),2)+pow(Iac[j].imag(),2));
}
Pt=0;
for(j=1;j<=n_ramos;j++) //*****Somatria das perdas reais nos ramos*****//
{
P=S[j].real();
Pt=Pt+P;
}
Pper2=Pt;
DP=abs(Pper2-Pper1);
Pper1=Pper2;
for(i=1;i<=n_ramos;i++) //*****Clculo diferena de tenso entre as barras(dV)
*****//
{
dV[i]=Iac[i]*Z[i];
}
for(i=1;i<=n_nos;i++)
dV*****//
{

//*****Calculando a tenso de cada barra atravs de

for(j=1;j<=n_ramos;j++)
{
if(i==noi_novo[j])
{
k=nof_novo[j];
Vb[k]=Vb[i]-dV[j];
}
}
}
}
ofstream escreve;
escreve.open("c:\\RESULTADO.txt");
for(i=1;i<=n_nos;i++){
escreve<<Vb[i]<<" ";
}
escreve<<endl<<endl;

for(i=1;i<=n_nos;i++){
escreve<<S[i]<<" ";
}
escreve.close();
}

Você também pode gostar