Você está na página 1de 7

#include<stdio.

h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#define k 0.00000000000885
#define pi 3.14159265359

//o usuario escolhera o tipo de entrada


//depois converter de milhas para metros depois o usuario escolhera o tipo de saida
void menuprincipal()
{
system("cls");
printf("\n(A)capacitancia monovarialvel\n");
printf("\n(B)capacitancia calculada em função linha neutro\n");
printf("\n(C)trifasica equilibrada\n");
printf("\n(D)capacitancia trifasica assimetrica\n");
printf("\n(E)capacitancia trifasica horizontal de cabos duplos ou singelos\n");
printf("\n(F) para encerrar o programa\n");
}
// menu entrada de dados
void menu2()
{
system("cls");
printf("\n(A) Para ter os valores da entrada em ohm.m e S/m\n");
printf("\n(B) Para ter os valores da entrada em ohm.m e S/m\n");
printf("\n(F) Para voltar ao menu principal\n");
}
//menu saida de dados
void menu1()
{
system("cls");
printf("\n (A)Para ver os valores da saida em ohm.m e S/m\n");
printf("\n (B)Para ver os valores da saida em ohm.mi e S/mi\n");
printf("\n (F)Para voltar ao menu principal\n");
}
// equação 1
//capacitancia monovarialvel cabo a e b,que qa=-qb(linha-linha)
void capacitancia_monofasico()
{
double D,r,C,frequencia,constante,f,Xc,y,Xcm;
char op;
printf("\n digite o espacamento,o raio e a frequencia\n");
printf("\n digite o espaçamento e o raio nas mesmas unidades\n");
scanf("%lf",&D);
scanf("%lf",&r);
scanf("%lf",&frequencia);
constante=D/r;
f=log(constante);
C=pi*k/f;
printf("\n a capacitancia e :\t %.8lf \t %lf",f,C);
system("PAUSE");
Xc=2.862*1000000000*f/frequencia;
Xcm=1.779*1000000*f/frequencia;
do
{
menu1();
op=getch();
op=toupper(op);
switch(op)
{
case 'A':
y=1/Xc;
printf("\n a suceptancia e:\t %.12lf ohm.m",y);
printf("\n a reatancia e :\t %.8lf S/m",Xc);getch();break;
case 'B':
Xc=Xc/1609;
y=1/Xc;
printf("\n a suceptancia e:\t %.8lf ohm.mi",y);
printf("\n a reatancia e :\t %.8lf S/mi",Xcm);getch();break;
case 'F':
op='S';getch();break;
default:
printf("\n escolha errada\n");
}
}while(op!='S');

}
// equação 2
//capacitancia calculada em função linha neutro
//falta corrente de carregamento
//calcular o reativo da linha
void capacitanciaao_neutro()
{
char op;
double D,r,C,frequencia,constante,f,Xc,y,Xcm;

printf("\n digite o espacamento,o raio e a frequencia\n");


printf("\n digite o espaçamento e o raio nas mesmas unidades\n");
scanf("%lf",&D);
scanf("%lf",&r);
scanf("%lf",&frequencia);
constante=D/r;
f=log(constante);
C=2*pi*k/f;
printf("\n a capacitancia e :\t%.12lf\n\n",C);
system("PAUSE");
Xc=2.862*1000000000*f/frequencia;
Xcm=1.779*1000000*f/frequencia;
y=1/Xcm;
do
{

menu1();
op=getch();
op=toupper(op);

switch(op)
{
case 'A':
printf("\n a suceptancia e:\t %lf ohm.m",1/Xc);
printf("\n a reatancia e :\t %lf S/m",Xc);getch();break;
case 'B':

printf("\n a suceptancia e:\t %lf ohm.mi",y);


printf("\n a reatancia e :\t %lf S/mi",Xcm);getch();break;
case 'F':
op='S';getch();break;
default:
printf("\n escolha errada\n");
}
}while(op!='S');
}
// equação 3
//capacitancia monofasica ao neutro = trifasica equilibrada
void capacitancia_trifasica_simetrica()
{
double C,D,constante,f,Xc,D1,D2,D3,r,frequencia,Xcm;
char op;
printf("\n digite o espacamento,o raio e a frequencia\n");
printf("\n digite o espaçamento e o raio nas mesmas unidades\n");
scanf("%lf",&D);
scanf("%lf",&r);
scanf("%lf",&frequencia);
constante=D/r;
f=log(constante);
C=2*pi*k/f;
printf("\n a capacitancia e :\t%.14lf F",C);
system("PAUSE");
Xc=2.862*1000000000*f/frequencia;
Xcm=1.779*1000000*f/frequencia;
do
{

menu1();
op=getch();
op=toupper(op);

switch(op)
{
case 'A':
printf("\n a suceptancia e:\t %lf ohm.m",1/Xc);
printf("\n a reatancia e :\t %lf S/m",Xc);getch();break;
case 'B':
Xc=Xc/1609;
printf("\n a suceptancia e:\t %lf ohm.m",1/Xc);
printf("\n a reatancia e :\t %lf S/m",Xc);getch();break;
case 'F':
op='S';getch();break;
default:
printf("\n escolha errada\n");
}
}while(op!='S');
}
// equação 4
//capacitancia trifasica assimetrica
void capacitancia_trifasica_assimetrica()
{
char op;
double C,r,constante,f,Xc,Xcm,Deq,cons,d,temp,frequencia;
double D12,D23,D31,y;
int n;//numero de condutores no bumdled conductor
printf("\n digite o espaçamento e o raio nas mesmas unidades\n");
printf("\n digite os espacamento\n");
scanf("%lf",&D12);
scanf("%lf",&D23);
scanf("%lf",&D31);
printf("\n digite o raio e a frequencia\n");
scanf("%lf",&r);
scanf("%lf",&frequencia);
cons=D12*D23*D31;
Deq=pow(cons,0.33333333333);
f=Deq/r;
C=2*pi*k/f;
constante=log(f);
printf("\n a capacitancia e :\t%.12lf\n\n",C);
system("PAUSE");
//usar uma função para tirar a raiz cubica
//no caso de distancias diferentes

Xc=2.862*1000000000*constante/frequencia;
Xcm=1.779*1000000*constante/frequencia;

y=1/Xc;
do
{

menu1();
op=getch();
op=toupper(op);

switch(op)
{
case 'A':
printf("\n a suceptancia e:\t %.12lf ohm.m",y);

printf("\n a reatancia e :\t %.14lf S/m",Xc);getch();break;


case 'B':
printf("\n a suceptancia e:\t %.12lf ohm.mi",1/Xcm);

printf("\n a reatancia e :\t %.12lf S/mi",Xcm);getch();break;


case 'F':
system("cls");
op='S';getch();break;
default:
printf("\n escolha errada\n");
}
}while(op!='S');
}

//equação 5
//calculo de capacitancia de condutores duplos horizontalmente
void capacitancia_CABOSMULTIPLOS_HORIZONTAL(double D,double r,double frequencia)
{
char op;
double C,constante,f,Xc,Xcm,Deq,cons,d,Dsc,temp;
double DS,y;
int n;//numero de condutores no bumdled conductor
cons=D*D*2*D;

//usar uma função para tirar a raiz cubica


//no caso de distancias diferentes
Deq=pow(cons,0.3333333333333);
printf("\ndigite o numero cabos no circuito se for singelo coloque 1\n");
scanf("%d",&n);
if(n==1)
{
temp=r;
}
else
{
printf("\n digite a distancia dos cabos\n");
scanf("%lf",&d);
temp=sqrt(r*d);
}

f=Deq/temp;
constante=log(f);
Xc=2.862*1000000000*constante/frequencia;
Xcm=1.779*1000000*constante/frequencia;
y=1/Xc;
do
{

menu1();
op=getch();
op=toupper(op);

switch(op)
{
case 'A':
printf("\n a suceptancia e:\t %.13lf ohm.m",y);
printf("\n a reatancia e :\t %.14lf S/m",Xc);getch();break;
case 'B':
printf("\n a suceptancia e:\t %.15lf .ohm.mi",1/Xcm);
printf("\n a reatancia e :\t %.3lf S/mi",Xcm);getch();break;
case 'F':
op='S';getch();break;
default:
printf("\n escolha errada\n");
}
}while(op!='S');
}

//com pelo menos 3 etapas do para:


//(1)para preencher
//(2) para escolher o tipo de calculo

int main()
{
char op;
double D,D12,D23,D31,frequencia,r;
do
{
menuprincipal();
op=getch();
op=toupper(op);

switch(op)
{
case 'A':
capacitancia_monofasico();
getch();break;
case 'B':

capacitanciaao_neutro();
getch();break;
case 'C':

capacitancia_trifasica_simetrica();
getch();break;
case 'D':

capacitancia_trifasica_assimetrica();
getch();break;
case 'E':
printf("\n digite o espacamento (em pés),o raio (em pés) e a frequencia (em Herz)\n");
scanf("%lf",&D);
scanf("%lf",&r);
scanf("%lf",&frequencia);
capacitancia_CABOSMULTIPLOS_HORIZONTAL(D,r,frequencia);
getch();break;
case'F':
op='F';
getch();break;
default:
system("cls");
printf("\n altenativa inexistente\n");
}
}while(op!='F');
system("cls");
printf("\nFim do Programa\n");
getch();
return 0;
}

Você também pode gostar