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 |