Heat Balance of a Slab Reheating Furnace


Language: Excel/VisualBasic.

Objective: This spreadsheet calculates the heat balance of a slab reheating furnace for a hot strip mill or plate mill line. The program considers a coke oven or natural gas fired furnace, with water cooled skids and heat recovery from the flue gases of the furnace.


Click here to download the Excel file or use the Visual Basic for Applications listing below.


***** Begin of Program Listing *****

'
'                    BALANÇO TÉRMICO DE FORNOS PARA REAQUECIMENTO DE PLACAS
'
'
' Referências:
'
' - FERRAZ, M.J.O. (editor). Curso de Laminação dos Aços. Associação Brasileira de Metais,
'   São Paulo, 1981.
'
' - ANDRADE, H.L. e outros. Balanço Térmico dos Fornos de Reaquecimento da Usiminas.
'   Metalurgia ABM, vol. 39, n°302, 1983, p. 27-31.
'
' - BRUNO, S.L. Balanco Térmico do Forno de Reaquecimento n° 2 da Linha de Chapas Grossas.
'   In: VI Simpósio Interno de Laminação, COSIPA, Cubatão, 16 a 19 de Maio de 1983.
'
' - MACHADO, A.C. (editor). Curso de Sistema de Energia na Siderurgia. Associação Brasileira de
'   Metais, São Paulo, 1984.
'
'
'         Programado por Antonio Augusto Gorni --- Start-up: 27 de Agosto de 2001
'
'                                 Última Correção: 20.06.2002
'

Option Explicit
Option Base 1


Sub BalTerm()

Dim TAmb As Single
Dim TGas As Single
Dim TArCombustao As Single
Dim IntervaloTempo As Integer
Dim VazaoGas As Single
Dim VazaoGasSeco As Single
Dim VazaoAr As Single
Dim ArExcessoObj As Single
Dim OxFumosObj As Single
Dim ArSecoTotalObj As Single
Dim UmidadeAr As Single
Dim FracaoUmidadeAr As Single
Dim FracaoGN As Single
Dim Nitrogenio_GCO As Single
Dim CO_GCO As Single
Dim CO2_GCO As Single
Dim Oxigenio_GCO As Single
Dim Hidrogenio_GCO As Single
Dim Metano_GCO As Single
Dim Etano_GCO As Single
Dim Propano_GCO As Single
Dim Nitrogenio_GN As Single
Dim Metano_GN As Single
Dim Etano_GN As Single
Dim Propano_GN As Single
Dim CO_GN As Single
Dim CO2_GN As Single
Dim Oxigenio_GN As Single
Dim Hidrogenio_GN As Single
Dim N_Adicao As Single
Dim GN As Single
Dim GCO As Single
Dim NO As Single
Dim NG As Single
Dim NU As Single
Dim VolumeUmidadeArObj As Single
Dim ArUmidoTotalObj As Single
Dim PercArExcessoObj As Single
Dim ArSecoTotalReal As Single
Dim CO2Periodo As Single
Dim UmidadeCombustaoPeriodo As Single
Dim FracaoUmidadeGas As Single
Dim UmidadeGas As Single
Dim UmidadeArUmido As Single
Dim UmidadeTotal As Single
Dim OxArExcesso As Single
Dim NitrogenioTotal As Single
Dim VolumeArExcesso As Single
Dim PCI As Single
Dim CorrecaoGCO As Single
Dim CorrecaoGN As Single
Dim A_Calor, B_Calor As Single
Dim CalorGas As Single
Dim CalorCombustao As Single
Dim CalorArCombustao As Single
Dim T_H As Single
Dim Carepa As Single
Dim CalorFormacaoCarepa As Single
Dim TFumosSaida As Single
Dim TFumosChamine As Single
Dim CalorSensivelPlacaEnf As Single
Dim CalorSensivelPlacaDesenf As Single
Dim TEnfornPlacas As Single
Dim TDesenfPlacas As Single
Dim TAguaEntrada As Single
Dim TAguaSaida As Single
Dim VazaoAguaRefrigeracao As Single
Dim CalorAguaRefrigeracao As Single
Dim CalorFumos As Single
Dim CalorParedes As Single
Dim Ajuste As Single
Dim ContribuicaoTotal As Single
Dim NecessidadeTotal As Single
Dim TParede(12) As Single
Dim hr As Single
Dim hc As Single
Dim ComprimentoParede(3) As Single
Dim LarguraParede(3) As Single
Dim Lado As Single
Dim AreaParede(6) As Single
Dim Grashof As Single
Dim Prandtl As Single
Dim Nusselt As Single
Dim TMedia As Single
Dim Viscosidade As Single
Dim Cp As Single
Dim k As Single
Dim c, n As Single
Dim i, j As Integer
Dim Aux1, Aux2 As Single
Dim Forno, Dia As String

Application.ScreenUpdating = False
IntervaloTempo = 8
Sheets("Variable Data").Select
Forno = [B4]
Dia = [B5]
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("B" & i)
Next i
VazaoGas = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("C" & i)
Next i
VazaoAr = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("D" & i)
Next i
VazaoAguaRefrigeracao = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("E" & i)
Next i
TAguaSaida = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("F" & i)
Next i
TArCombustao = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("G" & i)
Next i
TFumosSaida = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("H" & i)
Next i
TFumosChamine = Aux1 / 17
Aux1 = 0
For i = 11 To 27
    Aux1 = Aux1 + Range("I" & i)
Next i
GCO = Aux1 / 17 / 100
Sheets("Constant Data").Select
Nitrogenio_GCO = [B9] / 100
Hidrogenio_GCO = [C9] / 100
Metano_GCO = [D9] / 100
Etano_GCO = [E9] / 100
CO_GCO = [G9] / 100
CO2_GCO = [H9] / 100
Oxigenio_GCO = [I9] / 100
Nitrogenio_GN = [B10] / 100
Metano_GN = [D10] / 100
Etano_GN = [E10] / 100
Propano_GN = [F10] / 100
CO2_GN = [H10] / 100
Oxigenio_GN = [I10] / 100
TParede(1) = [B14]
TParede(2) = [C14]
TParede(3) = [D14]
TParede(4) = [B15]
TParede(5) = [C15]
TParede(6) = [D15]
TParede(7) = [B16]
TParede(8) = [C16]
TParede(9) = [D16]
TParede(10) = [B17]
TParede(11) = [C17]
TParede(12) = [D17]
ComprimentoParede(1) = [B21]
ComprimentoParede(2) = [C21]
ComprimentoParede(3) = [D21]
LarguraParede(1) = [B23]
LarguraParede(2) = [C23]
LarguraParede(3) = [D23]
AreaParede(1) = [B21] * [B22]
AreaParede(2) = [C21] * [C22]
AreaParede(3) = [D21] * [D22]
AreaParede(4) = [B21] * [B23]
AreaParede(5) = [C21] * [C23]
AreaParede(6) = [D21] * [D23]
UmidadeAr = [I13]
TAmb = [I14]
TEnfornPlacas = [I15]
TDesenfPlacas = [I16]
TAguaEntrada = [I17]
N_Adicao = [I18] / 100
GN = (1 - GCO) * (1 - N_Adicao)
OxFumosObj = [I19]
Carepa = [I20]
T_H = [I21]
VazaoGas = VazaoGas * IntervaloTempo
VazaoAr = VazaoAr * IntervaloTempo
T_H = T_H * IntervaloTempo * 1000
NO = GCO * CO_GCO / 2 + GCO * Hidrogenio_GCO / 2 + 2 * (GCO * Metano_GCO + GN * Metano_GN) + _
     3.5 * (GCO * Etano_GCO + GN * Etano_GN) + 5 * (GCO * Propano_GCO + GN * Propano_GN)
NG = GCO * CO_GCO / 2 + GCO * Metano_GCO + GN * Metano_GN + _
     2 * (GCO * Etano_GCO + GN * Etano_GN) + 3 * (GCO * Propano_GCO + GN * Propano_GN)
NU = GCO * Hidrogenio_GCO + 2 * (GCO * Metano_GCO + GN * Metano_GN) + _
     3 * (GCO * Etano_GCO + GN * Etano_GN) + 4 * (GCO * Propano_GCO + GN * Propano_GN)
VazaoGasSeco = VazaoGas / (1 + FracaoUmidadeGas)
ArExcessoObj = (NG + 3.76 * NO) / (21 / OxFumosObj - 1)
ArSecoTotalObj = (NO / 0.21 + ArExcessoObj) * VazaoGasSeco
FracaoUmidadeAr = UmidadeAr / (100 * (760 / (Exp(20.5674 - 5197.43 / (TAmb + 273))) - 1))
VolumeUmidadeArObj = FracaoUmidadeAr * ArSecoTotalObj
ArUmidoTotalObj = ArSecoTotalObj + VolumeUmidadeArObj
PercArExcessoObj = ArExcessoObj / (ArSecoTotalObj / VazaoGasSeco) * 100
ArSecoTotalReal = VazaoAr / (1 + FracaoUmidadeAr)
If ArSecoTotalReal >= ArSecoTotalObj Then
                                     VolumeArExcesso = ArSecoTotalReal - ArSecoTotalObj
                                     Else
                                     VolumeArExcesso = 0
End If
FracaoUmidadeGas = 1 / (760 / (Exp(20.5674 - 5197.43 / (TAmb + 273)) - 1))
CO2Periodo = VazaoGasSeco * NG
UmidadeCombustaoPeriodo = VazaoGasSeco * NU
UmidadeGas = VazaoGasSeco * FracaoUmidadeGas
UmidadeArUmido = FracaoUmidadeAr * ArSecoTotalReal
UmidadeTotal = UmidadeCombustaoPeriodo + UmidadeGas + UmidadeArUmido
OxArExcesso = 0.21 * VolumeArExcesso
NitrogenioTotal = 0.79 * ArSecoTotalReal + VazaoGasSeco * (GCO * Nitrogenio_GCO + GN * Nitrogenio_GN + (1 - GCO) * N_Adicao)
CorrecaoGCO = 1 - Nitrogenio_GCO - CO2_GCO - Oxigenio_GCO
CorrecaoGN = 1 - Nitrogenio_GN - CO2_GCO - Oxigenio_GCO
PCI = (30.34 * (GCO * CO_GCO / CorrecaoGCO + GN * CO_GN / CorrecaoGN) + _
      25.82 * (GCO * Hidrogenio_GCO / CorrecaoGCO + GN * Hidrogenio_GN / CorrecaoGN) + _
      85.6 * (GCO * Metano_GCO / CorrecaoGCO + GN * Metano_GN / CorrecaoGN) + _
      152.35 * (GCO * Etano_GCO / CorrecaoGCO + GN * Etano_GN / CorrecaoGN) + _
      218# * (GCO * Propano_GCO / CorrecaoGCO + GN * Propano_GN / CorrecaoGN)) * 100
CalorCombustao = VazaoGasSeco * PCI
Aux1 = 1 + 0.05 * (1 - ((TAmb - 50) / 50) ^ 2)
Aux2 = 0.01 * UmidadeAr / (760 / (Aux1 * Exp(20.5674 - (5197.43 / (TAmb + 273)))) - 1)
CalorArCombustao = ArSecoTotalReal * (TArCombustao - TAmb) * _
                   ((0.302 + 0.373 * Aux2) + (0.000022 + 0.00005 * Aux2) * (TArCombustao + TAmb))
CalorFormacaoCarepa = Carepa / 100 * T_H * 1777 * 0.7
If TEnfornPlacas > 25 Then
                      CalorSensivelPlacaEnf = EntalpiaAco(25, TEnfornPlacas) * T_H
                      Else
                      CalorSensivelPlacaEnf = 0
End If
ContribuicaoTotal = CalorCombustao + CalorArCombustao + CalorFormacaoCarepa + _
                    CalorSensivelPlacaEnf
Sheets("Results").Select
[D8] = CalorCombustao
[D9] = CalorArCombustao
[D10] = CalorFormacaoCarepa
[D11] = CalorSensivelPlacaEnf
[D12] = ContribuicaoTotal
[E8] = CalorCombustao / T_H
[E9] = CalorArCombustao / T_H
[E10] = CalorFormacaoCarepa / T_H
[E11] = CalorSensivelPlacaEnf / T_H
[E12] = ContribuicaoTotal / T_H
[F8] = CalorCombustao / ContribuicaoTotal * 100
[F9] = CalorArCombustao / ContribuicaoTotal * 100
[F10] = CalorFormacaoCarepa / ContribuicaoTotal * 100
[F11] = CalorSensivelPlacaEnf / ContribuicaoTotal * 100
[F12] = ContribuicaoTotal / ContribuicaoTotal * 100
CalorSensivelPlacaDesenf = EntalpiaAco(TEnfornPlacas, TDesenfPlacas) * T_H
CalorAguaRefrigeracao = (TAguaSaida - TAguaEntrada) * VazaoAguaRefrigeracao * 1000 * 8
CalorFumos = ((CO2Periodo * 0.406 + UmidadeTotal * 0.373 + OxArExcesso * 0.302 + _
             NitrogenioTotal * 0.302) + (CO2Periodo * 0.00009 + UmidadeTotal * 0.00005 + _
             OxArExcesso * 0.000022 + NitrogenioTotal * 0.000022) * _
             (TFumosSaida + TAmb)) * (TFumosSaida - TAmb)
CalorParedes = 0
For i = 1 To 12
    hr = 4.88 * 0.8 / (TParede(i) - TAmb) * _
         (((TParede(i) + 273) / 100) ^ 4 - ((TAmb + 273) / 100) ^ 4)
    TMedia = (TParede(i) + TAmb + 546) / 2
    Viscosidade = 0.062 * 1.4469 / (1 + 122 / TMedia) * Sqr(TMedia / 273)
    Cp = 0.234 + 0.0000173 * (TMedia - 273)
    k = (Cp + 0.0855) * Viscosidade
    If i <= 6 Then
              Lado = 0.6
              Else
              j = i - 3 * ((i - 1) \ 3)
              Lado = LarguraParede(j)
              If ComprimentoParede(j) < LarguraParede(j) Then
                                                         Lado = ComprimentoParede(j)
              End If
    End If
    Grashof = (12.1875 * 29 / TMedia) ^ 2 * Lado ^ 3 * (TParede(i) - TAmb) * 127137600 / _
              (TMedia * Viscosidade ^ 2)
    Prandtl = Viscosidade * Cp / k
    Aux1 = Grashof * Prandtl
    If Aux1 <= 500 Then
                   c = 1.18: n = 0.125
                   Else
                   If Aux1 <= 20000000# Then
                                        c = 0.54: n = 0.25
                                        Else
                                        c = 0.135: n = 1 / 3
                   End If
    End If
    Nusselt = c * Aux1 ^ n
    If i >= 7 And i <= 9 Then
                         Aux2 = 1.3 / Lado
                         Else
                         If i >= 10 And i <= 12 Then
                                                     Aux2 = 0.7 / Lado
                                                     Else
                                                     Aux2 = 1 / Lado
                         End If
    End If
    hc = k * Nusselt * Aux2
    CalorParedes = CalorParedes + (hr + hc) * (TParede(i) - TAmb) * _
                   AreaParede(i - 3 * ((i - 1) \ 3) + (i \ 7) * 3)
Next i
CalorParedes = CalorParedes * IntervaloTempo
Ajuste = ContribuicaoTotal - (CalorSensivelPlacaDesenf + CalorAguaRefrigeracao + CalorFumos + _
         CalorParedes)
NecessidadeTotal = CalorSensivelPlacaDesenf + CalorAguaRefrigeracao + CalorFumos + _
                   CalorParedes + Ajuste
[D16] = CalorSensivelPlacaDesenf
[D17] = CalorFumos
[D18] = CalorAguaRefrigeracao
[D19] = CalorParedes
[D20] = Ajuste
[D21] = NecessidadeTotal
[E16] = CalorSensivelPlacaDesenf / T_H
[E17] = CalorFumos / T_H
[E18] = CalorAguaRefrigeracao / T_H
[E19] = CalorParedes / T_H
[E20] = Ajuste / T_H
[E21] = NecessidadeTotal / T_H
[F16] = CalorSensivelPlacaDesenf / NecessidadeTotal * 100
[F17] = CalorFumos / NecessidadeTotal * 100
[F18] = CalorAguaRefrigeracao / NecessidadeTotal * 100
[F19] = CalorParedes / NecessidadeTotal * 100
[F20] = Ajuste / NecessidadeTotal * 100
[F21] = NecessidadeTotal / NecessidadeTotal * 100
[D24] = IntervaloTempo
Sheets("Constant Data").Select
[B4] = Forno
[B5] = Dia
Sheets("Results").Select
[B3] = Forno
[B4] = Dia
Application.ScreenUpdating = True

End Sub

Function EntalpiaAco(T1, T2)
Dim a, b, c1, c2 As Single
If T1 <= 400 Then
             a = 0: b = 1 / 8
             Else
             If T1 <= 640 Then
                          a = -16.67: b = 1 / 6
                          Else
                          If T1 <= 800 Then
                                       a = -82: b = 0.26875
                                       Else
                                       a = 8.349: b = 0.15581
                          End If
             End If
End If
c1 = a + b * T1
If T2 <= 400 Then
             a = 0: b = 1 / 8
             Else
             If T2 <= 640 Then
                          a = -16.67: b = 1 / 6
                          Else
                          If T2 <= 800 Then
                                       a = -82: b = 0.26875
                                       Else
                                       a = 8.349: b = 0.15581
                          End If
             End If
End If
c2 = a + b * T2
EntalpiaAco = c2 - c1
End Function

Sub Clear()

Application.ScreenUpdating = False
Sheets("Variable Data").Select
Range("B4:B5").Select
Selection.ClearContents
Range("B11:I27").Select
Selection.ClearContents
Range("A1").Select
Sheets("Constant Data").Select
Range("B4:B5").Select
Selection.ClearContents
Range("B9:I10").Select
Selection.ClearContents
Range("B14:D17").Select
Selection.ClearContents
Range("B21:D23").Select
Selection.ClearContents
Range("I13:I21").Select
Selection.ClearContents
Range("A1").Select
Sheets("Results").Select
Range("B3:B4").Select
Selection.ClearContents
Range("D8:F12").Select
Selection.ClearContents
Range("B16:F21").Select
Selection.ClearContents
Range("D24").Select
Selection.ClearContents
Range("A1").Select
Sheets("Variable Data").Select
Application.ScreenUpdating = True

End Sub

***** End of Program Listing ******


Return to the Software Menu.

Last Update: 26 December 2002
© Antonio Augusto Gorni