JARA2i.heat

Heat models

Information


 

Models of solid CVs, thermal resistances and BC



This package contains models of solid CVs, thermal resistances and boundary conditions (heat and temperature sources).
The classes included in this package are shown in Figure 1.


Figure 1.Classes included in heat.mo.



Package Content

NameDescription
JARA2i.heat.convecSiederTateB convecSiederTateB Sieder-Tate correlation (for turbulent flow in pipes).
JARA2i.heat.resistThermB resistThermB Partial model - Thermal resistor of variable resistance. The resistance dependens on the mass and temperature of the control volumes.
JARA2i.heat.resistThermFB resistThermFB Thermal resistor of variable resistance, dependent of the mass and temperature of a control volume and of the mass flow and temperature of the other control volume.
JARA2i.heat.RthAbsTB RthAbsTB Thermal resistor. The resistence value is r = r0*(r1/abs(T))**r2.
JARA2i.heat.RthConstB RthConstB Thermal resistor. The resistence value is constant.
JARA2i.heat.RthExpTB RthExpTB Thermal resistor. The resistence value depends exponentially of the temperature.
JARA2i.heat.solidB solidB Model of a solid control volume. The thermal dynamic of this solid is very fast. Its heat capacity (i.e., eps) is small.
JARA2i.heat.solidC6B solidC6B Dynamic energy balance applied to a control volume containing a solid. This class inherits from solidCB. This class has to be completed with an equation defining the heat capacity of the solid.
JARA2i.heat.solidCB solidCB Partial model - Dynamic energy balance applied to a control volume containing a solid. This partial model must be completed with an expression for the solid heat capacity.
JARA2i.heat.sourceHeatFB sourceHeatFB Heat flow source.
JARA2i.heat.sourceTempB sourceTempB Partial model - Temperature source.


JARA2i.heat.convecSiederTateB JARA2i.heat.convecSiederTateB

Sieder-Tate correlation (for turbulent flow in pipes).

JARA2i.heat.convecSiederTateB

Information


                        Sieder-Tate correlation (for turbulent flow in pipes).
                        InHeat: wall. OutHeat: fluid. 

Table 1. Interactive variables.
pipeDiameter Internal diameter of the pipe.
pipeSection Pipe cross-section.
pipeSurfaceArea Pipe-wall surface.

Parameters

TypeNameDefaultDescription
IntegernCompI1Number of components of inHeat
IntegernCompO1Number of components of outHeat
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
Realeps1.E-10Small parameter to avoid by-zero division [T.M-1.L-2.t3]
RealpipeDiameterInitial Internal diameter of the pipe [L]
RealpipeSectionInitial Pipe cross-section [L2]
RealpipeSurfaceAreaInitial Pipe-wall surface [L2]
RealCpCoefM[nCompO, 7] Heat-capacity coefficients of the fluid components
RealSTcoef[4] Coefficients of the Sieder-Tate correlation
Realvisc[4] Coefficients of the viscosity
RealthermCondCoef[2] Coefficients of the thermal conductivity

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow
cutHeatFRoutHeatHeat flow

Modelica definition

model convecSiederTateB 
  " Sieder-Tate correlation (for turbulent flow in pipes)." 
  
   extends resistThermFB;
  
   // Interactive parameters
   parameter Real pipeDiameterInitial(        unit="L") 
    "Internal diameter of the pipe";
   parameter Real pipeSectionInitial(         unit="L2") "Pipe cross-section";
   parameter Real pipeSurfaceAreaInitial(     unit="L2") "Pipe-wall surface";
  
   Real pipeDiameter(                  unit="L",  start=pipeDiameterInitial) 
    "Internal diameter of the pipe. Interactive parameter";
   Real pipeSection(                   unit="L2", start=pipeSectionInitial) 
    "Pipe cross-section. Interactive parameter";
   Real pipeSurfaceArea(               unit="L2", start=pipeSurfaceAreaInitial) 
    "Pipe-wall surface. Interactive parameter";
  
   parameter Real CpCoefM[ nCompO,7] 
    "Heat-capacity coefficients of the fluid components";
  
   parameter Real STcoef[ 4] "Coefficients of the Sieder-Tate correlation";
   parameter Real visc[ 4] "Coefficients of the viscosity";
   parameter Real thermCondCoef[ 2] "Coefficients of the thermal conductivity";
  
protected 
   Real convecHeatCoef(    unit="M.t-3.T-1") 
    "Coefficient of conventive heat-transfer";
   Real viscTfluid(        unit="M.L-1.t-1") 
    "Viscosity, calculated at the mean temperature of the fluid";
   Real viscTwall(         unit="M.L-1.t-1") 
    "Viscosity, calculated at the wall temperature";
   Real CpMass[  nCompO](  unit="L2.t-2.T-1") 
    "Specific (per mass) heat capacity of the fluid components";
   Real CpMassMean(        unit="L2.t-2.T-1") 
    "Mean value of the specific (per mass) heat capacity of the fluid";
   Real thermCond(         unit="M.L.t-3.T-1") 
    "Thermal conductivity of the fluid";
  
   Real Nu(    unit="") "Nusselt  number";
   Real Re(    unit="") "Reynolds number";
   Real Pr(    unit="") "Prantdtl number";
  
equation 
   // Ejs
  
   if Ejs then
      der(pipeDiameter)    = 0;
      der(pipeSection)     = 0;
      der(pipeSurfaceArea) = 0;
   end if;
  
   // Sysquake
   if Sysquake then
      pipeDiameter    = pipeDiameterInitial;
      pipeSection     = pipeSectionInitial;
      pipeSurfaceArea = pipeSurfaceAreaInitial;
   end if;
  
   // Nusselt number
   Nu = convecHeatCoef * pipeDiameter / thermCond;
  
   // Reynolds number
   Re = pipeDiameter * noEvent( abs( sum(outHeat.matterF[i] for i in 1:nCompO)))   / (pipeSection * viscTfluid + eps);
  
   // Specific (per mass) heat capacity of the fluid components
   for i in 1:nCompO loop
      CpMass[i] = CpCoefM[i,1]                        +
                  CpCoefM[i,2] * outHeat.tempF        +
                  CpCoefM[i,3] * outHeat.tempF^ 2     +
                  CpCoefM[i,4] * outHeat.tempF^ 3     +
                  CpCoefM[i,5] * outHeat.tempF^ 4     +
                  CpCoefM[i,6] * outHeat.tempF^ 5     +
                  CpCoefM[i,7] * outHeat.tempF^ 6;
   end for;
  
   // Specific (per mass) heat capacity of the fluid mixture
   CpMassMean = noEvent(  abs( sum(CpMass[i] * outHeat.matterF[i] for i in 1:nCompO)))   /
              ( noEvent( abs( sum(outHeat.matterF[i] for i in 1:nCompO)))   + eps);
  
   // CpMassMean = abs( trans(CpMass) * outHeat.matterF ) / ( abs( sum(outHeat.matterF[i] for i in 1:nCompO) ) + eps );
  
   // Prantdtl number
   Pr = CpMassMean * viscTfluid / thermCond;
  
   // Sieder-Tate correlation (turbulent flow in pipes)
   Nu = STcoef[1] * Re^ STcoef[2] * Pr^ STcoef[3] * (viscTfluid / viscTwall)^  STcoef[4];
  
   // Thermal resistance
   Rtherm = 1 / ( pipeSurfaceArea * convecHeatCoef + eps);
  
   // Fluid viscosity, calculated at the fluid mean temperature
   viscTfluid = visc[1] * exp( visc[2] + visc[3] / ( outHeat.tempF - visc[4]));
  
   // Fluid viscosity, calculated at the wall temperature
   viscTwall  = visc[1] * exp( visc[2] + visc[3] / ( inHeat.temp - visc[4]));
  
   // Thermal conductivity if the fluid
   thermCond = thermCondCoef[1] * ( outHeat.tempF + eps)^    thermCondCoef[2];
  
  
end convecSiederTateB;

JARA2i.heat.resistThermB JARA2i.heat.resistThermB

Partial model - Thermal resistor of variable resistance. The resistance dependens on the mass and temperature of the control volumes.

JARA2i.heat.resistThermB

Information


                       Thermal resistor of variable resistance.
The resistance dependens on the mass and temperature of the control volumes.
This partial model inherits from interf.heatFlow2I.
This model contains the constituve relation of the termal resistor.
It must be completed with an equation for the evaluation of the thermal resistance.
This model can be usefull to model the heat flow by conduction.


Parameters

TypeNameDefaultDescription
IntegernCompI1Number of components of inHeat
IntegernCompO1Number of components of outHeat
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
Realeps1.E-10Small parameter to avoid by-zero division [T.M-1.L-2.t3]

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow
cutHeatMRoutHeatHeat flow

Modelica definition

partial model resistThermB "Partial model - Thermal resistor of variable resistance. The resistance dependens on the mass and temperature of the
                        control volumes." 
  
   extends interf.heatFlow2I;
  
   // Interactivity
   outer parameter Boolean Ejs =      false 
    "Global parameter - Runtime interactivity";
   outer parameter Boolean Sysquake = false 
    "Global parameter - Batch interactivity";
  
   parameter Real eps( unit="T.M-1.L-2.t3") = 1.E-10 
    "Small parameter to avoid by-zero division";
  
protected 
   Boolean emptyI(     start = true) "True while the control volume is empty";
   Boolean emptyO(     start = true) "True while the control volume is empty";
  
   Real Rtherm(         unit="T.M-1.L-2.t3") "Thermal resistor";
  
equation 
   // Relationship between the interface variables
   inHeat.heatF + outHeat.heatF = 0;
  
   // Are the control volumes empty?
   emptyI = not sum(inHeat.matter[i]  for i in 1:nCompI) > 0;
   emptyO = not sum(outHeat.matter[i] for i in 1:nCompO) > 0;
  
   // Constitutive relation of the thermal resistor
   inHeat.heatF = if emptyI or emptyO then 
                        0 else 
                        ( inHeat.temp - outHeat.temp)  / ( Rtherm + eps);
  
  
end resistThermB;

JARA2i.heat.resistThermFB JARA2i.heat.resistThermFB

Thermal resistor of variable resistance, dependent of the mass and temperature of a control volume and of the mass flow and temperature of the other control volume.

JARA2i.heat.resistThermFB

Information


                        Thermal resistor of variable resistance, dependent of the mass and temperature of a
                        control volume and of the mass flow and temperature of the other control volume.
The purpose of this class is to model the heat tranfer by convection.
This partial model must be completed with an equation for calculation the thermal resistance from.
This class inherits form inter.heatFlowF2I.

Parameters

TypeNameDefaultDescription
IntegernCompI1Number of components of inHeat
IntegernCompO1Number of components of outHeat
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
Realeps1.E-10Small parameter to avoid by-zero division [T.M-1.L-2.t3]

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow
cutHeatFRoutHeatHeat flow

Modelica definition

model resistThermFB "Thermal resistor of variable resistance, dependent of the mass and temperature of a
                        control volume and of the mass flow and temperature of the other control volume." 
  
   extends interf.heatFlowF2I;
  
   // Interactivity
   outer parameter Boolean Ejs =      false 
    "Global parameter - Runtime interactivity";
   outer parameter Boolean Sysquake = false 
    "Global parameter - Batch interactivity";
  
   parameter Real eps(  unit="T.M-1.L-2.t3") = 1.E-10 
    "Small parameter to avoid by-zero division";
  
protected 
   Boolean emptyI "True while the control volume is empty";
  
   Real Rtherm(        unit="T.M-1.L-2.t3") "Thermal resistance";
  
equation 
   // Relationship between the interface variables
   inHeat.heatF + outHeat.heatF = 0;
  
   // Is the control volume empty?
   emptyI = not sum(inHeat.matter[i] for i in 1:nCompI) > 0;
  
   // Constitutive relation of the thermal resistor
   inHeat.heatF = if emptyI then 0 else ( inHeat.temp - outHeat.tempF)  / ( Rtherm + eps);
  
  
end resistThermFB;

JARA2i.heat.RthAbsTB JARA2i.heat.RthAbsTB

Thermal resistor. The resistence value is r = r0*(r1/abs(T))**r2.

JARA2i.heat.RthAbsTB

Information


                       This class inherits from resistThermB. 
The resistence value is r = r0*(r1/abs(T))**r2

Parameters

TypeNameDefaultDescription
IntegernCompI1Number of components of inHeat
IntegernCompO1Number of components of outHeat
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
Realeps1.E-10Small parameter to avoid by-zero division [T.M-1.L-2.t3]
RealR0 Parameter of the thermal resistance [T.M-1.L-2.t3]
RealR1 Parameter of the thermal resistance [T]
RealR2 Parameter of the thermal resistance

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow
cutHeatMRoutHeatHeat flow

Modelica definition

model RthAbsTB 
  "Thermal resistor. The resistence value is r = r0*(r1/abs(T))**r2." 
  
   extends resistThermB;
  
   parameter Real R0(  unit="T.M-1.L-2.t3") 
    "Parameter of the thermal resistance";
   parameter Real R1(  unit="T") "Parameter of the thermal resistance";
   parameter Real R2(  unit="") "Parameter of the thermal resistance";
  
equation 
   Rtherm = R0 * ( R1 / ( abs(inHeat.temp - outHeat.temp) + eps))^     R2;
  
  
end RthAbsTB;

JARA2i.heat.RthConstB JARA2i.heat.RthConstB

Thermal resistor. The resistence value is constant.

JARA2i.heat.RthConstB

Information


                       This class inherits from resistThermB. 
The resistence value is constant.

Table 1. Interactive variables.
Rth Thermal resistor.

Parameters

TypeNameDefaultDescription
IntegernCompI1Number of components of inHeat
IntegernCompO1Number of components of outHeat
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
Realeps1.E-10Small parameter to avoid by-zero division [T.M-1.L-2.t3]
RealRthInitial Thermal resistor - Initial value [T.M-1.L-2.t3]

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow
cutHeatMRoutHeatHeat flow

Modelica definition

model RthConstB "Thermal resistor. The resistence value is constant." 
  
   extends resistThermB;
  
   parameter Real RthInitial(   unit="T.M-1.L-2.t3") 
    "Thermal resistor - Initial value";
   Real Rth(            start = RthInitial) "Thermal resistor";
  
equation 
   // Ejs
   if Ejs then
      der( Rth)  = 0;
   end if;
  
   // Sysquake
   if Sysquake then
      Rth = RthInitial;
   end if;
  
   Rtherm = Rth;
  
  
end RthConstB;

JARA2i.heat.RthExpTB JARA2i.heat.RthExpTB

Thermal resistor. The resistence value depends exponentially of the temperature.

JARA2i.heat.RthExpTB

Information


                       This class inherits from resistThermB. 
The resistence value depends exponentially of the temperature

Parameters

TypeNameDefaultDescription
IntegernCompI1Number of components of inHeat
IntegernCompO1Number of components of outHeat
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
Realeps1.E-10Small parameter to avoid by-zero division [T.M-1.L-2.t3]
RealR0 Parameter of the thermal resistance [T.M-1.L-2.t3]
RealR1 Parameter of the thermal resistance [T]

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow
cutHeatMRoutHeatHeat flow

Modelica definition

model RthExpTB "Thermal resistor.
                       The resistence value depends exponentially of the temperature." 
  
   extends resistThermB;
  
   parameter Real R0(   unit="T.M-1.L-2.t3") 
    "Parameter of the thermal resistance";
   parameter Real R1(   unit="T") "Parameter of the thermal resistance";
  
equation 
   Rtherm = R0 * exp(  R1 / (0.5 * (inHeat.temp + outHeat.temp) + eps));
  
  
end RthExpTB;

JARA2i.heat.solidB JARA2i.heat.solidB

Model of a solid control volume. The thermal dynamic of this solid is very fast. Its heat capacity (i.e., eps) is small.

JARA2i.heat.solidB

Information


    Model of a solid control volume (CV). 
The solid CV is considered a closed system (i.e., it only exchanges energy, not mass, with its environment).
It is assumed that the cooling and heating dynamic of the solid has no interest.
This dynamic is established arbitrarily.
The thermal dynamic of this solid is very fast. Its heat capacity (i.e., eps) is small.

Parameters

TypeNameDefaultDescription
IntegernComp1Number of components
Realeps1E-4Heat capacity of the solid [M.L2.T-1.t-2]
RealtempInitial Initial temperature [T]

Connectors

TypeNameDescription
cutHeatMCinHeatConnector for the heat conduction.

Modelica definition

model solidB 
  "Model of a solid control volume. The thermal dynamic of this solid is very fast. Its heat capacity (i.e., eps) is small." 
  
   extends interf.heat1I(nComp=1);
  
   parameter Real eps(   unit="M.L2.T-1.t-2") = 1E-4 
    "Heat capacity of the solid";
  
   parameter Real tempInitial( unit="T") "Initial temperature";
  
   Real temp( unit="T", start=tempInitial) "Temperature";
  
equation 
   // The solid mass is constant. The mass value does not care, but it must be different from zero
   inHeat.matter = { 1};
  
   // Energy balance
   eps * der(temp) = inHeat.heatF;
  
   inHeat.temp = temp;
  
  
end solidB;

JARA2i.heat.solidC6B JARA2i.heat.solidC6B

Dynamic energy balance applied to a control volume containing a solid. This class inherits from solidCB. This class has to be completed with an equation defining the heat capacity of the solid.

JARA2i.heat.solidC6B

Information


    Dynamic energy balance applied to a control volume containing a solid. 
This class inherits from solidCB.
This class has to be completed with an equation defining the heat capacity of the solid. The solid heat capacity is a polynomial of sixth order of the temperature.

mass Mass of the solid.

Parameters

TypeNameDefaultDescription
IntegernComp1Number of components
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
RealmassInitial Mass of the solid [M]
RealtempInitial Initial temperature [T]
RealCpCoefM[7] Coefficients of the specific (per mass) heat capacity CpMass = CpCoefM[1] + CpCoefM[2]*T + ... + CpCoefM[7]*T**6

Connectors

TypeNameDescription
cutHeatMCinHeatConnector for the heat conduction.

Modelica definition

model solidC6B "  Dynamic energy balance applied to a control volume containing a solid. 
     This class inherits from solidCB.
    This class has to be completed with an equation defining the heat capacity of the solid." 
  
   extends solidCB;
  
   parameter Real CpCoefM[7] "Coefficients of the specific (per mass) heat capacity   
                                 CpMass = CpCoefM[1] + CpCoefM[2]*T + ... + CpCoefM[7]*T**6";
  
equation 
   CpMass = sum( inHeat.temp^ (i-1) * CpCoefM[i] for i in 1:7);
  
  
end solidC6B;

JARA2i.heat.solidCB JARA2i.heat.solidCB

Partial model - Dynamic energy balance applied to a control volume containing a solid. This partial model must be completed with an expression for the solid heat capacity.

JARA2i.heat.solidCB

Information


    Dynamic energy balance applied to a control volume containing a solid. 
The solid CV is considered a closed system (i.e., it only exchanges energy, not mass, with its environment).
The only modeled characteristic in solids is the heat conduction (for modeling the walls of reactors, pipes, etc.).
This partial model must be completed with an expression for the solid heat capacity.

mass Mass of the solid.

Parameters

TypeNameDefaultDescription
IntegernComp1Number of components
BooleanEjsfalseGlobal parameter - Runtime interactivity
BooleanSysquakefalseGlobal parameter - Batch interactivity
RealmassInitial Mass of the solid [M]
RealtempInitial Initial temperature [T]

Connectors

TypeNameDescription
cutHeatMCinHeatConnector for the heat conduction.

Modelica definition

partial model solidCB "Partial model - Dynamic energy balance applied to a control volume containing a solid. 
   This partial model must be completed with an expression for the solid heat capacity." 
  
   extends interf.heat1I( nComp=1);
  
   // Interactivity
   outer parameter Boolean Ejs =      false 
    "Global parameter - Runtime interactivity";
   outer parameter Boolean Sysquake = false 
    "Global parameter - Batch interactivity";
  
   parameter Real massInitial(     unit="M") "Mass of the solid";
   Real mass(              start=massInitial) "Interactive variable";
  
   parameter Real tempInitial( unit="T") "Initial temperature";
  
   Real temp( unit="T", start=tempInitial) "Temperature ";
  
protected 
   Real CpMass(   unit="L2.t-2.T-1") "Specific heat capacity";
  
equation 
   // Ejs
   if Ejs then
      der(mass) = 0;
   end if;
  
   // Sysquake
   if Sysquake then
      mass = massInitial;
   end if;
  
   // Energy balance
   mass * CpMass * der(temp) = inHeat.heatF;
  
   inHeat.temp = temp;
  
   // The mass of the solid is constant
   inHeat.matter = { mass};
  
  
end solidCB;

JARA2i.heat.sourceHeatFB JARA2i.heat.sourceHeatFB

Heat flow source.

JARA2i.heat.sourceHeatFB

Information


                        Heat flow source.
This class inherits from interf.heatFlow1I.

Parameters

TypeNameDefaultDescription
IntegernComp1Number of components

Connectors

TypeNameDescription
cutHeatMRinHeatHeat flow source
cutReceiversetPointSignalSP for the heat flow

Modelica definition

model sourceHeatFB "Heat flow source." 
  
   extends interf.heatFlow1I;
  
   Real heatFSP "Heat flow SP";
  
   cutsB.cutReceiver setPointSignal(  dim=1, signal={heatFSP}) 
    "SP for the heat flow";
  
protected 
   Boolean empty(  start = true) 
    "True while the mass inside the control volume is zero";
  
equation 
   // Is the control volume empty?
   empty = not sum(inHeat.matter[i] for i in 1:nComp) > 0;
  
   // Relationship between the heat flow and its setpoint
   inHeat.heatF = if empty then 0 else -heatFSP;
  //The heat flow is equal to its setpoint provided that the system connected to the source has a mass different from zero.
  
end sourceHeatFB;

JARA2i.heat.sourceTempB JARA2i.heat.sourceTempB

Partial model - Temperature source.

JARA2i.heat.sourceTempB

Information


                        Temperature source. 
This partial model needs to be completed with an expression to evaluate the source temperature.
The source temperature has to be only a funcion of time and/or state variables.
This class inherits from interf.heat1I.

Parameters

TypeNameDefaultDescription
IntegernComp1Number of components

Connectors

TypeNameDescription
cutHeatMCinHeatConnector for the heat conduction.

Modelica definition

partial model sourceTempB "Partial model - Temperature source." 
  
   extends interf.heat1I(nComp=1);
  
   Real sourceTemp( unit="T") "Source temperature";
  
equation 
   inHeat.temp = sourceTemp;
  
   inHeat.matter = { 1};
  
  
end sourceTempB;

HTML-documentation generated by Dymola Tue Jul 24 19:08:18 2007.