Language: Excel/VisualBasic.
Objective: This spreadsheet calculates the evolution of the austenite mean grain size during hot strip rolling of C-Mn steels, taking account of dynamic/static recrystallization mechanisms, as well grain growth, according to the model developed by Fúlvio Siciliano. A graphical output of the results is available.
Click here to download the Excel file or use the Visual Basic for Applications listing below.
***** Begin of Program Listing *****
' ' MODELO MICROESTRUTURAL PARA LAMINAÇÃO DE TIRAS A QUENTE DE AÇOS C-MN ' Versão Stand-Alone ' ' ' Referências: ' ' - SICILIANO, F. et al. ISIJ International, Dec. 1996, 1500-1506 ' ' - SICILIANO, F. et al. Metallurgical and Materiais Transactions A, Feb. 2000, 511-530. ' ' - OUCHI, C. et al.: Transactions of the ISIJ, March 1982, 214-222 ' ' ' Programado por Antonio Augusto Gorni --- Start-up em 24.09.2002 ' ' Última Atualização: 30.12.2002 ' English Version: 11.12.2003 ' Option Explicit Public Const Q = 300000#, A = 7.2, R = 8.31, Pi = 3.141592654 Sub EvolMicro() Dim i, j, k, iC, NReg, PosFlag, PasAnt, iOff As Integer Dim C, Mn, Deltat, TG, DefC, x, Z, qrex, t5, Aux1, TGSRX, TGMDRX, t5SRX, t5MDRX As Single Dim Temp, Def, VelDef, DefAcc, TG2, TG7, TGinic, Def5, DeltaL As Single Dim Xdyn, TGRex, DefAnt1, DefAnt2, tRex, VelSaida, Dist, Ar3, hf, Lf As Single Dim Si, Cr, Mo, Cu, Offt, TGAlpha0, TGAlpha, d0, ho, hi, RaioCilTrab, VelCilTrab As Single Dim Volume As String Dim FlagDummy As Boolean Application.ScreenUpdating = False i = 7 Sheets("Data Input").Select Volume = Cells(i, "A") C = Cells(i, "B") Mn = Cells(i, "C") Si = Cells(i, "D") Cr = Cells(i, "K") Cu = Cells(i, "L") Mo = Cells(i, "N") d0 = Cells(i, "P") ho = Cells(i, "Q") hf = Cells(i, "AO") Lf = Cells(i, "R") DeltaL = Cells(i, "S") Range("B" & i & ":O" & i).Select Selection.Copy Sheets("Micro Evol").Select Range("B7").Select ActiveSheet.Paste [B5] = Volume [B8] = d0 [B9] = hf [B10] = Lf TGinic = d0 Range("B14:O19").Select Selection.ClearContents k = 13 FlagDummy = False For j = AlphaConv("T") To AlphaConv("AN") Step 4 Sheets("Data Input").Select Temp = Cells(i, j) hi = Cells(i, j + 1) VelCilTrab = Cells(i, j + 2) If j = AlphaConv("T") Then Deltat = 0 Else Deltat = DeltaL / VelCilTrab * 60 RaioCilTrab = Cells(i, j + 3) / 2 Aux1 = R * (Temp + 273) Def = Log(ho / hi) VelDef = (0.1209 * (VelCilTrab * 1000 / (2 * Pi * RaioCilTrab)) * Log(ho / hi)) / ArcCos(1 - (ho - hi) / (2 * RaioCilTrab)) ho = hi k = k + 1 If FlagDummy Then PasAnt = k - 2: FlagDummy = False Else PasAnt = k - 1 If Temp <> 0 Then iC = k - 13 Sheets("Micro Evol").Select If iC > 1 Then x = 1 - Exp(-0.693 * (Deltat / t5) ^ qrex) Cells(k, "M") = x If DefAcc < DefC Then If Deltat > 1 Then If x >= 0.95 Then TG7 = TGSRX ^ 7 + 1.5E+27 * (Deltat - 4.32 * t5SRX) * Exp(-400000 / Aux1) TGinic = TG7 ^ (1 / 7) Else TGinic = TGRex * x + TGinic * (1 - x) End If Else If x >= 0.95 Then TG2 = TGSRX ^ 2 + 40000000# * (Deltat - 4.32 * t5SRX) * Exp(-113000 / Aux1) TGinic = Sqr(TG2) Else TGinic = TGRex * x + TGinic * (1 - x) End If End If Else If Deltat > 1 Then TG7 = TGMDRX ^ 7 + 8.2E+25 * (Deltat - 2.65 * t5MDRX) * Exp(-400000 / Aux1) TGinic = TG7 ^ (1 / 7) Else TG2 = TGMDRX ^ 2 + 12000000# * (Deltat - 2.65 * t5MDRX) * Exp(-113000 / Aux1) TGinic = Sqr(TG2) End If End If Cells(PasAnt, "O") = TGinic End If Cells(k, "B") = Temp Cells(k, "C") = Def Cells(k, "D") = VelDef Cells(k, "E") = Deltat If iC = 1 Then TGinic = d0 Else Cells(k - 1, "F") = TGinic Z = VelDef * Exp(Q / Aux1) DefC = 0.00056 * TGinic ^ 0.3 * Z ^ 0.17 If iC = 1 Then DefAcc = Def Else DefAcc = Def + (1 - x) * DefAnt1 Cells(k, "G") = DefAcc Cells(k, "H") = DefC If DefAcc > DefC Then Cells(k, "I") = "YES" Else Cells(k, "I") = "NO" Def5 = 0.001144 * TGinic ^ 0.28 * VelDef ^ 0.05 * Exp(51880 / Aux1) Cells(k, "J") = Def5 Xdyn = 1 - Exp(-0.693 * ((Def - DefC) / Def5) ^ 2) If DefAcc > DefC Then Cells(k, "K") = Xdyn If DefAcc < DefC Then TGSRX = 343 * Def ^ -0.5 * TGinic ^ 0.4 * Exp(-45000 / Aux1) TGRex = TGSRX t5SRX = 2.3E-15 * Def ^ -2.5 * TGinic ^ 2 * Exp(230000 / Aux1) t5 = t5SRX Else TGMDRX = 26000# * Z ^ -0.23 TGRex = TGMDRX t5MDRX = 1.1 * Z ^ -0.8 * Exp(230000 / Aux1) t5 = t5MDRX End If Cells(k, "L") = t5 If DefAcc < DefC Then qrex = 1 Else qrex = 1.5 If iC = 1 Then DefAnt1 = 0 Else DefAnt1 = Def DefAnt1 = Def Cells(k, "N") = TGRex Else FlagDummy = True End If Next j x = 1 - Exp(-0.693 * (Deltat / t5) ^ qrex) If FlagDummy Then [M18] = x Else [M19] = x DefAcc = DefAnt1 + (1 - x) * DefAnt2 If DefAcc < DefC Then If Deltat > 1 Then If x >= 0.95 Then TG7 = TGSRX ^ 7 + 1.5E+27 * (Deltat - 4.32 * t5SRX) * Exp(-400000 / Aux1) TGinic = TG7 ^ (1 / 7) Else TGinic = TGRex * x + TGinic * (1 - x) End If Else If x >= 0.95 Then TG2 = TGSRX ^ 2 + 40000000# * (Deltat - 4.32 * t5SRX) * Exp(-113000 / Aux1) TGinic = Sqr(TG2) Else TGinic = TGRex * x + TGinic * (1 - x) End If End If Else If Deltat > 1 Then TG7 = TGMDRX ^ 7 + 8.2E+25 * (Deltat - 2.65 * t5MDRX) * Exp(-400000 / Aux1) TGinic = TG7 ^ (1 / 7) Else TG2 = TGMDRX ^ 2 + 12000000# * (Deltat - 2.65 * t5MDRX) * Exp(-113000 / Aux1) TGinic = Sqr(TG2) End If End If [F19] = TGinic If FlagDummy Then [O18] = TGinic Else [O19] = TGinic ' ' Ar3 calculation by Ouchi formula. ' Ar3 = 910 - 310 * C - 80 * Mn - 20 * Cu - 15 * Cr - 80 * Mo + 0.35 * (hf - 8) [E9] = Ar3 For j = 14 To 19 If Cells(j, "B") <= Ar3 Then Cells(j, "B").Select With Selection.Font .ColorIndex = 3 End With Else Cells(j, "B").Select With Selection.Font .ColorIndex = 1 End With End If Next j End Sub Function AlphaConv(Buf As String) As Integer Dim Car1, Car2 As String Dim Pos As Integer If Len(Buf) = 1 Then AlphaConv = Asc(Buf) - Asc("A") + 1 Else Car1 = Left(Buf, 1) Car2 = Right(Buf, 1) AlphaConv = (Asc(Car1) - Asc("A") + 1) * 26 + Asc(Car2) - Asc("A") + 1 End If End Function Function ArcCos(x As Single) ArcCos = Atn(Sqr(1 - x ^ 2) / x) End Function
***** End of Program Listing ******
Return to the Software Menu.
Last Update: 12 November 2003 | ||
© Antonio Augusto Gorni |