blockflow_control

Information

Control function that sets the position of a valve/pump in order to reach a desired temperature at the measurement point of the input. The main use case for this controller is actuating the valve/pump at the primary side of a district heating substation in a way to keep the temperature at the secondary side at a setpoint. A PI-control function is used to determine the desired valve/pump position. A minimum value can be set for the output to, e.g., mimic a bypass. The output y is in the range [min_y, 1], thus, when a pump is used the value needs to be multiplied by the nominal mass flow value.

If use_T_in is true the temperature set-point is taken from the input T_set else from the constant T_const.

If use_m_flow_in is true the mass flow measurement signal is used to set the valve/pump set-point to its minimum position in times of small mass flows m_flow_min.

Parameters

TypeNameDefaultDescription
BooleanreverseActionfalseSet to true for reversed PI controller (error term decreases output)
Realk0.01Gain of controller
Modelica.SIunits.TimeTi120Time constant of Integrator block
Realmin_y0.0Minimum valve position (e.g., bypass)
Booleanuse_T_infalseUse input for temperature setpoint
Booleanuse_m_flow_infalseUse minimum valve/pump position in case of small mass flow
Modelica.SIunits.TemperatureT_const60.0 + 273.15Constant temperature setpoint
Modelica.SIunits.MassFlowRatem_flow_nominal0Nominal mass flow rate at secondary side
Modelica.SIunits.MassFlowRatem_flow_min0.0001*abs(m_flow_nominal)Mass flow rate at secondary side where minimum valve/pump position is set

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInputT_setInput signal connector
Modelica.Blocks.Interfaces.RealOutputyConnector of Real output signal
Modelica.Blocks.Interfaces.RealInputm_flow_measurementInput signal connector
Modelica.Blocks.Interfaces.RealInputT_measurementInput signal connector

Components

TypeNameDefaultDescription
IBPSA.Controls.Continuous.LimPIDconPID

Revisions

  • Feburary 27, 2019, by Benedikt Leitner:
    Implementation and added User's guide.