Buildings.Templates.Components.Actuators

Damper and valve models

Information

This package contains models for dampers and valves.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Templates.Components.Actuators.Damper Damper Multiple-configuration damper
Buildings.Templates.Components.Actuators.Valve Valve Multiple-configuration valve

Buildings.Templates.Components.Actuators.Damper Buildings.Templates.Components.Actuators.Damper

Multiple-configuration damper

Buildings.Templates.Components.Actuators.Damper

Information

This is a container model that can be used to represent a variety of dampers. The supported damper types are described in the enumeration Buildings.Templates.Components.Types.Damper.

Control points

The following input and output points are available.

For modulating dampers:

For pressure-independent dampers:

For two-position dampers:

Model parameters

The design operating point is specified with an instance of Buildings.Templates.Components.Data.Damper.

Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Damperdatdat(final typ=typ)Design and operating parameters
Nominal condition
MassFlowRatem_flow_nominaldat.m_flow_nominalNominal mass flow rate [kg/s]
Configuration
Dampertyp Equipment type
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Filtered opening
Booleanuse_inputFiltertrue= true, if opening is filtered with a 2nd order CriticalDamping filter
TimeriseTime120Rise time of the filter (time to reach 99.6 % of an opening step) [s]
InitinitModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
Realy_start1Initial position of actuator
Graphics
DamperBladestypBlaif typ == Buildings.Template...Type of blades
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
BusbusControl bus

Modelica definition

model Damper "Multiple-configuration damper" extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( final m_flow_nominal=dat.m_flow_nominal); parameter Buildings.Templates.Components.Types.Damper typ "Equipment type"; parameter Buildings.Templates.Components.Data.Damper dat(final typ=typ) "Design and operating parameters"; final parameter Modelica.Units.SI.PressureDifference dp_nominal= dat.dp_nominal "Damper pressure drop"; parameter Boolean use_inputFilter=true "= true, if opening is filtered with a 2nd order CriticalDamping filter"; parameter Modelica.Units.SI.Time riseTime=120 "Rise time of the filter (time to reach 99.6 % of an opening step)"; parameter Modelica.Blocks.Types.Init init=Modelica.Blocks.Types.Init.InitialOutput "Type of initialization (no init/steady state/initial state/initial output)"; parameter Real y_start=1 "Initial position of actuator"; parameter Boolean from_dp = false "= true, use m_flow = f(dp) else dp = f(m_flow)"; parameter Boolean linearized = false "= true, use linear relation between m_flow and dp for any flow rate"; parameter Buildings.Templates.Components.Types.DamperBlades typBla= if typ==Buildings.Templates.Components.Types.Damper.TwoPosition then Buildings.Templates.Components.Types.DamperBlades.Opposed elseif typ==Buildings.Templates.Components.Types.Damper.PressureIndependent then Buildings.Templates.Components.Types.DamperBlades.VAV else Buildings.Templates.Components.Types.DamperBlades.Parallel "Type of blades"; parameter Integer text_rotation = 0 "Text rotation angle in icon layer"; parameter Boolean text_flip = false "True to flip text horizontally in icon layer"; Buildings.Templates.Components.Interfaces.Bus bus if typ <> Buildings.Templates.Components.Types.Damper.None "Control bus"; Buildings.Fluid.Actuators.Dampers.Exponential exp( redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final dpDamper_nominal=dp_nominal, final dpFixed_nominal=dat.dpFixed_nominal, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final allowFlowReversal=allowFlowReversal, final show_T=show_T, final from_dp=from_dp, final linearized=linearized) if typ==Buildings.Templates.Components.Types.Damper.Modulating or typ==Buildings.Templates.Components.Types.Damper.TwoPosition "Damper with exponential characteristic"; Buildings.Fluid.Actuators.Dampers.PressureIndependent ind( redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final dpDamper_nominal=dp_nominal, final dpFixed_nominal=dat.dpFixed_nominal, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final allowFlowReversal=allowFlowReversal, final show_T=show_T, final from_dp=from_dp) if typ==Buildings.Templates.Components.Types.Damper.PressureIndependent "Pressure independent damper"; Buildings.Templates.Components.Routing.PassThroughFluid non( redeclare final package Medium = Medium) if typ==Buildings.Templates.Components.Types.Damper.None "No damper"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal y1(final realTrue=1, final realFalse=0) if typ == Buildings.Templates.Components.Types.Damper.TwoPosition "Two-position signal"; Modelica.Blocks.Routing.RealPassThrough y if typ == Buildings.Templates.Components.Types.Damper.Modulating or typ == Buildings.Templates.Components.Types.Damper.PressureIndependent "Modulating signal"; Buildings.Controls.OBC.CDL.Reals.LessThreshold y0_actual(t=0.01, h=0.5E-2) if typ == Buildings.Templates.Components.Types.Damper.TwoPosition "Closed end switch status"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold y1_actual(t=0.99, h=0.5E-2) if typ == Buildings.Templates.Components.Types.Damper.TwoPosition "Open end switch status"; Modelica.Blocks.Routing.RealPassThrough y_actual if typ == Buildings.Templates.Components.Types.Damper.Modulating or typ == Buildings.Templates.Components.Types.Damper.PressureIndependent "Position feedback"; equation /* Control point connection - start */ connect(y1.y, exp.y); connect(y.y, exp.y); connect(y_actual.u, exp.y_actual); connect(y0_actual.u, exp.y_actual); connect(y1_actual.u, exp.y_actual); connect(y1.y, ind.y); connect(y.y, ind.y); connect(y_actual.u, ind.y_actual); connect(y0_actual.u, ind.y_actual); connect(y1_actual.u, ind.y_actual); /* Control point connection - stop */ connect(port_a, non.port_a); connect(non.port_b, port_b); connect(port_a,exp. port_a); connect(exp.port_b, port_b); connect(port_a, ind.port_a); connect(ind.port_b, port_b); connect(bus.y1, y1.u); connect(bus.y, y.u); connect(bus.y_actual, y_actual.y); connect(bus.y0_actual, y0_actual.y); connect(bus.y1_actual, y1_actual.y); end Damper;

Buildings.Templates.Components.Actuators.Valve Buildings.Templates.Components.Actuators.Valve

Multiple-configuration valve

Buildings.Templates.Components.Actuators.Valve

Information

This is a container model that can be used to represent a variety of valves, with a variety of characteristics. The supported types of valve are described in the enumeration Buildings.Templates.Components.Types.Valve. The supported flow characteristics are described in the enumeration Buildings.Templates.Components.Types.ValveCharacteristicTwoWay for two-way valves, and in the enumeration Buildings.Templates.Components.Types.ValveCharacteristicThreeWay for three-way valves.

Control points

The following input and output points are available.

For modulating valves:

For two-position valves:

Model parameters

The design operating point is specified with an instance of Buildings.Templates.Components.Data.Valve.

The default characteristic is equal percentage (resp. equal percentage and linear) for modulating two-way valves (resp. modulating three-way valves). The default characteristic is linear for two-position actuators.

For three-way valves, the default setting for the ratio of the Kvs coefficient between the bypass branch and the direct branch is fraK=1.0, see Buildings.Fluid.HydronicConfigurations.UsersGuide.ControlValves for the rationale.

Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Valvedatdat(final typ=typ)Design and operating parameters
Nominal condition
MassFlowRatem_flow_nominaldat.m_flow_nominalNominal mass flow rate [kg/s]
Configuration
Valvetyp Equipment type
ValveCharacteristicTwoWaychaTwoif is_actMod then Buildings....Flow characteristic
ValveCharacteristicThreeWaychaThrif is_actMod then Buildings....Flow characteristic
GenericflowCharacteristicsflowCharacteristics(y={0,1},...Table with flow characteristics
GenericflowCharacteristics1flowCharacteristics1(y={0,1}...Table with flow characteristics for direct flow path at port_1
GenericflowCharacteristics3flowCharacteristics3(y={0,1}...Table with flow characteristics for bypass flow path at port_3
RealfraK1.0Fraction Kv(port_3&rarr;port_2)/Kv(port_1&rarr;port_2)
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Filtered opening
Booleanuse_inputFiltertrue= true, if opening is filtered with a 2nd order CriticalDamping filter
TimeriseTime120Rise time of the filter (time to reach 99.6 % of an opening step) [s]
InitinitModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
Realy_start1Initial position of actuator
Nominal condition
Timetau10Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Graphics
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
FluidPort_aportByp_aFluid connector with bypass line
BusbusControl bus

Modelica definition

model Valve "Multiple-configuration valve" extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( final m_flow_nominal=dat.m_flow_nominal); parameter Buildings.Templates.Components.Types.Valve typ "Equipment type"; // The following proxy parameters are not evaluated when used in Dialog(enable) // annotations with Dymola: explicit expressions are required. final parameter Boolean is_twoWay= typ==Buildings.Templates.Components.Types.Valve.TwoWayModulating or typ==Buildings.Templates.Components.Types.Valve.TwoWayTwoPosition "Evaluate to true in case of two-way valve"; final parameter Boolean is_thrWay= typ==Buildings.Templates.Components.Types.Valve.ThreeWayModulating or typ==Buildings.Templates.Components.Types.Valve.ThreeWayTwoPosition "Evaluate to true in case of three-way valve"; final parameter Boolean is_actTwo= typ==Buildings.Templates.Components.Types.Valve.TwoWayTwoPosition or typ==Buildings.Templates.Components.Types.Valve.ThreeWayTwoPosition "Evaluate to true in case of two-position actuator"; final parameter Boolean is_actMod= typ==Buildings.Templates.Components.Types.Valve.ThreeWayModulating or typ==Buildings.Templates.Components.Types.Valve.TwoWayModulating "Evaluate to true in case of modulating actuator"; parameter Buildings.Templates.Components.Types.ValveCharacteristicTwoWay chaTwo= if is_actMod then Buildings.Templates.Components.Types.ValveCharacteristicTwoWay.EqualPercentage else Buildings.Templates.Components.Types.ValveCharacteristicTwoWay.Linear "Flow characteristic"; parameter Buildings.Templates.Components.Types.ValveCharacteristicThreeWay chaThr= if is_actMod then Buildings.Templates.Components.Types.ValveCharacteristicThreeWay.EqualPercentageLinear else Buildings.Templates.Components.Types.ValveCharacteristicThreeWay.Linear "Flow characteristic"; replaceable parameter Buildings.Fluid.Actuators.Valves.Data.Generic flowCharacteristics( y={0,1}, phi={0.0001,1}) "Table with flow characteristics"; replaceable parameter Buildings.Fluid.Actuators.Valves.Data.Generic flowCharacteristics1( y={0,1}, phi={0.0001,1}) "Table with flow characteristics for direct flow path at port_1"; replaceable parameter Buildings.Fluid.Actuators.Valves.Data.Generic flowCharacteristics3( y={0,1}, phi={0.0001,1}) "Table with flow characteristics for bypass flow path at port_3"; parameter Real fraK(min=0, max=1) = 1.0 "Fraction Kv(port_3&rarr;port_2)/Kv(port_1&rarr;port_2)"; parameter Buildings.Templates.Components.Data.Valve dat(final typ=typ) "Design and operating parameters"; final parameter Modelica.Units.SI.PressureDifference dpValve_nominal= dat.dpValve_nominal "Nominal pressure drop of fully open valve"; final parameter Modelica.Units.SI.PressureDifference dpFixed_nominal= dat.dpFixed_nominal "Nominal pressure drop of pipes and other equipment in flow leg"; final parameter Modelica.Units.SI.PressureDifference dpFixedByp_nominal= dat.dpFixedByp_nominal "Nominal pressure drop in the bypass line"; parameter Boolean use_inputFilter=true "= true, if opening is filtered with a 2nd order CriticalDamping filter"; parameter Modelica.Units.SI.Time riseTime=120 "Rise time of the filter (time to reach 99.6 % of an opening step)"; parameter Modelica.Blocks.Types.Init init=Modelica.Blocks.Types.Init.InitialOutput "Type of initialization (no init/steady state/initial state/initial output)"; parameter Real y_start=1 "Initial position of actuator"; parameter Modelica.Units.SI.Time tau=10 "Time constant at nominal flow"; parameter Modelica.Fluid.Types.Dynamics energyDynamics= Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state"; parameter Boolean from_dp = false "= true, use m_flow = f(dp) else dp = f(m_flow)"; parameter Boolean linearized = false "= true, use linear relation between m_flow and dp for any flow rate"; parameter Integer text_rotation = 0 "Text rotation angle in icon layer"; parameter Boolean text_flip = false "True to flip text horizontally in icon layer"; Modelica.Fluid.Interfaces.FluidPort_a portByp_a( redeclare final package Medium = Medium, p(start=Medium.p_default), m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=Medium.h_default, nominal=Medium.h_default)) if typ==Buildings.Templates.Components.Types.Valve.ThreeWayTwoPosition or typ==Buildings.Templates.Components.Types.Valve.ThreeWayModulating "Fluid connector with bypass line"; Buildings.Templates.Components.Interfaces.Bus bus if typ<>Buildings.Templates.Components.Types.Valve.None "Control bus"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal y1( final realTrue=1, final realFalse=0) if is_actTwo "Two-position signal"; Modelica.Blocks.Routing.RealPassThrough y if is_actMod "Modulating signal"; Modelica.Blocks.Routing.RealPassThrough y_actual if is_actMod "Position feedback"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold y1_actual(t=0.99, h=0.5E-2) if is_actTwo "Open end switch status"; Buildings.Controls.OBC.CDL.Reals.LessThreshold y0_actual(t=0.01, h=0.5E-2) if is_actTwo "Closed end switch status"; Routing.PassThroughFluid non( redeclare final package Medium = Medium) if typ==Buildings.Templates.Components.Types.Valve.None "No valve"; Buildings.Fluid.Actuators.Valves.TwoWayEqualPercentage equ( redeclare final package Medium=Medium, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal=dpFixed_nominal, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final allowFlowReversal=allowFlowReversal, final show_T=show_T, final from_dp=from_dp, final linearized=linearized) if is_twoWay and chaTwo==Buildings.Templates.Components.Types.ValveCharacteristicTwoWay.EqualPercentage "Two-way valve with equal percentage characteristic"; Buildings.Fluid.Actuators.Valves.TwoWayLinear lin( redeclare final package Medium=Medium, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal=dpFixed_nominal, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final allowFlowReversal=allowFlowReversal, final show_T=show_T, final from_dp=from_dp, final linearized=linearized) if is_twoWay and chaTwo==Buildings.Templates.Components.Types.ValveCharacteristicTwoWay.Linear "Two-way valve with linear characteristic"; Buildings.Fluid.Actuators.Valves.TwoWayPressureIndependent ind( redeclare final package Medium=Medium, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal=dpFixed_nominal, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final allowFlowReversal=allowFlowReversal, final show_T=show_T, final from_dp=from_dp) if is_twoWay and chaTwo==Buildings.Templates.Components.Types.ValveCharacteristicTwoWay.PressureIndependent "Pressure independent two-way valve"; Buildings.Fluid.Actuators.Valves.TwoWayTable tab( redeclare final package Medium=Medium, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final flowCharacteristics=flowCharacteristics, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal=dpFixed_nominal, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final allowFlowReversal=allowFlowReversal, final show_T=show_T, final from_dp=from_dp, final linearized=linearized) if is_twoWay and chaTwo==Buildings.Templates.Components.Types.ValveCharacteristicTwoWay.Table "Pressure independent two-way valve"; Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear equLin( redeclare final package Medium=Medium, final fraK=fraK, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal={dpFixed_nominal, dpFixedByp_nominal}, final energyDynamics=energyDynamics, final tau=tau, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final portFlowDirection_1=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final portFlowDirection_2=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Leaving, final portFlowDirection_3=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final from_dp=from_dp, final linearized={linearized, linearized}) if is_thrWay and chaThr==Buildings.Templates.Components.Types.ValveCharacteristicThreeWay.EqualPercentageLinear "Three-way valve with equal percentage and linear characteristics"; Fluid.Actuators.Valves.ThreeWayLinear linLin( redeclare final package Medium = Medium, final fraK=fraK, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal={dpFixed_nominal,dpFixedByp_nominal}, final energyDynamics=energyDynamics, final tau=tau, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final portFlowDirection_1=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final portFlowDirection_2=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Leaving, final portFlowDirection_3=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final from_dp=from_dp, final linearized={linearized, linearized}) if is_thrWay and chaThr==Buildings.Templates.Components.Types.ValveCharacteristicThreeWay.Linear "Three-way valve with linear characteristics"; Fluid.Actuators.Valves.ThreeWayTable tabTab( redeclare final package Medium = Medium, final flowCharacteristics1=flowCharacteristics1, final flowCharacteristics3=flowCharacteristics3, final fraK=fraK, final CvData=Buildings.Fluid.Types.CvTypes.OpPoint, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValve_nominal, final dpFixed_nominal={dpFixed_nominal,dpFixedByp_nominal}, final energyDynamics=energyDynamics, final tau=tau, final use_inputFilter=use_inputFilter, final riseTime=riseTime, final init=init, final y_start=y_start, final portFlowDirection_1=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final portFlowDirection_2=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Leaving, final portFlowDirection_3=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final from_dp=from_dp, final linearized={linearized, linearized}) if is_thrWay and chaThr==Buildings.Templates.Components.Types.ValveCharacteristicThreeWay.Table "Three-way valve with table-specified characteristics"; equation /* Control point connection - start */ connect(y1.y, lin.y); connect(y.y, lin.y); connect(y_actual.u, lin.y_actual); connect(y0_actual.u, lin.y_actual); connect(y1_actual.u, lin.y_actual); connect(y1.y, equ.y); connect(y.y, equ.y); connect(y_actual.u, equ.y_actual); connect(y0_actual.u, equ.y_actual); connect(y1_actual.u, equ.y_actual); connect(y1.y, tab.y); connect(y.y, tab.y); connect(y_actual.u, tab.y_actual); connect(y0_actual.u, tab.y_actual); connect(y1_actual.u, tab.y_actual); connect(y1.y, ind.y); connect(y.y, ind.y); connect(y_actual.u, ind.y_actual); connect(y0_actual.u, ind.y_actual); connect(y1_actual.u, ind.y_actual); connect(y1.y, equLin.y); connect(y.y, equLin.y); connect(y_actual.u, equLin.y_actual); connect(y0_actual.u, equLin.y_actual); connect(y1_actual.u, equLin.y_actual); connect(y1.y, linLin.y); connect(y.y, linLin.y); connect(y_actual.u, linLin.y_actual); connect(y0_actual.u, linLin.y_actual); connect(y1_actual.u, linLin.y_actual); connect(y1.y, tabTab.y); connect(y.y, tabTab.y); connect(y_actual.u, tabTab.y_actual); connect(y0_actual.u, tabTab.y_actual); connect(y1_actual.u, tabTab.y_actual); /* Control point connection - stop */ connect(port_a, non.port_a); connect(non.port_b, port_b); connect(port_a, equ.port_a); connect(equ.port_b, port_b); connect(lin.port_b, port_b); connect(port_a, lin.port_a); connect(port_a, ind.port_a); connect(port_a, tab.port_a); connect(ind.port_b, port_b); connect(tab.port_b, port_b); connect(bus.y1, y1.u); connect(bus.y, y.u); connect(bus.y_actual, y_actual.y); connect(equLin.port_3, portByp_a); connect(port_a, equLin.port_1); connect(equLin.port_2, port_b); connect(bus.y0_actual, y0_actual.y); connect(bus.y1_actual, y1_actual.y); connect(tabTab.port_2, port_b); connect(tabTab.port_3, portByp_a); connect(port_a, tabTab.port_1); connect(port_a, linLin.port_1); connect(linLin.port_3, portByp_a); connect(linLin.port_2, port_b); end Valve;