This package contains base classes that are used to construct the models in Buildings.Fluid.HeatExchangers.RadiantSlabs.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
| Name | Description |
|---|---|
| Convective heat transfer in pipes | |
| Multiplies the heat flow rate | |
| Model that multiplies the mass flow rate | |
| Base class for radiant slab | |
| Functions for convective heat transfer | |
| Types for radiant slab model |
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.InternalFlowConvection
Model to compute the convective heat transfer inside a straight pipe. The convective heat transfer coefficient is computed as a function of the mass flow rate using the function Modelica.Fluid.Dissipation.HeatTransfer.StraightPipe.kc_overall_KC.
| Type | Name | Default | Description |
|---|---|---|---|
| replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the component | |
| Area | A | Pipe inside surface area [m2] | |
| kc_overall_IN_con | kc_IN_con | Parameters for convective heat transfer calculation | |
| Type | Name | Description |
|---|---|---|
| replaceable package Medium | Medium in the component | |
| HeatPort_a | solid | Heat port at solid interface |
| HeatPort_b | fluid | Heat port at fluid interface |
| input RealInput | m_flow | Fluid mass flow rate [kg/s] |
model InternalFlowConvection "Convective heat transfer in pipes"
replaceable package Medium =
Modelica.Media.Interfaces.PartialMedium "Medium in the component";
Modelica.SIunits.HeatFlowRate Q_flow "Heat flow rate from solid -> fluid";
Modelica.SIunits.TemperatureDifference dT "= solid.T - fluid.T";
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a solid
"Heat port at solid interface";
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b fluid
"Heat port at fluid interface";
parameter Modelica.SIunits.Area A "Pipe inside surface area";
parameter Modelica.Fluid.Dissipation.HeatTransfer.StraightPipe.kc_overall_IN_con
kc_IN_con "Parameters for convective heat transfer calculation";
Modelica.Fluid.Dissipation.HeatTransfer.StraightPipe.kc_overall_IN_var
kc_IN_var(
cp=Medium.specificHeatCapacityCp(fluSta),
eta=Medium.dynamicViscosity(fluSta),
lambda=Medium.thermalConductivity(fluSta),
rho=Medium.density(fluSta),
m_flow=m_flow) "Variables for convective heat transfer calculation";
Modelica.Blocks.Interfaces.RealInput m_flow(unit="kg/s")
"Fluid mass flow rate";
Modelica.SIunits.CoefficientOfHeatTransfer hCon
"Convective heat transfer coefficient";
protected
Medium.ThermodynamicState fluSta = Medium.setState_pTX(p=Medium.p_default, T=fluid.T, X=Medium.X_default)
"State of the medium";
equation
hCon = Modelica.Fluid.Dissipation.HeatTransfer.StraightPipe.kc_overall_KC(
IN_con=kc_IN_con, IN_var=kc_IN_var);
dT = solid.T - fluid.T;
solid.Q_flow = Q_flow;
fluid.Q_flow = -Q_flow;
Q_flow = hCon*A*dT;
end InternalFlowConvection;
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.HeatFlowRateMultiplier
This model multiplies the heat flow rate so that
0 = port_b.Q_flow + k * port_Q.m_flow.
The temperature remains unchanged. Therefore, this model does not conserve energy. It is used in Buildings.Fluid.HeatExchangers.RadiantSlabs.ParallelCircuitsSlab to avoid having to instanciate multiple slab models in parallel, with each having the same mass flow rate and temperatures.
| Type | Name | Default | Description |
|---|---|---|---|
| Real | k | Gain for mass flow rate |
| Type | Name | Description |
|---|---|---|
| HeatPort_a | port_a | |
| HeatPort_b | port_b |
model HeatFlowRateMultiplier "Multiplies the heat flow rate"Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a port_a; Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b port_b; parameter Real k "Gain for mass flow rate"; initial equation assert( k > Modelica.Constants.small or -k < -Modelica.Constants.small, "Gain must not be zero. Received k = " + String(k)); equation // Energy balance. (Energy is not conserved by this model!) port_b.Q_flow = -k*port_a.Q_flow; port_a.T = port_b.T;end HeatFlowRateMultiplier;
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.MassFlowRateMultiplier
This model multiplies the mass flow rate so that
0 = port_b.m_flow + k * port_a.m_flow.
The specific enthalpy, the species concentration and the trace substance concentration remains unchanged. Therefore, this model does not conserve mass or energy. It is used in Buildings.Fluid.HeatExchangers.RadiantSlabs.ParallelCircuitsSlab to avoid having to instanciate multiple slab models in parallel, with each having the same mass flow rate and temperatures.
Extends from Modelica.Fluid.Interfaces.PartialTwoPort (Partial component with two ports).
| Type | Name | Default | Description |
|---|---|---|---|
| replaceable package Medium | PartialMedium | Medium in the component | |
| Real | k | Gain for mass flow rate | |
| Assumptions | |||
| Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
| Type | Name | Description |
|---|---|---|
| FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
| FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
model MassFlowRateMultiplier
"Model that multiplies the mass flow rate"
extends Modelica.Fluid.Interfaces.PartialTwoPort;
parameter Real k "Gain for mass flow rate";
initial equation
assert( k > Modelica.Constants.small or -k < -Modelica.Constants.small,
"Gain must not be zero. Received k = " + String(k));
equation
// Pressure drop in design flow direction
port_a.p = port_b.p;
// Mass balance (mass is not conserved by this model!)
port_b.m_flow = -k*port_a.m_flow;
// Specific enthalpy flow rate
port_a.h_outflow = inStream(port_b.h_outflow);
port_b.h_outflow = inStream(port_a.h_outflow);
// Transport of substances
port_a.Xi_outflow = inStream(port_b.Xi_outflow);
port_b.Xi_outflow = inStream(port_a.Xi_outflow);
port_a.C_outflow = inStream(port_b.C_outflow);
port_b.C_outflow = inStream(port_a.C_outflow);
end MassFlowRateMultiplier;
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Slab
This partial model is used to construct radiant slab models with one circuit or with multiple parallel circuits.
| Type | Name | Default | Description |
|---|---|---|---|
| SystemType | sysTyp | Radiant system type | |
| Distance | disPip | Pipe distance [m] | |
| Generic | pipe | Record for pipe geometry and material | |
| Construction | |||
| Generic | layers | Definition of the construction, which must have at least two material layers | |
| Integer | iLayPip | Number of the interface layer in which the pipes are located | |
| Initialization | |||
| Construction | |||
| Boolean | steadyStateInitial | false | =true initializes dT(0)/dt=0, false initializes T(0) at fixed temperature using T_a_start, T_c_start and T_b_start |
| Temperature | T_a_start | 293.15 | Initial temperature at surf_a, used if steadyStateInitial = false [K] |
| Temperature | T_b_start | 293.15 | Initial temperature at surf_b, used if steadyStateInitial = false [K] |
| Type | Name | Description |
|---|---|---|
| HeatPort_a | surf_a | Heat port at construction surface |
| HeatPort_a | surf_b | Heat port at construction surface |
partial model Slab "Base class for radiant slab"
parameter Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType
sysTyp "Radiant system type";
parameter Modelica.SIunits.Distance disPip "Pipe distance";
parameter Buildings.Fluid.Data.Pipes.Generic pipe
"Record for pipe geometry and material";
parameter HeatTransfer.Data.OpaqueConstructions.Generic layers(nLay(min=2))
"Definition of the construction, which must have at least two material layers";
parameter Boolean steadyStateInitial=false
"=true initializes dT(0)/dt=0, false initializes T(0) at fixed temperature using T_a_start, T_c_start and T_b_start";
parameter Integer iLayPip(min=1)
"Number of the interface layer in which the pipes are located";
parameter Modelica.SIunits.Temperature T_a_start=293.15
"Initial temperature at surf_a, used if steadyStateInitial = false";
parameter Modelica.SIunits.Temperature T_b_start=293.15
"Initial temperature at surf_b, used if steadyStateInitial = false";
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a surf_a
"Heat port at construction surface";
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a surf_b
"Heat port at construction surface";
end Slab;