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.
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:
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}})));
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.
R and UA.
These variables are only used for reporting. All other calculations
were not affected by this error.nSta2.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.T. This is for issue
426.nLay in the sum() of the
parameter assignment with size(layers.material, 1) to
avoid incorrect results in OpenModelica. See
github note.nLay to avoid a translation
error in OpenModelica.R to be in the
extends statement to avoid a division by zero in
OpenModelica.initial equation section and assigned the
protected parameters _T_a_start and
_T_b_start directly to avoid a warning during
translation.