Languages: Fortran IV (Fist Version) or Excel/Visual Basic (Second Version).
Objective: Calculation of hot rolling load, torque, power and energy. The load is calculated according to the methods of Orowan, Sims, Ekelund, Orowan-Pascoe, Tselikov and Alexander-Ford.
***** Begin of FORTRAN Program Listing *****
C C *** C *** CALCULATION OF LOAD, TORQUE, POWER AND WORK IN THE C *** HOT ROLLING OF STEEL FLATS C *** C *** C *** References: C *** C *** - SILVA, A.M.S.: Analise do Processo de Laminacao a Quente; C *** CPGEM/UFMG; Belo Horizonte; 1978. C *** C *** - BUCKLEY, G.W. et alii: Dynamic Analysis and Performance C *** of Hot Rolling Mills; Metals Technology; July 1978. C *** C *** - PLAUT, R.L.: Laminacao dos Acos - Topicos Avancados; C *** Associacao Brasileira dos Metais; Sao Paulo; 1984. C *** C *** - WUSATOWSKI, Z.: Fundamentals of Rolling; Pergamon Press; C *** Katowice; 1969. C *** C *** - ROBERTS, W.L.: The Hot Rolling of Steel; Marcel Dekker C *** Inc.; New York; 1983. C *** C *** C ***C *** C *** Antonio Augusto Gorni - July 23, 1990 C *** C $NOFLOATCALLS $STORAGE:2 $DO66 $INCLUDE:'FOREXEC.INC' SUBROUTINE SPEAK(IMEM,VEC,N) INTEGER*2 SYSTEM DIMENSION VEC(1) WRITE(*,2)IMEM 2 FORMAT(' ',A2) DO 1 I=1,N,4 1 WRITE(*,*)VEC(I),VEC(I+1),VEC(I+2),VEC(I+3) RETURN END C C *** FUNCAO ARCOS(X): Arco-cosseno de X, em radianos. C FUNCTION ARCOS(X) ARCOS=ATAN(SQRT(1.-X*X)/X) RETURN END C C *** FUNCAO FUN(X,Y,XK): Calculo da Tensao Horizontal para a C *** Saida. C FUNCTION FUN(X,Y,XK) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) TANG=SIN(X)/COS(X) IF(X)1,1,2 1 YM=0.5 GOTO 3 2 YM=0.7853982*SIN(X)-0.5*((1./X)-1./TANG)*SIN(X)+0.5*COS(X) 3 A=HF+D*(1.-COS(X)) FUN=(Y*D/A)*SIN(X)+D*XK*YM RETURN END C C *** FUNCAO FEN(X,Y,XK): Calculo da Tensao Horizontal para a C *** Entrada. C FUNCTION FEN(X,Y,XK) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) A=HF+D*(1.-COS(X)) I=101.-IFIX(X*101./XM) IF(I)4,4,5 4 I=1 5 XA=XKA(I) Z=XM-X TANG=SIN(Z)/COS(Z) IF(Z)1,1,2 1 YM=-0.5 GOTO 3 2 YM=0.7853982*SIN(Z)+0.5*((1./Z)-1./TANG)*SIN(Z)-0.5*COS(Z) 3 FEN=(Y*D/A)*SIN(Z)+D*XA*YM FEN=-FEN RETURN END C C *** FUNCAO SUN(X,Y,XK): Calculo da Tensao Vertical para a C *** Saida. C FUNCTION SUN(X,Y,XK) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) A=HF+D*(1.-COS(X)) TANG=SIN(X)/COS(X) IF(X)1,1,2 1 SUN=Y/A+XK*0.7853982 GOTO 3 2 SUN=Y/A+XK*0.7853982-0.5*((1./X)-1./TANG)*XK 3 RETURN END C C *** FUNCAO SEN(X,Y,XK): Calculo da Tensao Vertical para a C *** Entrada. C FUNCTION SEN(X,Y,XK) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) A=HF+D*(1.-COS(X)) TANG=SIN(X)/COS(X) IF(X)1,1,2 1 SEN=Y/A+XK*0.7853982 GOTO 3 2 SEN=Y/A+XK*0.7853982+0.5*((1./X)-1./TANG)*XK 3 RETURN END C C *** SUBROTINA QSF: Integracao de Pontos Discretos por Simpson. C SUBROUTINE QSF(H,Y,Z,NDIM) DIMENSION Y(1),Z(1) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) HT=.3333333*H L1=1 L2=2 L3=3 L4=4 L5=5 L6=6 IF(NDIM-5)7,8,1 1 SUM1=Y(L2)+Y(L2) SUM1=SUM1+SUM1 SUM1=HT*(Y(L1)+SUM1+Y(L3)) AUX1=Y(L4)+Y(L4) AUX1=AUX1+AUX1 AUX1=SUM1+HT*(Y(L3)+AUX1+Y(L5)) AUX2=HT*(Y(L1)+3.875*(Y(L2)+Y(L5))+2.825*(Y(L3)+Y(L4))+Y(L6)) SUM2=Y(L5)+Y(L5) SUM2=SUM2+SUM2 SUM2=AUX2-HT*(Y(L4)+SUM2+Y(L6)) Z(L1)=0. AUX=Y(L3)+Y(L3) AUX=AUX+AUX Z(L2)=SUM2-HT*(Y(L2)+AUX+Y(L4)) Z(L3)=SUM1 Z(L4)=SUM2 IF(NDIM-6)5,5,2 2 DO 4 I=7,NDIM,2 SUM1=AUX1 SUM2=AUX2 AUX1=Y(I-1)+Y(I-1) AUX1=AUX1+AUX1 AUX1=SUM1+HT*(Y(I-2)+AUX1+Y(I)) Z(I-2)=SUM1 IF(I-NDIM)3,6,6 3 AUX2=Y(I)+Y(I) AUX2=AUX2+AUX2 AUX2=SUM2+HT*(Y(I-1)+AUX2+Y(I+1)) 4 Z(I-1)=SUM2 5 Z(NDIM-1)=AUX1 Z(NDIM)=AUX2 RETURN 6 Z(NDIM-1)=SUM2 Z(NDIM)=AUX1 RETURN 7 IF(NDIM-3)12,11,8 8 SUM2=1.125*HT*(Y(L1)+Y(L2)+Y(L2)+Y(L2)+Y(L3)+Y(3)+Y(L3)+Y(L4)) SUM1=Y(L2)+Y(L2) SUM1=SUM1+SUM1 SUM1=HT*(Y(L1)+SUM1+Y(L3)) Z(L1)=0. AUX1=Y(L3)+Y(L3) AUX1=AUX1+AUX1 Z(L2)=SUM2-HT*(Y(L2)+AUX1+Y(L4)) IF(NDIM-5)10,9,9 9 AUX1=Y(L4)+Y(L4) AUX1=AUX1+AUX1 Z(L5)=SUM1+HT*(Y(L3)+AUX1+Y(L5)) 10 Z(L3)=SUM1 Z(L4)=SUM2 RETURN 11 SUM1=HT*(1.25*Y(L1)+Y(L2)+Y(L2)-0.25*Y(L3)) SUM2=Y(L2)+Y(L2) SUM2=SUM2+SUM2 Z(L3)=HT*(Y(L1)+SUM2+Y(L3)) Z(L1)=0. Z(L2)=SUM1 12 RETURN END C C *** SUBROTINA RK(FUN,H,XI,YI,K,N,VEC): Resolucao de Equacao C *** Diferencial pelo Metodo de Runge-Kutta. C SUBROUTINE RK(FUN,H,XI,YI,K,N,VEC) DIMENSION VEC(1) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) H2=H/2. X=XI Y=YI DO 2 I=1,N XK=XKA(I) DO 1 J=1,K T1=H*FUN(X,Y,XK) T2=H*FUN(X+H2,Y+T1/2.,XK) T3=H*FUN(X+H2,Y+T2/2.,XK) T4=H*FUN(X+H,Y+T3,XK) Y=Y+(T1+2.*T2+2.*T3+T4)/6. 1 X=X+H VEC(I)=Y 2 CONTINUE RETURN END C C *** PROGRAMA PRINCIPAL. C PROGRAM RCALC LOGICAL FLAG,FLAG1,FLAG2 EXTERNAL FUN,FEN,SUN,SEN INTEGER*2 SYSTEM DIMENSION P(101),H(101),SS(101),SE(101),DEF(101),VD(101) DIMENSION A(101),B(101),S(101),X(101),IBF(40) DIMENSION CLE(7),HFD(7),TLI(7),TLF(7),TQE(7),VPER(7) COMMON HI,HF,D,RI,XM,TLAM,XKA(101) DATA VRE/6.0/,IBELL/7/,CFATR/0.01/,CTRANS/0.95/,RMOT/0.95/ OPEN(1,FILE='CON:') OPEN(2,FILE='PRN:') 300 WRITE(*,1210)IBELL IDUMMY=SYSTEM('CLS'C) WRITE(*,189) 189 FORMAT(' CALCULATION OF HOT ROLLING LOAD, TORQUE AND POWER ', >,///' IDENTIFICATION MESSAGE? ') READ(*,1000)IBF 1000 FORMAT(40A2) WRITE(*,1010) 1010 FORMAT(/,' HOT STRENGTH GRADE? ',\) READ(*,1205)IRES 1205 FORMAT(A2) WRITE(*,1050) 1050 FORMAT(/,' INITIAL THICKNESS (MM)? ',\) READ(*,*)HI WRITE(*,1070) 1070 FORMAT(/,' WORK ROLL DIAMETER (MM)? ',\) READ(*,*)D WRITE(*,1080) 1080 FORMAT(/,' ROLLING STOCK WIDTH (MM)? ',\) READ(*,*)W WRITE(*,1090) 1090 FORMAT(/,' ROLLING STOCK LENGTH (MM)? ',\) READ(*,*)CI WRITE(*,1100) 1100 FORMAT(/,' NUMBER OF ROLLING PASSES? ',\) READ(*,*)JC WRITE(*,1110) 1110 FORMAT(/,' ROLL GAP OF EACH PASS (MM)? ') DO 1120 I=1,JC WRITE(*,2000)I 2000 FORMAT(1X,'PASS NO. ',I2,' = ',\) 1120 READ(*,*)HFD(I) WRITE(*,1130) 1130 FORMAT(/,' INITIAL TEMPERATURES OF EACH PASS (.C)? ') DO 1140 I=1,JC WRITE(*,2000)I 1140 READ(*,*)TLI(I) WRITE(*,1150) 1150 FORMAT(/,' FINAL TEMPERATURES OF EACH PASS (.C)? ') DO 1160 I=1,JC WRITE(*,2000)I 1160 READ(*,*)TLF(I) WRITE(*,1170) 1170 FORMAT(/,' WORK ROLL PERIPHERICAL SPEED (M/MIN)? ') DO 1180 I=1,JC WRITE(*,2000)I 1180 READ(*,*)VPER(I) WRITE(*,3000) 3000 FORMAT(/,' DO YOU WANT CORRECTION BY HITCHCOCK (T/F)? ',\) READ(*,3010)FLAG 3010 FORMAT(L1) WRITE(*,3146) 3146 FORMAT(/,' DO YOU WANT PRINTING OF THE RESULTS (T/F)? ',\) READ(*,3010)FLAG1 IDUMMY=SYSTEM('CLS'C) NA=100 NB=10 NN=0 Z=2.1517E-4 DA=D R=D/2 RI=R DO 30 KC=1,JC HIO=HI HF=HFD(KC) CF=CI*HI/HF RLA=RI*SIN(ARCOS(1.-(HI-HF)/(2.*RI))) IF((HI+HF)/2..LT.RLA)GO TO 57 HI=RLA+(HI-HF)/2. HF=RLA-(HIO-HF)/2. C C *** ANOTHER PATCH IN THE WALL! C WRITE(*,9845)HI,HF 9845 FORMAT(F9.2,F9.2) READ(*,*)WALZ 57 RE=(HI-HF)/HI TLAM=(TLI(KC)+TLF(KC))/2. 7 FACT=(1.-(HI-HF)/D)**2. RPM=VPER(KC)/(6.28318E-3*RI) XM=ATAN(SQRT((1.0/FACT)-1.0)) XITL=1./TLAM KK=1 N=NA+1 STEP1=XM/(N*NB) STEP2=STEP1*NB X(1)=STEP2 IF(IRES.EQ.'MR')GOTO 4340 IF(IRES.EQ.'AR')GOTO 4341 TERM1=10. GOTO 4342 4340 TERM1=11.1 4342 TERM2=12.231 TERM3=0.0025 TERM4=1.494 TERM5=0.174 TERM6=0.726 TERM7=0.139 GOTO 4345 4341 TERM1=11.9 TERM2=18.170 TERM3=0.0028 TERM4=1.516 TERM5=0.181 TERM6=0.750 TERM7=0.124 4345 DO 14 I=1,NA 14 X(I+1)=X(I)+STEP2 ICHAR='X' CALL SPEAK(ICHAR,X,NA) DO 15 I=1,N H(I)=HF+2.*RI*(1.-COS(X(I))) VD(I)=0.2094395*RPM*RI*SIN(X(I))/H(I) DEF(I)=ALOG(HI/H(I)) IF(DEF(I).LE.0.)DEF(I)=0.01 XKA(I)=(TERM1*TERM2* >EXP(-TERM3*TLAM)*TERM4*DEF(I)**TERM5*TERM6*VD(I)**TERM7)*1.155 C IF(XKA(I)-VRE)42,42,15 C 42 XKA(I)=VRE 15 CONTINUE ICHAR='H' CALL SPEAK(ICHAR,H,N) ICHAR='VD' CALL SPEAK(ICHAR,VD,N) ICHAR='DEF' CALL SPEAK(ICHAR,DEF,N) ICHAR='XKA' CALL SPEAK(ICHAR,XKA,N) C JE=0 C DO 32 I=1,N C IF(DEF(I)-50.)34,34,35 C 34 IF(VD(I)-1.5)35,35,32 C 35 JE=JE+1 C 32 CONTINUE C JF=JE+1 C DO 33 I=1,JE C 33 XKA(I)=XKA(JF) REMED=0.67*ALOG(HI/HF) VDMED=0.1047197*RPM*RI*SQRT(1./(RI*(HI-HF)))*ALOG(HI/HF) XKMED=(TERM1*TERM2* >EXP(-TERM3*TLAM)*TERM4*REMED**TERM5*TERM6*VDMED**TERM7)*1.155 ICHAR='**** XKMED ****' WRITE(*,4859)ICHAR,XKMED 4859 FORMAT(' ',A30,F8.2) XS=STEP1 FS=0.0 CALL RK(FUN,STEP1,XS,FS,NB,N,A) XE=STEP1 FE=0.0 CALL RK(FEN,STEP1,XE,FE,NB,N,B) DO 60 J=1,N L=N-J+1 E=X(J) XKB=XKA(J) FSAI=A(J) SS(J)=SUN(E,FSAI,XKB) FENT=B(L) SE(J)=SEN(E,FENT,XKB) IF(SE(J)-SS(J))10,10,11 11 S(J)=SS(J) GOTO 60 10 IF(KK-1)13,12,13 12 KK=KK+1 XN=X(J) HN=H(J) 13 S(J)=SE(J) 60 CONTINUE ICHAR='SS' CALL SPEAK(ICHAR,SS,N) ICHAR='SE' CALL SPEAK(ICHAR,SE,N) CALL QSF(STEP2,S,P,N) ICHAR='P' CALL SPEAK(ICHAR,P,N) CL=P(N)*D/2. QP=SQRT((1.-RE)/RE)*(1.5707965*ATAN(SQRT(RE/(1.-RE)))-SQRT >(RI/HF)*ALOG(HN/HF)+0.5*SQRT(RI/HF)*ALOG(1./(1.-RE)))-0.7853982 CLS=XKMED*SQRT(RI*(HI-HF))*QP QWP=(3.1415929+SQRT(RI*(HI-HF))/HF)/4. PWP=XKMED*QWP*SQRT(RI*(HI-HF)) YMI=0.8*(1.05-0.0005*TLAM)*(1.15-0.26*ALOG(VPER(KC)/60.)) YQEK=1.+(1.6*YMI*SQRT(RI*(HI-HF))-1.2*(HI-HF))/(HI+HF) PEK=XKMED*YQEK*SQRT(RI*(HI-HF)) DELTA=YMI*SQRT(4.*RI/(HI-HF)) RH=((1.+SQRT(1.+(DELTA**2.-1.)*(HI/HF)**DELTA))/(DELTA+1.))**(1./ >DELTA) PTSEL=SQRT(RI*(HI-HF))*XKMED*2.*RH*HF/((HI-HF)*(DELTA-1.))*(RH** >DELTA-1.) PFORD=0.5*XKMED*SQRT(RI*(HI-HF))*(1.570796+SQRT(RI*(HI-HF))/(HI+ >HF)) T=XKMED*R*RI*((XM/2.)-XN)*2. HP=T*RPM*1.0273E-6 WP=(T*9.81)/(RI*HN*COS(XN)) RA=RI RN=R*(1.+(Z*CL)/(HI-HF)) RI=RN D=2.*RN NN=NN+1 KK=1 IF(FLAG1)GO TO 1246 IS=1 GO TO 1946 1246 IS=2 WRITE(*,1210)IBELL WRITE(*,1295) 1295 FORMAT(//,' PREPARE PRINTER AND PRESS ENTER!') READ(*,1205)IAX 1946 WRITE(*,1210)IBELL WRITE(IS,101) 101 FORMAT(12X,' CALCULATION OF HOT ROLLING LOAD, TORQUE AND POWER', >/) IF(.NOT.FLAG1)GO TO 4698 WRITE(IS,9289)IBF 9289 FORMAT(31X,'VERSION IV, JULY 1990',//,31X,'ANTONIO AUGUSTO GORNI' >,////,' ',40A2,////) 4698 IF(NN.LE.1)GOTO 130 WRITE(IS,140) 140 FORMAT(' === CORRECTION FOR NEW WORK ROLL RADIUS ACCORDING ', >'TO HITCHCOCK ===',/) 130 WRITE(IS,211)IRES,HIO,HFD(KC) 211 FORMAT(' HOT STRENGTH GRADE: ',A2,/,' INITIAL THICKNESS (MM): ', >F4.0,20X,'FINAL THICKNESS (MM): ',F4.0) WRITE(IS,103)W,RA,VPER(KC),TLI(KC),TLF(KC) 103 FORMAT(' ROLLING STOCK WIDTH (MM): ',F5.0,/,' WORK ROLL RADIUS ', >'(MM): ',F4.0,/,' WORK ROLL PERIPHERICAL SPEED (M/MIN): ', >F5.1,/,' ROLLING STOCK ENTRY TEMPERATURE (.C): ',F5.0,/,' ROLLING ', >'STOCK EXIT TEMPERATURE (.C): ',F5.0) WRITE(IS,213)CI,CF 213 FORMAT(' INITIAL ROLLING STOCK LENGTH (MM): ',F8.2,/, >' FINAL ROLLING STOCK LENGTH (MM): ',F8.2,///) AUX1=W/1000. CLORW=CL*AUX1 CLSIM=CLS*AUX1 CLEKE=PEK*AUX1 CLOPA=PWP*AUX1 CLTSE=PTSEL*AUX1 CLFORD=PFORD*AUX1 AUX1=9.E-4*SQRT(RI*(HI-HF)) TORW=T*W/1.E6 TSIM=CLSIM*AUX1 TEKE=CLEKE*AUX1 TOPA=CLOPA*AUX1 TOTSE=CLTSE*AUX1 TOFORD=XKMED/2.E6*W*RI*(HI-HF)*(1.6+0.91*SQRT(RI*(HI-HF))/(HI+HF)) ATRORW=CLORW*2.*RI*CFATR/1000. TSIMT=CLSIM*2.*RI*CFATR/1000.+TSIM TEKET=CLEKE*2.*RI*CFATR/1000.+TEKE TOTAP=CLOPA*2.*RI*CFATR/1000.+TOPA TOTSET=CLTSE*2.*RI*CFATR/1000.+TOTSE TOFORT=CLFORD*2.*RI*CFATR/1000.+TOFORD RENDTR=(1./CTRANS-1.) ATRORW=(TORW+ATRORW)*RENDTR+ATRORW TORWT=TORW+ATRORW TSIMT=TSIMT*RENDTR+TSIMT TEKET=TEKET*RENDTR+TEKET TOTAP=TOTAP*RENDTR+TOTAP TOTSET=TOTSET*RENDTR+TOTSET TOFORT=TOFORT*RENDTR+TOFORT AUX1=RPM*1.0439972 HPORW=(HP*W+ATRORW*AUX1)/RMOT HPSIM=TSIMT*AUX1/RMOT HPEKE=TEKET*AUX1/RMOT HPOPA=TOTAP*AUX1/RMOT HPTSE=TOTSET*AUX1/RMOT HPFORD=TOFORT*AUX1/RMOT AUX1=9.81E6*HI*CI/(RA*HN*COS(XN)) WORW=TORWT*AUX1 WSIM=TSIMT*AUX1 WEKE=TEKET*AUX1 WOPA=TOTAP*AUX1 WTSE=TOTSET*AUX1 WFORD=TOFORT*AUX1 IF(IS.NE.1)GO TO 5839 WRITE(*,1200)IBELL 1200 FORMAT(/,1X,A2,'PRESS ENTER TO CONTINUE. ') READ(*,1205)IAX 1210 FORMAT(1X,A2) 5839 WRITE(IS,107) 107 FORMAT(' CALCULATION BY:',10X,'CALCULATION BY', >' SIMS:',/) WRITE(IS,108)CLORW,CLSIM,TORW,TSIM,TORWT,TSIMT,HPORW,HPSIM,WORW,WS >IM 108 FORMAT(' CARGA TOTAL (T): ',F5.0,18X,'TOTAL LOAD (T): ',F5.0,/, >' ROLLING TORQUE (T.M): ',F7.2,12X,'ROLLING TORQUE (T.M): ',F7.2,/, >' TOTAL TORQUE (T.M): ',F7.2,13X,'TOTAL TORQUE (T.M): ',F7.2,/, >' TOTAL POWER (KW): ',F6.0,12X,' TOTAL POWER (KW): ',F6.0,/, >' TOTAL WORK (KJ): ',E9.3,10X,'TOTAL WORK (KJ): ',E9.3, >//) WRITE(IS,110) 110 FORMAT(//,' CALCULATION BY EKELUND:',9X,'CALCULATION BY ', >'OROWAN-PASCOE:',/) WRITE(IS,108)CLEKE,CLOPA,TEKE,TOPA,TEKET,TOTAP,HPEKE,HPOPA,WEKE,WO >PA WRITE(IS,120) 120 FORMAT(//,' CALCULATION BY TSELIKOV:',8X,'CALCULATION BY ', >'ALEXANDER-FORD:',/) WRITE(IS,108)CLTSE,CLFORD,TOTSE,TOFORD,TOTSET,TOFORT,HPTSE,HPFORD, >WTSE,WFORD WRITE(IS,2947) 2947 FORMAT(10X) IF(IS.NE.1)GO TO 9387 WRITE(*,1200)IBELL READ(*,1205)IAX 9387 IDUMMY=SYSTEM('CLS'C) IF(NN.LE.1.AND.FLAG)GOTO 7 20 HI=HFD(KC) CI=CF RI=R NN=0 30 CONTINUE WRITE(*,9426) 9426 FORMAT(/,' DO YOU WANT TO CONTINUE (T/F)? ') READ(*,3010)FLAG2 IF(FLAG2)GO TO 300 22 END
***** End of Program Listing ******
Click here to download the Excel file or use the Visual Basic for Applications listing below.
***** Begin of Program Listing *****
'
' PROGRAMA PARA CÁLCULO DA CARGA DE LAMINAÇÃO A QUENTE CONFORME OS MODELOS DE
' OROWAN, SIMS, EKELUND, OROWAN-PASCOE, TSELIKOV E ALEXANDER-FORD
'
'
' Referências Bibliográficas Fundamentais:
'
' - SILVA, A.M.S. Análise do Processo de Laminação a Quente, CPGEM/UFMG, Belo Horizonte,
' 1978.
'
' - ROBERTS, W.L. The Hot Rolling of Steel, Marcel Dekker, Inc., New York, 1983.
'
' - WUSATOWSKI, Z. Fundamentals of Rolling, Pergamon Press, Katowice, 1969.
'
' - BUCKLEY, G.W. et al. Dynamic Analysis and Performance of Hot Rolling Mills, Metals
' Technology, July 1978.
'
' - ANON. Automatisation du Préréglage des Trains Continus a Larges Bandes, Rapport Final
' EUR 5712FR, IRSID/USINOR/Commission des Communautes Européenes, Septembre 1976.
'
' - PLAUT, R.L. Laminação dos Aços - Tópicos Avançados, Associação Brasileira de Metais,
' São Paulo, 1984.
'
'
'
' Desenvolvido por Antonio Augusto Gorni
' www.gorni.eng.br
'
' - Versão MBasic (TRS-80 III): 15.06.1984
' - Versão Fortran IV (IBM 4340): 22.09.1984
' - Versão Fortran 80 (CP/M): 10.07.1985
' - Versão Fortran 80 (IBM-PC): 23.10.1990
' - Versão GWBasic: 12.07.1992
' - Versão VisualBasic: 17.06.2004
'
Option Explicit
Option Base 1
Const Pi = 3.1415929
Dim a(101) As Single
Dim b(101) As Single
Dim C As Single
Dim CargaLQ(6) As Single
Dim CoefAtrito As Single
Dim Compr As Single
Dim D As Single
Dim Def(101) As Single
Dim DefConv As Single
Dim DefMed As Single
Dim EficMec As Single
Dim EficElec As Single
Dim FatorBracoAlav As Single
Dim H(101) As Single
Dim Hct As Single
Dim Hi As Single
Dim Hf As Single
Dim Hn As Single
Dim n As Integer
Dim nb As Integer
Dim NroPasses As Integer
Dim P(101) As Single
Dim PenetDef As Single
Dim Potencia(6) As Single
Dim R As Single
Dim Ri As Single
Dim RPM As Single
Dim S(101) As Single
Dim SE(101) As Single
Dim Sigma(101) As Single
Dim SigmaMed As Single
Dim SS(101) As Single
Dim Step1 As Single
Dim Step2 As Single
Dim TLam As Single
Dim TorqueLQ(6) As Single
Dim TorqueTotal(6) As Single
Dim Trabalho(6) As Single
Dim VelDef(101) As Single
Dim VelDefMed As Single
Dim W As Single
Dim X(101) As Single
Dim Xm As Single
Dim i, iP, j, kk, l, na, nn As Integer
Dim Da, Delta, Hio, Factor, Qek, Qp, Qwp, Rh, Xn As Single
Sub LoadCalc()
Application.ScreenUpdating = False
na = 100
nb = 10
n = na + 1
Sheets("Dados Passe").Select
Hi = [D4]
Hf = [D5]
W = [D6]
Compr = [D7]
TLam = [D8]
RPM = [D9]
D = [D10]
C = [I4]
FatorBracoAlav = [I5]
EficMec = [I6] / 100
EficElec = [I7] / 100
nn = 0
Da = D
R = D / 2
Ri = R
Hio = Hi
PenetDef = Ri * Sin(ArCos(1# - (Hi - Hf) / (2# * Ri)))
If (Hi + Hf) / 2 > PenetDef Then
Hi = PenetDef + (Hi - Hf) / 2#
Hf = PenetDef - (Hio - Hf) / 2#
End If
DefConv = (Hi - Hf) / Hi
TLam = TLam + 0.77 * 0.0000000566 * (TLam + 273) ^ 4 * Hi / (1000 * 6 * 26.4)
Factor = (1# - (Hi - Hf) / D) ^ 2#
Xm = Atn(Sqr((1# / Factor) - 1#))
kk = 1
Step1 = Xm / (n * nb)
Step2 = Step1 * nb
X(1) = Step2
For i = 1 To na
X(i + 1) = X(i) + Step2
Next i
For i = 1 To n
H(i) = Hf + 2# * Ri * (1# - Cos(X(i)))
Def(i) = Log(Hi / H(i))
If Def(i) < 0 Then Def(i) = 0
VelDef(i) = 0.2094395 * RPM * Ri * Sin(X(i)) / H(i)
Sigma(i) = 1.155 * Misaka(C, TLam, Def(i), VelDef(i))
Next i
DefMed = Log(Hi / Hf)
VelDefMed = 0.1047197 * RPM * Ri * Sqr(1# / (Ri * (Hi - Hf))) * Log(Hi / Hf)
SigmaMed = 1.155 * Misaka(C, TLam, DefMed, VelDefMed)
Call RungeKutta_Fun(Step1, Step1, 0, nb, n, a)
Call RungeKutta_Fen(Step1, Step1, 0, nb, n, b)
For j = 1 To n
l = n - j + 1
SS(j) = Sun(X(j), a(j), Sigma(j))
SE(j) = Sen(X(j), b(l), Sigma(j))
If SE(j) > SS(j) Then
S(j) = SS(j)
Else
If kk = 1 Then
kk = kk + 1
Xn = X(j)
Hn = H(j)
Else
S(j) = SE(j)
End If
End If
Next j
Call QSF(Step2, S, P, n)
CargaLQ(1) = P(n) * D / 2# * W / 1000
Qp = Sqr((1# - DefConv) / DefConv) * (1.5707965 * Atn(Sqr(DefConv / (1# - DefConv))) - _
Sqr(Ri / Hf) * Log(Hn / Hf) + 0.5 * Sqr(Ri / Hf) * Log(1# / (1# - DefConv))) - _
0.7853982
CargaLQ(2) = SigmaMed * Sqr(Ri * (Hi - Hf)) * Qp * W / 1000
Qwp = (Pi + Sqr(Ri * (Hi - Hf)) / Hf) / 4#
CargaLQ(3) = SigmaMed * Qwp * Sqr(Ri * (Hi - Hf)) * W / 1000
CoefAtrito = 0.8 * (1.05 - 0.0005 * TLam)
Qek = 1# + (1.6 * CoefAtrito * Sqr(Ri * (Hi - Hf)) - 1.2 * (Hi - Hf)) / (Hi + Hf)
CargaLQ(4) = SigmaMed * Qek * Sqr(Ri * (Hi - Hf)) * W / 1000
Delta = CoefAtrito * Sqr(4# * Ri / (Hi - Hf))
Rh = ((1# + Sqr(1# + (Delta ^ 2# - 1#) * (Hi / Hf) ^ Delta)) / (Delta + 1#)) ^ _
(1# / Delta)
CargaLQ(5) = Sqr(Ri * (Hi - Hf)) * SigmaMed * 2# * Rh * Hf / ((Hi - Hf) * _
(Delta - 1#)) * (Rh ^ Delta - 1#) * W / 1000
CargaLQ(6) = 0.5 * SigmaMed * Sqr(Ri * (Hi - Hf)) * (Pi / 2 + Sqr(Ri * _
(Hi - Hf)) / (Hi + Hf)) * W / 1000
TorqueLQ(1) = SigmaMed * R * Ri * ((Xm / 2#) - Xn) * 2# * W / 1000000
For j = 2 To 5
TorqueLQ(j) = 2 * CargaLQ(j) * FatorBracoAlav * Sqr(Ri * (Hi - Hf) / 1000000)
Next j
TorqueLQ(6) = SigmaMed / 2000000# * W * Ri * (Hi - Hf) * (1.6 + 0.91 * Sqr(Ri * (Hi - Hf)) / (Hi + Hf))
For j = 1 To 6
TorqueTotal(j) = TorqueLQ(j) / EficMec
Potencia(j) = TorqueTotal(j) * RPM * 1.02666 / EficElec
Trabalho(j) = TorqueTotal(j) * 9.81 * Hi * Compr / (Ri * Hn * Cos(Xn))
Next j
For j = 4 To 9
Cells(14, j) = CargaLQ(j - 3)
Cells(15, j) = TorqueLQ(j - 3)
Cells(16, j) = TorqueTotal(j - 3)
Cells(17, j) = Potencia(j - 3)
Cells(18, j) = Trabalho(j - 3)
Next j
End Sub
Function Misaka(C As Single, T As Single, Def As Single, VelDef As Single) As Single
Misaka = Exp(0.126 - 1.75 * C + 0.594 * C ^ 2 + (2851 + 2968 * C - 1120 * C ^ 2) / (T + 273)) * Def ^ 0.21 * VelDef ^ 0.13
End Function
Function ArCos(X As Single) As Single
ArCos = Atn(Sqr(1# - X * X) / X)
End Function
Function Fun(X As Single, Y As Single, XK As Single) As Single
Dim Tang, a, Ym As Single
Tang = Sin(X) / Cos(X)
If X <= 0 Then
Ym = 0.5
Else
Ym = 0.7853982 * Sin(X) - 0.5 * ((1# / X) - 1# / Tang) * Sin(X) + 0.5 * Cos(X)
End If
a = Hf + D * (1# - Cos(X))
Fun = (Y * D / a) * Sin(X) + D * XK * Ym
End Function
Function Fen(X As Single, Y As Single, XK As Single) As Single
Dim a, xa, z, Tang, Ym As Single
a = Hf + D * (1# - Cos(X))
i = 101# - Int(X * 101# / Xm)
If i <= 0 Then i = 1
xa = Sigma(i)
z = Xm - X
Tang = Sin(z) / Cos(z)
If z <= 0 Then
Ym = 0.5
Else
Ym = 0.7853982 * Sin(z) + 0.5 * ((1# / z) - 1# / Tang) * Sin(z) - 0.5 * Cos(z)
End If
Fen = (Y * D / a) * Sin(z) + D * xa * Ym
Fen = -Fen
End Function
Function Sun(X As Single, Y As Single, XK As Single) As Single
Dim a, Tang As Single
a = Hf + D * (1# - Cos(X))
Tang = Sin(X) / Cos(X)
If X <= 0 Then
Sun = Y / a + XK * 0.7853982
Else
Sun = Y / a + XK * 0.7853982 - 0.5 * ((1# / X) - 1# / Tang) * XK
End If
End Function
Function Sen(X As Single, Y As Single, XK As Single) As Single
Dim a, Tang As Single
a = Hf + D * (1# - Cos(X))
Tang = Sin(X) / Cos(X)
If X <= 0 Then
Sen = Y / a + XK * 0.7853982
Else
Sen = Y / a + XK * 0.7853982 + 0.5 * ((1# / X) - 1# / Tang) * XK
End If
End Function
Sub QSF(H As Single, Y() As Single, z() As Single, NDim As Integer)
Dim l1, l2, l3, l4, l5, l6 As Integer
Dim Ht, Sum1, Sum2, Aux, Aux1, Aux2 As Single
Ht = 0.3333333 * H
l1 = 1
l2 = 2
l3 = 3
l4 = 4
l5 = 5
l6 = 6
If NDim > 5 Then
Sum1 = Y(l2) + Y(l2)
Sum1 = Sum1 + Sum1
Sum1 = Ht * (Y(l1) + Sum1 + Y(l3))
Aux1 = Y(l4) + Y(l4)
Aux1 = Aux1 + Aux1
Aux1 = Sum1 + Ht * (Y(l3) + Aux1 + Y(l5))
Aux2 = Ht * (Y(l1) + 3.875 * (Y(l2) + Y(l5)) + 2.825 * (Y(l3) + Y(l4)) + Y(l6))
Sum2 = Y(l5) + Y(l5)
Sum2 = Sum2 + Sum2
Sum2 = Aux2 - Ht * (Y(l4) + Sum2 + Y(l6))
z(l1) = 0#
Aux = Y(l3) + Y(l3)
Aux = Aux + Aux
z(l2) = Sum2 - Ht * (Y(l2) + Aux + Y(l4))
z(l3) = Sum1
z(l4) = Sum2
If NDim > 6 Then
For i = 7 To NDim Step 2
Sum1 = Aux1
Sum2 = Aux2
Aux1 = Y(i - 1) + Y(i - 1)
Aux1 = Aux1 + Aux1
Aux1 = Sum1 + Ht * (Y(i - 2) + Aux1 + Y(i))
z(i - 2) = Sum1
If i < NDim Then
Aux2 = Y(i) + Y(i)
Aux2 = Aux2 + Aux2
Aux2 = Sum2 + Ht * (Y(i - 1) + Aux2 + Y(i + 1))
z(i - 1) = Sum2
Else
z(NDim - 1) = Sum2
z(NDim) = Aux1
Exit Sub
End If
Next i
End If
z(NDim - 1) = Aux1
z(NDim) = Aux2
Exit Sub
Else
If NDim > 3 Then
Sum2 = 1.125 * Ht * (Y(l1) + Y(l2) + Y(l2) + Y(l2) + Y(l3) + Y(3) + Y(l3) + Y(l4))
Sum1 = Y(l2) + Y(l2)
Sum1 = Sum1 + Sum1
Sum1 = Ht * (Y(l1) + Sum1 + Y(l3))
z(l1) = 0#
Aux1 = Y(l3) + Y(l3)
Aux1 = Aux1 + Aux1
z(l2) = Sum2 - Ht * (Y(l2) + Aux1 + Y(l4))
If NDim >= 5 Then
Aux1 = Y(l4) + Y(l4)
Aux1 = Aux1 + Aux1
z(l5) = Sum1 + Ht * (Y(l3) + Aux1 + Y(l5))
End If
z(l3) = Sum1
z(l4) = Sum2
Exit Sub
Else
If NDim = 3 Then
Sum1 = Ht * (1.25 * Y(l1) + Y(l2) + Y(l2) - 0.25 * Y(l3))
Sum2 = Y(l2) + Y(l2)
Sum2 = Sum2 + Sum2
z(l3) = Ht * (Y(l1) + Sum2 + Y(l3))
z(l1) = 0#
z(l2) = Sum1
End If
End If
End If
End Sub
Sub RungeKutta_Fun(H As Single, XI As Single, YI As Single, _
k As Integer, n As Integer, Vec() As Single)
Dim i, j As Integer
Dim X As Single
Dim Y As Single
Dim XK As Single
Dim h2, t1, t2, t3, t4 As Single
h2 = H / 2#
X = XI
Y = YI
For i = 1 To n
XK = Sigma(i)
For j = 1 To k
t1 = H * Fun(X, Y, XK)
t2 = H * Fun(X + h2, Y + t1 / 2#, XK)
t3 = H * Fun(X + h2, Y + t2 / 2#, XK)
t4 = H * Fun(X + H, Y + t3, XK)
Y = Y + (t1 + 2# * t2 + 2# * t3 + t4) / 6#
X = X + H
Next j
Vec(i) = Y
Next i
End Sub
Sub RungeKutta_Fen(H As Single, XI As Single, YI As Single, _
k As Integer, n As Integer, Vec() As Single)
Dim i, j As Integer
Dim X As Single
Dim Y As Single
Dim XK As Single
Dim h2, t1, t2, t3, t4 As Single
h2 = H / 2#
X = XI
Y = YI
For i = 1 To n
XK = Sigma(i)
For j = 1 To k
t1 = H * Fen(X, Y, XK)
t2 = H * Fen(X + h2, Y + t1 / 2#, XK)
t3 = H * Fen(X + h2, Y + t2 / 2#, XK)
t4 = H * Fen(X + H, Y + t3, XK)
Y = Y + (t1 + 2# * t2 + 2# * t3 + t4) / 6#
X = X + H
Next j
Vec(i) = Y
Next i
End Sub
***** End of Program Listing ******

Return to the Software Menu.
![]() |
Last Update: 23 April 2005 | |
| © Antonio Augusto Gorni |