modelTwoWayTRV

Two way thermostatic radiator valve

Extends from IDEAS.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models), IDEAS.Fluid.Actuators.BaseClasses.ValveParameters (Model with parameters for valves).

Information

Two way valve with thermostatic radiator knob. This model assumes no hysteresis and an ideal opening characteristic with a proportional band of P K. The default value of riseTime has been set to reflect the typical delay of radiator knobs.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.TemperatureTSet294.15Temperature set point
Modelica.Units.SI.TemperatureP2Proportional band of valve
Reall0.0001Valve leakage, l=Kv(y=0)/Kv(y=1)
Modelica.Units.SI.MassFlowRatem_flow_turbulentdeltaM*abs(m_flow_nominal)Turbulent flow if |m_flow| >= m_flow_turbulent
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedpValve_nominal (from ValveParameters)Nominal pressure drop of fully open valve, used if CvData=IDEAS.Fluid.Types.CvTypes.OpPoint
Modelica.Units.SI.PressureDifferencedpFixed_nominal0Pressure drop of pipe and other resistances that are in series
Modelica.Units.SI.PressureDifferencedp_nominaldpValve_nominal + dpFixed_nominalPressure drop at nominal mass flow rate
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanhomotopyInitializationtrue= true, use homotopy method
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Flow Coefficient
IDEAS.Fluid.Types.CvTypesCvData (from ValveParameters)IDEAS.Fluid.Types.CvTypes.OpPointSelection of flow coefficient
RealKv (from ValveParameters)Kv (metric) flow coefficient [m3/h/(bar)^(1/2)]
RealCv (from ValveParameters)Cv (US) flow coefficient [USG/min/(psi)^(1/2)]
Modelica.Units.SI.AreaAv (from ValveParameters)Av (metric) flow coefficient
Pressure-flow linearization
RealdeltaM (from ValveParameters)0.02Fraction of nominal flow rate where linearization starts, if y=1
Advanced › Nominal condition
Modelica.Units.SI.DensityrhoStd (from ValveParameters)Inlet density for which valve coefficients are defined
Dynamics › Actuator position
Booleanuse_strokeTimetrueSet to true to continuously open and close valve using strokeTime
Modelica.Units.SI.TimestrokeTime1200Time needed to fully open or close actuator
Modelica.Blocks.Types.InitinitModelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
Realy_start1Initial value of control signal

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.RealInputTTemperature measurement
Modelica.Blocks.Interfaces.RealOutputyValve set point

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b
IDEAS.Fluid.Actuators.Valves.TwoWayLinearvalLinear valve
Modelica.Blocks.Sources.RealExpressionyExpSmooth control signal

Revisions

  • October 30, 2024, by Lucas Verleyen:
    Updates according to IBPSA.
    See #1383 (and IBPSA, #1926).
  • March 31, 2020 by Filip Jorissen:
    Revised implementation using smoothHeaviside. See #1022.
  • October 26, 2018 by Filip Jorissen:
    Using smoothLimit for P controller. See #948.
  • September 24, 2018 by Filip Jorissen:
    Modified displayUnit of proportional band P to Kelvin to avoid displaying -271.15C. See #919.
  • November 15, 2016 by Filip Jorissen:
    First implementation.