modelPartialTwoWayValve

Partial model for a two way valve

Extends from IDEAS.Fluid.BaseClasses.PartialResistance, IDEAS.Fluid.Actuators.BaseClasses.ValveParameters, IDEAS.Fluid.Actuators.BaseClasses.ActuatorSignal.

Information

Partial model for a two way valve. This is the base model for valves with different opening characteristics, such as linear, equal percentage, quick opening or pressure-independent.

To prevent the derivative d/dP (m_flow) to be infinite near the origin, this model linearizes the pressure drop versus flow relation ship. The region in which it is linearized is parameterized by

  m_turbulent_flow = deltaM * m_flow_nominal

Because the parameterization contains Kv_SI, the values for deltaM and dp_nominal need not be changed if the valve size changes.

In contrast to the model in Modelica.Fluid, this model uses the parameter Kv_SI, which is the flow coefficient in SI units, i.e., it is the ratio between mass flow rate in kg/s and square root of pressure drop in Pa.

Options

This model allows different parameterization of the flow resistance. The different parameterizations are described in IDEAS.Fluid.Actuators.BaseClasses.ValveParameters.

Implementation

The two way valve models are implemented using this partial model, as opposed to using different functions for the valve opening characteristics, because each valve opening characteristics has different parameters.

Parameters

TypeNameDefaultDescription
Reall0.0001Valve leakage, l=Kv(y=0)/Kv(y=1)
RealkFixedif dpFixed_nominal > Modelica.Constants.eps then m_flow_nominal/sqrt(dpFixed_nominal) else 0Flow coefficient of fixed resistance that may be in series with valve, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2).
Nominal condition
Modelica.Units.SI.PressureDifferencedpFixed_nominal0Pressure drop of pipe and other resistances that are in series

Components

TypeNameDefaultDescription
RealphiRatio actual to nominal mass flow rate of valve, phi=Kv(y)/Kv(y=1)
RealkValFlow coefficient of valve, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2).
RealkFlow coefficient of valve and pipe in series, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2).

Revisions

  • April 2, 2020, by Filip Jorissen:
    Added model name in assert message.
    This is for #1334.
  • February 21, 2020, by Michael Wetter:
    Changed icon to display its operating stage.
    This is for #1294.
  • November 9, 2019, by Filip Jorissen:
    Removed assert for phi>-0.2 since the valve control input is now lower limited to zero. See issue 1223.
  • October 25, 2019, by Jianjun Hu:
    Improved icon graphics annotation. This is for #1225.
  • March 24, 2017, by Michael Wetter:
    Renamed filteredInput to use_inputFilter.
    This is for #665.
  • November 16, 2017, by Michael Wetter:
    Relaxed assertion on phi.
    This is for #592.
  • October 27, 2016, by Filip Jorissen:
    Added assert for phi > 0. This fixes a bug that caused valves to behave like pumps for negative control signals. This is for #558.
  • April 23, 2016, by Michael Wetter:
    Changed test in assertion from dpFixed_nominal > -Modelica.Constants.small to dpFixed_nominal > -Modelica.Constants.eps. Otherwise, JModelica evaluates it as true in IDEAS.Fluid.Actuators.Valves.Examples.TwoWayValves. See also https://trac.jmodelica.org/ticket/4932. This is for Buildings, issue 510.
  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • January 29, 2015, by Filip Jorissen:
    Moved the governing equations to PartialTwoWayValveKv in order to be able to extend from this partial in TwoWayPressureIndependent
  • August 8, 2014, by Michael Wetter:
    Reformulated the computation of k to make the model work in OpenModelica.
  • April 4, 2014, by Michael Wetter:
    Added keyword input to variable phi to require models that extend this model to provide a binding equation. This is done to use the same modeling concept as is used for example in IDEAS.Fluid.Interfaces.StaticTwoPortHeatMassExchanger.
  • March 27, 2014 by Michael Wetter:
    Revised model for implementation of new valve model that computes the flow function based on a table.
  • March 20, 2013, by Michael Wetter:
    Set dp(nominal=6000) as the previous formulation gives an error during model check in Dymola 2014. The reason is that the previous formulation used dpValve_nominal, which is not known at translation time.
  • February 28, 2013, by Michael Wetter:
    Reformulated assignment of parameters. Removed default value for dpValve_nominal, as this parameter has the attribute fixed=false for some values of CvData. In this case, assigning a value is not allowed. Changed assignment of nominal attribute of dp to avoid assigning a non-literal value.
  • February 20, 2012 by Michael Wetter:
    Renamed parameter dp_nominal to dpValve_nominal, and added new parameter dpFixed_nominal. See IDEAS.Fluid.Actuators.UsersGuide.
  • January 16, 2012 by Michael Wetter:
    To simplify object inheritance tree, revised base classes IDEAS.Fluid.BaseClasses.PartialResistance, IDEAS.Fluid.Actuators.BaseClasses.PartialTwoWayValve, IDEAS.Fluid.Actuators.BaseClasses.PartialDamperExponential, IDEAS.Fluid.Actuators.BaseClasses.PartialActuator and model IDEAS.Fluid.FixedResistances.PressureDrop.
  • August 12, 2011 by Michael Wetter:
    Added assert statement to prevent l=0 due to the implementation of IDEAS.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow.
  • April 4, 2011 by Michael Wetter:
    Revised implementation to use new base class for actuators.
  • February 18, 2009 by Michael Wetter:
    Implemented parameterization of flow coefficient as in Modelica.Fluid.
  • August 15, 2008 by Michael Wetter:
    Set valve leakage to nonzero value.
  • June 3, 2008 by Michael Wetter:
    First implementation.