Buildings.Fluid.HeatExchangers.ActiveBeams.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Fluid.HeatExchangers.ActiveBeams.

Note that most validation models contain simple input data which may not be realistic, but for which the correct output can be obtained through an analytic solution. The examples plot various outputs, which have been verified against these solutions. These model outputs are stored as reference data and used for continuous validation whenever models in the library change.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeams NumberOfBeams  
Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeamsDynamics NumberOfBeamsDynamics Validation model for the dynamic response for one and multiple beams

Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeams Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeams


Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeams

Information

This model validates the scaling of the heat tranfer and pressure drop for nBeams > 1.

It uses two instances of Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating, one with nBeams = 1 and one with nBeams = 10.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
IntegernBeams10Number of beams

Modelica definition

model NumberOfBeams extends Modelica.Icons.Example; package MediumA = Buildings.Media.Air "Medium model for air"; package MediumW = Buildings.Media.Water "Medium model for water"; parameter Integer nBeams(min=1) = 10 "Number of beams"; Buildings.Fluid.Sources.Boundary_pT sin_1( redeclare package Medium = MediumW, nPorts=2) "Sink for chilled water"; Buildings.Fluid.Sources.MassFlowSource_T souAir( redeclare package Medium = MediumA, use_m_flow_in=false, nPorts=1, m_flow=0.0792, T=285.85) "Source for air"; Buildings.Fluid.Sources.Boundary_pT sin_3( redeclare package Medium = MediumA, nPorts=2); Buildings.Fluid.Sources.Boundary_pT sou_1( redeclare package Medium = MediumW, nPorts=2, T=288.15) "Source for chilled water"; Buildings.Fluid.Movers.FlowControlled_m_flow pumHotWat( redeclare package Medium = MediumW, m_flow_nominal=0.094, addPowerToMedium=false, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, use_inputFilter=false, nominalValuesDefineDefaultPressureCurve=true) "Pump for hot water"; Buildings.Fluid.Sources.Boundary_pT sou_2( redeclare package Medium = MediumW, nPorts=2, T=320.95) "Source for hot water"; Buildings.Fluid.Sources.Boundary_pT sin_2( redeclare package Medium = MediumW, nPorts=2) "Sink for hot water"; Buildings.Fluid.Movers.FlowControlled_m_flow pumChiWat( redeclare package Medium = MediumW, m_flow_nominal=0.094, addPowerToMedium=false, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, use_inputFilter=false, nominalValuesDefineDefaultPressureCurve=true) "Pump for chilled water"; Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating beaCooHea( redeclare package MediumWat = MediumW, redeclare package MediumAir = MediumA, redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling perCoo, redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_heating perHea, nBeams=1, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState) "Active beam"; Buildings.HeatTransfer.Sources.PrescribedTemperature prescribedTemperature "Room temperature"; Buildings.Fluid.Sources.MassFlowSource_T souAir10( redeclare package Medium = MediumA, use_m_flow_in=false, nPorts=1, m_flow=0.0792*nBeams, T=285.85) "Source for air"; Buildings.Fluid.Movers.FlowControlled_m_flow pumHotWat10( redeclare package Medium = MediumW, addPowerToMedium=false, m_flow_nominal=0.094*nBeams, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, use_inputFilter=false, nominalValuesDefineDefaultPressureCurve=true) "Pump for hot water"; Buildings.Fluid.Movers.FlowControlled_m_flow pumChiWat10( redeclare package Medium = MediumW, addPowerToMedium=false, m_flow_nominal=0.094*nBeams, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, use_inputFilter=false, nominalValuesDefineDefaultPressureCurve=true) "Pump for chilled water"; Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating beaCooHea10( redeclare package MediumWat = MediumW, redeclare package MediumAir = MediumA, redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling perCoo, redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_heating perHea, nBeams=nBeams, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState) "Active beam"; Modelica.Blocks.Sources.Step step( height=-0.094, offset=0.094, startTime=2000) "Chilled water mass flow rate"; Modelica.Blocks.Sources.Step step1( height=0.094, startTime=3000) "Hot water mass flow rate"; Modelica.Blocks.Sources.Step step2( height=0.094*nBeams, startTime=3000) "Hot water mass flow rate"; Modelica.Blocks.Sources.Step step3( height=-0.094*nBeams, offset=0.094*nBeams, startTime=2000) "Chilled water mass flow rate"; Modelica.Blocks.Sources.Step step4( offset=273.15 + 25, height=-5, startTime=2500) "Room air temperature variation"; equation connect(sou_2.ports[1], pumHotWat.port_a); connect(pumChiWat.port_a, sou_1.ports[1]); connect(pumChiWat.port_b, beaCooHea.watCoo_a); connect(beaCooHea.watCoo_b, sin_1.ports[1]); connect(sin_2.ports[1], beaCooHea.watHea_b); connect(beaCooHea.watHea_a, pumHotWat.port_b); connect(souAir.ports[1], beaCooHea.air_a); connect(sin_3.ports[1], beaCooHea.air_b); connect(pumChiWat10.port_b, beaCooHea10.watCoo_a); connect(beaCooHea10.watHea_a, pumHotWat10.port_b); connect(souAir10.ports[1], beaCooHea10.air_a); connect(pumChiWat10.port_a, sou_1.ports[2]); connect(pumHotWat10.port_a, sou_2.ports[2]); connect(beaCooHea10.air_b, sin_3.ports[2]); connect(beaCooHea10.watCoo_b, sin_1.ports[2]); connect(beaCooHea10.watHea_b, sin_2.ports[2]); connect(step.y, pumChiWat.m_flow_in); connect(step1.y, pumHotWat.m_flow_in); connect(step3.y, pumChiWat10.m_flow_in); connect(step2.y, pumHotWat10.m_flow_in); connect(step4.y, prescribedTemperature.T); connect(prescribedTemperature.port, beaCooHea10.heaPor); connect(beaCooHea.heaPor, prescribedTemperature.port); end NumberOfBeams;

Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeamsDynamics Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeamsDynamics

Validation model for the dynamic response for one and multiple beams

Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeamsDynamics

Information

This model validates whether the transient response is indeed independent of the number of beams. The model is similar to Buildings.Fluid.HeatExchangers.ActiveBeams.Validation.NumberOfBeams, except that it is configured with a dynamic balance and non-default initial conditions.

Extends from NumberOfBeams.

Parameters

TypeNameDefaultDescription
IntegernBeams2Number of beams

Modelica definition

model NumberOfBeamsDynamics "Validation model for the dynamic response for one and multiple beams" extends NumberOfBeams( nBeams = 2, beaCooHea( energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, show_T=true, tau=120, TWatCoo_start=278.15, TWatHea_start=303.15), beaCooHea10( energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, show_T=true, tau=120, TWatCoo_start=278.15, TWatHea_start=303.15), step(startTime=200), step1(startTime=300), step3(startTime=200), step2(startTime=300)); end NumberOfBeamsDynamics;