Microstructural Evolution during Hot Strip Rolling of C-Mn Steels


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