modelMultiLayer

Model for heat conductance through a solid with multiple material layers

Extends from Buildings.HeatTransfer.Conduction.BaseClasses.PartialConductor (Partial model for heat conductor), Buildings.HeatTransfer.Conduction.BaseClasses.PartialConstruction (Partial model for multi-layer constructions).

Information

This is a model of a heat conductor with multiple material layers and energy storage. The construction has at least one material layer, and each layer has at least one temperature node. The layers are modeled using an instance of Buildings.HeatTransfer.Conduction.SingleLayer. See this model for an explanation of the equations that are applied to each material layer.

Important parameters

The construction material is defined by a record of the package Buildings.HeatTransfer.Data.OpaqueConstructions. This record allows specifying materials that store energy, and material that are a thermal conductor only with no heat storage. To assign the material properties to this model, do the following:

  1. Create an instance of a record of Buildings.HeatTransfer.Data.OpaqueConstructions, for example by dragging the record into the schematic model editor.
  2. Make sure the instance has the attribute parameter, which may not be assigned automatically when you drop the model in a graphical editor. For example, an instanciation may look like
     parameter Data.OpaqueConstructions.Insulation100Concrete200 layers
       "Material layers of construction"
       annotation (Placement(transformation(extent={{-80,60},{-60,80}})));
    
  3. Assign the instance of the material to the instance of the heat transfer model as shown in Buildings.HeatTransfer.Examples.ConductorMultiLayer.

The parameters stateAtSurface_a and stateAtSurface_b determine whether there is a state variable at these surfaces, as described above. Note that if stateAtSurface_a = true, then there is temperature state on the surface a with prescribed value, as determined by the differential equation of the heat conduction. Hence, in this situation, it is not possible to connect a temperature boundary condition such as Buildings.HeatTransfer.Sources.FixedTemperature as this would yield to specifying the same temperature twice. To avoid this, either set stateAtSurface_a = false, or place a thermal resistance between the boundary condition and the surface of this model. The same applies for surface b. See the examples in Buildings.HeatTransfer.Examples.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.AreaA (from PartialConductor)Heat transfer area
Modelica.Units.SI.CoefficientOfHeatTransferU (from PartialConductor)UA/AU-value (without surface heat transfer coefficients)
Modelica.Units.SI.ThermalConductanceUA (from PartialConductor)1/RThermal conductance of construction (without surface heat transfer coefficients)
Modelica.Units.SI.ThermalResistanceR (from PartialConductor)Thermal resistance of construction
Buildings.HeatTransfer.Data.OpaqueConstructions.Genericlayers (from PartialConstruction)Construction definition from Data.OpaqueConstructions
IntegernLay (from PartialConstruction)size(layers.material, 1)Number of layers
Integer[nLay]nSta (from PartialConstruction){layers.material[i].nSta for i in 1:nLay}Number of states
Initialization
BooleansteadyStateInitial (from PartialConstruction)false=true initializes dT(0)/dt=0, false initializes T(0) at fixed temperature using T_a_start and T_b_start
Modelica.Units.SI.TemperatureT_a_start (from PartialConstruction)293.15Initial temperature at port_a, used if steadyStateInitial = false
Modelica.Units.SI.TemperatureT_b_start (from PartialConstruction)293.15Initial temperature at port_b, used if steadyStateInitial = false
Dynamics
BooleanstateAtSurface_atrue=true, a state will be at the surface a
BooleanstateAtSurface_btrue=true, a state will be at the surface b

Connectors

TypeNameDefaultDescription
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aport_a (from PartialConductor)Heat port at surface a
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_bport_b (from PartialConductor)Heat port at surface b

Components

TypeNameDefaultDescription
Modelica.Units.SI.TemperatureDifferencedT (from PartialConductor)port_a.T - port_b.T
Modelica.Units.SI.Temperature[sum(layers.nSta)]TTemperature at the states
Modelica.Units.SI.HeatFlowRate[sum(layers.nSta) + nLay]Q_flowHeat flow rate from state i to i+1

Revisions

  • October 16, 2017, by Michael Wetter:
    Corrected wrong result variable R and UA. These variables are only used for reporting. All other calculations were not affected by this error.
  • January 05, 2017, by Thierry S. Nouidui:
    Removed parameter nSta2.
  • November 17, 2016, by Thierry S. Nouidui:
    Added parameter nSta2 to avoid translation error in Dymola 2107. This is a work-around for a bug in Dymola which will be addressed in future releases.
  • October 29, 2016, by Michael Wetter:
    Added option to place a state at the surface.
    This is for issue 565.
  • September 24, 2015 by Michael Wetter:
    Set the start value of T. This is for issue 426.
  • March 18, 2015, by Michael Wetter:
    Replaced nLay in the sum() of the parameter assignment with size(layers.material, 1) to avoid incorrect results in OpenModelica. See github note.
  • March 13, 2015, by Michael Wetter:
    Changed assignment of nLay to avoid a translation error in OpenModelica.
  • October 15, 2014, by Michael Wetter:
    Changed assignment of R to be in the extends statement to avoid a division by zero in OpenModelica.
  • September 9, 2014, by Michael Wetter:
    Reverted change from March 1 2013 as this causes an error during model check in Dymola 2015 FD01 beta1.
  • August 12, 2014, by Michael Wetter:
    Reformulated the protected elements and the model instantiation to avoid a warning in the OpenModelica parser.
  • March 1, 2013, by Michael Wetter:
    Removed initial equation section and assigned the protected parameters _T_a_start and _T_b_start directly to avoid a warning during translation.
  • March 6 2010, by Michael Wetter:
    First implementation.