Está en la página 1de 13

C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C ++++++++++++ PROGRAMA PARA LA SIMULACION DE UNA ++++++++++++++++++


C ++++++++++++++ MAQUINA DE INDUCCION SIMETRICA ++++++++++++++++++++
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

INCLUDE 'PARANA.FOR'
INCLUDE 'MENSAJE.FOR'
INCLUDE 'ENTRADA.FOR'
INCLUDE 'FLUJOPRE.FOR'
INCLUDE 'INTEGRAR.FOR'
INCLUDE 'CORRIENT.FOR'
INCLUDE 'SALIDAS.FOR'

DIMENSION CIN(6),COUT(6),F(6),V(6)
CHARACTER RESP
COMMON/UNO/W,WB,WE
COMMON/DOS/RS,XLS,RPR,XPLR,XM
COMMON/TRES/CH,TL
COMMON/CUATRO/P,H
COMMON/CINCO/VS,VR,VB
COMMON/SEIS/XAQ,XAD

2
C
3

FORMAT(A)
<<<<<<<<<<<<<<<PARAMETROS DEL SISTEMA>>>>>>>>>>>>>>>
WRITE (*,*)'DESEA MODIFICAR LOS PARAMETROS DE ANALISIS (S/N)?'
READ (*,2)RESP

IF (RESP .EQ. 'S') GOTO 6


IF (RESP .EQ. 'N') GOTO 7
GOTO 3
6

CALL PARANA

CALL MENSAJE

WRITE (*,*)'ESTA CONFORME (S/N)?'


READ (*,2)RESP
IF (RESP .EQ. 'S') GOTO 10
IF (RESP .EQ. 'N') GOTO 3
GOTO 8

<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>

******LECTURA DE DATOS******

10 OPEN(UNIT=1,FILE='DATOS.DAT')
READ(1,*)W,WB,WE
READ(1,*)RS,XLS,RPR,XPLR,XM
READ(1,*)CI,TL,POWER,POLOS,CIB
READ(1,*)P,H
READ(1,*)VS,VR
CLOSE(UNIT=1)

******CALCULOS PRELIMINARES******
XAQ=1.0/((1.0/XM)+(1.0/XLS)+(1.0/XPLR))
XAD=XAQ
CH=2.0*(CI/POWER)*((WB/POLOS)**2.0)
VB=VS

TB=POWER/((2.0/POLOS)*WB)
DO I=1,6
F(I)=0.0
END DO
WR=0.0
T=0.0
PI=3.1415926
START=0.01*P
W=0.0

****************************

OPEN(UNIT=2,FILE='TORVEL.TXT')

C !!!!!!!!!!!!!!!!!!!SIMULACION!!!!!!!!!!!!!!!!!!!!
20 IF (T .LE. START) GOTO 50
CALL ENTRADA(T,V,WR)
CALL INTEGRAR(TE,FMQ,FMD,F,V,WR)
CALL FLUJOPRE(FMQ,FMD,F)
CALL CORRIENT(FMQ,FMD,F,CIN,TE)
CALL SALIDAS(T,CIN,COUT,WR)

IF (T.GE.P) GOTO 90

C -----ALMACENAMIENTO DE RESULTADOS----50 TORQUE=TE*TB

VELOC=60.0*WR/(PI*POLOS)
WRITE(2,30)T,TORQUE,VELOC
30 FORMAT(1X,3(F10.3,1X))
C --------------------------------------

T=T+H
GOTO 20
90 CLOSE(UNIT=2)

100 END
C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

C @@@@SUBRUTINA CORRIENT: CALCULO DE LAS CORRIENTES@@@@


SUBROUTINE CORRIENT(FMQ,FMD,F,CIN,TE)
DIMENSION F(6),CIN(6)
COMMON/DOS/RS,XLS,RPR,XPLR,XM

CIN(1)=(F(1)-FMQ)/XLS
CIN(2)=(F(2)-FMD)/XLS
CIN(3)=F(3)/XLS
CIN(4)=(F(4)-FMQ)/XPLR
CIN(5)=(F(5)-FMD)/XPLR
CIN(6)=F(6)/XPLR
TE=F(2)*CIN(1)-F(1)*CIN(2)

RETURN

END

C @@@@@ SUBRUTINA VOLTAJE: VOLTAJES DE ENTRADA @@@@@


SUBROUTINE ENTRADA(T,V,WR)
DIMENSION TKS(3,3),TKR(3,3),U(6),V(6)
COMMON/UNO/W,WB,WE
COMMON/CINCO/VS,VR,VB

CONST=2./3.
PI=3.1415926
WD=W-WR

TKS(1,1)=CONST*COS(W*T)
TKS(1,2)=CONST*COS(W*T-CONST*PI)
TKS(1,3)=CONST*COS(W*T+CONST*PI)
TKS(2,1)=CONST*SIN(W*T)
TKS(2,2)=CONST*SIN(W*T-CONST*PI)
TKS(2,3)=CONST*SIN(W*T+CONST*PI)
TKS(3,1)=1./3.
TKS(3,2)=1./3.
TKS(3,3)=1./3.
TKR(1,1)=CONST*COS(WD*T)
TKR(1,2)=CONST*COS(WD*T-CONST*PI)
TKR(1,3)=CONST*COS(WD*T+CONST*PI)

TKR(2,1)=CONST*SIN(WD*T)
TKR(2,2)=CONST*SIN(WD*T-CONST*PI)
TKR(2,3)=CONST*SIN(WD*T+CONST*PI)
TKR(3,1)=1./3.
TKR(3,2)=1./3.
TKR(3,3)=1./3.
U(1)=(VS/VB)*COS(WE*T)
U(2)=(VS/VB)*COS(WE*T-CONST*PI)
U(3)=(VS/VB)*COS(WE*T+CONST*PI)
U(4)=(VR/VB)*COS(WE*T)
U(5)=(VR/VB)*COS(WE*T-CONST*PI)
U(6)=(VR/VB)*COS(WE*T+CONST*PI)

DO I=1,3
SUM1=0.0
SUM2=0.0
DO J=1,3
SUM1=SUM1+TKS(I,J)*U(J)
SUM2=SUM2+TKR(I,J)*U(J+3)
END DO
V(I)=SUM1
V(I+3)=SUM2
END DO

RETURN
END

C @@@@SUBRUTINA FLUJOPRE: CALCULA LOS FUJOS PREVIOS@@@@


SUBROUTINE FLUJOPRE(FMQ,FMD,F)
DIMENSION F(6)
COMMON/DOS/RS,XLS,RPR,XPLR,XM
COMMON/SEIS/XAQ,XAD

FMQ=XAQ*((F(1)/XLS)+(F(4)/XPLR))
FMD=XAD*((F(2)/XLS)+(F(5)/XPLR))

RETURN
END

C @@@@SUBRUTINA INTEGRAR : INTEGRA LAS ECUACIONES DIFERENCIALES@@@@


SUBROUTINE INTEGRAR(TE,FMQ,FMD,F,V,WR)
DIMENSION DF(6),F(6),V(6)
COMMON/UNO/W,WB,WE
COMMON/DOS/RS,XLS,RPR,XPLR,XM
COMMON/TRES/CH,TL
COMMON/CUATRO/P,H

DF(1)=WB*(V(1)-(W/WB)*F(2)+(RS/XLS)*(FMQ-F(1)))
DF(2)=WB*(V(2)+(W/WB)*F(1)+(RS/XLS)*(FMD-F(2)))
DF(3)=WB*(V(3)-(RS/XLS)*F(3))

DF(4)=WB*(V(4)-((W-WR)/WB)*F(5)+(RPR/XPLR)*(FMQ-F(4)))
DF(5)=WB*(V(5)+((W-WR)/WB)*F(4)+(RPR/XPLR)*(FMD-F(5)))
DF(6)=WB*(V(6)-(RPR/XPLR)*F(6))
DWR =(WB/(2.0*CH))*(TE-TL)

DO I=1,6
F(I)=F(I)+DF(I)*H
END DO
WR=WR+DWR*H

RETURN
END

C @@@@ SUBRUTINA MENSAJE: INFORMA DE LOS PARAMETROS UTILIZADOS @@@@


SUBROUTINE MENSAJE

OPEN (UNIT=1,FILE='DATOS.DAT')
READ(1,*)W,WB,WE
READ(1,*)RS,XLS,RPR,XPLR,XM
READ(1,*)CI,TL,POWER,POLOS,CIB
READ(1,*)P,H
READ(1,*)VS,VR
CLOSE (UNIT=1)

WRITE (*,*)'VELOCIDAD DE GIRO DE LA REFERENCIA',W

WRITE (*,*)'VELOCIDAD BASE',WB


WRITE (*,*)'FRECUENCIA DEL SISTEMA',WE/(2.0*3.1415926)
WRITE (*,*)'RESISTENCIA DEL ESTATOR (p.u.)',RS
WRITE (*,*)'REACTANCIA DEL ESTATOR (p.u.)',XLS
WRITE (*,*)'RESISTENCIA DEL ROTOR REFERIDA AL ESTATOR (p.u.)'
+

,RPR

WRITE (*,*)'REACTANCIA DEL ROTOR REFERIDA AL ESTATOR (p.u.)'


+

,XPLR

WRITE (*,*)'REACTANCIA MUTUA (p.u.)',XM


WRITE (*,*)'CONSTANTE DE INERCIA',CI
WRITE (*,*)'TORQUE DE LA CARGA',TL
WRITE (*,*)'POTENCIA DE LA MAQUINA (W)',POWER
WRITE (*,*)'PARES DE POLOS',POLOS
WRITE (*,*)'PERIODO DE ANALISIS',P
WRITE (*,*)'PASO DE INTEGRACION',H
WRITE (*,*)'================================================'
WRITE (*,*)'ESTOS DATOS SE ALMACENAN EN EL ARCHIVO DATOS.DAT'
WRITE (*,*)'Y LOS RESULTADOS DE LA SIMULACION EN EL ARCHIVO'
WRITE (*,*)'RESULTS.DAT'
WRITE (*,*)'================================================'
WRITE (*,*)'VOLTAJE DE ENTRADA AL ESTATOR (V)',VS*SQRT(2.0)
WRITE (*,*)'VOLTAJE DE ENTRADA AL ROTOR (V)',VR*SQRT(2.0)

RETURN
END

C @@@@@@@ SUBRUTINA PARANA: CAMBIO DE PARAMETROS DEL SISTEMA @@@@@@@


SUBROUTINE PARANA

WRITE (*,*)'INGRESE LOS PARAMETROS SEGUN LE PIDA, NO OLVIDE'


WRITE (*,*)'LA IMPORTANCIA DEL TIPO DE DATOS'
WRITE (*,*)'VELOCIDAD DE GIRO DE LA REFERENCIA'
READ (*,*)W
WRITE (*,*)'VELOCIDAD BASE'
READ (*,*)WB
WRITE (*,*)'CORRIENTE BASE'
READ (*,*)CIB
WRITE (*,*)'FRECUENCIA DEL SISTEMA (HZ)'
READ (*,*)FSIS
WE=FSIS*2.0*3.1415926
WRITE (*,*)'RESISTENCIA DEL ESTATOR (p.u.)'
READ (*,*)RS
WRITE (*,*)'REACTANCIA DEL ESTATOR (p.u.)'
READ (*,*)XLS
WRITE (*,*)'RESISTENCIA DEL ROTOR REFERIDA AL ESTATOR (p.u.)'
READ (*,*)RPR
WRITE (*,*)'REACTANCIA DEL ROTOR REFERIDA AL ESTATOR (p.u.)'
READ (*,*)XPLR
WRITE (*,*)'REACTANCIA MUTUA (p.u.)'
READ (*,*)XM
WRITE (*,*)'CONSTANTE DE INERCIA'

READ (*,*)CI
WRITE (*,*)'POTENCIA BASE (W)'
READ (*,*)POWER
WRITE (*,*)'NUMERO DE POLOS'
READ (*,*)POLOS
WRITE (*,*)'TORQUE DE LA CARGA'
READ (*,*)TL
WRITE (*,*)'PERIODO DE ANALISIS'
READ (*,*)P
WRITE (*,*)'PASO DE INTEGRACION'
READ (*,*)H
WRITE (*,*)'EL VOLTAJE EN UNA FASE DEL ESTATOR TIENE LA FORMA'
WRITE (*,*)'SQRT(2)*VS*COS(WE*T),INGRESE VS (VOLTS rms):'
READ (*,*)VS
WRITE (*,*)'EL VOLTAJE EN UNA FASE DEL ROTOR TIENE LA FORMA'
WRITE (*,*)'SQRT(2)*VR*COS(WE*T),INGRESE VR (VOLTS rms):'
READ (*,*)VR

OPEN (UNIT=1,FILE='DATOS.DAT')
WRITE(1,*)W,WB,WE
WRITE(1,*)RS,XLS,RPR,XPLR,XM
WRITE(1,*)CI,TL,POWER,POLOS,CIB
WRITE(1,*)P,H
WRITE(1,*)VS,VR
CLOSE (UNIT=1)

RETURN
END

C @@@@SUBRUTINA SALIDAS: CORRIENTES DE SALIDA


SUBROUTINE SALIDAS(T,CIN,COUT,WR)
DIMENSION CIN(6),COUT(6)
COMMON/UNO/W,WB,WE

CONST=2./3.
PI=3.1415926
WD=W-WR

COUT(1)=COS(W*T)*CIN(1)+SIN(W*T)*CIN(2)+CIN(3)
COUT(2)=COS(W*T-CONST*PI)*CIN(1)+SIN(W*T-CONST*PI)*CIN(2)+
*

CIN(3)

COUT(3)=COS(W*T+CONST*PI)*CIN(1)+SIN(W*T+CONST*PI)*CIN(2)+
*

CIN(3)

COUT(4)=COS(WD*T)*CIN(4)+SIN(WD*T)*CIN(5)+CIN(6)
COUT(5)=COS(WD*T-CONST*PI)*CIN(4)+SIN(WD*T-CONST*PI)*CIN(5)+
*

CIN(6)

COUT(6)=COS(WD*T+CONST*PI)*CIN(4)+SIN(WD*T+CONST*PI)*CIN(5)+
*

CIN(6)

RETURN

END

Datos para el programa

0.000000E+00

371.000000

376.991100

1.990000E-02 3.440000E-02 3.730000E-02 3.440000E-02


1.193200
8.900000E-02 0.000000E+00
5.800000
6.000000E-01 1.000000E-04
127.000000 0.000000E+00

2210.000000

4.000000

También podría gustarte