From fecbf881f2061e1b3785366fce35cbf65845eb65 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Wed, 27 Mar 2024 15:49:13 +0100 Subject: [PATCH 01/34] Cooling tower first model --- .../MultiFluid/HeatExchangers/CoolingTower.mo | 105 ++++++++++++ .../HeatExchangers/CoolingTower2.mo | 150 ++++++++++++++++++ .../MultiFluid/HeatExchangers/package.order | 2 + .../MultiFluid/package.mo | 6 +- .../HeatExchangers/CoolingTower2_reverse.mo | 121 ++++++++++++++ .../Multifluid/HeatExchangers/package.order | 1 + .../Utilities/Units/Inputs/package.order | 2 + 7 files changed, 384 insertions(+), 3 deletions(-) create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo new file mode 100644 index 00000000..9f74c713 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo @@ -0,0 +1,105 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model CoolingTower + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + + //Inputs.InputArea S; + //Units.HeatExchangeCoefficient Kth; NEED TO INPUT MY PARAMETERS AND DEFINE THEM AS CONSTANTS WITH SET KNOWN VALUES + //Inputs.InputFrictionCoefficient Kfr_hot; + + Units.MassFlowRate Q_cold(start=Q_cold_0); + Units.MassFlowRate Q_hot(start=Q_hot_0); + + Units.Temperature T_cold_in(start=T_cold_in_0); + Units.Temperature T_cold_out(start=T_cold_out_0); + Units.Temperature T_hot_in(start=T_hot_in_0); + Units.Temperature T_hot_out(start=T_hot_out_0); + + Units.Temperature T1(start=T1_0); + Units.Temperature T2(start=T2_0); + Units.Temperature T3(start=T3_0); + Units.Temperature T4(start=T4_0); + + Units.SpecificEnthalpy i_initial; + Units.SpecificEnthalpy i1; + Units.SpecificEnthalpy i2; + Units.SpecificEnthalpy i3; + Units.SpecificEnthalpy i4; + Units.SpecificEnthalpy iTot; + + Units.HeatCapacity cp; + + Units.Pressure Psat; + //Units.Pressure P_tot(start=Psat_0, nominal=Psat_0); + Units.Temperature Tsat; + + constant Real R(unit="J/(mol.K)") = Modelica.Constants.R "ideal gas constant"; + + // Initialization Parameters + parameter Units.MassFlowRate Q_cold_0 = 1800*1.292; + parameter Units.MassFlowRate Q_hot_0 = 21; + + parameter Units.Temperature T_cold_in_0 = 15 + 273.15; + parameter Units.Temperature T_cold_out_0 = 30 + 273.15; + parameter Units.Temperature T_hot_in_0 = 40 + 273.15; + parameter Units.Temperature T_hot_out_0 = 20 + 273.15; + + parameter Units.Temperature T1_0 = 15 + 273.15; + parameter Units.Temperature T2_0 = 20 + 273.15; + parameter Units.Temperature T3_0 = 25 + 273.15; + parameter Units.Temperature T4_0 = 30 + 273.15; + + //Need to initialize the enthalpies ? + + //parameter Units.SpecificEnthalpy h_liq_sat_0 = Water.bubbleEnthalpy(Water.setSat_p(Psat_0)); + + //parameter Units.Temperature Tsat = Water.saturationTemperature(Psat); + WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); + WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); + MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); + WaterSteam.BaseClasses.IsoPFlowModel hot_side_condensing annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + WaterSteam.BaseClasses.IsoPFlowModel cold_side_condensing annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,38}))); +equation + // Definition + Q_hot = hot_side_condensing.Q; + Q_cold = cold_side_condensing.Q; + + T_hot_in = hot_side_condensing.T_in; + T_hot_out = hot_side_condensing.T_out; + T_cold_in = cold_side_condensing.T_in; + T_cold_out = Tsat; + + // Energy Balance - Supplementary Equation + Q_hot * cp * (T_hot_in - T_hot_out) - Q_cold * (h_pTX(1, T_hot_in, 1) - h_pTX(1, T_hot_out, 1)) = 0; + + // Saturation + Tsat = Water.saturationTemperature(Psat); + + // Tchebyshev Integral + T1 = T_hot_out + 0.1 * (T_hot_in - T_hot_out); + T2 = T_hot_out + 0.4 * (T_hot_in - T_hot_out); + T3 = T_hot_out + 0.6 * (T_hot_in - T_hot_out); + T4 = T_hot_out + 0.9 * (T_hot_in - T_hot_out); + + i_initial = h_pTX(1, 273.15 + 15, 1); //Initial Specific Enthalpy of Moist Air at Inlet + i1 = h_pTX(1, T1, 1) - ((i_initial + 0.1 * (h_pTX(1, T_cold_out, 1) - i_initial))); //First integral section + i2 = h_pTX(1, T2, 1) - ((i_initial + 0.4 * (h_pTX(1, T_cold_out, 1) - i_initial))); + i3 = h_pTX(1, T3, 1) - ((i_initial + 0.6 * (h_pTX(1, T_cold_out, 1) - i_initial))); + i4 = h_pTX(1, T4, 1) - ((i_initial + 0.9 * (h_pTX(1, T_cold_out, 1) - i_initial))); + iTot = 1 / i1 + 1 / i2 + 1 / i3 + 1 / i4; //Sum of the inverse enthalpy differences + + // Heat Exchange - Merkel + // (need to input variables)/Q_hot = cp * iTot * (T_hot_in - T_hot_out)/4 + connect(C_hot_in, hot_side_condensing.C_in) annotation (Line(points={{-90,0},{-50,0}}, color={28,108,200})); + connect(hot_side_condensing.C_out, C_hot_out) annotation (Line(points={{-30,0},{90,0}}, color={28,108,200})); + connect(C_cold_in, cold_side_condensing.C_in) annotation (Line(points={{0,90},{0,69},{1.77636e-15,69},{1.77636e-15,48}}, color={85,170,255})); + connect(cold_side_condensing.C_out, C_cold_out) annotation (Line(points={{-1.77636e-15,28},{-1.77636e-15,-31},{0,-31},{0,-90}}, color={28,108,200})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(preserveAspectRatio=false))); +end CoolingTower; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo new file mode 100644 index 00000000..9bf213e1 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo @@ -0,0 +1,150 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model CoolingTower2 + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + Inputs.InputArea Afr; + Inputs.InputReal hd; + Inputs.InputReal Lfi; + Inputs.InputReal afi; + Inputs.InputReal Vd; + Inputs.InputFrictionCoefficient Cf; + + Units.MassFlowRate Q_cold; //REMOVED THE INITIALIZATION VALUES + Units.MassFlowRate Q_hot; + + Units.MassFlowRate Q_makeup; + + Units.Temperature T_cold_in(start=T_cold_in_0); + Units.Temperature T_cold_out(start=T_cold_out_0); + Units.Temperature T_hot_in(start=T_hot_in_0); + Units.Temperature T_hot_out(start=T_hot_out_0); + + Units.Temperature T1(start=T1_0); + Units.Temperature T2(start=T2_0); + Units.Temperature T3(start=T3_0); + Units.Temperature T4(start=T4_0); + + Units.Power W; + + Units.SpecificEnthalpy i_initial(start=i_initial_0); + Units.SpecificEnthalpy i_final(start=i_final_0); + Units.SpecificEnthalpy i1(start=i1_0); + Units.SpecificEnthalpy i2(start=i2_0); + Units.SpecificEnthalpy i3(start=i3_0); + Units.SpecificEnthalpy i4(start=i4_0); + Units.SpecificEnthalpy iTot(start=iTot_0); + + Units.Density d_air_initial(start=d_air_initial_0); + Units.Density d_air_final(start=d_air_final_0); + + Units.HeatCapacity cp; + Units.Pressure P_in; + Units.Pressure P_out; + + constant Real R(unit="J/(mol.K)") = Modelica.Constants.R "ideal gas constant"; + constant Real g(unit="m/s2") = Modelica.Constants.g_n; + + // Initialization Parameters + + parameter Units.Temperature T_cold_in_0 = 15 + 273.15; + parameter Units.Temperature T_cold_out_0 = 25 + 273.15; + parameter Units.Temperature T_hot_in_0 = 40 + 273.15; + parameter Units.Temperature T_hot_out_0 = 20 + 273.15; + + parameter Units.Temperature T1_0 = 15 + 273.15; + parameter Units.Temperature T2_0 = 18 + 273.15; + parameter Units.Temperature T3_0 = 22 + 273.15; + parameter Units.Temperature T4_0 = 25 + 273.15; + + parameter Units.SpecificEnthalpy i_initial_0 = 0.5e5; + parameter Units.SpecificEnthalpy i_final_0 = 1.05e5; + parameter Units.SpecificEnthalpy i1_0 = 0.65e5; + parameter Units.SpecificEnthalpy i2_0 = 0.8e5; + parameter Units.SpecificEnthalpy i3_0 = 0.9e5; + parameter Units.SpecificEnthalpy i4_0 = 1e5; + parameter Units.SpecificEnthalpy iTot_0 = (1 / (2e5)); + + parameter Units.Density d_air_initial_0 = 1.2754; + parameter Units.Density d_air_final_0 = 1.2460; + + MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); + MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); + MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,24}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-38}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,52}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-60}))); +equation + // Definition + //Q_cold = Air_inlet.Q_in; //REMOVED THIS + //Q_hot = hot_side_cooling.Q; + + T_hot_in = hot_side_cooling.T_in; + T_hot_out = hot_side_cooling.T_out; + P_in = Air_inlet.P_in; + P_out = Air_outlet.P_out; + T_cold_in = Air_inlet.T_in; + T_cold_out = Air_outlet.T_out; + + cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); + W = Q_hot * cp * (T_hot_in - T_hot_out); + Q_makeup = -(Air_outlet.Q_out + Air_inlet.Q_in); + + // Energy Balance - Supplementary Equation + Q_hot * cp * (T_hot_in - T_hot_out) + Q_cold * (i_initial - i_final) = 0; + + // Tchebyshev Integral + T1 = T_hot_out + 0.1 * (T_hot_in - T_hot_out); + T2 = T_hot_out + 0.4 * (T_hot_in - T_hot_out); + T3 = T_hot_out + 0.6 * (T_hot_in - T_hot_out); + T4 = T_hot_out + 0.9 * (T_hot_in - T_hot_out); + + i_initial = Air_inlet.h_in; + i_final = Air_outlet.h_out; + + Air_outlet.relative_humidity = 1; + Air_outlet.Q_out * (1 - Air_outlet.Xi_out[1]) = - Air_inlet.Q_in *(1 - Air_inlet.Xi_in[1]); + Air_outlet.P_out = Air_inlet.P_in; + + i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section + i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); + i3 = MoistAir.h_pTX(P_in, T3, {MoistAir.massFraction_pTphi(P_in, T3, 1)}) - ((i_initial + 0.6 * (i_final - i_initial))); + i4 = MoistAir.h_pTX(P_in, T4, {MoistAir.massFraction_pTphi(P_in, T4, 1)}) - ((i_initial + 0.9 * (i_final - i_initial))); + iTot = 1 / i1 + 1 / i2 + 1 / i3 + 1 / i4; + + // Heat Exchange - Merkel + (Afr * hd * afi * Lfi) / Q_hot = cp * iTot * ((T_hot_in - T_hot_out) / 4); + + // Drift Equation + d_air_initial = inputflowmodel.rho_in; + d_air_final = outputflowmodel.rho_in; + + 0.25 * (d_air_initial - d_air_final) * Vd * Vd * Cf - ((d_air_initial - d_air_final) * g * Lfi) = 0; + Q_cold - (Vd * Afr * d_air_initial * (1 - Air_outlet.Xi_out[1])) = 0; + connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-50,0}}, color={28,108,200})); + connect(hot_side_cooling.C_out, C_hot_out) annotation (Line(points={{-30,0},{90,0}}, color={28,108,200})); + connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{-1.77636e-15,42},{-1.77636e-15,35.5},{8.88178e-16,35.5},{8.88178e-16,29}}, color={85,170,255})); + connect(inputflowmodel.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,62},{1.77636e-15,76},{0,76},{0,90}}, color={85,170,255})); + connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{-8.88178e-16,-43},{-8.88178e-16,-46.5},{1.77636e-15,-46.5},{1.77636e-15,-50}}, color={85,170,255})); + connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{-1.77636e-15,-70},{-1.77636e-15,-80},{0,-80},{0,-90}}, color={85,170,255})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(preserveAspectRatio=false))); +end CoolingTower2; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 5b632af7..10164afc 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -6,3 +6,5 @@ LMTDFuelHeater HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser +CoolingTower +CoolingTower2 diff --git a/MetroscopeModelingLibrary/MultiFluid/package.mo b/MetroscopeModelingLibrary/MultiFluid/package.mo index 17a75c5b..ace52e25 100644 --- a/MetroscopeModelingLibrary/MultiFluid/package.mo +++ b/MetroscopeModelingLibrary/MultiFluid/package.mo @@ -1,6 +1,7 @@ within MetroscopeModelingLibrary; package MultiFluid + annotation (Icon(graphics={ Rectangle( lineColor={200,200,200}, @@ -38,9 +39,8 @@ package MultiFluid points={{-52,38},{-52,38}}, lineColor={28,108,200}, fillColor={28,108,200}, - fillPattern=FillPattern.Solid)})); - -annotation(Documentation(info=" + fillPattern=FillPattern.Solid)}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo new file mode 100644 index 00000000..eb011247 --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo @@ -0,0 +1,121 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTower2_reverse + import MetroscopeModelingLibrary.Utilities.Units; + + // Boundary Conditions + // Hot Water Inlet + input Real waterInletTemp(start=45) "deg_C"; + input Units.PositiveMassFlowRate waterFlow(start=12.5) "m3/s"; + input Real waterInletPress(start=1) "bar"; + + // Cold Air Inlet + input Real airInletPress(start=1) "bar"; + input Real AirInletTemp(start=20) "deg_C"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + input Real airFlow(start=440) "m3/s"; + + // Hot Water Outlet + + // Cold Air Outlet + output Units.Fraction cold_sink_relative_humidity(start=1) "1"; + input Real AirOutletTemp(start=28); + + // Calibrated Parameters + output Real hd; + output Real Cf; + + // Parameters + parameter Real Lfi = 15 "m"; + parameter Real afi = 200 "m-1"; + parameter Real Afr = 3000 "m2"; + parameter Real Vd = 7.5 "m/s"; + + output Real Q_makeup; + //output Real Q_cold; + //input Real Q_hot(start=12.5); + + // Sensors for Calibration + input Real WaterOutletTemp(start=32) "deg_C"; + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTower2 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,90}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-80}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,66}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-102,-10},{-82,10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-56}))); + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airFlow_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,36}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,8}))); +equation + // Hot Water Inlet + waterFlow_sensor.Qv = waterFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + + // Cold Air Inlet + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airFlow_sensor.Qv = airFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + + // Hot Water Outlet + + // Cold Air Outlet + cold_sink.relative_humidity = cold_sink_relative_humidity; + + // Calibrated Parameters + CoolingTower.hd = hd; + CoolingTower.Cf = Cf; + + CoolingTower.Q_makeup = Q_makeup; + //CoolingTower.Q_cold = Q_cold; + + // Parameters + CoolingTower.Lfi = Lfi; + CoolingTower.afi = afi; + CoolingTower.Afr = Afr; + CoolingTower.Vd = Vd; + + // Observable for Calibration + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + color={28,108,200})); + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9,-20},{24,-20},{24,0},{30,0}}, + color={28,108,200})); + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, + color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); + connect(CoolingTower.C_cold_out, AirOutletTemp_sensor.C_in) annotation (Line(points={{0,-29},{0,-37.5},{1.77636e-15,-37.5},{1.77636e-15,-46}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-66},{-1.77636e-15,-70.5},{8.88178e-16,-70.5},{8.88178e-16,-75}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{-1.77636e-15,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); +end CoolingTower2_reverse; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 97d125d6..e0ae5225 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -18,3 +18,4 @@ AirCooledCondenser_with_subcooling_faulty AirCooledCondenser_reverse AirCooledCondenser_direct AirCooledCondenser_faulty +CoolingTower2_reverse diff --git a/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order b/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order index a3cb8c75..a1f23352 100644 --- a/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order +++ b/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order @@ -27,3 +27,5 @@ InputPositiveVolumeFlowRate InputNegativeVolumeFlowRate InputTemperature InputYield +InputMassTransferCoefficient +InputSurfaceAreaperVolume From 09c362f708824ffe70a8fbbe203f7d083cc80964 Mon Sep 17 00:00:00 2001 From: postorino Date: Wed, 27 Mar 2024 18:39:59 +0100 Subject: [PATCH 02/34] Correct air pressure --- .../HeatExchangers/CoolingTower2.mo | 25 ++-- .../MultiFluid/package.mo | 2 +- .../HeatExchangers/CoolingTower2_reverse.mo | 24 ++-- .../HeatExchangers/CoolingTower_direct.mo | 119 ++++++++++++++++++ .../Multifluid/HeatExchangers/package.order | 1 + MetroscopeModelingLibrary/Tests/package.mo | 7 +- MetroscopeModelingLibrary/package.mo | 2 +- 7 files changed, 148 insertions(+), 32 deletions(-) create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo index 9bf213e1..8e6aafd7 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo @@ -16,7 +16,6 @@ model CoolingTower2 Units.MassFlowRate Q_cold; //REMOVED THE INITIALIZATION VALUES Units.MassFlowRate Q_hot; - Units.MassFlowRate Q_makeup; Units.Temperature T_cold_in(start=T_cold_in_0); @@ -39,14 +38,13 @@ model CoolingTower2 Units.SpecificEnthalpy i4(start=i4_0); Units.SpecificEnthalpy iTot(start=iTot_0); - Units.Density d_air_initial(start=d_air_initial_0); - Units.Density d_air_final(start=d_air_final_0); + Units.Density rho_air_inlet(start=rho_air_inlet_0); + Units.Density rho_air_outlet(start=rho_air_outlet_0); Units.HeatCapacity cp; Units.Pressure P_in; Units.Pressure P_out; - constant Real R(unit="J/(mol.K)") = Modelica.Constants.R "ideal gas constant"; constant Real g(unit="m/s2") = Modelica.Constants.g_n; // Initialization Parameters @@ -69,8 +67,8 @@ model CoolingTower2 parameter Units.SpecificEnthalpy i4_0 = 1e5; parameter Units.SpecificEnthalpy iTot_0 = (1 / (2e5)); - parameter Units.Density d_air_initial_0 = 1.2754; - parameter Units.Density d_air_final_0 = 1.2460; + parameter Units.Density rho_air_inlet_0 = 1.2754; + parameter Units.Density rho_air_outlet_0 = 1.2460; MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); @@ -95,8 +93,8 @@ model CoolingTower2 origin={0,-60}))); equation // Definition - //Q_cold = Air_inlet.Q_in; //REMOVED THIS - //Q_hot = hot_side_cooling.Q; + Q_cold = Air_inlet.Q_in; + Q_hot = hot_side_cooling.Q; T_hot_in = hot_side_cooling.T_in; T_hot_out = hot_side_cooling.T_out; @@ -107,7 +105,7 @@ equation cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); W = Q_hot * cp * (T_hot_in - T_hot_out); - Q_makeup = -(Air_outlet.Q_out + Air_inlet.Q_in); + Q_makeup = - (Air_outlet.Q_out + Air_inlet.Q_in); // Energy Balance - Supplementary Equation Q_hot * cp * (T_hot_in - T_hot_out) + Q_cold * (i_initial - i_final) = 0; @@ -135,11 +133,12 @@ equation (Afr * hd * afi * Lfi) / Q_hot = cp * iTot * ((T_hot_in - T_hot_out) / 4); // Drift Equation - d_air_initial = inputflowmodel.rho_in; - d_air_final = outputflowmodel.rho_in; + rho_air_inlet = inputflowmodel.rho_in; + rho_air_outlet = outputflowmodel.rho_out; + + 0.25 * (rho_air_inlet - rho_air_outlet) * Vd * Vd * Cf - ((rho_air_inlet - rho_air_outlet) * g * Lfi) = 0; + Q_cold - (Vd * Afr * rho_air_inlet * (1 - Air_outlet.Xi_out[1])) = 0; - 0.25 * (d_air_initial - d_air_final) * Vd * Vd * Cf - ((d_air_initial - d_air_final) * g * Lfi) = 0; - Q_cold - (Vd * Afr * d_air_initial * (1 - Air_outlet.Xi_out[1])) = 0; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-50,0}}, color={28,108,200})); connect(hot_side_cooling.C_out, C_hot_out) annotation (Line(points={{-30,0},{90,0}}, color={28,108,200})); connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{-1.77636e-15,42},{-1.77636e-15,35.5},{8.88178e-16,35.5},{8.88178e-16,29}}, color={85,170,255})); diff --git a/MetroscopeModelingLibrary/MultiFluid/package.mo b/MetroscopeModelingLibrary/MultiFluid/package.mo index ace52e25..d35747cc 100644 --- a/MetroscopeModelingLibrary/MultiFluid/package.mo +++ b/MetroscopeModelingLibrary/MultiFluid/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package MultiFluid diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo index eb011247..9d0382ae 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo @@ -3,22 +3,19 @@ model CoolingTower2_reverse import MetroscopeModelingLibrary.Utilities.Units; // Boundary Conditions - // Hot Water Inlet + // Hot Water Inlet input Real waterInletTemp(start=45) "deg_C"; - input Units.PositiveMassFlowRate waterFlow(start=12.5) "m3/s"; + input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; - // Cold Air Inlet + // Cold Air Inlet input Real airInletPress(start=1) "bar"; input Real AirInletTemp(start=20) "deg_C"; input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; - input Real airFlow(start=440) "m3/s"; - // Hot Water Outlet - - // Cold Air Outlet - output Units.Fraction cold_sink_relative_humidity(start=1) "1"; - input Real AirOutletTemp(start=28); + // Input for calibration + input Real AirOutletTemp(start=35) "deg_C"; + input Real WaterOutletTemp(start=25) "deg_C"; // Calibrated Parameters output Real hd; @@ -30,12 +27,12 @@ model CoolingTower2_reverse parameter Real Afr = 3000 "m2"; parameter Real Vd = 7.5 "m/s"; + // Observables + output Real airFlow(start=440) "m3/s"; output Real Q_makeup; - //output Real Q_cold; - //input Real Q_hot(start=12.5); - // Sensors for Calibration - input Real WaterOutletTemp(start=32) "deg_C"; + // Output + output Units.Fraction cold_sink_relative_humidity(start=1) "1"; MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); @@ -101,6 +98,7 @@ equation // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, color={28,108,200})); diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo new file mode 100644 index 00000000..6fbc5871 --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -0,0 +1,119 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTower_direct + import MetroscopeModelingLibrary.Utilities.Units; + + // Boundary Conditions + // Hot Water Inlet + input Real waterInletTemp(start=45) "deg_C"; + input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; + input Real waterInletPress(start=1) "bar"; + + // Cold Air Inlet + input Real airInletPress(start=1) "bar"; + input Real AirInletTemp(start=20) "deg_C"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + + // Input for calibration + output Real AirOutletTemp(start=35) "deg_C"; + output Real WaterOutletTemp(start=25) "deg_C"; + + // Calibrated Parameters + parameter Real hd = 0.023336338; + parameter Real Cf = 10.460426; + + // Parameters + parameter Real Lfi = 15 "m"; + parameter Real afi = 200 "m-1"; + parameter Real Afr = 3000 "m2"; + parameter Real Vd = 7.5 "m/s"; + + // Observables + output Real airFlow(start=440) "m3/s"; + output Real Q_makeup; + + // Output + output Units.Fraction cold_sink_relative_humidity(start=1) "1"; + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTower2 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,90}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-80}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,66}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-102,-10},{-82,10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-56}))); + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airFlow_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,36}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,8}))); +equation + // Hot Water Inlet + waterFlow_sensor.Qv = waterFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + + // Cold Air Inlet + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airFlow_sensor.Qv = airFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + + // Hot Water Outlet + + // Cold Air Outlet + cold_sink.relative_humidity = cold_sink_relative_humidity; + + // Calibrated Parameters + CoolingTower.hd = hd; + CoolingTower.Cf = Cf; + + CoolingTower.Q_makeup = Q_makeup; + //CoolingTower.Q_cold = Q_cold; + + // Parameters + CoolingTower.Lfi = Lfi; + CoolingTower.afi = afi; + CoolingTower.Afr = Afr; + CoolingTower.Vd = Vd; + + // Observable for Calibration + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; + + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + color={28,108,200})); + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9,-20},{24,-20},{24,0},{30,0}}, + color={28,108,200})); + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, + color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); + connect(CoolingTower.C_cold_out, AirOutletTemp_sensor.C_in) annotation (Line(points={{0,-29},{0,-37.5},{1.77636e-15,-37.5},{1.77636e-15,-46}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-66},{-1.77636e-15,-70.5},{8.88178e-16,-70.5},{8.88178e-16,-75}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{-1.77636e-15,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); +end CoolingTower_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index e0ae5225..8266d9ef 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -19,3 +19,4 @@ AirCooledCondenser_reverse AirCooledCondenser_direct AirCooledCondenser_faulty CoolingTower2_reverse +CoolingTower_direct diff --git a/MetroscopeModelingLibrary/Tests/package.mo b/MetroscopeModelingLibrary/Tests/package.mo index aa25796b..4416789a 100644 --- a/MetroscopeModelingLibrary/Tests/package.mo +++ b/MetroscopeModelingLibrary/Tests/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Tests annotation (Icon(graphics={ @@ -18,9 +18,8 @@ package Tests fillColor={78,138,73}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})})); - -annotation(Documentation(info=" + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/package.mo b/MetroscopeModelingLibrary/package.mo index dae092d8..2bf34375 100644 --- a/MetroscopeModelingLibrary/package.mo +++ b/MetroscopeModelingLibrary/package.mo @@ -1,4 +1,4 @@ -package MetroscopeModelingLibrary +package MetroscopeModelingLibrary From 8f0cb6413e3f60943a7a976e226170d21d6d89b1 Mon Sep 17 00:00:00 2001 From: postorino Date: Thu, 28 Mar 2024 13:08:04 +0100 Subject: [PATCH 03/34] Update --- .../MultiFluid/HeatExchangers/CoolingTower.mo | 105 ------------------ .../HeatExchangers/CoolingTower2.mo | 37 +++--- .../MultiFluid/HeatExchangers/package.order | 1 - .../HeatExchangers/CoolingTower_direct.mo | 40 ++++--- ...er2_reverse.mo => CoolingTower_reverse.mo} | 39 ++++--- .../Multifluid/HeatExchangers/package.order | 2 +- 6 files changed, 75 insertions(+), 149 deletions(-) delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo rename MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/{CoolingTower2_reverse.mo => CoolingTower_reverse.mo} (81%) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo deleted file mode 100644 index 9f74c713..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower.mo +++ /dev/null @@ -1,105 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model CoolingTower - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - - //Inputs.InputArea S; - //Units.HeatExchangeCoefficient Kth; NEED TO INPUT MY PARAMETERS AND DEFINE THEM AS CONSTANTS WITH SET KNOWN VALUES - //Inputs.InputFrictionCoefficient Kfr_hot; - - Units.MassFlowRate Q_cold(start=Q_cold_0); - Units.MassFlowRate Q_hot(start=Q_hot_0); - - Units.Temperature T_cold_in(start=T_cold_in_0); - Units.Temperature T_cold_out(start=T_cold_out_0); - Units.Temperature T_hot_in(start=T_hot_in_0); - Units.Temperature T_hot_out(start=T_hot_out_0); - - Units.Temperature T1(start=T1_0); - Units.Temperature T2(start=T2_0); - Units.Temperature T3(start=T3_0); - Units.Temperature T4(start=T4_0); - - Units.SpecificEnthalpy i_initial; - Units.SpecificEnthalpy i1; - Units.SpecificEnthalpy i2; - Units.SpecificEnthalpy i3; - Units.SpecificEnthalpy i4; - Units.SpecificEnthalpy iTot; - - Units.HeatCapacity cp; - - Units.Pressure Psat; - //Units.Pressure P_tot(start=Psat_0, nominal=Psat_0); - Units.Temperature Tsat; - - constant Real R(unit="J/(mol.K)") = Modelica.Constants.R "ideal gas constant"; - - // Initialization Parameters - parameter Units.MassFlowRate Q_cold_0 = 1800*1.292; - parameter Units.MassFlowRate Q_hot_0 = 21; - - parameter Units.Temperature T_cold_in_0 = 15 + 273.15; - parameter Units.Temperature T_cold_out_0 = 30 + 273.15; - parameter Units.Temperature T_hot_in_0 = 40 + 273.15; - parameter Units.Temperature T_hot_out_0 = 20 + 273.15; - - parameter Units.Temperature T1_0 = 15 + 273.15; - parameter Units.Temperature T2_0 = 20 + 273.15; - parameter Units.Temperature T3_0 = 25 + 273.15; - parameter Units.Temperature T4_0 = 30 + 273.15; - - //Need to initialize the enthalpies ? - - //parameter Units.SpecificEnthalpy h_liq_sat_0 = Water.bubbleEnthalpy(Water.setSat_p(Psat_0)); - - //parameter Units.Temperature Tsat = Water.saturationTemperature(Psat); - WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); - WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); - MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); - MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); - WaterSteam.BaseClasses.IsoPFlowModel hot_side_condensing annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); - WaterSteam.BaseClasses.IsoPFlowModel cold_side_condensing annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,38}))); -equation - // Definition - Q_hot = hot_side_condensing.Q; - Q_cold = cold_side_condensing.Q; - - T_hot_in = hot_side_condensing.T_in; - T_hot_out = hot_side_condensing.T_out; - T_cold_in = cold_side_condensing.T_in; - T_cold_out = Tsat; - - // Energy Balance - Supplementary Equation - Q_hot * cp * (T_hot_in - T_hot_out) - Q_cold * (h_pTX(1, T_hot_in, 1) - h_pTX(1, T_hot_out, 1)) = 0; - - // Saturation - Tsat = Water.saturationTemperature(Psat); - - // Tchebyshev Integral - T1 = T_hot_out + 0.1 * (T_hot_in - T_hot_out); - T2 = T_hot_out + 0.4 * (T_hot_in - T_hot_out); - T3 = T_hot_out + 0.6 * (T_hot_in - T_hot_out); - T4 = T_hot_out + 0.9 * (T_hot_in - T_hot_out); - - i_initial = h_pTX(1, 273.15 + 15, 1); //Initial Specific Enthalpy of Moist Air at Inlet - i1 = h_pTX(1, T1, 1) - ((i_initial + 0.1 * (h_pTX(1, T_cold_out, 1) - i_initial))); //First integral section - i2 = h_pTX(1, T2, 1) - ((i_initial + 0.4 * (h_pTX(1, T_cold_out, 1) - i_initial))); - i3 = h_pTX(1, T3, 1) - ((i_initial + 0.6 * (h_pTX(1, T_cold_out, 1) - i_initial))); - i4 = h_pTX(1, T4, 1) - ((i_initial + 0.9 * (h_pTX(1, T_cold_out, 1) - i_initial))); - iTot = 1 / i1 + 1 / i2 + 1 / i3 + 1 / i4; //Sum of the inverse enthalpy differences - - // Heat Exchange - Merkel - // (need to input variables)/Q_hot = cp * iTot * (T_hot_in - T_hot_out)/4 - connect(C_hot_in, hot_side_condensing.C_in) annotation (Line(points={{-90,0},{-50,0}}, color={28,108,200})); - connect(hot_side_condensing.C_out, C_hot_out) annotation (Line(points={{-30,0},{90,0}}, color={28,108,200})); - connect(C_cold_in, cold_side_condensing.C_in) annotation (Line(points={{0,90},{0,69},{1.77636e-15,69},{1.77636e-15,48}}, color={85,170,255})); - connect(cold_side_condensing.C_out, C_cold_out) annotation (Line(points={{-1.77636e-15,28},{-1.77636e-15,-31},{0,-31},{0,-90}}, color={28,108,200})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(preserveAspectRatio=false))); -end CoolingTower; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo index 8e6aafd7..b5515a84 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo @@ -11,8 +11,8 @@ model CoolingTower2 Inputs.InputReal hd; Inputs.InputReal Lfi; Inputs.InputReal afi; - Inputs.InputReal Vd; - Inputs.InputFrictionCoefficient Cf; + Units.Velocity V_inlet; + Inputs.InputFrictionCoefficient Kfr; Units.MassFlowRate Q_cold; //REMOVED THE INITIALIZATION VALUES Units.MassFlowRate Q_hot; @@ -78,19 +78,23 @@ model CoolingTower2 MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,24}))); + origin={0,10}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-38}))); + origin={0,-12}))); MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,52}))); + origin={0,36}))); MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-60}))); + origin={0,-32}))); + MetroscopeModelingLibrary.MoistAir.Pipes.Pipe pipe annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,62}))); equation // Definition Q_cold = Air_inlet.Q_in; @@ -105,6 +109,7 @@ equation cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); W = Q_hot * cp * (T_hot_in - T_hot_out); + Q_makeup = - (Air_outlet.Q_out + Air_inlet.Q_in); // Energy Balance - Supplementary Equation @@ -121,7 +126,6 @@ equation Air_outlet.relative_humidity = 1; Air_outlet.Q_out * (1 - Air_outlet.Xi_out[1]) = - Air_inlet.Q_in *(1 - Air_inlet.Xi_in[1]); - Air_outlet.P_out = Air_inlet.P_in; i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); @@ -136,14 +140,21 @@ equation rho_air_inlet = inputflowmodel.rho_in; rho_air_outlet = outputflowmodel.rho_out; - 0.25 * (rho_air_inlet - rho_air_outlet) * Vd * Vd * Cf - ((rho_air_inlet - rho_air_outlet) * g * Lfi) = 0; - Q_cold - (Vd * Afr * rho_air_inlet * (1 - Air_outlet.Xi_out[1])) = 0; + (P_in - P_out) = 0; + + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; + + Q_cold = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + + pipe.Kfr = Kfr; + pipe.delta_z =0; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-50,0}}, color={28,108,200})); connect(hot_side_cooling.C_out, C_hot_out) annotation (Line(points={{-30,0},{90,0}}, color={28,108,200})); - connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{-1.77636e-15,42},{-1.77636e-15,35.5},{8.88178e-16,35.5},{8.88178e-16,29}}, color={85,170,255})); - connect(inputflowmodel.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,62},{1.77636e-15,76},{0,76},{0,90}}, color={85,170,255})); - connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{-8.88178e-16,-43},{-8.88178e-16,-46.5},{1.77636e-15,-46.5},{1.77636e-15,-50}}, color={85,170,255})); - connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{-1.77636e-15,-70},{-1.77636e-15,-80},{0,-80},{0,-90}}, color={85,170,255})); + connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,20.5},{8.88178e-16,20.5},{8.88178e-16,15}}, color={85,170,255})); + connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{-8.88178e-16,-17},{-8.88178e-16,-19.5},{1.77636e-15,-19.5},{1.77636e-15,-22}}, color={85,170,255})); + connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{-1.77636e-15,-42},{-1.77636e-15,-66},{0,-66},{0,-90}}, color={85,170,255})); + connect(pipe.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,72},{1.77636e-15,81},{0,81},{0,90}}, color={85,170,255})); + connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{-1.77636e-15,52},{-1.77636e-15,49},{1.77636e-15,49},{1.77636e-15,46}}, color={85,170,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(preserveAspectRatio=false))); end CoolingTower2; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 10164afc..0a375140 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -6,5 +6,4 @@ LMTDFuelHeater HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser -CoolingTower CoolingTower2 diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index 6fbc5871..bd27db54 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -10,26 +10,29 @@ model CoolingTower_direct // Cold Air Inlet input Real airInletPress(start=1) "bar"; - input Real AirInletTemp(start=20) "deg_C"; - input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + input Real AirInletTemp(start=10) "deg_C"; + input Units.Fraction cold_source_relative_humidity(start=0.5) "1"; // Input for calibration output Real AirOutletTemp(start=35) "deg_C"; - output Real WaterOutletTemp(start=25) "deg_C"; // Calibrated Parameters - parameter Real hd = 0.023336338; - parameter Real Cf = 10.460426; + parameter Real hd = 0.0015337723; + parameter Real Kfr = 0; // Parameters parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - parameter Real Vd = 7.5 "m/s"; + output Real V_inlet(start = 13.251477) "m/s"; // Observables output Real airFlow(start=440) "m3/s"; - output Real Q_makeup; + output Real Q_makeup(start=1311.1932); + output Real Q_cold(start=52552.133); + + output Real WaterOutletTemp(start=25) "deg_C"; + output Real airOutletPress(start=0.99); // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -45,7 +48,7 @@ model CoolingTower_direct MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-80}))); + origin={0,-92}))); MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, @@ -57,7 +60,7 @@ model CoolingTower_direct MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-56}))); + origin={0,-70}))); MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airFlow_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -66,6 +69,11 @@ model CoolingTower_direct extent={{-10,-10},{10,10}}, rotation=270, origin={0,8}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-44}))); equation // Hot Water Inlet waterFlow_sensor.Qv = waterFlow; @@ -76,25 +84,26 @@ equation airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; airFlow_sensor.Qv = airFlow; - AirInletTemp_sensor.T_degC = AirInletTemp; + AirInletTemp_sensor.T_degC = AirInletTemp + 10*time; // Hot Water Outlet // Cold Air Outlet cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; // Calibrated Parameters CoolingTower.hd = hd; - CoolingTower.Cf = Cf; + CoolingTower.Kfr = Kfr; CoolingTower.Q_makeup = Q_makeup; - //CoolingTower.Q_cold = Q_cold; + CoolingTower.Q_cold = Q_cold; // Parameters CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; CoolingTower.Afr = Afr; - CoolingTower.Vd = Vd; + CoolingTower.V_inlet = V_inlet; // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; @@ -110,10 +119,11 @@ equation connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, color={28,108,200})); connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); - connect(CoolingTower.C_cold_out, AirOutletTemp_sensor.C_in) annotation (Line(points={{0,-29},{0,-37.5},{1.77636e-15,-37.5},{1.77636e-15,-46}}, color={85,170,255})); - connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-66},{-1.77636e-15,-70.5},{8.88178e-16,-70.5},{8.88178e-16,-75}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{-1.77636e-15,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29},{0,-31.5},{1.77636e-15,-31.5},{1.77636e-15,-34}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); end CoolingTower_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo similarity index 81% rename from MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo rename to MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index 9d0382ae..f88dbd48 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower2_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -1,5 +1,5 @@ within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; -model CoolingTower2_reverse +model CoolingTower_reverse import MetroscopeModelingLibrary.Utilities.Units; // Boundary Conditions @@ -15,21 +15,25 @@ model CoolingTower2_reverse // Input for calibration input Real AirOutletTemp(start=35) "deg_C"; - input Real WaterOutletTemp(start=25) "deg_C"; + // Calibrated Parameters - output Real hd; - output Real Cf; + output Real hd(start = 0.00943308); + parameter Real Kfr = 0; // Parameters parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - parameter Real Vd = 7.5 "m/s"; + output Real V_inlet(start = 13.251477) "m/s"; // Observables output Real airFlow(start=440) "m3/s"; - output Real Q_makeup; + output Real Q_makeup(start=1311.1932); + output Real Q_cold(start=52552.133); + + output Real WaterOutletTemp(start=25) "deg_C"; + output Real airOutletPress(start=1); // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -45,7 +49,7 @@ model CoolingTower2_reverse MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-80}))); + origin={0,-92}))); MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, @@ -57,7 +61,7 @@ model CoolingTower2_reverse MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-56}))); + origin={0,-70}))); MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airFlow_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -66,6 +70,11 @@ model CoolingTower2_reverse extent={{-10,-10},{10,10}}, rotation=270, origin={0,8}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-44}))); equation // Hot Water Inlet waterFlow_sensor.Qv = waterFlow; @@ -82,19 +91,20 @@ equation // Cold Air Outlet cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; // Calibrated Parameters CoolingTower.hd = hd; - CoolingTower.Cf = Cf; + CoolingTower.Kfr = Kfr; CoolingTower.Q_makeup = Q_makeup; - //CoolingTower.Q_cold = Q_cold; + CoolingTower.Q_cold = Q_cold; // Parameters CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; CoolingTower.Afr = Afr; - CoolingTower.Vd = Vd; + CoolingTower.V_inlet = V_inlet; // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; @@ -110,10 +120,11 @@ equation connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, color={28,108,200})); connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); - connect(CoolingTower.C_cold_out, AirOutletTemp_sensor.C_in) annotation (Line(points={{0,-29},{0,-37.5},{1.77636e-15,-37.5},{1.77636e-15,-46}}, color={85,170,255})); - connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-66},{-1.77636e-15,-70.5},{8.88178e-16,-70.5},{8.88178e-16,-75}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{-1.77636e-15,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29},{0,-31.5},{1.77636e-15,-31.5},{1.77636e-15,-34}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); -end CoolingTower2_reverse; +end CoolingTower_reverse; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 8266d9ef..94275cb1 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -18,5 +18,5 @@ AirCooledCondenser_with_subcooling_faulty AirCooledCondenser_reverse AirCooledCondenser_direct AirCooledCondenser_faulty -CoolingTower2_reverse CoolingTower_direct +CoolingTower_reverse From f3d910789d2d18802ad1aa5a94b63c31981607fc Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Tue, 2 Apr 2024 18:29:01 +0200 Subject: [PATCH 04/34] sink/source --- .../HeatExchangers/CoolingTower2.mo | 60 ++++-- .../HeatExchangers/CoolingTower3.mo | 195 ++++++++++++++++++ .../MultiFluid/HeatExchangers/package.order | 1 + .../HeatExchangers/CoolingTower_direct.mo | 18 +- .../HeatExchangers/CoolingTower_reverse.mo | 37 ++-- 5 files changed, 270 insertions(+), 41 deletions(-) create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo index b5515a84..3a9c599c 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo @@ -70,19 +70,19 @@ model CoolingTower2 parameter Units.Density rho_air_inlet_0 = 1.2754; parameter Units.Density rho_air_outlet_0 = 1.2460; - MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); - MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-102,-10},{-82,10}}), iconTransformation(extent={{-102,-10},{-82,10}}))); + MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{82,-10},{102,10}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); - MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-54,-10},{-34,10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,10}))); + origin={0,16}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-12}))); + origin={0,-28}))); MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -90,11 +90,11 @@ model CoolingTower2 MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-32}))); + origin={0,-52}))); MetroscopeModelingLibrary.MoistAir.Pipes.Pipe pipe annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,62}))); + origin={0,64}))); equation // Definition Q_cold = Air_inlet.Q_in; @@ -149,12 +149,42 @@ equation pipe.Kfr = Kfr; pipe.delta_z =0; - connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-50,0}}, color={28,108,200})); - connect(hot_side_cooling.C_out, C_hot_out) annotation (Line(points={{-30,0},{90,0}}, color={28,108,200})); - connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,20.5},{8.88178e-16,20.5},{8.88178e-16,15}}, color={85,170,255})); - connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{-8.88178e-16,-17},{-8.88178e-16,-19.5},{1.77636e-15,-19.5},{1.77636e-15,-22}}, color={85,170,255})); - connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{-1.77636e-15,-42},{-1.77636e-15,-66},{0,-66},{0,-90}}, color={85,170,255})); - connect(pipe.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,72},{1.77636e-15,81},{0,81},{0,90}}, color={85,170,255})); - connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{-1.77636e-15,52},{-1.77636e-15,49},{1.77636e-15,49},{1.77636e-15,46}}, color={85,170,255})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(coordinateSystem(preserveAspectRatio=false))); + connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-92,0},{-54,0}}, color={28,108,200})); + connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,26},{0,21}}, color={85,170,255})); + connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{-8.88178e-16,-33},{-8.88178e-16,-37.5},{1.77636e-15,-37.5},{1.77636e-15,-42}}, color={85,170,255})); + connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{0,-62},{0,-90}}, color={85,170,255})); + connect(pipe.C_in, C_cold_in) annotation (Line(points={{0,74},{0,90}}, color={85,170,255})); + connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{0,54},{0,46}}, color={85,170,255})); + connect(C_hot_out, C_hot_out) annotation (Line(points={{92,0},{92,0}}, color={28,108,200})); + connect(hot_side_cooling.C_out, C_hot_out) annotation (Line(points={{-34,0},{92,0}}, color={28,108,200})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Line(points={{-60,-60},{60,-60},{40,60},{-40,60},{-60,-60}}, color={28,108,200}), + Rectangle( + extent={{-46,20},{46,-14}}, + lineColor={28,108,200}, + fillColor={170,255,213}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{42,46},{-42,42}}, + lineColor={28,108,200}, + fillColor={255,85,85}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-58,-48},{58,-60}}, + lineColor={28,108,200}, + fillColor={0,0,255}, + fillPattern=FillPattern.Solid), + Line(points={{-20,42},{-20,36}}, color={28,108,200}), + Line(points={{20,42},{20,38},{20,36}}, color={28,108,200}), + Line(points={{-46,82}}, color={28,108,200}), + Ellipse( + extent={{-26,30},{-14,36}}, + lineColor={28,108,200}, + fillColor={255,85,85}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{14,30},{26,36}}, + lineColor={28,108,200}, + fillColor={255,85,85}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false))); end CoolingTower2; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo new file mode 100644 index 00000000..5deb6ee7 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo @@ -0,0 +1,195 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model CoolingTower3 + MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + Inputs.InputArea Afr; + Inputs.InputReal hd; + Inputs.InputReal Lfi; + Inputs.InputReal afi; + Units.Velocity V_inlet; + Inputs.InputFrictionCoefficient Kfr; + + Units.MassFlowRate Q_cold; + Units.MassFlowRate Q_hot; + Units.MassFlowRate Q_makeup; + + Units.Temperature T_cold_in(start=T_cold_in_0); + Units.Temperature T_cold_out(start=T_cold_out_0); + Units.Temperature T_hot_in(start=T_hot_in_0); + Units.Temperature T_hot_out(start=T_hot_out_0); + + Units.Temperature T1(start=T1_0); + Units.Temperature T2(start=T2_0); + Units.Temperature T3(start=T3_0); + Units.Temperature T4(start=T4_0); + + Units.Power W; + + Units.SpecificEnthalpy i_initial(start=i_initial_0); + Units.SpecificEnthalpy i_final(start=i_final_0); + Units.SpecificEnthalpy i1(start=i1_0); + Units.SpecificEnthalpy i2(start=i2_0); + Units.SpecificEnthalpy i3(start=i3_0); + Units.SpecificEnthalpy i4(start=i4_0); + Units.SpecificEnthalpy iTot(start=iTot_0); + + Units.Density rho_air_inlet(start=rho_air_inlet_0); + Units.Density rho_air_outlet(start=rho_air_outlet_0); + + Units.HeatCapacity cp; + Units.Pressure P_in; + Units.Pressure P_out; + + constant Real g(unit="m/s2") = Modelica.Constants.g_n; + + // Initialization Parameters + + parameter Units.Temperature T_cold_in_0 = 15 + 273.15; + parameter Units.Temperature T_cold_out_0 = 25 + 273.15; + parameter Units.Temperature T_hot_in_0 = 40 + 273.15; + parameter Units.Temperature T_hot_out_0 = 20 + 273.15; + + parameter Units.Temperature T1_0 = 15 + 273.15; + parameter Units.Temperature T2_0 = 18 + 273.15; + parameter Units.Temperature T3_0 = 22 + 273.15; + parameter Units.Temperature T4_0 = 25 + 273.15; + + parameter Units.SpecificEnthalpy i_initial_0 = 0.5e5; + parameter Units.SpecificEnthalpy i_final_0 = 1.05e5; + parameter Units.SpecificEnthalpy i1_0 = 0.65e5; + parameter Units.SpecificEnthalpy i2_0 = 0.8e5; + parameter Units.SpecificEnthalpy i3_0 = 0.9e5; + parameter Units.SpecificEnthalpy i4_0 = 1e5; + parameter Units.SpecificEnthalpy iTot_0 = (1 / (2e5)); + + parameter Units.Density rho_air_inlet_0 = 1.2754; + parameter Units.Density rho_air_outlet_0 = 1.2460; + + MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}), iconTransformation(extent={{-100,-10},{-80,10}}))); + MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); + MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-70,-10},{-50,10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,18}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-18}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,38}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-60}))); + MetroscopeModelingLibrary.MoistAir.Pipes.Pipe pipe annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,62}))); + WaterSteam.BoundaryConditions.Sink Water_inlet annotation (Placement(transformation(extent={{-32,-10},{-12,10}}))); + WaterSteam.BoundaryConditions.Source Water_outlet annotation (Placement(transformation(extent={{10,-10},{30,10}}))); +equation + // Definition + Q_cold = Air_inlet.Q_in; + Q_hot = Water_outlet.Q_out; + + T_hot_in = hot_side_cooling.T_in; + T_hot_out = hot_side_cooling.T_out; + P_in = Air_inlet.P_in; + P_out = Air_outlet.P_out; + T_cold_in = Air_inlet.T_in; + T_cold_out = Air_outlet.T_out; + + cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); + W = Q_hot * cp * (T_hot_in - T_hot_out); + + Q_makeup = - (Air_outlet.Q_out + Air_inlet.Q_in); + + // Energy Balance - Supplementary Equation + Q_hot * cp * (T_hot_in - T_hot_out) + Q_cold * (i_initial - i_final) = 0; + + // Tchebyshev Integral + T1 = T_hot_out + 0.1 * (T_hot_in - T_hot_out); + T2 = T_hot_out + 0.4 * (T_hot_in - T_hot_out); + T3 = T_hot_out + 0.6 * (T_hot_in - T_hot_out); + T4 = T_hot_out + 0.9 * (T_hot_in - T_hot_out); + + i_initial = Air_inlet.h_in; + i_final = Air_outlet.h_out; + + Air_outlet.relative_humidity = 1; + Air_outlet.Q_out * (1 - Air_outlet.Xi_out[1]) = - Air_inlet.Q_in *(1 - Air_inlet.Xi_in[1]); + + Water_outlet.P_out = Water_inlet.P_in; + Water_outlet.T_out = Water_inlet.T_in; + Water_outlet.Q_out = Water_inlet.Q_in - Q_makeup; + + i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section + i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); + i3 = MoistAir.h_pTX(P_in, T3, {MoistAir.massFraction_pTphi(P_in, T3, 1)}) - ((i_initial + 0.6 * (i_final - i_initial))); + i4 = MoistAir.h_pTX(P_in, T4, {MoistAir.massFraction_pTphi(P_in, T4, 1)}) - ((i_initial + 0.9 * (i_final - i_initial))); + iTot = 1 / i1 + 1 / i2 + 1 / i3 + 1 / i4; + + // Heat Exchange - Merkel + (Afr * hd * afi * Lfi) / Q_hot = cp * iTot * ((T_hot_in - T_hot_out) / 4); + + // Drift Equation + rho_air_inlet = inputflowmodel.rho_in; + rho_air_outlet = outputflowmodel.rho_out; + + (P_in - P_out) = 0; + + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; + + Q_cold = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + + pipe.Kfr = Kfr; + pipe.delta_z =0; + + connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); + connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); + connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{0,-23},{0,-50}}, color={85,170,255})); + connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{0,-70},{0,-90}}, color={85,170,255})); + connect(pipe.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,72},{0,81},{0,90}}, color={85,170,255})); + connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{0,52},{0,48}}, color={85,170,255})); + connect(hot_side_cooling.C_out, Water_inlet.C_in) annotation (Line(points={{-50,0},{-27,0}}, color={28,108,200})); + connect(Water_outlet.C_out, C_hot_out) annotation (Line(points={{25,0},{90,0}}, color={28,108,200})); + connect(C_cold_in, C_cold_in) annotation (Line(points={{0,90},{0,90}}, color={85,170,255})); + connect(C_hot_out, C_hot_out) annotation (Line(points={{90,0},{90,0}}, color={28,108,200})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end CoolingTower3; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 0a375140..5d48952c 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -7,3 +7,4 @@ HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser CoolingTower2 +CoolingTower3 diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index bd27db54..369516bb 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -8,13 +8,13 @@ model CoolingTower_direct input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; - // Cold Air Inlet + // Cold Air Inlet$W\geq0$ input Real airInletPress(start=1) "bar"; - input Real AirInletTemp(start=10) "deg_C"; + input Real AirInletTemp(start=20) "deg_C"; input Units.Fraction cold_source_relative_humidity(start=0.5) "1"; // Input for calibration - output Real AirOutletTemp(start=35) "deg_C"; + output Real AirOutletTemp(start=35) "deg_C"; //output // Calibrated Parameters parameter Real hd = 0.0015337723; @@ -24,7 +24,7 @@ model CoolingTower_direct parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - output Real V_inlet(start = 13.251477) "m/s"; + output Real V_inlet(start = 13.251477) "m/s"; //output // Observables output Real airFlow(start=440) "m3/s"; @@ -40,7 +40,7 @@ model CoolingTower_direct MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTower2 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -109,11 +109,11 @@ equation WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9,-20},{24,-20},{24,0},{30,0}}, + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{24,-20},{24,0},{30,0}}, color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, @@ -122,8 +122,8 @@ equation connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{-1.77636e-15,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29},{0,-31.5},{1.77636e-15,-31.5},{1.77636e-15,-34}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-12.5},{0,-12.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); end CoolingTower_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index f88dbd48..bb906502 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -38,10 +38,10 @@ model CoolingTower_reverse // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTower2 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); + MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-12,-30},{8,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -50,14 +50,14 @@ model CoolingTower_reverse extent={{-10,-10},{10,10}}, rotation=270, origin={0,-92}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, origin={0,66}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{30,-10},{50,10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-102,-10},{-82,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-68,-30},{-48,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{34,-30},{54,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-98,-30},{-78,-10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -69,7 +69,7 @@ model CoolingTower_reverse MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,8}))); + origin={0,12}))); MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, @@ -110,21 +110,24 @@ equation WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9.5,-20},{-16,-20}}, color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); - connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9,-20},{24,-20},{24,0},{30,0}}, + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, + color={28,108,200})); + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{5.5,-20},{34,-20}}, color={28,108,200})); - connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); - connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, + color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-105,-20},{-98,-20}}, color={28,108,200})); - connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-68,-20},{-78,-20}}, + color={28,108,200})); connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); - connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{-1.77636e-15,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29},{0,-31.5},{1.77636e-15,-31.5},{1.77636e-15,-34}}, color={85,170,255})); + connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,22}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,2},{-1,2},{-1,-12.5},{-2,-12.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{-2,-27.5},{-2,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); end CoolingTower_reverse; From 2cf625c4386ce8e4b9edb8a36791a30bc08238a1 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Tue, 2 Apr 2024 21:58:52 +0200 Subject: [PATCH 05/34] sink/source --- .../HeatExchangers/CoolingTower_direct.mo | 63 +++++++++++++------ .../HeatExchangers/CoolingTower_reverse.mo | 46 ++++++++++---- 2 files changed, 79 insertions(+), 30 deletions(-) diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index 369516bb..b2ff0643 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -8,30 +8,30 @@ model CoolingTower_direct input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; - // Cold Air Inlet$W\geq0$ + // Cold Air Inlet input Real airInletPress(start=1) "bar"; input Real AirInletTemp(start=20) "deg_C"; - input Units.Fraction cold_source_relative_humidity(start=0.5) "1"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Input for calibration - output Real AirOutletTemp(start=35) "deg_C"; //output + output Real AirOutletTemp(start=34.999992) "deg_C"; //output // Calibrated Parameters - parameter Real hd = 0.0015337723; + parameter Real hd = 0.001538501; parameter Real Kfr = 0; // Parameters parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - output Real V_inlet(start = 13.251477) "m/s"; //output + output Real V_inlet(start = 4.3490353) "m/s"; //output // Observables - output Real airFlow(start=440) "m3/s"; - output Real Q_makeup(start=1311.1932); - output Real Q_cold(start=52552.133); + output Real airFlow(start=15214.605) "kg/s"; + output Real Q_makeup(start=379.48428); /// check these + output Real Q_cold(start=15214.605); - output Real WaterOutletTemp(start=25) "deg_C"; + output Real WaterOutletTemp(start=37.75459) "deg_C"; output Real airOutletPress(start=0.99); // Output @@ -40,7 +40,7 @@ model CoolingTower_direct MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTower2 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -61,7 +61,7 @@ model CoolingTower_direct extent={{-10,-10},{10,10}}, rotation=270, origin={0,-70}))); - MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airFlow_sensor annotation (Placement(transformation( + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, origin={0,36}))); @@ -83,7 +83,7 @@ equation // Cold Air Inlet airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; - airFlow_sensor.Qv = airFlow; + airInletFlow_sensor.Qv = airFlow; AirInletTemp_sensor.T_degC = AirInletTemp + 10*time; // Hot Water Outlet @@ -109,21 +109,46 @@ equation WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9.2,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{24,-20},{24,0},{30,0}}, + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9.2,-20},{24,-20},{24,0},{30,0}}, color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, color={28,108,200})); connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); - connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); - connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-12.5},{0,-12.5}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); - annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + Ellipse(lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-110,-100},{90,100}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={95,95,95}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={213,213,0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,46},{-4,14},{-58,-14},{-58,46}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={28,108,200}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); end CoolingTower_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index bb906502..61e15c19 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -16,7 +16,6 @@ model CoolingTower_reverse // Input for calibration input Real AirOutletTemp(start=35) "deg_C"; - // Calibrated Parameters output Real hd(start = 0.00943308); parameter Real Kfr = 0; @@ -28,12 +27,12 @@ model CoolingTower_reverse output Real V_inlet(start = 13.251477) "m/s"; // Observables - output Real airFlow(start=440) "m3/s"; - output Real Q_makeup(start=1311.1932); - output Real Q_cold(start=52552.133); + output Real airFlow(start=52552.133) "m3/s"; //440 + output Real Q_makeup(start=1311.1932) "m3/s"; + output Real Q_cold(start=52552.133) "m3/s"; output Real WaterOutletTemp(start=25) "deg_C"; - output Real airOutletPress(start=1); + output Real airOutletPress(start=1) "bar"; // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -62,7 +61,7 @@ model CoolingTower_reverse extent={{-10,-10},{10,10}}, rotation=270, origin={0,-70}))); - MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airFlow_sensor annotation (Placement(transformation( + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, origin={0,36}))); @@ -84,8 +83,8 @@ equation // Cold Air Inlet airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; - airFlow_sensor.Qv = airFlow; - AirInletTemp_sensor.T_degC = AirInletTemp; + airInletFlow_sensor.Qv = airFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; //+10*time - ramps up the temperature by 10 degrees // Hot Water Outlet @@ -124,10 +123,35 @@ equation connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-68,-20},{-78,-20}}, color={28,108,200})); connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); - connect(AirInletTemp_sensor.C_out, airFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); - connect(airFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,22}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,22}}, color={85,170,255})); connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,2},{-1,2},{-1,-12.5},{-2,-12.5}}, color={85,170,255})); connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{-2,-27.5},{-2,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); - annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}))); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + Ellipse(lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-110,-100},{90,100}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={95,95,95}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={213,213,0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,46},{-4,14},{-58,-14},{-58,46}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={28,108,200}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); end CoolingTower_reverse; From 8db44a354deb345a46b0807e7b6959d6c82a1f35 Mon Sep 17 00:00:00 2001 From: postorino Date: Wed, 3 Apr 2024 17:45:05 +0200 Subject: [PATCH 06/34] Causality correction --- .../HeatExchangers/CoolingTower_direct.mo | 8 ++++---- .../HeatExchangers/CoolingTower_reverse.mo | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index b2ff0643..babfab31 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -13,11 +13,11 @@ model CoolingTower_direct input Real AirInletTemp(start=20) "deg_C"; input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; - // Input for calibration - output Real AirOutletTemp(start=34.999992) "deg_C"; //output + // Observables for calibration + output Real WaterOutletTemp(start=37.75459) "deg_C"; // Calibrated Parameters - parameter Real hd = 0.001538501; + parameter Real hd = 0.009132665; parameter Real Kfr = 0; // Parameters @@ -31,7 +31,7 @@ model CoolingTower_direct output Real Q_makeup(start=379.48428); /// check these output Real Q_cold(start=15214.605); - output Real WaterOutletTemp(start=37.75459) "deg_C"; + output Real AirOutletTemp(start=45.27341) "deg_C"; //output output Real airOutletPress(start=0.99); // Output diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index 61e15c19..88c350a2 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -14,7 +14,7 @@ model CoolingTower_reverse input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Input for calibration - input Real AirOutletTemp(start=35) "deg_C"; + input Real WaterOutletTemp(start=25) "deg_C"; // Calibrated Parameters output Real hd(start = 0.00943308); @@ -31,8 +31,8 @@ model CoolingTower_reverse output Real Q_makeup(start=1311.1932) "m3/s"; output Real Q_cold(start=52552.133) "m3/s"; - output Real WaterOutletTemp(start=25) "deg_C"; output Real airOutletPress(start=1) "bar"; + output Real AirOutletTemp(start=35) "deg_C"; // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -40,7 +40,7 @@ model CoolingTower_reverse MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-12,-30},{8,-10}}))); + MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-4,-28},{16,-8}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -109,12 +109,12 @@ equation WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9.5,-20},{-16,-20}}, + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-1.5,-18},{-14,-18},{-14,-20},{-16,-20}}, color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{5.5,-20},{34,-20}}, + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{13.5,-18},{18,-18},{18,-20},{34,-20}}, color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, color={28,108,200})); @@ -125,8 +125,8 @@ equation connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,22}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,2},{-1,2},{-1,-12.5},{-2,-12.5}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{-2,-27.5},{-2,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,2},{7,2},{7,-10.5},{6,-10.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{6,-25.5},{6,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ Ellipse(lineColor={0,0,0}, From 1f5ac4a73cf9fdaae60ecc5a2d591853e2bf2273 Mon Sep 17 00:00:00 2001 From: postorino Date: Wed, 3 Apr 2024 17:50:41 +0200 Subject: [PATCH 07/34] Correct component --- .../MultiFluid/HeatExchangers/CoolingTower3.mo | 2 +- .../Multifluid/HeatExchangers/CoolingTower_direct.mo | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo index 5deb6ee7..ebd891a6 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo @@ -153,7 +153,7 @@ equation Q_cold = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); pipe.Kfr = Kfr; - pipe.delta_z =0; + pipe.delta_z = 0; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index babfab31..187d3eb1 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -40,7 +40,7 @@ model CoolingTower_direct MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MultiFluid.HeatExchangers.CoolingTower2 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -109,11 +109,11 @@ equation WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-9.2,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9.2,-20},{24,-20},{24,0},{30,0}}, + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{24,-20},{24,0},{30,0}}, color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, @@ -122,8 +122,8 @@ equation connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-11},{0,-11}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-12.5},{0,-12.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ Ellipse(lineColor={0,0,0}, From 8289c879fe1c307548331feb17474adf1e83518d Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Wed, 3 Apr 2024 04:34:18 +0200 Subject: [PATCH 08/34] balanced the component equations and got direct simulation to run --- .../MultiFluid/HeatExchangers/CoolingTower3.mo | 10 +++++----- .../Multifluid/HeatExchangers/CoolingTower_direct.mo | 12 ++++++------ .../HeatExchangers/CoolingTower_reverse.mo | 6 +++--- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo index ebd891a6..91c38a9c 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo @@ -100,10 +100,10 @@ model CoolingTower3 equation // Definition Q_cold = Air_inlet.Q_in; - Q_hot = Water_outlet.Q_out; + Q_hot = Water_inlet.Q_in; - T_hot_in = hot_side_cooling.T_in; - T_hot_out = hot_side_cooling.T_out; + T_hot_in = Water_inlet.T_in; //hot_side_cooling + T_hot_out = Water_outlet.T_out; P_in = Air_inlet.P_in; P_out = Air_outlet.P_out; T_cold_in = Air_inlet.T_in; @@ -130,8 +130,8 @@ equation Air_outlet.Q_out * (1 - Air_outlet.Xi_out[1]) = - Air_inlet.Q_in *(1 - Air_inlet.Xi_in[1]); Water_outlet.P_out = Water_inlet.P_in; - Water_outlet.T_out = Water_inlet.T_in; - Water_outlet.Q_out = Water_inlet.Q_in - Q_makeup; + //Water_outlet.T_out = Water_inlet.T_in; + Water_outlet.Q_out = Q_hot - Q_makeup; i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index 187d3eb1..d3a8a34b 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -4,7 +4,7 @@ model CoolingTower_direct // Boundary Conditions // Hot Water Inlet - input Real waterInletTemp(start=45) "deg_C"; + input Real waterInletTemp(start=35) "deg_C"; input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; @@ -14,10 +14,10 @@ model CoolingTower_direct input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Observables for calibration - output Real WaterOutletTemp(start=37.75459) "deg_C"; + output Real WaterOutletTemp(start=24.999994) "deg_C"; // Calibrated Parameters - parameter Real hd = 0.009132665; + parameter Real hd = -0.037266716; parameter Real Kfr = 0; // Parameters @@ -27,12 +27,12 @@ model CoolingTower_direct output Real V_inlet(start = 4.3490353) "m/s"; //output // Observables - output Real airFlow(start=15214.605) "kg/s"; + output Real airFlow(start=12894.166) "kg/s"; output Real Q_makeup(start=379.48428); /// check these output Real Q_cold(start=15214.605); - output Real AirOutletTemp(start=45.27341) "deg_C"; //output - output Real airOutletPress(start=0.99); + input Real AirOutletTemp(start=35) "deg_C"; //output + output Real airOutletPress(start=1); // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index 88c350a2..f80dffdf 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -4,7 +4,7 @@ model CoolingTower_reverse // Boundary Conditions // Hot Water Inlet - input Real waterInletTemp(start=45) "deg_C"; + input Real waterInletTemp(start=35) "deg_C"; input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; @@ -32,7 +32,7 @@ model CoolingTower_reverse output Real Q_cold(start=52552.133) "m3/s"; output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=35) "deg_C"; + input Real AirOutletTemp(start=35) "deg_C"; //output // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -107,7 +107,7 @@ equation // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; - AirOutletTemp_sensor.T_degC = AirOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp-10*time; connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-1.5,-18},{-14,-18},{-14,-20},{-16,-20}}, color={28,108,200})); From dec12b1cc3e41638c351ff7996c84d58fe25a443 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Wed, 3 Apr 2024 05:04:43 +0200 Subject: [PATCH 09/34] balanced the component equations and got direct simulation to run From b396da0bfb3b20f0cb12564c88e3316c4a2fe49b Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Fri, 5 Apr 2024 10:56:36 +0200 Subject: [PATCH 10/34] Update --- .../HeatExchangers/CoolingTower3.mo | 28 +++++++++++-------- .../HeatExchangers/CoolingTower_direct.mo | 12 ++++---- .../HeatExchangers/CoolingTower_reverse.mo | 16 +++++------ 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo index 91c38a9c..364d79ae 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo @@ -15,8 +15,10 @@ model CoolingTower3 Units.Velocity V_inlet; Inputs.InputFrictionCoefficient Kfr; - Units.MassFlowRate Q_cold; - Units.MassFlowRate Q_hot; + Units.MassFlowRate Q_cold_in; + Units.MassFlowRate Q_cold_out; + Units.MassFlowRate Q_hot_in; + Units.MassFlowRate Q_hot_out; Units.MassFlowRate Q_makeup; Units.Temperature T_cold_in(start=T_cold_in_0); @@ -74,7 +76,7 @@ model CoolingTower3 MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}), iconTransformation(extent={{-100,-10},{-80,10}}))); MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); - MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-70,-10},{-50,10}}))); + WaterSteam.BaseClasses.IsoPHFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-70,-10},{-50,10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -99,10 +101,12 @@ model CoolingTower3 WaterSteam.BoundaryConditions.Source Water_outlet annotation (Placement(transformation(extent={{10,-10},{30,10}}))); equation // Definition - Q_cold = Air_inlet.Q_in; - Q_hot = Water_inlet.Q_in; + Q_cold_in = Air_inlet.Q_in; + Q_cold_out = Air_outlet.Q_out; + Q_hot_in = Water_inlet.Q_in; + Q_hot_out = Water_outlet.Q_out; - T_hot_in = Water_inlet.T_in; //hot_side_cooling + T_hot_in = Water_inlet.T_in; T_hot_out = Water_outlet.T_out; P_in = Air_inlet.P_in; P_out = Air_outlet.P_out; @@ -110,12 +114,12 @@ equation T_cold_out = Air_outlet.T_out; cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); - W = Q_hot * cp * (T_hot_in - T_hot_out); + W = Q_hot_in * cp * (T_hot_in - T_hot_out); - Q_makeup = - (Air_outlet.Q_out + Air_inlet.Q_in); + Q_makeup = - (Q_cold_out + Q_cold_in); // Energy Balance - Supplementary Equation - Q_hot * cp * (T_hot_in - T_hot_out) + Q_cold * (i_initial - i_final) = 0; + Q_hot_in * cp * (T_hot_in - T_hot_out) + Q_cold_in * (i_initial - i_final) = 0; // Tchebyshev Integral T1 = T_hot_out + 0.1 * (T_hot_in - T_hot_out); @@ -131,7 +135,7 @@ equation Water_outlet.P_out = Water_inlet.P_in; //Water_outlet.T_out = Water_inlet.T_in; - Water_outlet.Q_out = Q_hot - Q_makeup; + Q_hot_out = -(Q_hot_in - Q_makeup); i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); @@ -140,7 +144,7 @@ equation iTot = 1 / i1 + 1 / i2 + 1 / i3 + 1 / i4; // Heat Exchange - Merkel - (Afr * hd * afi * Lfi) / Q_hot = cp * iTot * ((T_hot_in - T_hot_out) / 4); + (Afr * hd * afi * Lfi) / Q_hot_in = cp * iTot * ((T_hot_in - T_hot_out) / 4); // Drift Equation rho_air_inlet = inputflowmodel.rho_in; @@ -150,7 +154,7 @@ equation 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; - Q_cold = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); pipe.Kfr = Kfr; pipe.delta_z = 0; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index d3a8a34b..8f4d72f6 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -24,14 +24,14 @@ model CoolingTower_direct parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - output Real V_inlet(start = 4.3490353) "m/s"; //output + output Real V_inlet(start = 4.3490353) "m/s"; //output // Observables - output Real airFlow(start=12894.166) "kg/s"; + output Real airInletFlow(start=12894.166) "kg/s"; output Real Q_makeup(start=379.48428); /// check these - output Real Q_cold(start=15214.605); + output Real Q_cold_in(start=15214.605); - input Real AirOutletTemp(start=35) "deg_C"; //output + output Real AirOutletTemp(start=35) "deg_C"; //output output Real airOutletPress(start=1); // Output @@ -83,7 +83,7 @@ equation // Cold Air Inlet airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; - airInletFlow_sensor.Qv = airFlow; + airInletFlow_sensor.Qv = airInletFlow; AirInletTemp_sensor.T_degC = AirInletTemp + 10*time; // Hot Water Outlet @@ -97,7 +97,7 @@ equation CoolingTower.Kfr = Kfr; CoolingTower.Q_makeup = Q_makeup; - CoolingTower.Q_cold = Q_cold; + CoolingTower.Q_cold_in = Q_cold_in; // Parameters CoolingTower.Lfi = Lfi; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index f80dffdf..2d33544a 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -5,7 +5,7 @@ model CoolingTower_reverse // Boundary Conditions // Hot Water Inlet input Real waterInletTemp(start=35) "deg_C"; - input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; + input Units.VolumeFlowRate waterInletFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; // Cold Air Inlet @@ -27,12 +27,11 @@ model CoolingTower_reverse output Real V_inlet(start = 13.251477) "m/s"; // Observables - output Real airFlow(start=52552.133) "m3/s"; //440 + output Real airInletFlow(start=52552.133) "m3/s"; //440 output Real Q_makeup(start=1311.1932) "m3/s"; - output Real Q_cold(start=52552.133) "m3/s"; output Real airOutletPress(start=1) "bar"; - input Real AirOutletTemp(start=35) "deg_C"; //output + output Real AirOutletTemp(start=35) "deg_C"; //output // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -76,15 +75,15 @@ model CoolingTower_reverse origin={0,-44}))); equation // Hot Water Inlet - waterFlow_sensor.Qv = waterFlow; + waterFlow_sensor.Qv = waterInletFlow; waterInletTemp_sensor.T_degC = waterInletTemp; waterInletPress_sensor.P_barA = waterInletPress; // Cold Air Inlet airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; - airInletFlow_sensor.Qv = airFlow; - AirInletTemp_sensor.T_degC = AirInletTemp; //+10*time - ramps up the temperature by 10 degrees + airInletFlow_sensor.Qv = airInletFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; //+10*time - ramps up the temperature by 10 degrees // Hot Water Outlet @@ -97,7 +96,6 @@ equation CoolingTower.Kfr = Kfr; CoolingTower.Q_makeup = Q_makeup; - CoolingTower.Q_cold = Q_cold; // Parameters CoolingTower.Lfi = Lfi; @@ -107,7 +105,7 @@ equation // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; - AirOutletTemp_sensor.T_degC = AirOutletTemp-10*time; + AirOutletTemp_sensor.T_degC = AirOutletTemp; connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-1.5,-18},{-14,-18},{-14,-20},{-16,-20}}, color={28,108,200})); From b9a9f12dcb30a9350495e149e80122dc2e88b106 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Fri, 5 Apr 2024 10:57:42 +0200 Subject: [PATCH 11/34] Update From b2b137f4b1ceaf0e6a0ba86f63e07b1e138680d6 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Fri, 5 Apr 2024 11:00:36 +0200 Subject: [PATCH 12/34] Update From f7abffaa130c69f63dec0826435f12a1e44b8271 Mon Sep 17 00:00:00 2001 From: postorino Date: Tue, 9 Apr 2024 11:58:21 +0200 Subject: [PATCH 13/34] Update BCs values --- .../Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo | 6 +++--- .../Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo index 8f4d72f6..c7b374b0 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo @@ -4,20 +4,20 @@ model CoolingTower_direct // Boundary Conditions // Hot Water Inlet - input Real waterInletTemp(start=35) "deg_C"; + input Real waterInletTemp(start=28) "deg_C"; input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; // Cold Air Inlet input Real airInletPress(start=1) "bar"; - input Real AirInletTemp(start=20) "deg_C"; + input Real AirInletTemp(start=6) "deg_C"; input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Observables for calibration output Real WaterOutletTemp(start=24.999994) "deg_C"; // Calibrated Parameters - parameter Real hd = -0.037266716; + parameter Real hd = 0.012856079; parameter Real Kfr = 0; // Parameters diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo index 2d33544a..ca31d169 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo @@ -4,17 +4,17 @@ model CoolingTower_reverse // Boundary Conditions // Hot Water Inlet - input Real waterInletTemp(start=35) "deg_C"; + input Real waterInletTemp(start=28) "deg_C"; input Units.VolumeFlowRate waterInletFlow(start=39) "m3/s"; input Real waterInletPress(start=1) "bar"; // Cold Air Inlet input Real airInletPress(start=1) "bar"; - input Real AirInletTemp(start=20) "deg_C"; + input Real AirInletTemp(start=6) "deg_C"; input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Input for calibration - input Real WaterOutletTemp(start=25) "deg_C"; + input Real WaterOutletTemp(start=20) "deg_C"; // Calibrated Parameters output Real hd(start = 0.00943308); From c0477670ec95e7160818d6f88b225e8331e4f639 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Thu, 18 Apr 2024 15:59:26 +0200 Subject: [PATCH 14/34] poppe model --- .../HeatExchangers/CoolingTower2.mo | 190 ------------- ...CoolingTower3.mo => CoolingTowerMerkel.mo} | 28 +- .../HeatExchangers/CoolingTowerPoppe.mo | 260 ++++++++++++++++++ .../MultiFluid/HeatExchangers/package.order | 4 +- .../CoolingTowerMerkel_direct.mo | 161 +++++++++++ ...verse.mo => CoolingTowerMerkel_reverse.mo} | 23 +- ..._direct.mo => CoolingTowerPoppe_direct.mo} | 29 +- .../CoolingTowerPoppe_reverse.mo | 156 +++++++++++ .../Multifluid/HeatExchangers/package.order | 6 +- .../Utilities/Constants/package.mo | 2 +- .../Utilities/Functions.mo | 10 + .../Utilities/Units/Inputs/package.order | 2 - .../Utilities/package.mo | 2 +- .../Utilities/package.order | 1 + 14 files changed, 644 insertions(+), 230 deletions(-) delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo rename MetroscopeModelingLibrary/MultiFluid/HeatExchangers/{CoolingTower3.mo => CoolingTowerMerkel.mo} (93%) create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo rename MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/{CoolingTower_reverse.mo => CoolingTowerMerkel_reverse.mo} (92%) rename MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/{CoolingTower_direct.mo => CoolingTowerPoppe_direct.mo} (91%) create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo create mode 100644 MetroscopeModelingLibrary/Utilities/Functions.mo diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo deleted file mode 100644 index 3a9c599c..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower2.mo +++ /dev/null @@ -1,190 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model CoolingTower2 - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - Inputs.InputArea Afr; - Inputs.InputReal hd; - Inputs.InputReal Lfi; - Inputs.InputReal afi; - Units.Velocity V_inlet; - Inputs.InputFrictionCoefficient Kfr; - - Units.MassFlowRate Q_cold; //REMOVED THE INITIALIZATION VALUES - Units.MassFlowRate Q_hot; - Units.MassFlowRate Q_makeup; - - Units.Temperature T_cold_in(start=T_cold_in_0); - Units.Temperature T_cold_out(start=T_cold_out_0); - Units.Temperature T_hot_in(start=T_hot_in_0); - Units.Temperature T_hot_out(start=T_hot_out_0); - - Units.Temperature T1(start=T1_0); - Units.Temperature T2(start=T2_0); - Units.Temperature T3(start=T3_0); - Units.Temperature T4(start=T4_0); - - Units.Power W; - - Units.SpecificEnthalpy i_initial(start=i_initial_0); - Units.SpecificEnthalpy i_final(start=i_final_0); - Units.SpecificEnthalpy i1(start=i1_0); - Units.SpecificEnthalpy i2(start=i2_0); - Units.SpecificEnthalpy i3(start=i3_0); - Units.SpecificEnthalpy i4(start=i4_0); - Units.SpecificEnthalpy iTot(start=iTot_0); - - Units.Density rho_air_inlet(start=rho_air_inlet_0); - Units.Density rho_air_outlet(start=rho_air_outlet_0); - - Units.HeatCapacity cp; - Units.Pressure P_in; - Units.Pressure P_out; - - constant Real g(unit="m/s2") = Modelica.Constants.g_n; - - // Initialization Parameters - - parameter Units.Temperature T_cold_in_0 = 15 + 273.15; - parameter Units.Temperature T_cold_out_0 = 25 + 273.15; - parameter Units.Temperature T_hot_in_0 = 40 + 273.15; - parameter Units.Temperature T_hot_out_0 = 20 + 273.15; - - parameter Units.Temperature T1_0 = 15 + 273.15; - parameter Units.Temperature T2_0 = 18 + 273.15; - parameter Units.Temperature T3_0 = 22 + 273.15; - parameter Units.Temperature T4_0 = 25 + 273.15; - - parameter Units.SpecificEnthalpy i_initial_0 = 0.5e5; - parameter Units.SpecificEnthalpy i_final_0 = 1.05e5; - parameter Units.SpecificEnthalpy i1_0 = 0.65e5; - parameter Units.SpecificEnthalpy i2_0 = 0.8e5; - parameter Units.SpecificEnthalpy i3_0 = 0.9e5; - parameter Units.SpecificEnthalpy i4_0 = 1e5; - parameter Units.SpecificEnthalpy iTot_0 = (1 / (2e5)); - - parameter Units.Density rho_air_inlet_0 = 1.2754; - parameter Units.Density rho_air_outlet_0 = 1.2460; - - MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-102,-10},{-82,10}}), iconTransformation(extent={{-102,-10},{-82,10}}))); - MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{82,-10},{102,10}}))); - MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); - MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); - MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-54,-10},{-34,10}}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,16}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-28}))); - MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,36}))); - MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-52}))); - MetroscopeModelingLibrary.MoistAir.Pipes.Pipe pipe annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,64}))); -equation - // Definition - Q_cold = Air_inlet.Q_in; - Q_hot = hot_side_cooling.Q; - - T_hot_in = hot_side_cooling.T_in; - T_hot_out = hot_side_cooling.T_out; - P_in = Air_inlet.P_in; - P_out = Air_outlet.P_out; - T_cold_in = Air_inlet.T_in; - T_cold_out = Air_outlet.T_out; - - cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); - W = Q_hot * cp * (T_hot_in - T_hot_out); - - Q_makeup = - (Air_outlet.Q_out + Air_inlet.Q_in); - - // Energy Balance - Supplementary Equation - Q_hot * cp * (T_hot_in - T_hot_out) + Q_cold * (i_initial - i_final) = 0; - - // Tchebyshev Integral - T1 = T_hot_out + 0.1 * (T_hot_in - T_hot_out); - T2 = T_hot_out + 0.4 * (T_hot_in - T_hot_out); - T3 = T_hot_out + 0.6 * (T_hot_in - T_hot_out); - T4 = T_hot_out + 0.9 * (T_hot_in - T_hot_out); - - i_initial = Air_inlet.h_in; - i_final = Air_outlet.h_out; - - Air_outlet.relative_humidity = 1; - Air_outlet.Q_out * (1 - Air_outlet.Xi_out[1]) = - Air_inlet.Q_in *(1 - Air_inlet.Xi_in[1]); - - i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section - i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); - i3 = MoistAir.h_pTX(P_in, T3, {MoistAir.massFraction_pTphi(P_in, T3, 1)}) - ((i_initial + 0.6 * (i_final - i_initial))); - i4 = MoistAir.h_pTX(P_in, T4, {MoistAir.massFraction_pTphi(P_in, T4, 1)}) - ((i_initial + 0.9 * (i_final - i_initial))); - iTot = 1 / i1 + 1 / i2 + 1 / i3 + 1 / i4; - - // Heat Exchange - Merkel - (Afr * hd * afi * Lfi) / Q_hot = cp * iTot * ((T_hot_in - T_hot_out) / 4); - - // Drift Equation - rho_air_inlet = inputflowmodel.rho_in; - rho_air_outlet = outputflowmodel.rho_out; - - (P_in - P_out) = 0; - - 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; - - Q_cold = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - - pipe.Kfr = Kfr; - pipe.delta_z =0; - - connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-92,0},{-54,0}}, color={28,108,200})); - connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,26},{0,21}}, color={85,170,255})); - connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{-8.88178e-16,-33},{-8.88178e-16,-37.5},{1.77636e-15,-37.5},{1.77636e-15,-42}}, color={85,170,255})); - connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{0,-62},{0,-90}}, color={85,170,255})); - connect(pipe.C_in, C_cold_in) annotation (Line(points={{0,74},{0,90}}, color={85,170,255})); - connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{0,54},{0,46}}, color={85,170,255})); - connect(C_hot_out, C_hot_out) annotation (Line(points={{92,0},{92,0}}, color={28,108,200})); - connect(hot_side_cooling.C_out, C_hot_out) annotation (Line(points={{-34,0},{92,0}}, color={28,108,200})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ - Line(points={{-60,-60},{60,-60},{40,60},{-40,60},{-60,-60}}, color={28,108,200}), - Rectangle( - extent={{-46,20},{46,-14}}, - lineColor={28,108,200}, - fillColor={170,255,213}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{42,46},{-42,42}}, - lineColor={28,108,200}, - fillColor={255,85,85}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{-58,-48},{58,-60}}, - lineColor={28,108,200}, - fillColor={0,0,255}, - fillPattern=FillPattern.Solid), - Line(points={{-20,42},{-20,36}}, color={28,108,200}), - Line(points={{20,42},{20,38},{20,36}}, color={28,108,200}), - Line(points={{-46,82}}, color={28,108,200}), - Ellipse( - extent={{-26,30},{-14,36}}, - lineColor={28,108,200}, - fillColor={255,85,85}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{14,30},{26,36}}, - lineColor={28,108,200}, - fillColor={255,85,85}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false))); -end CoolingTower2; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo similarity index 93% rename from MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo rename to MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo index 364d79ae..e891dc5e 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTower3.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo @@ -1,5 +1,5 @@ within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model CoolingTower3 +model CoolingTowerMerkel MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; @@ -12,14 +12,16 @@ model CoolingTower3 Inputs.InputReal hd; Inputs.InputReal Lfi; Inputs.InputReal afi; + Inputs.InputReal D; + Inputs.InputReal Ratio; Units.Velocity V_inlet; - Inputs.InputFrictionCoefficient Kfr; + Inputs.InputFrictionCoefficient Cf; Units.MassFlowRate Q_cold_in; Units.MassFlowRate Q_cold_out; Units.MassFlowRate Q_hot_in; Units.MassFlowRate Q_hot_out; - Units.MassFlowRate Q_makeup; + Units.MassFlowRate Q_evap; Units.Temperature T_cold_in(start=T_cold_in_0); Units.Temperature T_cold_out(start=T_cold_out_0); @@ -116,7 +118,8 @@ equation cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); W = Q_hot_in * cp * (T_hot_in - T_hot_out); - Q_makeup = - (Q_cold_out + Q_cold_in); + Q_evap = - (Q_cold_out + Q_cold_in); + Ratio = Q_evap / W; // Energy Balance - Supplementary Equation Q_hot_in * cp * (T_hot_in - T_hot_out) + Q_cold_in * (i_initial - i_final) = 0; @@ -134,8 +137,7 @@ equation Air_outlet.Q_out * (1 - Air_outlet.Xi_out[1]) = - Air_inlet.Q_in *(1 - Air_inlet.Xi_in[1]); Water_outlet.P_out = Water_inlet.P_in; - //Water_outlet.T_out = Water_inlet.T_in; - Q_hot_out = -(Q_hot_in - Q_makeup); + Q_hot_out = -(Q_hot_in - Q_evap); i1 = MoistAir.h_pTX(P_in, T1, {MoistAir.massFraction_pTphi(P_in, T1, 1)}) - ((i_initial + 0.1 * (i_final - i_initial))); //First integral section i2 = MoistAir.h_pTX(P_in, T2, {MoistAir.massFraction_pTphi(P_in, T2, 1)}) - ((i_initial + 0.4 * (i_final - i_initial))); @@ -152,11 +154,10 @@ equation (P_in - P_out) = 0; - 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; - + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - pipe.Kfr = Kfr; + pipe.Kfr = 0; pipe.delta_z = 0; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); @@ -195,5 +196,10 @@ equation extent={{-36,110},{-28,104}}, lineColor={28,108,200}, fillColor={95,95,95}, - fillPattern=FillPattern.Backward)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end CoolingTower3; + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-40},{-28,26}}, + lineColor={28,108,200}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end CoolingTowerMerkel; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo new file mode 100644 index 00000000..0b17a186 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo @@ -0,0 +1,260 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model CoolingTowerPoppe + MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function f + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real P_in; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(P_in, Tw) - w)) / (((MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)})) - i + (Lef-1) * ((MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i - (MoistAir.xsaturation_pT(P_in, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1))) - (MoistAir.xsaturation_pT(P_in, Tw) - w) * cp * Tw)); + end f; + + //Check specific enthalpy of steam mass fraction value, 1 or 0 ? + //Check also if temperature is in kelvin or degrees for all three functions ? + + function g + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real P_in; + input Real Lef; + output Real y; + algorithm + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(P_in, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i + ((Lef-1) * (MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i - (MoistAir.xsaturation_pT(P_in, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1))) - (MoistAir.xsaturation_pT(P_in, Tw) - w) * cp * Tw)))); + end g; + + + + function h + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real P_in; + input Real Lef; + output Real y; + algorithm + y:= cp / (MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i + (Lef-1) * (MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i - (MoistAir.xsaturation_pT(P_in, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1)) - (MoistAir.xsaturation_pT(P_in, Tw) - w) * cp * Tw); + end h; + + + Inputs.InputArea Afr; + Inputs.InputReal Lfi; + Inputs.InputReal afi; + Inputs.InputReal hd; + Inputs.InputReal D; + Units.Velocity V_inlet; + Inputs.InputFrictionCoefficient Cf; + + Units.MassFlowRate Q_cold_in; + Units.MassFlowRate Q_cold_out; + Units.MassFlowRate Q_hot_in; + Units.MassFlowRate Qw[N_step]; + Units.MassFlowRate Qa[N_step]; + Units.MassFlowRate Q_hot_out; + Units.MassFlowRate Q_makeup; + + Units.Temperature T_cold_in(start=T_cold_in_0); + Units.Temperature T_cold_out(start=T_cold_out_0); + Units.Temperature T_hot_in(start=T_hot_in_0); + Units.Temperature T_hot_out(start=T_hot_out_0); + + Units.SpecificEnthalpy i_initial; + Units.SpecificEnthalpy i_final; + + Units.Power W; + Real w_in; + Real w_out; + + Units.Density rho_air_inlet(start=rho_air_inlet_0); + Units.Density rho_air_outlet(start=rho_air_outlet_0); + + Units.HeatCapacity cp; + Units.Pressure P_in; + Units.Pressure P_out; + + constant Real gr(unit="m/s2") = Modelica.Constants.g_n; + + // Poppe Inputs + Units.Temperature deltaT; + Real Lef; //Why is this an output + parameter Integer N_step = 1; + Real w[N_step]; //Not sure if these should be output or Units....... + Real M[N_step]; + Real i[N_step]; + Real Tw[N_step]; + + // Initialization Parameters + + parameter Units.Temperature T_cold_in_0 = 15 + 273.15; + parameter Units.Temperature T_cold_out_0 = 25 + 273.15; + parameter Units.Temperature T_hot_in_0 = 40 + 273.15; + parameter Units.Temperature T_hot_out_0 = 20 + 273.15; + + parameter Units.Density rho_air_inlet_0 = 1.2754; + parameter Units.Density rho_air_outlet_0 = 1.2460; + + MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}), iconTransformation(extent={{-100,-10},{-80,10}}))); + MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); + WaterSteam.BaseClasses.IsoPHFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-70,-10},{-50,10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,18}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-18}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,38}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-60}))); + MetroscopeModelingLibrary.MoistAir.Pipes.Pipe pipe annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,62}))); + WaterSteam.BoundaryConditions.Sink Water_inlet annotation (Placement(transformation(extent={{-32,-10},{-12,10}}))); + WaterSteam.BoundaryConditions.Source Water_outlet annotation (Placement(transformation(extent={{10,-10},{30,10}}))); +equation + // Definition + Q_cold_in = Air_inlet.Q_in; + Q_cold_out = Air_outlet.Q_out; + Q_hot_in = Water_inlet.Q_in; + Q_hot_out = Water_outlet.Q_out; + + T_hot_in = Water_inlet.T_in; + T_hot_out = Water_outlet.T_out; + T_cold_in = Air_inlet.T_in; + T_cold_out = Air_outlet.T_out; + P_in = Air_inlet.P_in; + P_out = Air_outlet.P_out; + + w_in = Air_inlet.relative_humidity * MoistAir.xsaturation(Air_inlet.state_in); + w_out = Air_outlet.relative_humidity * MoistAir.xsaturation(Air_outlet.state_out); //multiplication converts it to absolute humidity for both ? + cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); + + W = Q_hot_in * cp * (T_hot_in - T_hot_out); + + P_in - P_out = 0; + Water_outlet.P_out = Water_inlet.P_in; + + i_initial = Air_inlet.h_in; + i_final = Air_outlet.h_out; + + pipe.Kfr = 0; + pipe.delta_z = 0; + + + // New Poppe Equations + + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(P_in, T_cold_in)+0.622)/(w_in+0.622))-1) / log((MoistAir.xsaturation_pT(P_in, T_cold_in)+0.622)/(w_in+0.622)); + //Lef = hd /cp; + + deltaT = (T_hot_in - T_hot_out)/N_step; + + for n in 1:N_step-1 loop + w[n+1] = w[n] + deltaT * f(Tw[n], w[n], i[n], cp, Qw[n], Qa[n], P_in, Lef); //Add absolute humidity conversion ? + i[n+1] = i[n] + deltaT * g(Tw[n], w[n], i[n], cp, Qw[n], Qa[n], P_in, Lef); + M[n+1]= M[n] + deltaT * h(Tw[n], w[n], i[n], cp, P_in, Lef); + Qw[n] = Qw[n+1] + Qa[n] * (w[n+1] - w[n]); + Qa[n+1] = Qa[n] * (1 + w[n+1]); + M[n+1] = hd * Afr / Qw[n+1]; + end for; + + w[1] = w_in; + w[N_step] = w_out; + i[1] = i_initial; + i[N_step] = i_final; + Tw[1] = T_hot_in "degC"; //added these to [N_step] equations to correlate with defined variables (so the models knows at the end of the loop its at the outlets) + Tw[N_step] = T_hot_out "degC"; + M[1] = hd * Afr / Q_hot_in; //need start value for hd in loop or in the reverse model calibrate M[1] not hd ? + Qw[N_step] = Q_hot_out; + Qw[1] = Q_hot_in; + Qa[1] = Q_cold_in; + Qa[N_step] = Q_cold_out; + + // Drift Equation + rho_air_inlet = inputflowmodel.rho_in; + rho_air_outlet = outputflowmodel.rho_out; + + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; + Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + + + + + //WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1) + //MoistAirMedium.relativeHumidity_pTX(P_in, T[n], {MoistAir.massFraction_pTphi(P_in, T[n], 1)}) + //MoistAir.saturationPressure + //MoistAir.xsaturation_pT + //MoistAir.Xsaturation + //w[1] = MoistAir.xsaturation(Air_inlet.state_in); + + //Absolute Humidity = Relative Humidity * Saturation Absolute Humidity at temperature + //Absolute Humidity = Relative Humidity * Maximum Possible Humidity + + + connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); + connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); + connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{0,-23},{0,-50}}, color={85,170,255})); + connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{0,-70},{0,-90}}, color={85,170,255})); + connect(pipe.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,72},{0,81},{0,90}}, color={85,170,255})); + connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{0,52},{0,48}}, color={85,170,255})); + connect(hot_side_cooling.C_out, Water_inlet.C_in) annotation (Line(points={{-50,0},{-27,0}}, color={28,108,200})); + connect(Water_outlet.C_out, C_hot_out) annotation (Line(points={{25,0},{90,0}}, color={28,108,200})); + connect(C_cold_in, C_cold_in) annotation (Line(points={{0,90},{0,90}}, color={85,170,255})); + connect(C_hot_out, C_hot_out) annotation (Line(points={{90,0},{90,0}}, color={28,108,200})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end CoolingTowerPoppe; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 5d48952c..29ffe378 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -6,5 +6,5 @@ LMTDFuelHeater HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser -CoolingTower2 -CoolingTower3 +CoolingTowerMerkel +CoolingTowerPoppe diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo new file mode 100644 index 00000000..3bbf1908 --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo @@ -0,0 +1,161 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTowerMerkel_direct + import MetroscopeModelingLibrary.Utilities.Units; + + // Boundary Conditions + // Hot Water Inlet + input Real waterInletTemp(start=28) "deg_C"; + input Units.VolumeFlowRate waterFlow(start=40) "m3/s"; + input Real waterInletPress(start=1) "bar"; + + // Cold Air Inlet + input Real AirInletTemp(start=6) "deg_C"; + input Real airInletPress(start=1) "bar"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + + // Observables for calibration + output Real WaterOutletTemp(start=24.999994) "deg_C"; + + // Calibrated Parameters + parameter Real hd = 0.012856079; + parameter Real Kfr = 0; + + // Parameters + parameter Real Lfi = 15 "m"; + parameter Real afi = 200 "m-1"; + parameter Real Afr = 3000 "m2"; + parameter Real D = 20 "m"; + parameter Real Cf = 15; + output Real V_inlet(start = 4.3490353) "m/s"; + + // Observables + output Real airInletFlow(start=12894.166) "kg/s"; + output Real Q_evap(start=379.48428) "kg/s"; + output Real Q_cold_in(start=15214.605); + output Real Ratio; + output Real W; + + output Real AirOutletTemp(start=35) "deg_C"; + output Real airOutletPress(start=1); + + // Output + output Units.Fraction cold_sink_relative_humidity(start=1) "1"; + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); + MultiFluid.HeatExchangers.CoolingTowerMerkel CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,90}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-92}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,66}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-102,-10},{-82,10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-70}))); + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,36}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,8}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-44}))); +equation + // Hot Water Inlet + waterFlow_sensor.Qv = waterFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + + // Cold Air Inlet + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airInletFlow_sensor.Qv = airInletFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + + // Hot Water Outlet + + // Cold Air Outlet + cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; + + // Calibrated Parameters + CoolingTower.hd = hd; + CoolingTower.Cf = Cf+10*time; + + CoolingTower.Q_evap = Q_evap; + CoolingTower.Q_cold_in = Q_cold_in; + CoolingTower.Ratio = Ratio; + CoolingTower.W = W; + + // Parameters + CoolingTower.Lfi = Lfi; + CoolingTower.afi = afi; + CoolingTower.Afr = Afr; + CoolingTower.D = D; + CoolingTower.V_inlet = V_inlet; + + // Observable for Calibration + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; + + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + color={28,108,200})); + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{24,-20},{24,0},{30,0}}, + color={28,108,200})); + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, + color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-12.5},{0,-12.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + Ellipse(lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-110,-100},{90,100}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={95,95,95}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={213,213,0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,46},{-4,14},{-58,-14},{-58,46}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={28,108,200}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); +end CoolingTowerMerkel_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo similarity index 92% rename from MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo rename to MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo index ca31d169..4c7bd163 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo @@ -1,5 +1,5 @@ within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; -model CoolingTower_reverse +model CoolingTowerMerkel_reverse import MetroscopeModelingLibrary.Utilities.Units; // Boundary Conditions @@ -9,8 +9,8 @@ model CoolingTower_reverse input Real waterInletPress(start=1) "bar"; // Cold Air Inlet - input Real airInletPress(start=1) "bar"; input Real AirInletTemp(start=6) "deg_C"; + input Real airInletPress(start=1) "bar"; input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Input for calibration @@ -24,14 +24,16 @@ model CoolingTower_reverse parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; + parameter Real D = 20 "m"; + parameter Real Cf = 1; output Real V_inlet(start = 13.251477) "m/s"; // Observables - output Real airInletFlow(start=52552.133) "m3/s"; //440 - output Real Q_makeup(start=1311.1932) "m3/s"; + output Real airInletFlow(start=52552.133) "m3/s"; + output Real Q_evap(start=1311.1932) "m3/s"; output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=35) "deg_C"; //output + output Real AirOutletTemp(start=35) "deg_C"; // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; @@ -39,7 +41,7 @@ model CoolingTower_reverse MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-4,-28},{16,-8}}))); + MultiFluid.HeatExchangers.CoolingTowerMerkel CoolingTower annotation (Placement(transformation(extent={{-4,-28},{16,-8}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -83,7 +85,7 @@ equation airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; airInletFlow_sensor.Qv = airInletFlow; - AirInletTemp_sensor.T_degC = AirInletTemp; //+10*time - ramps up the temperature by 10 degrees + AirInletTemp_sensor.T_degC = AirInletTemp; // Hot Water Outlet @@ -93,14 +95,15 @@ equation // Calibrated Parameters CoolingTower.hd = hd; - CoolingTower.Kfr = Kfr; + CoolingTower.Cf = Cf; - CoolingTower.Q_makeup = Q_makeup; + CoolingTower.Q_evap = Q_evap; // Parameters CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; CoolingTower.Afr = Afr; + CoolingTower.D =D; CoolingTower.V_inlet = V_inlet; // Observable for Calibration @@ -152,4 +155,4 @@ equation pattern=LinePattern.None, fillPattern=FillPattern.Solid, points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); -end CoolingTower_reverse; +end CoolingTowerMerkel_reverse; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo similarity index 91% rename from MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo rename to MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo index c7b374b0..821dea24 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTower_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo @@ -1,16 +1,16 @@ within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; -model CoolingTower_direct +model CoolingTowerPoppe_direct import MetroscopeModelingLibrary.Utilities.Units; // Boundary Conditions // Hot Water Inlet input Real waterInletTemp(start=28) "deg_C"; - input Units.VolumeFlowRate waterFlow(start=39) "m3/s"; + input Units.VolumeFlowRate waterFlow(start=40) "m3/s"; input Real waterInletPress(start=1) "bar"; // Cold Air Inlet - input Real airInletPress(start=1) "bar"; input Real AirInletTemp(start=6) "deg_C"; + input Real airInletPress(start=1) "bar"; input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Observables for calibration @@ -24,14 +24,18 @@ model CoolingTower_direct parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - output Real V_inlet(start = 4.3490353) "m/s"; //output + parameter Real D = 20 "m"; + parameter Real Cf = 15; + output Real V_inlet(start = 4.3490353) "m/s"; // Observables output Real airInletFlow(start=12894.166) "kg/s"; - output Real Q_makeup(start=379.48428); /// check these + //output Real Q_evap(start=379.48428) "kg/s"; output Real Q_cold_in(start=15214.605); + //output Real Ratio; + output Real W; - output Real AirOutletTemp(start=35) "deg_C"; //output + output Real AirOutletTemp(start=35) "deg_C"; output Real airOutletPress(start=1); // Output @@ -40,7 +44,7 @@ model CoolingTower_direct MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MultiFluid.HeatExchangers.CoolingTower3 CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerPoppe CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -84,7 +88,7 @@ equation airInletPress_sensor.P_barA = airInletPress; cold_source.relative_humidity = cold_source_relative_humidity; airInletFlow_sensor.Qv = airInletFlow; - AirInletTemp_sensor.T_degC = AirInletTemp + 10*time; + AirInletTemp_sensor.T_degC = AirInletTemp; // Hot Water Outlet @@ -94,15 +98,18 @@ equation // Calibrated Parameters CoolingTower.hd = hd; - CoolingTower.Kfr = Kfr; + CoolingTower.Cf = Cf; - CoolingTower.Q_makeup = Q_makeup; + //CoolingTower.Q_evap = Q_evap; CoolingTower.Q_cold_in = Q_cold_in; + //CoolingTower.Ratio = Ratio; + CoolingTower.W = W; // Parameters CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; CoolingTower.Afr = Afr; + CoolingTower.D = D; CoolingTower.V_inlet = V_inlet; // Observable for Calibration @@ -151,4 +158,4 @@ equation pattern=LinePattern.None, fillPattern=FillPattern.Solid, points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); -end CoolingTower_direct; +end CoolingTowerPoppe_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo new file mode 100644 index 00000000..da62799e --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo @@ -0,0 +1,156 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTowerPoppe_reverse + import MetroscopeModelingLibrary.Utilities.Units; + + // Boundary Conditions + // Hot Water Inlet + input Real waterInletTemp(start=28) "deg_C"; + input Units.VolumeFlowRate waterInletFlow(start=39) "m3/s"; + input Real waterInletPress(start=1) "bar"; + + // Cold Air Inlet + input Real AirInletTemp(start=6) "deg_C"; + input Real airInletPress(start=1) "bar"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + + // Input for calibration + input Real WaterOutletTemp(start=20) "deg_C"; + + // Calibrated Parameters + output Real hd; + + // Parameters + parameter Real Lfi = 15 "m"; + parameter Real afi = 200 "m-1"; + parameter Real Afr = 3000 "m2"; + parameter Real D = 20 "m"; + parameter Real Cf = 1; + output Real V_inlet(start = 13.251477) "m/s"; + + // Observables + output Real airInletFlow(start=52552.133) "m3/s"; + + output Real airOutletPress(start=1) "bar"; + output Real AirOutletTemp(start=35) "deg_C"; + + // Output + output Units.Fraction cold_sink_relative_humidity(start=1) "1"; + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerPoppe CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,90}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-92}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,66}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-68,-30},{-48,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{34,-30},{54,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-98,-30},{-78,-10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-70}))); + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,36}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,10}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-44}))); +equation + // Hot Water Inlet + waterFlow_sensor.Qv = waterInletFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + + // Cold Air Inlet + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airInletFlow_sensor.Qv = airInletFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + + // Hot Water Outlet + + // Cold Air Outlet + cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; + + // Calibrated Parameters + CoolingTower.hd = hd; + CoolingTower.Cf = Cf; + + //CoolingTower.Q_evap = Q_evap; + + // Parameters + CoolingTower.Lfi = Lfi; + CoolingTower.afi = afi; + CoolingTower.Afr = Afr; + CoolingTower.D = D; + CoolingTower.V_inlet = V_inlet; + + // Observable for Calibration + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; + + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20}}, + color={28,108,200})); + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, + color={28,108,200})); + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{34,-20}}, + color={28,108,200})); + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, + color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-105,-20},{-98,-20}}, + color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-68,-20},{-78,-20}}, + color={28,108,200})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,20}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,0},{0,-12.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-34}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + Ellipse(lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-110,-100},{90,100}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={95,95,95}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={213,213,0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,46},{-4,14},{-58,-14},{-58,46}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={28,108,200}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); +end CoolingTowerPoppe_reverse; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 94275cb1..6d5bb791 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -18,5 +18,7 @@ AirCooledCondenser_with_subcooling_faulty AirCooledCondenser_reverse AirCooledCondenser_direct AirCooledCondenser_faulty -CoolingTower_direct -CoolingTower_reverse +CoolingTowerMerkel_direct +CoolingTowerMerkel_reverse +CoolingTowerPoppe_direct +CoolingTowerPoppe_reverse diff --git a/MetroscopeModelingLibrary/Utilities/Constants/package.mo b/MetroscopeModelingLibrary/Utilities/Constants/package.mo index 068f212a..f7421ff9 100644 --- a/MetroscopeModelingLibrary/Utilities/Constants/package.mo +++ b/MetroscopeModelingLibrary/Utilities/Constants/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary.Utilities; +within MetroscopeModelingLibrary.Utilities; package Constants "Stores all constants used in MML" extends Modelica.Icons.Package; import MetroscopeModelingLibrary.Utilities.Units; diff --git a/MetroscopeModelingLibrary/Utilities/Functions.mo b/MetroscopeModelingLibrary/Utilities/Functions.mo new file mode 100644 index 00000000..dfdf64cd --- /dev/null +++ b/MetroscopeModelingLibrary/Utilities/Functions.mo @@ -0,0 +1,10 @@ +within MetroscopeModelingLibrary.Utilities; +package Functions + function SpecificEnthalpy + + + + algorithm + + end SpecificEnthalpy; +end Functions; diff --git a/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order b/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order index a1f23352..a3cb8c75 100644 --- a/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order +++ b/MetroscopeModelingLibrary/Utilities/Units/Inputs/package.order @@ -27,5 +27,3 @@ InputPositiveVolumeFlowRate InputNegativeVolumeFlowRate InputTemperature InputYield -InputMassTransferCoefficient -InputSurfaceAreaperVolume diff --git a/MetroscopeModelingLibrary/Utilities/package.mo b/MetroscopeModelingLibrary/Utilities/package.mo index 2c5d70bc..c484c6fc 100644 --- a/MetroscopeModelingLibrary/Utilities/package.mo +++ b/MetroscopeModelingLibrary/Utilities/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Utilities extends Modelica.Icons.UtilitiesPackage; diff --git a/MetroscopeModelingLibrary/Utilities/package.order b/MetroscopeModelingLibrary/Utilities/package.order index 07824677..d28727b4 100644 --- a/MetroscopeModelingLibrary/Utilities/package.order +++ b/MetroscopeModelingLibrary/Utilities/package.order @@ -2,3 +2,4 @@ Icons Units Constants Media +Functions From 78a0e7b06bde00a234c771b468eafe39f90d8de8 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Mon, 22 Apr 2024 17:35:19 +0200 Subject: [PATCH 15/34] Poppe Model Update --- .../HeatExchangers/CoolingTowerPoppe.mo | 21 +- .../HeatExchangers/CoolingTowerPoppeTrial.mo | 214 ++++++++++++++++++ .../MultiFluid/HeatExchangers/package.order | 1 + .../CoolingTowerPoppe_reverse.mo | 2 - .../HeatExchangers/CoolingTowerPoppe_test.mo | 153 +++++++++++++ .../HeatExchangers/Evaporator_direct.mo | 2 +- .../Multifluid/HeatExchangers/package.order | 1 + 7 files changed, 381 insertions(+), 13 deletions(-) create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo index 0b17a186..8b6bcb73 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo @@ -23,7 +23,6 @@ model CoolingTowerPoppe end f; //Check specific enthalpy of steam mass fraction value, 1 or 0 ? - //Check also if temperature is in kelvin or degrees for all three functions ? function g input Real Tw; @@ -93,9 +92,9 @@ model CoolingTowerPoppe // Poppe Inputs Units.Temperature deltaT; - Real Lef; //Why is this an output - parameter Integer N_step = 1; - Real w[N_step]; //Not sure if these should be output or Units....... + Real Lef; + parameter Integer N_step = 3; + Real w[N_step]; Real M[N_step]; Real i[N_step]; Real Tw[N_step]; @@ -151,7 +150,7 @@ equation P_out = Air_outlet.P_out; w_in = Air_inlet.relative_humidity * MoistAir.xsaturation(Air_inlet.state_in); - w_out = Air_outlet.relative_humidity * MoistAir.xsaturation(Air_outlet.state_out); //multiplication converts it to absolute humidity for both ? + w_out = Air_outlet.relative_humidity * MoistAir.xsaturation(Air_outlet.state_out); cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); W = Q_hot_in * cp * (T_hot_in - T_hot_out); @@ -169,7 +168,6 @@ equation // New Poppe Equations Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(P_in, T_cold_in)+0.622)/(w_in+0.622))-1) / log((MoistAir.xsaturation_pT(P_in, T_cold_in)+0.622)/(w_in+0.622)); - //Lef = hd /cp; deltaT = (T_hot_in - T_hot_out)/N_step; @@ -177,20 +175,23 @@ equation w[n+1] = w[n] + deltaT * f(Tw[n], w[n], i[n], cp, Qw[n], Qa[n], P_in, Lef); //Add absolute humidity conversion ? i[n+1] = i[n] + deltaT * g(Tw[n], w[n], i[n], cp, Qw[n], Qa[n], P_in, Lef); M[n+1]= M[n] + deltaT * h(Tw[n], w[n], i[n], cp, P_in, Lef); - Qw[n] = Qw[n+1] + Qa[n] * (w[n+1] - w[n]); + Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); Qa[n+1] = Qa[n] * (1 + w[n+1]); M[n+1] = hd * Afr / Qw[n+1]; + + Tw[n+1] = Tw[n] - deltaT / N_step; end for; w[1] = w_in; w[N_step] = w_out; i[1] = i_initial; i[N_step] = i_final; - Tw[1] = T_hot_in "degC"; //added these to [N_step] equations to correlate with defined variables (so the models knows at the end of the loop its at the outlets) + Tw[1] = T_hot_in "degC"; Tw[N_step] = T_hot_out "degC"; - M[1] = hd * Afr / Q_hot_in; //need start value for hd in loop or in the reverse model calibrate M[1] not hd ? - Qw[N_step] = Q_hot_out; + M[1] = hd * Afr / Q_hot_in; //swapping hd to for a number + //M[N_step] = hd * Afr / Q_hot_in; //added this Qw[1] = Q_hot_in; + Qw[N_step] = Q_hot_out; Qa[1] = Q_cold_in; Qa[N_step] = Q_cold_out; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo new file mode 100644 index 00000000..695a4871 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -0,0 +1,214 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model CoolingTowerPoppeTrial + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function f + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(Pin, 100+273.15, 1))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + end f; + + function g + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(Pin, 100+273.15, 1))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + end g; + + function h + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / (MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(Pin, 100+273.15, 1)) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + end h; + + + Inputs.InputReal hd; + + Units.MassFlowRate Qw[N_step]; + Units.MassFlowRate Qa[N_step]; + Units.MassFlowRate Q_hot_in; + Units.MassFlowRate Q_hot_out; + Units.MassFlowRate Q_cold_in; + Units.MassFlowRate Q_cold_out; + + Inputs.InputReal w_in; + Inputs.InputReal w_out; + + Units.SpecificEnthalpy i_initial; + Units.SpecificEnthalpy i_final; + + Units.HeatCapacity cp[N_step]; //NEW + + + Units.Temperature T_cold_in; + Units.Temperature T_hot_in; + Units.Temperature T_hot_out; + + // Poppe Inputs + Units.Temperature deltaT; + + parameter Integer N_step = 10; + Real w[N_step]; + Real M[N_step]; + Real i[N_step]; + Real Tw[N_step]; + + Real Pin[N_step]; //NEW + Real Lef[N_step]; //NEW + + WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Inlet air_inlet_connector annotation (Placement(transformation(extent={{-10,100},{10,120}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Outlet air_outlet_connector annotation (Placement(transformation(extent={{-10,-120},{10,-100}}))); + WaterSteam.BaseClasses.IsoHFlowModel water_inlet_flow annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + WaterSteam.BaseClasses.IsoPHFlowModel water_outlet_flow annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + WaterSteam.BoundaryConditions.Source water_outlet annotation (Placement(transformation(extent={{34,-10},{54,10}}))); + WaterSteam.BoundaryConditions.Sink water_inlet annotation (Placement(transformation(extent={{-42,-10},{-22,10}}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_inlet_flow annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,56}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink air_inlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,28}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source + air_outlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-36}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_outlet_flow annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-64}))); +equation + + // connectors + + air_inlet_connector.P = Pin[1]; + air_inlet_connector.Q = Q_cold_in; + air_inlet_connector.h_outflow = i_initial; + w[1] = air_inlet.relative_humidity * MoistAir.xsaturation(air_inlet_flow.state_in); + air_inlet.T_in = T_cold_in; + + + air_outlet_connector.P = Pin[1]; + air_outlet_connector.Q = Q_cold_out; + air_outlet_connector.h_outflow = i_final; + w[N_step] = air_outlet.relative_humidity * MoistAir.xsaturation(air_outlet_flow.state_out); + + + water_inlet_flow.P_out = Pin[1]; + water_inlet_flow.Q = Q_hot_in; + water_inlet_flow.T_in = Tw[1]; + cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); + + water_outlet_flow.P_out = Pin[1]; + water_outlet_flow.Q = Q_hot_out; + water_outlet_flow.T_in = Tw[N_step]; + + + + // New Poppe Equations + + Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); + + deltaT = (Tw[1] - Tw[N_step])/N_step; + + for n in 1:N_step-1 loop + w[n+1] = w[n] + deltaT * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + i[n+1] = i[n] + deltaT * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); //MAKE ALL OD THESE A FUNCTION OF N + M[n+1]= M[n] + deltaT * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); + Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); + Qa[n+1] = Qa[n] * (1 + w[n+1]); + M[n+1] = hd / Qw[n+1]; + + Lef[n+1] = Lef[n]; //NEW + Pin[n+1] = Pin[n]; //NEW + Tw[n+1] = Tw[n] - deltaT; //NEW + cp[n+1] = cp[n]; //NEW + end for; + + w[1] = w_in; + w[N_step] = w_out; + i[1] = i_initial; + i[N_step] = i_final; + Tw[1] = T_hot_in "degC"; + Tw[N_step] = T_hot_out "degC"; + M[1] = hd / Qw[1]; + //M[N_step] = hd / Qw[N_step]; //NEW + Qw[1] = Q_hot_in; + Qw[N_step] = Q_hot_out; + Qa[1] = Q_cold_in; + Qa[N_step] = Q_cold_out; + //Pin[1] = Pin[N_step]; //NEW + //Lef[1] = Lef[N_step]; //NEW + //cp[1] = cp[N_step]; //NEW + + connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-80,0}}, color={28,108,200})); + connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{80,0},{110,0}}, color={28,108,200})); + connect(water_outlet_flow.C_in, water_outlet.C_out) annotation (Line(points={{60,0},{49,0}}, color={28,108,200})); + connect(water_inlet_flow.C_out, water_inlet.C_in) annotation (Line(points={{-60,0},{-37,0}}, color={28,108,200})); + connect(air_inlet_flow.C_in, air_inlet_connector) annotation (Line(points={{0,66},{0,110}}, color={85,170,255})); + connect(air_outlet_flow.C_out, air_outlet_connector) annotation (Line(points={{0,-74},{0,-110}}, color={85,170,255})); + connect(air_inlet_flow.C_out, air_inlet.C_in) annotation (Line(points={{0,46},{0,33}}, color={85,170,255})); + connect(air_outlet_flow.C_in, air_outlet.C_out) annotation (Line(points={{0,-54},{0,-41}}, color={85,170,255})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end CoolingTowerPoppeTrial; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 29ffe378..488944db 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -8,3 +8,4 @@ AirCooledCondenser_with_subcooling AirCooledCondenser CoolingTowerMerkel CoolingTowerPoppe +CoolingTowerPoppeTrial diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo index da62799e..3a919f58 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo @@ -95,8 +95,6 @@ equation CoolingTower.hd = hd; CoolingTower.Cf = Cf; - //CoolingTower.Q_evap = Q_evap; - // Parameters CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo new file mode 100644 index 00000000..491c8cf3 --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -0,0 +1,153 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTowerPoppe_test + import MetroscopeModelingLibrary.Utilities.Units; + + // Boundary Conditions + // Hot Water Inlet + input Real waterInletTemp(start=28) "deg_C"; + input Units.VolumeFlowRate waterInletFlow(start=39) "m3/s"; + input Real waterInletPress(start=1) "bar"; + + // Cold Air Inlet + input Real AirInletTemp(start=6) "deg_C"; + input Real airInletPress(start=1) "bar"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + + // Input for calibration + input Real WaterOutletTemp(start=20) "deg_C"; + + // Calibrated Parameters + output Real hd; + + // Parameters + //parameter Real Lfi = 15 "m"; + //parameter Real afi = 200 "m-1"; + //parameter Real Afr = 3000 "m2"; + //parameter Real D = 20 "m"; + //parameter Real Cf = 1; + // output Real V_inlet(start = 13.251477) "m/s"; + + // Observables + input Real airInletFlow(start=52552.133) "m3/s"; + + output Real airOutletPress(start=1) "bar"; + output Real AirOutletTemp(start=35) "deg_C"; + + // Output + output Units.Fraction cold_sink_relative_humidity(start=1) "1"; + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerPoppeTrial + CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,90}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-92}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,66}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-68,-30},{-48,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{34,-30},{54,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-98,-30},{-78,-10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-70}))); + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,36}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,10}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-44}))); +equation + // Hot Water Inlet + waterFlow_sensor.Qv = waterInletFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + + // Cold Air Inlet + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airInletFlow_sensor.Qv = airInletFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + + // Hot Water Outlet + + // Cold Air Outlet + cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; + + // Calibrated Parameters + CoolingTower.hd = hd; + //CoolingTower.Cf = Cf; + + // Parameters + //CoolingTower.Lfi = Lfi; + //CoolingTower.afi = afi; + //CoolingTower.Afr = Afr; + //CoolingTower.D = D; + //CoolingTower.V_inlet = V_inlet; + + // Observable for Calibration + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; + + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, + color={28,108,200})); + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, + color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-105,-20},{-98,-20}}, + color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-68,-20},{-78,-20}}, + color={28,108,200})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,20}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); + connect(waterInletPress_sensor.C_out, CoolingTower.water_inlet_connector) annotation (Line(points={{-16,-20},{-9.16667,-20}}, color={28,108,200})); + connect(CoolingTower.water_outlet_connector, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9.16667,-20},{34,-20}}, color={28,108,200})); + connect(CoolingTower.air_outlet_connector, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29.1667},{0,-34}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.air_inlet_connector) annotation (Line(points={{0,0},{0,-10.8333}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + Ellipse(lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-110,-100},{90,100}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={95,95,95}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={213,213,0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,46},{-4,14},{-58,-14},{-58,46}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={28,108,200}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); +end CoolingTowerPoppe_test; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/Evaporator_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/Evaporator_direct.mo index ba2121e5..a3ec2f8c 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/Evaporator_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/Evaporator_direct.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; model Evaporator_direct extends MetroscopeModelingLibrary.Utilities.Icons.Tests.MultifluidTestIcon; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 6d5bb791..4e1b645d 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -22,3 +22,4 @@ CoolingTowerMerkel_direct CoolingTowerMerkel_reverse CoolingTowerPoppe_direct CoolingTowerPoppe_reverse +CoolingTowerPoppe_test From 05bf4a6e07bb3c364fe3983e69b59dd4b67bad9f Mon Sep 17 00:00:00 2001 From: postorino Date: Tue, 23 Apr 2024 11:59:35 +0200 Subject: [PATCH 16/34] Update CT Poppe model --- .../HeatExchangers/CoolingTowerPoppeTrial.mo | 36 ++++++++++--------- .../HeatExchangers/CoolingTowerPoppe_test.mo | 2 +- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index 695a4871..cd5038fc 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -50,8 +50,6 @@ model CoolingTowerPoppeTrial Inputs.InputReal hd; - Units.MassFlowRate Qw[N_step]; - Units.MassFlowRate Qa[N_step]; Units.MassFlowRate Q_hot_in; Units.MassFlowRate Q_hot_out; Units.MassFlowRate Q_cold_in; @@ -63,10 +61,10 @@ model CoolingTowerPoppeTrial Units.SpecificEnthalpy i_initial; Units.SpecificEnthalpy i_final; - Units.HeatCapacity cp[N_step]; //NEW Units.Temperature T_cold_in; + Units.Temperature T_cold_out; Units.Temperature T_hot_in; Units.Temperature T_hot_out; @@ -78,9 +76,11 @@ model CoolingTowerPoppeTrial Real M[N_step]; Real i[N_step]; Real Tw[N_step]; - + Units.HeatCapacity cp[N_step]; //NEW Real Pin[N_step]; //NEW Real Lef[N_step]; //NEW + Units.MassFlowRate Qw[N_step]; + Units.MassFlowRate Qa[N_step]; WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); @@ -109,29 +109,30 @@ model CoolingTowerPoppeTrial origin={0,-64}))); equation - // connectors + // connectors air_inlet_connector.P = Pin[1]; air_inlet_connector.Q = Q_cold_in; air_inlet_connector.h_outflow = i_initial; - w[1] = air_inlet.relative_humidity * MoistAir.xsaturation(air_inlet_flow.state_in); + w_in = air_inlet.relative_humidity * MoistAir.xsaturation(air_inlet_flow.state_in); air_inlet.T_in = T_cold_in; air_outlet_connector.P = Pin[1]; air_outlet_connector.Q = Q_cold_out; air_outlet_connector.h_outflow = i_final; - w[N_step] = air_outlet.relative_humidity * MoistAir.xsaturation(air_outlet_flow.state_out); + air_outlet.T_out = T_cold_out; + w_out = air_outlet.relative_humidity * MoistAir.xsaturation(air_outlet_flow.state_out); water_inlet_flow.P_out = Pin[1]; water_inlet_flow.Q = Q_hot_in; - water_inlet_flow.T_in = Tw[1]; + water_inlet_flow.T_in = T_hot_in; cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); water_outlet_flow.P_out = Pin[1]; water_outlet_flow.Q = Q_hot_out; - water_outlet_flow.T_in = Tw[N_step]; + water_outlet_flow.T_in = T_hot_out; @@ -139,7 +140,12 @@ equation Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); - deltaT = (Tw[1] - Tw[N_step])/N_step; + deltaT = (T_hot_in - T_hot_out) / (N_step - 1); + + for n in 1:N_step loop + Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); + end for; + for n in 1:N_step-1 loop w[n+1] = w[n] + deltaT * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); @@ -147,11 +153,11 @@ equation M[n+1]= M[n] + deltaT * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); Qa[n+1] = Qa[n] * (1 + w[n+1]); - M[n+1] = hd / Qw[n+1]; + //M[n+1] = hd / Qw[n+1]; Lef[n+1] = Lef[n]; //NEW Pin[n+1] = Pin[n]; //NEW - Tw[n+1] = Tw[n] - deltaT; //NEW + //Tw[n+1] = Tw[n] - deltaT; //NEW cp[n+1] = cp[n]; //NEW end for; @@ -159,10 +165,8 @@ equation w[N_step] = w_out; i[1] = i_initial; i[N_step] = i_final; - Tw[1] = T_hot_in "degC"; - Tw[N_step] = T_hot_out "degC"; - M[1] = hd / Qw[1]; - //M[N_step] = hd / Qw[N_step]; //NEW + M[1] = hd / Qw[1]; // H: Not no sure of this equation + M[N_step] = hd / Qw[N_step]; // New Qw[1] = Q_hot_in; Qw[N_step] = Q_hot_out; Qa[1] = Q_cold_in; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index 491c8cf3..11a6676a 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -17,7 +17,7 @@ model CoolingTowerPoppe_test input Real WaterOutletTemp(start=20) "deg_C"; // Calibrated Parameters - output Real hd; + output Real hd(start=1); // Parameters //parameter Real Lfi = 15 "m"; From 3e1bd9d0d9297428af7822bc51345774b9b60aa1 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Tue, 30 Apr 2024 10:35:38 +0200 Subject: [PATCH 17/34] Poppe Model Problem --- ....HeatExchangers.CoolingTowerPoppe_test.mof | 3505 +++++++++++++++++ .../HeatExchangers/CoolingTowerPoppeTrial.mo | 91 +- .../HeatExchangers/Functionftest.mo | 118 + .../HeatExchangers/Functiongtest.mo | 91 + .../HeatExchangers/Functionhtest.mo | 90 + .../MultiFluid/HeatExchangers/package.order | 3 + .../CoolingTowerPoppe_direct.mo | 21 +- .../HeatExchangers/CoolingTowerPoppe_test.mo | 23 +- MetroscopeModelingLibrary/_wslbuild.sh | 81 + MetroscopeModelingLibrary/call_wsl.bat | 24 + MetroscopeModelingLibrary/call_wsl.sh | 43 + MetroscopeModelingLibrary/wslenv.sh | 10 + MetroscopeModelingLibrary/wslpath.bat | 1 + 13 files changed, 4035 insertions(+), 66 deletions(-) create mode 100644 MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo create mode 100644 MetroscopeModelingLibrary/_wslbuild.sh create mode 100644 MetroscopeModelingLibrary/call_wsl.bat create mode 100644 MetroscopeModelingLibrary/call_wsl.sh create mode 100644 MetroscopeModelingLibrary/wslenv.sh create mode 100644 MetroscopeModelingLibrary/wslpath.bat diff --git a/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof b/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof new file mode 100644 index 00000000..8e037ecf --- /dev/null +++ b/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof @@ -0,0 +1,3505 @@ +model CoolingTowerPoppe_test + input Real waterInletTemp(start = 28) "deg_C"; + input MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate waterInletFlow( + start = 39) "m3/s"; + input Real waterInletPress(start = 1) "bar"; + input Real AirInletTemp(start = 10) "deg_C"; + input Real airInletPress(start = 1) "bar"; + input MetroscopeModelingLibrary.Utilities.Units.Fraction cold_source_relative_humidity + (start = 0.4) "1"; + input Real WaterOutletTemp(start = 20) "deg_C"; + parameter Real Lfi = 15 "m"; + parameter Real Afr = 3000 "m2"; + parameter Real Cf = 1; + constant Real CoolingTower.gr(unit = "m/s2") = 9.80665; + parameter Integer CoolingTower.N_step = 10; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_inlet_flow.T_in_0 = CoolingTower.water_inlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_inlet_flow.T_out_0 = CoolingTower.water_inlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_inlet_flow.DP_0 = CoolingTower.water_inlet_flow.P_out_0- + CoolingTower.water_inlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_inlet_flow.h_in_0 = CoolingTower.water_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_inlet_flow.h_out_0 = CoolingTower.water_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_inlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_inlet_flow.h_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_outlet_flow.T_in_0 = CoolingTower.water_outlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_outlet_flow.T_out_0 = CoolingTower.water_outlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_outlet_flow.DP_0 = CoolingTower.water_outlet_flow.P_out_0 + -CoolingTower.water_outlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_outlet_flow.h_in_0 = CoolingTower.water_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_outlet_flow.h_out_0 = CoolingTower.water_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_outlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_outlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_outlet_flow.h_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_inlet_flow.T_in_0 = CoolingTower.air_inlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_inlet_flow.T_out_0 = CoolingTower.air_inlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_inlet_flow.DP_0 = CoolingTower.air_inlet_flow.P_out_0- + CoolingTower.air_inlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_inlet_flow.h_in_0 = CoolingTower.air_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_inlet_flow.h_out_0 = CoolingTower.air_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_inlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_inlet_flow.h_0 = 500000.0; + parameter Real CoolingTower.air_inlet.relative_humidity_0(min = 0.0, max = 1.0) + = 0.1; + parameter Real CoolingTower.air_outlet.relative_humidity_0(min = 0.0, max = + 1.0) = 0.1; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_outlet_flow.T_in_0 = CoolingTower.air_outlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_outlet_flow.T_out_0 = CoolingTower.air_outlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_outlet_flow.DP_0 = CoolingTower.air_outlet_flow.P_out_0- + CoolingTower.air_outlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_outlet_flow.h_in_0 = CoolingTower.air_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_outlet_flow.h_out_0 = CoolingTower.air_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_outlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_outlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_outlet_flow.h_0 = 500000.0; + parameter Real cold_source.relative_humidity_0(min = 0.0, max = 1.0) = 0.1; + parameter Real cold_sink.relative_humidity_0(min = 0.0, max = 1.0) = 0.1; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletPress_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletPress_sensor.h_0 = 500000.0; + parameter Boolean waterInletPress_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletPress_sensor.flow_model.T_in_0 = waterInletPress_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletPress_sensor.flow_model.T_out_0 = waterInletPress_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + waterInletPress_sensor.flow_model.DP_0 = waterInletPress_sensor.flow_model.P_out_0 + -waterInletPress_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletPress_sensor.flow_model.h_in_0 = waterInletPress_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletPress_sensor.flow_model.h_out_0 = waterInletPress_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density waterInletPress_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletPress_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletPress_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletPress_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInletTemp_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInletTemp_sensor.h_0 = 500000.0; + parameter Boolean AirInletTemp_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInletTemp_sensor.flow_model.T_in_0 = AirInletTemp_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInletTemp_sensor.flow_model.T_out_0 = AirInletTemp_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInletTemp_sensor.flow_model.DP_0 = AirInletTemp_sensor.flow_model.P_out_0 + -AirInletTemp_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInletTemp_sensor.flow_model.h_in_0 = AirInletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInletTemp_sensor.flow_model.h_out_0 = AirInletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density AirInletTemp_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInletTemp_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInletTemp_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInletTemp_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInletTemp_sensor.T_0 = 300; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletTemp_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletTemp_sensor.h_0 = 500000.0; + parameter Boolean waterInletTemp_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletTemp_sensor.flow_model.T_in_0 = waterInletTemp_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletTemp_sensor.flow_model.T_out_0 = waterInletTemp_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + waterInletTemp_sensor.flow_model.DP_0 = waterInletTemp_sensor.flow_model.P_out_0 + -waterInletTemp_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletTemp_sensor.flow_model.h_in_0 = waterInletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletTemp_sensor.flow_model.h_out_0 = waterInletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density waterInletTemp_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletTemp_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletTemp_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterInletTemp_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + waterInletTemp_sensor.T_0 = 300; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + WaterOutletTemp_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + WaterOutletTemp_sensor.h_0 = 500000.0; + parameter Boolean WaterOutletTemp_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + WaterOutletTemp_sensor.flow_model.T_in_0 = WaterOutletTemp_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + WaterOutletTemp_sensor.flow_model.T_out_0 = WaterOutletTemp_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + WaterOutletTemp_sensor.flow_model.DP_0 = WaterOutletTemp_sensor.flow_model.P_out_0 + -WaterOutletTemp_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + WaterOutletTemp_sensor.flow_model.h_in_0 = WaterOutletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + WaterOutletTemp_sensor.flow_model.h_out_0 = WaterOutletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density WaterOutletTemp_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + WaterOutletTemp_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + WaterOutletTemp_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + WaterOutletTemp_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + WaterOutletTemp_sensor.T_0 = 300; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterFlow_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterFlow_sensor.h_0 = 500000.0; + parameter Boolean waterFlow_sensor.faulty_flow_rate = waterFlow_sensor.faulty; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterFlow_sensor.flow_model.T_in_0 = waterFlow_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterFlow_sensor.flow_model.T_out_0 = waterFlow_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + waterFlow_sensor.flow_model.DP_0 = waterFlow_sensor.flow_model.P_out_0- + waterFlow_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterFlow_sensor.flow_model.h_in_0 = waterFlow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterFlow_sensor.flow_model.h_out_0 = waterFlow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density waterFlow_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterFlow_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + waterFlow_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + waterFlow_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + waterFlow_sensor.Qv_0 = 0.1; + parameter Boolean waterFlow_sensor.faulty = false; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirOutletTemp_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirOutletTemp_sensor.h_0 = 500000.0; + parameter Boolean AirOutletTemp_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirOutletTemp_sensor.flow_model.T_in_0 = AirOutletTemp_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirOutletTemp_sensor.flow_model.T_out_0 = AirOutletTemp_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirOutletTemp_sensor.flow_model.DP_0 = AirOutletTemp_sensor.flow_model.P_out_0 + -AirOutletTemp_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirOutletTemp_sensor.flow_model.h_in_0 = AirOutletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirOutletTemp_sensor.flow_model.h_out_0 = AirOutletTemp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density AirOutletTemp_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirOutletTemp_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirOutletTemp_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirOutletTemp_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + AirOutletTemp_sensor.T_0 = 300; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletFlow_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletFlow_sensor.h_0 = 500000.0; + parameter Boolean airInletFlow_sensor.faulty_flow_rate = airInletFlow_sensor.faulty; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airInletFlow_sensor.flow_model.T_in_0 = airInletFlow_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airInletFlow_sensor.flow_model.T_out_0 = airInletFlow_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + airInletFlow_sensor.flow_model.DP_0 = airInletFlow_sensor.flow_model.P_out_0 + -airInletFlow_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletFlow_sensor.flow_model.h_in_0 = airInletFlow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletFlow_sensor.flow_model.h_out_0 = airInletFlow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density airInletFlow_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletFlow_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airInletFlow_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletFlow_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + airInletFlow_sensor.Qv_0 = 0.1; + parameter Boolean airInletFlow_sensor.faulty = false; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletPress_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletPress_sensor.h_0 = 500000.0; + parameter Boolean airInletPress_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airInletPress_sensor.flow_model.T_in_0 = airInletPress_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airInletPress_sensor.flow_model.T_out_0 = airInletPress_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + airInletPress_sensor.flow_model.DP_0 = airInletPress_sensor.flow_model.P_out_0 + -airInletPress_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletPress_sensor.flow_model.h_in_0 = airInletPress_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletPress_sensor.flow_model.h_out_0 = airInletPress_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density airInletPress_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletPress_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airInletPress_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airInletPress_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airOutletPress_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airOutletPress_sensor.h_0 = 500000.0; + parameter Boolean airOutletPress_sensor.faulty_flow_rate = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airOutletPress_sensor.flow_model.T_in_0 = airOutletPress_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airOutletPress_sensor.flow_model.T_out_0 = airOutletPress_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + airOutletPress_sensor.flow_model.DP_0 = airOutletPress_sensor.flow_model.P_out_0 + -airOutletPress_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airOutletPress_sensor.flow_model.h_in_0 = airOutletPress_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airOutletPress_sensor.flow_model.h_out_0 = airOutletPress_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density airOutletPress_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airOutletPress_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + airOutletPress_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + airOutletPress_sensor.flow_model.h_0 = 500000.0; + + output Real hd(start = 1); + output Real V_inlet(start = 13.251477) "m/s"; + output Real airInletFlow(start = 52552.133) "m3/s"; + output Real airOutletPress(start = 1) "bar"; + output Real AirOutletTemp(start = 35) "deg_C"; + output MetroscopeModelingLibrary.Utilities.Units.Fraction cold_sink_relative_humidity + (start = 1) "1"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + hot_source.h_out; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + hot_source.Xi_out[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + hot_source.P_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + hot_source.Q_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + hot_source.Qv_out(start = -1); + MetroscopeModelingLibrary.Utilities.Units.Temperature hot_source.T_out; + Modelica.Media.Interfaces.Types.FixedPhase hot_source.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy hot_source.state_out.h( + start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density hot_source.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature hot_source.state_out.T(start = 500, + nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure hot_source.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + hot_source.C_out.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure hot_source.C_out.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy hot_source.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction hot_source.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy hot_sink.h_in; + MetroscopeModelingLibrary.Utilities.Units.MassFraction hot_sink.Xi_in[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure hot_sink.P_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate hot_sink.Q_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + hot_sink.Qv_in(start = 1); + MetroscopeModelingLibrary.Utilities.Units.Temperature hot_sink.T_in; + Modelica.Media.Interfaces.Types.FixedPhase hot_sink.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy hot_sink.state_in.h(start = + 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density hot_sink.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature hot_sink.state_in.T(start = 500, + nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure hot_sink.state_in.p(start = + 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate hot_sink.C_in.Q + (nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure hot_sink.C_in.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy hot_sink.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction hot_sink.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.hd; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient + CoolingTower.Cf; + MetroscopeModelingLibrary.Utilities.Units.Velocity CoolingTower.V_inlet; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputArea CoolingTower.Afr; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.Lfi; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.rho_air_inlet; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.rho_air_outlet; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_hot_in; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_hot_out; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_cold_in; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_cold_out; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.w_in; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.w_out; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.i_initial; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.i_final; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_cold_in; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_cold_out; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_hot_in; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_hot_out; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.deltaT; + MetroscopeModelingLibrary.Utilities.Units.HeatCapacity CoolingTower.deltacp; + Real CoolingTower.w[CoolingTower.N_step]; + Real CoolingTower.M[CoolingTower.N_step]; + Real CoolingTower.i[CoolingTower.N_step]; + Real CoolingTower.Tw[CoolingTower.N_step]; + Real CoolingTower.Ta[CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.HeatCapacity CoolingTower.cp[ + CoolingTower.N_step]; + Real CoolingTower.Pin[CoolingTower.N_step]; + Real CoolingTower.Lef[CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Qw[ + CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Qa[ + CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_connector.Q(start = 500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet_connector.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet_connector.Q(start = -500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet_connector.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_connector.Q(start = 500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_connector.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet_connector.Q(start = -500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_connector.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.h_in + (start = CoolingTower.water_inlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.h_out + (start = CoolingTower.water_inlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_flow.Q(start = CoolingTower.water_inlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_in + (start = CoolingTower.water_inlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_out + (start = CoolingTower.water_inlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.water_inlet_flow.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho_in + (start = CoolingTower.water_inlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho_out + (start = CoolingTower.water_inlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho + (start = CoolingTower.water_inlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_inlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.water_inlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_inlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet_flow.T_in + (start = CoolingTower.water_inlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet_flow.T_out + (start = CoolingTower.water_inlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_inlet_flow.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_inlet_flow.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_inlet_flow.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_inlet_flow.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_inlet_flow.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_inlet_flow.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_inlet_flow.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_inlet_flow.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_inlet_flow.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_inlet_flow.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_inlet_flow.DP(start = CoolingTower.water_inlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.water_inlet_flow.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.water_inlet_flow.DH(start = CoolingTower.water_inlet_flow.h_out_0 + -CoolingTower.water_inlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.water_inlet_flow.DT(start = CoolingTower.water_inlet_flow.T_out_0 + -CoolingTower.water_inlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_flow.C_in.Q(start = CoolingTower.water_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.C_in.P + (start = CoolingTower.water_inlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet_flow.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_inlet_flow.C_out.Q(start = -CoolingTower.water_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.C_out.P + (start = CoolingTower.water_inlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.C_out.h_outflow + (start = CoolingTower.water_inlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet_flow.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.h + (start = CoolingTower.water_inlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputDifferentialPressure + CoolingTower.water_inlet_flow.DP_input(start = 0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.h_in + (start = CoolingTower.water_outlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.h_out + (start = CoolingTower.water_outlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_outlet_flow.Q(start = CoolingTower.water_outlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_in + (start = CoolingTower.water_outlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_out + (start = CoolingTower.water_outlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.water_outlet_flow.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho_in + (start = CoolingTower.water_outlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho_out + (start = CoolingTower.water_outlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho + (start = CoolingTower.water_outlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_outlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.water_outlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_outlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet_flow.T_in + (start = CoolingTower.water_outlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet_flow.T_out + (start = CoolingTower.water_outlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_outlet_flow.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_outlet_flow.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_outlet_flow.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_outlet_flow.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_outlet_flow.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_outlet_flow.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_outlet_flow.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_outlet_flow.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_outlet_flow.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_outlet_flow.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_outlet_flow.DP(start = CoolingTower.water_outlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.water_outlet_flow.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.water_outlet_flow.DH(start = CoolingTower.water_outlet_flow.h_out_0 + -CoolingTower.water_outlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.water_outlet_flow.DT(start = CoolingTower.water_outlet_flow.T_out_0 + -CoolingTower.water_outlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_outlet_flow.C_in.Q(start = CoolingTower.water_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.C_in.P + (start = CoolingTower.water_outlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet_flow.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet_flow.C_out.Q(start = -CoolingTower.water_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.C_out.P + (start = CoolingTower.water_outlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.C_out.h_outflow + (start = CoolingTower.water_outlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet_flow.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.h + (start = CoolingTower.water_outlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P + (start = CoolingTower.water_outlet_flow.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet_flow.T + (start = CoolingTower.water_outlet_flow.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + CoolingTower.water_outlet.h_out; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + CoolingTower.water_outlet.Xi_out[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.water_outlet.P_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet.Q_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.water_outlet.Qv_out(start = -1); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet.T_out; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_outlet.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_outlet.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_outlet.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_outlet.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_outlet.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet.C_out.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet.h_in; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.water_inlet.Xi_in + [0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.water_inlet.P_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet.Q_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_inlet.Qv_in(start = 1); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet.T_in; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_inlet.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_inlet.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_inlet.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_inlet.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_inlet.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet.C_in.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.h_in + (start = CoolingTower.air_inlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.h_out + (start = CoolingTower.air_inlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_flow.Q(start = CoolingTower.air_inlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_in + (start = CoolingTower.air_inlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_out + (start = CoolingTower.air_inlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.air_inlet_flow.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho_in + (start = CoolingTower.air_inlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho_out + (start = CoolingTower.air_inlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho + (start = CoolingTower.air_inlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_inlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.air_inlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_inlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet_flow.T_in + (start = CoolingTower.air_inlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet_flow.T_out + (start = CoolingTower.air_inlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_inlet_flow.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_inlet_flow.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_inlet_flow.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_inlet_flow.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_inlet_flow.DP(start = CoolingTower.air_inlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.air_inlet_flow.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.air_inlet_flow.DH(start = CoolingTower.air_inlet_flow.h_out_0- + CoolingTower.air_inlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.air_inlet_flow.DT(start = CoolingTower.air_inlet_flow.T_out_0- + CoolingTower.air_inlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_flow.C_in.Q(start = CoolingTower.air_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.C_in.P + (start = CoolingTower.air_inlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_inlet_flow.C_out.Q(start = -CoolingTower.air_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.C_out.P + (start = CoolingTower.air_inlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.C_out.h_outflow + (start = CoolingTower.air_inlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.h + (start = CoolingTower.air_inlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P + (start = CoolingTower.air_inlet_flow.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet_flow.T + (start = CoolingTower.air_inlet_flow.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet.h_in; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.air_inlet.Xi_in + [1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.air_inlet.P_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet.Q_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_inlet.Qv_in(start = 1); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet.T_in; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_inlet.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_inlet.state_in.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet.C_in.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet.C_in.Xi_outflow + [1]; + Real CoolingTower.air_inlet.relative_humidity(start = CoolingTower.air_inlet.relative_humidity_0, + min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + CoolingTower.air_outlet.h_out; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + CoolingTower.air_outlet.Xi_out[1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.air_outlet.P_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet.Q_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.air_outlet.Qv_out(start = -1); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet.T_out; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_outlet.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_outlet.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet.C_out.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet.C_out.Xi_outflow + [1]; + Real CoolingTower.air_outlet.relative_humidity(start = CoolingTower.air_outlet.relative_humidity_0, + min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.h_in + (start = CoolingTower.air_outlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.h_out + (start = CoolingTower.air_outlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_outlet_flow.Q(start = CoolingTower.air_outlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_in + (start = CoolingTower.air_outlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_out + (start = CoolingTower.air_outlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.air_outlet_flow.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho_in + (start = CoolingTower.air_outlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho_out + (start = CoolingTower.air_outlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho + (start = CoolingTower.air_outlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_outlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.air_outlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_outlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet_flow.T_in + (start = CoolingTower.air_outlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet_flow.T_out + (start = CoolingTower.air_outlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_outlet_flow.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_outlet_flow.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_outlet_flow.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_outlet_flow.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_outlet_flow.DP(start = CoolingTower.air_outlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.air_outlet_flow.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.air_outlet_flow.DH(start = CoolingTower.air_outlet_flow.h_out_0 + -CoolingTower.air_outlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.air_outlet_flow.DT(start = CoolingTower.air_outlet_flow.T_out_0 + -CoolingTower.air_outlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_outlet_flow.C_in.Q(start = CoolingTower.air_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.C_in.P + (start = CoolingTower.air_outlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet_flow.C_out.Q(start = -CoolingTower.air_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.C_out.P + (start = CoolingTower.air_outlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.C_out.h_outflow + (start = CoolingTower.air_outlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.h + (start = CoolingTower.air_outlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P + (start = CoolingTower.air_outlet_flow.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet_flow.T + (start = CoolingTower.air_outlet_flow.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + cold_source.h_out; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + cold_source.Xi_out[1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + cold_source.P_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + cold_source.Q_out; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + cold_source.Qv_out(start = -1); + MetroscopeModelingLibrary.Utilities.Units.Temperature cold_source.T_out; + Modelica.Media.Interfaces.Types.AbsolutePressure cold_source.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature cold_source.state_out.T(min = + 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction cold_source.state_out.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + cold_source.C_out.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure cold_source.C_out.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy cold_source.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction cold_source.C_out.Xi_outflow[1]; + Real cold_source.relative_humidity(start = cold_source.relative_humidity_0, + min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy cold_sink.h_in; + MetroscopeModelingLibrary.Utilities.Units.MassFraction cold_sink.Xi_in[1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure cold_sink.P_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate cold_sink.Q_in; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + cold_sink.Qv_in(start = 1); + MetroscopeModelingLibrary.Utilities.Units.Temperature cold_sink.T_in; + Modelica.Media.Interfaces.Types.AbsolutePressure cold_sink.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature cold_sink.state_in.T(min = 190.0, + max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction cold_sink.state_in.X[2](start = { + 0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + cold_sink.C_in.Q(nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure cold_sink.C_in.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy cold_sink.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction cold_sink.C_in.Xi_outflow[1]; + Real cold_sink.relative_humidity(start = cold_sink.relative_humidity_0, min = + 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletPress_sensor.Q(start = waterInletPress_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction waterInletPress_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.P( + start = waterInletPress_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.h + (start = waterInletPress_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase waterInletPress_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterInletPress_sensor.state.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterInletPress_sensor.state.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterInletPress_sensor.state.T( + start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterInletPress_sensor.state.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate waterInletPress_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletPress_sensor.C_in.Q(start = waterInletPress_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.C_in.P + (start = waterInletPress_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction waterInletPress_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + waterInletPress_sensor.C_out.Q(start = -waterInletPress_sensor.Q_0, + nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.C_out.P + (start = waterInletPress_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction waterInletPress_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.flow_model.h_in + (start = waterInletPress_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.flow_model.h_out + (start = waterInletPress_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletPress_sensor.flow_model.Q(start = waterInletPress_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.P_in + (start = waterInletPress_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.P_out + (start = waterInletPress_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction waterInletPress_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density waterInletPress_sensor.flow_model.rho_in + (start = waterInletPress_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density waterInletPress_sensor.flow_model.rho_out + (start = waterInletPress_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density waterInletPress_sensor.flow_model.rho + (start = waterInletPress_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + waterInletPress_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + waterInletPress_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + waterInletPress_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletPress_sensor.flow_model.T_in + (start = waterInletPress_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletPress_sensor.flow_model.T_out + (start = waterInletPress_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase waterInletPress_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterInletPress_sensor.flow_model.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterInletPress_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterInletPress_sensor.flow_model.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterInletPress_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase waterInletPress_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterInletPress_sensor.flow_model.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterInletPress_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterInletPress_sensor.flow_model.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterInletPress_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + waterInletPress_sensor.flow_model.DP(start = waterInletPress_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power waterInletPress_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + waterInletPress_sensor.flow_model.DH(start = waterInletPress_sensor.flow_model.h_out_0 + -waterInletPress_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + waterInletPress_sensor.flow_model.DT(start = waterInletPress_sensor.flow_model.T_out_0 + -waterInletPress_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletPress_sensor.flow_model.C_in.Q(start = waterInletPress_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.C_in.P + (start = waterInletPress_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction waterInletPress_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + waterInletPress_sensor.flow_model.C_out.Q(start = -waterInletPress_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.C_out.P + (start = waterInletPress_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.flow_model.C_out.h_outflow + (start = waterInletPress_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction waterInletPress_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.flow_model.h + (start = waterInletPress_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.flow_model.P + (start = waterInletPress_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletPress_sensor.flow_model.T + (start = waterInletPress_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + Real waterInletPress_sensor.P_barG(start = waterInletPress_sensor.P_0*1E-05-1, + nominal = 100000.0); + Real waterInletPress_sensor.P_psiG(start = waterInletPress_sensor.P_0* + 0.000145038-14.50377377, nominal = 14.5038); + Real waterInletPress_sensor.P_MPaG(start = waterInletPress_sensor.P_0*1E-06- + 0.1, nominal = 0.09999999999999999); + Real waterInletPress_sensor.P_kPaG(start = waterInletPress_sensor.P_0*0.001-100, + nominal = 100.0); + Real waterInletPress_sensor.P_barA(start = waterInletPress_sensor.P_0*1E-05, + nominal = 1.0, unit = "bar"); + Real waterInletPress_sensor.P_psiA(start = waterInletPress_sensor.P_0* + 0.000145038, nominal = 14.5038); + Real waterInletPress_sensor.P_MPaA(start = waterInletPress_sensor.P_0*1E-06, + nominal = 0.09999999999999999); + Real waterInletPress_sensor.P_kPaA(start = waterInletPress_sensor.P_0*0.001, + nominal = 100.0); + Real waterInletPress_sensor.P_inHg(start = waterInletPress_sensor.P_0* + 0.0002953006, nominal = 29.530060000000002); + Real waterInletPress_sensor.P_mbar(start = waterInletPress_sensor.P_0*0.01, + nominal = 1000.0, unit = "mbar"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInletTemp_sensor.Q(start = AirInletTemp_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInletTemp_sensor.Xi[1] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.P( + start = AirInletTemp_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.h + (start = AirInletTemp_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInletTemp_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInletTemp_sensor.state.T(min = + 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate AirInletTemp_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInletTemp_sensor.C_in.Q(start = AirInletTemp_sensor.Q_0, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.C_in.P( + start = AirInletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInletTemp_sensor.C_out.Q(start = -AirInletTemp_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.C_out.P + (start = AirInletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.flow_model.h_in + (start = AirInletTemp_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.flow_model.h_out + (start = AirInletTemp_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInletTemp_sensor.flow_model.Q(start = AirInletTemp_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.P_in + (start = AirInletTemp_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.P_out + (start = AirInletTemp_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInletTemp_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInletTemp_sensor.flow_model.rho_in + (start = AirInletTemp_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInletTemp_sensor.flow_model.rho_out + (start = AirInletTemp_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInletTemp_sensor.flow_model.rho + (start = AirInletTemp_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInletTemp_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + AirInletTemp_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInletTemp_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInletTemp_sensor.flow_model.T_in + (start = AirInletTemp_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInletTemp_sensor.flow_model.T_out + (start = AirInletTemp_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInletTemp_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInletTemp_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInletTemp_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInletTemp_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInletTemp_sensor.flow_model.DP(start = AirInletTemp_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power AirInletTemp_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + AirInletTemp_sensor.flow_model.DH(start = AirInletTemp_sensor.flow_model.h_out_0 + -AirInletTemp_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + AirInletTemp_sensor.flow_model.DT(start = AirInletTemp_sensor.flow_model.T_out_0 + -AirInletTemp_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInletTemp_sensor.flow_model.C_in.Q(start = AirInletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.C_in.P + (start = AirInletTemp_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInletTemp_sensor.flow_model.C_out.Q(start = -AirInletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.C_out.P + (start = AirInletTemp_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.flow_model.C_out.h_outflow + (start = AirInletTemp_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction AirInletTemp_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInletTemp_sensor.flow_model.h + (start = AirInletTemp_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInletTemp_sensor.flow_model.P + (start = AirInletTemp_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInletTemp_sensor.flow_model.T + (start = AirInletTemp_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInletTemp_sensor.T( + start = AirInletTemp_sensor.T_0); + Real AirInletTemp_sensor.T_degC(start = AirInletTemp_sensor.T_0+273.15, + nominal = 573.15, unit = "degC"); + Real AirInletTemp_sensor.T_degF(start = (AirInletTemp_sensor.T_0+273.15)*1.8+32, + nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletTemp_sensor.Q(start = waterInletTemp_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction waterInletTemp_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.P( + start = waterInletTemp_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.h + (start = waterInletTemp_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase waterInletTemp_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterInletTemp_sensor.state.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterInletTemp_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterInletTemp_sensor.state.T( + start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterInletTemp_sensor.state.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate waterInletTemp_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletTemp_sensor.C_in.Q(start = waterInletTemp_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.C_in.P + (start = waterInletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction waterInletTemp_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + waterInletTemp_sensor.C_out.Q(start = -waterInletTemp_sensor.Q_0, + nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.C_out.P + (start = waterInletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction waterInletTemp_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.flow_model.h_in + (start = waterInletTemp_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.flow_model.h_out + (start = waterInletTemp_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletTemp_sensor.flow_model.Q(start = waterInletTemp_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.P_in + (start = waterInletTemp_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.P_out + (start = waterInletTemp_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction waterInletTemp_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density waterInletTemp_sensor.flow_model.rho_in + (start = waterInletTemp_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density waterInletTemp_sensor.flow_model.rho_out + (start = waterInletTemp_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density waterInletTemp_sensor.flow_model.rho + (start = waterInletTemp_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + waterInletTemp_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + waterInletTemp_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + waterInletTemp_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletTemp_sensor.flow_model.T_in + (start = waterInletTemp_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletTemp_sensor.flow_model.T_out + (start = waterInletTemp_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase waterInletTemp_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterInletTemp_sensor.flow_model.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterInletTemp_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterInletTemp_sensor.flow_model.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterInletTemp_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase waterInletTemp_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterInletTemp_sensor.flow_model.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterInletTemp_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterInletTemp_sensor.flow_model.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterInletTemp_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + waterInletTemp_sensor.flow_model.DP(start = waterInletTemp_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power waterInletTemp_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + waterInletTemp_sensor.flow_model.DH(start = waterInletTemp_sensor.flow_model.h_out_0 + -waterInletTemp_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + waterInletTemp_sensor.flow_model.DT(start = waterInletTemp_sensor.flow_model.T_out_0 + -waterInletTemp_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterInletTemp_sensor.flow_model.C_in.Q(start = waterInletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.C_in.P + (start = waterInletTemp_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction waterInletTemp_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + waterInletTemp_sensor.flow_model.C_out.Q(start = -waterInletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.C_out.P + (start = waterInletTemp_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.flow_model.C_out.h_outflow + (start = waterInletTemp_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction waterInletTemp_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletTemp_sensor.flow_model.h + (start = waterInletTemp_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletTemp_sensor.flow_model.P + (start = waterInletTemp_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletTemp_sensor.flow_model.T + (start = waterInletTemp_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterInletTemp_sensor.T( + start = waterInletTemp_sensor.T_0); + Real waterInletTemp_sensor.T_degC(start = waterInletTemp_sensor.T_0+273.15, + nominal = 573.15, unit = "degC"); + Real waterInletTemp_sensor.T_degF(start = (waterInletTemp_sensor.T_0+273.15)* + 1.8+32, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + WaterOutletTemp_sensor.Q(start = WaterOutletTemp_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction WaterOutletTemp_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.P( + start = WaterOutletTemp_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.h + (start = WaterOutletTemp_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase WaterOutletTemp_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy WaterOutletTemp_sensor.state.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density WaterOutletTemp_sensor.state.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature WaterOutletTemp_sensor.state.T( + start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure WaterOutletTemp_sensor.state.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate WaterOutletTemp_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + WaterOutletTemp_sensor.C_in.Q(start = WaterOutletTemp_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.C_in.P + (start = WaterOutletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction WaterOutletTemp_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + WaterOutletTemp_sensor.C_out.Q(start = -WaterOutletTemp_sensor.Q_0, + nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.C_out.P + (start = WaterOutletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction WaterOutletTemp_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.h_in + (start = WaterOutletTemp_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.h_out + (start = WaterOutletTemp_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + WaterOutletTemp_sensor.flow_model.Q(start = WaterOutletTemp_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.P_in + (start = WaterOutletTemp_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.P_out + (start = WaterOutletTemp_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction WaterOutletTemp_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density WaterOutletTemp_sensor.flow_model.rho_in + (start = WaterOutletTemp_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density WaterOutletTemp_sensor.flow_model.rho_out + (start = WaterOutletTemp_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density WaterOutletTemp_sensor.flow_model.rho + (start = WaterOutletTemp_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + WaterOutletTemp_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + WaterOutletTemp_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + WaterOutletTemp_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature WaterOutletTemp_sensor.flow_model.T_in + (start = WaterOutletTemp_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature WaterOutletTemp_sensor.flow_model.T_out + (start = WaterOutletTemp_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase WaterOutletTemp_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density WaterOutletTemp_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature WaterOutletTemp_sensor.flow_model.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure WaterOutletTemp_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase WaterOutletTemp_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density WaterOutletTemp_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature WaterOutletTemp_sensor.flow_model.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure WaterOutletTemp_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + WaterOutletTemp_sensor.flow_model.DP(start = WaterOutletTemp_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power WaterOutletTemp_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + WaterOutletTemp_sensor.flow_model.DH(start = WaterOutletTemp_sensor.flow_model.h_out_0 + -WaterOutletTemp_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + WaterOutletTemp_sensor.flow_model.DT(start = WaterOutletTemp_sensor.flow_model.T_out_0 + -WaterOutletTemp_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + WaterOutletTemp_sensor.flow_model.C_in.Q(start = WaterOutletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.C_in.P + (start = WaterOutletTemp_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction WaterOutletTemp_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + WaterOutletTemp_sensor.flow_model.C_out.Q(start = -WaterOutletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.C_out.P + (start = WaterOutletTemp_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.C_out.h_outflow + (start = WaterOutletTemp_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction WaterOutletTemp_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy WaterOutletTemp_sensor.flow_model.h + (start = WaterOutletTemp_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure WaterOutletTemp_sensor.flow_model.P + (start = WaterOutletTemp_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature WaterOutletTemp_sensor.flow_model.T + (start = WaterOutletTemp_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature WaterOutletTemp_sensor.T + (start = WaterOutletTemp_sensor.T_0); + Real WaterOutletTemp_sensor.T_degC(start = WaterOutletTemp_sensor.T_0+273.15, + nominal = 573.15, unit = "degC"); + Real WaterOutletTemp_sensor.T_degF(start = (WaterOutletTemp_sensor.T_0+273.15) + *1.8+32, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterFlow_sensor.Q(start = waterFlow_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction waterFlow_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.P(start = + waterFlow_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.h( + start = waterFlow_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase waterFlow_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterFlow_sensor.state.h( + start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterFlow_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterFlow_sensor.state.T(start = 500, + nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterFlow_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate waterFlow_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterFlow_sensor.C_in.Q(start = waterFlow_sensor.Q_0, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.C_in.P( + start = waterFlow_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction waterFlow_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + waterFlow_sensor.C_out.Q(start = -waterFlow_sensor.Q_0, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.C_out.P( + start = waterFlow_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction waterFlow_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.flow_model.h_in + (start = waterFlow_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.flow_model.h_out + (start = waterFlow_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterFlow_sensor.flow_model.Q(start = waterFlow_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.P_in + (start = waterFlow_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.P_out + (start = waterFlow_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction waterFlow_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density waterFlow_sensor.flow_model.rho_in + (start = waterFlow_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density waterFlow_sensor.flow_model.rho_out + (start = waterFlow_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density waterFlow_sensor.flow_model.rho + (start = waterFlow_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + waterFlow_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + waterFlow_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + waterFlow_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterFlow_sensor.flow_model.T_in + (start = waterFlow_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterFlow_sensor.flow_model.T_out + (start = waterFlow_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase waterFlow_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterFlow_sensor.flow_model.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterFlow_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterFlow_sensor.flow_model.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterFlow_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase waterFlow_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy waterFlow_sensor.flow_model.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density waterFlow_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature waterFlow_sensor.flow_model.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure waterFlow_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + waterFlow_sensor.flow_model.DP(start = waterFlow_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power waterFlow_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + waterFlow_sensor.flow_model.DH(start = waterFlow_sensor.flow_model.h_out_0- + waterFlow_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + waterFlow_sensor.flow_model.DT(start = waterFlow_sensor.flow_model.T_out_0- + waterFlow_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + waterFlow_sensor.flow_model.C_in.Q(start = waterFlow_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.C_in.P + (start = waterFlow_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction waterFlow_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + waterFlow_sensor.flow_model.C_out.Q(start = -waterFlow_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.C_out.P + (start = waterFlow_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.flow_model.C_out.h_outflow + (start = waterFlow_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction waterFlow_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterFlow_sensor.flow_model.h + (start = waterFlow_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure waterFlow_sensor.flow_model.P + (start = waterFlow_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature waterFlow_sensor.flow_model.T + (start = waterFlow_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate waterFlow_sensor.Qv( + start = waterFlow_sensor.Qv_0); + Real waterFlow_sensor.Q_lm(start = waterFlow_sensor.Qv_0*60000, nominal = + 6000.0); + Real waterFlow_sensor.Q_th(start = waterFlow_sensor.Q_0*3.6, nominal = 360.0); + Real waterFlow_sensor.Q_lbs(start = waterFlow_sensor.Q_0*0.453592428, + nominal = 45.3592428); + Real waterFlow_sensor.Q_Mlbh(start = waterFlow_sensor.Q_0*0.0079366414387, + nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirOutletTemp_sensor.Q(start = AirOutletTemp_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirOutletTemp_sensor.Xi + [1] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.P( + start = AirOutletTemp_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.h + (start = AirOutletTemp_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirOutletTemp_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirOutletTemp_sensor.state.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate AirOutletTemp_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirOutletTemp_sensor.C_in.Q(start = AirOutletTemp_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.C_in.P + (start = AirOutletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirOutletTemp_sensor.C_out.Q(start = -AirOutletTemp_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.C_out.P + (start = AirOutletTemp_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.flow_model.h_in + (start = AirOutletTemp_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.flow_model.h_out + (start = AirOutletTemp_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirOutletTemp_sensor.flow_model.Q(start = AirOutletTemp_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.P_in + (start = AirOutletTemp_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.P_out + (start = AirOutletTemp_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirOutletTemp_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density AirOutletTemp_sensor.flow_model.rho_in + (start = AirOutletTemp_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirOutletTemp_sensor.flow_model.rho_out + (start = AirOutletTemp_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirOutletTemp_sensor.flow_model.rho + (start = AirOutletTemp_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirOutletTemp_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + AirOutletTemp_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirOutletTemp_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirOutletTemp_sensor.flow_model.T_in + (start = AirOutletTemp_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirOutletTemp_sensor.flow_model.T_out + (start = AirOutletTemp_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirOutletTemp_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirOutletTemp_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirOutletTemp_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirOutletTemp_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirOutletTemp_sensor.flow_model.DP(start = AirOutletTemp_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power AirOutletTemp_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + AirOutletTemp_sensor.flow_model.DH(start = AirOutletTemp_sensor.flow_model.h_out_0 + -AirOutletTemp_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + AirOutletTemp_sensor.flow_model.DT(start = AirOutletTemp_sensor.flow_model.T_out_0 + -AirOutletTemp_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirOutletTemp_sensor.flow_model.C_in.Q(start = AirOutletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.C_in.P + (start = AirOutletTemp_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirOutletTemp_sensor.flow_model.C_out.Q(start = -AirOutletTemp_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.C_out.P + (start = AirOutletTemp_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.flow_model.C_out.h_outflow + (start = AirOutletTemp_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction AirOutletTemp_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirOutletTemp_sensor.flow_model.h + (start = AirOutletTemp_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirOutletTemp_sensor.flow_model.P + (start = AirOutletTemp_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirOutletTemp_sensor.flow_model.T + (start = AirOutletTemp_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirOutletTemp_sensor.T( + start = AirOutletTemp_sensor.T_0); + Real AirOutletTemp_sensor.T_degC(start = AirOutletTemp_sensor.T_0+273.15, + nominal = 573.15, unit = "degC"); + Real AirOutletTemp_sensor.T_degF(start = (AirOutletTemp_sensor.T_0+273.15)*1.8 + +32, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletFlow_sensor.Q(start = airInletFlow_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction airInletFlow_sensor.Xi[1] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.P( + start = airInletFlow_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.h + (start = airInletFlow_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure airInletFlow_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airInletFlow_sensor.state.T(min = + 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate airInletFlow_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletFlow_sensor.C_in.Q(start = airInletFlow_sensor.Q_0, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.C_in.P( + start = airInletFlow_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + airInletFlow_sensor.C_out.Q(start = -airInletFlow_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.C_out.P + (start = airInletFlow_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.flow_model.h_in + (start = airInletFlow_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.flow_model.h_out + (start = airInletFlow_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletFlow_sensor.flow_model.Q(start = airInletFlow_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.P_in + (start = airInletFlow_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.P_out + (start = airInletFlow_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction airInletFlow_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density airInletFlow_sensor.flow_model.rho_in + (start = airInletFlow_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density airInletFlow_sensor.flow_model.rho_out + (start = airInletFlow_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density airInletFlow_sensor.flow_model.rho + (start = airInletFlow_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + airInletFlow_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + airInletFlow_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + airInletFlow_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airInletFlow_sensor.flow_model.T_in + (start = airInletFlow_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airInletFlow_sensor.flow_model.T_out + (start = airInletFlow_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure airInletFlow_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airInletFlow_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure airInletFlow_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airInletFlow_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + airInletFlow_sensor.flow_model.DP(start = airInletFlow_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power airInletFlow_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + airInletFlow_sensor.flow_model.DH(start = airInletFlow_sensor.flow_model.h_out_0 + -airInletFlow_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + airInletFlow_sensor.flow_model.DT(start = airInletFlow_sensor.flow_model.T_out_0 + -airInletFlow_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletFlow_sensor.flow_model.C_in.Q(start = airInletFlow_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.C_in.P + (start = airInletFlow_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + airInletFlow_sensor.flow_model.C_out.Q(start = -airInletFlow_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.C_out.P + (start = airInletFlow_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.flow_model.C_out.h_outflow + (start = airInletFlow_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction airInletFlow_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletFlow_sensor.flow_model.h + (start = airInletFlow_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletFlow_sensor.flow_model.P + (start = airInletFlow_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airInletFlow_sensor.flow_model.T + (start = airInletFlow_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate airInletFlow_sensor.Qv + (start = airInletFlow_sensor.Qv_0); + Real airInletFlow_sensor.Q_lm(start = airInletFlow_sensor.Qv_0*60000, + nominal = 6000.0); + Real airInletFlow_sensor.Q_th(start = airInletFlow_sensor.Q_0*3.6, nominal = + 360.0); + Real airInletFlow_sensor.Q_lbs(start = airInletFlow_sensor.Q_0*0.453592428, + nominal = 45.3592428); + Real airInletFlow_sensor.Q_Mlbh(start = airInletFlow_sensor.Q_0* + 0.0079366414387, nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletPress_sensor.Q(start = airInletPress_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction airInletPress_sensor.Xi + [1] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.P( + start = airInletPress_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.h + (start = airInletPress_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure airInletPress_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airInletPress_sensor.state.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate airInletPress_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletPress_sensor.C_in.Q(start = airInletPress_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.C_in.P + (start = airInletPress_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + airInletPress_sensor.C_out.Q(start = -airInletPress_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.C_out.P + (start = airInletPress_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.flow_model.h_in + (start = airInletPress_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.flow_model.h_out + (start = airInletPress_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletPress_sensor.flow_model.Q(start = airInletPress_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.P_in + (start = airInletPress_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.P_out + (start = airInletPress_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction airInletPress_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density airInletPress_sensor.flow_model.rho_in + (start = airInletPress_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density airInletPress_sensor.flow_model.rho_out + (start = airInletPress_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density airInletPress_sensor.flow_model.rho + (start = airInletPress_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + airInletPress_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + airInletPress_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + airInletPress_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airInletPress_sensor.flow_model.T_in + (start = airInletPress_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airInletPress_sensor.flow_model.T_out + (start = airInletPress_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure airInletPress_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airInletPress_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure airInletPress_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airInletPress_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + airInletPress_sensor.flow_model.DP(start = airInletPress_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power airInletPress_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + airInletPress_sensor.flow_model.DH(start = airInletPress_sensor.flow_model.h_out_0 + -airInletPress_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + airInletPress_sensor.flow_model.DT(start = airInletPress_sensor.flow_model.T_out_0 + -airInletPress_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airInletPress_sensor.flow_model.C_in.Q(start = airInletPress_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.C_in.P + (start = airInletPress_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + airInletPress_sensor.flow_model.C_out.Q(start = -airInletPress_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.C_out.P + (start = airInletPress_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.flow_model.C_out.h_outflow + (start = airInletPress_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction airInletPress_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airInletPress_sensor.flow_model.h + (start = airInletPress_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airInletPress_sensor.flow_model.P + (start = airInletPress_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airInletPress_sensor.flow_model.T + (start = airInletPress_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + Real airInletPress_sensor.P_barG(start = airInletPress_sensor.P_0*1E-05-1, + nominal = 100000.0); + Real airInletPress_sensor.P_psiG(start = airInletPress_sensor.P_0*0.000145038- + 14.50377377, nominal = 14.5038); + Real airInletPress_sensor.P_MPaG(start = airInletPress_sensor.P_0*1E-06-0.1, + nominal = 0.09999999999999999); + Real airInletPress_sensor.P_kPaG(start = airInletPress_sensor.P_0*0.001-100, + nominal = 100.0); + Real airInletPress_sensor.P_barA(start = airInletPress_sensor.P_0*1E-05, + nominal = 1.0, unit = "bar"); + Real airInletPress_sensor.P_psiA(start = airInletPress_sensor.P_0*0.000145038, + nominal = 14.5038); + Real airInletPress_sensor.P_MPaA(start = airInletPress_sensor.P_0*1E-06, + nominal = 0.09999999999999999); + Real airInletPress_sensor.P_kPaA(start = airInletPress_sensor.P_0*0.001, + nominal = 100.0); + Real airInletPress_sensor.P_inHg(start = airInletPress_sensor.P_0*0.0002953006, + nominal = 29.530060000000002); + Real airInletPress_sensor.P_mbar(start = airInletPress_sensor.P_0*0.01, + nominal = 1000.0, unit = "mbar"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airOutletPress_sensor.Q(start = airOutletPress_sensor.Q_0, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction airOutletPress_sensor.Xi + [1] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.P( + start = airOutletPress_sensor.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.h + (start = airOutletPress_sensor.h_0) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure airOutletPress_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airOutletPress_sensor.state.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate airOutletPress_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airOutletPress_sensor.C_in.Q(start = airOutletPress_sensor.Q_0, nominal = + 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.C_in.P + (start = airOutletPress_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.C_in.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + airOutletPress_sensor.C_out.Q(start = -airOutletPress_sensor.Q_0, + nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.C_out.P + (start = airOutletPress_sensor.P_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.C_out.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.h_in + (start = airOutletPress_sensor.flow_model.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.h_out + (start = airOutletPress_sensor.flow_model.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airOutletPress_sensor.flow_model.Q(start = airOutletPress_sensor.flow_model.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.P_in + (start = airOutletPress_sensor.flow_model.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.P_out + (start = airOutletPress_sensor.flow_model.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction airOutletPress_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density airOutletPress_sensor.flow_model.rho_in + (start = airOutletPress_sensor.flow_model.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density airOutletPress_sensor.flow_model.rho_out + (start = airOutletPress_sensor.flow_model.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density airOutletPress_sensor.flow_model.rho + (start = airOutletPress_sensor.flow_model.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + airOutletPress_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + airOutletPress_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + airOutletPress_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airOutletPress_sensor.flow_model.T_in + (start = airOutletPress_sensor.flow_model.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airOutletPress_sensor.flow_model.T_out + (start = airOutletPress_sensor.flow_model.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure airOutletPress_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airOutletPress_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure airOutletPress_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature airOutletPress_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + airOutletPress_sensor.flow_model.DP(start = airOutletPress_sensor.flow_model.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power airOutletPress_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + airOutletPress_sensor.flow_model.DH(start = airOutletPress_sensor.flow_model.h_out_0 + -airOutletPress_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + airOutletPress_sensor.flow_model.DT(start = airOutletPress_sensor.flow_model.T_out_0 + -airOutletPress_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + airOutletPress_sensor.flow_model.C_in.Q(start = airOutletPress_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.C_in.P + (start = airOutletPress_sensor.flow_model.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + airOutletPress_sensor.flow_model.C_out.Q(start = -airOutletPress_sensor.flow_model.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.C_out.P + (start = airOutletPress_sensor.flow_model.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.C_out.h_outflow + (start = airOutletPress_sensor.flow_model.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction airOutletPress_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.h + (start = airOutletPress_sensor.flow_model.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure airOutletPress_sensor.flow_model.P + (start = airOutletPress_sensor.flow_model.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature airOutletPress_sensor.flow_model.T + (start = airOutletPress_sensor.flow_model.T_0) "Temperature of the fluid into the component"; + Real airOutletPress_sensor.P_barG(start = airOutletPress_sensor.P_0*1E-05-1, + nominal = 100000.0); + Real airOutletPress_sensor.P_psiG(start = airOutletPress_sensor.P_0* + 0.000145038-14.50377377, nominal = 14.5038); + Real airOutletPress_sensor.P_MPaG(start = airOutletPress_sensor.P_0*1E-06-0.1, + nominal = 0.09999999999999999); + Real airOutletPress_sensor.P_kPaG(start = airOutletPress_sensor.P_0*0.001-100, + nominal = 100.0); + Real airOutletPress_sensor.P_barA(start = airOutletPress_sensor.P_0*1E-05, + nominal = 1.0, unit = "bar"); + Real airOutletPress_sensor.P_psiA(start = airOutletPress_sensor.P_0* + 0.000145038, nominal = 14.5038); + Real airOutletPress_sensor.P_MPaA(start = airOutletPress_sensor.P_0*1E-06, + nominal = 0.09999999999999999); + Real airOutletPress_sensor.P_kPaA(start = airOutletPress_sensor.P_0*0.001, + nominal = 100.0); + Real airOutletPress_sensor.P_inHg(start = airOutletPress_sensor.P_0* + 0.0002953006, nominal = 29.530060000000002); + Real airOutletPress_sensor.P_mbar(start = airOutletPress_sensor.P_0*0.01, + nominal = 1000.0, unit = "mbar"); + +// Equations and algorithms + + // Component hot_source + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + hot_source.C_out.P = hot_source.P_out; + hot_source.C_out.Q = hot_source.Q_out; + hot_source.C_out.h_outflow = hot_source.h_out; + hot_source.C_out.Xi_outflow = hot_source.Xi_out; + hot_source.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (hot_source.P_out, hot_source.h_out, hot_source.Xi_out, 0, 0); + hot_source.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + hot_source.state_out); + hot_source.Qv_out = hot_source.Q_out/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + hot_source.state_out); + // end of extends + + // Component hot_sink + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + hot_sink.C_in.P = hot_sink.P_in; + hot_sink.C_in.Q = hot_sink.Q_in; + inStream(hot_sink.C_in.h_outflow) = hot_sink.h_in; + inStream(hot_sink.C_in.Xi_outflow) = hot_sink.Xi_in; + hot_sink.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (hot_sink.P_in, hot_sink.h_in, hot_sink.Xi_in, 0, 0); + hot_sink.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + hot_sink.state_in); + hot_sink.Qv_in = hot_sink.Q_in/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + hot_sink.state_in); + hot_sink.C_in.h_outflow = 0; + hot_sink.C_in.Xi_outflow = zeros(0); + // end of extends + + // Component CoolingTower.water_inlet_flow + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.water_inlet_flow.h_in = inStream(CoolingTower.water_inlet_flow.C_in.h_outflow); + CoolingTower.water_inlet_flow.h_out = CoolingTower.water_inlet_flow.C_out.h_outflow; + CoolingTower.water_inlet_flow.Q = CoolingTower.water_inlet_flow.C_in.Q; + CoolingTower.water_inlet_flow.P_in = CoolingTower.water_inlet_flow.C_in.P; + CoolingTower.water_inlet_flow.P_out = CoolingTower.water_inlet_flow.C_out.P; + CoolingTower.water_inlet_flow.Xi = inStream(CoolingTower.water_inlet_flow.C_in.Xi_outflow); + CoolingTower.water_inlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.water_inlet_flow.C_in.Xi_outflow = zeros(0); + CoolingTower.water_inlet_flow.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_inlet_flow.P_in, CoolingTower.water_inlet_flow.h_in, + CoolingTower.water_inlet_flow.Xi, 0, 0); + CoolingTower.water_inlet_flow.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_inlet_flow.P_out, CoolingTower.water_inlet_flow.h_out, + CoolingTower.water_inlet_flow.Xi, 0, 0); + CoolingTower.water_inlet_flow.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_inlet_flow.state_in); + CoolingTower.water_inlet_flow.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_inlet_flow.state_out); + CoolingTower.water_inlet_flow.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_inlet_flow.state_in); + CoolingTower.water_inlet_flow.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_inlet_flow.state_out); + CoolingTower.water_inlet_flow.rho = (CoolingTower.water_inlet_flow.rho_in+ + CoolingTower.water_inlet_flow.rho_out)/2; + CoolingTower.water_inlet_flow.Qv_in = CoolingTower.water_inlet_flow.Q/ + CoolingTower.water_inlet_flow.rho_in; + CoolingTower.water_inlet_flow.Qv_out = -CoolingTower.water_inlet_flow.Q/ + CoolingTower.water_inlet_flow.rho_out; + CoolingTower.water_inlet_flow.Qv = (CoolingTower.water_inlet_flow.Qv_in- + CoolingTower.water_inlet_flow.Qv_out)/2; + CoolingTower.water_inlet_flow.P_out-CoolingTower.water_inlet_flow.P_in = + CoolingTower.water_inlet_flow.DP; + CoolingTower.water_inlet_flow.Q*(CoolingTower.water_inlet_flow.h_out- + CoolingTower.water_inlet_flow.h_in) = CoolingTower.water_inlet_flow.W; + CoolingTower.water_inlet_flow.h_out-CoolingTower.water_inlet_flow.h_in = + CoolingTower.water_inlet_flow.DH; + CoolingTower.water_inlet_flow.T_out-CoolingTower.water_inlet_flow.T_in = + CoolingTower.water_inlet_flow.DT; + CoolingTower.water_inlet_flow.C_in.Q+CoolingTower.water_inlet_flow.C_out.Q + = 0; + CoolingTower.water_inlet_flow.C_out.Xi_outflow = inStream(CoolingTower.water_inlet_flow.C_in.Xi_outflow); + assert(CoolingTower.water_inlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + CoolingTower.water_inlet_flow.h = CoolingTower.water_inlet_flow.h_in; + CoolingTower.water_inlet_flow.DH = 0; + // end of extends + equation + CoolingTower.water_inlet_flow.DP = CoolingTower.water_inlet_flow.DP_input; + + // Component CoolingTower.water_outlet_flow + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.water_outlet_flow.h_in = inStream(CoolingTower.water_outlet_flow.C_in.h_outflow); + CoolingTower.water_outlet_flow.h_out = CoolingTower.water_outlet_flow.C_out.h_outflow; + CoolingTower.water_outlet_flow.Q = CoolingTower.water_outlet_flow.C_in.Q; + CoolingTower.water_outlet_flow.P_in = CoolingTower.water_outlet_flow.C_in.P; + CoolingTower.water_outlet_flow.P_out = CoolingTower.water_outlet_flow.C_out.P; + CoolingTower.water_outlet_flow.Xi = inStream(CoolingTower.water_outlet_flow.C_in.Xi_outflow); + CoolingTower.water_outlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.water_outlet_flow.C_in.Xi_outflow = zeros(0); + CoolingTower.water_outlet_flow.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_outlet_flow.P_in, CoolingTower.water_outlet_flow.h_in, + CoolingTower.water_outlet_flow.Xi, 0, 0); + CoolingTower.water_outlet_flow.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_outlet_flow.P_out, CoolingTower.water_outlet_flow.h_out, + CoolingTower.water_outlet_flow.Xi, 0, 0); + CoolingTower.water_outlet_flow.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_outlet_flow.state_in); + CoolingTower.water_outlet_flow.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_outlet_flow.state_out); + CoolingTower.water_outlet_flow.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_outlet_flow.state_in); + CoolingTower.water_outlet_flow.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_outlet_flow.state_out); + CoolingTower.water_outlet_flow.rho = (CoolingTower.water_outlet_flow.rho_in + +CoolingTower.water_outlet_flow.rho_out)/2; + CoolingTower.water_outlet_flow.Qv_in = CoolingTower.water_outlet_flow.Q/ + CoolingTower.water_outlet_flow.rho_in; + CoolingTower.water_outlet_flow.Qv_out = -CoolingTower.water_outlet_flow.Q + /CoolingTower.water_outlet_flow.rho_out; + CoolingTower.water_outlet_flow.Qv = (CoolingTower.water_outlet_flow.Qv_in- + CoolingTower.water_outlet_flow.Qv_out)/2; + CoolingTower.water_outlet_flow.P_out-CoolingTower.water_outlet_flow.P_in + = CoolingTower.water_outlet_flow.DP; + CoolingTower.water_outlet_flow.Q*(CoolingTower.water_outlet_flow.h_out- + CoolingTower.water_outlet_flow.h_in) = CoolingTower.water_outlet_flow.W; + CoolingTower.water_outlet_flow.h_out-CoolingTower.water_outlet_flow.h_in + = CoolingTower.water_outlet_flow.DH; + CoolingTower.water_outlet_flow.T_out-CoolingTower.water_outlet_flow.T_in + = CoolingTower.water_outlet_flow.DT; + CoolingTower.water_outlet_flow.C_in.Q+CoolingTower.water_outlet_flow.C_out.Q + = 0; + CoolingTower.water_outlet_flow.C_out.Xi_outflow = inStream( + CoolingTower.water_outlet_flow.C_in.Xi_outflow); + assert(CoolingTower.water_outlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CoolingTower.water_outlet_flow.P = CoolingTower.water_outlet_flow.P_in; + CoolingTower.water_outlet_flow.h = CoolingTower.water_outlet_flow.h_in; + CoolingTower.water_outlet_flow.T = CoolingTower.water_outlet_flow.T_in; + CoolingTower.water_outlet_flow.DP = 0; + CoolingTower.water_outlet_flow.DH = 0; + // end of extends + + // Component CoolingTower.water_outlet + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + CoolingTower.water_outlet.C_out.P = CoolingTower.water_outlet.P_out; + CoolingTower.water_outlet.C_out.Q = CoolingTower.water_outlet.Q_out; + CoolingTower.water_outlet.C_out.h_outflow = CoolingTower.water_outlet.h_out; + CoolingTower.water_outlet.C_out.Xi_outflow = CoolingTower.water_outlet.Xi_out; + CoolingTower.water_outlet.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_outlet.P_out, CoolingTower.water_outlet.h_out, + CoolingTower.water_outlet.Xi_out, 0, 0); + CoolingTower.water_outlet.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_outlet.state_out); + CoolingTower.water_outlet.Qv_out = CoolingTower.water_outlet.Q_out/ + Modelica.Media.Water.WaterIF97_ph.density_Unique6( + CoolingTower.water_outlet.state_out); + // end of extends + + // Component CoolingTower.water_inlet + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + CoolingTower.water_inlet.C_in.P = CoolingTower.water_inlet.P_in; + CoolingTower.water_inlet.C_in.Q = CoolingTower.water_inlet.Q_in; + inStream(CoolingTower.water_inlet.C_in.h_outflow) = CoolingTower.water_inlet.h_in; + inStream(CoolingTower.water_inlet.C_in.Xi_outflow) = CoolingTower.water_inlet.Xi_in; + CoolingTower.water_inlet.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_inlet.P_in, CoolingTower.water_inlet.h_in, + CoolingTower.water_inlet.Xi_in, 0, 0); + CoolingTower.water_inlet.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_inlet.state_in); + CoolingTower.water_inlet.Qv_in = CoolingTower.water_inlet.Q_in/ + Modelica.Media.Water.WaterIF97_ph.density_Unique6( + CoolingTower.water_inlet.state_in); + CoolingTower.water_inlet.C_in.h_outflow = 0; + CoolingTower.water_inlet.C_in.Xi_outflow = zeros(0); + // end of extends + + // Component CoolingTower.air_inlet_flow + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.air_inlet_flow.h_in = inStream(CoolingTower.air_inlet_flow.C_in.h_outflow); + CoolingTower.air_inlet_flow.h_out = CoolingTower.air_inlet_flow.C_out.h_outflow; + CoolingTower.air_inlet_flow.Q = CoolingTower.air_inlet_flow.C_in.Q; + CoolingTower.air_inlet_flow.P_in = CoolingTower.air_inlet_flow.C_in.P; + CoolingTower.air_inlet_flow.P_out = CoolingTower.air_inlet_flow.C_out.P; + CoolingTower.air_inlet_flow.Xi = inStream(CoolingTower.air_inlet_flow.C_in.Xi_outflow); + CoolingTower.air_inlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.air_inlet_flow.C_in.Xi_outflow = zeros(1); + CoolingTower.air_inlet_flow.state_in = setState_phX_Unique7( + CoolingTower.air_inlet_flow.P_in, CoolingTower.air_inlet_flow.h_in, + CoolingTower.air_inlet_flow.Xi); + CoolingTower.air_inlet_flow.state_out = setState_phX_Unique7( + CoolingTower.air_inlet_flow.P_out, CoolingTower.air_inlet_flow.h_out, + CoolingTower.air_inlet_flow.Xi); + CoolingTower.air_inlet_flow.T_in = temperature_Unique25( + CoolingTower.air_inlet_flow.state_in); + CoolingTower.air_inlet_flow.T_out = temperature_Unique25( + CoolingTower.air_inlet_flow.state_out); + CoolingTower.air_inlet_flow.rho_in = density_Unique26( + CoolingTower.air_inlet_flow.state_in); + CoolingTower.air_inlet_flow.rho_out = density_Unique26( + CoolingTower.air_inlet_flow.state_out); + CoolingTower.air_inlet_flow.rho = (CoolingTower.air_inlet_flow.rho_in+ + CoolingTower.air_inlet_flow.rho_out)/2; + CoolingTower.air_inlet_flow.Qv_in = CoolingTower.air_inlet_flow.Q/ + CoolingTower.air_inlet_flow.rho_in; + CoolingTower.air_inlet_flow.Qv_out = -CoolingTower.air_inlet_flow.Q/ + CoolingTower.air_inlet_flow.rho_out; + CoolingTower.air_inlet_flow.Qv = (CoolingTower.air_inlet_flow.Qv_in- + CoolingTower.air_inlet_flow.Qv_out)/2; + CoolingTower.air_inlet_flow.P_out-CoolingTower.air_inlet_flow.P_in = + CoolingTower.air_inlet_flow.DP; + CoolingTower.air_inlet_flow.Q*(CoolingTower.air_inlet_flow.h_out- + CoolingTower.air_inlet_flow.h_in) = CoolingTower.air_inlet_flow.W; + CoolingTower.air_inlet_flow.h_out-CoolingTower.air_inlet_flow.h_in = + CoolingTower.air_inlet_flow.DH; + CoolingTower.air_inlet_flow.T_out-CoolingTower.air_inlet_flow.T_in = + CoolingTower.air_inlet_flow.DT; + CoolingTower.air_inlet_flow.C_in.Q+CoolingTower.air_inlet_flow.C_out.Q = 0; + CoolingTower.air_inlet_flow.C_out.Xi_outflow = inStream(CoolingTower.air_inlet_flow.C_in.Xi_outflow); + assert(CoolingTower.air_inlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CoolingTower.air_inlet_flow.P = CoolingTower.air_inlet_flow.P_in; + CoolingTower.air_inlet_flow.h = CoolingTower.air_inlet_flow.h_in; + CoolingTower.air_inlet_flow.T = CoolingTower.air_inlet_flow.T_in; + CoolingTower.air_inlet_flow.DP = 0; + CoolingTower.air_inlet_flow.DH = 0; + // end of extends + + // Component CoolingTower.air_inlet + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + CoolingTower.air_inlet.C_in.P = CoolingTower.air_inlet.P_in; + CoolingTower.air_inlet.C_in.Q = CoolingTower.air_inlet.Q_in; + inStream(CoolingTower.air_inlet.C_in.h_outflow) = CoolingTower.air_inlet.h_in; + inStream(CoolingTower.air_inlet.C_in.Xi_outflow) = CoolingTower.air_inlet.Xi_in; + CoolingTower.air_inlet.state_in = setState_phX_Unique7(CoolingTower.air_inlet.P_in, + CoolingTower.air_inlet.h_in, CoolingTower.air_inlet.Xi_in); + CoolingTower.air_inlet.T_in = temperature_Unique25( + CoolingTower.air_inlet.state_in); + CoolingTower.air_inlet.Qv_in = CoolingTower.air_inlet.Q_in/ + density_Unique26( + CoolingTower.air_inlet.state_in); + CoolingTower.air_inlet.C_in.h_outflow = 0; + CoolingTower.air_inlet.C_in.Xi_outflow = zeros(1); + // end of extends + equation + CoolingTower.air_inlet.Xi_in[1] = massFraction_pTphi_Unique28( + CoolingTower.air_inlet.P_in, CoolingTower.air_inlet.T_in, CoolingTower.air_inlet.relative_humidity); + + // Component CoolingTower.air_outlet + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + CoolingTower.air_outlet.C_out.P = CoolingTower.air_outlet.P_out; + CoolingTower.air_outlet.C_out.Q = CoolingTower.air_outlet.Q_out; + CoolingTower.air_outlet.C_out.h_outflow = CoolingTower.air_outlet.h_out; + CoolingTower.air_outlet.C_out.Xi_outflow = CoolingTower.air_outlet.Xi_out; + CoolingTower.air_outlet.state_out = setState_phX_Unique7(CoolingTower.air_outlet.P_out, + CoolingTower.air_outlet.h_out, CoolingTower.air_outlet.Xi_out); + CoolingTower.air_outlet.T_out = temperature_Unique25( + CoolingTower.air_outlet.state_out); + CoolingTower.air_outlet.Qv_out = CoolingTower.air_outlet.Q_out/ + density_Unique26( + CoolingTower.air_outlet.state_out); + // end of extends + equation + CoolingTower.air_outlet.Xi_out[1] = massFraction_pTphi_Unique28( + CoolingTower.air_outlet.P_out, CoolingTower.air_outlet.T_out, + CoolingTower.air_outlet.relative_humidity); + + // Component CoolingTower.air_outlet_flow + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.air_outlet_flow.h_in = inStream(CoolingTower.air_outlet_flow.C_in.h_outflow); + CoolingTower.air_outlet_flow.h_out = CoolingTower.air_outlet_flow.C_out.h_outflow; + CoolingTower.air_outlet_flow.Q = CoolingTower.air_outlet_flow.C_in.Q; + CoolingTower.air_outlet_flow.P_in = CoolingTower.air_outlet_flow.C_in.P; + CoolingTower.air_outlet_flow.P_out = CoolingTower.air_outlet_flow.C_out.P; + CoolingTower.air_outlet_flow.Xi = inStream(CoolingTower.air_outlet_flow.C_in.Xi_outflow); + CoolingTower.air_outlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.air_outlet_flow.C_in.Xi_outflow = zeros(1); + CoolingTower.air_outlet_flow.state_in = setState_phX_Unique7( + CoolingTower.air_outlet_flow.P_in, CoolingTower.air_outlet_flow.h_in, + CoolingTower.air_outlet_flow.Xi); + CoolingTower.air_outlet_flow.state_out = setState_phX_Unique7( + CoolingTower.air_outlet_flow.P_out, CoolingTower.air_outlet_flow.h_out, + CoolingTower.air_outlet_flow.Xi); + CoolingTower.air_outlet_flow.T_in = temperature_Unique25( + CoolingTower.air_outlet_flow.state_in); + CoolingTower.air_outlet_flow.T_out = temperature_Unique25( + CoolingTower.air_outlet_flow.state_out); + CoolingTower.air_outlet_flow.rho_in = density_Unique26( + CoolingTower.air_outlet_flow.state_in); + CoolingTower.air_outlet_flow.rho_out = density_Unique26( + CoolingTower.air_outlet_flow.state_out); + CoolingTower.air_outlet_flow.rho = (CoolingTower.air_outlet_flow.rho_in+ + CoolingTower.air_outlet_flow.rho_out)/2; + CoolingTower.air_outlet_flow.Qv_in = CoolingTower.air_outlet_flow.Q/ + CoolingTower.air_outlet_flow.rho_in; + CoolingTower.air_outlet_flow.Qv_out = -CoolingTower.air_outlet_flow.Q/ + CoolingTower.air_outlet_flow.rho_out; + CoolingTower.air_outlet_flow.Qv = (CoolingTower.air_outlet_flow.Qv_in- + CoolingTower.air_outlet_flow.Qv_out)/2; + CoolingTower.air_outlet_flow.P_out-CoolingTower.air_outlet_flow.P_in = + CoolingTower.air_outlet_flow.DP; + CoolingTower.air_outlet_flow.Q*(CoolingTower.air_outlet_flow.h_out- + CoolingTower.air_outlet_flow.h_in) = CoolingTower.air_outlet_flow.W; + CoolingTower.air_outlet_flow.h_out-CoolingTower.air_outlet_flow.h_in = + CoolingTower.air_outlet_flow.DH; + CoolingTower.air_outlet_flow.T_out-CoolingTower.air_outlet_flow.T_in = + CoolingTower.air_outlet_flow.DT; + CoolingTower.air_outlet_flow.C_in.Q+CoolingTower.air_outlet_flow.C_out.Q + = 0; + CoolingTower.air_outlet_flow.C_out.Xi_outflow = inStream(CoolingTower.air_outlet_flow.C_in.Xi_outflow); + assert(CoolingTower.air_outlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CoolingTower.air_outlet_flow.P = CoolingTower.air_outlet_flow.P_in; + CoolingTower.air_outlet_flow.h = CoolingTower.air_outlet_flow.h_in; + CoolingTower.air_outlet_flow.T = CoolingTower.air_outlet_flow.T_in; + CoolingTower.air_outlet_flow.DP = 0; + CoolingTower.air_outlet_flow.DH = 0; + // end of extends + + // Component CoolingTower + // class MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial + equation + CoolingTower.air_inlet_flow.P_out = CoolingTower.Pin[1]; + CoolingTower.air_inlet_flow.Q = CoolingTower.Q_cold_in; + CoolingTower.air_inlet_connector.h_outflow = CoolingTower.i_initial; + CoolingTower.air_inlet.T_in = CoolingTower.T_cold_in; + CoolingTower.w_in = CoolingTower.air_inlet.relative_humidity* + xsaturation_Unique37( + CoolingTower.air_inlet_flow.state_in); + CoolingTower.air_outlet_flow.P_in = CoolingTower.Pin[1]; + CoolingTower.air_outlet_flow.Q = CoolingTower.Q_cold_out; + CoolingTower.air_outlet_connector.h_outflow = CoolingTower.i_final; + CoolingTower.air_outlet.T_out = CoolingTower.T_cold_out; + CoolingTower.w_out = CoolingTower.air_outlet.relative_humidity* + xsaturation_Unique37( + CoolingTower.air_outlet_flow.state_out); + CoolingTower.water_inlet_flow.P_out = CoolingTower.Pin[1]; + CoolingTower.water_inlet_flow.Q = CoolingTower.Q_hot_in; + CoolingTower.water_inlet_flow.T_in = CoolingTower.T_hot_in; + CoolingTower.cp[1] = Modelica.Media.Water.WaterIF97_ph.specificHeatCapacityCp_Unique38 + ( + CoolingTower.water_inlet_flow.state_in); + CoolingTower.water_outlet_flow.P_out = CoolingTower.Pin[1]; + CoolingTower.water_outlet_flow.Q = CoolingTower.Q_hot_out; + CoolingTower.water_outlet_flow.T_in = CoolingTower.T_hot_out; + CoolingTower.deltaT = (CoolingTower.T_hot_in-CoolingTower.T_hot_out)/( + CoolingTower.N_step-1); + CoolingTower.deltacp = (CoolingTower.cp[CoolingTower.N_step]-CoolingTower.cp + [1])/(CoolingTower.N_step-1); + for n in (1:CoolingTower.N_step) loop + CoolingTower.Tw[n] = CoolingTower.T_hot_in+(CoolingTower.T_hot_out- + CoolingTower.T_hot_in)*(n-1)/(CoolingTower.N_step-1); + CoolingTower.Ta[n] = CoolingTower.T_cold_in+(CoolingTower.T_cold_out- + CoolingTower.T_cold_in)*(n-1)/(CoolingTower.N_step-1); + end for; + for n in (1:CoolingTower.N_step-1) loop + CoolingTower.w[n+1] = CoolingTower.w[n]+CoolingTower.deltaT* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.f + (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], + CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], + CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.i[n+1] = CoolingTower.i[n]+CoolingTower.deltaT* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.g + (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], + CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], + CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.M[n+1] = CoolingTower.M[n]+CoolingTower.deltaT* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.h + (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], + CoolingTower.cp[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.Qw[n+1] = CoolingTower.Qw[n]-CoolingTower.Qa[n]*( + CoolingTower.w[n+1]-CoolingTower.w[n]); + CoolingTower.Qa[n+1] = CoolingTower.Qa[n]*(1+CoolingTower.w[n+1]); + CoolingTower.Lef[n+1] = 0.9077990913*((xsaturation_pT_Unique39( + CoolingTower.Pin[n+1], CoolingTower.Ta[n+1])+0.622)/(CoolingTower.w[n+1] + +0.622)-1)/log((xsaturation_pT_Unique39(CoolingTower.Pin[n+1], + CoolingTower.Ta[n+1])+0.622)/(CoolingTower.w[n+1]+0.622)); + CoolingTower.cp[n+1] = CoolingTower.cp[n]+CoolingTower.deltacp* + CoolingTower.N_step; + CoolingTower.Pin[n+1] = CoolingTower.Pin[n]; + end for; + CoolingTower.w[1] = CoolingTower.w_in; + CoolingTower.w[CoolingTower.N_step] = CoolingTower.w_out; + CoolingTower.i[1] = CoolingTower.i_initial; + CoolingTower.i[CoolingTower.N_step] = CoolingTower.i_final; + CoolingTower.M[1] = CoolingTower.hd*CoolingTower.Afr/CoolingTower.Qw[1]; + CoolingTower.M[CoolingTower.N_step] = CoolingTower.hd*CoolingTower.Afr/ + CoolingTower.Qw[CoolingTower.N_step]; + CoolingTower.Qw[1] = CoolingTower.Q_hot_in; + CoolingTower.Qw[CoolingTower.N_step] = CoolingTower.Q_hot_out; + CoolingTower.Qa[1] = CoolingTower.Q_cold_in; + CoolingTower.Qa[CoolingTower.N_step] = CoolingTower.Q_cold_out; + CoolingTower.Lef[1] = 0.9077990913*((xsaturation_pT_Unique39( + CoolingTower.Pin[1], CoolingTower.Ta[1])+0.622)/(CoolingTower.w[1]+0.622)-1) + /log((xsaturation_pT_Unique39(CoolingTower.Pin[1], CoolingTower.Ta[1])+ + 0.622)/(CoolingTower.w[1]+0.622)); + CoolingTower.rho_air_inlet = CoolingTower.air_inlet_flow.rho_in; + CoolingTower.rho_air_outlet = CoolingTower.air_outlet_flow.rho_out; + 0.25*(CoolingTower.rho_air_inlet+CoolingTower.rho_air_outlet)* + CoolingTower.Cf*abs(CoolingTower.V_inlet)*CoolingTower.V_inlet = ( + CoolingTower.rho_air_inlet-CoolingTower.rho_air_outlet)*CoolingTower.gr* + CoolingTower.Lfi; + CoolingTower.Q_cold_in = CoolingTower.V_inlet*CoolingTower.Afr* + CoolingTower.rho_air_inlet*(1-CoolingTower.air_inlet.Xi_in[1]); + CoolingTower.air_inlet_flow.C_out.P = CoolingTower.air_inlet.C_in.P; + CoolingTower.air_inlet.C_in.Q+CoolingTower.air_inlet_flow.C_out.Q = 0.0; + CoolingTower.air_inlet_flow.C_in.P = CoolingTower.air_inlet_connector.P; + CoolingTower.air_inlet_connector.Q-CoolingTower.air_inlet_flow.C_in.Q = 0.0; + CoolingTower.air_outlet_flow.C_in.P = CoolingTower.air_outlet.C_out.P; + CoolingTower.air_outlet.C_out.Q+CoolingTower.air_outlet_flow.C_in.Q = 0.0; + CoolingTower.air_outlet_flow.C_out.P = CoolingTower.air_outlet_connector.P; + CoolingTower.air_outlet_connector.Q-CoolingTower.air_outlet_flow.C_out.Q = + 0.0; + CoolingTower.water_inlet_flow.C_out.P = CoolingTower.water_inlet.C_in.P; + CoolingTower.water_inlet.C_in.Q+CoolingTower.water_inlet_flow.C_out.Q = 0.0; + CoolingTower.water_inlet_flow.C_in.P = CoolingTower.water_inlet_connector.P; + CoolingTower.water_inlet_connector.Q-CoolingTower.water_inlet_flow.C_in.Q = + 0.0; + CoolingTower.water_outlet_flow.C_in.P = CoolingTower.water_outlet.C_out.P; + CoolingTower.water_outlet.C_out.Q+CoolingTower.water_outlet_flow.C_in.Q = + 0.0; + CoolingTower.water_outlet_flow.C_out.P = CoolingTower.water_outlet_connector.P; + CoolingTower.water_outlet_connector.Q-CoolingTower.water_outlet_flow.C_out.Q + = 0.0; + + // Component cold_source + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + cold_source.C_out.P = cold_source.P_out; + cold_source.C_out.Q = cold_source.Q_out; + cold_source.C_out.h_outflow = cold_source.h_out; + cold_source.C_out.Xi_outflow = cold_source.Xi_out; + cold_source.state_out = setState_phX_Unique7(cold_source.P_out, + cold_source.h_out, cold_source.Xi_out); + cold_source.T_out = temperature_Unique25( + cold_source.state_out); + cold_source.Qv_out = cold_source.Q_out/density_Unique26( + cold_source.state_out); + // end of extends + equation + cold_source.Xi_out[1] = massFraction_pTphi_Unique28(cold_source.P_out, + cold_source.T_out, cold_source.relative_humidity); + + // Component cold_sink + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + cold_sink.C_in.P = cold_sink.P_in; + cold_sink.C_in.Q = cold_sink.Q_in; + inStream(cold_sink.C_in.h_outflow) = cold_sink.h_in; + inStream(cold_sink.C_in.Xi_outflow) = cold_sink.Xi_in; + cold_sink.state_in = setState_phX_Unique7(cold_sink.P_in, cold_sink.h_in, + cold_sink.Xi_in); + cold_sink.T_in = temperature_Unique25( + cold_sink.state_in); + cold_sink.Qv_in = cold_sink.Q_in/density_Unique26( + cold_sink.state_in); + cold_sink.C_in.h_outflow = 0; + cold_sink.C_in.Xi_outflow = zeros(1); + // end of extends + equation + cold_sink.Xi_in[1] = massFraction_pTphi_Unique28(cold_sink.P_in, + cold_sink.T_in, cold_sink.relative_humidity); + + // Component waterInletPress_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + waterInletPress_sensor.flow_model.h_in = inStream(waterInletPress_sensor.flow_model.C_in.h_outflow); + waterInletPress_sensor.flow_model.h_out = waterInletPress_sensor.flow_model.C_out.h_outflow; + waterInletPress_sensor.flow_model.Q = waterInletPress_sensor.flow_model.C_in.Q; + waterInletPress_sensor.flow_model.P_in = waterInletPress_sensor.flow_model.C_in.P; + waterInletPress_sensor.flow_model.P_out = waterInletPress_sensor.flow_model.C_out.P; + waterInletPress_sensor.flow_model.Xi = inStream(waterInletPress_sensor.flow_model.C_in.Xi_outflow); + waterInletPress_sensor.flow_model.C_in.h_outflow = 1000000.0; + waterInletPress_sensor.flow_model.C_in.Xi_outflow = zeros(0); + waterInletPress_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterInletPress_sensor.flow_model.P_in, waterInletPress_sensor.flow_model.h_in, + waterInletPress_sensor.flow_model.Xi, 0, 0); + waterInletPress_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterInletPress_sensor.flow_model.P_out, waterInletPress_sensor.flow_model.h_out, + waterInletPress_sensor.flow_model.Xi, 0, 0); + waterInletPress_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + waterInletPress_sensor.flow_model.state_in); + waterInletPress_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + waterInletPress_sensor.flow_model.state_out); + waterInletPress_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterInletPress_sensor.flow_model.state_in); + waterInletPress_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterInletPress_sensor.flow_model.state_out); + waterInletPress_sensor.flow_model.rho = (waterInletPress_sensor.flow_model.rho_in + +waterInletPress_sensor.flow_model.rho_out)/2; + waterInletPress_sensor.flow_model.Qv_in = waterInletPress_sensor.flow_model.Q + /waterInletPress_sensor.flow_model.rho_in; + waterInletPress_sensor.flow_model.Qv_out = -waterInletPress_sensor.flow_model.Q + /waterInletPress_sensor.flow_model.rho_out; + waterInletPress_sensor.flow_model.Qv = (waterInletPress_sensor.flow_model.Qv_in + -waterInletPress_sensor.flow_model.Qv_out)/2; + waterInletPress_sensor.flow_model.P_out-waterInletPress_sensor.flow_model.P_in + = waterInletPress_sensor.flow_model.DP; + waterInletPress_sensor.flow_model.Q*(waterInletPress_sensor.flow_model.h_out + -waterInletPress_sensor.flow_model.h_in) = waterInletPress_sensor.flow_model.W; + waterInletPress_sensor.flow_model.h_out-waterInletPress_sensor.flow_model.h_in + = waterInletPress_sensor.flow_model.DH; + waterInletPress_sensor.flow_model.T_out-waterInletPress_sensor.flow_model.T_in + = waterInletPress_sensor.flow_model.DT; + waterInletPress_sensor.flow_model.C_in.Q+waterInletPress_sensor.flow_model.C_out.Q + = 0; + waterInletPress_sensor.flow_model.C_out.Xi_outflow = inStream( + waterInletPress_sensor.flow_model.C_in.Xi_outflow); + assert(waterInletPress_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + waterInletPress_sensor.flow_model.P = waterInletPress_sensor.flow_model.P_in; + waterInletPress_sensor.flow_model.h = waterInletPress_sensor.flow_model.h_in; + waterInletPress_sensor.flow_model.T = waterInletPress_sensor.flow_model.T_in; + waterInletPress_sensor.flow_model.DP = 0; + waterInletPress_sensor.flow_model.DH = 0; + // end of extends + + // Component waterInletPress_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not waterInletPress_sensor.faulty_flow_rate) then + waterInletPress_sensor.mass_flow_rate_bias = 0; + end if; + waterInletPress_sensor.P = waterInletPress_sensor.C_in.P; + waterInletPress_sensor.Q = waterInletPress_sensor.C_in.Q+waterInletPress_sensor.mass_flow_rate_bias; + waterInletPress_sensor.Xi = inStream(waterInletPress_sensor.C_in.Xi_outflow); + waterInletPress_sensor.h = inStream(waterInletPress_sensor.C_in.h_outflow); + waterInletPress_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterInletPress_sensor.P, waterInletPress_sensor.h, waterInletPress_sensor.Xi, + 0, 0); + assert(waterInletPress_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + waterInletPress_sensor.P_barA = waterInletPress_sensor.P*1E-05; + waterInletPress_sensor.P_psiA = waterInletPress_sensor.P*0.000145038; + waterInletPress_sensor.P_MPaA = waterInletPress_sensor.P*1E-06; + waterInletPress_sensor.P_kPaA = waterInletPress_sensor.P*0.001; + waterInletPress_sensor.P_barG = waterInletPress_sensor.P_barA-1; + waterInletPress_sensor.P_psiG = waterInletPress_sensor.P_psiA-14.50377377; + waterInletPress_sensor.P_MPaG = waterInletPress_sensor.P_MPaA-0.1; + waterInletPress_sensor.P_kPaG = waterInletPress_sensor.P_kPaA-100; + waterInletPress_sensor.P_mbar = waterInletPress_sensor.P*0.01; + waterInletPress_sensor.P_inHg = waterInletPress_sensor.P*0.0002953006; + // end of extends + equation + waterInletPress_sensor.flow_model.C_in.P = waterInletPress_sensor.C_in.P; + waterInletPress_sensor.C_in.Q-waterInletPress_sensor.flow_model.C_in.Q = 0.0; + waterInletPress_sensor.flow_model.C_out.P = waterInletPress_sensor.C_out.P; + waterInletPress_sensor.C_out.Q-waterInletPress_sensor.flow_model.C_out.Q = + 0.0; + + // Component AirInletTemp_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + AirInletTemp_sensor.flow_model.h_in = inStream(AirInletTemp_sensor.flow_model.C_in.h_outflow); + AirInletTemp_sensor.flow_model.h_out = AirInletTemp_sensor.flow_model.C_out.h_outflow; + AirInletTemp_sensor.flow_model.Q = AirInletTemp_sensor.flow_model.C_in.Q; + AirInletTemp_sensor.flow_model.P_in = AirInletTemp_sensor.flow_model.C_in.P; + AirInletTemp_sensor.flow_model.P_out = AirInletTemp_sensor.flow_model.C_out.P; + AirInletTemp_sensor.flow_model.Xi = inStream(AirInletTemp_sensor.flow_model.C_in.Xi_outflow); + AirInletTemp_sensor.flow_model.C_in.h_outflow = 1000000.0; + AirInletTemp_sensor.flow_model.C_in.Xi_outflow = zeros(1); + AirInletTemp_sensor.flow_model.state_in = setState_phX_Unique7( + AirInletTemp_sensor.flow_model.P_in, AirInletTemp_sensor.flow_model.h_in, + AirInletTemp_sensor.flow_model.Xi); + AirInletTemp_sensor.flow_model.state_out = setState_phX_Unique7( + AirInletTemp_sensor.flow_model.P_out, AirInletTemp_sensor.flow_model.h_out, + AirInletTemp_sensor.flow_model.Xi); + AirInletTemp_sensor.flow_model.T_in = temperature_Unique25( + AirInletTemp_sensor.flow_model.state_in); + AirInletTemp_sensor.flow_model.T_out = temperature_Unique25( + AirInletTemp_sensor.flow_model.state_out); + AirInletTemp_sensor.flow_model.rho_in = density_Unique26( + AirInletTemp_sensor.flow_model.state_in); + AirInletTemp_sensor.flow_model.rho_out = density_Unique26( + AirInletTemp_sensor.flow_model.state_out); + AirInletTemp_sensor.flow_model.rho = (AirInletTemp_sensor.flow_model.rho_in + +AirInletTemp_sensor.flow_model.rho_out)/2; + AirInletTemp_sensor.flow_model.Qv_in = AirInletTemp_sensor.flow_model.Q/ + AirInletTemp_sensor.flow_model.rho_in; + AirInletTemp_sensor.flow_model.Qv_out = -AirInletTemp_sensor.flow_model.Q + /AirInletTemp_sensor.flow_model.rho_out; + AirInletTemp_sensor.flow_model.Qv = (AirInletTemp_sensor.flow_model.Qv_in- + AirInletTemp_sensor.flow_model.Qv_out)/2; + AirInletTemp_sensor.flow_model.P_out-AirInletTemp_sensor.flow_model.P_in + = AirInletTemp_sensor.flow_model.DP; + AirInletTemp_sensor.flow_model.Q*(AirInletTemp_sensor.flow_model.h_out- + AirInletTemp_sensor.flow_model.h_in) = AirInletTemp_sensor.flow_model.W; + AirInletTemp_sensor.flow_model.h_out-AirInletTemp_sensor.flow_model.h_in + = AirInletTemp_sensor.flow_model.DH; + AirInletTemp_sensor.flow_model.T_out-AirInletTemp_sensor.flow_model.T_in + = AirInletTemp_sensor.flow_model.DT; + AirInletTemp_sensor.flow_model.C_in.Q+AirInletTemp_sensor.flow_model.C_out.Q + = 0; + AirInletTemp_sensor.flow_model.C_out.Xi_outflow = inStream( + AirInletTemp_sensor.flow_model.C_in.Xi_outflow); + assert(AirInletTemp_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + AirInletTemp_sensor.flow_model.P = AirInletTemp_sensor.flow_model.P_in; + AirInletTemp_sensor.flow_model.h = AirInletTemp_sensor.flow_model.h_in; + AirInletTemp_sensor.flow_model.T = AirInletTemp_sensor.flow_model.T_in; + AirInletTemp_sensor.flow_model.DP = 0; + AirInletTemp_sensor.flow_model.DH = 0; + // end of extends + + // Component AirInletTemp_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not AirInletTemp_sensor.faulty_flow_rate) then + AirInletTemp_sensor.mass_flow_rate_bias = 0; + end if; + AirInletTemp_sensor.P = AirInletTemp_sensor.C_in.P; + AirInletTemp_sensor.Q = AirInletTemp_sensor.C_in.Q+AirInletTemp_sensor.mass_flow_rate_bias; + AirInletTemp_sensor.Xi = inStream(AirInletTemp_sensor.C_in.Xi_outflow); + AirInletTemp_sensor.h = inStream(AirInletTemp_sensor.C_in.h_outflow); + AirInletTemp_sensor.state = setState_phX_Unique7(AirInletTemp_sensor.P, + AirInletTemp_sensor.h, AirInletTemp_sensor.Xi); + assert(AirInletTemp_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + AirInletTemp_sensor.T = AirInletTemp_sensor.flow_model.T; + AirInletTemp_sensor.T_degC+273.15 = AirInletTemp_sensor.T; + AirInletTemp_sensor.T_degF = AirInletTemp_sensor.T_degC*1.8+32; + // end of extends + equation + AirInletTemp_sensor.flow_model.C_in.P = AirInletTemp_sensor.C_in.P; + AirInletTemp_sensor.C_in.Q-AirInletTemp_sensor.flow_model.C_in.Q = 0.0; + AirInletTemp_sensor.flow_model.C_out.P = AirInletTemp_sensor.C_out.P; + AirInletTemp_sensor.C_out.Q-AirInletTemp_sensor.flow_model.C_out.Q = 0.0; + + // Component waterInletTemp_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + waterInletTemp_sensor.flow_model.h_in = inStream(waterInletTemp_sensor.flow_model.C_in.h_outflow); + waterInletTemp_sensor.flow_model.h_out = waterInletTemp_sensor.flow_model.C_out.h_outflow; + waterInletTemp_sensor.flow_model.Q = waterInletTemp_sensor.flow_model.C_in.Q; + waterInletTemp_sensor.flow_model.P_in = waterInletTemp_sensor.flow_model.C_in.P; + waterInletTemp_sensor.flow_model.P_out = waterInletTemp_sensor.flow_model.C_out.P; + waterInletTemp_sensor.flow_model.Xi = inStream(waterInletTemp_sensor.flow_model.C_in.Xi_outflow); + waterInletTemp_sensor.flow_model.C_in.h_outflow = 1000000.0; + waterInletTemp_sensor.flow_model.C_in.Xi_outflow = zeros(0); + waterInletTemp_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterInletTemp_sensor.flow_model.P_in, waterInletTemp_sensor.flow_model.h_in, + waterInletTemp_sensor.flow_model.Xi, 0, 0); + waterInletTemp_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterInletTemp_sensor.flow_model.P_out, waterInletTemp_sensor.flow_model.h_out, + waterInletTemp_sensor.flow_model.Xi, 0, 0); + waterInletTemp_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + waterInletTemp_sensor.flow_model.state_in); + waterInletTemp_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + waterInletTemp_sensor.flow_model.state_out); + waterInletTemp_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterInletTemp_sensor.flow_model.state_in); + waterInletTemp_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterInletTemp_sensor.flow_model.state_out); + waterInletTemp_sensor.flow_model.rho = (waterInletTemp_sensor.flow_model.rho_in + +waterInletTemp_sensor.flow_model.rho_out)/2; + waterInletTemp_sensor.flow_model.Qv_in = waterInletTemp_sensor.flow_model.Q + /waterInletTemp_sensor.flow_model.rho_in; + waterInletTemp_sensor.flow_model.Qv_out = -waterInletTemp_sensor.flow_model.Q + /waterInletTemp_sensor.flow_model.rho_out; + waterInletTemp_sensor.flow_model.Qv = (waterInletTemp_sensor.flow_model.Qv_in + -waterInletTemp_sensor.flow_model.Qv_out)/2; + waterInletTemp_sensor.flow_model.P_out-waterInletTemp_sensor.flow_model.P_in + = waterInletTemp_sensor.flow_model.DP; + waterInletTemp_sensor.flow_model.Q*(waterInletTemp_sensor.flow_model.h_out + -waterInletTemp_sensor.flow_model.h_in) = waterInletTemp_sensor.flow_model.W; + waterInletTemp_sensor.flow_model.h_out-waterInletTemp_sensor.flow_model.h_in + = waterInletTemp_sensor.flow_model.DH; + waterInletTemp_sensor.flow_model.T_out-waterInletTemp_sensor.flow_model.T_in + = waterInletTemp_sensor.flow_model.DT; + waterInletTemp_sensor.flow_model.C_in.Q+waterInletTemp_sensor.flow_model.C_out.Q + = 0; + waterInletTemp_sensor.flow_model.C_out.Xi_outflow = inStream( + waterInletTemp_sensor.flow_model.C_in.Xi_outflow); + assert(waterInletTemp_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + waterInletTemp_sensor.flow_model.P = waterInletTemp_sensor.flow_model.P_in; + waterInletTemp_sensor.flow_model.h = waterInletTemp_sensor.flow_model.h_in; + waterInletTemp_sensor.flow_model.T = waterInletTemp_sensor.flow_model.T_in; + waterInletTemp_sensor.flow_model.DP = 0; + waterInletTemp_sensor.flow_model.DH = 0; + // end of extends + + // Component waterInletTemp_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not waterInletTemp_sensor.faulty_flow_rate) then + waterInletTemp_sensor.mass_flow_rate_bias = 0; + end if; + waterInletTemp_sensor.P = waterInletTemp_sensor.C_in.P; + waterInletTemp_sensor.Q = waterInletTemp_sensor.C_in.Q+waterInletTemp_sensor.mass_flow_rate_bias; + waterInletTemp_sensor.Xi = inStream(waterInletTemp_sensor.C_in.Xi_outflow); + waterInletTemp_sensor.h = inStream(waterInletTemp_sensor.C_in.h_outflow); + waterInletTemp_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterInletTemp_sensor.P, waterInletTemp_sensor.h, waterInletTemp_sensor.Xi, + 0, 0); + assert(waterInletTemp_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + waterInletTemp_sensor.T = waterInletTemp_sensor.flow_model.T; + waterInletTemp_sensor.T_degC+273.15 = waterInletTemp_sensor.T; + waterInletTemp_sensor.T_degF = waterInletTemp_sensor.T_degC*1.8+32; + // end of extends + equation + waterInletTemp_sensor.flow_model.C_in.P = waterInletTemp_sensor.C_in.P; + waterInletTemp_sensor.C_in.Q-waterInletTemp_sensor.flow_model.C_in.Q = 0.0; + waterInletTemp_sensor.flow_model.C_out.P = waterInletTemp_sensor.C_out.P; + waterInletTemp_sensor.C_out.Q-waterInletTemp_sensor.flow_model.C_out.Q = 0.0; + + // Component WaterOutletTemp_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + WaterOutletTemp_sensor.flow_model.h_in = inStream(WaterOutletTemp_sensor.flow_model.C_in.h_outflow); + WaterOutletTemp_sensor.flow_model.h_out = WaterOutletTemp_sensor.flow_model.C_out.h_outflow; + WaterOutletTemp_sensor.flow_model.Q = WaterOutletTemp_sensor.flow_model.C_in.Q; + WaterOutletTemp_sensor.flow_model.P_in = WaterOutletTemp_sensor.flow_model.C_in.P; + WaterOutletTemp_sensor.flow_model.P_out = WaterOutletTemp_sensor.flow_model.C_out.P; + WaterOutletTemp_sensor.flow_model.Xi = inStream(WaterOutletTemp_sensor.flow_model.C_in.Xi_outflow); + WaterOutletTemp_sensor.flow_model.C_in.h_outflow = 1000000.0; + WaterOutletTemp_sensor.flow_model.C_in.Xi_outflow = zeros(0); + WaterOutletTemp_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (WaterOutletTemp_sensor.flow_model.P_in, WaterOutletTemp_sensor.flow_model.h_in, + WaterOutletTemp_sensor.flow_model.Xi, 0, 0); + WaterOutletTemp_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (WaterOutletTemp_sensor.flow_model.P_out, WaterOutletTemp_sensor.flow_model.h_out, + WaterOutletTemp_sensor.flow_model.Xi, 0, 0); + WaterOutletTemp_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + WaterOutletTemp_sensor.flow_model.state_in); + WaterOutletTemp_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + WaterOutletTemp_sensor.flow_model.state_out); + WaterOutletTemp_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + WaterOutletTemp_sensor.flow_model.state_in); + WaterOutletTemp_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + WaterOutletTemp_sensor.flow_model.state_out); + WaterOutletTemp_sensor.flow_model.rho = (WaterOutletTemp_sensor.flow_model.rho_in + +WaterOutletTemp_sensor.flow_model.rho_out)/2; + WaterOutletTemp_sensor.flow_model.Qv_in = WaterOutletTemp_sensor.flow_model.Q + /WaterOutletTemp_sensor.flow_model.rho_in; + WaterOutletTemp_sensor.flow_model.Qv_out = -WaterOutletTemp_sensor.flow_model.Q + /WaterOutletTemp_sensor.flow_model.rho_out; + WaterOutletTemp_sensor.flow_model.Qv = (WaterOutletTemp_sensor.flow_model.Qv_in + -WaterOutletTemp_sensor.flow_model.Qv_out)/2; + WaterOutletTemp_sensor.flow_model.P_out-WaterOutletTemp_sensor.flow_model.P_in + = WaterOutletTemp_sensor.flow_model.DP; + WaterOutletTemp_sensor.flow_model.Q*(WaterOutletTemp_sensor.flow_model.h_out + -WaterOutletTemp_sensor.flow_model.h_in) = WaterOutletTemp_sensor.flow_model.W; + WaterOutletTemp_sensor.flow_model.h_out-WaterOutletTemp_sensor.flow_model.h_in + = WaterOutletTemp_sensor.flow_model.DH; + WaterOutletTemp_sensor.flow_model.T_out-WaterOutletTemp_sensor.flow_model.T_in + = WaterOutletTemp_sensor.flow_model.DT; + WaterOutletTemp_sensor.flow_model.C_in.Q+WaterOutletTemp_sensor.flow_model.C_out.Q + = 0; + WaterOutletTemp_sensor.flow_model.C_out.Xi_outflow = inStream( + WaterOutletTemp_sensor.flow_model.C_in.Xi_outflow); + assert(WaterOutletTemp_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + WaterOutletTemp_sensor.flow_model.P = WaterOutletTemp_sensor.flow_model.P_in; + WaterOutletTemp_sensor.flow_model.h = WaterOutletTemp_sensor.flow_model.h_in; + WaterOutletTemp_sensor.flow_model.T = WaterOutletTemp_sensor.flow_model.T_in; + WaterOutletTemp_sensor.flow_model.DP = 0; + WaterOutletTemp_sensor.flow_model.DH = 0; + // end of extends + + // Component WaterOutletTemp_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not WaterOutletTemp_sensor.faulty_flow_rate) then + WaterOutletTemp_sensor.mass_flow_rate_bias = 0; + end if; + WaterOutletTemp_sensor.P = WaterOutletTemp_sensor.C_in.P; + WaterOutletTemp_sensor.Q = WaterOutletTemp_sensor.C_in.Q+WaterOutletTemp_sensor.mass_flow_rate_bias; + WaterOutletTemp_sensor.Xi = inStream(WaterOutletTemp_sensor.C_in.Xi_outflow); + WaterOutletTemp_sensor.h = inStream(WaterOutletTemp_sensor.C_in.h_outflow); + WaterOutletTemp_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (WaterOutletTemp_sensor.P, WaterOutletTemp_sensor.h, WaterOutletTemp_sensor.Xi, + 0, 0); + assert(WaterOutletTemp_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + WaterOutletTemp_sensor.T = WaterOutletTemp_sensor.flow_model.T; + WaterOutletTemp_sensor.T_degC+273.15 = WaterOutletTemp_sensor.T; + WaterOutletTemp_sensor.T_degF = WaterOutletTemp_sensor.T_degC*1.8+32; + // end of extends + equation + WaterOutletTemp_sensor.flow_model.C_in.P = WaterOutletTemp_sensor.C_in.P; + WaterOutletTemp_sensor.C_in.Q-WaterOutletTemp_sensor.flow_model.C_in.Q = 0.0; + WaterOutletTemp_sensor.flow_model.C_out.P = WaterOutletTemp_sensor.C_out.P; + WaterOutletTemp_sensor.C_out.Q-WaterOutletTemp_sensor.flow_model.C_out.Q = + 0.0; + + // Component waterFlow_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + waterFlow_sensor.flow_model.h_in = inStream(waterFlow_sensor.flow_model.C_in.h_outflow); + waterFlow_sensor.flow_model.h_out = waterFlow_sensor.flow_model.C_out.h_outflow; + waterFlow_sensor.flow_model.Q = waterFlow_sensor.flow_model.C_in.Q; + waterFlow_sensor.flow_model.P_in = waterFlow_sensor.flow_model.C_in.P; + waterFlow_sensor.flow_model.P_out = waterFlow_sensor.flow_model.C_out.P; + waterFlow_sensor.flow_model.Xi = inStream(waterFlow_sensor.flow_model.C_in.Xi_outflow); + waterFlow_sensor.flow_model.C_in.h_outflow = 1000000.0; + waterFlow_sensor.flow_model.C_in.Xi_outflow = zeros(0); + waterFlow_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterFlow_sensor.flow_model.P_in, waterFlow_sensor.flow_model.h_in, + waterFlow_sensor.flow_model.Xi, 0, 0); + waterFlow_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterFlow_sensor.flow_model.P_out, waterFlow_sensor.flow_model.h_out, + waterFlow_sensor.flow_model.Xi, 0, 0); + waterFlow_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + waterFlow_sensor.flow_model.state_in); + waterFlow_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + waterFlow_sensor.flow_model.state_out); + waterFlow_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterFlow_sensor.flow_model.state_in); + waterFlow_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterFlow_sensor.flow_model.state_out); + waterFlow_sensor.flow_model.rho = (waterFlow_sensor.flow_model.rho_in+ + waterFlow_sensor.flow_model.rho_out)/2; + waterFlow_sensor.flow_model.Qv_in = waterFlow_sensor.flow_model.Q/ + waterFlow_sensor.flow_model.rho_in; + waterFlow_sensor.flow_model.Qv_out = -waterFlow_sensor.flow_model.Q/ + waterFlow_sensor.flow_model.rho_out; + waterFlow_sensor.flow_model.Qv = (waterFlow_sensor.flow_model.Qv_in- + waterFlow_sensor.flow_model.Qv_out)/2; + waterFlow_sensor.flow_model.P_out-waterFlow_sensor.flow_model.P_in = + waterFlow_sensor.flow_model.DP; + waterFlow_sensor.flow_model.Q*(waterFlow_sensor.flow_model.h_out- + waterFlow_sensor.flow_model.h_in) = waterFlow_sensor.flow_model.W; + waterFlow_sensor.flow_model.h_out-waterFlow_sensor.flow_model.h_in = + waterFlow_sensor.flow_model.DH; + waterFlow_sensor.flow_model.T_out-waterFlow_sensor.flow_model.T_in = + waterFlow_sensor.flow_model.DT; + waterFlow_sensor.flow_model.C_in.Q+waterFlow_sensor.flow_model.C_out.Q = 0; + waterFlow_sensor.flow_model.C_out.Xi_outflow = inStream(waterFlow_sensor.flow_model.C_in.Xi_outflow); + assert(waterFlow_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + waterFlow_sensor.flow_model.P = waterFlow_sensor.flow_model.P_in; + waterFlow_sensor.flow_model.h = waterFlow_sensor.flow_model.h_in; + waterFlow_sensor.flow_model.T = waterFlow_sensor.flow_model.T_in; + waterFlow_sensor.flow_model.DP = 0; + waterFlow_sensor.flow_model.DH = 0; + // end of extends + + // Component waterFlow_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not waterFlow_sensor.faulty_flow_rate) then + waterFlow_sensor.mass_flow_rate_bias = 0; + end if; + waterFlow_sensor.P = waterFlow_sensor.C_in.P; + waterFlow_sensor.Q = waterFlow_sensor.C_in.Q+waterFlow_sensor.mass_flow_rate_bias; + waterFlow_sensor.Xi = inStream(waterFlow_sensor.C_in.Xi_outflow); + waterFlow_sensor.h = inStream(waterFlow_sensor.C_in.h_outflow); + waterFlow_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (waterFlow_sensor.P, waterFlow_sensor.h, waterFlow_sensor.Xi, 0, 0); + assert(waterFlow_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + waterFlow_sensor.Qv = waterFlow_sensor.Q/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + waterFlow_sensor.state); + waterFlow_sensor.Q_lm = waterFlow_sensor.Qv*60000; + waterFlow_sensor.Q_th = waterFlow_sensor.Q*3.6; + waterFlow_sensor.Q_lbs = waterFlow_sensor.Q*0.453592428; + waterFlow_sensor.Q_Mlbh = waterFlow_sensor.Q*0.0079366414387; + // end of extends + equation + waterFlow_sensor.flow_model.C_in.P = waterFlow_sensor.C_in.P; + waterFlow_sensor.C_in.Q-waterFlow_sensor.flow_model.C_in.Q = 0.0; + waterFlow_sensor.flow_model.C_out.P = waterFlow_sensor.C_out.P; + waterFlow_sensor.C_out.Q-waterFlow_sensor.flow_model.C_out.Q = 0.0; + + // Component AirOutletTemp_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + AirOutletTemp_sensor.flow_model.h_in = inStream(AirOutletTemp_sensor.flow_model.C_in.h_outflow); + AirOutletTemp_sensor.flow_model.h_out = AirOutletTemp_sensor.flow_model.C_out.h_outflow; + AirOutletTemp_sensor.flow_model.Q = AirOutletTemp_sensor.flow_model.C_in.Q; + AirOutletTemp_sensor.flow_model.P_in = AirOutletTemp_sensor.flow_model.C_in.P; + AirOutletTemp_sensor.flow_model.P_out = AirOutletTemp_sensor.flow_model.C_out.P; + AirOutletTemp_sensor.flow_model.Xi = inStream(AirOutletTemp_sensor.flow_model.C_in.Xi_outflow); + AirOutletTemp_sensor.flow_model.C_in.h_outflow = 1000000.0; + AirOutletTemp_sensor.flow_model.C_in.Xi_outflow = zeros(1); + AirOutletTemp_sensor.flow_model.state_in = setState_phX_Unique7( + AirOutletTemp_sensor.flow_model.P_in, AirOutletTemp_sensor.flow_model.h_in, + AirOutletTemp_sensor.flow_model.Xi); + AirOutletTemp_sensor.flow_model.state_out = setState_phX_Unique7( + AirOutletTemp_sensor.flow_model.P_out, AirOutletTemp_sensor.flow_model.h_out, + AirOutletTemp_sensor.flow_model.Xi); + AirOutletTemp_sensor.flow_model.T_in = temperature_Unique25( + AirOutletTemp_sensor.flow_model.state_in); + AirOutletTemp_sensor.flow_model.T_out = temperature_Unique25( + AirOutletTemp_sensor.flow_model.state_out); + AirOutletTemp_sensor.flow_model.rho_in = density_Unique26( + AirOutletTemp_sensor.flow_model.state_in); + AirOutletTemp_sensor.flow_model.rho_out = density_Unique26( + AirOutletTemp_sensor.flow_model.state_out); + AirOutletTemp_sensor.flow_model.rho = (AirOutletTemp_sensor.flow_model.rho_in + +AirOutletTemp_sensor.flow_model.rho_out)/2; + AirOutletTemp_sensor.flow_model.Qv_in = AirOutletTemp_sensor.flow_model.Q/ + AirOutletTemp_sensor.flow_model.rho_in; + AirOutletTemp_sensor.flow_model.Qv_out = -AirOutletTemp_sensor.flow_model.Q + /AirOutletTemp_sensor.flow_model.rho_out; + AirOutletTemp_sensor.flow_model.Qv = (AirOutletTemp_sensor.flow_model.Qv_in + -AirOutletTemp_sensor.flow_model.Qv_out)/2; + AirOutletTemp_sensor.flow_model.P_out-AirOutletTemp_sensor.flow_model.P_in + = AirOutletTemp_sensor.flow_model.DP; + AirOutletTemp_sensor.flow_model.Q*(AirOutletTemp_sensor.flow_model.h_out- + AirOutletTemp_sensor.flow_model.h_in) = AirOutletTemp_sensor.flow_model.W; + AirOutletTemp_sensor.flow_model.h_out-AirOutletTemp_sensor.flow_model.h_in + = AirOutletTemp_sensor.flow_model.DH; + AirOutletTemp_sensor.flow_model.T_out-AirOutletTemp_sensor.flow_model.T_in + = AirOutletTemp_sensor.flow_model.DT; + AirOutletTemp_sensor.flow_model.C_in.Q+AirOutletTemp_sensor.flow_model.C_out.Q + = 0; + AirOutletTemp_sensor.flow_model.C_out.Xi_outflow = inStream( + AirOutletTemp_sensor.flow_model.C_in.Xi_outflow); + assert(AirOutletTemp_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + AirOutletTemp_sensor.flow_model.P = AirOutletTemp_sensor.flow_model.P_in; + AirOutletTemp_sensor.flow_model.h = AirOutletTemp_sensor.flow_model.h_in; + AirOutletTemp_sensor.flow_model.T = AirOutletTemp_sensor.flow_model.T_in; + AirOutletTemp_sensor.flow_model.DP = 0; + AirOutletTemp_sensor.flow_model.DH = 0; + // end of extends + + // Component AirOutletTemp_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not AirOutletTemp_sensor.faulty_flow_rate) then + AirOutletTemp_sensor.mass_flow_rate_bias = 0; + end if; + AirOutletTemp_sensor.P = AirOutletTemp_sensor.C_in.P; + AirOutletTemp_sensor.Q = AirOutletTemp_sensor.C_in.Q+AirOutletTemp_sensor.mass_flow_rate_bias; + AirOutletTemp_sensor.Xi = inStream(AirOutletTemp_sensor.C_in.Xi_outflow); + AirOutletTemp_sensor.h = inStream(AirOutletTemp_sensor.C_in.h_outflow); + AirOutletTemp_sensor.state = setState_phX_Unique7(AirOutletTemp_sensor.P, + AirOutletTemp_sensor.h, AirOutletTemp_sensor.Xi); + assert(AirOutletTemp_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + AirOutletTemp_sensor.T = AirOutletTemp_sensor.flow_model.T; + AirOutletTemp_sensor.T_degC+273.15 = AirOutletTemp_sensor.T; + AirOutletTemp_sensor.T_degF = AirOutletTemp_sensor.T_degC*1.8+32; + // end of extends + equation + AirOutletTemp_sensor.flow_model.C_in.P = AirOutletTemp_sensor.C_in.P; + AirOutletTemp_sensor.C_in.Q-AirOutletTemp_sensor.flow_model.C_in.Q = 0.0; + AirOutletTemp_sensor.flow_model.C_out.P = AirOutletTemp_sensor.C_out.P; + AirOutletTemp_sensor.C_out.Q-AirOutletTemp_sensor.flow_model.C_out.Q = 0.0; + + // Component airInletFlow_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + airInletFlow_sensor.flow_model.h_in = inStream(airInletFlow_sensor.flow_model.C_in.h_outflow); + airInletFlow_sensor.flow_model.h_out = airInletFlow_sensor.flow_model.C_out.h_outflow; + airInletFlow_sensor.flow_model.Q = airInletFlow_sensor.flow_model.C_in.Q; + airInletFlow_sensor.flow_model.P_in = airInletFlow_sensor.flow_model.C_in.P; + airInletFlow_sensor.flow_model.P_out = airInletFlow_sensor.flow_model.C_out.P; + airInletFlow_sensor.flow_model.Xi = inStream(airInletFlow_sensor.flow_model.C_in.Xi_outflow); + airInletFlow_sensor.flow_model.C_in.h_outflow = 1000000.0; + airInletFlow_sensor.flow_model.C_in.Xi_outflow = zeros(1); + airInletFlow_sensor.flow_model.state_in = setState_phX_Unique7( + airInletFlow_sensor.flow_model.P_in, airInletFlow_sensor.flow_model.h_in, + airInletFlow_sensor.flow_model.Xi); + airInletFlow_sensor.flow_model.state_out = setState_phX_Unique7( + airInletFlow_sensor.flow_model.P_out, airInletFlow_sensor.flow_model.h_out, + airInletFlow_sensor.flow_model.Xi); + airInletFlow_sensor.flow_model.T_in = temperature_Unique25( + airInletFlow_sensor.flow_model.state_in); + airInletFlow_sensor.flow_model.T_out = temperature_Unique25( + airInletFlow_sensor.flow_model.state_out); + airInletFlow_sensor.flow_model.rho_in = density_Unique26( + airInletFlow_sensor.flow_model.state_in); + airInletFlow_sensor.flow_model.rho_out = density_Unique26( + airInletFlow_sensor.flow_model.state_out); + airInletFlow_sensor.flow_model.rho = (airInletFlow_sensor.flow_model.rho_in + +airInletFlow_sensor.flow_model.rho_out)/2; + airInletFlow_sensor.flow_model.Qv_in = airInletFlow_sensor.flow_model.Q/ + airInletFlow_sensor.flow_model.rho_in; + airInletFlow_sensor.flow_model.Qv_out = -airInletFlow_sensor.flow_model.Q + /airInletFlow_sensor.flow_model.rho_out; + airInletFlow_sensor.flow_model.Qv = (airInletFlow_sensor.flow_model.Qv_in- + airInletFlow_sensor.flow_model.Qv_out)/2; + airInletFlow_sensor.flow_model.P_out-airInletFlow_sensor.flow_model.P_in + = airInletFlow_sensor.flow_model.DP; + airInletFlow_sensor.flow_model.Q*(airInletFlow_sensor.flow_model.h_out- + airInletFlow_sensor.flow_model.h_in) = airInletFlow_sensor.flow_model.W; + airInletFlow_sensor.flow_model.h_out-airInletFlow_sensor.flow_model.h_in + = airInletFlow_sensor.flow_model.DH; + airInletFlow_sensor.flow_model.T_out-airInletFlow_sensor.flow_model.T_in + = airInletFlow_sensor.flow_model.DT; + airInletFlow_sensor.flow_model.C_in.Q+airInletFlow_sensor.flow_model.C_out.Q + = 0; + airInletFlow_sensor.flow_model.C_out.Xi_outflow = inStream( + airInletFlow_sensor.flow_model.C_in.Xi_outflow); + assert(airInletFlow_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + airInletFlow_sensor.flow_model.P = airInletFlow_sensor.flow_model.P_in; + airInletFlow_sensor.flow_model.h = airInletFlow_sensor.flow_model.h_in; + airInletFlow_sensor.flow_model.T = airInletFlow_sensor.flow_model.T_in; + airInletFlow_sensor.flow_model.DP = 0; + airInletFlow_sensor.flow_model.DH = 0; + // end of extends + + // Component airInletFlow_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not airInletFlow_sensor.faulty_flow_rate) then + airInletFlow_sensor.mass_flow_rate_bias = 0; + end if; + airInletFlow_sensor.P = airInletFlow_sensor.C_in.P; + airInletFlow_sensor.Q = airInletFlow_sensor.C_in.Q+airInletFlow_sensor.mass_flow_rate_bias; + airInletFlow_sensor.Xi = inStream(airInletFlow_sensor.C_in.Xi_outflow); + airInletFlow_sensor.h = inStream(airInletFlow_sensor.C_in.h_outflow); + airInletFlow_sensor.state = setState_phX_Unique7(airInletFlow_sensor.P, + airInletFlow_sensor.h, airInletFlow_sensor.Xi); + assert(airInletFlow_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + airInletFlow_sensor.Qv = airInletFlow_sensor.Q/density_Unique26( + airInletFlow_sensor.state); + airInletFlow_sensor.Q_lm = airInletFlow_sensor.Qv*60000; + airInletFlow_sensor.Q_th = airInletFlow_sensor.Q*3.6; + airInletFlow_sensor.Q_lbs = airInletFlow_sensor.Q*0.453592428; + airInletFlow_sensor.Q_Mlbh = airInletFlow_sensor.Q*0.0079366414387; + // end of extends + equation + airInletFlow_sensor.flow_model.C_in.P = airInletFlow_sensor.C_in.P; + airInletFlow_sensor.C_in.Q-airInletFlow_sensor.flow_model.C_in.Q = 0.0; + airInletFlow_sensor.flow_model.C_out.P = airInletFlow_sensor.C_out.P; + airInletFlow_sensor.C_out.Q-airInletFlow_sensor.flow_model.C_out.Q = 0.0; + + // Component airInletPress_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + airInletPress_sensor.flow_model.h_in = inStream(airInletPress_sensor.flow_model.C_in.h_outflow); + airInletPress_sensor.flow_model.h_out = airInletPress_sensor.flow_model.C_out.h_outflow; + airInletPress_sensor.flow_model.Q = airInletPress_sensor.flow_model.C_in.Q; + airInletPress_sensor.flow_model.P_in = airInletPress_sensor.flow_model.C_in.P; + airInletPress_sensor.flow_model.P_out = airInletPress_sensor.flow_model.C_out.P; + airInletPress_sensor.flow_model.Xi = inStream(airInletPress_sensor.flow_model.C_in.Xi_outflow); + airInletPress_sensor.flow_model.C_in.h_outflow = 1000000.0; + airInletPress_sensor.flow_model.C_in.Xi_outflow = zeros(1); + airInletPress_sensor.flow_model.state_in = setState_phX_Unique7( + airInletPress_sensor.flow_model.P_in, airInletPress_sensor.flow_model.h_in, + airInletPress_sensor.flow_model.Xi); + airInletPress_sensor.flow_model.state_out = setState_phX_Unique7( + airInletPress_sensor.flow_model.P_out, airInletPress_sensor.flow_model.h_out, + airInletPress_sensor.flow_model.Xi); + airInletPress_sensor.flow_model.T_in = temperature_Unique25( + airInletPress_sensor.flow_model.state_in); + airInletPress_sensor.flow_model.T_out = temperature_Unique25( + airInletPress_sensor.flow_model.state_out); + airInletPress_sensor.flow_model.rho_in = density_Unique26( + airInletPress_sensor.flow_model.state_in); + airInletPress_sensor.flow_model.rho_out = density_Unique26( + airInletPress_sensor.flow_model.state_out); + airInletPress_sensor.flow_model.rho = (airInletPress_sensor.flow_model.rho_in + +airInletPress_sensor.flow_model.rho_out)/2; + airInletPress_sensor.flow_model.Qv_in = airInletPress_sensor.flow_model.Q/ + airInletPress_sensor.flow_model.rho_in; + airInletPress_sensor.flow_model.Qv_out = -airInletPress_sensor.flow_model.Q + /airInletPress_sensor.flow_model.rho_out; + airInletPress_sensor.flow_model.Qv = (airInletPress_sensor.flow_model.Qv_in + -airInletPress_sensor.flow_model.Qv_out)/2; + airInletPress_sensor.flow_model.P_out-airInletPress_sensor.flow_model.P_in + = airInletPress_sensor.flow_model.DP; + airInletPress_sensor.flow_model.Q*(airInletPress_sensor.flow_model.h_out- + airInletPress_sensor.flow_model.h_in) = airInletPress_sensor.flow_model.W; + airInletPress_sensor.flow_model.h_out-airInletPress_sensor.flow_model.h_in + = airInletPress_sensor.flow_model.DH; + airInletPress_sensor.flow_model.T_out-airInletPress_sensor.flow_model.T_in + = airInletPress_sensor.flow_model.DT; + airInletPress_sensor.flow_model.C_in.Q+airInletPress_sensor.flow_model.C_out.Q + = 0; + airInletPress_sensor.flow_model.C_out.Xi_outflow = inStream( + airInletPress_sensor.flow_model.C_in.Xi_outflow); + assert(airInletPress_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + airInletPress_sensor.flow_model.P = airInletPress_sensor.flow_model.P_in; + airInletPress_sensor.flow_model.h = airInletPress_sensor.flow_model.h_in; + airInletPress_sensor.flow_model.T = airInletPress_sensor.flow_model.T_in; + airInletPress_sensor.flow_model.DP = 0; + airInletPress_sensor.flow_model.DH = 0; + // end of extends + + // Component airInletPress_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not airInletPress_sensor.faulty_flow_rate) then + airInletPress_sensor.mass_flow_rate_bias = 0; + end if; + airInletPress_sensor.P = airInletPress_sensor.C_in.P; + airInletPress_sensor.Q = airInletPress_sensor.C_in.Q+airInletPress_sensor.mass_flow_rate_bias; + airInletPress_sensor.Xi = inStream(airInletPress_sensor.C_in.Xi_outflow); + airInletPress_sensor.h = inStream(airInletPress_sensor.C_in.h_outflow); + airInletPress_sensor.state = setState_phX_Unique7(airInletPress_sensor.P, + airInletPress_sensor.h, airInletPress_sensor.Xi); + assert(airInletPress_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + airInletPress_sensor.P_barA = airInletPress_sensor.P*1E-05; + airInletPress_sensor.P_psiA = airInletPress_sensor.P*0.000145038; + airInletPress_sensor.P_MPaA = airInletPress_sensor.P*1E-06; + airInletPress_sensor.P_kPaA = airInletPress_sensor.P*0.001; + airInletPress_sensor.P_barG = airInletPress_sensor.P_barA-1; + airInletPress_sensor.P_psiG = airInletPress_sensor.P_psiA-14.50377377; + airInletPress_sensor.P_MPaG = airInletPress_sensor.P_MPaA-0.1; + airInletPress_sensor.P_kPaG = airInletPress_sensor.P_kPaA-100; + airInletPress_sensor.P_mbar = airInletPress_sensor.P*0.01; + airInletPress_sensor.P_inHg = airInletPress_sensor.P*0.0002953006; + // end of extends + equation + airInletPress_sensor.flow_model.C_in.P = airInletPress_sensor.C_in.P; + airInletPress_sensor.C_in.Q-airInletPress_sensor.flow_model.C_in.Q = 0.0; + airInletPress_sensor.flow_model.C_out.P = airInletPress_sensor.C_out.P; + airInletPress_sensor.C_out.Q-airInletPress_sensor.flow_model.C_out.Q = 0.0; + + // Component airOutletPress_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + airOutletPress_sensor.flow_model.h_in = inStream(airOutletPress_sensor.flow_model.C_in.h_outflow); + airOutletPress_sensor.flow_model.h_out = airOutletPress_sensor.flow_model.C_out.h_outflow; + airOutletPress_sensor.flow_model.Q = airOutletPress_sensor.flow_model.C_in.Q; + airOutletPress_sensor.flow_model.P_in = airOutletPress_sensor.flow_model.C_in.P; + airOutletPress_sensor.flow_model.P_out = airOutletPress_sensor.flow_model.C_out.P; + airOutletPress_sensor.flow_model.Xi = inStream(airOutletPress_sensor.flow_model.C_in.Xi_outflow); + airOutletPress_sensor.flow_model.C_in.h_outflow = 1000000.0; + airOutletPress_sensor.flow_model.C_in.Xi_outflow = zeros(1); + airOutletPress_sensor.flow_model.state_in = setState_phX_Unique7( + airOutletPress_sensor.flow_model.P_in, airOutletPress_sensor.flow_model.h_in, + airOutletPress_sensor.flow_model.Xi); + airOutletPress_sensor.flow_model.state_out = setState_phX_Unique7( + airOutletPress_sensor.flow_model.P_out, airOutletPress_sensor.flow_model.h_out, + airOutletPress_sensor.flow_model.Xi); + airOutletPress_sensor.flow_model.T_in = temperature_Unique25( + airOutletPress_sensor.flow_model.state_in); + airOutletPress_sensor.flow_model.T_out = temperature_Unique25( + airOutletPress_sensor.flow_model.state_out); + airOutletPress_sensor.flow_model.rho_in = density_Unique26( + airOutletPress_sensor.flow_model.state_in); + airOutletPress_sensor.flow_model.rho_out = density_Unique26( + airOutletPress_sensor.flow_model.state_out); + airOutletPress_sensor.flow_model.rho = (airOutletPress_sensor.flow_model.rho_in + +airOutletPress_sensor.flow_model.rho_out)/2; + airOutletPress_sensor.flow_model.Qv_in = airOutletPress_sensor.flow_model.Q + /airOutletPress_sensor.flow_model.rho_in; + airOutletPress_sensor.flow_model.Qv_out = -airOutletPress_sensor.flow_model.Q + /airOutletPress_sensor.flow_model.rho_out; + airOutletPress_sensor.flow_model.Qv = (airOutletPress_sensor.flow_model.Qv_in + -airOutletPress_sensor.flow_model.Qv_out)/2; + airOutletPress_sensor.flow_model.P_out-airOutletPress_sensor.flow_model.P_in + = airOutletPress_sensor.flow_model.DP; + airOutletPress_sensor.flow_model.Q*(airOutletPress_sensor.flow_model.h_out + -airOutletPress_sensor.flow_model.h_in) = airOutletPress_sensor.flow_model.W; + airOutletPress_sensor.flow_model.h_out-airOutletPress_sensor.flow_model.h_in + = airOutletPress_sensor.flow_model.DH; + airOutletPress_sensor.flow_model.T_out-airOutletPress_sensor.flow_model.T_in + = airOutletPress_sensor.flow_model.DT; + airOutletPress_sensor.flow_model.C_in.Q+airOutletPress_sensor.flow_model.C_out.Q + = 0; + airOutletPress_sensor.flow_model.C_out.Xi_outflow = inStream( + airOutletPress_sensor.flow_model.C_in.Xi_outflow); + assert(airOutletPress_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + airOutletPress_sensor.flow_model.P = airOutletPress_sensor.flow_model.P_in; + airOutletPress_sensor.flow_model.h = airOutletPress_sensor.flow_model.h_in; + airOutletPress_sensor.flow_model.T = airOutletPress_sensor.flow_model.T_in; + airOutletPress_sensor.flow_model.DP = 0; + airOutletPress_sensor.flow_model.DH = 0; + // end of extends + + // Component airOutletPress_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not airOutletPress_sensor.faulty_flow_rate) then + airOutletPress_sensor.mass_flow_rate_bias = 0; + end if; + airOutletPress_sensor.P = airOutletPress_sensor.C_in.P; + airOutletPress_sensor.Q = airOutletPress_sensor.C_in.Q+airOutletPress_sensor.mass_flow_rate_bias; + airOutletPress_sensor.Xi = inStream(airOutletPress_sensor.C_in.Xi_outflow); + airOutletPress_sensor.h = inStream(airOutletPress_sensor.C_in.h_outflow); + airOutletPress_sensor.state = setState_phX_Unique7(airOutletPress_sensor.P, + airOutletPress_sensor.h, airOutletPress_sensor.Xi); + assert(airOutletPress_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + airOutletPress_sensor.P_barA = airOutletPress_sensor.P*1E-05; + airOutletPress_sensor.P_psiA = airOutletPress_sensor.P*0.000145038; + airOutletPress_sensor.P_MPaA = airOutletPress_sensor.P*1E-06; + airOutletPress_sensor.P_kPaA = airOutletPress_sensor.P*0.001; + airOutletPress_sensor.P_barG = airOutletPress_sensor.P_barA-1; + airOutletPress_sensor.P_psiG = airOutletPress_sensor.P_psiA-14.50377377; + airOutletPress_sensor.P_MPaG = airOutletPress_sensor.P_MPaA-0.1; + airOutletPress_sensor.P_kPaG = airOutletPress_sensor.P_kPaA-100; + airOutletPress_sensor.P_mbar = airOutletPress_sensor.P*0.01; + airOutletPress_sensor.P_inHg = airOutletPress_sensor.P*0.0002953006; + // end of extends + equation + airOutletPress_sensor.flow_model.C_in.P = airOutletPress_sensor.C_in.P; + airOutletPress_sensor.C_in.Q-airOutletPress_sensor.flow_model.C_in.Q = 0.0; + airOutletPress_sensor.flow_model.C_out.P = airOutletPress_sensor.C_out.P; + airOutletPress_sensor.C_out.Q-airOutletPress_sensor.flow_model.C_out.Q = 0.0; + + // This model + // class MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test + equation + waterFlow_sensor.Qv = waterInletFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airInletFlow_sensor.Qv = airInletFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; + CoolingTower.hd = hd; + CoolingTower.Cf = Cf; + CoolingTower.Lfi = Lfi; + CoolingTower.Afr = Afr; + CoolingTower.V_inlet = V_inlet; + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; + cold_source.C_out.P = AirInletTemp_sensor.C_in.P; + AirInletTemp_sensor.C_in.Q+cold_source.C_out.Q = 0.0; + airInletFlow_sensor.C_in.P = AirInletTemp_sensor.C_out.P; + AirInletTemp_sensor.C_out.Q+airInletFlow_sensor.C_in.Q = 0.0; + airOutletPress_sensor.C_out.P = AirOutletTemp_sensor.C_in.P; + AirOutletTemp_sensor.C_in.Q+airOutletPress_sensor.C_out.Q = 0.0; + cold_sink.C_in.P = AirOutletTemp_sensor.C_out.P; + AirOutletTemp_sensor.C_out.Q+cold_sink.C_in.Q = 0.0; + airInletPress_sensor.C_out.P = CoolingTower.air_inlet_connector.P; + CoolingTower.air_inlet_connector.Q+airInletPress_sensor.C_out.Q = 0.0; + airOutletPress_sensor.C_in.P = CoolingTower.air_outlet_connector.P; + CoolingTower.air_outlet_connector.Q+airOutletPress_sensor.C_in.Q = 0.0; + waterInletPress_sensor.C_out.P = CoolingTower.water_inlet_connector.P; + CoolingTower.water_inlet_connector.Q+waterInletPress_sensor.C_out.Q = 0.0; + WaterOutletTemp_sensor.C_in.P = CoolingTower.water_outlet_connector.P; + CoolingTower.water_outlet_connector.Q+WaterOutletTemp_sensor.C_in.Q = 0.0; + hot_sink.C_in.P = WaterOutletTemp_sensor.C_out.P; + WaterOutletTemp_sensor.C_out.Q+hot_sink.C_in.Q = 0.0; + airInletPress_sensor.C_in.P = airInletFlow_sensor.C_out.P; + airInletFlow_sensor.C_out.Q+airInletPress_sensor.C_in.Q = 0.0; + waterFlow_sensor.C_in.P = hot_source.C_out.P; + hot_source.C_out.Q+waterFlow_sensor.C_in.Q = 0.0; + waterInletTemp_sensor.C_in.P = waterFlow_sensor.C_out.P; + waterFlow_sensor.C_out.Q+waterInletTemp_sensor.C_in.Q = 0.0; + waterInletTemp_sensor.C_out.P = waterInletPress_sensor.C_in.P; + waterInletPress_sensor.C_in.Q+waterInletTemp_sensor.C_out.Q = 0.0; + +end CoolingTowerPoppe_test; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index cd5038fc..2b74925a 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -18,7 +18,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(Pin, 100+273.15, 1))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); end f; function g @@ -32,7 +32,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(Pin, 100+273.15, 1))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {w}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); end g; function h @@ -44,41 +44,50 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, 1)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(Pin, 100+273.15, 1)) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; - Inputs.InputReal hd; + Real hd; + parameter Units.FrictionCoefficient Cf = 1; + Units.Velocity V_inlet; + parameter Units.Area Afr = 3000; + parameter Real Lfi = 15; + + + constant Real gr(unit="m/s2") = Modelica.Constants.g_n; + + Units.Density rho_air_inlet; + Units.Density rho_air_outlet; Units.MassFlowRate Q_hot_in; Units.MassFlowRate Q_hot_out; Units.MassFlowRate Q_cold_in; Units.MassFlowRate Q_cold_out; - Inputs.InputReal w_in; - Inputs.InputReal w_out; + Real w_in; + Real w_out; Units.SpecificEnthalpy i_initial; Units.SpecificEnthalpy i_final; - - Units.Temperature T_cold_in; Units.Temperature T_cold_out; Units.Temperature T_hot_in; Units.Temperature T_hot_out; // Poppe Inputs - Units.Temperature deltaT; + Units.Temperature deltaTw; - parameter Integer N_step = 10; + parameter Integer N_step = 3; Real w[N_step]; Real M[N_step]; Real i[N_step]; Real Tw[N_step]; - Units.HeatCapacity cp[N_step]; //NEW - Real Pin[N_step]; //NEW - Real Lef[N_step]; //NEW + //Real Ta[N_step]; //NEW + Units.HeatCapacity cp[N_step]; + Real Pin[N_step]; + Real Lef[N_step]; Units.MassFlowRate Qw[N_step]; Units.MassFlowRate Qa[N_step]; @@ -111,36 +120,31 @@ equation // connectors - air_inlet_connector.P = Pin[1]; - air_inlet_connector.Q = Q_cold_in; + air_inlet_flow.P_out = Pin[1]; + air_inlet_flow.Q = Q_cold_in; air_inlet_connector.h_outflow = i_initial; - w_in = air_inlet.relative_humidity * MoistAir.xsaturation(air_inlet_flow.state_in); air_inlet.T_in = T_cold_in; + w_in = air_inlet.Xi_in[1]; - air_outlet_connector.P = Pin[1]; - air_outlet_connector.Q = Q_cold_out; + air_outlet_flow.P_in = Pin[1]; + air_outlet_flow.Q = Q_cold_out; air_outlet_connector.h_outflow = i_final; air_outlet.T_out = T_cold_out; - w_out = air_outlet.relative_humidity * MoistAir.xsaturation(air_outlet_flow.state_out); + w_out = air_outlet.Xi_out[1]; water_inlet_flow.P_out = Pin[1]; water_inlet_flow.Q = Q_hot_in; water_inlet_flow.T_in = T_hot_in; - cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); water_outlet_flow.P_out = Pin[1]; water_outlet_flow.Q = Q_hot_out; water_outlet_flow.T_in = T_hot_out; - - // New Poppe Equations - Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); - - deltaT = (T_hot_in - T_hot_out) / (N_step - 1); + deltaTw = (T_hot_in - T_hot_out) / (N_step - 1); for n in 1:N_step loop Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); @@ -148,32 +152,43 @@ equation for n in 1:N_step-1 loop - w[n+1] = w[n] + deltaT * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - i[n+1] = i[n] + deltaT * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); //MAKE ALL OD THESE A FUNCTION OF N - M[n+1]= M[n] + deltaT * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); + w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + M[n+1]= M[n] + deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); Qa[n+1] = Qa[n] * (1 + w[n+1]); - //M[n+1] = hd / Qw[n+1]; - Lef[n+1] = Lef[n]; //NEW - Pin[n+1] = Pin[n]; //NEW - //Tw[n+1] = Tw[n] - deltaT; //NEW - cp[n+1] = cp[n]; //NEW + //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); + + Lef[n+1] = Lef[n]; + //Lef[n+1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622)); //NEW + + cp[n+1] = cp[n]; + //cp[n+1] = WaterSteamMedium.cp_pT(Pin[n+1], Tw[n+1], {1}); + + Pin[n+1] = Pin[n]; end for; w[1] = w_in; w[N_step] = w_out; i[1] = i_initial; i[N_step] = i_final; - M[1] = hd / Qw[1]; // H: Not no sure of this equation - M[N_step] = hd / Qw[N_step]; // New + M[1] = hd * Afr / Qw[1]; // H: Not so sure of this equation; I think its good ? Because it needs a start value for M[1] + M[N_step] = hd * Afr / Qw[N_step]; Qw[1] = Q_hot_in; Qw[N_step] = Q_hot_out; Qa[1] = Q_cold_in; Qa[N_step] = Q_cold_out; - //Pin[1] = Pin[N_step]; //NEW - //Lef[1] = Lef[N_step]; //NEW - //cp[1] = cp[N_step]; //NEW + + Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); //NEW + cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); + + // Drift Equation + rho_air_inlet = air_inlet_flow.rho_in; + rho_air_outlet = air_outlet_flow.rho_out; + + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; + Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - air_inlet.Xi_in[1])); connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-80,0}}, color={28,108,200})); connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{80,0},{110,0}}, color={28,108,200})); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo new file mode 100644 index 00000000..47dbd23d --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo @@ -0,0 +1,118 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model Functionftest + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function f + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + end f; + + + // Poppe Inputs + + parameter Real rh = 1; + parameter Real i = 17719.107; + parameter Real Tw = 45+273.15; + parameter Real cp = 4180; + parameter Real Pin = 100000; + Real Lef; + parameter Real Qw = 38853.242; + parameter Real Qa = 18717.115; + + Real w; + Real w2; + Real w3; + Real w4; + Real y; + Real y2; + Real abshumid; + Real enthalp; + Real steam; + Real xsat; + Real Qw1; + Real Qw2; + Real Qw3; + Real Qa1; + Real Qa2; + Real Qa3; + +equation + + // connectors + + w = MoistAir.massFraction_pTphi(Pin, Tw, rh); + + // New Poppe Equations} + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW + y = f(Tw, w, i, cp, Qw, Qa, Pin, Lef); + y2 = f(Tw, w+0.5*time, i, cp, Qw, Qa, Pin, Lef); + + w2 = w + 10 * f(Tw-20*time, w+0.005, i+50000*time, cp, Qw, Qa, Pin, Lef); + w3 = w2 + 10 * f(Tw, w2, i, cp, Qw2, Qa2, Pin, Lef); + w4 = w3 + 10 * f(Tw, w3, i, cp, Qw3, Qa3, Pin, Lef); + + abshumid = (MoistAir.xsaturation_pT(Pin, Tw) - w); + xsat = MoistAir.xsaturation_pT(Pin, Tw); + enthalp = MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, w)}) - i; + steam = WaterSteamMedium.specificEnthalpy_pT(Pin, 100.05+273.15, 0); + + Qw1 = Qw - Qa * (w2 - w); + Qw2 = Qw1 - Qa1 * (w3 - w2); + Qw3 = Qw2 - Qa2 * (w4 - w3); + + Qa1 = Qa * (1 + w); + Qa2 = Qa1 * (1 + w2); + Qa3 = Qa2 * (1 + w3); + + + //RHconversion = MoistAir.relativeHumidity_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, w)}) * Saturation Vapor Pressure + + //dw/dTw - humidity ratio/water temperature - function f + //humidity is the problem, equations need humidity ratio/specific humidity but I only have functions for absolute humidity or relative humidity + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end Functionftest; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo new file mode 100644 index 00000000..f44d064e --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo @@ -0,0 +1,91 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model Functiongtest + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function g + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {w}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + end g; + + // Poppe Inputs + + parameter Real rh = 0.8; + parameter Real i = 87145.414; + parameter Real Tw = 45+273.15; + parameter Real cp = 4180; + parameter Real Pin = 100000; + Real Lef; + parameter Real Qw = 38853.242; + parameter Real Qa = 18717.115; + Real y; + Real w; + Real i1; + Real i2; + Real i3; + Real i4; + +equation + + // connectors + + // New Poppe Equations + + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW + y = g(Tw, w, i, cp, Qw, Qa, Pin, Lef); + i1 = i + 10 * g(Tw-35*time, w+0.05*time, i+130000*time, cp, Qw-1000*time, Qa+3000*time, Pin, Lef); + //i1 = i + 10 * g(Tw, w, i, cp, Qw, Qa, Pin, Lef); + i2 = i1 + 10 * g(Tw, w, i1, cp, Qw, Qa, Pin, Lef); + i3 = i2 + 10 * g(Tw, w, i2, cp, Qw, Qa, Pin, Lef); + i4 = i3 + 10 * g(Tw, w, i3, cp, Qw, Qa, Pin, Lef); + + w = MoistAir.massFraction_pTphi(Pin, Tw, rh); + + //di/dTw - function g + + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end Functiongtest; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo new file mode 100644 index 00000000..d0bc5305 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo @@ -0,0 +1,90 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model Functionhtest + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function h + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + end h; + + // Poppe Inputs + + parameter Real rh = 0.8; + parameter Real i = 17719.107; + parameter Real Tw = 40+273.15; + parameter Real cp = 4180; + parameter Real Pin = 100000; + Real Lef; + parameter Real Qw = 38853.242; + parameter Real Qa = 18717.115; + Real y; + Real hum; + Real w; + Real M1; + Real M2; + Real M3; + Real M4; +equation + + // connectors + + // New Poppe Equations + + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW + y = h(Tw, w, i, cp, Pin, Lef); + hum = MoistAir.xsaturation_pT(Pin, Tw); + w = MoistAir.massFraction_pTphi(Pin, Tw, rh); + + M1 = 0.000980808; + M2 = M1 + 10 * h(Tw-5, w+0.02, i+10000, cp, Pin, Lef); + M3 = M2 + 10 * h(Tw-10, w+0.035, i+20000, cp, Pin, Lef); + M4 = M3 + 10 * h(Tw-25, w+0.04, i+160000, cp, Pin, Lef); + + + //dMe/dTw = function h + + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end Functionhtest; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 488944db..29546835 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -9,3 +9,6 @@ AirCooledCondenser CoolingTowerMerkel CoolingTowerPoppe CoolingTowerPoppeTrial +Functionftest +Functiongtest +Functionhtest diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo index 821dea24..3a4ee829 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo @@ -22,9 +22,7 @@ model CoolingTowerPoppe_direct // Parameters parameter Real Lfi = 15 "m"; - parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - parameter Real D = 20 "m"; parameter Real Cf = 15; output Real V_inlet(start = 4.3490353) "m/s"; @@ -33,7 +31,7 @@ model CoolingTowerPoppe_direct //output Real Q_evap(start=379.48428) "kg/s"; output Real Q_cold_in(start=15214.605); //output Real Ratio; - output Real W; + //output Real W; output Real AirOutletTemp(start=35) "deg_C"; output Real airOutletPress(start=1); @@ -44,7 +42,8 @@ model CoolingTowerPoppe_direct MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppe CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerPoppeTrial + CoolingTower annotation (Placement(transformation(extent={{-10,-26},{10,-6}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -103,25 +102,19 @@ equation //CoolingTower.Q_evap = Q_evap; CoolingTower.Q_cold_in = Q_cold_in; //CoolingTower.Ratio = Ratio; - CoolingTower.W = W; + //CoolingTower.W = W; // Parameters CoolingTower.Lfi = Lfi; - CoolingTower.afi = afi; CoolingTower.Afr = Afr; - CoolingTower.D = D; CoolingTower.V_inlet = V_inlet; // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, - color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{24,-20},{24,0},{30,0}}, - color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, color={28,108,200})); @@ -129,9 +122,11 @@ equation connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-12.5},{0,-12.5}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.air_inlet_connector) annotation (Line(points={{0,-2},{0,-6.83333}}, color={85,170,255})); + connect(waterInletPress_sensor.C_out, CoolingTower.water_inlet_connector) annotation (Line(points={{-32,0},{-16,0},{-16,-16},{-9.16667,-16}}, color={28,108,200})); + connect(airOutletPress_sensor.C_in, CoolingTower.air_outlet_connector) annotation (Line(points={{0,-34},{0,-25.1667}}, color={85,170,255})); + connect(WaterOutletTemp_sensor.C_in, CoolingTower.water_outlet_connector) annotation (Line(points={{30,0},{16,0},{16,-16},{9.16667,-16}}, color={28,108,200})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ Ellipse(lineColor={0,0,0}, fillColor={255,255,255}, diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index 11a6676a..4fc3eb24 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -17,18 +17,13 @@ model CoolingTowerPoppe_test input Real WaterOutletTemp(start=20) "deg_C"; // Calibrated Parameters - output Real hd(start=1); + output Real hd(start=0.00943308); // Parameters - //parameter Real Lfi = 15 "m"; - //parameter Real afi = 200 "m-1"; - //parameter Real Afr = 3000 "m2"; - //parameter Real D = 20 "m"; - //parameter Real Cf = 1; - // output Real V_inlet(start = 13.251477) "m/s"; + output Real V_inlet(start = 13.251477) "m/s"; // Observables - input Real airInletFlow(start=52552.133) "m3/s"; + output Real airInletFlow(start=52552.133) "m3/s"; output Real airOutletPress(start=1) "bar"; output Real AirOutletTemp(start=35) "deg_C"; @@ -40,7 +35,8 @@ model CoolingTowerPoppe_test MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); MultiFluid.HeatExchangers.CoolingTowerPoppeTrial - CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + CoolingTower(Cf=1) + annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -49,7 +45,8 @@ model CoolingTowerPoppe_test extent={{-10,-10},{10,10}}, rotation=270, origin={0,-92}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor(P_0=100000) + annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -97,11 +94,7 @@ equation //CoolingTower.Cf = Cf; // Parameters - //CoolingTower.Lfi = Lfi; - //CoolingTower.afi = afi; - //CoolingTower.Afr = Afr; - //CoolingTower.D = D; - //CoolingTower.V_inlet = V_inlet; + CoolingTower.V_inlet = V_inlet; // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; diff --git a/MetroscopeModelingLibrary/_wslbuild.sh b/MetroscopeModelingLibrary/_wslbuild.sh new file mode 100644 index 00000000..4d2d3bec --- /dev/null +++ b/MetroscopeModelingLibrary/_wslbuild.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +# must use bash for array support + +# wrapper for dsbuild.sh + +which dos2unix +if [ ! $? = 0 ] +then + echo "You need to install dos2unix in your WSL, e.g. using \"sudo apt install dos2unix\"" > dslog.txt + exit +fi + +# fetch environment variables +dos2unix ./wslenv.sh +if [ ! $? = 0 ] +then + echo "Cannot convert environment script to Linux, assuming dos2unix is correctly installed then:">dslog.txt + echo "Seems we cannot change file permission in WSL; due to missing mount option" >> dslog.txt + echo "Create/edit /etc/wsl.conf and add the following two lines and reboot computer" >> dslog.txt + echo "[automount]" >> dslog.txt + echo "options = \"metadata\"" >> dslog.txt + exit 1 +fi +. ./wslenv.sh + +# convert to wsl path +DYMOLA_WIN=$DYMOLA +export DYMOLA=$(wslpath "$DYMOLA"); + +if [ ! -d "$DYMOLA" ] +then + # check if mounted drive or UNC path and provide proper error messages + echo $DYMOLA_WIN|grep ^[[:alpha:]]: + if [ $? -eq 0 ] + then + # mounted drive + DRIVE=$(echo $DYMOLA_WIN | sed -E 's/^([[:alpha:]]):.*/\1/') + DRIVE_LOWER=$(echo $DRIVE | tr '[:upper:]' '[:lower:]') + echo "Dymola seems to be run from a Windows mounted location ($DRIVE:)" >> dslog.txt + echo "If so, you need to mount the drive also from WSL, using e.g. the non-persistent variant mkdir + mount:" >> dslog.txt + echo "mkdir /mnt/$DRIVE_LOWER" >> dslog.txt + echo "sudo mount -t drvfs $DRIVE: /mnt/$DRIVE_LOWER" >> dslog.txt + else + # check if UNC path + echo DYMOLA_WIN=$DYMOLA_WIN >> dslog.txt + echo DYMOLA=$DYMOLA >> dslog.txt + echo $DYMOLA_WIN|grep ^// + if [ $? -eq 0 ] + then + echo "WSL cannot handle when Dymola started from UNC path: $DYMOLA_WIN." >> dslog.txt + echo "You need to mount the path on a drive and then restart Dymola using that drive." >> dslog.txt + else + echo "Could not get WSL path from: $DYMOLA_WIN" >> dslog.txt + fi + fi + exit 1 +fi + +IFS_SAVED=$IFS +IFS=';' + +# prepare paths to suit gcc preprocessor +declare -a IOPTS +for p in $DYMOLAINC +do + p=$(wslpath "$p"); + IOPTS=$IOPTS" -I '$p'" +done + +declare -a LOPTS +for p in $DYMOLALIB +do + p=$(wslpath "$p"); + LOPTS=$LOPTS" -L '$p'" +done + +IFS=$IFS_SAVED + +# invoke dsbuild.sh +"$DYMOLA/bin/dsbuild.sh" "$IOPTS" "$LOPTS" "$@" diff --git a/MetroscopeModelingLibrary/call_wsl.bat b/MetroscopeModelingLibrary/call_wsl.bat new file mode 100644 index 00000000..9990e2cc --- /dev/null +++ b/MetroscopeModelingLibrary/call_wsl.bat @@ -0,0 +1,24 @@ +@echo off + +REM Wrapper for call_wsl.sh + +set log=dslog.txt + +REM fetch WSL path +call wslpath.bat +REM note it is important to not attempt to write to dslog.txt during normal operations since that will interfere with parallel execution. + +if not exist "%WSLPath%" ( + goto wslCorrect +) + +call "%WSLPath%" -e ./call_wsl.sh %* + +goto done + +:wslCorrect +echo WSL not found: "%WSLPath%" >> %log% +echo Please correct the WSL path. >> %log% +echo For instructions on how to install WSL, please visit http://www.dymola.com/compiler >> %log% + +:done diff --git a/MetroscopeModelingLibrary/call_wsl.sh b/MetroscopeModelingLibrary/call_wsl.sh new file mode 100644 index 00000000..79b2bdf9 --- /dev/null +++ b/MetroscopeModelingLibrary/call_wsl.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# Wrapper for WSL executables such as dymosim etc + +# fetch environment variables to get DYMOLA etc +case "$1" in + *dymosim) + # ordinary dsmodel + . ./wslenv.sh + ;; + *) + # function + wslenv_func=wslenv_$1.sh + if [ ! -f $wslenv_func ] + then + # new function translation, save environment for subsequent runs + cp wslenv.sh $wslenv_func + fi + . ./$wslenv_func + ;; +esac + +# make sure there is Linux style line endings +#if [ -f dsin.txt ] +#then + dos2unix *dsin.txt +#fi + +prog=$1 +shift + +export LD_LIBRARY_PATH="$(wslpath "$DYMOLA")/bin/lib64" + +IFS_SAVED=$IFS +IFS=';' +for p in $DYMOLALIB +do + p=$(wslpath "$p"); + LD_LIBRARY_PATH=$LD_LIBRARY_PATH":$p" +done +IFS=$IFS_SAVED + +"./$prog" "$@" diff --git a/MetroscopeModelingLibrary/wslenv.sh b/MetroscopeModelingLibrary/wslenv.sh new file mode 100644 index 00000000..c2322ab6 --- /dev/null +++ b/MetroscopeModelingLibrary/wslenv.sh @@ -0,0 +1,10 @@ +DYMOLA="C:/Program Files/Dymola 2024x" +export DYMOLACL="" +export DYMOLACL_WSL="" +export DYMOLALINK="" +export DYMOLALINK_WSL="" +DYMOLAINC="" +DYMOLALIB="" +export DYMOLAPATHLAST="" +export EXTRAINCLUDE="" +export DYNUSECLANG="0" diff --git a/MetroscopeModelingLibrary/wslpath.bat b/MetroscopeModelingLibrary/wslpath.bat new file mode 100644 index 00000000..5265e177 --- /dev/null +++ b/MetroscopeModelingLibrary/wslpath.bat @@ -0,0 +1 @@ +set WSLPath=C:/Windows/System32/wsl.exe From f150e11edd969823b02c9a065d331e3632004ec5 Mon Sep 17 00:00:00 2001 From: postorino Date: Tue, 30 Apr 2024 13:22:59 +0200 Subject: [PATCH 18/34] Parameter definition outside the component --- .../HeatExchangers/CoolingTowerPoppeTrial.mo | 20 ++++++++--------- .../HeatExchangers/CoolingTowerPoppe_test.mo | 22 ++++++++++++------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index 2b74925a..af07e8eb 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -7,7 +7,7 @@ model CoolingTowerPoppeTrial import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - function f + function f input Real Tw; input Real w; input Real i; @@ -17,9 +17,9 @@ model CoolingTowerPoppeTrial input Real Pin; input Real Lef; output Real y; - algorithm + algorithm y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); - end f; + end f; function g input Real Tw; @@ -47,12 +47,11 @@ model CoolingTowerPoppeTrial y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; - - Real hd; - parameter Units.FrictionCoefficient Cf = 1; Units.Velocity V_inlet; - parameter Units.Area Afr = 3000; - parameter Real Lfi = 15; + Inputs.InputReal hd; + Inputs.InputArea Afr; + Inputs.InputReal Lfi; + Inputs.InputFrictionCoefficient Cf; constant Real gr(unit="m/s2") = Modelica.Constants.g_n; @@ -79,7 +78,7 @@ model CoolingTowerPoppeTrial // Poppe Inputs Units.Temperature deltaTw; - parameter Integer N_step = 3; + parameter Integer N_step = 10; Real w[N_step]; Real M[N_step]; Real i[N_step]; @@ -148,6 +147,7 @@ equation for n in 1:N_step loop Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); + end for; @@ -156,7 +156,7 @@ equation i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); M[n+1]= M[n] + deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); - Qa[n+1] = Qa[n] * (1 + w[n+1]); + Qa[n+1] = Qa[n];// * (1 + w[n+1]); //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index 4fc3eb24..84b1ebc8 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -9,33 +9,36 @@ model CoolingTowerPoppe_test input Real waterInletPress(start=1) "bar"; // Cold Air Inlet - input Real AirInletTemp(start=6) "deg_C"; + input Real AirInletTemp(start=4) "deg_C"; input Real airInletPress(start=1) "bar"; - input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + input Units.Fraction cold_source_relative_humidity(start=0.2) "1"; // Input for calibration - input Real WaterOutletTemp(start=20) "deg_C"; + input Real WaterOutletTemp(start=27) "deg_C"; // Calibrated Parameters output Real hd(start=0.00943308); // Parameters - output Real V_inlet(start = 13.251477) "m/s"; + parameter Units.Area Afr = 3000; + parameter Real Lfi = 15; + parameter Real Cf = 1; // Observables output Real airInletFlow(start=52552.133) "m3/s"; output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=35) "deg_C"; + output Real AirOutletTemp(start=10) "deg_C"; // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; + output Real V_inlet(start = 13.251477) "m/s"; + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppeTrial - CoolingTower(Cf=1) + MultiFluid.HeatExchangers.CoolingTowerPoppeTrial CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, @@ -91,7 +94,10 @@ equation // Calibrated Parameters CoolingTower.hd = hd; - //CoolingTower.Cf = Cf; + CoolingTower.Cf = Cf; + CoolingTower.Afr = Afr; + CoolingTower.Lfi = Lfi; + // Parameters CoolingTower.V_inlet = V_inlet; From 59c78869b77d8f4d10e37f5e061eb8641c033899 Mon Sep 17 00:00:00 2001 From: postorino Date: Tue, 30 Apr 2024 13:27:12 +0200 Subject: [PATCH 19/34] Forgot a comment --- .../MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index af07e8eb..904a8ea1 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -156,7 +156,7 @@ equation i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); M[n+1]= M[n] + deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); - Qa[n+1] = Qa[n];// * (1 + w[n+1]); + Qa[n+1] = Qa[n] * (1 + w[n+1]); //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); From 16790e52896be1021e327359b7d212a21c6361c9 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Thu, 2 May 2024 16:08:32 +0200 Subject: [PATCH 20/34] Latest Poppe Model --- ....HeatExchangers.CoolingTowerPoppe_test.mof | 89 ++++----- .../HeatExchangers/CoolingTowerPoppeTrial.mo | 41 ++-- .../HeatExchangers/Function_fgh_test.mo | 178 ++++++++++++++++++ .../HeatExchangers/Functionftest.mo | 18 +- .../HeatExchangers/Functiongtest.mo | 91 --------- .../HeatExchangers/Functionhtest.mo | 6 +- .../MultiFluid/HeatExchangers/package.order | 2 +- .../HeatExchangers/CoolingTowerPoppe_test.mo | 8 +- 8 files changed, 257 insertions(+), 176 deletions(-) create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo diff --git a/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof b/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof index 8e037ecf..61ee0ea0 100644 --- a/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof +++ b/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof @@ -3,13 +3,13 @@ model CoolingTowerPoppe_test input MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate waterInletFlow( start = 39) "m3/s"; input Real waterInletPress(start = 1) "bar"; - input Real AirInletTemp(start = 10) "deg_C"; + input Real AirInletTemp(start = 4) "deg_C"; input Real airInletPress(start = 1) "bar"; input MetroscopeModelingLibrary.Utilities.Units.Fraction cold_source_relative_humidity - (start = 0.4) "1"; - input Real WaterOutletTemp(start = 20) "deg_C"; - parameter Real Lfi = 15 "m"; - parameter Real Afr = 3000 "m2"; + (start = 0.2) "1"; + input Real WaterOutletTemp(start = 27) "deg_C"; + parameter MetroscopeModelingLibrary.Utilities.Units.Area Afr = 3000; + parameter Real Lfi = 15; parameter Real Cf = 1; constant Real CoolingTower.gr(unit = "m/s2") = 9.80665; parameter Integer CoolingTower.N_step = 10; @@ -120,7 +120,7 @@ model CoolingTowerPoppe_test constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate waterInletPress_sensor.Q_0 = 100; constant MetroscopeModelingLibrary.Utilities.Units.Pressure waterInletPress_sensor.P_0 - = 100000.0; + = 100000; parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy waterInletPress_sensor.h_0 = 500000.0; parameter Boolean waterInletPress_sensor.faulty_flow_rate = false; @@ -420,13 +420,13 @@ model CoolingTowerPoppe_test parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.h_0 = 500000.0; - output Real hd(start = 1); - output Real V_inlet(start = 13.251477) "m/s"; + output Real hd(start = 0.00943308); output Real airInletFlow(start = 52552.133) "m3/s"; output Real airOutletPress(start = 1) "bar"; - output Real AirOutletTemp(start = 35) "deg_C"; + output Real AirOutletTemp(start = 10) "deg_C"; output MetroscopeModelingLibrary.Utilities.Units.Fraction cold_sink_relative_humidity (start = 1) "1"; + output Real V_inlet(start = 13.251477) "m/s"; MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy hot_source.h_out; MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction @@ -479,33 +479,31 @@ model CoolingTowerPoppe_test MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy hot_sink.C_in.h_outflow (start = 100000.0); Modelica.Media.Interfaces.Types.MassFraction hot_sink.C_in.Xi_outflow[0]; - MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.hd; - MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient - CoolingTower.Cf; MetroscopeModelingLibrary.Utilities.Units.Velocity CoolingTower.V_inlet; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.hd; MetroscopeModelingLibrary.Utilities.Units.Inputs.InputArea CoolingTower.Afr; MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.Lfi; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient + CoolingTower.Cf; MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.rho_air_inlet; MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.rho_air_outlet; MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_hot_in; MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_hot_out; MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_cold_in; MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_cold_out; - MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.w_in; - MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.w_out; + Real CoolingTower.w_in; + Real CoolingTower.w_out; MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.i_initial; MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.i_final; MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_cold_in; MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_cold_out; MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_hot_in; MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_hot_out; - MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.deltaT; - MetroscopeModelingLibrary.Utilities.Units.HeatCapacity CoolingTower.deltacp; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.deltaTw; Real CoolingTower.w[CoolingTower.N_step]; Real CoolingTower.M[CoolingTower.N_step]; Real CoolingTower.i[CoolingTower.N_step]; Real CoolingTower.Tw[CoolingTower.N_step]; - Real CoolingTower.Ta[CoolingTower.N_step]; MetroscopeModelingLibrary.Utilities.Units.HeatCapacity CoolingTower.cp[ CoolingTower.N_step]; Real CoolingTower.Pin[CoolingTower.N_step]; @@ -2514,76 +2512,65 @@ model CoolingTowerPoppe_test CoolingTower.air_inlet_flow.Q = CoolingTower.Q_cold_in; CoolingTower.air_inlet_connector.h_outflow = CoolingTower.i_initial; CoolingTower.air_inlet.T_in = CoolingTower.T_cold_in; - CoolingTower.w_in = CoolingTower.air_inlet.relative_humidity* - xsaturation_Unique37( - CoolingTower.air_inlet_flow.state_in); + CoolingTower.w_in = CoolingTower.air_inlet.Xi_in[1]; CoolingTower.air_outlet_flow.P_in = CoolingTower.Pin[1]; CoolingTower.air_outlet_flow.Q = CoolingTower.Q_cold_out; CoolingTower.air_outlet_connector.h_outflow = CoolingTower.i_final; CoolingTower.air_outlet.T_out = CoolingTower.T_cold_out; - CoolingTower.w_out = CoolingTower.air_outlet.relative_humidity* - xsaturation_Unique37( - CoolingTower.air_outlet_flow.state_out); + CoolingTower.w_out = CoolingTower.air_outlet.Xi_out[1]; CoolingTower.water_inlet_flow.P_out = CoolingTower.Pin[1]; CoolingTower.water_inlet_flow.Q = CoolingTower.Q_hot_in; CoolingTower.water_inlet_flow.T_in = CoolingTower.T_hot_in; - CoolingTower.cp[1] = Modelica.Media.Water.WaterIF97_ph.specificHeatCapacityCp_Unique38 - ( - CoolingTower.water_inlet_flow.state_in); CoolingTower.water_outlet_flow.P_out = CoolingTower.Pin[1]; CoolingTower.water_outlet_flow.Q = CoolingTower.Q_hot_out; CoolingTower.water_outlet_flow.T_in = CoolingTower.T_hot_out; - CoolingTower.deltaT = (CoolingTower.T_hot_in-CoolingTower.T_hot_out)/( + CoolingTower.deltaTw = (CoolingTower.T_hot_in-CoolingTower.T_hot_out)/( CoolingTower.N_step-1); - CoolingTower.deltacp = (CoolingTower.cp[CoolingTower.N_step]-CoolingTower.cp - [1])/(CoolingTower.N_step-1); for n in (1:CoolingTower.N_step) loop - CoolingTower.Tw[n] = CoolingTower.T_hot_in+(CoolingTower.T_hot_out- - CoolingTower.T_hot_in)*(n-1)/(CoolingTower.N_step-1); - CoolingTower.Ta[n] = CoolingTower.T_cold_in+(CoolingTower.T_cold_out- - CoolingTower.T_cold_in)*(n-1)/(CoolingTower.N_step-1); + CoolingTower.Tw[n] = CoolingTower.T_hot_out+(CoolingTower.T_hot_in- + CoolingTower.T_hot_out)*(n-1)/(CoolingTower.N_step-1); end for; for n in (1:CoolingTower.N_step-1) loop - CoolingTower.w[n+1] = CoolingTower.w[n]+CoolingTower.deltaT* + CoolingTower.w[n+1] = CoolingTower.w[n]+CoolingTower.deltaTw* MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.f (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); - CoolingTower.i[n+1] = CoolingTower.i[n]+CoolingTower.deltaT* + CoolingTower.i[n+1] = CoolingTower.i[n]+CoolingTower.deltaTw* MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.g (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); - CoolingTower.M[n+1] = CoolingTower.M[n]+CoolingTower.deltaT* + CoolingTower.M[n+1] = CoolingTower.M[n]+CoolingTower.deltaTw* MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.h (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); CoolingTower.Qw[n+1] = CoolingTower.Qw[n]-CoolingTower.Qa[n]*( CoolingTower.w[n+1]-CoolingTower.w[n]); CoolingTower.Qa[n+1] = CoolingTower.Qa[n]*(1+CoolingTower.w[n+1]); - CoolingTower.Lef[n+1] = 0.9077990913*((xsaturation_pT_Unique39( - CoolingTower.Pin[n+1], CoolingTower.Ta[n+1])+0.622)/(CoolingTower.w[n+1] - +0.622)-1)/log((xsaturation_pT_Unique39(CoolingTower.Pin[n+1], - CoolingTower.Ta[n+1])+0.622)/(CoolingTower.w[n+1]+0.622)); - CoolingTower.cp[n+1] = CoolingTower.cp[n]+CoolingTower.deltacp* - CoolingTower.N_step; + CoolingTower.Lef[n+1] = CoolingTower.Lef[n]; + CoolingTower.cp[n+1] = CoolingTower.cp[n]; CoolingTower.Pin[n+1] = CoolingTower.Pin[n]; end for; CoolingTower.w[1] = CoolingTower.w_in; CoolingTower.w[CoolingTower.N_step] = CoolingTower.w_out; CoolingTower.i[1] = CoolingTower.i_initial; CoolingTower.i[CoolingTower.N_step] = CoolingTower.i_final; - CoolingTower.M[1] = CoolingTower.hd*CoolingTower.Afr/CoolingTower.Qw[1]; + CoolingTower.M[1] = CoolingTower.hd*CoolingTower.Afr/CoolingTower.Qw[ + CoolingTower.N_step]; CoolingTower.M[CoolingTower.N_step] = CoolingTower.hd*CoolingTower.Afr/ - CoolingTower.Qw[CoolingTower.N_step]; - CoolingTower.Qw[1] = CoolingTower.Q_hot_in; - CoolingTower.Qw[CoolingTower.N_step] = CoolingTower.Q_hot_out; + CoolingTower.Qw[1]; + CoolingTower.Qw[1] = CoolingTower.Q_hot_out; + CoolingTower.Qw[CoolingTower.N_step] = CoolingTower.Q_hot_in; CoolingTower.Qa[1] = CoolingTower.Q_cold_in; CoolingTower.Qa[CoolingTower.N_step] = CoolingTower.Q_cold_out; - CoolingTower.Lef[1] = 0.9077990913*((xsaturation_pT_Unique39( - CoolingTower.Pin[1], CoolingTower.Ta[1])+0.622)/(CoolingTower.w[1]+0.622)-1) - /log((xsaturation_pT_Unique39(CoolingTower.Pin[1], CoolingTower.Ta[1])+ - 0.622)/(CoolingTower.w[1]+0.622)); + CoolingTower.Lef[1] = 0.9077990913*((xsaturation_pT_Unique37( + CoolingTower.Pin[1], CoolingTower.T_cold_in)+0.622)/(CoolingTower.w[1]+ + 0.622)-1)/log((xsaturation_pT_Unique37(CoolingTower.Pin[1], + CoolingTower.T_cold_in)+0.622)/(CoolingTower.w[1]+0.622)); + CoolingTower.cp[1] = Modelica.Media.Water.WaterIF97_ph.specificHeatCapacityCp_Unique44 + ( + CoolingTower.water_inlet_flow.state_in); CoolingTower.rho_air_inlet = CoolingTower.air_inlet_flow.rho_in; CoolingTower.rho_air_outlet = CoolingTower.air_outlet_flow.rho_out; 0.25*(CoolingTower.rho_air_inlet+CoolingTower.rho_air_outlet)* @@ -3470,8 +3457,8 @@ model CoolingTowerPoppe_test airOutletPress_sensor.P_barA = airOutletPress; CoolingTower.hd = hd; CoolingTower.Cf = Cf; - CoolingTower.Lfi = Lfi; CoolingTower.Afr = Afr; + CoolingTower.Lfi = Lfi; CoolingTower.V_inlet = V_inlet; WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index 904a8ea1..fb8733e7 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -7,7 +7,7 @@ model CoolingTowerPoppeTrial import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - function f + function f input Real Tw; input Real w; input Real i; @@ -17,9 +17,9 @@ model CoolingTowerPoppeTrial input Real Pin; input Real Lef; output Real y; - algorithm + algorithm y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); - end f; + end f; function g input Real Tw; @@ -94,9 +94,9 @@ model CoolingTowerPoppeTrial WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Inlet air_inlet_connector annotation (Placement(transformation(extent={{-10,100},{10,120}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Outlet air_outlet_connector annotation (Placement(transformation(extent={{-10,-120},{10,-100}}))); - WaterSteam.BaseClasses.IsoHFlowModel water_inlet_flow annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); - WaterSteam.BaseClasses.IsoPHFlowModel water_outlet_flow annotation (Placement(transformation(extent={{60,-10},{80,10}}))); - WaterSteam.BoundaryConditions.Source water_outlet annotation (Placement(transformation(extent={{34,-10},{54,10}}))); + WaterSteam.BaseClasses.IsoHFlowModel water_inlet_flow annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); + WaterSteam.BaseClasses.IsoPHFlowModel water_outlet_flow annotation (Placement(transformation(extent={{64,-10},{84,10}}))); + WaterSteam.BoundaryConditions.Source water_outlet annotation (Placement(transformation(extent={{22,-10},{42,10}}))); WaterSteam.BoundaryConditions.Sink water_inlet annotation (Placement(transformation(extent={{-42,-10},{-22,10}}))); MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_inlet_flow annotation (Placement(transformation( extent={{-10,-10},{10,10}}, @@ -110,7 +110,7 @@ model CoolingTowerPoppeTrial air_outlet annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-36}))); + origin={0,-32}))); MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_outlet_flow annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -146,19 +146,20 @@ equation deltaTw = (T_hot_in - T_hot_out) / (N_step - 1); for n in 1:N_step loop - Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); - + //Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); //OLD LOOP + Tw[n] = T_hot_out + (T_hot_in-T_hot_out)*(n-1)/(N_step-1); //NEW LOOP where T[N_step] = T_hot_in end for; for n in 1:N_step-1 loop w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - M[n+1]= M[n] + deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); + M[n+1]= M[n] - deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); Qa[n+1] = Qa[n] * (1 + w[n+1]); + //Qa[n+1] = Qa[n] + Qa[n] * (w[n+1] - w[n]); //Possibly better Qa equation in future ? - //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); + //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); //Evolution of Ta to allow for Lef factor to change in N_step's Lef[n+1] = Lef[n]; //Lef[n+1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622)); //NEW @@ -173,10 +174,10 @@ equation w[N_step] = w_out; i[1] = i_initial; i[N_step] = i_final; - M[1] = hd * Afr / Qw[1]; // H: Not so sure of this equation; I think its good ? Because it needs a start value for M[1] - M[N_step] = hd * Afr / Qw[N_step]; - Qw[1] = Q_hot_in; - Qw[N_step] = Q_hot_out; + M[1] = hd * Afr / Qw[N_step]; //was Qw[1] but Merkel number evolution follows direction of water flow + M[N_step] = hd * Afr / Qw[1]; //was Qw[N_step] but Merkel number follows flow of water so must be like this + Qw[1] = Q_hot_out; //was Q_hot_in but water and air flow in opposite directions so like this + Qw[N_step] = Q_hot_in; //was Q_hot_out but water and air flow in opposite directions so like this Qa[1] = Q_cold_in; Qa[N_step] = Q_cold_out; @@ -190,14 +191,14 @@ equation 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - air_inlet.Xi_in[1])); - connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-80,0}}, color={28,108,200})); - connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{80,0},{110,0}}, color={28,108,200})); - connect(water_outlet_flow.C_in, water_outlet.C_out) annotation (Line(points={{60,0},{49,0}}, color={28,108,200})); - connect(water_inlet_flow.C_out, water_inlet.C_in) annotation (Line(points={{-60,0},{-37,0}}, color={28,108,200})); + connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-76,0}}, color={28,108,200})); + connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{84,0},{110,0}}, color={28,108,200})); + connect(water_outlet_flow.C_in, water_outlet.C_out) annotation (Line(points={{64,0},{37,0}}, color={28,108,200})); + connect(water_inlet_flow.C_out, water_inlet.C_in) annotation (Line(points={{-56,0},{-37,0}}, color={28,108,200})); connect(air_inlet_flow.C_in, air_inlet_connector) annotation (Line(points={{0,66},{0,110}}, color={85,170,255})); connect(air_outlet_flow.C_out, air_outlet_connector) annotation (Line(points={{0,-74},{0,-110}}, color={85,170,255})); connect(air_inlet_flow.C_out, air_inlet.C_in) annotation (Line(points={{0,46},{0,33}}, color={85,170,255})); - connect(air_outlet_flow.C_in, air_outlet.C_out) annotation (Line(points={{0,-54},{0,-41}}, color={85,170,255})); + connect(air_outlet_flow.C_in, air_outlet.C_out) annotation (Line(points={{0,-54},{0,-37}}, color={85,170,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ Ellipse( extent={{-20,110},{20,70}}, diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo new file mode 100644 index 00000000..db008346 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo @@ -0,0 +1,178 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model Function_fgh_test + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function g + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {w}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + end g; + + function f + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + end f; + + function h + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + end h; + + // Poppe Inputs + + parameter Real rh = 0.8; + parameter Real i = 17719.107; + parameter Real Tw = 20+273.15; + parameter Real cp = 4180; + parameter Real Pin = 100000; + parameter Real hd = 0.012856079; //From Merkel model + Real Lef; + parameter Real Qw = 38853.242; + parameter Real Qa = 18717.115; + + Real w; + Real w1; + Real w2; + Real w3; + Real w4; + + Real i1; + Real i2; + Real i3; + Real i4; + + Real M1; + Real M2; + Real M3; + Real M4; + Real Mtest; + Real Mtest1; + Real Mtest3; + + Real Qw1; + Real Qw2; + Real Qw3; + + Real Qa1; + Real Qa2; + Real Qa3; + + Real imasw; + Real wsw; + Real iv; + Real P1; + Real P2; + Real P3; + Real Tot; + +equation + + // connectors + + // New Poppe Equations + + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW + + //i - has a given start value, taken from Merkel model + i1 = i + 2 * g(Tw, w, i, cp, Qw, Qa, Pin, Lef); + i2 = i1 + 2 * g(Tw-5, w1, i1, cp, Qw1, Qa1, Pin, Lef); + i3 = i2 + 2 * g(Tw-10, w2, i2, cp, Qw2, Qa2, Pin, Lef); + i4 = i3 + 2 * g(Tw-15, w3, i3, cp, Qw3, Qa3, Pin, Lef); + + w = MoistAir.massFraction_pTphi(Pin, Tw, rh); //start value with relative humidity equal to 0.8 + w1 = w + 2 * f(Tw, w, i, cp, Qw, Qa, Pin, Lef); + w2 = w1 + 2 * f(Tw-5, w1, i1, cp, Qw1, Qa1, Pin, Lef); + w3 = w2 + 2 * f(Tw-10, w2, i2, cp, Qw2, Qa2, Pin, Lef); + w4 = w3 + 2 * f(Tw-15, w3, i3, cp, Qw3, Qa3, Pin, Lef); + + M1 = 1; //Possibly a standard merkel number start value - range of 0.5-2 online seems acceptable + M2 = M1 + 2 * h(Tw-5, w1, i1, cp, Pin, Lef); + M3 = M2 + 2 * h(Tw-10, w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw + M4 = M3 + 2 * h(Tw-15, w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen + Mtest = h(Tw, w, i, cp, Pin, Lef); + + Mtest1 = hd * 3000 / Qw; + Mtest3 = hd * 3000 / Qw3; + + //Qw - has a given start value, taken from Merkel model + Qw1 = Qw - Qa * (w1 - w); + Qw2 = Qw1 - Qa1 * (w2 - w1); + Qw3 = Qw2 - Qa2 * (w3 - w2); //Depending on Tw, Qw and Qa can both increase ? + + //Qa - has a given start value, taken from Merkel model + Qa1 = Qa * (1 + w1); + Qa2 = Qa1 * (1 + w2); + Qa3 = Qa2 * (1 + w3); + + imasw = MoistAir.h_pTX(Pin, Tw, {w}); + wsw = MoistAir.xsaturation_pT(Pin, Tw); + iv = MoistAir.h_pTX(Pin, Tw, {1}); + P1 = MoistAir.h_pTX(Pin, Tw, {w}) - i; + P2 = (Lef - 1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})); + P3 = -(MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw; + Tot = cp / (P1 + P2 + P3); + + //di/dTw - function g + + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end Function_fgh_test; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo index 47dbd23d..77bf66be 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo @@ -42,13 +42,16 @@ model Functionftest Real abshumid; Real enthalp; Real steam; - Real xsat; + Real deltaw; Real Qw1; Real Qw2; Real Qw3; Real Qa1; Real Qa2; Real Qa3; + Real Qa11; + Real Qa22; + Real Qa33; equation @@ -61,12 +64,12 @@ equation y = f(Tw, w, i, cp, Qw, Qa, Pin, Lef); y2 = f(Tw, w+0.5*time, i, cp, Qw, Qa, Pin, Lef); - w2 = w + 10 * f(Tw-20*time, w+0.005, i+50000*time, cp, Qw, Qa, Pin, Lef); + w2 = w + 10 * f(Tw, w, i, cp, Qw, Qa, Pin, Lef); w3 = w2 + 10 * f(Tw, w2, i, cp, Qw2, Qa2, Pin, Lef); w4 = w3 + 10 * f(Tw, w3, i, cp, Qw3, Qa3, Pin, Lef); - abshumid = (MoistAir.xsaturation_pT(Pin, Tw) - w); - xsat = MoistAir.xsaturation_pT(Pin, Tw); + abshumid = MoistAir.xsaturation_pT(Pin, Tw); + deltaw = MoistAir.xsaturation_pT(Pin, Tw) - w; enthalp = MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, w)}) - i; steam = WaterSteamMedium.specificEnthalpy_pT(Pin, 100.05+273.15, 0); @@ -78,11 +81,14 @@ equation Qa2 = Qa1 * (1 + w2); Qa3 = Qa2 * (1 + w3); + Qa11 = Qa + Qa * (w2 - w); + Qa22 = Qa1 + Qa1 * (w3 - w2); + Qa33 = Qa2 + Qa2 * (w4 - w3); + - //RHconversion = MoistAir.relativeHumidity_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, w)}) * Saturation Vapor Pressure //dw/dTw - humidity ratio/water temperature - function f - //humidity is the problem, equations need humidity ratio/specific humidity but I only have functions for absolute humidity or relative humidity + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ Ellipse( extent={{-20,110},{20,70}}, diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo deleted file mode 100644 index f44d064e..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functiongtest.mo +++ /dev/null @@ -1,91 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model Functiongtest - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - function g - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {w}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); - end g; - - // Poppe Inputs - - parameter Real rh = 0.8; - parameter Real i = 87145.414; - parameter Real Tw = 45+273.15; - parameter Real cp = 4180; - parameter Real Pin = 100000; - Real Lef; - parameter Real Qw = 38853.242; - parameter Real Qa = 18717.115; - Real y; - Real w; - Real i1; - Real i2; - Real i3; - Real i4; - -equation - - // connectors - - // New Poppe Equations - - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW - y = g(Tw, w, i, cp, Qw, Qa, Pin, Lef); - i1 = i + 10 * g(Tw-35*time, w+0.05*time, i+130000*time, cp, Qw-1000*time, Qa+3000*time, Pin, Lef); - //i1 = i + 10 * g(Tw, w, i, cp, Qw, Qa, Pin, Lef); - i2 = i1 + 10 * g(Tw, w, i1, cp, Qw, Qa, Pin, Lef); - i3 = i2 + 10 * g(Tw, w, i2, cp, Qw, Qa, Pin, Lef); - i4 = i3 + 10 * g(Tw, w, i3, cp, Qw, Qa, Pin, Lef); - - w = MoistAir.massFraction_pTphi(Pin, Tw, rh); - - //di/dTw - function g - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end Functiongtest; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo index d0bc5305..b1d4a80b 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo @@ -48,9 +48,9 @@ equation w = MoistAir.massFraction_pTphi(Pin, Tw, rh); M1 = 0.000980808; - M2 = M1 + 10 * h(Tw-5, w+0.02, i+10000, cp, Pin, Lef); - M3 = M2 + 10 * h(Tw-10, w+0.035, i+20000, cp, Pin, Lef); - M4 = M3 + 10 * h(Tw-25, w+0.04, i+160000, cp, Pin, Lef); + M2 = M1 + 10 * h(Tw, w, i, cp, Pin, Lef); + M3 = M2 + 10 * h(Tw-5, w+0.05, i+20000, cp, Pin, Lef); + M4 = M3 + 10 * h(Tw-10, w+0.09, i+40000, cp, Pin, Lef); //dMe/dTw = function h diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 29546835..6ad84dc6 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -10,5 +10,5 @@ CoolingTowerMerkel CoolingTowerPoppe CoolingTowerPoppeTrial Functionftest -Functiongtest +Function_fgh_test Functionhtest diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index 84b1ebc8..361daedd 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -9,12 +9,12 @@ model CoolingTowerPoppe_test input Real waterInletPress(start=1) "bar"; // Cold Air Inlet - input Real AirInletTemp(start=4) "deg_C"; + input Real AirInletTemp(start=5) "deg_C"; input Real airInletPress(start=1) "bar"; - input Units.Fraction cold_source_relative_humidity(start=0.2) "1"; + input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; // Input for calibration - input Real WaterOutletTemp(start=27) "deg_C"; + input Real WaterOutletTemp(start=18) "deg_C"; // Calibrated Parameters output Real hd(start=0.00943308); @@ -28,7 +28,7 @@ model CoolingTowerPoppe_test output Real airInletFlow(start=52552.133) "m3/s"; output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=10) "deg_C"; + output Real AirOutletTemp(start=20) "deg_C"; // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; From ada350a5ecd983b2236baddae494b57990b39fe3 Mon Sep 17 00:00:00 2001 From: postorino Date: Fri, 3 May 2024 15:26:31 +0200 Subject: [PATCH 21/34] Test function --- .../HeatExchangers/Function_fgh_test.mo | 99 +++++++++++-------- 1 file changed, 57 insertions(+), 42 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo index db008346..b76dfdcb 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo @@ -49,17 +49,21 @@ model Function_fgh_test // Poppe Inputs - parameter Real rh = 0.8; - parameter Real i = 17719.107; - parameter Real Tw = 20+273.15; + parameter Real rh = 0.2; + + parameter Real Tw_in = 30+273.15; + output Real Tw_out(start = 20+273.15); + parameter Real Ta1 = 15+273.15; + + Real Tw[4]; + Real deltaTw; + + parameter Real cp = 4180; parameter Real Pin = 100000; - parameter Real hd = 0.012856079; //From Merkel model + parameter Real hd(start= -0.0012223658); //From Merkel model Real Lef; - parameter Real Qw = 38853.242; - parameter Real Qa = 18717.115; - Real w; Real w1; Real w2; Real w3; @@ -74,17 +78,17 @@ model Function_fgh_test Real M2; Real M3; Real M4; - Real Mtest; - Real Mtest1; - Real Mtest3; + Real Me; - Real Qw1; + parameter Real Qw1 = 30; Real Qw2; Real Qw3; + Real Qw4; - Real Qa1; + parameter Real Qa1 = 20; Real Qa2; Real Qa3; + Real Qa4; Real imasw; Real wsw; @@ -93,55 +97,66 @@ model Function_fgh_test Real P2; Real P3; Real Tot; + Real delta2; + equation - // connectors + // Water temperature + Tw[1] = Tw_out; + Tw[2] = Tw[1] + deltaTw; + Tw[3] = Tw[2] + deltaTw; + Tw[4] = Tw_in; + deltaTw = (Tw[4] - Tw[1]) / (4 - 1); - // New Poppe Equations + // Lewis factor + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, Ta1)+0.622)/(w1+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, Ta1)+0.622)/(w1+0.622)); //NEW - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW + // Air enthalpy + i1 = MoistAir.h_pTX(Pin, Ta1, {w1}); //inlet + i2 = i1 + deltaTw * g(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); + i3 = i2 + deltaTw * g(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); + i4 = i3 + deltaTw * g(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet - //i - has a given start value, taken from Merkel model - i1 = i + 2 * g(Tw, w, i, cp, Qw, Qa, Pin, Lef); - i2 = i1 + 2 * g(Tw-5, w1, i1, cp, Qw1, Qa1, Pin, Lef); - i3 = i2 + 2 * g(Tw-10, w2, i2, cp, Qw2, Qa2, Pin, Lef); - i4 = i3 + 2 * g(Tw-15, w3, i3, cp, Qw3, Qa3, Pin, Lef); + // Humidity + w1 = MoistAir.massFraction_pTphi(Pin, Ta1, rh); // inlet + w2 = w1 + deltaTw * f(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); + w3 = w2 + deltaTw * f(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); + w4 = w3 + deltaTw * f(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet - w = MoistAir.massFraction_pTphi(Pin, Tw, rh); //start value with relative humidity equal to 0.8 - w1 = w + 2 * f(Tw, w, i, cp, Qw, Qa, Pin, Lef); - w2 = w1 + 2 * f(Tw-5, w1, i1, cp, Qw1, Qa1, Pin, Lef); - w3 = w2 + 2 * f(Tw-10, w2, i2, cp, Qw2, Qa2, Pin, Lef); - w4 = w3 + 2 * f(Tw-15, w3, i3, cp, Qw3, Qa3, Pin, Lef); + delta2= (((MoistAir.h_pTX(Pin, Tw[2], {w2})) - i2 + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw[2], {w2}) - i2 - (MoistAir.xsaturation_pT(Pin, Tw[2]) - w2) * MoistAir.h_pTX(Pin, Tw[2], {1}))) - (MoistAir.xsaturation_pT(Pin, Tw[2]) - w2) * cp * Tw[2])); - M1 = 1; //Possibly a standard merkel number start value - range of 0.5-2 online seems acceptable - M2 = M1 + 2 * h(Tw-5, w1, i1, cp, Pin, Lef); - M3 = M2 + 2 * h(Tw-10, w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw - M4 = M3 + 2 * h(Tw-15, w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen - Mtest = h(Tw, w, i, cp, Pin, Lef); + // Merkel number + M1 = deltaTw * h(Tw[1], w1, i1, cp, Pin, Lef); + M2 = deltaTw * h(Tw[2], w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw + M3 = deltaTw * h(Tw[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen + M4 = deltaTw * h(Tw[4], w4, i4, cp, Pin, Lef); + Me = (M1 + M2 + M3 + M3) / (4 * deltaTw); + Me = hd * 3000 / Qw1; - Mtest1 = hd * 3000 / Qw; - Mtest3 = hd * 3000 / Qw3; + // Water flow //Qw - has a given start value, taken from Merkel model - Qw1 = Qw - Qa * (w1 - w); Qw2 = Qw1 - Qa1 * (w2 - w1); - Qw3 = Qw2 - Qa2 * (w3 - w2); //Depending on Tw, Qw and Qa can both increase ? + Qw3 = Qw2 - Qa2 * (w3 - w2); + Qw4 = Qw3 - Qa3 * (w4 - w3);//Depending on Tw, Qw and Qa can both increase ? + // Air flow //Qa - has a given start value, taken from Merkel model - Qa1 = Qa * (1 + w1); Qa2 = Qa1 * (1 + w2); Qa3 = Qa2 * (1 + w3); + Qa4 = Qa3 * (1 + w4); + + - imasw = MoistAir.h_pTX(Pin, Tw, {w}); - wsw = MoistAir.xsaturation_pT(Pin, Tw); - iv = MoistAir.h_pTX(Pin, Tw, {1}); - P1 = MoistAir.h_pTX(Pin, Tw, {w}) - i; - P2 = (Lef - 1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})); - P3 = -(MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw; + imasw = MoistAir.h_pTX(Pin, Tw_in, {w1}); + wsw = MoistAir.xsaturation_pT(Pin, Tw_in); + iv = MoistAir.h_pTX(Pin, Tw_in, {1}); + P1 = MoistAir.h_pTX(Pin, Tw_in, {w1}) - i1; + P2 = (Lef - 1) * (MoistAir.h_pTX(Pin, Tw_in, {w1}) - i1 - (MoistAir.xsaturation_pT(Pin, Tw_in) - w1) * MoistAir.h_pTX(Pin, Tw_in, {1})); + P3 = -(MoistAir.xsaturation_pT(Pin, Tw_in) - w1) * cp * Tw_in; Tot = cp / (P1 + P2 + P3); - //di/dTw - function g annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ Ellipse( From 716c2f26773e8a155dac777c7a7d2141e23728cf Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Mon, 13 May 2024 17:31:37 +0200 Subject: [PATCH 22/34] Pop Model --- ....HeatExchangers.CoolingTowerPoppe_test.mof | 20 ++++---- .../HeatExchangers/CoolingTowerPoppeTrial.mo | 44 ++++++++++++----- .../HeatExchangers/Function_fgh_test.mo | 47 +++++++------------ .../HeatExchangers/CoolingTowerPoppe_test.mo | 21 +++++---- 4 files changed, 71 insertions(+), 61 deletions(-) diff --git a/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof b/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof index 61ee0ea0..42b1ccf5 100644 --- a/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof +++ b/MetroscopeModelingLibrary/MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers.CoolingTowerPoppe_test.mof @@ -1,18 +1,18 @@ model CoolingTowerPoppe_test - input Real waterInletTemp(start = 28) "deg_C"; + input Real waterInletTemp(start = 30) "deg_C"; input MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate waterInletFlow( - start = 39) "m3/s"; + start = 30) "m3/s"; input Real waterInletPress(start = 1) "bar"; - input Real AirInletTemp(start = 4) "deg_C"; + input Real AirInletTemp(start = 15) "deg_C"; input Real airInletPress(start = 1) "bar"; input MetroscopeModelingLibrary.Utilities.Units.Fraction cold_source_relative_humidity - (start = 0.2) "1"; - input Real WaterOutletTemp(start = 27) "deg_C"; + (start = 0.4) "1"; + input Real WaterOutletTemp(start = 20) "deg_C"; parameter MetroscopeModelingLibrary.Utilities.Units.Area Afr = 3000; parameter Real Lfi = 15; parameter Real Cf = 1; constant Real CoolingTower.gr(unit = "m/s2") = 9.80665; - parameter Integer CoolingTower.N_step = 10; + parameter Integer CoolingTower.N_step = 3; parameter MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet_flow.T_in_0 = CoolingTower.water_inlet_flow.T_0; parameter MetroscopeModelingLibrary.Utilities.Units.Temperature @@ -420,12 +420,12 @@ model CoolingTowerPoppe_test parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy airOutletPress_sensor.flow_model.h_0 = 500000.0; - output Real hd(start = 0.00943308); + output Real hd(start = 0.0017803314); output Real airInletFlow(start = 52552.133) "m3/s"; output Real airOutletPress(start = 1) "bar"; - output Real AirOutletTemp(start = 10) "deg_C"; + output Real AirOutletTemp(start = 20) "deg_C"; output MetroscopeModelingLibrary.Utilities.Units.Fraction cold_sink_relative_humidity - (start = 1) "1"; + (start = 0.870559) "1"; output Real V_inlet(start = 13.251477) "m/s"; MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy hot_source.h_out; @@ -2541,7 +2541,7 @@ model CoolingTowerPoppe_test (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); - CoolingTower.M[n+1] = CoolingTower.M[n]+CoolingTower.deltaTw* + CoolingTower.M[n+1] = CoolingTower.M[n]-CoolingTower.deltaTw* MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppeTrial.h (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index fb8733e7..4b957649 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -18,7 +18,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); end f; function g @@ -32,7 +32,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {w}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); end g; function h @@ -44,7 +44,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + y:= cp / (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; Units.Velocity V_inlet; @@ -78,9 +78,10 @@ model CoolingTowerPoppeTrial // Poppe Inputs Units.Temperature deltaTw; - parameter Integer N_step = 10; + parameter Integer N_step = 5; Real w[N_step]; Real M[N_step]; + Real Me; Real i[N_step]; Real Tw[N_step]; //Real Ta[N_step]; //NEW @@ -90,6 +91,12 @@ model CoolingTowerPoppeTrial Units.MassFlowRate Qw[N_step]; Units.MassFlowRate Qa[N_step]; + //Real M1; + //Real M2; + //Real M3; + //Real M4; + + WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Inlet air_inlet_connector annotation (Placement(transformation(extent={{-10,100},{10,120}}))); @@ -154,30 +161,43 @@ equation for n in 1:N_step-1 loop w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - M[n+1]= M[n] - deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); + //M[n+1]= M[n] + deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); + M[n]= deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); Qa[n+1] = Qa[n] * (1 + w[n+1]); - //Qa[n+1] = Qa[n] + Qa[n] * (w[n+1] - w[n]); //Possibly better Qa equation in future ? + //Qa[n+1] = Qa[n] + Qa[n] * (w[n+1] - w[n]); //Possibly better Qa equation in future ? - //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); //Evolution of Ta to allow for Lef factor to change in N_step's + //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); //Evolution of Ta to allow for Lef factor to change in N_step's Lef[n+1] = Lef[n]; //Lef[n+1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622)); //NEW cp[n+1] = cp[n]; - //cp[n+1] = WaterSteamMedium.cp_pT(Pin[n+1], Tw[n+1], {1}); + //cp[n+1] = WaterSteamMedium.cp_pT(Pin[n+1], Tw[n+1], {1}); //Need exact WaterSteamMedium subgroup name Pin[n+1] = Pin[n]; end for; + // Merkel number + //M1 = deltaTw * h(Tw[1], w1, i1, cp, Pin, Lef); + //M2 = deltaTw * h(Tw[2], w2, i2, cp, Pin, Lef); + //M3 = deltaTw * h(Tw[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen + //M4 = deltaTw * h(Tw[4], w4, i4, cp, Pin, Lef); + + Me = (M[1] + M[N_step]) / ((N_step - 1) * deltaTw); + //Me = hd * 3000 / Qw[1]; + + + w[1] = w_in; w[N_step] = w_out; i[1] = i_initial; i[N_step] = i_final; - M[1] = hd * Afr / Qw[N_step]; //was Qw[1] but Merkel number evolution follows direction of water flow - M[N_step] = hd * Afr / Qw[1]; //was Qw[N_step] but Merkel number follows flow of water so must be like this - Qw[1] = Q_hot_out; //was Q_hot_in but water and air flow in opposite directions so like this - Qw[N_step] = Q_hot_in; //was Q_hot_out but water and air flow in opposite directions so like this + //M[1] = hd * Afr / Qw[1]; //was Qw[1] but Merkel number evolution follows direction of water flow + M[N_step] = hd * Afr / Qw[N_step]; //was Qw[N_step] but Merkel number follows flow of water so must be like this + M[N_step] = deltaTw * h(Tw[N_step], w[N_step], i[N_step], cp[N_step], Pin[N_step], Lef[N_step]); + Qw[1] = Q_hot_out; //was Q_hot_in but water and air flow in opposite directions so like this + Qw[N_step] = Q_hot_in; //was Q_hot_out but water and air flow in opposite directions so like this Qa[1] = Q_cold_in; Qa[N_step] = Q_cold_out; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo index b76dfdcb..f0168bea 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo @@ -18,7 +18,7 @@ model Function_fgh_test input Real Lef; output Real y; algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {w}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); end g; function f @@ -32,7 +32,7 @@ model Function_fgh_test input Real Lef; output Real y; algorithm - y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); end f; function h @@ -44,15 +44,16 @@ model Function_fgh_test input Real Lef; output Real y; algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + y:= cp / (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; + // Poppe Inputs parameter Real rh = 0.2; parameter Real Tw_in = 30+273.15; - output Real Tw_out(start = 20+273.15); + input Real Tw_out(start = 20+273.15); parameter Real Ta1 = 15+273.15; Real Tw[4]; @@ -61,7 +62,7 @@ model Function_fgh_test parameter Real cp = 4180; parameter Real Pin = 100000; - parameter Real hd(start= -0.0012223658); //From Merkel model + output Real hd(start= -0.0012223658); //From Merkel model Real Lef; Real w1; @@ -69,6 +70,8 @@ model Function_fgh_test Real w3; Real w4; + Real rh4; + Real i1; Real i2; Real i3; @@ -80,26 +83,20 @@ model Function_fgh_test Real M4; Real Me; - parameter Real Qw1 = 30; + Real Qw1; Real Qw2; Real Qw3; - Real Qw4; + parameter Real Qw4 = 30; parameter Real Qa1 = 20; Real Qa2; Real Qa3; Real Qa4; - Real imasw; - Real wsw; - Real iv; - Real P1; - Real P2; - Real P3; - Real Tot; Real delta2; + equation // Water temperature @@ -113,16 +110,17 @@ equation Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, Ta1)+0.622)/(w1+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, Ta1)+0.622)/(w1+0.622)); //NEW // Air enthalpy - i1 = MoistAir.h_pTX(Pin, Ta1, {w1}); //inlet + i1 = MoistAir.h_pTX(Pin, Ta1, {w1}); //inlet i2 = i1 + deltaTw * g(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); i3 = i2 + deltaTw * g(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); - i4 = i3 + deltaTw * g(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet + i4 = i3 + deltaTw * g(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet // Humidity - w1 = MoistAir.massFraction_pTphi(Pin, Ta1, rh); // inlet + w1 = MoistAir.massFraction_pTphi(Pin, Ta1, rh); //inlet w2 = w1 + deltaTw * f(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); w3 = w2 + deltaTw * f(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); - w4 = w3 + deltaTw * f(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet + w4 = w3 + deltaTw * f(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet + w4 = MoistAir.massFraction_pTphi(Pin, Tw[4], rh4); delta2= (((MoistAir.h_pTX(Pin, Tw[2], {w2})) - i2 + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw[2], {w2}) - i2 - (MoistAir.xsaturation_pT(Pin, Tw[2]) - w2) * MoistAir.h_pTX(Pin, Tw[2], {1}))) - (MoistAir.xsaturation_pT(Pin, Tw[2]) - w2) * cp * Tw[2])); @@ -131,7 +129,7 @@ equation M2 = deltaTw * h(Tw[2], w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw M3 = deltaTw * h(Tw[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen M4 = deltaTw * h(Tw[4], w4, i4, cp, Pin, Lef); - Me = (M1 + M2 + M3 + M3) / (4 * deltaTw); + Me = (M1 + M2 + M3 + M4) / (4 * deltaTw); Me = hd * 3000 / Qw1; @@ -139,7 +137,7 @@ equation //Qw - has a given start value, taken from Merkel model Qw2 = Qw1 - Qa1 * (w2 - w1); Qw3 = Qw2 - Qa2 * (w3 - w2); - Qw4 = Qw3 - Qa3 * (w4 - w3);//Depending on Tw, Qw and Qa can both increase ? + Qw4 = Qw3 - Qa3 * (w4 - w3); // Air flow //Qa - has a given start value, taken from Merkel model @@ -149,15 +147,6 @@ equation - imasw = MoistAir.h_pTX(Pin, Tw_in, {w1}); - wsw = MoistAir.xsaturation_pT(Pin, Tw_in); - iv = MoistAir.h_pTX(Pin, Tw_in, {1}); - P1 = MoistAir.h_pTX(Pin, Tw_in, {w1}) - i1; - P2 = (Lef - 1) * (MoistAir.h_pTX(Pin, Tw_in, {w1}) - i1 - (MoistAir.xsaturation_pT(Pin, Tw_in) - w1) * MoistAir.h_pTX(Pin, Tw_in, {1})); - P3 = -(MoistAir.xsaturation_pT(Pin, Tw_in) - w1) * cp * Tw_in; - Tot = cp / (P1 + P2 + P3); - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ Ellipse( extent={{-20,110},{20,70}}, diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index 361daedd..dc5ac7a2 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -4,20 +4,21 @@ model CoolingTowerPoppe_test // Boundary Conditions // Hot Water Inlet - input Real waterInletTemp(start=28) "deg_C"; - input Units.VolumeFlowRate waterInletFlow(start=39) "m3/s"; + input Real waterInletTemp(start=30) "deg_C"; + input Units.VolumeFlowRate waterInletFlow(start=30) "m3/s"; input Real waterInletPress(start=1) "bar"; // Cold Air Inlet - input Real AirInletTemp(start=5) "deg_C"; + input Real AirInletTemp(start=15) "deg_C"; input Real airInletPress(start=1) "bar"; - input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; + input Units.Fraction cold_source_relative_humidity(start=0.2) "1"; + // Input for calibration - input Real WaterOutletTemp(start=18) "deg_C"; + input Real WaterOutletTemp(start=20) "deg_C"; // Calibrated Parameters - output Real hd(start=0.00943308); + output Real hd(start=0.00226379); // Parameters parameter Units.Area Afr = 3000; @@ -25,14 +26,14 @@ model CoolingTowerPoppe_test parameter Real Cf = 1; // Observables - output Real airInletFlow(start=52552.133) "m3/s"; + output Real airInletFlow(start=20) "m3/s"; //Unsure of start value output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=20) "deg_C"; + output Real AirOutletTemp(start=33.89) "deg_C"; // Output - output Units.Fraction cold_sink_relative_humidity(start=1) "1"; - output Real V_inlet(start = 13.251477) "m/s"; + output Units.Fraction cold_sink_relative_humidity(start=0.83941764) "1"; + output Real V_inlet(start = 13.251477) "m/s"; //No known start value MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); From 64e7e62036c6a4031e7e89c012cb96220550ac94 Mon Sep 17 00:00:00 2001 From: postorino Date: Thu, 16 May 2024 14:27:31 +0200 Subject: [PATCH 23/34] Poppe model update --- .../MetroscopiaCCGT_calibration_diagram.mo | 2 +- .../MetroscopiaCCGT_reverse.mo | 2 +- .../MetroscopiaNPP/MetroscopiaNPP_reverse.mo | 2 +- MetroscopeModelingLibrary/Examples/package.mo | 2 +- .../FlueGases/package.mo | 7 +- MetroscopeModelingLibrary/Fuel/package.mo | 7 +- MetroscopeModelingLibrary/MoistAir/package.mo | 7 +- .../HeatExchangers/CoolingTowerPoppe.mo | 261 ------------------ .../HeatExchangers/CoolingTowerPoppeTrial.mo | 60 ++-- .../HeatExchangers/Function_fgh_test.mo | 2 + .../MultiFluid/HeatExchangers/package.order | 1 - MetroscopeModelingLibrary/Partial/package.mo | 7 +- MetroscopeModelingLibrary/Power/package.mo | 7 +- MetroscopeModelingLibrary/Sensors/package.mo | 7 +- .../CoolingTowerPoppe_direct.mo | 156 ----------- .../CoolingTowerPoppe_reverse.mo | 154 ----------- .../HeatExchangers/CoolingTowerPoppe_test.mo | 17 +- .../Multifluid/HeatExchangers/package.order | 2 - .../WaterSteam/package.mo | 8 +- 19 files changed, 60 insertions(+), 651 deletions(-) delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo delete mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo delete mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo diff --git a/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_calibration_diagram.mo b/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_calibration_diagram.mo index c739b465..6472de39 100644 --- a/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_calibration_diagram.mo +++ b/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_calibration_diagram.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary.Examples.CCGT.MetroscopiaCCGT; +within MetroscopeModelingLibrary.Examples.CCGT.MetroscopiaCCGT; model MetroscopiaCCGT_calibration_diagram extends MetroscopiaCCGT_reverse; annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-680,-120}, diff --git a/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_reverse.mo b/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_reverse.mo index 444a6e5c..5010b71d 100644 --- a/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_reverse.mo +++ b/MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_reverse.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary.Examples.CCGT.MetroscopiaCCGT; +within MetroscopeModelingLibrary.Examples.CCGT.MetroscopiaCCGT; model MetroscopiaCCGT_reverse import MetroscopeModelingLibrary.Utilities.Units; diff --git a/MetroscopeModelingLibrary/Examples/Nuclear/MetroscopiaNPP/MetroscopiaNPP_reverse.mo b/MetroscopeModelingLibrary/Examples/Nuclear/MetroscopiaNPP/MetroscopiaNPP_reverse.mo index c78f9ef8..b8ce8485 100644 --- a/MetroscopeModelingLibrary/Examples/Nuclear/MetroscopiaNPP/MetroscopiaNPP_reverse.mo +++ b/MetroscopeModelingLibrary/Examples/Nuclear/MetroscopiaNPP/MetroscopiaNPP_reverse.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary.Examples.Nuclear.MetroscopiaNPP; +within MetroscopeModelingLibrary.Examples.Nuclear.MetroscopiaNPP; model MetroscopiaNPP_reverse diff --git a/MetroscopeModelingLibrary/Examples/package.mo b/MetroscopeModelingLibrary/Examples/package.mo index f673a6ad..27bef047 100644 --- a/MetroscopeModelingLibrary/Examples/package.mo +++ b/MetroscopeModelingLibrary/Examples/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Examples extends Modelica.Icons.ExamplesPackage; diff --git a/MetroscopeModelingLibrary/FlueGases/package.mo b/MetroscopeModelingLibrary/FlueGases/package.mo index aa4e820d..45e4e2d1 100644 --- a/MetroscopeModelingLibrary/FlueGases/package.mo +++ b/MetroscopeModelingLibrary/FlueGases/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package FlueGases annotation (Icon(graphics={ @@ -59,9 +59,8 @@ package FlueGases fillColor={95,95,95}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - extent={{-60,-60},{60,60}})})); - -annotation(Documentation(info=" + extent={{-60,-60},{60,60}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/Fuel/package.mo b/MetroscopeModelingLibrary/Fuel/package.mo index bff5fc46..b50a4bf3 100644 --- a/MetroscopeModelingLibrary/Fuel/package.mo +++ b/MetroscopeModelingLibrary/Fuel/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Fuel @@ -34,9 +34,8 @@ package Fuel fillColor={213,213,0}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - extent={{-60,-60},{60,60}})})); - -annotation(Documentation(info=" + extent={{-60,-60},{60,60}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/MoistAir/package.mo b/MetroscopeModelingLibrary/MoistAir/package.mo index ba777afa..15130c76 100644 --- a/MetroscopeModelingLibrary/MoistAir/package.mo +++ b/MetroscopeModelingLibrary/MoistAir/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package MoistAir @@ -18,9 +18,8 @@ package MoistAir fillColor={85,170,255}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - extent={{-60,-60},{60,60}})})); - -annotation(Documentation(info=" + extent={{-60,-60},{60,60}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo deleted file mode 100644 index 8b6bcb73..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo +++ /dev/null @@ -1,261 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model CoolingTowerPoppe - MetroscopeModelingLibrary.MoistAir.Connectors.Inlet C_cold_in annotation (Placement(transformation(extent={{-10,80},{10,100}}))); - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - function f - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real P_in; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(P_in, Tw) - w)) / (((MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)})) - i + (Lef-1) * ((MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i - (MoistAir.xsaturation_pT(P_in, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1))) - (MoistAir.xsaturation_pT(P_in, Tw) - w) * cp * Tw)); - end f; - - //Check specific enthalpy of steam mass fraction value, 1 or 0 ? - - function g - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real P_in; - input Real Lef; - output Real y; - algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(P_in, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i + ((Lef-1) * (MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i - (MoistAir.xsaturation_pT(P_in, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1))) - (MoistAir.xsaturation_pT(P_in, Tw) - w) * cp * Tw)))); - end g; - - - - function h - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real P_in; - input Real Lef; - output Real y; - algorithm - y:= cp / (MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i + (Lef-1) * (MoistAir.h_pTX(P_in, Tw, {MoistAir.massFraction_pTphi(P_in, Tw, 1)}) - i - (MoistAir.xsaturation_pT(P_in, Tw) - w) * WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1)) - (MoistAir.xsaturation_pT(P_in, Tw) - w) * cp * Tw); - end h; - - - Inputs.InputArea Afr; - Inputs.InputReal Lfi; - Inputs.InputReal afi; - Inputs.InputReal hd; - Inputs.InputReal D; - Units.Velocity V_inlet; - Inputs.InputFrictionCoefficient Cf; - - Units.MassFlowRate Q_cold_in; - Units.MassFlowRate Q_cold_out; - Units.MassFlowRate Q_hot_in; - Units.MassFlowRate Qw[N_step]; - Units.MassFlowRate Qa[N_step]; - Units.MassFlowRate Q_hot_out; - Units.MassFlowRate Q_makeup; - - Units.Temperature T_cold_in(start=T_cold_in_0); - Units.Temperature T_cold_out(start=T_cold_out_0); - Units.Temperature T_hot_in(start=T_hot_in_0); - Units.Temperature T_hot_out(start=T_hot_out_0); - - Units.SpecificEnthalpy i_initial; - Units.SpecificEnthalpy i_final; - - Units.Power W; - Real w_in; - Real w_out; - - Units.Density rho_air_inlet(start=rho_air_inlet_0); - Units.Density rho_air_outlet(start=rho_air_outlet_0); - - Units.HeatCapacity cp; - Units.Pressure P_in; - Units.Pressure P_out; - - constant Real gr(unit="m/s2") = Modelica.Constants.g_n; - - // Poppe Inputs - Units.Temperature deltaT; - Real Lef; - parameter Integer N_step = 3; - Real w[N_step]; - Real M[N_step]; - Real i[N_step]; - Real Tw[N_step]; - - // Initialization Parameters - - parameter Units.Temperature T_cold_in_0 = 15 + 273.15; - parameter Units.Temperature T_cold_out_0 = 25 + 273.15; - parameter Units.Temperature T_hot_in_0 = 40 + 273.15; - parameter Units.Temperature T_hot_out_0 = 20 + 273.15; - - parameter Units.Density rho_air_inlet_0 = 1.2754; - parameter Units.Density rho_air_outlet_0 = 1.2460; - - MetroscopeModelingLibrary.WaterSteam.Connectors.Inlet C_hot_in annotation (Placement(transformation(extent={{-100,-10},{-80,10}}), iconTransformation(extent={{-100,-10},{-80,10}}))); - MetroscopeModelingLibrary.WaterSteam.Connectors.Outlet C_hot_out annotation (Placement(transformation(extent={{80,-10},{100,10}}))); - MetroscopeModelingLibrary.MoistAir.Connectors.Outlet C_cold_out annotation (Placement(transformation(extent={{-10,-100},{10,-80}}))); - WaterSteam.BaseClasses.IsoPHFlowModel hot_side_cooling annotation (Placement(transformation(extent={{-70,-10},{-50,10}}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink Air_inlet annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,18}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source Air_outlet annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-18}))); - MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel inputflowmodel annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,38}))); - MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel outputflowmodel annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-60}))); - MetroscopeModelingLibrary.MoistAir.Pipes.Pipe pipe annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,62}))); - WaterSteam.BoundaryConditions.Sink Water_inlet annotation (Placement(transformation(extent={{-32,-10},{-12,10}}))); - WaterSteam.BoundaryConditions.Source Water_outlet annotation (Placement(transformation(extent={{10,-10},{30,10}}))); -equation - // Definition - Q_cold_in = Air_inlet.Q_in; - Q_cold_out = Air_outlet.Q_out; - Q_hot_in = Water_inlet.Q_in; - Q_hot_out = Water_outlet.Q_out; - - T_hot_in = Water_inlet.T_in; - T_hot_out = Water_outlet.T_out; - T_cold_in = Air_inlet.T_in; - T_cold_out = Air_outlet.T_out; - P_in = Air_inlet.P_in; - P_out = Air_outlet.P_out; - - w_in = Air_inlet.relative_humidity * MoistAir.xsaturation(Air_inlet.state_in); - w_out = Air_outlet.relative_humidity * MoistAir.xsaturation(Air_outlet.state_out); - cp = WaterSteamMedium.specificHeatCapacityCp(hot_side_cooling.state_in); - - W = Q_hot_in * cp * (T_hot_in - T_hot_out); - - P_in - P_out = 0; - Water_outlet.P_out = Water_inlet.P_in; - - i_initial = Air_inlet.h_in; - i_final = Air_outlet.h_out; - - pipe.Kfr = 0; - pipe.delta_z = 0; - - - // New Poppe Equations - - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(P_in, T_cold_in)+0.622)/(w_in+0.622))-1) / log((MoistAir.xsaturation_pT(P_in, T_cold_in)+0.622)/(w_in+0.622)); - - deltaT = (T_hot_in - T_hot_out)/N_step; - - for n in 1:N_step-1 loop - w[n+1] = w[n] + deltaT * f(Tw[n], w[n], i[n], cp, Qw[n], Qa[n], P_in, Lef); //Add absolute humidity conversion ? - i[n+1] = i[n] + deltaT * g(Tw[n], w[n], i[n], cp, Qw[n], Qa[n], P_in, Lef); - M[n+1]= M[n] + deltaT * h(Tw[n], w[n], i[n], cp, P_in, Lef); - Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); - Qa[n+1] = Qa[n] * (1 + w[n+1]); - M[n+1] = hd * Afr / Qw[n+1]; - - Tw[n+1] = Tw[n] - deltaT / N_step; - end for; - - w[1] = w_in; - w[N_step] = w_out; - i[1] = i_initial; - i[N_step] = i_final; - Tw[1] = T_hot_in "degC"; - Tw[N_step] = T_hot_out "degC"; - M[1] = hd * Afr / Q_hot_in; //swapping hd to for a number - //M[N_step] = hd * Afr / Q_hot_in; //added this - Qw[1] = Q_hot_in; - Qw[N_step] = Q_hot_out; - Qa[1] = Q_cold_in; - Qa[N_step] = Q_cold_out; - - // Drift Equation - rho_air_inlet = inputflowmodel.rho_in; - rho_air_outlet = outputflowmodel.rho_out; - - 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; - Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - - - - - //WaterSteamMedium.specificEnthalpy_pT(P_in, 100+273.15, 1) - //MoistAirMedium.relativeHumidity_pTX(P_in, T[n], {MoistAir.massFraction_pTphi(P_in, T[n], 1)}) - //MoistAir.saturationPressure - //MoistAir.xsaturation_pT - //MoistAir.Xsaturation - //w[1] = MoistAir.xsaturation(Air_inlet.state_in); - - //Absolute Humidity = Relative Humidity * Saturation Absolute Humidity at temperature - //Absolute Humidity = Relative Humidity * Maximum Possible Humidity - - - connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); - connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); - connect(Air_outlet.C_out, outputflowmodel.C_in) annotation (Line(points={{0,-23},{0,-50}}, color={85,170,255})); - connect(outputflowmodel.C_out, C_cold_out) annotation (Line(points={{0,-70},{0,-90}}, color={85,170,255})); - connect(pipe.C_in, C_cold_in) annotation (Line(points={{1.77636e-15,72},{0,81},{0,90}}, color={85,170,255})); - connect(pipe.C_out, inputflowmodel.C_in) annotation (Line(points={{0,52},{0,48}}, color={85,170,255})); - connect(hot_side_cooling.C_out, Water_inlet.C_in) annotation (Line(points={{-50,0},{-27,0}}, color={28,108,200})); - connect(Water_outlet.C_out, C_hot_out) annotation (Line(points={{25,0},{90,0}}, color={28,108,200})); - connect(C_cold_in, C_cold_in) annotation (Line(points={{0,90},{0,90}}, color={85,170,255})); - connect(C_hot_out, C_hot_out) annotation (Line(points={{90,0},{90,0}}, color={28,108,200})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end CoolingTowerPoppe; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index 4b957649..51e7c57b 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -78,7 +78,7 @@ model CoolingTowerPoppeTrial // Poppe Inputs Units.Temperature deltaTw; - parameter Integer N_step = 5; + parameter Integer N_step = 10; Real w[N_step]; Real M[N_step]; Real Me; @@ -91,10 +91,6 @@ model CoolingTowerPoppeTrial Units.MassFlowRate Qw[N_step]; Units.MassFlowRate Qa[N_step]; - //Real M1; - //Real M2; - //Real M3; - //Real M4; WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); @@ -128,19 +124,19 @@ equation // connectors air_inlet_flow.P_out = Pin[1]; air_inlet_flow.Q = Q_cold_in; - air_inlet_connector.h_outflow = i_initial; + air_inlet_flow.h = i_initial; air_inlet.T_in = T_cold_in; w_in = air_inlet.Xi_in[1]; - air_outlet_flow.P_in = Pin[1]; + air_outlet_flow.P_in = Pin[N_step]; air_outlet_flow.Q = Q_cold_out; - air_outlet_connector.h_outflow = i_final; + air_outlet_flow.h = i_final; air_outlet.T_out = T_cold_out; w_out = air_outlet.Xi_out[1]; - water_inlet_flow.P_out = Pin[1]; + water_inlet_flow.P_out = Pin[N_step]; water_inlet_flow.Q = Q_hot_in; water_inlet_flow.T_in = T_hot_in; @@ -150,7 +146,7 @@ equation // New Poppe Equations - deltaTw = (T_hot_in - T_hot_out) / (N_step - 1); + deltaTw = (Tw[N_step] - Tw[1]) / (N_step - 1); for n in 1:N_step loop //Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); //OLD LOOP @@ -159,43 +155,33 @@ equation for n in 1:N_step-1 loop - w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - //M[n+1]= M[n] + deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); - M[n]= deltaTw * h(Tw[n], w[n], i[n], cp[n], Pin[n], Lef[n]); - Qw[n+1] = Qw[n] - Qa[n] * (w[n+1] - w[n]); - Qa[n+1] = Qa[n] * (1 + w[n+1]); - //Qa[n+1] = Qa[n] + Qa[n] * (w[n+1] - w[n]); //Possibly better Qa equation in future ? + w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + M[n+1]= M[n] + deltaTw * h(Tw[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); - //Ta[n+1] = MoistAir.T_phX(Pin[n+1], i[n+1], {w[n+1]}); //Evolution of Ta to allow for Lef factor to change in N_step's + Qw[n+1] = Qw[n] + Qa[n] * (w[n+1] - w[n]); + + Qa[n+1] = Qa[n] * (1 + (w[n+1] - w[n])); Lef[n+1] = Lef[n]; - //Lef[n+1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[n+1], Ta[n+1])+0.622)/(w[n+1]+0.622)); //NEW cp[n+1] = cp[n]; - //cp[n+1] = WaterSteamMedium.cp_pT(Pin[n+1], Tw[n+1], {1}); //Need exact WaterSteamMedium subgroup name Pin[n+1] = Pin[n]; - end for; - - // Merkel number - //M1 = deltaTw * h(Tw[1], w1, i1, cp, Pin, Lef); - //M2 = deltaTw * h(Tw[2], w2, i2, cp, Pin, Lef); - //M3 = deltaTw * h(Tw[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen - //M4 = deltaTw * h(Tw[4], w4, i4, cp, Pin, Lef); - Me = (M[1] + M[N_step]) / ((N_step - 1) * deltaTw); - //Me = hd * 3000 / Qw[1]; + end for; + Me = hd * Afr / Qw[1]; + M[N_step] = Me; + M[1] = 0; w[1] = w_in; w[N_step] = w_out; + i[1] = i_initial; i[N_step] = i_final; - //M[1] = hd * Afr / Qw[1]; //was Qw[1] but Merkel number evolution follows direction of water flow - M[N_step] = hd * Afr / Qw[N_step]; //was Qw[N_step] but Merkel number follows flow of water so must be like this - M[N_step] = deltaTw * h(Tw[N_step], w[N_step], i[N_step], cp[N_step], Pin[N_step], Lef[N_step]); + Qw[1] = Q_hot_out; //was Q_hot_in but water and air flow in opposite directions so like this Qw[N_step] = Q_hot_in; //was Q_hot_out but water and air flow in opposite directions so like this Qa[1] = Q_cold_in; @@ -204,12 +190,12 @@ equation Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); //NEW cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); - // Drift Equation - rho_air_inlet = air_inlet_flow.rho_in; - rho_air_outlet = air_outlet_flow.rho_out; + // Drift Equation + rho_air_inlet = air_inlet_flow.rho_in; + rho_air_outlet = air_outlet_flow.rho_out; - 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; - Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - air_inlet.Xi_in[1])); + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; + Q_cold_in = (V_inlet * Afr * rho_air_inlet)* (1 - air_inlet.Xi_in[1]); connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-76,0}}, color={28,108,200})); connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{84,0},{110,0}}, color={28,108,200})); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo index f0168bea..a2aea27a 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo @@ -76,6 +76,7 @@ model Function_fgh_test Real i2; Real i3; Real i4; + Real Ta4; Real M1; Real M2; @@ -114,6 +115,7 @@ equation i2 = i1 + deltaTw * g(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); i3 = i2 + deltaTw * g(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); i4 = i3 + deltaTw * g(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet + Ta4 = MoistAir.T_phX(Pin, i4, {w4}); // Humidity w1 = MoistAir.massFraction_pTphi(Pin, Ta1, rh); //inlet diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 6ad84dc6..ba920043 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -7,7 +7,6 @@ HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser CoolingTowerMerkel -CoolingTowerPoppe CoolingTowerPoppeTrial Functionftest Function_fgh_test diff --git a/MetroscopeModelingLibrary/Partial/package.mo b/MetroscopeModelingLibrary/Partial/package.mo index f2e78b9c..115f103e 100644 --- a/MetroscopeModelingLibrary/Partial/package.mo +++ b/MetroscopeModelingLibrary/Partial/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Partial "contains all partial models" extends Modelica.Icons.InternalPackage; @@ -6,9 +6,8 @@ annotation (Icon(graphics={ Rectangle( lineColor={128,128,128}, extent={{-100,-100},{100,100}}, - radius=25.0)})); - -annotation(Documentation(info=" + radius=25.0)}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/Power/package.mo b/MetroscopeModelingLibrary/Power/package.mo index cb12255c..697bd013 100644 --- a/MetroscopeModelingLibrary/Power/package.mo +++ b/MetroscopeModelingLibrary/Power/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Power annotation (Icon(graphics={ @@ -17,9 +17,8 @@ package Power fillColor={244,125,35}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - extent={{-60,-60},{60,60}})})); - -annotation(Documentation(info=" + extent={{-60,-60},{60,60}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/Sensors/package.mo b/MetroscopeModelingLibrary/Sensors/package.mo index 36896cfd..d3adf13e 100644 --- a/MetroscopeModelingLibrary/Sensors/package.mo +++ b/MetroscopeModelingLibrary/Sensors/package.mo @@ -1,4 +1,4 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package Sensors annotation (Icon(graphics={ @@ -35,9 +35,8 @@ annotation (Icon(graphics={ fillColor={64,64,64}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - extent={{-7,-7},{7,7}})})); - -annotation(Documentation(info=" + extent={{-7,-7},{7,7}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo deleted file mode 100644 index 3a4ee829..00000000 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo +++ /dev/null @@ -1,156 +0,0 @@ -within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; -model CoolingTowerPoppe_direct - import MetroscopeModelingLibrary.Utilities.Units; - - // Boundary Conditions - // Hot Water Inlet - input Real waterInletTemp(start=28) "deg_C"; - input Units.VolumeFlowRate waterFlow(start=40) "m3/s"; - input Real waterInletPress(start=1) "bar"; - - // Cold Air Inlet - input Real AirInletTemp(start=6) "deg_C"; - input Real airInletPress(start=1) "bar"; - input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; - - // Observables for calibration - output Real WaterOutletTemp(start=24.999994) "deg_C"; - - // Calibrated Parameters - parameter Real hd = 0.012856079; - parameter Real Kfr = 0; - - // Parameters - parameter Real Lfi = 15 "m"; - parameter Real Afr = 3000 "m2"; - parameter Real Cf = 15; - output Real V_inlet(start = 4.3490353) "m/s"; - - // Observables - output Real airInletFlow(start=12894.166) "kg/s"; - //output Real Q_evap(start=379.48428) "kg/s"; - output Real Q_cold_in(start=15214.605); - //output Real Ratio; - //output Real W; - - output Real AirOutletTemp(start=35) "deg_C"; - output Real airOutletPress(start=1); - - // Output - output Units.Fraction cold_sink_relative_humidity(start=1) "1"; - - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); - - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppeTrial - CoolingTower annotation (Placement(transformation(extent={{-10,-26},{10,-6}}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,90}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-92}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); - MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,66}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{30,-10},{50,10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-102,-10},{-82,10}}))); - MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-70}))); - MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,36}))); - MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,8}))); - MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor - annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-44}))); -equation - // Hot Water Inlet - waterFlow_sensor.Qv = waterFlow; - waterInletTemp_sensor.T_degC = waterInletTemp; - waterInletPress_sensor.P_barA = waterInletPress; - - // Cold Air Inlet - airInletPress_sensor.P_barA = airInletPress; - cold_source.relative_humidity = cold_source_relative_humidity; - airInletFlow_sensor.Qv = airInletFlow; - AirInletTemp_sensor.T_degC = AirInletTemp; - - // Hot Water Outlet - - // Cold Air Outlet - cold_sink.relative_humidity = cold_sink_relative_humidity; - airOutletPress_sensor.P_barA = airOutletPress; - - // Calibrated Parameters - CoolingTower.hd = hd; - CoolingTower.Cf = Cf; - - //CoolingTower.Q_evap = Q_evap; - CoolingTower.Q_cold_in = Q_cold_in; - //CoolingTower.Ratio = Ratio; - //CoolingTower.W = W; - - // Parameters - CoolingTower.Lfi = Lfi; - CoolingTower.Afr = Afr; - CoolingTower.V_inlet = V_inlet; - - // Observable for Calibration - WaterOutletTemp_sensor.T_degC = WaterOutletTemp; - AirOutletTemp_sensor.T_degC = AirOutletTemp; - - connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); - connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); - connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, - color={28,108,200})); - connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); - connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); - connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); - connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.air_inlet_connector) annotation (Line(points={{0,-2},{0,-6.83333}}, color={85,170,255})); - connect(waterInletPress_sensor.C_out, CoolingTower.water_inlet_connector) annotation (Line(points={{-32,0},{-16,0},{-16,-16},{-9.16667,-16}}, color={28,108,200})); - connect(airOutletPress_sensor.C_in, CoolingTower.air_outlet_connector) annotation (Line(points={{0,-34},{0,-25.1667}}, color={85,170,255})); - connect(WaterOutletTemp_sensor.C_in, CoolingTower.water_outlet_connector) annotation (Line(points={{30,0},{16,0},{16,-16},{9.16667,-16}}, color={28,108,200})); - annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ - Ellipse(lineColor={0,0,0}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid, - extent={{-110,-100},{90,100}}), - Polygon( - origin={12,14}, - lineColor={78,138,73}, - fillColor={95,95,95}, - pattern=LinePattern.None, - fillPattern=FillPattern.Solid, - points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), - Polygon( - origin={12,14}, - lineColor={78,138,73}, - fillColor={213,213,0}, - pattern=LinePattern.None, - fillPattern=FillPattern.Solid, - points={{-58,46},{-4,14},{-58,-14},{-58,46}}), - Polygon( - origin={12,14}, - lineColor={78,138,73}, - fillColor={28,108,200}, - pattern=LinePattern.None, - fillPattern=FillPattern.Solid, - points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); -end CoolingTowerPoppe_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo deleted file mode 100644 index 3a919f58..00000000 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo +++ /dev/null @@ -1,154 +0,0 @@ -within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; -model CoolingTowerPoppe_reverse - import MetroscopeModelingLibrary.Utilities.Units; - - // Boundary Conditions - // Hot Water Inlet - input Real waterInletTemp(start=28) "deg_C"; - input Units.VolumeFlowRate waterInletFlow(start=39) "m3/s"; - input Real waterInletPress(start=1) "bar"; - - // Cold Air Inlet - input Real AirInletTemp(start=6) "deg_C"; - input Real airInletPress(start=1) "bar"; - input Units.Fraction cold_source_relative_humidity(start=0.8) "1"; - - // Input for calibration - input Real WaterOutletTemp(start=20) "deg_C"; - - // Calibrated Parameters - output Real hd; - - // Parameters - parameter Real Lfi = 15 "m"; - parameter Real afi = 200 "m-1"; - parameter Real Afr = 3000 "m2"; - parameter Real D = 20 "m"; - parameter Real Cf = 1; - output Real V_inlet(start = 13.251477) "m/s"; - - // Observables - output Real airInletFlow(start=52552.133) "m3/s"; - - output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=35) "deg_C"; - - // Output - output Units.Fraction cold_sink_relative_humidity(start=1) "1"; - - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); - - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppe CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,90}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-92}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); - MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,66}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-68,-30},{-48,-10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{34,-30},{54,-10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-98,-30},{-78,-10}}))); - MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-70}))); - MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,36}))); - MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,10}))); - MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor - annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-44}))); -equation - // Hot Water Inlet - waterFlow_sensor.Qv = waterInletFlow; - waterInletTemp_sensor.T_degC = waterInletTemp; - waterInletPress_sensor.P_barA = waterInletPress; - - // Cold Air Inlet - airInletPress_sensor.P_barA = airInletPress; - cold_source.relative_humidity = cold_source_relative_humidity; - airInletFlow_sensor.Qv = airInletFlow; - AirInletTemp_sensor.T_degC = AirInletTemp; - - // Hot Water Outlet - - // Cold Air Outlet - cold_sink.relative_humidity = cold_sink_relative_humidity; - airOutletPress_sensor.P_barA = airOutletPress; - - // Calibrated Parameters - CoolingTower.hd = hd; - CoolingTower.Cf = Cf; - - // Parameters - CoolingTower.Lfi = Lfi; - CoolingTower.afi = afi; - CoolingTower.Afr = Afr; - CoolingTower.D = D; - CoolingTower.V_inlet = V_inlet; - - // Observable for Calibration - WaterOutletTemp_sensor.T_degC = WaterOutletTemp; - AirOutletTemp_sensor.T_degC = AirOutletTemp; - - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20}}, - color={28,108,200})); - connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); - connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, - color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{34,-20}}, - color={28,108,200})); - connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, - color={28,108,200})); - connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-105,-20},{-98,-20}}, - color={28,108,200})); - connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-68,-20},{-78,-20}}, - color={28,108,200})); - connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); - connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); - connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,20}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,0},{0,-12.5}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-34}}, color={85,170,255})); - connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); - annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ - Ellipse(lineColor={0,0,0}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid, - extent={{-110,-100},{90,100}}), - Polygon( - origin={12,14}, - lineColor={78,138,73}, - fillColor={95,95,95}, - pattern=LinePattern.None, - fillPattern=FillPattern.Solid, - points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), - Polygon( - origin={12,14}, - lineColor={78,138,73}, - fillColor={213,213,0}, - pattern=LinePattern.None, - fillPattern=FillPattern.Solid, - points={{-58,46},{-4,14},{-58,-14},{-58,46}}), - Polygon( - origin={12,14}, - lineColor={78,138,73}, - fillColor={28,108,200}, - pattern=LinePattern.None, - fillPattern=FillPattern.Solid, - points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); -end CoolingTowerPoppe_reverse; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index dc5ac7a2..d49dac92 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -18,28 +18,28 @@ model CoolingTowerPoppe_test input Real WaterOutletTemp(start=20) "deg_C"; // Calibrated Parameters - output Real hd(start=0.00226379); + output Real hd(start=8.849857); // Parameters parameter Units.Area Afr = 3000; parameter Real Lfi = 15; - parameter Real Cf = 1; + parameter Real Cf = 0.02931342; // Observables - output Real airInletFlow(start=20) "m3/s"; //Unsure of start value + output Real airInletFlow(start=38533.254) "m3/s"; output Real airOutletPress(start=1) "bar"; - output Real AirOutletTemp(start=33.89) "deg_C"; + output Real AirOutletTemp(start=25) "deg_C"; // Output - output Units.Fraction cold_sink_relative_humidity(start=0.83941764) "1"; - output Real V_inlet(start = 13.251477) "m/s"; //No known start value + output Units.Fraction cold_sink_relative_humidity(start=0.40412638) "1"; + output Real V_inlet(start = 12.871763) "m/s"; //No known start value MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppeTrial CoolingTower + MultiFluid.HeatExchangers.CoolingTowerPoppeTrial CoolingTower(air_outlet_flow(h_out_0=20400.438),air_inlet_flow(h_out_0=108262.83),w_out(start=0.0018949909)) annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, @@ -149,5 +149,6 @@ equation fillColor={28,108,200}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})})); + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})}), + experiment(Tolerance=0.001, __Dymola_Algorithm="Lsodar")); end CoolingTowerPoppe_test; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 4e1b645d..69c6cf68 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -20,6 +20,4 @@ AirCooledCondenser_direct AirCooledCondenser_faulty CoolingTowerMerkel_direct CoolingTowerMerkel_reverse -CoolingTowerPoppe_direct -CoolingTowerPoppe_reverse CoolingTowerPoppe_test diff --git a/MetroscopeModelingLibrary/WaterSteam/package.mo b/MetroscopeModelingLibrary/WaterSteam/package.mo index 3f43c169..e33e9c27 100644 --- a/MetroscopeModelingLibrary/WaterSteam/package.mo +++ b/MetroscopeModelingLibrary/WaterSteam/package.mo @@ -1,5 +1,6 @@ -within MetroscopeModelingLibrary; +within MetroscopeModelingLibrary; package WaterSteam + annotation (Icon(graphics={ Rectangle( lineColor={200,200,200}, @@ -16,9 +17,8 @@ package WaterSteam fillColor={28,108,200}, pattern=LinePattern.None, fillPattern=FillPattern.Solid, - extent={{-60,-60},{60,60}})})); - -annotation(Documentation(info=" + extent={{-60,-60},{60,60}})}), + Documentation(info="

Licensed by Metroscope under the Modelica License 2

Copyright © 2023, Metroscope.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

From 87697c5ed1325073947f68c954605729e2c203eb Mon Sep 17 00:00:00 2001 From: postorino Date: Thu, 16 May 2024 14:54:34 +0200 Subject: [PATCH 24/34] Poppe model update --- .../MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo | 6 +++--- .../Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo index 51e7c57b..b45af899 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo @@ -18,7 +18,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); end f; function g @@ -32,7 +32,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); end g; function h @@ -44,7 +44,7 @@ model CoolingTowerPoppeTrial input Real Lef; output Real y; algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + y:= cp / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; Units.Velocity V_inlet; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo index d49dac92..6d38b9d4 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo @@ -23,10 +23,10 @@ model CoolingTowerPoppe_test // Parameters parameter Units.Area Afr = 3000; parameter Real Lfi = 15; - parameter Real Cf = 0.02931342; + parameter Real Cf = 0.025509778; // Observables - output Real airInletFlow(start=38533.254) "m3/s"; + output Real airInletFlow(start=50000) "m3/s"; output Real airOutletPress(start=1) "bar"; output Real AirOutletTemp(start=25) "deg_C"; @@ -150,5 +150,5 @@ equation pattern=LinePattern.None, fillPattern=FillPattern.Solid, points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})}), - experiment(Tolerance=0.001, __Dymola_Algorithm="Lsodar")); + experiment(__Dymola_Algorithm="Dassl")); end CoolingTowerPoppe_test; From 5d870a1b3a74d844450adc8f185eecfb93dca821 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Tue, 21 May 2024 16:33:49 +0200 Subject: [PATCH 25/34] Poppe Model with SS --- ...owerPoppeTrial.mo => CoolingTowerPoppe.mo} | 21 +- .../HeatExchangers/CoolingTowerPoppewithSS.mo | 301 +++++++ .../HeatExchangers/Functionftest.mo | 124 --- .../HeatExchangers/Functionhtest.mo | 90 -- .../HeatExchangers/SupersaturatedEquations.mo | 194 +++++ ...on_fgh_test.mo => UnsaturatedEquations.mo} | 25 +- .../MultiFluid/HeatExchangers/package.order | 8 +- .../CoolingTowerPoppe_direct.mo | 154 ++++ ...oolingTowerPoppe_direct_withStartValues.mo | 769 ++++++++++++++++++ ...e_test.mo => CoolingTowerPoppe_reverse.mo} | 14 +- .../Multifluid/HeatExchangers/package.order | 4 +- 11 files changed, 1447 insertions(+), 257 deletions(-) rename MetroscopeModelingLibrary/MultiFluid/HeatExchangers/{CoolingTowerPoppeTrial.mo => CoolingTowerPoppe.mo} (92%) create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo create mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo rename MetroscopeModelingLibrary/MultiFluid/HeatExchangers/{Function_fgh_test.mo => UnsaturatedEquations.mo} (98%) create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo create mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct_withStartValues.mo rename MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/{CoolingTowerPoppe_test.mo => CoolingTowerPoppe_reverse.mo} (95%) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo similarity index 92% rename from MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo rename to MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo index b45af899..5d419f5c 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppeTrial.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo @@ -1,5 +1,5 @@ within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model CoolingTowerPoppeTrial +model CoolingTowerPoppe package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; import MetroscopeModelingLibrary.Utilities.Units; @@ -53,7 +53,6 @@ model CoolingTowerPoppeTrial Inputs.InputReal Lfi; Inputs.InputFrictionCoefficient Cf; - constant Real gr(unit="m/s2") = Modelica.Constants.g_n; Units.Density rho_air_inlet; @@ -91,8 +90,6 @@ model CoolingTowerPoppeTrial Units.MassFlowRate Qw[N_step]; Units.MassFlowRate Qa[N_step]; - - WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); MetroscopeModelingLibrary.MoistAir.Connectors.Inlet air_inlet_connector annotation (Placement(transformation(extent={{-10,100},{10,120}}))); @@ -120,7 +117,6 @@ model CoolingTowerPoppeTrial origin={0,-64}))); equation - // connectors air_inlet_flow.P_out = Pin[1]; air_inlet_flow.Q = Q_cold_in; @@ -128,14 +124,12 @@ equation air_inlet.T_in = T_cold_in; w_in = air_inlet.Xi_in[1]; - air_outlet_flow.P_in = Pin[N_step]; air_outlet_flow.Q = Q_cold_out; air_outlet_flow.h = i_final; air_outlet.T_out = T_cold_out; w_out = air_outlet.Xi_out[1]; - water_inlet_flow.P_out = Pin[N_step]; water_inlet_flow.Q = Q_hot_in; water_inlet_flow.T_in = T_hot_in; @@ -149,11 +143,9 @@ equation deltaTw = (Tw[N_step] - Tw[1]) / (N_step - 1); for n in 1:N_step loop - //Tw[n] = T_hot_in + (T_hot_out-T_hot_in)*(n-1)/(N_step-1); //OLD LOOP - Tw[n] = T_hot_out + (T_hot_in-T_hot_out)*(n-1)/(N_step-1); //NEW LOOP where T[N_step] = T_hot_in + Tw[n] = T_hot_out + (T_hot_in-T_hot_out)*(n-1)/(N_step-1); end for; - for n in 1:N_step-1 loop w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); @@ -171,7 +163,6 @@ equation end for; - Me = hd * Afr / Qw[1]; M[N_step] = Me; M[1] = 0; @@ -182,12 +173,12 @@ equation i[1] = i_initial; i[N_step] = i_final; - Qw[1] = Q_hot_out; //was Q_hot_in but water and air flow in opposite directions so like this - Qw[N_step] = Q_hot_in; //was Q_hot_out but water and air flow in opposite directions so like this + Qw[1] = Q_hot_out; + Qw[N_step] = Q_hot_in; Qa[1] = Q_cold_in; Qa[N_step] = Q_cold_out; - Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); //NEW + Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); // Drift Equation @@ -237,4 +228,4 @@ equation lineColor={28,108,200}, fillColor={85,255,255}, fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end CoolingTowerPoppeTrial; +end CoolingTowerPoppe; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo new file mode 100644 index 00000000..8ff11e96 --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo @@ -0,0 +1,301 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model CoolingTowerPoppewithSS + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + //Unsaturated Air + function f + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + end f; + + function g + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + end g; + + function h + input Real Tw; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); + end h; + + //Supersaturated Air + function j + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * (MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); + end j; + + function k + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa)) * (1 + (((cp * Tw) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1}) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw))); + end k; + + function m + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); + end m; + + + + Units.Velocity V_inlet; + Inputs.InputReal hd; + Inputs.InputArea Afr; + Inputs.InputReal Lfi; + Inputs.InputFrictionCoefficient Cf; + + constant Real gr(unit="m/s2") = Modelica.Constants.g_n; + + Units.Density rho_air_inlet; + Units.Density rho_air_outlet; + + Units.MassFlowRate Q_hot_in; + Units.MassFlowRate Q_hot_out; + Units.MassFlowRate Q_cold_in; + Units.MassFlowRate Q_cold_out; + + Real w_in; + Real w_out; + Real w_sat[N_step]; + + Units.SpecificEnthalpy i_initial; + Units.SpecificEnthalpy i_final; + + Units.Temperature T_cold_in; + Units.Temperature T_cold_out; + Units.Temperature T_hot_in; + Units.Temperature T_hot_out; + + // Poppe Inputs + Units.Temperature deltaTw; + + parameter Integer N_step = 10; + Real w[N_step]; + Real M[N_step]; + Real Me; + Real i[N_step]; + Real Tw[N_step]; + Real Ta[N_step]; + Units.HeatCapacity cp[N_step]; + Real Pin[N_step]; + Real Lef[N_step]; + Units.MassFlowRate Qw[N_step]; + Units.MassFlowRate Qa[N_step]; + + WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Inlet air_inlet_connector annotation (Placement(transformation(extent={{-10,100},{10,120}}))); + MetroscopeModelingLibrary.MoistAir.Connectors.Outlet air_outlet_connector annotation (Placement(transformation(extent={{-10,-120},{10,-100}}))); + WaterSteam.BaseClasses.IsoHFlowModel water_inlet_flow annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); + WaterSteam.BaseClasses.IsoPHFlowModel water_outlet_flow annotation (Placement(transformation(extent={{64,-10},{84,10}}))); + WaterSteam.BoundaryConditions.Source water_outlet annotation (Placement(transformation(extent={{22,-10},{42,10}}))); + WaterSteam.BoundaryConditions.Sink water_inlet annotation (Placement(transformation(extent={{-42,-10},{-22,10}}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_inlet_flow annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,56}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink air_inlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,28}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source + air_outlet annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-32}))); + MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_outlet_flow annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-64}))); +equation + + // connectors + air_inlet_flow.P_out = Pin[1]; + air_inlet_flow.Q = Q_cold_in; + air_inlet_flow.h = i_initial; + air_inlet.T_in = T_cold_in; + w_in = air_inlet.Xi_in[1]; + + air_outlet_flow.P_in = Pin[N_step]; + air_outlet_flow.Q = Q_cold_out; + air_outlet_flow.h = i_final; + air_outlet.T_out = T_cold_out; + w_out = air_outlet.Xi_out[1]; + + water_inlet_flow.P_out = Pin[N_step]; + water_inlet_flow.Q = Q_hot_in; + water_inlet_flow.T_in = T_hot_in; + + water_outlet_flow.P_out = Pin[1]; + water_outlet_flow.Q = Q_hot_out; + water_outlet_flow.T_in = T_hot_out; + + // New Poppe Equations + + deltaTw = (Tw[N_step] - Tw[1]) / (N_step - 1); + + for n in 1:N_step loop + Tw[n] = T_hot_out + (T_hot_in-T_hot_out)*(n-1)/(N_step-1); + Ta[n] = MoistAir.T_phX(Pin[n], i[n], {w[n]}); + w_sat[n] = MoistAir.xsaturation_pT(Pin[n], Ta[n]); + end for; + + for n in 1:N_step-1 loop + + + if w[n] < w_sat[n] then + w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + M[n+1]= M[n] + deltaTw * h(Tw[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); + + Qw[n+1] = Qw[n] + Qa[n] * (w[n+1] - w[n]); + + Qa[n+1] = Qa[n] * (1 + (w[n+1] - w[n])); + + Lef[n+1] = Lef[n]; + + cp[n+1] = cp[n]; + + Pin[n+1] = Pin[n]; + + else + w[n+1] = w[n] + deltaTw * j(Tw[n], Ta[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + i[n+1] = i[n] + deltaTw * k(Tw[n], Ta[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + M[n+1]= M[n] + deltaTw * m(Tw[n+1], Ta[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); + + Qw[n+1] = Qw[n] + Qa[n] * (w[n+1] - w[n]); + + Qa[n+1] = Qa[n] * (1 + (w[n+1] - w[n])); + + Lef[n+1] = Lef[n]; + + cp[n+1] = cp[n]; + + Pin[n+1] = Pin[n]; + + end if; + + end for; + + Me = hd * Afr / Qw[1]; + M[N_step] = Me; + M[1] = 0; + + w[1] = w_in; + w[N_step] = w_out; + + i[1] = i_initial; + i[N_step] = i_final; + + Qw[1] = Q_hot_out; + Qw[N_step] = Q_hot_in; + Qa[1] = Q_cold_in; + Qa[N_step] = Q_cold_out; + + Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); + cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); + + // Drift Equation + rho_air_inlet = air_inlet_flow.rho_in; + rho_air_outlet = air_outlet_flow.rho_out; + + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; + Q_cold_in = (V_inlet * Afr * rho_air_inlet)* (1 - air_inlet.Xi_in[1]); + + connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-76,0}}, color={28,108,200})); + connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{84,0},{110,0}}, color={28,108,200})); + connect(water_outlet_flow.C_in, water_outlet.C_out) annotation (Line(points={{64,0},{37,0}}, color={28,108,200})); + connect(water_inlet_flow.C_out, water_inlet.C_in) annotation (Line(points={{-56,0},{-37,0}}, color={28,108,200})); + connect(air_inlet_flow.C_in, air_inlet_connector) annotation (Line(points={{0,66},{0,110}}, color={85,170,255})); + connect(air_outlet_flow.C_out, air_outlet_connector) annotation (Line(points={{0,-74},{0,-110}}, color={85,170,255})); + connect(air_inlet_flow.C_out, air_inlet.C_in) annotation (Line(points={{0,46},{0,33}}, color={85,170,255})); + connect(air_outlet_flow.C_in, air_outlet.C_out) annotation (Line(points={{0,-54},{0,-37}}, color={85,170,255})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end CoolingTowerPoppewithSS; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo deleted file mode 100644 index 77bf66be..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionftest.mo +++ /dev/null @@ -1,124 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model Functionftest - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - function f - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= ((cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w))) / (((MoistAir.h_pTX(Pin, Tw, {w})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); - end f; - - - // Poppe Inputs - - parameter Real rh = 1; - parameter Real i = 17719.107; - parameter Real Tw = 45+273.15; - parameter Real cp = 4180; - parameter Real Pin = 100000; - Real Lef; - parameter Real Qw = 38853.242; - parameter Real Qa = 18717.115; - - Real w; - Real w2; - Real w3; - Real w4; - Real y; - Real y2; - Real abshumid; - Real enthalp; - Real steam; - Real deltaw; - Real Qw1; - Real Qw2; - Real Qw3; - Real Qa1; - Real Qa2; - Real Qa3; - Real Qa11; - Real Qa22; - Real Qa33; - -equation - - // connectors - - w = MoistAir.massFraction_pTphi(Pin, Tw, rh); - - // New Poppe Equations} - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW - y = f(Tw, w, i, cp, Qw, Qa, Pin, Lef); - y2 = f(Tw, w+0.5*time, i, cp, Qw, Qa, Pin, Lef); - - w2 = w + 10 * f(Tw, w, i, cp, Qw, Qa, Pin, Lef); - w3 = w2 + 10 * f(Tw, w2, i, cp, Qw2, Qa2, Pin, Lef); - w4 = w3 + 10 * f(Tw, w3, i, cp, Qw3, Qa3, Pin, Lef); - - abshumid = MoistAir.xsaturation_pT(Pin, Tw); - deltaw = MoistAir.xsaturation_pT(Pin, Tw) - w; - enthalp = MoistAir.h_pTX(Pin, Tw, {MoistAir.massFraction_pTphi(Pin, Tw, w)}) - i; - steam = WaterSteamMedium.specificEnthalpy_pT(Pin, 100.05+273.15, 0); - - Qw1 = Qw - Qa * (w2 - w); - Qw2 = Qw1 - Qa1 * (w3 - w2); - Qw3 = Qw2 - Qa2 * (w4 - w3); - - Qa1 = Qa * (1 + w); - Qa2 = Qa1 * (1 + w2); - Qa3 = Qa2 * (1 + w3); - - Qa11 = Qa + Qa * (w2 - w); - Qa22 = Qa1 + Qa1 * (w3 - w2); - Qa33 = Qa2 + Qa2 * (w4 - w3); - - - - //dw/dTw - humidity ratio/water temperature - function f - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end Functionftest; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo deleted file mode 100644 index b1d4a80b..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Functionhtest.mo +++ /dev/null @@ -1,90 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model Functionhtest - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - function h - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {w}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {w}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); - end h; - - // Poppe Inputs - - parameter Real rh = 0.8; - parameter Real i = 17719.107; - parameter Real Tw = 40+273.15; - parameter Real cp = 4180; - parameter Real Pin = 100000; - Real Lef; - parameter Real Qw = 38853.242; - parameter Real Qa = 18717.115; - Real y; - Real hum; - Real w; - Real M1; - Real M2; - Real M3; - Real M4; -equation - - // connectors - - // New Poppe Equations - - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, 5+273.15)+0.622)/(w+0.622)); //NEW - y = h(Tw, w, i, cp, Pin, Lef); - hum = MoistAir.xsaturation_pT(Pin, Tw); - w = MoistAir.massFraction_pTphi(Pin, Tw, rh); - - M1 = 0.000980808; - M2 = M1 + 10 * h(Tw, w, i, cp, Pin, Lef); - M3 = M2 + 10 * h(Tw-5, w+0.05, i+20000, cp, Pin, Lef); - M4 = M3 + 10 * h(Tw-10, w+0.09, i+40000, cp, Pin, Lef); - - - //dMe/dTw = function h - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end Functionhtest; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo new file mode 100644 index 00000000..2efe335f --- /dev/null +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo @@ -0,0 +1,194 @@ +within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; +model SupersaturatedEquations + package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; + import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + + function j + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * (MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); + end j; + + function k + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa)) * (1 + (((cp * Tw) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1}) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw))); + end k; + + function m + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); + end m; + + + + // Poppe Inputs + + parameter Real rh = 1.1; + + parameter Real Tw_in = 30+273.15; + input Real Tw_out(start = 20+273.15); + + parameter Real Ta_in = 15+273.15; + input Real Ta_out(start= 30+273.15); + + Real Tw[4]; + Real deltaTw; + + Real Ta[4]; + Real deltaTa; + + + parameter Real cp = 4180; + parameter Real Pin = 100000; + output Real hd(start= -0.0012223658); //From Merkel model + Real Lef; + + Real w1; + Real w2; + Real w3; + Real w4; + + Real rh4; + + Real i1; + Real i2; + Real i3; + Real i4; + Real Ta4; + + Real M1; + Real M2; + Real M3; + Real M4; + Real Me; + + Real Qw1; + Real Qw2; + Real Qw3; + parameter Real Qw4 = 30; + + parameter Real Qa1 = 20; + Real Qa2; + Real Qa3; + Real Qa4; + +equation + // Water temperature + Tw[1] = Tw_out; + Tw[2] = Tw[1] + deltaTw; + Tw[3] = Tw[2] + deltaTw; + Tw[4] = Tw_in; + deltaTw = (Tw[4] - Tw[1]) / (4 - 1); + + // Air Temperature + Ta[1] = Ta_in; + Ta[2] = Ta[1] + deltaTa; + Ta[3] = Ta[2] + deltaTa; + Ta[4] = Ta_out; + deltaTa = (Ta[4] - Ta[1])/ (4 - 1); + + // Lewis factor + Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, Ta_in)+0.622)/(w1+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, Ta_in)+0.622)/(w1+0.622)); //NEW + + // Air enthalpy + i1 = MoistAir.h_pTX(Pin, Ta_in, {w1}); //inlet + i2 = i1 + deltaTw * k(Tw[1], Ta[2], w1, i1, cp, Qw1, Qa1, Pin, Lef); + i3 = i2 + deltaTw * k(Tw[2], Ta[3], w2, i2, cp, Qw2, Qa2, Pin, Lef); + i4 = i3 + deltaTw * k(Tw[3], Ta[4], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet + + Ta4 = MoistAir.T_phX(Pin, i4, {w4}); + + // Humidity + w1 = MoistAir.massFraction_pTphi(Pin, Ta_in, rh); //inlet + w2 = w1 + deltaTw * j(Tw[1], Ta[2], w1, i1, cp, Qw1, Qa1, Pin, Lef); + w3 = w2 + deltaTw * j(Tw[2], Ta[3], w2, i2, cp, Qw2, Qa2, Pin, Lef); + w4 = w3 + deltaTw * j(Tw[3], Ta[4], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet + w4 = MoistAir.massFraction_pTphi(Pin, Tw[4], rh4); + + // Merkel number + M1 = deltaTw * m(Tw[1], Ta[1], w1, i1, cp, Pin, Lef); + M2 = deltaTw * m(Tw[2], Ta[2], w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw + M3 = deltaTw * m(Tw[3], Ta[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen + M4 = deltaTw * m(Tw[4], Ta[4], w4, i4, cp, Pin, Lef); + Me = (M1 + M2 + M3 + M4) / (4 * deltaTw); + Me = hd * 3000 / Qw1; + + + // Water flow + //Qw - has a given start value, taken from Merkel model + Qw2 = Qw1 - Qa1 * (w2 - w1); + Qw3 = Qw2 - Qa2 * (w3 - w2); + Qw4 = Qw3 - Qa3 * (w4 - w3); + + // Air flow + //Qa - has a given start value, taken from Merkel model + Qa2 = Qa1 * (1 + w2); + Qa3 = Qa2 * (1 + w3); + Qa4 = Qa3 * (1 + w4); + + + + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ + Ellipse( + extent={{-20,110},{20,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), + Ellipse( + extent={{-48,82},{-40,74}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{32,114},{40,106}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{28,78},{36,70}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{-36,110},{-28,104}}, + lineColor={28,108,200}, + fillColor={95,95,95}, + fillPattern=FillPattern.Backward), + Ellipse( + extent={{26,-44},{-28,22}}, + lineColor={28,108,200}, + fillColor={85,255,255}, + fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); +end SupersaturatedEquations; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo similarity index 98% rename from MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo rename to MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo index a2aea27a..b54c9d8a 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Function_fgh_test.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo @@ -1,5 +1,5 @@ within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model Function_fgh_test +model UnsaturatedEquations package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; import MetroscopeModelingLibrary.Utilities.Units; @@ -7,7 +7,7 @@ model Function_fgh_test import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - function g + function f input Real Tw; input Real w; input Real i; @@ -17,11 +17,11 @@ model Function_fgh_test input Real Pin; input Real Lef; output Real y; - algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); - end g; + algorithm + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); + end f; - function f + function g input Real Tw; input Real w; input Real i; @@ -32,8 +32,8 @@ model Function_fgh_test input Real Lef; output Real y; algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); - end f; + y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); + end g; function h input Real Tw; @@ -47,7 +47,6 @@ model Function_fgh_test y:= cp / (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; - // Poppe Inputs parameter Real rh = 0.2; @@ -59,7 +58,6 @@ model Function_fgh_test Real Tw[4]; Real deltaTw; - parameter Real cp = 4180; parameter Real Pin = 100000; output Real hd(start= -0.0012223658); //From Merkel model @@ -96,8 +94,6 @@ model Function_fgh_test Real delta2; - - equation // Water temperature @@ -134,7 +130,6 @@ equation Me = (M1 + M2 + M3 + M4) / (4 * deltaTw); Me = hd * 3000 / Qw1; - // Water flow //Qw - has a given start value, taken from Merkel model Qw2 = Qw1 - Qa1 * (w2 - w1); @@ -147,8 +142,6 @@ equation Qa3 = Qa2 * (1 + w3); Qa4 = Qa3 * (1 + w4); - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ Ellipse( extent={{-20,110},{20,70}}, @@ -181,4 +174,4 @@ equation lineColor={28,108,200}, fillColor={85,255,255}, fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end Function_fgh_test; +end UnsaturatedEquations; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index ba920043..457c0481 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -7,7 +7,7 @@ HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser CoolingTowerMerkel -CoolingTowerPoppeTrial -Functionftest -Function_fgh_test -Functionhtest +CoolingTowerPoppe +SupersaturatedEquations +UnsaturatedEquations +CoolingTowerPoppewithSS diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo new file mode 100644 index 00000000..2b600101 --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo @@ -0,0 +1,154 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTowerPoppe_direct + import MetroscopeModelingLibrary.Utilities.Units; + + // Boundary Conditions + // Hot Water Inlet + input Real waterInletTemp(start=30) "deg_C"; + input Units.VolumeFlowRate waterInletFlow(start=30) "m3/s"; + input Real waterInletPress(start=1) "bar"; + + // Cold Air Inlet + input Real AirInletTemp(start=15) "deg_C"; + input Real airInletPress(start=1) "bar"; + input Units.Fraction cold_source_relative_humidity(start=0.5) "1"; + + // Input for calibration + output Real WaterOutletTemp(start=20) "deg_C"; + + // Calibrated Parameters + parameter Real hd(start=8.849857); + + // Parameters + parameter Units.Area Afr = 3000; + parameter Real Lfi = 15; + parameter Real Cf = 0.025509778; + + // Observables + output Real airInletFlow(start=50000) "m3/s"; + + output Real airOutletPress(start=1) "bar"; + output Real AirOutletTemp(start=25) "deg_C"; + + // Output + output Units.Fraction cold_sink_relative_humidity(start=0.40412638) "1"; + output Real V_inlet(start = 12.871763) "m/s"; //No known start value + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); + + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerPoppewithSS + CoolingTower( + air_outlet_flow(h_out_0=20400.438), + air_inlet_flow(h_out_0=108262.83), + w_out(start=0.0018949909)) annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,90}))); + MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-92}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor(P_0=100000) + annotation (Placement(transformation(extent={{-36,-30},{-16,-10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,66}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-68,-30},{-48,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{34,-30},{54,-10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-98,-30},{-78,-10}}))); + MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-70}))); + MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,36}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,10}))); + MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={0,-44}))); +equation + // Hot Water Inlet + waterFlow_sensor.Qv = waterInletFlow; + waterInletTemp_sensor.T_degC = waterInletTemp; + waterInletPress_sensor.P_barA = waterInletPress; + + // Cold Air Inlet + airInletPress_sensor.P_barA = airInletPress; + cold_source.relative_humidity = cold_source_relative_humidity; + airInletFlow_sensor.Qv = airInletFlow; + AirInletTemp_sensor.T_degC = AirInletTemp; + + // Hot Water Outlet + + // Cold Air Outlet + cold_sink.relative_humidity = cold_sink_relative_humidity; + airOutletPress_sensor.P_barA = airOutletPress; + + // Calibrated Parameters + CoolingTower.hd = hd; + CoolingTower.Cf = Cf; + CoolingTower.Afr = Afr; + CoolingTower.Lfi = Lfi; + + // Parameters + CoolingTower.V_inlet = V_inlet; + + // Observable for Calibration + WaterOutletTemp_sensor.T_degC = WaterOutletTemp; + AirOutletTemp_sensor.T_degC = AirOutletTemp; + + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, + color={28,108,200})); + connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, + color={28,108,200})); + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-105,-20},{-98,-20}}, + color={28,108,200})); + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-68,-20},{-78,-20}}, + color={28,108,200})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,20}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); + connect(waterInletPress_sensor.C_out, CoolingTower.water_inlet_connector) annotation (Line(points={{-16,-20},{-9.16667,-20}}, color={28,108,200})); + connect(CoolingTower.water_outlet_connector, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9.16667,-20},{34,-20}}, color={28,108,200})); + connect(CoolingTower.air_outlet_connector, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29.1667},{0,-34}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.air_inlet_connector) annotation (Line(points={{0,0},{0,-10.8333}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + Ellipse(lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-110,-100},{90,100}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={95,95,95}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={213,213,0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,46},{-4,14},{-58,-14},{-58,46}}), + Polygon( + origin={12,14}, + lineColor={78,138,73}, + fillColor={28,108,200}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})}), + experiment(__Dymola_Algorithm="Dassl")); +end CoolingTowerPoppe_direct; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct_withStartValues.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct_withStartValues.mo new file mode 100644 index 00000000..11e64ebf --- /dev/null +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct_withStartValues.mo @@ -0,0 +1,769 @@ +within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; +model CoolingTowerPoppe_direct_withStartValues + extends CoolingTowerPoppe_direct( +AirInletTemp_sensor( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +P(start=100000.0), +Q(start=46526.16), +T(start=288.15), +T_degC(start=15.0), +T_degF(start=1063.67), +flow_model( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=46526.16), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=288.15), +T_in(start=288.15), +T_out(start=300.0), +h(start=20400.438), +h_in(start=20400.438), +h_out(start=20400.438), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=288.15)), +state_out( +T(start=300.0))), +h(start=20400.438), +mass_flow_rate_bias(start=0.0), +state( +T(start=288.15))), +AirOutletTemp(start=25.0), +AirOutletTemp_sensor( +C_in( +P(start=100000.0), +Q(start=100.0), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +P(start=100000.0), +Q(start=100.0), +T(start=300.0), +T_degC(start=25.0), +T_degF(start=1063.67), +flow_model( +C_in( +P(start=100000.0), +Q(start=100.0), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=100.0), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=796081.94), +h_in(start=796081.94), +h_out(start=796081.94), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0)), +state_out( +T(start=300.0))), +h(start=796081.94), +mass_flow_rate_bias(start=0.0), +state( +T(start=288.15))), +CoolingTower( +Tw(start={293.15, 294.2611, 295.37222, 296.48334, 297.59445, 298.70557, 299.81668, 300.92776, 302.03888, 303.15}), +Q_cold_in(start=46526.16), +Q_cold_out(start=100.0), +Q_hot_in(start=29869.545), +Q_hot_out(start=100.00001), +T_cold_in(start=288.15), +T_cold_out(start=288.15), +T_hot_in(start=303.15), +T_hot_out(start=300.0), +air_inlet( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=0.0)), +P_in(start=100000.0), +Q_in(start=46526.16), +Qv_in(start=1.0), +T_in(start=288.15), +Xi_in(start={0.0021244816}), +h_in(start=20400.438), +state_in( +T(start=288.15))), +air_inlet_connector( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +air_inlet_flow( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=46526.16), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=288.15), +T_in(start=288.15), +T_out(start=300.0), +h(start=20400.438), +h_in(start=20400.438), +h_out(start=20400.438), +rho(start=998.0), +rho_in(start=1.2074288), +rho_out(start=998.0), +state_in( +T(start=288.15)), +state_out( +T(start=300.0))), +air_outlet( +C_out( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +P_out(start=100000.0), +Q_out(start=-100.0), +Qv_out(start=-1.0), +T_out(start=288.15), +Xi_out(start={0.0}), +h_out(start=796081.94), +state_out( +T(start=288.15))), +air_outlet_connector( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +air_outlet_flow( +C_in( +P(start=100000.0), +Q(start=100.0), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=100.0), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=380.57834), +h(start=796081.94), +h_in(start=796081.94), +h_out(start=796081.94), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=0.78830904), +state_in( +T(start=300.0)), +state_out( +T(start=380.57834))), +i_final(start=796081.94), +i_initial(start=20400.438), +rho_air_inlet(start=1.2074288), +rho_air_outlet(start=0.78830904), +w_in(start=0.0021244816), +w_out(start=0.26518434), +water_inlet( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=0.0)), +P_in(start=100000.0), +Q_in(start=29869.545), +Qv_in(start=1.0), +T_in(start=300.0), +h_in(start=125743.45), +state_in( +T(start=300.0), +h(start=125743.45))), +water_inlet_connector( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +water_inlet_flow( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +DP(start=0.0), +DP_input(start=0.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=29869.545), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T_in(start=303.15), +T_out(start=300.0), +h(start=125743.45), +h_in(start=125743.45), +h_out(start=125743.45), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=303.15), +h(start=125743.45)), +state_out( +T(start=300.0), +h(start=125743.45))), +water_outlet( +C_out( +P(start=100000.0), +Q(start=-100.00001), +h_outflow(start=500000.0)), +P_out(start=100000.0), +Q_out(start=-100.00001), +Qv_out(start=-1.0), +T_out(start=300.0), +h_out(start=500000.0), +state_out( +T(start=300.0), +h(start=500000.0))), +water_outlet_connector( +P(start=100000.0), +Q(start=-100.00001), +h_outflow(start=500000.0)), +water_outlet_flow( +C_in( +P(start=100000.0), +Q(start=100.00001), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.00001), +h_outflow(start=500000.0)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=100.00001), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=500000.0), +h_in(start=500000.0), +h_out(start=500000.0), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0), +h(start=500000.0)), +state_out( +T(start=300.0), +h(start=500000.0)))), +V_inlet(start=12.871763), +WaterOutletTemp(start=20.0), +WaterOutletTemp_sensor( +C_in( +P(start=100000.0), +Q(start=100.00001), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.00001), +h_outflow(start=500000.0)), +P(start=100000.0), +Q(start=100.00001), +T(start=300.0), +T_degC(start=20.0), +T_degF(start=1063.67), +flow_model( +C_in( +P(start=100000.0), +Q(start=100.00001), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.00001), +h_outflow(start=500000.0)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=100.00001), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=500000.0), +h_in(start=500000.0), +h_out(start=500000.0), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0), +h(start=500000.0)), +state_out( +T(start=300.0), +h(start=500000.0))), +h(start=500000.0), +mass_flow_rate_bias(start=0.0), +state( +T(start=500.0), +h(start=500000.0))), +airInletFlow(start=50000.0), +airInletFlow_sensor( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +P(start=100000.0), +Q(start=46526.16), +Q_Mlbh(start=0.79366416), +Q_lbs(start=45.35924), +Q_lm(start=6000.0), +Q_th(start=360.0), +Qv(start=50000.0), +flow_model( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=46526.16), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=20400.438), +h_in(start=20400.438), +h_out(start=20400.438), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0)), +state_out( +T(start=300.0))), +h(start=20400.438), +mass_flow_rate_bias(start=0.0), +state( +T(start=288.15))), +airInletPress_sensor( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +P(start=100000.0), +P_MPaA(start=0.1), +P_MPaG(start=-1.3877788e-17), +P_barA(start=1.0), +P_barG(start=0.0), +P_inHg(start=29.53006), +P_kPaA(start=100.0), +P_kPaG(start=0.0), +P_mbar(start=1000.0), +P_psiA(start=14.5038), +P_psiG(start=2.623e-05), +Q(start=46526.16), +flow_model( +C_in( +P(start=100000.0), +Q(start=46526.16), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=46526.16), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=20400.438), +h_in(start=20400.438), +h_out(start=20400.438), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0)), +state_out( +T(start=300.0))), +h(start=20400.438), +mass_flow_rate_bias(start=0.0), +state( +T(start=288.15))), +airOutletPress(start=1.0), +airOutletPress_sensor( +C_in( +P(start=100000.0), +Q(start=100.0), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +P(start=100000.0), +P_MPaA(start=0.1), +P_MPaG(start=-1.3877788e-17), +P_barA(start=1.0), +P_barG(start=0.0), +P_inHg(start=29.53006), +P_kPaA(start=100.0), +P_kPaG(start=0.0), +P_mbar(start=1000.0), +P_psiA(start=14.5038), +P_psiG(start=2.623e-05), +Q(start=100.0), +flow_model( +C_in( +P(start=100000.0), +Q(start=100.0), +Xi_outflow(start={0.0}), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-100.0), +Xi_outflow(start={0.26518434}), +h_outflow(start=796081.94)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=100.0), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=796081.94), +h_in(start=796081.94), +h_out(start=796081.94), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0)), +state_out( +T(start=300.0))), +h(start=796081.94), +mass_flow_rate_bias(start=0.0), +state( +T(start=288.15))), +cold_sink( +C_in( +P(start=100000.0), +Q(start=100.0), +Xi_outflow(start={0.0}), +h_outflow(start=0.0)), +P_in(start=100000.0), +Q_in(start=100.0), +Qv_in(start=1.0), +T_in(start=288.15), +Xi_in(start={0.0018949909}), +h_in(start=796081.94), +state_in( +T(start=288.15))), +cold_sink_relative_humidity(start=0.40412638), +cold_source( +C_out( +P(start=100000.0), +Q(start=-46526.16), +Xi_outflow(start={0.0021244816}), +h_outflow(start=20400.438)), +P_out(start=100000.0), +Q_out(start=-46526.16), +Qv_out(start=-1.0), +T_out(start=288.15), +Xi_out(start={0.0021244816}), +h_out(start=20400.438), +state_out( +T(start=288.15))), +hot_sink( +C_in( +P(start=100000.0), +Q(start=100.00001), +h_outflow(start=0.0)), +P_in(start=100000.0), +Q_in(start=100.00001), +Qv_in(start=1.0), +T_in(start=300.0), +h_in(start=500000.0), +state_in( +T(start=300.0), +h(start=500000.0))), +hot_source( +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +P_out(start=100000.0), +Q_out(start=-29869.545), +Qv_out(start=-1.0), +T_out(start=300.0), +h_out(start=125743.45), +state_out( +T(start=300.0), +h(start=125743.45))), +waterFlow_sensor( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +P(start=100000.0), +Q(start=29869.545), +Q_Mlbh(start=0.79366416), +Q_lbs(start=45.35924), +Q_lm(start=6000.0), +Q_th(start=360.0), +Qv(start=30.0), +flow_model( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=29869.545), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=125743.45), +h_in(start=125743.45), +h_out(start=125743.45), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0), +h(start=125743.45)), +state_out( +T(start=300.0), +h(start=125743.45))), +h(start=125743.45), +mass_flow_rate_bias(start=0.0), +state( +T(start=500.0), +h(start=125743.45))), +waterInletPress_sensor( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +P(start=100000.0), +P_MPaA(start=0.1), +P_MPaG(start=-1.3877788e-17), +P_barA(start=1.0), +P_barG(start=0.0), +P_inHg(start=29.53006), +P_kPaA(start=100.0), +P_kPaG(start=0.0), +P_mbar(start=1000.0), +P_psiA(start=14.5038), +P_psiG(start=2.623e-05), +Q(start=29869.545), +flow_model( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=29869.545), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=300.0), +T_in(start=300.0), +T_out(start=300.0), +h(start=125743.45), +h_in(start=125743.45), +h_out(start=125743.45), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=300.0), +h(start=125743.45)), +state_out( +T(start=300.0), +h(start=125743.45))), +h(start=125743.45), +mass_flow_rate_bias(start=0.0), +state( +T(start=500.0), +h(start=125743.45))), +waterInletTemp_sensor( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +P(start=100000.0), +Q(start=29869.545), +T(start=303.15), +T_degC(start=30.0), +T_degF(start=1063.67), +flow_model( +C_in( +P(start=100000.0), +Q(start=29869.545), +h_outflow(start=1000000.0)), +C_out( +P(start=100000.0), +Q(start=-29869.545), +h_outflow(start=125743.45)), +DP(start=0.0), +P(start=100000.0), +P_in(start=100000.0), +P_out(start=100000.0), +Q(start=29869.545), +Qv(start=0.1), +Qv_in(start=0.1), +Qv_out(start=-0.1), +T(start=303.15), +T_in(start=303.15), +T_out(start=300.0), +h(start=125743.45), +h_in(start=125743.45), +h_out(start=125743.45), +rho(start=998.0), +rho_in(start=998.0), +rho_out(start=998.0), +state_in( +T(start=303.15), +h(start=125743.45)), +state_out( +T(start=300.0), +h(start=125743.45))), +h(start=125743.45), +mass_flow_rate_bias(start=0.0), +state( +T(start=500.0), +h(start=125743.45)))); + annotation (experiment(__Dymola_fixedstepsize=0.1, __Dymola_Algorithm="Euler")); +end CoolingTowerPoppe_direct_withStartValues; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo similarity index 95% rename from MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo rename to MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo index 6d38b9d4..d165fe02 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_test.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo @@ -1,5 +1,5 @@ within MetroscopeModelingLibrary.Tests.Multifluid.HeatExchangers; -model CoolingTowerPoppe_test +model CoolingTowerPoppe_reverse import MetroscopeModelingLibrary.Utilities.Units; // Boundary Conditions @@ -13,7 +13,6 @@ model CoolingTowerPoppe_test input Real airInletPress(start=1) "bar"; input Units.Fraction cold_source_relative_humidity(start=0.2) "1"; - // Input for calibration input Real WaterOutletTemp(start=20) "deg_C"; @@ -35,12 +34,14 @@ model CoolingTowerPoppe_test output Units.Fraction cold_sink_relative_humidity(start=0.40412638) "1"; output Real V_inlet(start = 12.871763) "m/s"; //No known start value - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppeTrial CoolingTower(air_outlet_flow(h_out_0=20400.438),air_inlet_flow(h_out_0=108262.83),w_out(start=0.0018949909)) - annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerPoppewithSS + CoolingTower( + air_outlet_flow(h_out_0=20400.438), + air_inlet_flow(h_out_0=108262.83), + w_out(start=0.0018949909)) annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -99,7 +100,6 @@ equation CoolingTower.Afr = Afr; CoolingTower.Lfi = Lfi; - // Parameters CoolingTower.V_inlet = V_inlet; @@ -151,4 +151,4 @@ equation fillPattern=FillPattern.Solid, points={{-58,-14},{-2,-40},{-58,-74},{-58,-14}})}), experiment(__Dymola_Algorithm="Dassl")); -end CoolingTowerPoppe_test; +end CoolingTowerPoppe_reverse; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 69c6cf68..95999597 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -20,4 +20,6 @@ AirCooledCondenser_direct AirCooledCondenser_faulty CoolingTowerMerkel_direct CoolingTowerMerkel_reverse -CoolingTowerPoppe_test +CoolingTowerPoppe_reverse +CoolingTowerPoppe_direct +CoolingTowerPoppe_direct_withStartValues From e251278c391de5499f30e01a915d90c7e39847a3 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Mon, 27 May 2024 10:56:57 +0200 Subject: [PATCH 26/34] Update --- .../HeatExchangers/CoolingTowerMerkel.mo | 30 +- .../HeatExchangers/CoolingTowerPoppe.mo | 101 +++++- .../HeatExchangers/CoolingTowerPoppewithSS.mo | 301 ------------------ .../HeatExchangers/SupersaturatedEquations.mo | 194 ----------- .../HeatExchangers/UnsaturatedEquations.mo | 177 ---------- .../MultiFluid/HeatExchangers/package.order | 3 - .../CoolingTowerMerkel_direct.mo | 3 +- .../CoolingTowerPoppe_direct.mo | 3 +- .../CoolingTowerPoppe_reverse.mo | 5 +- 9 files changed, 116 insertions(+), 701 deletions(-) delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo index e891dc5e..db49949d 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo @@ -8,14 +8,15 @@ model CoolingTowerMerkel import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - Inputs.InputArea Afr; - Inputs.InputReal hd; - Inputs.InputReal Lfi; - Inputs.InputReal afi; - Inputs.InputReal D; - Inputs.InputReal Ratio; - Units.Velocity V_inlet; - Inputs.InputFrictionCoefficient Cf; + Units.Velocity V_inlet; //Wind velocity entering cooling tower + Inputs.InputReal hd; //Mass transfer coefficient + Inputs.InputArea Afr; //Tower cross-sectional area + Inputs.InputReal Lfi; //Height of filling + Inputs.InputFrictionCoefficient Cf; //Friction coefficient of air + Inputs.InputReal afi; //Fill material surface area per unit volume + Inputs.InputReal Ratio; //Ratio used to see if results align with EDF reference paper + + parameter String configuration = "natural draft"; Units.MassFlowRate Q_cold_in; Units.MassFlowRate Q_cold_out; @@ -152,13 +153,22 @@ equation rho_air_inlet = inputflowmodel.rho_in; rho_air_outlet = outputflowmodel.rho_out; + pipe.Kfr = 0; + pipe.delta_z = 0; + (P_in - P_out) = 0; + if configuration == "natural draft" then + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - pipe.Kfr = 0; - pipe.delta_z = 0; + else + + Q_cold_in = sqrt((rho_air_inlet - rho_air_outlet) * g * Lfi + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet); + Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + + end if; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo index 5d419f5c..2ab45f5b 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppe.mo @@ -7,6 +7,9 @@ model CoolingTowerPoppe import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; + parameter Integer N_step = 10; //Parameter specifies the number of sections for which the Cooling Tower thermodynamic properties are divided into in the loop. + + //Unsaturated Air - Equations from Poppe Method for Cooling Tower Analysis function f input Real Tw; input Real w; @@ -47,11 +50,56 @@ model CoolingTowerPoppe y:= cp / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); end h; - Units.Velocity V_inlet; - Inputs.InputReal hd; - Inputs.InputArea Afr; - Inputs.InputReal Lfi; - Inputs.InputFrictionCoefficient Cf; + //Supersaturated Air - Equations from Poppe Method for Cooling Tower Analysis + function j + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * (MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); + end j; + + function k + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Qw; + input Real Qa; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= (cp * (Qw / Qa)) * (1 + (((cp * Tw) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1}) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw))); + end k; + + function m + input Real Tw; + input Real Ta; + input Real w; + input Real i; + input Real cp; + input Real Pin; + input Real Lef; + output Real y; + algorithm + y:= cp / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); + end m; + + Units.Velocity V_inlet; //Wind velocity entering cooling tower + Inputs.InputReal hd; //Mass transfer coefficient + Inputs.InputArea Afr; //Tower cross-sectional area + Inputs.InputReal Lfi; //Height of filling + Inputs.InputFrictionCoefficient Cf; //Friction coefficient of air + //Inputs.InputReal b; constant Real gr(unit="m/s2") = Modelica.Constants.g_n; @@ -65,10 +113,14 @@ model CoolingTowerPoppe Real w_in; Real w_out; + Real w_sat[N_step]; Units.SpecificEnthalpy i_initial; Units.SpecificEnthalpy i_final; + Units.Power W_max; + Units.Power W_min; + Units.Temperature T_cold_in; Units.Temperature T_cold_out; Units.Temperature T_hot_in; @@ -77,13 +129,12 @@ model CoolingTowerPoppe // Poppe Inputs Units.Temperature deltaTw; - parameter Integer N_step = 10; Real w[N_step]; Real M[N_step]; Real Me; Real i[N_step]; Real Tw[N_step]; - //Real Ta[N_step]; //NEW + Real Ta[N_step]; Units.HeatCapacity cp[N_step]; Real Pin[N_step]; Real Lef[N_step]; @@ -138,15 +189,22 @@ equation water_outlet_flow.Q = Q_hot_out; water_outlet_flow.T_in = T_hot_out; + W_max = Qw[10] * cp[1] * (Tw[N_step] - Tw[1]); + W_min = Qw[1] * cp[1] * (Tw[N_step] - Tw[1]); + // New Poppe Equations deltaTw = (Tw[N_step] - Tw[1]) / (N_step - 1); for n in 1:N_step loop Tw[n] = T_hot_out + (T_hot_in-T_hot_out)*(n-1)/(N_step-1); + Ta[n] = MoistAir.T_phX(Pin[n], i[n], {w[n]}); + w_sat[n] = MoistAir.xsaturation_pT(Pin[n], Ta[n]); end for; for n in 1:N_step-1 loop + + if w[n] < w_sat[n] then w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); M[n+1]= M[n] + deltaTw * h(Tw[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); @@ -161,9 +219,26 @@ equation Pin[n+1] = Pin[n]; + else + w[n+1] = w[n] + deltaTw * j(Tw[n], Ta[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + i[n+1] = i[n] + deltaTw * k(Tw[n], Ta[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); + M[n+1]= M[n] + deltaTw * m(Tw[n+1], Ta[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); + + Qw[n+1] = Qw[n] + Qa[n] * (w[n+1] - w[n]); + + Qa[n+1] = Qa[n] * (1 + (w[n+1] - w[n])); + + Lef[n+1] = Lef[n]; + + cp[n+1] = cp[n]; + + Pin[n+1] = Pin[n]; + + end if; + end for; - Me = hd * Afr / Qw[1]; + Me = hd * Afr / Qw[1]; //Can be Qw[N_step] but makes little difference M[N_step] = Me; M[1] = 0; @@ -178,16 +253,24 @@ equation Qa[1] = Q_cold_in; Qa[N_step] = Q_cold_out; - Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); + Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); //Can change w[1] to w[N_step] but little impact on Lef (-0.06 ish) cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); // Drift Equation rho_air_inlet = air_inlet_flow.rho_in; rho_air_outlet = air_outlet_flow.rho_out; + //if configuration = "natural draft" then + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; Q_cold_in = (V_inlet * Afr * rho_air_inlet)* (1 - air_inlet.Xi_in[1]); + //else + + //Q_cold_in = b * sqrt((rho_air_inlet - rho_air_outlet) * g * Lfi + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet); + + //end if + connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-76,0}}, color={28,108,200})); connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{84,0},{110,0}}, color={28,108,200})); connect(water_outlet_flow.C_in, water_outlet.C_out) annotation (Line(points={{64,0},{37,0}}, color={28,108,200})); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo deleted file mode 100644 index 8ff11e96..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerPoppewithSS.mo +++ /dev/null @@ -1,301 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model CoolingTowerPoppewithSS - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - //Unsaturated Air - function f - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); - end f; - - function g - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); - end g; - - function h - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); - end h; - - //Supersaturated Air - function j - input Real Tw; - input Real Ta; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * (MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); - end j; - - function k - input Real Tw; - input Real Ta; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa)) * (1 + (((cp * Tw) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1}) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw))); - end k; - - function m - input Real Tw; - input Real Ta; - input Real w; - input Real i; - input Real cp; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= cp / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); - end m; - - - - Units.Velocity V_inlet; - Inputs.InputReal hd; - Inputs.InputArea Afr; - Inputs.InputReal Lfi; - Inputs.InputFrictionCoefficient Cf; - - constant Real gr(unit="m/s2") = Modelica.Constants.g_n; - - Units.Density rho_air_inlet; - Units.Density rho_air_outlet; - - Units.MassFlowRate Q_hot_in; - Units.MassFlowRate Q_hot_out; - Units.MassFlowRate Q_cold_in; - Units.MassFlowRate Q_cold_out; - - Real w_in; - Real w_out; - Real w_sat[N_step]; - - Units.SpecificEnthalpy i_initial; - Units.SpecificEnthalpy i_final; - - Units.Temperature T_cold_in; - Units.Temperature T_cold_out; - Units.Temperature T_hot_in; - Units.Temperature T_hot_out; - - // Poppe Inputs - Units.Temperature deltaTw; - - parameter Integer N_step = 10; - Real w[N_step]; - Real M[N_step]; - Real Me; - Real i[N_step]; - Real Tw[N_step]; - Real Ta[N_step]; - Units.HeatCapacity cp[N_step]; - Real Pin[N_step]; - Real Lef[N_step]; - Units.MassFlowRate Qw[N_step]; - Units.MassFlowRate Qa[N_step]; - - WaterSteam.Connectors.Inlet water_inlet_connector annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); - WaterSteam.Connectors.Outlet water_outlet_connector annotation (Placement(transformation(extent={{100,-10},{120,10}}))); - MetroscopeModelingLibrary.MoistAir.Connectors.Inlet air_inlet_connector annotation (Placement(transformation(extent={{-10,100},{10,120}}))); - MetroscopeModelingLibrary.MoistAir.Connectors.Outlet air_outlet_connector annotation (Placement(transformation(extent={{-10,-120},{10,-100}}))); - WaterSteam.BaseClasses.IsoHFlowModel water_inlet_flow annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); - WaterSteam.BaseClasses.IsoPHFlowModel water_outlet_flow annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - WaterSteam.BoundaryConditions.Source water_outlet annotation (Placement(transformation(extent={{22,-10},{42,10}}))); - WaterSteam.BoundaryConditions.Sink water_inlet annotation (Placement(transformation(extent={{-42,-10},{-22,10}}))); - MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_inlet_flow annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,56}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink air_inlet annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,28}))); - MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source - air_outlet annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-32}))); - MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel air_outlet_flow annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-64}))); -equation - - // connectors - air_inlet_flow.P_out = Pin[1]; - air_inlet_flow.Q = Q_cold_in; - air_inlet_flow.h = i_initial; - air_inlet.T_in = T_cold_in; - w_in = air_inlet.Xi_in[1]; - - air_outlet_flow.P_in = Pin[N_step]; - air_outlet_flow.Q = Q_cold_out; - air_outlet_flow.h = i_final; - air_outlet.T_out = T_cold_out; - w_out = air_outlet.Xi_out[1]; - - water_inlet_flow.P_out = Pin[N_step]; - water_inlet_flow.Q = Q_hot_in; - water_inlet_flow.T_in = T_hot_in; - - water_outlet_flow.P_out = Pin[1]; - water_outlet_flow.Q = Q_hot_out; - water_outlet_flow.T_in = T_hot_out; - - // New Poppe Equations - - deltaTw = (Tw[N_step] - Tw[1]) / (N_step - 1); - - for n in 1:N_step loop - Tw[n] = T_hot_out + (T_hot_in-T_hot_out)*(n-1)/(N_step-1); - Ta[n] = MoistAir.T_phX(Pin[n], i[n], {w[n]}); - w_sat[n] = MoistAir.xsaturation_pT(Pin[n], Ta[n]); - end for; - - for n in 1:N_step-1 loop - - - if w[n] < w_sat[n] then - w[n+1] = w[n] + deltaTw * f(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - i[n+1] = i[n] + deltaTw * g(Tw[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - M[n+1]= M[n] + deltaTw * h(Tw[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); - - Qw[n+1] = Qw[n] + Qa[n] * (w[n+1] - w[n]); - - Qa[n+1] = Qa[n] * (1 + (w[n+1] - w[n])); - - Lef[n+1] = Lef[n]; - - cp[n+1] = cp[n]; - - Pin[n+1] = Pin[n]; - - else - w[n+1] = w[n] + deltaTw * j(Tw[n], Ta[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - i[n+1] = i[n] + deltaTw * k(Tw[n], Ta[n], w[n], i[n], cp[n], Qw[n], Qa[n], Pin[n], Lef[n]); - M[n+1]= M[n] + deltaTw * m(Tw[n+1], Ta[n+1], w[n+1], i[n+1], cp[n+1], Pin[n+1], Lef[n+1]); - - Qw[n+1] = Qw[n] + Qa[n] * (w[n+1] - w[n]); - - Qa[n+1] = Qa[n] * (1 + (w[n+1] - w[n])); - - Lef[n+1] = Lef[n]; - - cp[n+1] = cp[n]; - - Pin[n+1] = Pin[n]; - - end if; - - end for; - - Me = hd * Afr / Qw[1]; - M[N_step] = Me; - M[1] = 0; - - w[1] = w_in; - w[N_step] = w_out; - - i[1] = i_initial; - i[N_step] = i_final; - - Qw[1] = Q_hot_out; - Qw[N_step] = Q_hot_in; - Qa[1] = Q_cold_in; - Qa[N_step] = Q_cold_out; - - Lef[1] = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622))-1) / log((MoistAir.xsaturation_pT(Pin[1], T_cold_in)+0.622)/(w[1]+0.622)); - cp[1] = WaterSteamMedium.specificHeatCapacityCp(water_inlet_flow.state_in); - - // Drift Equation - rho_air_inlet = air_inlet_flow.rho_in; - rho_air_outlet = air_outlet_flow.rho_out; - - 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * gr * Lfi; - Q_cold_in = (V_inlet * Afr * rho_air_inlet)* (1 - air_inlet.Xi_in[1]); - - connect(water_inlet_connector, water_inlet_flow.C_in) annotation (Line(points={{-110,0},{-76,0}}, color={28,108,200})); - connect(water_outlet_flow.C_out, water_outlet_connector) annotation (Line(points={{84,0},{110,0}}, color={28,108,200})); - connect(water_outlet_flow.C_in, water_outlet.C_out) annotation (Line(points={{64,0},{37,0}}, color={28,108,200})); - connect(water_inlet_flow.C_out, water_inlet.C_in) annotation (Line(points={{-56,0},{-37,0}}, color={28,108,200})); - connect(air_inlet_flow.C_in, air_inlet_connector) annotation (Line(points={{0,66},{0,110}}, color={85,170,255})); - connect(air_outlet_flow.C_out, air_outlet_connector) annotation (Line(points={{0,-74},{0,-110}}, color={85,170,255})); - connect(air_inlet_flow.C_out, air_inlet.C_in) annotation (Line(points={{0,46},{0,33}}, color={85,170,255})); - connect(air_outlet_flow.C_in, air_outlet.C_out) annotation (Line(points={{0,-54},{0,-37}}, color={85,170,255})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end CoolingTowerPoppewithSS; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo deleted file mode 100644 index 2efe335f..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/SupersaturatedEquations.mo +++ /dev/null @@ -1,194 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model SupersaturatedEquations - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - function j - input Real Tw; - input Real Ta; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * (MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); - end j; - - function k - input Real Tw; - input Real Ta; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa)) * (1 + (((cp * Tw) * (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta))) / (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1}) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw))); - end k; - - function m - input Real Tw; - input Real Ta; - input Real w; - input Real i; - input Real cp; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= cp / ((MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - MoistAir.xsaturation_pT(Pin, Ta)) * MoistAir.h_pTX(Pin, Tw, {1})) + (w - MoistAir.xsaturation_pT(Pin, Ta)) * cp * Tw) + (w - MoistAir.xsaturation_pT(Pin, Tw)) * cp * Tw); - end m; - - - - // Poppe Inputs - - parameter Real rh = 1.1; - - parameter Real Tw_in = 30+273.15; - input Real Tw_out(start = 20+273.15); - - parameter Real Ta_in = 15+273.15; - input Real Ta_out(start= 30+273.15); - - Real Tw[4]; - Real deltaTw; - - Real Ta[4]; - Real deltaTa; - - - parameter Real cp = 4180; - parameter Real Pin = 100000; - output Real hd(start= -0.0012223658); //From Merkel model - Real Lef; - - Real w1; - Real w2; - Real w3; - Real w4; - - Real rh4; - - Real i1; - Real i2; - Real i3; - Real i4; - Real Ta4; - - Real M1; - Real M2; - Real M3; - Real M4; - Real Me; - - Real Qw1; - Real Qw2; - Real Qw3; - parameter Real Qw4 = 30; - - parameter Real Qa1 = 20; - Real Qa2; - Real Qa3; - Real Qa4; - -equation - // Water temperature - Tw[1] = Tw_out; - Tw[2] = Tw[1] + deltaTw; - Tw[3] = Tw[2] + deltaTw; - Tw[4] = Tw_in; - deltaTw = (Tw[4] - Tw[1]) / (4 - 1); - - // Air Temperature - Ta[1] = Ta_in; - Ta[2] = Ta[1] + deltaTa; - Ta[3] = Ta[2] + deltaTa; - Ta[4] = Ta_out; - deltaTa = (Ta[4] - Ta[1])/ (4 - 1); - - // Lewis factor - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, Ta_in)+0.622)/(w1+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, Ta_in)+0.622)/(w1+0.622)); //NEW - - // Air enthalpy - i1 = MoistAir.h_pTX(Pin, Ta_in, {w1}); //inlet - i2 = i1 + deltaTw * k(Tw[1], Ta[2], w1, i1, cp, Qw1, Qa1, Pin, Lef); - i3 = i2 + deltaTw * k(Tw[2], Ta[3], w2, i2, cp, Qw2, Qa2, Pin, Lef); - i4 = i3 + deltaTw * k(Tw[3], Ta[4], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet - - Ta4 = MoistAir.T_phX(Pin, i4, {w4}); - - // Humidity - w1 = MoistAir.massFraction_pTphi(Pin, Ta_in, rh); //inlet - w2 = w1 + deltaTw * j(Tw[1], Ta[2], w1, i1, cp, Qw1, Qa1, Pin, Lef); - w3 = w2 + deltaTw * j(Tw[2], Ta[3], w2, i2, cp, Qw2, Qa2, Pin, Lef); - w4 = w3 + deltaTw * j(Tw[3], Ta[4], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet - w4 = MoistAir.massFraction_pTphi(Pin, Tw[4], rh4); - - // Merkel number - M1 = deltaTw * m(Tw[1], Ta[1], w1, i1, cp, Pin, Lef); - M2 = deltaTw * m(Tw[2], Ta[2], w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw - M3 = deltaTw * m(Tw[3], Ta[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen - M4 = deltaTw * m(Tw[4], Ta[4], w4, i4, cp, Pin, Lef); - Me = (M1 + M2 + M3 + M4) / (4 * deltaTw); - Me = hd * 3000 / Qw1; - - - // Water flow - //Qw - has a given start value, taken from Merkel model - Qw2 = Qw1 - Qa1 * (w2 - w1); - Qw3 = Qw2 - Qa2 * (w3 - w2); - Qw4 = Qw3 - Qa3 * (w4 - w3); - - // Air flow - //Qa - has a given start value, taken from Merkel model - Qa2 = Qa1 * (1 + w2); - Qa3 = Qa2 * (1 + w3); - Qa4 = Qa3 * (1 + w4); - - - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end SupersaturatedEquations; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo deleted file mode 100644 index b54c9d8a..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/UnsaturatedEquations.mo +++ /dev/null @@ -1,177 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model UnsaturatedEquations - package Water = MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - package MoistAir = MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - import MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Media.MoistAirMedium.specificEnthalpy; - - function f - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= (cp * (Qw / Qa) * (MoistAir.xsaturation_pT(Pin, Tw) - w)) / (((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)})) - i + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)); - end f; - - function g - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Qw; - input Real Qa; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= ((Qw * cp) / Qa) * (1 + (((MoistAir.xsaturation_pT(Pin, Tw) - w) * (cp * Tw)) / ((MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + ((Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1}))) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw)))); - end g; - - function h - input Real Tw; - input Real w; - input Real i; - input Real cp; - input Real Pin; - input Real Lef; - output Real y; - algorithm - y:= cp / (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i + (Lef-1) * (MoistAir.h_pTX(Pin, Tw, {1-MoistAir.xsaturation_pT(Pin, Tw)}) - i - (MoistAir.xsaturation_pT(Pin, Tw) - w) * MoistAir.h_pTX(Pin, Tw, {1})) - (MoistAir.xsaturation_pT(Pin, Tw) - w) * cp * Tw); - end h; - - // Poppe Inputs - - parameter Real rh = 0.2; - - parameter Real Tw_in = 30+273.15; - input Real Tw_out(start = 20+273.15); - parameter Real Ta1 = 15+273.15; - - Real Tw[4]; - Real deltaTw; - - parameter Real cp = 4180; - parameter Real Pin = 100000; - output Real hd(start= -0.0012223658); //From Merkel model - Real Lef; - - Real w1; - Real w2; - Real w3; - Real w4; - - Real rh4; - - Real i1; - Real i2; - Real i3; - Real i4; - Real Ta4; - - Real M1; - Real M2; - Real M3; - Real M4; - Real Me; - - Real Qw1; - Real Qw2; - Real Qw3; - parameter Real Qw4 = 30; - - parameter Real Qa1 = 20; - Real Qa2; - Real Qa3; - Real Qa4; - - Real delta2; - -equation - - // Water temperature - Tw[1] = Tw_out; - Tw[2] = Tw[1] + deltaTw; - Tw[3] = Tw[2] + deltaTw; - Tw[4] = Tw_in; - deltaTw = (Tw[4] - Tw[1]) / (4 - 1); - - // Lewis factor - Lef = 0.9077990913 * (((MoistAir.xsaturation_pT(Pin, Ta1)+0.622)/(w1+0.622))-1) / log((MoistAir.xsaturation_pT(Pin, Ta1)+0.622)/(w1+0.622)); //NEW - - // Air enthalpy - i1 = MoistAir.h_pTX(Pin, Ta1, {w1}); //inlet - i2 = i1 + deltaTw * g(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); - i3 = i2 + deltaTw * g(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); - i4 = i3 + deltaTw * g(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet - Ta4 = MoistAir.T_phX(Pin, i4, {w4}); - - // Humidity - w1 = MoistAir.massFraction_pTphi(Pin, Ta1, rh); //inlet - w2 = w1 + deltaTw * f(Tw[1], w1, i1, cp, Qw1, Qa1, Pin, Lef); - w3 = w2 + deltaTw * f(Tw[2], w2, i2, cp, Qw2, Qa2, Pin, Lef); - w4 = w3 + deltaTw * f(Tw[3], w3, i3, cp, Qw3, Qa3, Pin, Lef); //outlet - w4 = MoistAir.massFraction_pTphi(Pin, Tw[4], rh4); - - delta2= (((MoistAir.h_pTX(Pin, Tw[2], {w2})) - i2 + (Lef-1) * ((MoistAir.h_pTX(Pin, Tw[2], {w2}) - i2 - (MoistAir.xsaturation_pT(Pin, Tw[2]) - w2) * MoistAir.h_pTX(Pin, Tw[2], {1}))) - (MoistAir.xsaturation_pT(Pin, Tw[2]) - w2) * cp * Tw[2])); - - // Merkel number - M1 = deltaTw * h(Tw[1], w1, i1, cp, Pin, Lef); - M2 = deltaTw * h(Tw[2], w2, i2, cp, Pin, Lef); //Merkel number is decreasing and can go negative depending on hd (and hence M1) and also depending on deltaTw - M3 = deltaTw * h(Tw[3], w3, i3, cp, Pin, Lef); //Negative Merkel number isn't supposed to happen - M4 = deltaTw * h(Tw[4], w4, i4, cp, Pin, Lef); - Me = (M1 + M2 + M3 + M4) / (4 * deltaTw); - Me = hd * 3000 / Qw1; - - // Water flow - //Qw - has a given start value, taken from Merkel model - Qw2 = Qw1 - Qa1 * (w2 - w1); - Qw3 = Qw2 - Qa2 * (w3 - w2); - Qw4 = Qw3 - Qa3 * (w4 - w3); - - // Air flow - //Qa - has a given start value, taken from Merkel model - Qa2 = Qa1 * (1 + w2); - Qa3 = Qa2 * (1 + w3); - Qa4 = Qa3 * (1 + w4); - - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}), graphics={ - Ellipse( - extent={{-20,110},{20,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Line(points={{-80,-80},{82,-80},{40,60},{-40,60},{-80,-80}}, color={28,108,200}), - Ellipse( - extent={{-48,82},{-40,74}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{32,114},{40,106}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{28,78},{36,70}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{-36,110},{-28,104}}, - lineColor={28,108,200}, - fillColor={95,95,95}, - fillPattern=FillPattern.Backward), - Ellipse( - extent={{26,-44},{-28,22}}, - lineColor={28,108,200}, - fillColor={85,255,255}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120,-120},{120,120}}))); -end UnsaturatedEquations; diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 457c0481..29ffe378 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -8,6 +8,3 @@ AirCooledCondenser_with_subcooling AirCooledCondenser CoolingTowerMerkel CoolingTowerPoppe -SupersaturatedEquations -UnsaturatedEquations -CoolingTowerPoppewithSS diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo index 3bbf1908..b713a2e6 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo @@ -98,7 +98,7 @@ equation // Calibrated Parameters CoolingTower.hd = hd; - CoolingTower.Cf = Cf+10*time; + CoolingTower.Cf = Cf; CoolingTower.Q_evap = Q_evap; CoolingTower.Q_cold_in = Q_cold_in; @@ -109,7 +109,6 @@ equation CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; CoolingTower.Afr = Afr; - CoolingTower.D = D; CoolingTower.V_inlet = V_inlet; // Observable for Calibration diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo index 2b600101..5a729079 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_direct.mo @@ -37,8 +37,7 @@ model CoolingTowerPoppe_direct MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppewithSS - CoolingTower( + MultiFluid.HeatExchangers.CoolingTowerPoppe CoolingTower( air_outlet_flow(h_out_0=20400.438), air_inlet_flow(h_out_0=108262.83), w_out(start=0.0018949909)) annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo index d165fe02..d6aefafe 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo @@ -11,7 +11,7 @@ model CoolingTowerPoppe_reverse // Cold Air Inlet input Real AirInletTemp(start=15) "deg_C"; input Real airInletPress(start=1) "bar"; - input Units.Fraction cold_source_relative_humidity(start=0.2) "1"; + input Units.Fraction cold_source_relative_humidity(start=0.5) "1"; // Input for calibration input Real WaterOutletTemp(start=20) "deg_C"; @@ -37,8 +37,7 @@ model CoolingTowerPoppe_reverse MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerPoppewithSS - CoolingTower( + MultiFluid.HeatExchangers.CoolingTowerPoppe CoolingTower( air_outlet_flow(h_out_0=20400.438), air_inlet_flow(h_out_0=108262.83), w_out(start=0.0018949909)) annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); From b8f18899962a127ce3a7205e95a15355d24c8944 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Mon, 3 Jun 2024 16:26:24 +0200 Subject: [PATCH 27/34] 3/6 --- .../MultiFluid/HeatExchangers/CoolingTowerMerkel.mo | 10 +++++----- .../MultiFluid/HeatExchangers/package.order | 4 ---- .../HeatExchangers/CoolingTowerMerkel_reverse.mo | 3 --- .../Tests/Multifluid/HeatExchangers/package.order | 5 ----- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo index db49949d..4a2c5200 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo @@ -158,17 +158,17 @@ equation (P_in - P_out) = 0; - if configuration == "natural draft" then + //if configuration == "natural draft" then 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - else + //else - Q_cold_in = sqrt((rho_air_inlet - rho_air_outlet) * g * Lfi + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet); - Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + //Q_cold_in = sqrt((rho_air_inlet - rho_air_outlet) * g * Lfi + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet); + //Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - end if; + //end if; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order index 2df64fbc..29ffe378 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/package.order @@ -6,9 +6,5 @@ LMTDFuelHeater HXmoistAirWater AirCooledCondenser_with_subcooling AirCooledCondenser -<<<<<<< HEAD CoolingTowerMerkel CoolingTowerPoppe -======= -Fogging ->>>>>>> main diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo index 4c7bd163..f3e3bc5b 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo @@ -18,13 +18,11 @@ model CoolingTowerMerkel_reverse // Calibrated Parameters output Real hd(start = 0.00943308); - parameter Real Kfr = 0; // Parameters parameter Real Lfi = 15 "m"; parameter Real afi = 200 "m-1"; parameter Real Afr = 3000 "m2"; - parameter Real D = 20 "m"; parameter Real Cf = 1; output Real V_inlet(start = 13.251477) "m/s"; @@ -103,7 +101,6 @@ equation CoolingTower.Lfi = Lfi; CoolingTower.afi = afi; CoolingTower.Afr = Afr; - CoolingTower.D =D; CoolingTower.V_inlet = V_inlet; // Observable for Calibration diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order index 3e39d45b..95999597 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/package.order @@ -18,13 +18,8 @@ AirCooledCondenser_with_subcooling_faulty AirCooledCondenser_reverse AirCooledCondenser_direct AirCooledCondenser_faulty -<<<<<<< HEAD CoolingTowerMerkel_direct CoolingTowerMerkel_reverse CoolingTowerPoppe_reverse CoolingTowerPoppe_direct CoolingTowerPoppe_direct_withStartValues -======= -Fogging_reverse -Fogging_direct ->>>>>>> main From 54c1b012ac2befc6c1b44cb951c56f123e2ba0b5 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Mon, 17 Jun 2024 14:13:28 +0200 Subject: [PATCH 28/34] Forced Draft Cooling Tower --- .../HeatExchangers/CoolingTowerMerkel.mo | 15 +- .../MultiFluid/HeatExchangers/Fogging.mo | 363 - .../Partial/Machines/Fan.mo | 60 + .../Partial/Machines/package.order | 1 + ...IH_CoolingLoop_Rev5_Poppe_Start_Values.mof | 7454 +++++++++++++++++ .../CoolingTowerMerkel_direct.mo | 56 +- .../CoolingTowerMerkel_reverse.mo | 23 +- .../CoolingTowerPoppe_reverse.mo | 10 +- 8 files changed, 7576 insertions(+), 406 deletions(-) delete mode 100644 MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Fogging.mo create mode 100644 MetroscopeModelingLibrary/Partial/Machines/Fan.mo create mode 100644 MetroscopeModelingLibrary/TIH3_CoolingLoop.TIH_CoolingLoop_Rev5_Poppe_Start_Values.mof diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo index 4a2c5200..f0ad6db9 100644 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo +++ b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/CoolingTowerMerkel.mo @@ -15,6 +15,8 @@ model CoolingTowerMerkel Inputs.InputFrictionCoefficient Cf; //Friction coefficient of air Inputs.InputReal afi; //Fill material surface area per unit volume Inputs.InputReal Ratio; //Ratio used to see if results align with EDF reference paper + Inputs.InputReal efan; //Fan effiency + Units.Power W_fan; //Fan power parameter String configuration = "natural draft"; @@ -50,6 +52,7 @@ model CoolingTowerMerkel Units.HeatCapacity cp; Units.Pressure P_in; Units.Pressure P_out; + Units.Pressure deltaP_fan; //Pressure change across fan constant Real g(unit="m/s2") = Modelica.Constants.g_n; @@ -158,17 +161,19 @@ equation (P_in - P_out) = 0; - //if configuration == "natural draft" then + deltaP_fan = (W_fan * efan)/(abs(V_inlet) * Afr); + + if configuration == "natural draft" then 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (rho_air_inlet - rho_air_outlet) * g * Lfi; Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - //else + else - //Q_cold_in = sqrt((rho_air_inlet - rho_air_outlet) * g * Lfi + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet); - //Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); + 0.5 * 0.5 *(rho_air_inlet + rho_air_outlet) * Cf * abs(V_inlet) * V_inlet = (W_fan * efan)/(abs(V_inlet) * Afr); + Q_cold_in = (V_inlet * Afr * rho_air_inlet * (1 - Air_inlet.Xi_in[1])); - //end if; + end if; connect(C_hot_in, hot_side_cooling.C_in) annotation (Line(points={{-90,0},{-70,0}}, color={28,108,200})); connect(inputflowmodel.C_out, Air_inlet.C_in) annotation (Line(points={{0,28},{0,23}}, color={85,170,255})); diff --git a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Fogging.mo b/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Fogging.mo deleted file mode 100644 index 046c5cd1..00000000 --- a/MetroscopeModelingLibrary/MultiFluid/HeatExchangers/Fogging.mo +++ /dev/null @@ -1,363 +0,0 @@ -within MetroscopeModelingLibrary.MultiFluid.HeatExchangers; -model Fogging - package FlueGasesMedium = - MetroscopeModelingLibrary.Utilities.Media.FlueGasesMedium; - package WaterSteamMedium = - MetroscopeModelingLibrary.Utilities.Media.WaterSteamMedium; - import MetroscopeModelingLibrary.Utilities.Units; - import MetroscopeModelingLibrary.Utilities.Units.Inputs; - - // Boundary Conditions - Inputs.InputMassFlowRate Q_fg(start=Q_fg_0) "Inlet flue gases mass flow rate"; - - // Parameters - Inputs.InputMassFraction x_vapor(start=1); // Vapor mass fraction - - // Definitions - Units.SpecificEnthalpy h_vap_sat; - Units.SpecificEnthalpy h_liq_sat; - Units.MassFlowRate Q_w(start=Q_w_0) "Inlet water mass flow rate"; - - // Initialization parameters - // Flow Rates - parameter Units.MassFlowRate Q_fg_0 = 500; - parameter Units.MassFlowRate Q_w_0 = 1; - - - WaterSteam.Connectors.Inlet C_water_in(Q(start=Q_w_0)) annotation (Placement(transformation(extent={{-10,50},{10,70}}), iconTransformation(extent={{-10,50},{10,70}}))); - WaterSteam.Pipes.HeatLoss water_evaporation(Q_0=Q_w_0) annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-14}))); - WaterSteam.BoundaryConditions.Sink sink_w annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,-44}))); - FlueGases.Connectors.Inlet C_fg_inlet(Q(start=Q_fg_0)) annotation (Placement(transformation(extent={{-110,-10},{-90,10}}), iconTransformation(extent={{-110,-10},{-90,10}}))); - FlueGases.Pipes.HeatLoss evaporative_cooling(Q_0=Q_fg_0) annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); - FlueGases.BoundaryConditions.Source source_fg annotation (Placement(transformation(extent={{-10,-10},{10,10}}, - rotation=270, - origin={40,44}))); - FlueGases.Connectors.Outlet C_fg_out(Q(start=-Q_fg_0)) annotation (Placement(transformation(extent={{90,-10},{110,10}}), iconTransformation(extent={{90,-10},{110,10}}))); - WaterSteam.Pipes.PressureCut fogging_nozzle_w(Q_0=Q_w_0) annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={0,14}))); - FlueGases.Pipes.PressureCut pressureCut annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=270, - origin={40,20}))); -equation - - // Boundary Conditions - evaporative_cooling.Q = Q_fg; - - // Definitions - h_vap_sat = WaterSteamMedium.dewEnthalpy(WaterSteamMedium.setSat_p(water_evaporation.P_in)); - h_liq_sat = WaterSteamMedium.bubbleEnthalpy(WaterSteamMedium.setSat_p(water_evaporation.P_in)); - fogging_nozzle_w.Q = Q_w; - - // Parameters - x_vapor = (water_evaporation.h_out - h_liq_sat)/(h_vap_sat - h_liq_sat); - - // Energy balance - water_evaporation.W + evaporative_cooling.W = 0; - - // Mixing - source_fg.P_out = sink_w.P_in; - source_fg.Q_out = - sink_w.Q_in; - source_fg.T_out = evaporative_cooling.T_out; - source_fg.Xi_out[1] = 0; - source_fg.Xi_out[2] = 0; - source_fg.Xi_out[3] = 1; - source_fg.Xi_out[4] = 0; - source_fg.Xi_out[5] = 0; - water_evaporation.P_in = evaporative_cooling.P_in; - - - connect(evaporative_cooling.C_out, C_fg_out) annotation (Line(points={{-40,0},{100,0}}, - color={95,95,95})); - connect(water_evaporation.C_out, sink_w.C_in) annotation (Line(points={{-1.77636e-15,-24},{-1.77636e-15,-27.5},{8.88178e-16,-27.5},{8.88178e-16,-39}}, - color={28,108,200})); - connect(fogging_nozzle_w.C_out, water_evaporation.C_in) annotation (Line(points={{-1.77636e-15,4},{-1.77636e-15,-1},{1.77636e-15,-1},{1.77636e-15,-4}}, color={28,108,200})); - connect(fogging_nozzle_w.C_in, C_water_in) annotation (Line(points={{1.77636e-15,24},{1.77636e-15,41},{0,41},{0,60}}, color={28,108,200})); - connect(source_fg.C_out, pressureCut.C_in) annotation (Line(points={{40,39},{40,30}}, color={95,95,95})); - connect(pressureCut.C_out, C_fg_out) annotation (Line(points={{40,10},{40,0},{100,0}}, color={95,95,95})); - connect(evaporative_cooling.C_in, C_fg_inlet) annotation (Line(points={{-60,0},{-100,0}}, color={95,95,95})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ - Rectangle( - extent={{-100,60},{100,-60}}, - lineColor={95,95,95}, - fillColor={175,175,175}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{-2,60},{2,-52}}, - lineColor={28,108,200}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Line(points={{2,40},{12,46}}, color={28,108,200}), - Line(points={{2,40},{12,40}}, color={28,108,200}), - Line(points={{2,40},{12,34}}, color={28,108,200}), - Line(points={{2,0},{12,6}}, color={28,108,200}), - Line(points={{2,0},{12,0}}, color={28,108,200}), - Line(points={{2,0},{12,-6}}, color={28,108,200}), - Line(points={{2,20},{12,26}}, color={28,108,200}), - Line(points={{2,20},{12,20}}, color={28,108,200}), - Line(points={{2,20},{12,14}}, color={28,108,200}), - Line(points={{2,-20},{12,-14}}, color={28,108,200}), - Line(points={{2,-20},{12,-20}}, color={28,108,200}), - Line(points={{2,-20},{12,-26}}, color={28,108,200}), - Ellipse( - extent={{20,40},{22,38}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{32,34},{34,32}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{42,26},{44,24}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{48,24},{50,22}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{24,18},{26,16}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{26,6},{28,4}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{36,8},{38,6}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{26,-4},{28,-6}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{44,8},{46,6}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{56,2},{58,0}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{66,-6},{68,-8}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{72,-8},{74,-10}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{48,-14},{50,-16}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{36,0},{38,-2}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{46,-8},{48,-10}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{52,-10},{54,-12}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{28,-16},{30,-18}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{66,8},{68,6}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{64,14},{66,12}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{70,12},{72,10}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{50,12},{52,10}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{36,18},{38,16}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{58,24},{60,22}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{68,30},{70,28}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{66,36},{68,34}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{72,34},{74,32}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Line(points={{2,-40},{12,-34}}, color={28,108,200}), - Line(points={{2,-40},{12,-40}}, color={28,108,200}), - Line(points={{2,-40},{12,-46}}, color={28,108,200}), - Ellipse( - extent={{30,-32},{32,-34}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{38,-32},{40,-34}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{50,-38},{52,-40}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{30,-40},{32,-42}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{44,-28},{46,-30}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{30,-22},{32,-24}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{58,-30},{60,-32}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{56,-24},{58,-26}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{62,-26},{64,-28}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{74,-26},{76,-28}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{84,-34},{86,-36}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{90,-36},{92,-38}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{66,-42},{68,-44}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{70,-38},{72,-40}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{84,-20},{86,-22}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{76,8},{78,6}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{74,14},{76,12}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{80,12},{82,10}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{42,40},{44,38}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{40,46},{42,44}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{46,44},{48,42}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{52,40},{54,38}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{50,46},{52,44}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{56,44},{58,42}}, - lineColor={95,95,95}, - fillColor={28,108,200}, - fillPattern=FillPattern.Solid)}), Diagram(coordinateSystem(preserveAspectRatio=false))); -end Fogging; diff --git a/MetroscopeModelingLibrary/Partial/Machines/Fan.mo b/MetroscopeModelingLibrary/Partial/Machines/Fan.mo new file mode 100644 index 00000000..b0982460 --- /dev/null +++ b/MetroscopeModelingLibrary/Partial/Machines/Fan.mo @@ -0,0 +1,60 @@ +within MetroscopeModelingLibrary.Partial.Machines; +partial model Fan + extends BaseClasses.FlowModel(P_out_0=10e5) annotation(IconMap(primitivesVisible=false)); + extends MetroscopeModelingLibrary.Utilities.Icons.Machines.PumpIcon; + + import MetroscopeModelingLibrary.Utilities.Units; + import MetroscopeModelingLibrary.Utilities.Units.Inputs; + import MetroscopeModelingLibrary.Utilities.Constants; + + Real VRotn(start=1400, min=0, nominal=2000) "Nominal rotational speed"; + Inputs.InputReal a1(start=0) "x^2 coef. of the fan characteristics hn = f(vol_flow) (s2/m5)"; + Inputs.InputReal a2(start=0) "x coef. of the fan characteristics hn = f(vol_flow) (s/m2)"; + Inputs.InputHeight a3(start=10) "Constant coef. of the fan characteristics hn = f(vol_flow) (m)"; + Inputs.InputReal b1(start=0) "x^2 coef. of the fan efficiency characteristics rh = f(vol_flow) (s2/m6)"; + Inputs.InputReal b2(start=0) "x coef. of the fan efficiency characteristics rh = f(vol_flow) (s/m3)"; + Inputs.InputYield b3(start=0.8) "Constant coef. of the fan efficiency characteristics rh = f(vol_flow) (s.u.)"; + + Inputs.InputYield rm(start=0.85) "Product of the fan mechanical and electrical efficiencies"; + Inputs.InputYield rh_min(start=0.20) "Minimum efficiency to avoid zero crossings"; + + Units.Yield rh "Hydraulic efficiency"; + Units.Height hn(start=10) "Fan head"; + Units.Fraction R(start=1) "Reduced rotational speed"; + + Units.Power Wh "Hydraulic power"; + Units.PositivePower Wm "Mechanical power"; + + Modelica.Blocks.Interfaces.RealInput VRot "Pump rotational speed" annotation (Placement( + transformation(extent={{-20,-20},{20,20}}, + rotation=270, + origin={0,-98}), iconTransformation( + extent={{-20,-20},{20,20}}, + rotation=90, + origin={0,-120}))); + Power.Connectors.Inlet C_power "Electrical alimentation of the pump" annotation (Placement(transformation( + extent={{-12,-12},{12,12}}, + rotation=-90, + origin={0,108}), iconTransformation( + extent={{-12,-12},{12,12}}, + rotation=-90, + origin={0,108}))); +equation + // internal variables + R = VRot/VRotn; // Reduced rotational speed + + // Fan characteristics + hn = a1*Qv^2 + a2*Qv*R + a3*R^2; + rh =noEvent(max(if (R > 1e-5) then b1*Qv^2/R^2 + b2*Qv/R + b3 else b3, rh_min)); + + // Outlet variation + DP = rho*Constants.g*hn; + DH = Constants.g*hn/rh; + + // Mechanical power + Wm = C_power.W; // C_power.W is positive since it is power fed to the component + Wm = W/rm; // Wm is positive since it is the power produced by the fan + + // Hydraulic power + Wh = Qv * DP / rh; // = Qv*rho * g*hn/rh = Q * DH = W +end Fan; diff --git a/MetroscopeModelingLibrary/Partial/Machines/package.order b/MetroscopeModelingLibrary/Partial/Machines/package.order index de88bb38..86501df5 100644 --- a/MetroscopeModelingLibrary/Partial/Machines/package.order +++ b/MetroscopeModelingLibrary/Partial/Machines/package.order @@ -1 +1,2 @@ Pump +Fan diff --git a/MetroscopeModelingLibrary/TIH3_CoolingLoop.TIH_CoolingLoop_Rev5_Poppe_Start_Values.mof b/MetroscopeModelingLibrary/TIH3_CoolingLoop.TIH_CoolingLoop_Rev5_Poppe_Start_Values.mof new file mode 100644 index 00000000..1607b098 --- /dev/null +++ b/MetroscopeModelingLibrary/TIH3_CoolingLoop.TIH_CoolingLoop_Rev5_Poppe_Start_Values.mof @@ -0,0 +1,7454 @@ +model TIH_CoolingLoop_Rev5_Poppe_Start_Values + parameter Boolean show_causality = true "true to show causality, false to hide it"; + parameter Boolean display_output = true "Used to switch ON or OFF output display"; + input Real Hotside_Temp(start = 40) "deg_C"; + input Real VCT178(start = 0.055) "bar"; + input Real CEC180(start = 18.9) "deg_C"; + input Real Pressure1(start = 1) "bar"; + input Real AirInlet_Temp(start = 10) "deg_C"; + input Real AirInlet_Press(start = 1) "bar"; + input MetroscopeModelingLibrary.Utilities.Units.Fraction AirSource_relative_humidity + (start = 0.5) "1"; + input Real Q_reject_press(start = 1) "bar"; + input Real CEC231(start = 19) "deg_C"; + input Real Coldside_Press(start = 3) "bar"; + input Real CEC235(start = 31) "deg_C"; + input Real CEC194(start = 18.9) "deg_C"; + input Real V423_opening(start = 0.35); + input Real V422_opening(start = 0.15); + input Real V421_opening(start = 0.15); + parameter Real LOA_Kth = 1829028; + parameter String LOA.QCp_max_side = "cold"; + constant Real LOA.R(unit = "J/(mol.K)") = 8.31446261815324 "ideal gas constant"; + parameter Boolean LOA.faulty = false; + parameter MetroscopeModelingLibrary.Utilities.Units.MassFlowRate LOA.Q_cold_0 + = 5000; + parameter MetroscopeModelingLibrary.Utilities.Units.MassFlowRate LOA.Q_hot_0 + = 1000; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.Psat_0 = + 5000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.P_cold_in_0 = + 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.P_cold_out_0 + = 400000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.T_cold_in_0 = 288.15; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.T_cold_out_0 = 298.15; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.T_hot_in_0 + = LOA.Tsat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.T_hot_out_0 = LOA.Tsat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.h_cold_in_0 = 50000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.h_cold_out_0 = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.h_hot_in_0 = 2000000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.h_liq_sat_0 = Modelica.Media.Water.WaterIF97_ph.bubbleEnthalpy_Unique7( + Modelica.Media.Water.WaterIF97_ph.setSat_p_Unique8(LOA.Psat_0)); + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.Tsat_0 = + Modelica.Media.Water.WaterIF97_ph.saturationTemperature_Unique9(LOA.Psat_0); + constant MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.water_height_DP_0 = 9000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.cold_side_pipe.T_in_0 = LOA.cold_side_pipe.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.cold_side_pipe.T_out_0 = LOA.cold_side_pipe.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side_pipe.P_in_0 + = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side_pipe.P_out_0 + = 400000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.cold_side_pipe.DP_0 = LOA.cold_side_pipe.P_out_0-LOA.cold_side_pipe.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.cold_side_pipe.h_in_0 = LOA.cold_side_pipe.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.cold_side_pipe.h_out_0 = LOA.cold_side_pipe.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side_pipe.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.cold_side_pipe.Q_0 = LOA.Q_cold_0 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.cold_side_pipe.T_0 = LOA.T_cold_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.cold_side_pipe.h_0 = LOA.h_cold_in_0; + parameter Boolean LOA.cold_side_pipe.faulty = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.hot_side.T_in_0 = LOA.Tsat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.hot_side.T_out_0 = LOA.Tsat_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.P_in_0 + = 5000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.P_out_0 + = 5000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.hot_side.DP_0 = LOA.hot_side.P_out_0-LOA.hot_side.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.hot_side.h_in_0 = LOA.h_hot_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.hot_side.h_out_0 = LOA.h_liq_sat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density LOA.hot_side.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.hot_side.Q_0 = LOA.Q_hot_0 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.P_0 + = 5000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.cold_side.T_in_0 = LOA.T_cold_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.cold_side.T_out_0 = LOA.T_cold_out_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.P_in_0 + = 400000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.P_out_0 + = 400000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.cold_side.DP_0 = LOA.cold_side.P_out_0-LOA.cold_side.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.cold_side.h_in_0 = LOA.h_cold_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.cold_side.h_out_0 = LOA.h_cold_out_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.cold_side.Q_0 = LOA.Q_cold_0 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.P_0 + = 400000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.water_height_pipe.T_in_0 = LOA.water_height_pipe.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.water_height_pipe.T_out_0 = LOA.water_height_pipe.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.water_height_pipe.P_in_0 + = 5000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.water_height_pipe.P_out_0 + = 14000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.water_height_pipe.DP_0 = LOA.water_height_pipe.P_out_0-LOA.water_height_pipe.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.water_height_pipe.h_in_0 = LOA.water_height_pipe.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.water_height_pipe.h_out_0 = LOA.water_height_pipe.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density LOA.water_height_pipe.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.water_height_pipe.Q_0 = LOA.Q_hot_0 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.water_height_pipe.T_0 = LOA.Tsat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.water_height_pipe.h_0 = LOA.h_liq_sat_0; + parameter Boolean LOA.water_height_pipe.faulty = false; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.incondensables_in.T_in_0 = LOA.incondensables_in.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.incondensables_in.T_out_0 = LOA.incondensables_in.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_in.P_in_0 + = 5000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_in.P_out_0 + = 5000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.incondensables_in.DP_0 = LOA.incondensables_in.P_out_0-LOA.incondensables_in.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.incondensables_in.h_in_0 = LOA.incondensables_in.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.incondensables_in.h_out_0 = LOA.incondensables_in.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_in.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.incondensables_in.Q_0 = LOA.Q_hot_0 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.incondensables_in.T_0 = LOA.Tsat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.incondensables_in.h_0 = LOA.h_hot_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.incondensables_out.T_in_0 = LOA.incondensables_out.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.incondensables_out.T_out_0 = LOA.incondensables_out.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_out.P_in_0 + = 5000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_out.P_out_0 + = 5000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.incondensables_out.DP_0 = LOA.incondensables_out.P_out_0- + LOA.incondensables_out.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.incondensables_out.h_in_0 = LOA.incondensables_out.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.incondensables_out.h_out_0 = LOA.incondensables_out.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_out.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.incondensables_out.Q_0 = LOA.Q_hot_0 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + LOA.incondensables_out.T_0 = LOA.Tsat_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + LOA.incondensables_out.h_0 = LOA.h_liq_sat_0; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + VCT178_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + VCT178_sensor.h_0 = 500000.0; + parameter Boolean VCT178_sensor.faulty_flow_rate = false; + parameter String VCT178_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String VCT178_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + VCT178_sensor.flow_model.T_in_0 = VCT178_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + VCT178_sensor.flow_model.T_out_0 = VCT178_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + VCT178_sensor.flow_model.DP_0 = VCT178_sensor.flow_model.P_out_0- + VCT178_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + VCT178_sensor.flow_model.h_in_0 = VCT178_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + VCT178_sensor.flow_model.h_out_0 = VCT178_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density VCT178_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + VCT178_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + VCT178_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + VCT178_sensor.flow_model.h_0 = 500000.0; + parameter String VCT178_sensor.display_unit = "barA" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Temp_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Temp_sensor.h_0 = 500000.0; + parameter Boolean Hotside_Temp_sensor.faulty_flow_rate = false; + parameter String Hotside_Temp_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String Hotside_Temp_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Temp_sensor.flow_model.T_in_0 = Hotside_Temp_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Temp_sensor.flow_model.T_out_0 = Hotside_Temp_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Hotside_Temp_sensor.flow_model.DP_0 = Hotside_Temp_sensor.flow_model.P_out_0 + -Hotside_Temp_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Temp_sensor.flow_model.h_in_0 = Hotside_Temp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Temp_sensor.flow_model.h_out_0 = Hotside_Temp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Temp_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Temp_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Temp_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Temp_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Temp_sensor.T_0 = 300; + parameter String Hotside_Temp_sensor.display_unit = "degC" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Flow_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Flow_sensor.h_0 = 500000.0; + parameter Boolean Hotside_Flow_sensor.faulty_flow_rate = Hotside_Flow_sensor.faulty; + parameter String Hotside_Flow_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String Hotside_Flow_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Flow_sensor.flow_model.T_in_0 = Hotside_Flow_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Flow_sensor.flow_model.T_out_0 = Hotside_Flow_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Hotside_Flow_sensor.flow_model.DP_0 = Hotside_Flow_sensor.flow_model.P_out_0 + -Hotside_Flow_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Flow_sensor.flow_model.h_in_0 = Hotside_Flow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Flow_sensor.flow_model.h_out_0 = Hotside_Flow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Flow_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Flow_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Hotside_Flow_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Hotside_Flow_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + Hotside_Flow_sensor.Qv_0 = 0.1; + parameter Boolean Hotside_Flow_sensor.faulty = false; + parameter String Hotside_Flow_sensor.display_unit = "kg/s" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Flow_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Flow_sensor.h_0 = 500000.0; + parameter Boolean Coldside_Flow_sensor.faulty_flow_rate = Coldside_Flow_sensor.faulty; + parameter String Coldside_Flow_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String Coldside_Flow_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Coldside_Flow_sensor.flow_model.T_in_0 = Coldside_Flow_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Coldside_Flow_sensor.flow_model.T_out_0 = Coldside_Flow_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Coldside_Flow_sensor.flow_model.DP_0 = Coldside_Flow_sensor.flow_model.P_out_0 + -Coldside_Flow_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Flow_sensor.flow_model.h_in_0 = Coldside_Flow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Flow_sensor.flow_model.h_out_0 = Coldside_Flow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Flow_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Flow_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Coldside_Flow_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Flow_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + Coldside_Flow_sensor.Qv_0 = 0.1; + parameter Boolean Coldside_Flow_sensor.faulty = false; + parameter String Coldside_Flow_sensor.display_unit = "kg/s" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC231_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC231_sensor.h_0 = 500000.0; + parameter Boolean CEC231_sensor.faulty_flow_rate = false; + parameter String CEC231_sensor.sensor_function = "Calibration" + "Specify if the sensor is a BC or used for calibration"; + parameter String CEC231_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC231_sensor.flow_model.T_in_0 = CEC231_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC231_sensor.flow_model.T_out_0 = CEC231_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC231_sensor.flow_model.DP_0 = CEC231_sensor.flow_model.P_out_0- + CEC231_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC231_sensor.flow_model.h_in_0 = CEC231_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC231_sensor.flow_model.h_out_0 = CEC231_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CEC231_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC231_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC231_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC231_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC231_sensor.T_0 = 300; + parameter String CEC231_sensor.display_unit = "degC" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Press_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Press_sensor.h_0 = 500000.0; + parameter Boolean Coldside_Press_sensor.faulty_flow_rate = false; + parameter String Coldside_Press_sensor.sensor_function = "Calibration" + "Specify if the sensor is a BC or used for calibration"; + parameter String Coldside_Press_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Coldside_Press_sensor.flow_model.T_in_0 = Coldside_Press_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Coldside_Press_sensor.flow_model.T_out_0 = Coldside_Press_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Coldside_Press_sensor.flow_model.DP_0 = Coldside_Press_sensor.flow_model.P_out_0 + -Coldside_Press_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Press_sensor.flow_model.h_in_0 = Coldside_Press_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Press_sensor.flow_model.h_out_0 = Coldside_Press_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Press_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Press_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Coldside_Press_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Coldside_Press_sensor.flow_model.h_0 = 500000.0; + parameter String Coldside_Press_sensor.display_unit = "barA" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC235_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC235_sensor.h_0 = 500000.0; + parameter Boolean CEC235_sensor.faulty_flow_rate = false; + parameter String CEC235_sensor.sensor_function = "Calibration" + "Specify if the sensor is a BC or used for calibration"; + parameter String CEC235_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC235_sensor.flow_model.T_in_0 = CEC235_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC235_sensor.flow_model.T_out_0 = CEC235_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC235_sensor.flow_model.DP_0 = CEC235_sensor.flow_model.P_out_0- + CEC235_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC235_sensor.flow_model.h_in_0 = CEC235_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC235_sensor.flow_model.h_out_0 = CEC235_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CEC235_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC235_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC235_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC235_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC235_sensor.T_0 = 300; + parameter String CEC235_sensor.display_unit = "degC" "Specify the display unit"; + parameter Integer CoolingTower.N_step = 10; + constant Real CoolingTower.gr(unit = "m/s2") = 9.80665; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_inlet_flow.T_in_0 = CoolingTower.water_inlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_inlet_flow.T_out_0 = CoolingTower.water_inlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_inlet_flow.DP_0 = CoolingTower.water_inlet_flow.P_out_0- + CoolingTower.water_inlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_inlet_flow.h_in_0 = CoolingTower.water_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_inlet_flow.h_out_0 = CoolingTower.water_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_inlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_inlet_flow.h_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_outlet_flow.T_in_0 = CoolingTower.water_outlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_outlet_flow.T_out_0 = CoolingTower.water_outlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_outlet_flow.DP_0 = CoolingTower.water_outlet_flow.P_out_0 + -CoolingTower.water_outlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_outlet_flow.h_in_0 = CoolingTower.water_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_outlet_flow.h_out_0 = CoolingTower.water_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_outlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.water_outlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.water_outlet_flow.h_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_inlet_flow.T_in_0 = CoolingTower.air_inlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_inlet_flow.T_out_0 = CoolingTower.air_inlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_inlet_flow.DP_0 = CoolingTower.air_inlet_flow.P_out_0- + CoolingTower.air_inlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_inlet_flow.h_in_0 = CoolingTower.air_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_inlet_flow.h_out_0 = CoolingTower.air_inlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_inlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_inlet_flow.h_0 = 500000.0; + parameter Real CoolingTower.air_inlet.relative_humidity_0(min = 0.0, max = 1.0) + = 0.1; + parameter Real CoolingTower.air_outlet.relative_humidity_0(min = 0.0, max = + 1.0) = 0.1; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_outlet_flow.T_in_0 = CoolingTower.air_outlet_flow.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_outlet_flow.T_out_0 = CoolingTower.air_outlet_flow.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_outlet_flow.DP_0 = CoolingTower.air_outlet_flow.P_out_0- + CoolingTower.air_outlet_flow.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_outlet_flow.h_in_0 = CoolingTower.air_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_outlet_flow.h_out_0 = CoolingTower.air_outlet_flow.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_outlet_flow.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CoolingTower.air_outlet_flow.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CoolingTower.air_outlet_flow.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC194_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC194_sensor.h_0 = 500000.0; + parameter Boolean CEC194_sensor.faulty_flow_rate = false; + parameter String CEC194_sensor.sensor_function = "Calibration" + "Specify if the sensor is a BC or used for calibration"; + parameter String CEC194_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC194_sensor.flow_model.T_in_0 = CEC194_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC194_sensor.flow_model.T_out_0 = CEC194_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC194_sensor.flow_model.DP_0 = CEC194_sensor.flow_model.P_out_0- + CEC194_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC194_sensor.flow_model.h_in_0 = CEC194_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC194_sensor.flow_model.h_out_0 = CEC194_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CEC194_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC194_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC194_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC194_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC194_sensor.T_0 = 300; + parameter String CEC194_sensor.display_unit = "degC" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC197_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC197_sensor.h_0 = 500000.0; + parameter Boolean CEC197_sensor.faulty_flow_rate = CEC197_sensor.faulty; + parameter String CEC197_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String CEC197_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC197_sensor.flow_model.T_in_0 = CEC197_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC197_sensor.flow_model.T_out_0 = CEC197_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC197_sensor.flow_model.DP_0 = CEC197_sensor.flow_model.P_out_0- + CEC197_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC197_sensor.flow_model.h_in_0 = CEC197_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC197_sensor.flow_model.h_out_0 = CEC197_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CEC197_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC197_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC197_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC197_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + CEC197_sensor.Qv_0 = 0.1; + parameter Boolean CEC197_sensor.faulty = false; + parameter String CEC197_sensor.display_unit = "kg/s" "Specify the display unit"; + parameter Real AirSource.relative_humidity_0(min = 0.0, max = 1.0) = 0.1; + parameter Real sink.relative_humidity_0(min = 0.0, max = 1.0) = 0.1; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Flow_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Flow_sensor.h_0 = 500000.0; + parameter Boolean AirInlet_Flow_sensor.faulty_flow_rate = AirInlet_Flow_sensor.faulty; + parameter String AirInlet_Flow_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String AirInlet_Flow_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Flow_sensor.flow_model.T_in_0 = AirInlet_Flow_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Flow_sensor.flow_model.T_out_0 = AirInlet_Flow_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInlet_Flow_sensor.flow_model.DP_0 = AirInlet_Flow_sensor.flow_model.P_out_0 + -AirInlet_Flow_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Flow_sensor.flow_model.h_in_0 = AirInlet_Flow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Flow_sensor.flow_model.h_out_0 = AirInlet_Flow_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Flow_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Flow_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Flow_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Flow_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + AirInlet_Flow_sensor.Qv_0 = 0.1; + parameter Boolean AirInlet_Flow_sensor.faulty = false; + parameter String AirInlet_Flow_sensor.display_unit = "kg/s" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Temp_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Temp_sensor.h_0 = 500000.0; + parameter Boolean AirInlet_Temp_sensor.faulty_flow_rate = false; + parameter String AirInlet_Temp_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String AirInlet_Temp_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Temp_sensor.flow_model.T_in_0 = AirInlet_Temp_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Temp_sensor.flow_model.T_out_0 = AirInlet_Temp_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInlet_Temp_sensor.flow_model.DP_0 = AirInlet_Temp_sensor.flow_model.P_out_0 + -AirInlet_Temp_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Temp_sensor.flow_model.h_in_0 = AirInlet_Temp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Temp_sensor.flow_model.h_out_0 = AirInlet_Temp_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Temp_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Temp_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Temp_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Temp_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Temp_sensor.T_0 = 300; + parameter String AirInlet_Temp_sensor.display_unit = "degC" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Press_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Press_sensor.h_0 = 500000.0; + parameter Boolean AirInlet_Press_sensor.faulty_flow_rate = false; + parameter String AirInlet_Press_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String AirInlet_Press_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Press_sensor.flow_model.T_in_0 = AirInlet_Press_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Press_sensor.flow_model.T_out_0 = AirInlet_Press_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInlet_Press_sensor.flow_model.DP_0 = AirInlet_Press_sensor.flow_model.P_out_0 + -AirInlet_Press_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Press_sensor.flow_model.h_in_0 = AirInlet_Press_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Press_sensor.flow_model.h_out_0 = AirInlet_Press_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Press_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Press_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + AirInlet_Press_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + AirInlet_Press_sensor.flow_model.h_0 = 500000.0; + parameter String AirInlet_Press_sensor.display_unit = "barA" "Specify the display unit"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + V423_valve.T_in_0 = V423_valve.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + V423_valve.T_out_0 = V423_valve.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure V423_valve.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure V423_valve.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + V423_valve.DP_0 = V423_valve.P_out_0-V423_valve.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V423_valve.h_in_0 = V423_valve.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V423_valve.h_out_0 = V423_valve.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density V423_valve.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + V423_valve.Q_0 = 1000 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature V423_valve.T_0 + = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V423_valve.h_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + V422_valve.T_in_0 = V422_valve.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + V422_valve.T_out_0 = V422_valve.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure V422_valve.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure V422_valve.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + V422_valve.DP_0 = V422_valve.P_out_0-V422_valve.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V422_valve.h_in_0 = V422_valve.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V422_valve.h_out_0 = V422_valve.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density V422_valve.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + V422_valve.Q_0 = 1000 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature V422_valve.T_0 + = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V422_valve.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Percentage V423_opening_sensor.Opening_pc_0 + (unit = "1") = 15; + parameter String V423_opening_sensor.sensor_function = "Calibration" + "Specify if the sensor is a BC or used for calibration"; + parameter String V423_opening_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + constant MetroscopeModelingLibrary.Utilities.Units.Percentage V422_opening_sensor.Opening_pc_0 + (unit = "1") = 15; + parameter String V422_opening_sensor.sensor_function = "Calibration" + "Specify if the sensor is a BC or used for calibration"; + parameter String V422_opening_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_sensor.h_0 = 500000.0; + parameter Boolean Q_reject_sensor.faulty_flow_rate = Q_reject_sensor.faulty; + parameter String Q_reject_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String Q_reject_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_reject_sensor.flow_model.T_in_0 = Q_reject_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_reject_sensor.flow_model.T_out_0 = Q_reject_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Q_reject_sensor.flow_model.DP_0 = Q_reject_sensor.flow_model.P_out_0- + Q_reject_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_sensor.flow_model.h_in_0 = Q_reject_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_sensor.flow_model.h_out_0 = Q_reject_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_reject_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + Q_reject_sensor.Qv_0 = 0.1; + parameter Boolean Q_reject_sensor.faulty = false; + parameter String Q_reject_sensor.display_unit = "kg/s" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_press_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_press_sensor.h_0 = 500000.0; + parameter Boolean Q_reject_press_sensor.faulty_flow_rate = false; + parameter String Q_reject_press_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String Q_reject_press_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_reject_press_sensor.flow_model.T_in_0 = Q_reject_press_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_reject_press_sensor.flow_model.T_out_0 = Q_reject_press_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Q_reject_press_sensor.flow_model.DP_0 = Q_reject_press_sensor.flow_model.P_out_0 + -Q_reject_press_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_press_sensor.flow_model.h_in_0 = Q_reject_press_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_press_sensor.flow_model.h_out_0 = Q_reject_press_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_press_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_press_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_reject_press_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_reject_press_sensor.flow_model.h_0 = 500000.0; + parameter String Q_reject_press_sensor.display_unit = "barA" "Specify the display unit"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature Pump.T_in_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature Pump.T_out_0 + = 300; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Pump.P_in_0 = + 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Pump.P_out_0 = + 1000000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Pump.DP_0 = Pump.P_out_0-Pump.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Pump.h_in_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Pump.h_out_0 = 500000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Pump.rho_0 = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Pump.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC180_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC180_sensor.h_0 = 500000.0; + parameter Boolean CEC180_sensor.faulty_flow_rate = false; + parameter String CEC180_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String CEC180_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC180_sensor.flow_model.T_in_0 = CEC180_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC180_sensor.flow_model.T_out_0 = CEC180_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC180_sensor.flow_model.DP_0 = CEC180_sensor.flow_model.P_out_0- + CEC180_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC180_sensor.flow_model.h_in_0 = CEC180_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC180_sensor.flow_model.h_out_0 = CEC180_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density CEC180_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC180_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC180_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + CEC180_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Temperature + CEC180_sensor.T_0 = 300; + parameter String CEC180_sensor.display_unit = "degC" "Specify the display unit"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Press1_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Press1_sensor.h_0 = 500000.0; + parameter Boolean Press1_sensor.faulty_flow_rate = false; + parameter String Press1_sensor.sensor_function = "BC" "Specify if the sensor is a BC or used for calibration"; + parameter String Press1_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Press1_sensor.flow_model.T_in_0 = Press1_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Press1_sensor.flow_model.T_out_0 = Press1_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Press1_sensor.flow_model.DP_0 = Press1_sensor.flow_model.P_out_0- + Press1_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Press1_sensor.flow_model.h_in_0 = Press1_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Press1_sensor.flow_model.h_out_0 = Press1_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Press1_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Press1_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Press1_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Press1_sensor.flow_model.h_0 = 500000.0; + parameter String Press1_sensor.display_unit = "barA" "Specify the display unit"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + V421_valve.T_in_0 = V421_valve.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + V421_valve.T_out_0 = V421_valve.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure V421_valve.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure V421_valve.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + V421_valve.DP_0 = V421_valve.P_out_0-V421_valve.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V421_valve.h_in_0 = V421_valve.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V421_valve.h_out_0 = V421_valve.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density V421_valve.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + V421_valve.Q_0 = 1000 "Inlet Mass flow rate"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature V421_valve.T_0 + = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + V421_valve.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Percentage V421_opening_sensor.Opening_pc_0 + (unit = "1") = 15; + parameter String V421_opening_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String V421_opening_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + constant MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_recirculation_sensor.Q_0 = 100; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_recirculation_sensor.h_0 = 500000.0; + parameter Boolean Q_recirculation_sensor.faulty_flow_rate = Q_recirculation_sensor.faulty; + parameter String Q_recirculation_sensor.sensor_function = "Unidentified" + "Specify if the sensor is a BC or used for calibration"; + parameter String Q_recirculation_sensor.causality = "" "Specify which parameter is calibrated by this sensor"; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_recirculation_sensor.flow_model.T_in_0 = Q_recirculation_sensor.flow_model.T_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_recirculation_sensor.flow_model.T_out_0 = Q_recirculation_sensor.flow_model.T_0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.P_in_0 + = 100000.0; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.P_out_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Q_recirculation_sensor.flow_model.DP_0 = Q_recirculation_sensor.flow_model.P_out_0 + -Q_recirculation_sensor.flow_model.P_in_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_recirculation_sensor.flow_model.h_in_0 = Q_recirculation_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_recirculation_sensor.flow_model.h_out_0 = Q_recirculation_sensor.flow_model.h_0; + parameter MetroscopeModelingLibrary.Utilities.Units.Density Q_recirculation_sensor.flow_model.rho_0 + = 998; + parameter MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_recirculation_sensor.flow_model.Q_0 = 1000 "Inlet Mass flow rate"; + constant MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.P_0 + = 100000.0; + parameter MetroscopeModelingLibrary.Utilities.Units.Temperature + Q_recirculation_sensor.flow_model.T_0 = 300; + parameter MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy + Q_recirculation_sensor.flow_model.h_0 = 500000.0; + constant MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate + Q_recirculation_sensor.Qv_0 = 0.1; + parameter Boolean Q_recirculation_sensor.faulty = false; + parameter String Q_recirculation_sensor.display_unit = "kg/s" "Specify the display unit"; + + output MetroscopeModelingLibrary.Utilities.Units.Cv Cvmax_V423(start = + 148.92099); + output MetroscopeModelingLibrary.Utilities.Units.Cv Cvmax_V422(start = + 347.48233); + output MetroscopeModelingLibrary.Utilities.Units.Cv Cvmax_V421(start = + 347.48233); + output Real hd(start = 5.1624656E-06); + output Real V_inlet; + output Real Extraction_Pump_hn(start = 20.42853); + output Real Extraction_Pump_rh(start = -0.039662044); + output Real Coldside_Flow(start = 390) "kg/s"; + output Real Hotside_Flow(start = 39.0) "kg/s"; + output Real Q_reject(start = 10.5) "m3/s"; + output Real Q_recirculation(start = 0.017708581); + output Real Pump_Qv(start = 37.3) "m3/s"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy cooling_sink.h_in( + start = 96653.73); + MetroscopeModelingLibrary.Utilities.Units.MassFraction cooling_sink.Xi_in[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + cooling_sink.P_in(start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + cooling_sink.Q_in(start = 35.329674); + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + cooling_sink.Qv_in(start = 0.035417162); + MetroscopeModelingLibrary.Utilities.Units.Temperature cooling_sink.T_in( + start = 296.1949); + Modelica.Media.Interfaces.Types.FixedPhase cooling_sink.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy cooling_sink.state_in.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density cooling_sink.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature cooling_sink.state_in.T(start = + 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure cooling_sink.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + cooling_sink.C_in.Q(start = 35.329674, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure cooling_sink.C_in.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy cooling_sink.C_in.h_outflow + (start = 0.0); + Modelica.Media.Interfaces.Types.MassFraction cooling_sink.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + turbine_outlet.h_out(start = 2593216.8); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + turbine_outlet.Xi_out[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + turbine_outlet.P_out(start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + turbine_outlet.Q_out(start = -1.4406862); + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + turbine_outlet.Qv_out(start = -39.0); + MetroscopeModelingLibrary.Utilities.Units.Temperature turbine_outlet.T_out( + start = 323.15); + Modelica.Media.Interfaces.Types.FixedPhase turbine_outlet.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy turbine_outlet.state_out.h( + start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density turbine_outlet.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature turbine_outlet.state_out.T( + start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure turbine_outlet.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + turbine_outlet.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure turbine_outlet.C_out.P( + start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy turbine_outlet.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction turbine_outlet.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy condensate_sink.h_in + (start = 144900.58); + MetroscopeModelingLibrary.Utilities.Units.MassFraction condensate_sink.Xi_in[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + condensate_sink.P_in(start = 15249.107); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + condensate_sink.Q_in(start = 1.4406862); + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + condensate_sink.Qv_in(start = 0.0014491823); + MetroscopeModelingLibrary.Utilities.Units.Temperature condensate_sink.T_in( + start = 307.74976); + Modelica.Media.Interfaces.Types.FixedPhase condensate_sink.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy condensate_sink.state_in.h( + start = 144900.58, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density condensate_sink.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature condensate_sink.state_in.T( + start = 307.74976, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure condensate_sink.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + condensate_sink.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure condensate_sink.C_in.P( + start = 15249.107); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy condensate_sink.C_in.h_outflow + (start = 0.0); + Modelica.Media.Interfaces.Types.MassFraction condensate_sink.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputHeight LOA.water_height; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient + LOA.Kfr_cold; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputArea LOA.S; + MetroscopeModelingLibrary.Utilities.Units.HeatExchangeCoefficient LOA.Kth; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate LOA.Qv_cold_in( + start = 0.054323334); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.W; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate LOA.Q_cold(start = + 54.12663); + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate LOA.Q_hot(start = + 1.4406862); + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.T_cold_in(start = + 292.15); + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.T_cold_out(start = + 307.73267); + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.T_hot_in(start = + 323.15); + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.T_hot_out(start = + 307.75186); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.P_tot(start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.Psat(start = LOA.Psat_0, + nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.Tsat(start = + LOA.Tsat_0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.P_incond(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.water_height_DP(start = LOA.water_height_DP_0); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal LOA.C_incond( + start = 0, unit = "mol/m3", min = 0.0) "Incondensable molar concentration"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure LOA.P_offset( + start = 0.0) "Offset correction for ideal gas law"; + MetroscopeModelingLibrary.Utilities.Units.Percentage LOA.fouling(start = 0, + nominal = 10.0); + Real LOA.air_intake(start = 0, nominal = 0.001, unit = "mol/m3", min = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Percentage LOA.Qv_cold_in_decrease( + start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate LOA.C_cold_in.Q + (start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.C_cold_in.P(start = + 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.C_cold_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.C_cold_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate LOA.C_hot_in.Q( + start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.C_hot_in.P(start = + 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.C_hot_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.C_hot_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate LOA.C_hot_out.Q + (start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.C_hot_out.P(start = + 15249.107); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.C_hot_out.h_outflow + (start = 144900.58); + Modelica.Media.Interfaces.Types.MassFraction LOA.C_hot_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.C_cold_out.Q(start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.C_cold_out.P(start = + 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.C_cold_out.h_outflow + (start = 145087.36); + Modelica.Media.Interfaces.Types.MassFraction LOA.C_cold_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side_pipe.h_in + (start = 79920.64) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side_pipe.h_out + (start = 79920.64) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.cold_side_pipe.Q(start = 54.12663) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side_pipe.P_in( + start = 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side_pipe.P_out( + start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction LOA.cold_side_pipe.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side_pipe.rho_in( + start = 998.4982) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side_pipe.rho_out( + start = 998.4982) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side_pipe.rho( + start = 998.4982) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.cold_side_pipe.Qv_in(start = 0.054208037) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + LOA.cold_side_pipe.Qv_out(start = -0.054208037) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.cold_side_pipe.Qv(start = 0.054208037) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.cold_side_pipe.T_in( + start = 292.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.cold_side_pipe.T_out + (start = 292.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.cold_side_pipe.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.cold_side_pipe.state_in.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.cold_side_pipe.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.cold_side_pipe.state_in.T( + start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.cold_side_pipe.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.cold_side_pipe.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.cold_side_pipe.state_out.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.cold_side_pipe.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.cold_side_pipe.state_out.T( + start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.cold_side_pipe.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.cold_side_pipe.DP(start = 0.0, nominal = 500000.0); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.cold_side_pipe.W(start = 0, + nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + LOA.cold_side_pipe.DH(start = LOA.cold_side_pipe.h_out_0-LOA.cold_side_pipe.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + LOA.cold_side_pipe.DT(start = LOA.cold_side_pipe.T_out_0-LOA.cold_side_pipe.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.cold_side_pipe.C_in.Q(start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side_pipe.C_in.P( + start = 300000.0, nominal = 500000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side_pipe.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.cold_side_pipe.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.cold_side_pipe.C_out.Q(start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side_pipe.C_out.P( + start = 300000.0, nominal = 400000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side_pipe.C_out.h_outflow + (start = 79920.64); + Modelica.Media.Interfaces.Types.MassFraction LOA.cold_side_pipe.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side_pipe.h + (start = 79920.64) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient + LOA.cold_side_pipe.Kfr(start = 10) "Friction pressure loss coefficient"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputDifferentialHeight + LOA.cold_side_pipe.delta_z(nominal = 5.0) "Height difference between outlet and inlet"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.cold_side_pipe.DP_f(start = 0.0) "Singular pressure loss"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.cold_side_pipe.DP_z(start = 0.0) "Singular pressure loss"; + MetroscopeModelingLibrary.Utilities.Units.Percentage LOA.cold_side_pipe.fouling; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.hot_side.h_in( + start = 2593216.8) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.hot_side.h_out( + start = 144900.58) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate LOA.hot_side.Q( + start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.P_in(start = + 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.P_out(start = + 5500.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction LOA.hot_side.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.hot_side.rho_in(start = + 0.03694067) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.hot_side.rho_out( + start = 994.1323) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.hot_side.rho(start = + 497.08463) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.hot_side.Qv_in(start = 39.0) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + LOA.hot_side.Qv_out(start = -0.0014491895) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.hot_side.Qv(start = 19.500725) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.hot_side.T_in( + start = 323.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.hot_side.T_out( + start = 307.75186) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.hot_side.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.hot_side.state_in.h( + start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.hot_side.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.hot_side.state_in.T(start = + 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.hot_side.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.hot_side.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.hot_side.state_out.h( + start = 144900.58, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.hot_side.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.hot_side.state_out.T(start = + 307.75186, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.hot_side.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure LOA.hot_side.DP + (start = 0.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.hot_side.W(start = 0, + nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy LOA.hot_side.DH + (start = LOA.hot_side.h_out_0-LOA.hot_side.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + LOA.hot_side.DT(start = LOA.hot_side.T_out_0-LOA.hot_side.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.hot_side.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.C_in.P( + start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.hot_side.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.hot_side.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.hot_side.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.C_out.P( + start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.hot_side.C_out.h_outflow + (start = 144900.58); + Modelica.Media.Interfaces.Types.MassFraction LOA.hot_side.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.hot_side.P(start = + 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPower LOA.hot_side.W_input + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side.h_in( + start = 79920.64) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side.h_out + (start = 145087.36) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate LOA.cold_side.Q + (start = 54.12663) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.P_in(start = + 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.P_out( + start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction LOA.cold_side.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side.rho_in( + start = 998.4982) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side.rho_out( + start = 994.2687) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.cold_side.rho(start = + 996.3834) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.cold_side.Qv_in(start = 0.054208037) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + LOA.cold_side.Qv_out(start = -0.054438636) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.cold_side.Qv(start = 0.054323334) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.cold_side.T_in( + start = 292.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.cold_side.T_out( + start = 307.73267) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.cold_side.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.cold_side.state_in.h( + start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.cold_side.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.cold_side.state_in.T(start = + 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.cold_side.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.cold_side.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.cold_side.state_out.h( + start = 145087.36, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.cold_side.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.cold_side.state_out.T(start = + 307.73267, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.cold_side.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.cold_side.DP(start = 0.0, nominal = 400000.0); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.cold_side.W(start = 0, + nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + LOA.cold_side.DH(start = LOA.cold_side.h_out_0-LOA.cold_side.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + LOA.cold_side.DT(start = LOA.cold_side.T_out_0-LOA.cold_side.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.cold_side.C_in.Q(start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.C_in.P( + start = 300000.0, nominal = 400000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.cold_side.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.cold_side.C_out.Q(start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.C_out.P( + start = 300000.0, nominal = 400000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.cold_side.C_out.h_outflow + (start = 145087.36); + Modelica.Media.Interfaces.Types.MassFraction LOA.cold_side.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.cold_side.P(start = + 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPower LOA.cold_side.W_input + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.water_height_pipe.h_in + (start = 144900.58) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.water_height_pipe.h_out + (start = 144900.58) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.water_height_pipe.Q(start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.water_height_pipe.P_in( + start = 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.water_height_pipe.P_out + (start = 15249.107) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction LOA.water_height_pipe.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.water_height_pipe.rho_in + (start = 994.1323) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.water_height_pipe.rho_out + (start = 994.1373) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.water_height_pipe.rho( + start = 994.1348) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.water_height_pipe.Qv_in(start = 0.0014491895) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + LOA.water_height_pipe.Qv_out(start = -0.0014491823) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.water_height_pipe.Qv(start = 0.0014491859) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.water_height_pipe.T_in + (start = 307.75186) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.water_height_pipe.T_out + (start = 307.74976) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.water_height_pipe.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.water_height_pipe.state_in.h + (start = 144900.58, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.water_height_pipe.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.water_height_pipe.state_in.T( + start = 307.75186, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.water_height_pipe.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.water_height_pipe.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.water_height_pipe.state_out.h + (start = 144900.58, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.water_height_pipe.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.water_height_pipe.state_out.T( + start = 307.74976, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.water_height_pipe.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.water_height_pipe.DP(start = 9749.107, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.water_height_pipe.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + LOA.water_height_pipe.DH(start = LOA.water_height_pipe.h_out_0- + LOA.water_height_pipe.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + LOA.water_height_pipe.DT(start = LOA.water_height_pipe.T_out_0- + LOA.water_height_pipe.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.water_height_pipe.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.water_height_pipe.C_in.P + (start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.water_height_pipe.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.water_height_pipe.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.water_height_pipe.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.water_height_pipe.C_out.P + (start = 15249.107, nominal = 14000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.water_height_pipe.C_out.h_outflow + (start = 144900.58); + Modelica.Media.Interfaces.Types.MassFraction LOA.water_height_pipe.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.water_height_pipe.h + (start = 144900.58) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient + LOA.water_height_pipe.Kfr(start = 10) "Friction pressure loss coefficient"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputDifferentialHeight + LOA.water_height_pipe.delta_z(nominal = 5.0) "Height difference between outlet and inlet"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.water_height_pipe.DP_f(start = 0.0) "Singular pressure loss"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.water_height_pipe.DP_z(start = 9749.107) "Singular pressure loss"; + MetroscopeModelingLibrary.Utilities.Units.Percentage LOA.water_height_pipe.fouling; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_in.h_in + (start = 2593216.8) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_in.h_out + (start = 2593216.8) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.incondensables_in.Q(start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_in.P_in( + start = 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_in.P_out + (start = 5500.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction LOA.incondensables_in.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_in.rho_in + (start = 0.03694067) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_in.rho_out + (start = 0.03694067) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_in.rho( + start = 0.03694067) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.incondensables_in.Qv_in(start = 39.0) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + LOA.incondensables_in.Qv_out(start = -39.0) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.incondensables_in.Qv(start = 39.0) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.incondensables_in.T_in + (start = 323.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.incondensables_in.T_out + (start = 323.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.incondensables_in.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.incondensables_in.state_in.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.incondensables_in.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.incondensables_in.state_in.T( + start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.incondensables_in.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.incondensables_in.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.incondensables_in.state_out.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.incondensables_in.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.incondensables_in.state_out.T( + start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.incondensables_in.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.incondensables_in.DP(start = 0.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.incondensables_in.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + LOA.incondensables_in.DH(start = LOA.incondensables_in.h_out_0- + LOA.incondensables_in.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + LOA.incondensables_in.DT(start = LOA.incondensables_in.T_out_0- + LOA.incondensables_in.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.incondensables_in.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_in.C_in.P + (start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_in.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.incondensables_in.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.incondensables_in.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_in.C_out.P + (start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_in.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction LOA.incondensables_in.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_in.h + (start = 2593216.8) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputDifferentialPressure + LOA.incondensables_in.DP_input(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_out.h_in + (start = 144900.58) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_out.h_out + (start = 144900.58) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.incondensables_out.Q(start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_out.P_in + (start = 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_out.P_out + (start = 5500.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction LOA.incondensables_out.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_out.rho_in + (start = 994.1323) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_out.rho_out + (start = 994.1323) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density LOA.incondensables_out.rho( + start = 994.1323) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.incondensables_out.Qv_in(start = 0.0014491895) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + LOA.incondensables_out.Qv_out(start = -0.0014491895) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + LOA.incondensables_out.Qv(start = 0.0014491895) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.incondensables_out.T_in + (start = 307.75186) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature LOA.incondensables_out.T_out + (start = 307.75186) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.incondensables_out.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.incondensables_out.state_in.h + (start = 144900.58, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.incondensables_out.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.incondensables_out.state_in.T( + start = 307.75186, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.incondensables_out.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase LOA.incondensables_out.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy LOA.incondensables_out.state_out.h + (start = 144900.58, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density LOA.incondensables_out.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature LOA.incondensables_out.state_out.T + (start = 307.75186, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure LOA.incondensables_out.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + LOA.incondensables_out.DP(start = 0.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.Power LOA.incondensables_out.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + LOA.incondensables_out.DH(start = LOA.incondensables_out.h_out_0- + LOA.incondensables_out.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + LOA.incondensables_out.DT(start = LOA.incondensables_out.T_out_0- + LOA.incondensables_out.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + LOA.incondensables_out.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_out.C_in.P + (start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_out.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction LOA.incondensables_out.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + LOA.incondensables_out.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure LOA.incondensables_out.C_out.P + (start = 5500.0, nominal = 5000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_out.C_out.h_outflow + (start = 144900.58); + Modelica.Media.Interfaces.Types.MassFraction LOA.incondensables_out.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy LOA.incondensables_out.h + (start = 144900.58) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputDifferentialPressure + LOA.incondensables_out.DP_input(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate VCT178_sensor.Q + (start = 1.4406862, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction VCT178_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.P(start = + 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.h( + start = 2593216.8) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase VCT178_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy VCT178_sensor.state.h( + start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density VCT178_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature VCT178_sensor.state.T(start = + 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure VCT178_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate VCT178_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + VCT178_sensor.C_in.Q(start = 1.4406862, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.C_in.P( + start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction VCT178_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + VCT178_sensor.C_out.Q(start = -1.4406862, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.C_out.P( + start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction VCT178_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.flow_model.h_in + (start = 2593216.8) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.flow_model.h_out + (start = 2593216.8) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + VCT178_sensor.flow_model.Q(start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.P_in + (start = 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.P_out + (start = 5500.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction VCT178_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density VCT178_sensor.flow_model.rho_in + (start = 0.03694067) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density VCT178_sensor.flow_model.rho_out + (start = 0.03694067) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density VCT178_sensor.flow_model.rho + (start = 0.03694067) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + VCT178_sensor.flow_model.Qv_in(start = 39.0) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + VCT178_sensor.flow_model.Qv_out(start = -39.0) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + VCT178_sensor.flow_model.Qv(start = 39.0) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature VCT178_sensor.flow_model.T_in + (start = 323.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature VCT178_sensor.flow_model.T_out + (start = 323.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase VCT178_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy VCT178_sensor.flow_model.state_in.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density VCT178_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature VCT178_sensor.flow_model.state_in.T + (start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure VCT178_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase VCT178_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy VCT178_sensor.flow_model.state_out.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density VCT178_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature VCT178_sensor.flow_model.state_out.T + (start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure VCT178_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + VCT178_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power VCT178_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + VCT178_sensor.flow_model.DH(start = VCT178_sensor.flow_model.h_out_0- + VCT178_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + VCT178_sensor.flow_model.DT(start = VCT178_sensor.flow_model.T_out_0- + VCT178_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + VCT178_sensor.flow_model.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.C_in.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction VCT178_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + VCT178_sensor.flow_model.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.C_out.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.flow_model.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction VCT178_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy VCT178_sensor.flow_model.h + (start = 2593216.8) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure VCT178_sensor.flow_model.P( + start = 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature VCT178_sensor.flow_model.T + (start = 323.15) "Temperature of the fluid into the component"; + Real VCT178_sensor.P_barG(start = -0.945, nominal = 100000.0); + Real VCT178_sensor.P_psiG(start = -13.706065, nominal = 14.5038); + Real VCT178_sensor.P_MPaG(start = -0.0945, nominal = 0.09999999999999999); + Real VCT178_sensor.P_kPaG(start = -94.5, nominal = 100.0); + Real VCT178_sensor.P_barA(start = 0.055, nominal = 1.0, unit = "bar"); + Real VCT178_sensor.P_psiA(start = 0.797709, nominal = 14.5038); + Real VCT178_sensor.P_MPaA(start = 0.0055, nominal = 0.09999999999999999); + Real VCT178_sensor.P_kPaA(start = 5.5, nominal = 100.0); + Real VCT178_sensor.P_inHg(start = 1.6241533, nominal = 29.530060000000002); + Real VCT178_sensor.P_mbar(start = 55.0, nominal = 1000.0, unit = "mbar"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Temp_sensor.Q(start = 1.4406862, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Hotside_Temp_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.P( + start = 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.h + (start = 2593216.8) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Hotside_Temp_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Hotside_Temp_sensor.state.h( + start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Hotside_Temp_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Hotside_Temp_sensor.state.T( + start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Hotside_Temp_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Hotside_Temp_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Temp_sensor.C_in.Q(start = 1.4406862, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.C_in.P( + start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Temp_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Hotside_Temp_sensor.C_out.Q(start = -1.4406862, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.C_out.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Temp_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.flow_model.h_in + (start = 2593216.8) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.flow_model.h_out + (start = 2593216.8) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Temp_sensor.flow_model.Q(start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.P_in + (start = 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.P_out + (start = 5500.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Hotside_Temp_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Temp_sensor.flow_model.rho_in + (start = 0.03694067) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Temp_sensor.flow_model.rho_out + (start = 0.03694067) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Temp_sensor.flow_model.rho + (start = 0.03694067) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Hotside_Temp_sensor.flow_model.Qv_in(start = 39.0) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Hotside_Temp_sensor.flow_model.Qv_out(start = -39.0) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Hotside_Temp_sensor.flow_model.Qv(start = 39.0) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Temp_sensor.flow_model.T_in + (start = 323.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Temp_sensor.flow_model.T_out + (start = 323.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Hotside_Temp_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Hotside_Temp_sensor.flow_model.state_in.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Hotside_Temp_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Hotside_Temp_sensor.flow_model.state_in.T + (start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Hotside_Temp_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Hotside_Temp_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Hotside_Temp_sensor.flow_model.state_out.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Hotside_Temp_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Hotside_Temp_sensor.flow_model.state_out.T + (start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Hotside_Temp_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Hotside_Temp_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Hotside_Temp_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Hotside_Temp_sensor.flow_model.DH(start = Hotside_Temp_sensor.flow_model.h_out_0 + -Hotside_Temp_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Hotside_Temp_sensor.flow_model.DT(start = Hotside_Temp_sensor.flow_model.T_out_0 + -Hotside_Temp_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Temp_sensor.flow_model.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.C_in.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Temp_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Hotside_Temp_sensor.flow_model.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.C_out.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.flow_model.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Temp_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Temp_sensor.flow_model.h + (start = 2593216.8) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Temp_sensor.flow_model.P + (start = 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Temp_sensor.flow_model.T + (start = 323.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Temp_sensor.T( + start = 323.15); + Real Hotside_Temp_sensor.T_degC(start = 50.0, nominal = 573.15, unit = "degC"); + Real Hotside_Temp_sensor.T_degF(start = 122.0, nominal = 1063.67, unit = + "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Flow_sensor.Q(start = 1.4406862, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Hotside_Flow_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.P( + start = 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.h + (start = 2593216.8) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Hotside_Flow_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Hotside_Flow_sensor.state.h( + start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Hotside_Flow_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Hotside_Flow_sensor.state.T( + start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Hotside_Flow_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Hotside_Flow_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Flow_sensor.C_in.Q(start = 1.4406862, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.C_in.P( + start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Flow_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Hotside_Flow_sensor.C_out.Q(start = -1.4406862, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.C_out.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Flow_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.flow_model.h_in + (start = 2593216.8) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.flow_model.h_out + (start = 2593216.8) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Flow_sensor.flow_model.Q(start = 1.4406862) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.P_in + (start = 5500.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.P_out + (start = 5500.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Hotside_Flow_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Flow_sensor.flow_model.rho_in + (start = 0.03694067) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Flow_sensor.flow_model.rho_out + (start = 0.03694067) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Hotside_Flow_sensor.flow_model.rho + (start = 0.03694067) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Hotside_Flow_sensor.flow_model.Qv_in(start = 39.0) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Hotside_Flow_sensor.flow_model.Qv_out(start = -39.0) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Hotside_Flow_sensor.flow_model.Qv(start = 39.0) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Flow_sensor.flow_model.T_in + (start = 323.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Flow_sensor.flow_model.T_out + (start = 323.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Hotside_Flow_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Hotside_Flow_sensor.flow_model.state_in.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Hotside_Flow_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Hotside_Flow_sensor.flow_model.state_in.T + (start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Hotside_Flow_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Hotside_Flow_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Hotside_Flow_sensor.flow_model.state_out.h + (start = 2593216.8, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Hotside_Flow_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Hotside_Flow_sensor.flow_model.state_out.T + (start = 323.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Hotside_Flow_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Hotside_Flow_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Hotside_Flow_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Hotside_Flow_sensor.flow_model.DH(start = Hotside_Flow_sensor.flow_model.h_out_0 + -Hotside_Flow_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Hotside_Flow_sensor.flow_model.DT(start = Hotside_Flow_sensor.flow_model.T_out_0 + -Hotside_Flow_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Hotside_Flow_sensor.flow_model.C_in.Q(start = 1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.C_in.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Flow_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Hotside_Flow_sensor.flow_model.C_out.Q(start = -1.4406862, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.C_out.P + (start = 5500.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.flow_model.C_out.h_outflow + (start = 2593216.8); + Modelica.Media.Interfaces.Types.MassFraction Hotside_Flow_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Hotside_Flow_sensor.flow_model.h + (start = 2593216.8) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Hotside_Flow_sensor.flow_model.P + (start = 5500.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Hotside_Flow_sensor.flow_model.T + (start = 323.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate Hotside_Flow_sensor.Qv + (start = 39.0); + Real Hotside_Flow_sensor.Q_lm(start = 2340000.0, nominal = 6000.0); + Real Hotside_Flow_sensor.Q_th(start = 5.18647, nominal = 360.0); + Real Hotside_Flow_sensor.Q_lbs(start = 0.65348434, nominal = 45.3592428); + Real Hotside_Flow_sensor.Q_Mlbh(start = 0.0114342095, nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Flow_sensor.Q(start = 36.461792, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Coldside_Flow_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.h + (start = 79312.05) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Coldside_Flow_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Coldside_Flow_sensor.state.h( + start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Coldside_Flow_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Coldside_Flow_sensor.state.T( + start = 292.05, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Coldside_Flow_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Coldside_Flow_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Flow_sensor.C_in.Q(start = 36.461792, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Flow_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Coldside_Flow_sensor.C_out.Q(start = -36.461792, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Flow_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.flow_model.h_in + (start = 79312.05) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.flow_model.h_out + (start = 79312.05) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Flow_sensor.flow_model.Q(start = 36.461792) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Coldside_Flow_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Flow_sensor.flow_model.rho_in + (start = 998.42596) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Flow_sensor.flow_model.rho_out + (start = 998.42596) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Flow_sensor.flow_model.rho + (start = 998.42596) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Coldside_Flow_sensor.flow_model.Qv_in(start = 0.036519274) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Coldside_Flow_sensor.flow_model.Qv_out(start = -0.036519274) + "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Coldside_Flow_sensor.flow_model.Qv(start = 0.036519274) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Coldside_Flow_sensor.flow_model.T_in + (start = 292.05) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Coldside_Flow_sensor.flow_model.T_out + (start = 292.05) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Coldside_Flow_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Coldside_Flow_sensor.flow_model.state_in.h + (start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Coldside_Flow_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Coldside_Flow_sensor.flow_model.state_in.T + (start = 292.05, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Coldside_Flow_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Coldside_Flow_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Coldside_Flow_sensor.flow_model.state_out.h + (start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Coldside_Flow_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Coldside_Flow_sensor.flow_model.state_out.T + (start = 292.05, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Coldside_Flow_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Coldside_Flow_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Coldside_Flow_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Coldside_Flow_sensor.flow_model.DH(start = Coldside_Flow_sensor.flow_model.h_out_0 + -Coldside_Flow_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Coldside_Flow_sensor.flow_model.DT(start = Coldside_Flow_sensor.flow_model.T_out_0 + -Coldside_Flow_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Flow_sensor.flow_model.C_in.Q(start = 36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Flow_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Coldside_Flow_sensor.flow_model.C_out.Q(start = -36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.flow_model.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Flow_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Flow_sensor.flow_model.h + (start = 79312.05) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Flow_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Coldside_Flow_sensor.flow_model.T + (start = 292.05) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate Coldside_Flow_sensor.Qv + (start = 0.036519274); + Real Coldside_Flow_sensor.Q_lm(start = 2191.1565, nominal = 6000.0); + Real Coldside_Flow_sensor.Q_th(start = 131.26245, nominal = 360.0); + Real Coldside_Flow_sensor.Q_lbs(start = 16.538792, nominal = 45.3592428); + Real Coldside_Flow_sensor.Q_Mlbh(start = 0.28938416, nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate CEC231_sensor.Q + (start = 54.12663, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC231_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.P(start = + 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.h( + start = 79920.64) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase CEC231_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC231_sensor.state.h( + start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC231_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC231_sensor.state.T(start = + 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC231_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CEC231_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC231_sensor.C_in.Q(start = 54.12663, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.C_in.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC231_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC231_sensor.C_out.Q(start = -54.12663, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.C_out.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.C_out.h_outflow + (start = 79920.64); + Modelica.Media.Interfaces.Types.MassFraction CEC231_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.flow_model.h_in + (start = 79920.64) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.flow_model.h_out + (start = 79920.64) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC231_sensor.flow_model.Q(start = 54.12663) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.P_in + (start = 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.P_out + (start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC231_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC231_sensor.flow_model.rho_in + (start = 998.4982) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC231_sensor.flow_model.rho_out + (start = 998.4982) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC231_sensor.flow_model.rho + (start = 998.4982) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC231_sensor.flow_model.Qv_in(start = 0.054208037) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CEC231_sensor.flow_model.Qv_out(start = -0.054208037) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC231_sensor.flow_model.Qv(start = 0.054208037) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC231_sensor.flow_model.T_in + (start = 292.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC231_sensor.flow_model.T_out + (start = 292.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CEC231_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC231_sensor.flow_model.state_in.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC231_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC231_sensor.flow_model.state_in.T + (start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC231_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CEC231_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC231_sensor.flow_model.state_out.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC231_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC231_sensor.flow_model.state_out.T + (start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC231_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC231_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power CEC231_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CEC231_sensor.flow_model.DH(start = CEC231_sensor.flow_model.h_out_0- + CEC231_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CEC231_sensor.flow_model.DT(start = CEC231_sensor.flow_model.T_out_0- + CEC231_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC231_sensor.flow_model.C_in.Q(start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC231_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC231_sensor.flow_model.C_out.Q(start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.flow_model.C_out.h_outflow + (start = 79920.64); + Modelica.Media.Interfaces.Types.MassFraction CEC231_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC231_sensor.flow_model.h + (start = 79920.64) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC231_sensor.flow_model.P( + start = 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC231_sensor.flow_model.T + (start = 292.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC231_sensor.T(start = + 292.15); + Real CEC231_sensor.T_degC(start = 19.0, nominal = 573.15, unit = "degC"); + Real CEC231_sensor.T_degF(start = 66.2, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Press_sensor.Q(start = 54.12663, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Coldside_Press_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.P( + start = 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.h + (start = 79920.64) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Coldside_Press_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Coldside_Press_sensor.state.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Coldside_Press_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Coldside_Press_sensor.state.T( + start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Coldside_Press_sensor.state.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Coldside_Press_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Press_sensor.C_in.Q(start = 54.12663, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Press_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Coldside_Press_sensor.C_out.Q(start = -54.12663, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.C_out.h_outflow + (start = 79920.64); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Press_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.flow_model.h_in + (start = 79920.64) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.flow_model.h_out + (start = 79920.64) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Press_sensor.flow_model.Q(start = 54.12663) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.P_in + (start = 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.P_out + (start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Coldside_Press_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Press_sensor.flow_model.rho_in + (start = 998.4982) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Press_sensor.flow_model.rho_out + (start = 998.4982) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Coldside_Press_sensor.flow_model.rho + (start = 998.4982) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Coldside_Press_sensor.flow_model.Qv_in(start = 0.054208037) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Coldside_Press_sensor.flow_model.Qv_out(start = -0.054208037) + "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Coldside_Press_sensor.flow_model.Qv(start = 0.054208037) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Coldside_Press_sensor.flow_model.T_in + (start = 292.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Coldside_Press_sensor.flow_model.T_out + (start = 292.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Coldside_Press_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Coldside_Press_sensor.flow_model.state_in.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Coldside_Press_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Coldside_Press_sensor.flow_model.state_in.T + (start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Coldside_Press_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Coldside_Press_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Coldside_Press_sensor.flow_model.state_out.h + (start = 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Coldside_Press_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Coldside_Press_sensor.flow_model.state_out.T + (start = 292.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Coldside_Press_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Coldside_Press_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Coldside_Press_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Coldside_Press_sensor.flow_model.DH(start = Coldside_Press_sensor.flow_model.h_out_0 + -Coldside_Press_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Coldside_Press_sensor.flow_model.DT(start = Coldside_Press_sensor.flow_model.T_out_0 + -Coldside_Press_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Coldside_Press_sensor.flow_model.C_in.Q(start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Press_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Coldside_Press_sensor.flow_model.C_out.Q(start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.flow_model.C_out.h_outflow + (start = 79920.64); + Modelica.Media.Interfaces.Types.MassFraction Coldside_Press_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Coldside_Press_sensor.flow_model.h + (start = 79920.64) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Coldside_Press_sensor.flow_model.P + (start = 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Coldside_Press_sensor.flow_model.T + (start = 292.15) "Temperature of the fluid into the component"; + Real Coldside_Press_sensor.P_barG(start = 2.0, nominal = 100000.0); + Real Coldside_Press_sensor.P_psiG(start = 29.007626, nominal = 14.5038); + Real Coldside_Press_sensor.P_MPaG(start = 0.2, nominal = 0.09999999999999999); + Real Coldside_Press_sensor.P_kPaG(start = 200.0, nominal = 100.0); + Real Coldside_Press_sensor.P_barA(start = 3.0, nominal = 1.0, unit = "bar"); + Real Coldside_Press_sensor.P_psiA(start = 43.5114, nominal = 14.5038); + Real Coldside_Press_sensor.P_MPaA(start = 0.3, nominal = 0.09999999999999999); + Real Coldside_Press_sensor.P_kPaA(start = 300.0, nominal = 100.0); + Real Coldside_Press_sensor.P_inHg(start = 88.59018, nominal = 29.530060000000002); + Real Coldside_Press_sensor.P_mbar(start = 3000.0, nominal = 1000.0, unit = + "mbar"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate CEC235_sensor.Q + (start = 54.12663, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC235_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.P(start = + 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.h( + start = 145087.36) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase CEC235_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC235_sensor.state.h( + start = 145087.36, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC235_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC235_sensor.state.T(start = + 307.73267, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC235_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CEC235_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC235_sensor.C_in.Q(start = 54.12663, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.C_in.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC235_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC235_sensor.C_out.Q(start = -54.12663, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.C_out.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.C_out.h_outflow + (start = 145087.36); + Modelica.Media.Interfaces.Types.MassFraction CEC235_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.flow_model.h_in + (start = 145087.36) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.flow_model.h_out + (start = 145087.36) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC235_sensor.flow_model.Q(start = 54.12663) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.P_in + (start = 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.P_out + (start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC235_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC235_sensor.flow_model.rho_in + (start = 994.2687) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC235_sensor.flow_model.rho_out + (start = 994.2687) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC235_sensor.flow_model.rho + (start = 994.2687) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC235_sensor.flow_model.Qv_in(start = 0.054438636) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CEC235_sensor.flow_model.Qv_out(start = -0.054438636) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC235_sensor.flow_model.Qv(start = 0.054438636) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC235_sensor.flow_model.T_in + (start = 307.73267) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC235_sensor.flow_model.T_out + (start = 307.73267) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CEC235_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC235_sensor.flow_model.state_in.h + (start = 145087.36, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC235_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC235_sensor.flow_model.state_in.T + (start = 307.73267, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC235_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CEC235_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC235_sensor.flow_model.state_out.h + (start = 145087.36, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC235_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC235_sensor.flow_model.state_out.T + (start = 307.73267, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC235_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC235_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power CEC235_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CEC235_sensor.flow_model.DH(start = CEC235_sensor.flow_model.h_out_0- + CEC235_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CEC235_sensor.flow_model.DT(start = CEC235_sensor.flow_model.T_out_0- + CEC235_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC235_sensor.flow_model.C_in.Q(start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC235_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC235_sensor.flow_model.C_out.Q(start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.flow_model.C_out.h_outflow + (start = 145087.36); + Modelica.Media.Interfaces.Types.MassFraction CEC235_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC235_sensor.flow_model.h + (start = 145087.36) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC235_sensor.flow_model.P( + start = 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC235_sensor.flow_model.T + (start = 307.73267) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC235_sensor.T(start = + 307.73267); + Real CEC235_sensor.T_degC(start = 34.582672, nominal = 573.15, unit = "degC"); + Real CEC235_sensor.T_degF(start = 94.24881, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.Velocity CoolingTower.V_inlet; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.hd; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputArea CoolingTower.Afr; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal CoolingTower.Lfi; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputFrictionCoefficient + CoolingTower.Cf; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.rho_air_inlet( + start = 1.2050902); + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.rho_air_outlet( + start = 1.2050897); + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_hot_in( + start = 54.12663); + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_hot_out( + start = -52.99451); + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_cold_in( + start = 233.84636); + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Q_cold_out + (start = -234.97847); + Real CoolingTower.w_in; + Real CoolingTower.w_out; + Real CoolingTower.w_sat[CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.i_initial; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.i_final; + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.W_max; + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.W_min; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_cold_in( + start = 288.15); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_cold_out( + start = 287.31592); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_hot_in( + start = 307.73267); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.T_hot_out( + start = 296.15); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.deltaTw; + Real CoolingTower.w[CoolingTower.N_step]; + Real CoolingTower.M[CoolingTower.N_step]; + Real CoolingTower.Me; + Real CoolingTower.i[CoolingTower.N_step]; + Real CoolingTower.Tw[CoolingTower.N_step](start = {293.15, 294.2611, 295.37222, + 296.48334, 297.59445, 298.70557, 299.81668, 300.92776, 302.03888, 303.15}); + Real CoolingTower.Ta[CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.HeatCapacity CoolingTower.cp[ + CoolingTower.N_step]; + Real CoolingTower.Pin[CoolingTower.N_step]; + Real CoolingTower.Lef[CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Qw[ + CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CoolingTower.Qa[ + CoolingTower.N_step]; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_connector.Q(start = 500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet_connector.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet_connector.Q(start = -500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet_connector.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_connector.Q(start = 500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_connector.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet_connector.Q(start = -500, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_connector.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_connector.h_outflow + (start = 100000.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_connector.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.h_in + (start = CoolingTower.water_inlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.h_out + (start = CoolingTower.water_inlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_flow.Q(start = CoolingTower.water_inlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_in + (start = CoolingTower.water_inlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.P_out + (start = CoolingTower.water_inlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.water_inlet_flow.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho_in + (start = CoolingTower.water_inlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho_out + (start = CoolingTower.water_inlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_inlet_flow.rho + (start = CoolingTower.water_inlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_inlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.water_inlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_inlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet_flow.T_in + (start = CoolingTower.water_inlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet_flow.T_out + (start = CoolingTower.water_inlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_inlet_flow.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_inlet_flow.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_inlet_flow.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_inlet_flow.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_inlet_flow.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_inlet_flow.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_inlet_flow.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_inlet_flow.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_inlet_flow.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_inlet_flow.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_inlet_flow.DP(start = CoolingTower.water_inlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.water_inlet_flow.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.water_inlet_flow.DH(start = CoolingTower.water_inlet_flow.h_out_0 + -CoolingTower.water_inlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.water_inlet_flow.DT(start = CoolingTower.water_inlet_flow.T_out_0 + -CoolingTower.water_inlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet_flow.C_in.Q(start = CoolingTower.water_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.C_in.P + (start = CoolingTower.water_inlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet_flow.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_inlet_flow.C_out.Q(start = -CoolingTower.water_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet_flow.C_out.P + (start = CoolingTower.water_inlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.C_out.h_outflow + (start = CoolingTower.water_inlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet_flow.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet_flow.h + (start = CoolingTower.water_inlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputDifferentialPressure + CoolingTower.water_inlet_flow.DP_input(start = 0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.h_in + (start = CoolingTower.water_outlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.h_out + (start = CoolingTower.water_outlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_outlet_flow.Q(start = CoolingTower.water_outlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_in + (start = CoolingTower.water_outlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P_out + (start = CoolingTower.water_outlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.water_outlet_flow.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho_in + (start = CoolingTower.water_outlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho_out + (start = CoolingTower.water_outlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.water_outlet_flow.rho + (start = CoolingTower.water_outlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_outlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.water_outlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_outlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet_flow.T_in + (start = CoolingTower.water_outlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet_flow.T_out + (start = CoolingTower.water_outlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_outlet_flow.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_outlet_flow.state_in.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_outlet_flow.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_outlet_flow.state_in.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_outlet_flow.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_outlet_flow.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_outlet_flow.state_out.h + (start = 100000.0, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_outlet_flow.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_outlet_flow.state_out.T + (start = 500, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_outlet_flow.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.water_outlet_flow.DP(start = CoolingTower.water_outlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.water_outlet_flow.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.water_outlet_flow.DH(start = CoolingTower.water_outlet_flow.h_out_0 + -CoolingTower.water_outlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.water_outlet_flow.DT(start = CoolingTower.water_outlet_flow.T_out_0 + -CoolingTower.water_outlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_outlet_flow.C_in.Q(start = CoolingTower.water_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.C_in.P + (start = CoolingTower.water_outlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet_flow.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet_flow.C_out.Q(start = -CoolingTower.water_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.C_out.P + (start = CoolingTower.water_outlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.C_out.h_outflow + (start = CoolingTower.water_outlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet_flow.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet_flow.h + (start = CoolingTower.water_outlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet_flow.P + (start = CoolingTower.water_outlet_flow.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet_flow.T + (start = CoolingTower.water_outlet_flow.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + CoolingTower.water_outlet.h_out(start = 96653.73); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + CoolingTower.water_outlet.Xi_out[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.water_outlet.P_out(start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet.Q_out(start = -52.99451); + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.water_outlet.Qv_out(start = -0.053120352); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_outlet.T_out + (start = 296.15); + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_outlet.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_outlet.state_out.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_outlet.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_outlet.state_out.T + (start = 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_outlet.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.water_outlet.C_out.Q(start = -52.99451, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_outlet.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_outlet.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_outlet.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet.h_in + (start = 145087.36); + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.water_inlet.Xi_in + [0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.water_inlet.P_in(start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet.Q_in(start = 54.12663); + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.water_inlet.Qv_in(start = 0.054438636); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.water_inlet.T_in + (start = 307.73267); + Modelica.Media.Interfaces.Types.FixedPhase CoolingTower.water_inlet.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CoolingTower.water_inlet.state_in.h + (start = 145087.36, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CoolingTower.water_inlet.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.water_inlet.state_in.T + (start = 307.73267, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.water_inlet.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.water_inlet.C_in.Q(start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.water_inlet.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.water_inlet.C_in.h_outflow + (start = 0.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.water_inlet.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.h_in + (start = CoolingTower.air_inlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.h_out + (start = CoolingTower.air_inlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_flow.Q(start = CoolingTower.air_inlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_in + (start = CoolingTower.air_inlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P_out + (start = CoolingTower.air_inlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.air_inlet_flow.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho_in + (start = CoolingTower.air_inlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho_out + (start = CoolingTower.air_inlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_inlet_flow.rho + (start = CoolingTower.air_inlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_inlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.air_inlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_inlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet_flow.T_in + (start = CoolingTower.air_inlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet_flow.T_out + (start = CoolingTower.air_inlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_inlet_flow.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_inlet_flow.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_inlet_flow.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_inlet_flow.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_inlet_flow.DP(start = CoolingTower.air_inlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.air_inlet_flow.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.air_inlet_flow.DH(start = CoolingTower.air_inlet_flow.h_out_0- + CoolingTower.air_inlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.air_inlet_flow.DT(start = CoolingTower.air_inlet_flow.T_out_0- + CoolingTower.air_inlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet_flow.C_in.Q(start = CoolingTower.air_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.C_in.P + (start = CoolingTower.air_inlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_inlet_flow.C_out.Q(start = -CoolingTower.air_inlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.C_out.P + (start = CoolingTower.air_inlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.C_out.h_outflow + (start = CoolingTower.air_inlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet_flow.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet_flow.h + (start = CoolingTower.air_inlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet_flow.P + (start = CoolingTower.air_inlet_flow.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet_flow.T + (start = CoolingTower.air_inlet_flow.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet.h_in + (start = 28437.334); + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.air_inlet.Xi_in + [1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.air_inlet.P_in(start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet.Q_in(start = 233.84636); + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_inlet.Qv_in(start = 194.04884); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_inlet.T_in + (start = 288.15); + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_inlet.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_inlet.state_in.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_inlet.C_in.Q(start = 233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_inlet.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_inlet.C_in.h_outflow + (start = 0.0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_inlet.C_in.Xi_outflow + [1]; + Real CoolingTower.air_inlet.relative_humidity(start = CoolingTower.air_inlet.relative_humidity_0, + min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + CoolingTower.air_outlet.h_out(start = 39639.684); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + CoolingTower.air_outlet.Xi_out[1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure + CoolingTower.air_outlet.P_out(start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet.Q_out(start = -234.97847); + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.air_outlet.Qv_out(start = -194.98837); + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet.T_out + (start = 287.31592); + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_outlet.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_outlet.state_out.T + (start = 287.31592, min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet.C_out.Q(start = -234.97847, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet.C_out.h_outflow + (start = 39639.684); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet.C_out.Xi_outflow + [1]; + Real CoolingTower.air_outlet.relative_humidity(start = CoolingTower.air_outlet.relative_humidity_0, + min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.h_in + (start = CoolingTower.air_outlet_flow.h_in_0) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.h_out + (start = CoolingTower.air_outlet_flow.h_out_0) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_outlet_flow.Q(start = CoolingTower.air_outlet_flow.Q_0) + "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_in + (start = CoolingTower.air_outlet_flow.P_in_0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P_out + (start = CoolingTower.air_outlet_flow.P_out_0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CoolingTower.air_outlet_flow.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho_in + (start = CoolingTower.air_outlet_flow.rho_0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho_out + (start = CoolingTower.air_outlet_flow.rho_0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CoolingTower.air_outlet_flow.rho + (start = CoolingTower.air_outlet_flow.rho_0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_outlet_flow.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CoolingTower.air_outlet_flow.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CoolingTower.air_outlet_flow.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet_flow.T_in + (start = CoolingTower.air_outlet_flow.T_in_0) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet_flow.T_out + (start = CoolingTower.air_outlet_flow.T_out_0) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_outlet_flow.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_outlet_flow.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure CoolingTower.air_outlet_flow.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature CoolingTower.air_outlet_flow.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CoolingTower.air_outlet_flow.DP(start = CoolingTower.air_outlet_flow.DP_0); + MetroscopeModelingLibrary.Utilities.Units.Power CoolingTower.air_outlet_flow.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CoolingTower.air_outlet_flow.DH(start = CoolingTower.air_outlet_flow.h_out_0 + -CoolingTower.air_outlet_flow.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CoolingTower.air_outlet_flow.DT(start = CoolingTower.air_outlet_flow.T_out_0 + -CoolingTower.air_outlet_flow.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CoolingTower.air_outlet_flow.C_in.Q(start = CoolingTower.air_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.C_in.P + (start = CoolingTower.air_outlet_flow.P_in_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.C_in.h_outflow + (start = 0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CoolingTower.air_outlet_flow.C_out.Q(start = -CoolingTower.air_outlet_flow.Q_0, + nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.C_out.P + (start = CoolingTower.air_outlet_flow.P_out_0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.C_out.h_outflow + (start = CoolingTower.air_outlet_flow.h_out_0); + Modelica.Media.Interfaces.Types.MassFraction CoolingTower.air_outlet_flow.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CoolingTower.air_outlet_flow.h + (start = CoolingTower.air_outlet_flow.h_0) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CoolingTower.air_outlet_flow.P + (start = CoolingTower.air_outlet_flow.P_0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CoolingTower.air_outlet_flow.T + (start = CoolingTower.air_outlet_flow.T_0) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate CEC194_sensor.Q + (start = 52.99451, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC194_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.P(start = + 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.h( + start = 96653.73) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase CEC194_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC194_sensor.state.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC194_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC194_sensor.state.T(start = + 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC194_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CEC194_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC194_sensor.C_in.Q(start = 52.99451, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.C_in.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC194_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC194_sensor.C_out.Q(start = -52.99451, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.C_out.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction CEC194_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.flow_model.h_in + (start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.flow_model.h_out + (start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC194_sensor.flow_model.Q(start = 52.99451) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.P_in + (start = 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.P_out + (start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC194_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC194_sensor.flow_model.rho_in + (start = 997.63104) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC194_sensor.flow_model.rho_out + (start = 997.63104) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC194_sensor.flow_model.rho + (start = 997.63104) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC194_sensor.flow_model.Qv_in(start = 0.053120352) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CEC194_sensor.flow_model.Qv_out(start = -0.053120352) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC194_sensor.flow_model.Qv(start = 0.053120352) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC194_sensor.flow_model.T_in + (start = 296.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC194_sensor.flow_model.T_out + (start = 296.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CEC194_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC194_sensor.flow_model.state_in.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC194_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC194_sensor.flow_model.state_in.T + (start = 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC194_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CEC194_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC194_sensor.flow_model.state_out.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC194_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC194_sensor.flow_model.state_out.T + (start = 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC194_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC194_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power CEC194_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CEC194_sensor.flow_model.DH(start = CEC194_sensor.flow_model.h_out_0- + CEC194_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CEC194_sensor.flow_model.DT(start = CEC194_sensor.flow_model.T_out_0- + CEC194_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC194_sensor.flow_model.C_in.Q(start = 52.99451, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC194_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC194_sensor.flow_model.C_out.Q(start = -52.99451, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.flow_model.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction CEC194_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC194_sensor.flow_model.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC194_sensor.flow_model.P( + start = 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC194_sensor.flow_model.T + (start = 296.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC194_sensor.T(start = + 296.15); + Real CEC194_sensor.T_degC(start = 23.0, nominal = 573.15, unit = "degC"); + Real CEC194_sensor.T_degF(start = 73.4, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate CEC197_sensor.Q + (start = 52.99451, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC197_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.P(start = + 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.h( + start = 96653.73) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase CEC197_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC197_sensor.state.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC197_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC197_sensor.state.T(start = + 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC197_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CEC197_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC197_sensor.C_in.Q(start = 52.99451, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.C_in.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC197_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC197_sensor.C_out.Q(start = -52.99451, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.C_out.P( + start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction CEC197_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.flow_model.h_in + (start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.flow_model.h_out + (start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC197_sensor.flow_model.Q(start = 52.99451) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.P_in + (start = 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.P_out + (start = 300000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC197_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC197_sensor.flow_model.rho_in + (start = 997.63104) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC197_sensor.flow_model.rho_out + (start = 997.63104) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC197_sensor.flow_model.rho + (start = 997.63104) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC197_sensor.flow_model.Qv_in(start = 0.053120352) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CEC197_sensor.flow_model.Qv_out(start = -0.053120352) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC197_sensor.flow_model.Qv(start = 0.053120352) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC197_sensor.flow_model.T_in + (start = 296.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC197_sensor.flow_model.T_out + (start = 296.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CEC197_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC197_sensor.flow_model.state_in.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC197_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC197_sensor.flow_model.state_in.T + (start = 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC197_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CEC197_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC197_sensor.flow_model.state_out.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC197_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC197_sensor.flow_model.state_out.T + (start = 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC197_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC197_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power CEC197_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CEC197_sensor.flow_model.DH(start = CEC197_sensor.flow_model.h_out_0- + CEC197_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CEC197_sensor.flow_model.DT(start = CEC197_sensor.flow_model.T_out_0- + CEC197_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC197_sensor.flow_model.C_in.Q(start = 52.99451, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.C_in.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC197_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC197_sensor.flow_model.C_out.Q(start = -52.99451, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.C_out.P + (start = 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.flow_model.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction CEC197_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC197_sensor.flow_model.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC197_sensor.flow_model.P( + start = 300000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC197_sensor.flow_model.T + (start = 296.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate CEC197_sensor.Qv( + start = 0.053120352); + Real CEC197_sensor.Q_lm(start = 3187.2212, nominal = 6000.0); + Real CEC197_sensor.Q_th(start = 190.78024, nominal = 360.0); + Real CEC197_sensor.Q_lbs(start = 24.037909, nominal = 45.3592428); + Real CEC197_sensor.Q_Mlbh(start = 0.42059845, nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + AirSource.h_out(start = 28437.334); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + AirSource.Xi_out[1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure AirSource.P_out + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate AirSource.Q_out + (start = -233.84636); + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + AirSource.Qv_out(start = -194.04884); + MetroscopeModelingLibrary.Utilities.Units.Temperature AirSource.T_out(start = + 288.15); + Modelica.Media.Interfaces.Types.AbsolutePressure AirSource.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirSource.state_out.T(min = 190.0, + max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirSource.state_out.X[2](start = + {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirSource.C_out.Q(start = -233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirSource.C_out.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirSource.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirSource.C_out.Xi_outflow[1]; + Real AirSource.relative_humidity(start = AirSource.relative_humidity_0, min = + 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy sink.h_in(start = + 39639.684); + MetroscopeModelingLibrary.Utilities.Units.MassFraction sink.Xi_in[1]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure sink.P_in( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate sink.Q_in( + start = 234.97847); + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate sink.Qv_in( + start = 194.98837); + MetroscopeModelingLibrary.Utilities.Units.Temperature sink.T_in(start = + 287.31592); + Modelica.Media.Interfaces.Types.AbsolutePressure sink.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature sink.state_in.T(start = 287.31592, + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction sink.state_in.X[2](start = {0.01, + 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate sink.C_in.Q( + start = 234.97847, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure sink.C_in.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy sink.C_in.h_outflow + (start = 0.0); + Modelica.Media.Interfaces.Types.MassFraction sink.C_in.Xi_outflow[1]; + Real sink.relative_humidity(start = sink.relative_humidity_0, min = 0.0, + max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Flow_sensor.Q(start = 233.84636, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInlet_Flow_sensor.Xi + [1] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.h + (start = 28437.334) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Flow_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Flow_sensor.state.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate AirInlet_Flow_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Flow_sensor.C_in.Q(start = 233.84636, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInlet_Flow_sensor.C_out.Q(start = -233.84636, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.flow_model.h_in + (start = 28437.334) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.flow_model.h_out + (start = 28437.334) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Flow_sensor.flow_model.Q(start = 233.84636) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInlet_Flow_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Flow_sensor.flow_model.rho_in + (start = 1.2050902) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Flow_sensor.flow_model.rho_out + (start = 1.2050902) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Flow_sensor.flow_model.rho + (start = 1.2050902) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInlet_Flow_sensor.flow_model.Qv_in(start = 194.04884) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + AirInlet_Flow_sensor.flow_model.Qv_out(start = -194.04884) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInlet_Flow_sensor.flow_model.Qv(start = 194.04884) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Flow_sensor.flow_model.T_in + (start = 288.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Flow_sensor.flow_model.T_out + (start = 288.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Flow_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Flow_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Flow_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Flow_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInlet_Flow_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power AirInlet_Flow_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + AirInlet_Flow_sensor.flow_model.DH(start = AirInlet_Flow_sensor.flow_model.h_out_0 + -AirInlet_Flow_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + AirInlet_Flow_sensor.flow_model.DT(start = AirInlet_Flow_sensor.flow_model.T_out_0 + -AirInlet_Flow_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Flow_sensor.flow_model.C_in.Q(start = 233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInlet_Flow_sensor.flow_model.C_out.Q(start = -233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.flow_model.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Flow_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Flow_sensor.flow_model.h + (start = 28437.334) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Flow_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Flow_sensor.flow_model.T + (start = 288.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate AirInlet_Flow_sensor.Qv + (start = 194.04884); + Real AirInlet_Flow_sensor.Q_lm(start = 11642931.0, nominal = 6000.0); + Real AirInlet_Flow_sensor.Q_th(start = 841.84686, nominal = 360.0); + Real AirInlet_Flow_sensor.Q_lbs(start = 106.07094, nominal = 45.3592428); + Real AirInlet_Flow_sensor.Q_Mlbh(start = 1.8559546, nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Temp_sensor.Q(start = 233.84636, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInlet_Temp_sensor.Xi + [1] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.h + (start = 28437.334) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Temp_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Temp_sensor.state.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate AirInlet_Temp_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Temp_sensor.C_in.Q(start = 233.84636, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInlet_Temp_sensor.C_out.Q(start = -233.84636, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.flow_model.h_in + (start = 28437.334) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.flow_model.h_out + (start = 28437.334) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Temp_sensor.flow_model.Q(start = 233.84636) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInlet_Temp_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Temp_sensor.flow_model.rho_in + (start = 1.2050902) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Temp_sensor.flow_model.rho_out + (start = 1.2050902) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Temp_sensor.flow_model.rho + (start = 1.2050902) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInlet_Temp_sensor.flow_model.Qv_in(start = 194.04884) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + AirInlet_Temp_sensor.flow_model.Qv_out(start = -194.04884) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInlet_Temp_sensor.flow_model.Qv(start = 194.04884) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Temp_sensor.flow_model.T_in + (start = 288.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Temp_sensor.flow_model.T_out + (start = 288.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Temp_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Temp_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Temp_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Temp_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInlet_Temp_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power AirInlet_Temp_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + AirInlet_Temp_sensor.flow_model.DH(start = AirInlet_Temp_sensor.flow_model.h_out_0 + -AirInlet_Temp_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + AirInlet_Temp_sensor.flow_model.DT(start = AirInlet_Temp_sensor.flow_model.T_out_0 + -AirInlet_Temp_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Temp_sensor.flow_model.C_in.Q(start = 233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInlet_Temp_sensor.flow_model.C_out.Q(start = -233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.flow_model.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Temp_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Temp_sensor.flow_model.h + (start = 28437.334) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Temp_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Temp_sensor.flow_model.T + (start = 288.15) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Temp_sensor.T( + start = 288.15); + Real AirInlet_Temp_sensor.T_degC(start = 15.0, nominal = 573.15, unit = "degC"); + Real AirInlet_Temp_sensor.T_degF(start = 59.0, nominal = 1063.67, unit = + "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Press_sensor.Q(start = 233.84636, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInlet_Press_sensor.Xi + [1] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.h + (start = 28437.334) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Press_sensor.state.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Press_sensor.state.T( + min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.state.X[2]( + start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate AirInlet_Press_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Press_sensor.C_in.Q(start = 233.84636, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInlet_Press_sensor.C_out.Q(start = -233.84636, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.flow_model.h_in + (start = 28437.334) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.flow_model.h_out + (start = 28437.334) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Press_sensor.flow_model.Q(start = 233.84636) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction AirInlet_Press_sensor.flow_model.Xi + [1] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Press_sensor.flow_model.rho_in + (start = 1.2050902) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Press_sensor.flow_model.rho_out + (start = 1.2050902) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density AirInlet_Press_sensor.flow_model.rho + (start = 1.2050902) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInlet_Press_sensor.flow_model.Qv_in(start = 194.04884) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + AirInlet_Press_sensor.flow_model.Qv_out(start = -194.04884) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + AirInlet_Press_sensor.flow_model.Qv(start = 194.04884) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Press_sensor.flow_model.T_in + (start = 288.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Press_sensor.flow_model.T_out + (start = 288.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Press_sensor.flow_model.state_in.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Press_sensor.flow_model.state_in.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.flow_model.state_in.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + Modelica.Media.Interfaces.Types.AbsolutePressure AirInlet_Press_sensor.flow_model.state_out.p + "Absolute pressure of medium"; + Modelica.Media.Interfaces.Types.Temperature AirInlet_Press_sensor.flow_model.state_out.T + (min = 190.0, max = 647.0) "Temperature of medium"; + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.flow_model.state_out.X + [2](start = {0.01, 0.99}) "Mass fractions (= (component mass)/total mass m_i/m)"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + AirInlet_Press_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power AirInlet_Press_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + AirInlet_Press_sensor.flow_model.DH(start = AirInlet_Press_sensor.flow_model.h_out_0 + -AirInlet_Press_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + AirInlet_Press_sensor.flow_model.DT(start = AirInlet_Press_sensor.flow_model.T_out_0 + -AirInlet_Press_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + AirInlet_Press_sensor.flow_model.C_in.Q(start = 233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.flow_model.C_in.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + AirInlet_Press_sensor.flow_model.C_out.Q(start = -233.84636, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.flow_model.C_out.h_outflow + (start = 28437.334); + Modelica.Media.Interfaces.Types.MassFraction AirInlet_Press_sensor.flow_model.C_out.Xi_outflow + [1]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy AirInlet_Press_sensor.flow_model.h + (start = 28437.334) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure AirInlet_Press_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature AirInlet_Press_sensor.flow_model.T + (start = 288.15) "Temperature of the fluid into the component"; + Real AirInlet_Press_sensor.P_barG(start = 0.0, nominal = 100000.0); + Real AirInlet_Press_sensor.P_psiG(start = 2.623E-05, nominal = 14.5038); + Real AirInlet_Press_sensor.P_MPaG(start = -2.7755576E-17, nominal = + 0.09999999999999999); + Real AirInlet_Press_sensor.P_kPaG(start = -1.4210855E-14, nominal = 100.0); + Real AirInlet_Press_sensor.P_barA(start = 1.0, nominal = 1.0, unit = "bar"); + Real AirInlet_Press_sensor.P_psiA(start = 14.5038, nominal = 14.5038); + Real AirInlet_Press_sensor.P_MPaA(start = 0.1, nominal = 0.09999999999999999); + Real AirInlet_Press_sensor.P_kPaA(start = 100.0, nominal = 100.0); + Real AirInlet_Press_sensor.P_inHg(start = 29.53006, nominal = 29.530060000000002); + Real AirInlet_Press_sensor.P_mbar(start = 1000.0, nominal = 1000.0, unit = + "mbar"); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputSpecificEnthalpy + source1.h_out(start = 79312.05); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputMassFraction + source1.Xi_out[0]; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPressure source1.P_out( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate source1.Q_out( + start = -36.461792); + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + source1.Qv_out(start = -0.036519274); + MetroscopeModelingLibrary.Utilities.Units.Temperature source1.T_out(start = + 292.05); + Modelica.Media.Interfaces.Types.FixedPhase source1.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy source1.state_out.h(start = + 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density source1.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature source1.state_out.T(start = 292.05, + nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure source1.state_out.p(start = + 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate source1.C_out.Q + (start = -36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure source1.C_out.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy source1.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction source1.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V423_valve.h_in( + start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V423_valve.h_out( + start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate V423_valve.Q( + start = 17.664837) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure V423_valve.P_in(start = + 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure V423_valve.P_out(start = + 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction V423_valve.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density V423_valve.rho_in(start = + 997.63104) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density V423_valve.rho_out(start = + 997.52985) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density V423_valve.rho(start = + 997.58044) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + V423_valve.Qv_in(start = 0.017706783) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + V423_valve.Qv_out(start = -0.017708581) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate V423_valve.Qv + (start = 0.017707681) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature V423_valve.T_in(start = + 296.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature V423_valve.T_out( + start = 296.1949) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase V423_valve.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy V423_valve.state_in.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density V423_valve.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature V423_valve.state_in.T(start = + 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure V423_valve.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase V423_valve.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy V423_valve.state_out.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density V423_valve.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature V423_valve.state_out.T(start = + 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure V423_valve.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure V423_valve.DP( + start = -200000.0); + MetroscopeModelingLibrary.Utilities.Units.Power V423_valve.W(start = 0, + nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy V423_valve.DH( + start = V423_valve.h_out_0-V423_valve.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + V423_valve.DT(start = V423_valve.T_out_0-V423_valve.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + V423_valve.C_in.Q(start = 17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure V423_valve.C_in.P(start = + 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V423_valve.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction V423_valve.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + V423_valve.C_out.Q(start = -17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure V423_valve.C_out.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V423_valve.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction V423_valve.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V423_valve.h( + start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputCv V423_valve.Cv_max( + start = 10000.0) "Maximum CV"; + MetroscopeModelingLibrary.Utilities.Units.Cv V423_valve.Cv(start = 10000.0) + "Cv"; + Modelica.Blocks.Interfaces.RealInput V423_valve.Opening(nominal = 0.5, unit = + "1", min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V422_valve.h_in( + start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V422_valve.h_out( + start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate V422_valve.Q( + start = 17.664837) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure V422_valve.P_in(start = + 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure V422_valve.P_out(start = + 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction V422_valve.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density V422_valve.rho_in(start = + 997.63104) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density V422_valve.rho_out(start = + 997.52985) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density V422_valve.rho(start = + 997.58044) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + V422_valve.Qv_in(start = 0.017706783) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + V422_valve.Qv_out(start = -0.017708581) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate V422_valve.Qv + (start = 0.017707681) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature V422_valve.T_in(start = + 296.15) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature V422_valve.T_out( + start = 296.1949) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase V422_valve.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy V422_valve.state_in.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density V422_valve.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature V422_valve.state_in.T(start = + 296.15, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure V422_valve.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase V422_valve.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy V422_valve.state_out.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density V422_valve.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature V422_valve.state_out.T(start = + 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure V422_valve.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure V422_valve.DP( + start = -200000.0); + MetroscopeModelingLibrary.Utilities.Units.Power V422_valve.W(start = 0, + nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy V422_valve.DH( + start = V422_valve.h_out_0-V422_valve.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + V422_valve.DT(start = V422_valve.T_out_0-V422_valve.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + V422_valve.C_in.Q(start = 17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure V422_valve.C_in.P(start = + 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V422_valve.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction V422_valve.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + V422_valve.C_out.Q(start = -17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure V422_valve.C_out.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V422_valve.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction V422_valve.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V422_valve.h( + start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputCv V422_valve.Cv_max( + start = 10000.0) "Maximum CV"; + MetroscopeModelingLibrary.Utilities.Units.Cv V422_valve.Cv(start = 10000.0) + "Cv"; + Modelica.Blocks.Interfaces.RealInput V422_valve.Opening(nominal = 0.5, unit = + "1", min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPercentage + V423_opening_sensor.Opening_pc(start = V423_opening_sensor.Opening_pc_0, + nominal = 15.0, unit = "1"); + Modelica.Blocks.Interfaces.RealOutput V423_opening_sensor.Opening(start = + V423_opening_sensor.Opening_pc_0/100, nominal = 0.15, unit = "1", min = 0.0, + max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPercentage + V422_opening_sensor.Opening_pc(start = V422_opening_sensor.Opening_pc_0, + nominal = 15.0, unit = "1"); + Modelica.Blocks.Interfaces.RealOutput V422_opening_sensor.Opening(start = + V422_opening_sensor.Opening_pc_0/100, nominal = 0.15, unit = "1", min = 0.0, + max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_sensor.Q(start = 35.329674, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Q_reject_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.P(start = + 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.h( + start = 96653.73) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Q_reject_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_reject_sensor.state.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_reject_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_reject_sensor.state.T(start = + 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_reject_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Q_reject_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_sensor.C_in.Q(start = 35.329674, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.C_in.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Q_reject_sensor.C_out.Q(start = -35.329674, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.C_out.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.flow_model.h_in + (start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.flow_model.h_out + (start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_sensor.flow_model.Q(start = 35.329674) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Q_reject_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_sensor.flow_model.rho_in + (start = 997.52985) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_sensor.flow_model.rho_out + (start = 997.52985) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_sensor.flow_model.rho + (start = 997.52985) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Q_reject_sensor.flow_model.Qv_in(start = 0.035417162) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Q_reject_sensor.flow_model.Qv_out(start = -0.035417162) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Q_reject_sensor.flow_model.Qv(start = 0.035417162) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_reject_sensor.flow_model.T_in + (start = 296.1949) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_reject_sensor.flow_model.T_out + (start = 296.1949) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Q_reject_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_reject_sensor.flow_model.state_in.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_reject_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_reject_sensor.flow_model.state_in.T + (start = 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_reject_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Q_reject_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_reject_sensor.flow_model.state_out.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_reject_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_reject_sensor.flow_model.state_out.T + (start = 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_reject_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Q_reject_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Q_reject_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Q_reject_sensor.flow_model.DH(start = Q_reject_sensor.flow_model.h_out_0- + Q_reject_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Q_reject_sensor.flow_model.DT(start = Q_reject_sensor.flow_model.T_out_0- + Q_reject_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_sensor.flow_model.C_in.Q(start = 35.329674, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Q_reject_sensor.flow_model.C_out.Q(start = -35.329674, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.flow_model.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_sensor.flow_model.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_reject_sensor.flow_model.T + (start = 296.1949) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate Q_reject_sensor.Qv( + start = 0.035417162); + Real Q_reject_sensor.Q_lm(start = 2125.0295, nominal = 6000.0); + Real Q_reject_sensor.Q_th(start = 127.18683, nominal = 360.0); + Real Q_reject_sensor.Q_lbs(start = 16.025272, nominal = 45.3592428); + Real Q_reject_sensor.Q_Mlbh(start = 0.28039896, nominal = 0.79366414387); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_press_sensor.Q(start = 35.329674, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Q_reject_press_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Q_reject_press_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_reject_press_sensor.state.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_reject_press_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_reject_press_sensor.state.T( + start = 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_reject_press_sensor.state.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Q_reject_press_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_press_sensor.C_in.Q(start = 35.329674, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_press_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Q_reject_press_sensor.C_out.Q(start = -35.329674, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_press_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.flow_model.h_in + (start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.flow_model.h_out + (start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_press_sensor.flow_model.Q(start = 35.329674) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Q_reject_press_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_press_sensor.flow_model.rho_in + (start = 997.52985) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_press_sensor.flow_model.rho_out + (start = 997.52985) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_reject_press_sensor.flow_model.rho + (start = 997.52985) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Q_reject_press_sensor.flow_model.Qv_in(start = 0.035417162) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Q_reject_press_sensor.flow_model.Qv_out(start = -0.035417162) + "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Q_reject_press_sensor.flow_model.Qv(start = 0.035417162) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_reject_press_sensor.flow_model.T_in + (start = 296.1949) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_reject_press_sensor.flow_model.T_out + (start = 296.1949) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Q_reject_press_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_reject_press_sensor.flow_model.state_in.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_reject_press_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_reject_press_sensor.flow_model.state_in.T + (start = 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_reject_press_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Q_reject_press_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_reject_press_sensor.flow_model.state_out.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_reject_press_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_reject_press_sensor.flow_model.state_out.T + (start = 296.1949, nominal = 500.0, min = 273.15, max = 2273.15) + "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_reject_press_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Q_reject_press_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Q_reject_press_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Q_reject_press_sensor.flow_model.DH(start = Q_reject_press_sensor.flow_model.h_out_0 + -Q_reject_press_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Q_reject_press_sensor.flow_model.DT(start = Q_reject_press_sensor.flow_model.T_out_0 + -Q_reject_press_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_reject_press_sensor.flow_model.C_in.Q(start = 35.329674, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_press_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Q_reject_press_sensor.flow_model.C_out.Q(start = -35.329674, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.flow_model.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction Q_reject_press_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_reject_press_sensor.flow_model.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_reject_press_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_reject_press_sensor.flow_model.T + (start = 296.1949) "Temperature of the fluid into the component"; + Real Q_reject_press_sensor.P_barG(start = 0.0, nominal = 100000.0); + Real Q_reject_press_sensor.P_psiG(start = 2.623E-05, nominal = 14.5038); + Real Q_reject_press_sensor.P_MPaG(start = -2.7755576E-17, nominal = + 0.09999999999999999); + Real Q_reject_press_sensor.P_kPaG(start = -1.4210855E-14, nominal = 100.0); + Real Q_reject_press_sensor.P_barA(start = 1.0, nominal = 1.0, unit = "bar"); + Real Q_reject_press_sensor.P_psiA(start = 14.5038, nominal = 14.5038); + Real Q_reject_press_sensor.P_MPaA(start = 0.1, nominal = 0.09999999999999999); + Real Q_reject_press_sensor.P_kPaA(start = 100.0, nominal = 100.0); + Real Q_reject_press_sensor.P_inHg(start = 29.53006, nominal = 29.530060000000002); + Real Q_reject_press_sensor.P_mbar(start = 1000.0, nominal = 1000.0, unit = + "mbar"); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Pump.h_in(start = + 84971.695) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Pump.h_out(start = + 79920.64) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate Pump.Q(start = + 54.12663) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Pump.P_in(start = 100000.0) + "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Pump.P_out(start = 300000.0) + "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Pump.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Pump.rho_in(start = 998.1531) + "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Pump.rho_out(start = + 998.4982) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Pump.rho(start = 998.3256) + "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate Pump.Qv_in( + start = 0.054226782) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate Pump.Qv_out( + start = -0.054208037) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate Pump.Qv( + start = 0.05421741) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Pump.T_in(start = + 293.4026) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Pump.T_out(start = + 292.15) "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Pump.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Pump.state_in.h(start = + 84971.695, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Pump.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Pump.state_in.T(start = 293.4026, + nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Pump.state_in.p(start = + 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Pump.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Pump.state_out.h(start = + 79920.64, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Pump.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Pump.state_out.T(start = 292.15, + nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Pump.state_out.p(start = + 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure Pump.DP( + start = 200000.0); + MetroscopeModelingLibrary.Utilities.Units.Power Pump.W(start = 0, nominal = + 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy Pump.DH( + start = Pump.h_out_0-Pump.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature Pump.DT( + start = Pump.T_out_0-Pump.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate Pump.C_in.Q( + start = 54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Pump.C_in.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Pump.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Pump.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate Pump.C_out.Q( + start = -54.12663, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Pump.C_out.P(start = + 300000.0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Pump.C_out.h_outflow + (start = 79920.64); + Modelica.Media.Interfaces.Types.MassFraction Pump.C_out.Xi_outflow[0]; + Real Pump.VRotn(start = 1400, nominal = 2000.0, min = 0.0) "Nominal rotational speed"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal Pump.a1(start = 0) + "x^2 coef. of the pump characteristics hn = f(vol_flow) (s2/m5)"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal Pump.a2(start = 0) + "x coef. of the pump characteristics hn = f(vol_flow) (s/m2)"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputHeight Pump.a3(start = 10) + "Constant coef. of the pump characteristics hn = f(vol_flow) (m)"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal Pump.b1(start = 0) + "x^2 coef. of the pump efficiency characteristics rh = f(vol_flow) (s2/m6)"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputReal Pump.b2(start = 0) + "x coef. of the pump efficiency characteristics rh = f(vol_flow) (s/m3)"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputYield Pump.b3(start = + 0.8) "Constant coef. of the pump efficiency characteristics rh = f(vol_flow) (s.u.)"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputYield Pump.rm(start = + 0.85) "Product of the pump mechanical and electrical efficiencies"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputYield Pump.rh_min( + start = 0.2) "Minimum efficiency to avoid zero crossings"; + MetroscopeModelingLibrary.Utilities.Units.Yield Pump.rh "Hydraulic efficiency"; + MetroscopeModelingLibrary.Utilities.Units.Height Pump.hn(start = 10) + "Pump head"; + MetroscopeModelingLibrary.Utilities.Units.Fraction Pump.R(start = 1) + "Reduced rotational speed"; + MetroscopeModelingLibrary.Utilities.Units.Power Pump.Wh "Hydraulic power"; + MetroscopeModelingLibrary.Utilities.Units.PositivePower Pump.Wm + "Mechanical power"; + Modelica.Blocks.Interfaces.RealInput Pump.VRot "Pump rotational speed"; + MetroscopeModelingLibrary.Utilities.Units.PositivePower Pump.C_power.W; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate CEC180_sensor.Q + (start = 36.461792, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC180_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.P(start = + 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.h( + start = 79312.05) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase CEC180_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC180_sensor.state.h( + start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC180_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC180_sensor.state.T(start = + 500.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC180_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate CEC180_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC180_sensor.C_in.Q(start = 36.461792, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.C_in.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC180_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC180_sensor.C_out.Q(start = -36.461792, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.C_out.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction CEC180_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.flow_model.h_in + (start = 79312.05) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.flow_model.h_out + (start = 79312.05) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC180_sensor.flow_model.Q(start = 36.461792) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction CEC180_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC180_sensor.flow_model.rho_in + (start = 998.0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC180_sensor.flow_model.rho_out + (start = 998.0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density CEC180_sensor.flow_model.rho + (start = 998.0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC180_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + CEC180_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + CEC180_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC180_sensor.flow_model.T_in + (start = 292.05) "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC180_sensor.flow_model.T_out + "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase CEC180_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC180_sensor.flow_model.state_in.h + (start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC180_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC180_sensor.flow_model.state_in.T + (start = 292.05, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC180_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase CEC180_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy CEC180_sensor.flow_model.state_out.h + (start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density CEC180_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature CEC180_sensor.flow_model.state_out.T + (start = 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure CEC180_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + CEC180_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power CEC180_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + CEC180_sensor.flow_model.DH(start = CEC180_sensor.flow_model.h_out_0- + CEC180_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + CEC180_sensor.flow_model.DT(start = CEC180_sensor.flow_model.T_out_0- + CEC180_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + CEC180_sensor.flow_model.C_in.Q(start = 36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction CEC180_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + CEC180_sensor.flow_model.C_out.Q(start = -36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.flow_model.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction CEC180_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy CEC180_sensor.flow_model.h + (start = 79312.05) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure CEC180_sensor.flow_model.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC180_sensor.flow_model.T + (start = 292.05) "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature CEC180_sensor.T(start = + 292.05); + Real CEC180_sensor.T_degC(start = 18.9, nominal = 573.15, unit = "degC"); + Real CEC180_sensor.T_degF(start = 1063.67, nominal = 1063.67, unit = "degF"); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate Press1_sensor.Q + (start = 36.461792, nominal = 100.0) "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Press1_sensor.Xi[0] + "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.P(start = + 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.h( + start = 79312.05) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Press1_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Press1_sensor.state.h( + start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Press1_sensor.state.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Press1_sensor.state.T(start = + 500.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Press1_sensor.state.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Press1_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Press1_sensor.C_in.Q(start = 36.461792, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.C_in.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Press1_sensor.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Press1_sensor.C_out.Q(start = -36.461792, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.C_out.P( + start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction Press1_sensor.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.flow_model.h_in + (start = 79312.05) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.flow_model.h_out + (start = 79312.05) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Press1_sensor.flow_model.Q(start = 36.461792) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Press1_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Press1_sensor.flow_model.rho_in + (start = 998.0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Press1_sensor.flow_model.rho_out + (start = 998.0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Press1_sensor.flow_model.rho + (start = 998.0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Press1_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Press1_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Press1_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Press1_sensor.flow_model.T_in + "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Press1_sensor.flow_model.T_out + "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Press1_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Press1_sensor.flow_model.state_in.h + (start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Press1_sensor.flow_model.state_in.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Press1_sensor.flow_model.state_in.T + (start = 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Press1_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Press1_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Press1_sensor.flow_model.state_out.h + (start = 79312.05, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Press1_sensor.flow_model.state_out.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Press1_sensor.flow_model.state_out.T + (start = 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Press1_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Press1_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Press1_sensor.flow_model.W( + start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Press1_sensor.flow_model.DH(start = Press1_sensor.flow_model.h_out_0- + Press1_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Press1_sensor.flow_model.DT(start = Press1_sensor.flow_model.T_out_0- + Press1_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Press1_sensor.flow_model.C_in.Q(start = 36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Press1_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Press1_sensor.flow_model.C_out.Q(start = -36.461792, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.flow_model.C_out.h_outflow + (start = 79312.05); + Modelica.Media.Interfaces.Types.MassFraction Press1_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Press1_sensor.flow_model.h + (start = 79312.05) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Press1_sensor.flow_model.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Press1_sensor.flow_model.T + "Temperature of the fluid into the component"; + Real Press1_sensor.P_barG(start = 0.0, nominal = 100000.0); + Real Press1_sensor.P_psiG(start = 2.623E-05, nominal = 14.5038); + Real Press1_sensor.P_MPaG(start = -1.3877788E-17, nominal = 0.09999999999999999); + Real Press1_sensor.P_kPaG(start = 0.0, nominal = 100.0); + Real Press1_sensor.P_barA(start = 1.0, nominal = 1.0, unit = "bar"); + Real Press1_sensor.P_psiA(start = 14.5038, nominal = 14.5038); + Real Press1_sensor.P_MPaA(start = 0.1, nominal = 0.09999999999999999); + Real Press1_sensor.P_kPaA(start = 100.0, nominal = 100.0); + Real Press1_sensor.P_inHg(start = 29.53006, nominal = 29.530060000000002); + Real Press1_sensor.P_mbar(start = 1000.0, nominal = 1000.0, unit = "mbar"); + MetroscopeModelingLibrary.Utilities.Units.NegativePower source.W_out; + MetroscopeModelingLibrary.Utilities.Units.NegativePower source.C_out.W; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V421_valve.h_in( + start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V421_valve.h_out( + start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate V421_valve.Q( + start = 17.664837) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure V421_valve.P_in(start = + 300000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure V421_valve.P_out(start = + 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction V421_valve.Xi[0] + "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density V421_valve.rho_in(start = + 997.63104) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density V421_valve.rho_out(start = + 997.52985) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density V421_valve.rho(start = 998.0) + "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + V421_valve.Qv_in(start = 0.017706783) "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + V421_valve.Qv_out(start = -0.017708581) "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate V421_valve.Qv + (start = 0.017707681) "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature V421_valve.T_in + "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature V421_valve.T_out + "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase V421_valve.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy V421_valve.state_in.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density V421_valve.state_in.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature V421_valve.state_in.T(start = + 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure V421_valve.state_in.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase V421_valve.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy V421_valve.state_out.h( + start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density V421_valve.state_out.d(start = 150, + nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature V421_valve.state_out.T(start = + 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure V421_valve.state_out.p( + start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure V421_valve.DP( + start = -200000.0); + MetroscopeModelingLibrary.Utilities.Units.Power V421_valve.W(start = 0, + nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy V421_valve.DH( + start = V421_valve.h_out_0-V421_valve.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + V421_valve.DT(start = V421_valve.T_out_0-V421_valve.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + V421_valve.C_in.Q(start = 17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure V421_valve.C_in.P(start = + 300000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V421_valve.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction V421_valve.C_in.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + V421_valve.C_out.Q(start = -17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure V421_valve.C_out.P(start = + 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V421_valve.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction V421_valve.C_out.Xi_outflow[0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy V421_valve.h( + start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputCv V421_valve.Cv_max( + start = 10000.0) "Maximum CV"; + MetroscopeModelingLibrary.Utilities.Units.Cv V421_valve.Cv(start = 10000.0) + "Cv"; + Modelica.Blocks.Interfaces.RealInput V421_valve.Opening(nominal = 0.5, unit = + "1", min = 0.0, max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.Inputs.InputPercentage + V421_opening_sensor.Opening_pc(start = V421_opening_sensor.Opening_pc_0, + nominal = 15.0, unit = "1"); + Modelica.Blocks.Interfaces.RealOutput V421_opening_sensor.Opening(start = + V421_opening_sensor.Opening_pc_0/100, nominal = 0.15, unit = "1", min = 0.0, + max = 1.0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_recirculation_sensor.Q(start = 17.664837, nominal = 100.0) + "Component mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Q_recirculation_sensor.Xi + [0] "Component mass fractions"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.P( + start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + Modelica.Media.Interfaces.Types.FixedPhase Q_recirculation_sensor.state.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_recirculation_sensor.state.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_recirculation_sensor.state.d( + start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_recirculation_sensor.state.T( + start = 500.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_recirculation_sensor.state.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFlowRate Q_recirculation_sensor.mass_flow_rate_bias + (start = 0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_recirculation_sensor.C_in.Q(start = 17.664837, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Q_recirculation_sensor.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Q_recirculation_sensor.C_out.Q(start = -17.664837, nominal = 100.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction Q_recirculation_sensor.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.flow_model.h_in + (start = 96653.73) "Inlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.flow_model.h_out + (start = 96653.73) "Outlet specific enthalpy"; + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_recirculation_sensor.flow_model.Q(start = 17.664837) "Inlet Mass flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.P_in + (start = 100000.0) "Inlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.P_out + (start = 100000.0) "Outlet Pressure"; + MetroscopeModelingLibrary.Utilities.Units.MassFraction Q_recirculation_sensor.flow_model.Xi + [0] "Species mass fraction"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_recirculation_sensor.flow_model.rho_in + (start = 998.0) "Inlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_recirculation_sensor.flow_model.rho_out + (start = 998.0) "Outlet density"; + MetroscopeModelingLibrary.Utilities.Units.Density Q_recirculation_sensor.flow_model.rho + (start = 998.0) "Mean density"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Q_recirculation_sensor.flow_model.Qv_in "Inlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.NegativeVolumeFlowRate + Q_recirculation_sensor.flow_model.Qv_out "Outlet volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.PositiveVolumeFlowRate + Q_recirculation_sensor.flow_model.Qv "Mean volumetric flow rate"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_recirculation_sensor.flow_model.T_in + "Fluid temperature"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_recirculation_sensor.flow_model.T_out + "Fluid temperature"; + Modelica.Media.Interfaces.Types.FixedPhase Q_recirculation_sensor.flow_model.state_in.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_recirculation_sensor.flow_model.state_in.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_recirculation_sensor.flow_model.state_in.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_recirculation_sensor.flow_model.state_in.T + (start = 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_recirculation_sensor.flow_model.state_in.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + Modelica.Media.Interfaces.Types.FixedPhase Q_recirculation_sensor.flow_model.state_out.phase + "Phase of the fluid: 1 for 1-phase, 2 for two-phase, 0 for not known, e.g., interactive use"; + Modelica.Media.Interfaces.Types.SpecificEnthalpy Q_recirculation_sensor.flow_model.state_out.h + (start = 96653.73, nominal = 500000.0) "Specific enthalpy"; + Modelica.Media.Interfaces.Types.Density Q_recirculation_sensor.flow_model.state_out.d + (start = 150, nominal = 500.0) "Density"; + Modelica.Media.Interfaces.Types.Temperature Q_recirculation_sensor.flow_model.state_out.T + (start = 300.0, nominal = 500.0, min = 273.15, max = 2273.15) "Temperature"; + Modelica.Media.Interfaces.Types.AbsolutePressure Q_recirculation_sensor.flow_model.state_out.p + (start = 5000000.0, nominal = 1000000.0, min = 611.657) "Pressure"; + MetroscopeModelingLibrary.Utilities.Units.DifferentialPressure + Q_recirculation_sensor.flow_model.DP(start = 0.0); + MetroscopeModelingLibrary.Utilities.Units.Power Q_recirculation_sensor.flow_model.W + (start = 0, nominal = 1000000.0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialEnthalpy + Q_recirculation_sensor.flow_model.DH(start = Q_recirculation_sensor.flow_model.h_out_0 + -Q_recirculation_sensor.flow_model.h_in_0); + MetroscopeModelingLibrary.Utilities.Units.DifferentialTemperature + Q_recirculation_sensor.flow_model.DT(start = Q_recirculation_sensor.flow_model.T_out_0 + -Q_recirculation_sensor.flow_model.T_in_0); + MetroscopeModelingLibrary.Utilities.Units.PositiveMassFlowRate + Q_recirculation_sensor.flow_model.C_in.Q(start = 17.664837, nominal = 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.C_in.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.flow_model.C_in.h_outflow + (start = 1000000.0); + Modelica.Media.Interfaces.Types.MassFraction Q_recirculation_sensor.flow_model.C_in.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.NegativeMassFlowRate + Q_recirculation_sensor.flow_model.C_out.Q(start = -17.664837, nominal = + 500.0); + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.C_out.P + (start = 100000.0); + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.flow_model.C_out.h_outflow + (start = 96653.73); + Modelica.Media.Interfaces.Types.MassFraction Q_recirculation_sensor.flow_model.C_out.Xi_outflow + [0]; + MetroscopeModelingLibrary.Utilities.Units.SpecificEnthalpy Q_recirculation_sensor.flow_model.h + (start = 96653.73) "Enthalpy of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Pressure Q_recirculation_sensor.flow_model.P + (start = 100000.0) "Pressure of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.Temperature Q_recirculation_sensor.flow_model.T + "Temperature of the fluid into the component"; + MetroscopeModelingLibrary.Utilities.Units.VolumeFlowRate Q_recirculation_sensor.Qv + (start = 0.017708581); + Real Q_recirculation_sensor.Q_lm(start = 6000.0, nominal = 6000.0); + Real Q_recirculation_sensor.Q_th(start = 360.0, nominal = 360.0); + Real Q_recirculation_sensor.Q_lbs(start = 45.35924, nominal = 45.3592428); + Real Q_recirculation_sensor.Q_Mlbh(start = 0.79366416, nominal = 0.79366414387); + +// Equations and algorithms + + // Component cooling_sink + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + cooling_sink.C_in.P = cooling_sink.P_in; + cooling_sink.C_in.Q = cooling_sink.Q_in; + inStream(cooling_sink.C_in.h_outflow) = cooling_sink.h_in; + inStream(cooling_sink.C_in.Xi_outflow) = cooling_sink.Xi_in; + cooling_sink.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (cooling_sink.P_in, cooling_sink.h_in, cooling_sink.Xi_in, 0, 0); + cooling_sink.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + cooling_sink.state_in); + cooling_sink.Qv_in = cooling_sink.Q_in/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + cooling_sink.state_in); + cooling_sink.C_in.h_outflow = 0; + cooling_sink.C_in.Xi_outflow = zeros(0); + // end of extends + + // Component turbine_outlet + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + turbine_outlet.C_out.P = turbine_outlet.P_out; + turbine_outlet.C_out.Q = turbine_outlet.Q_out; + turbine_outlet.C_out.h_outflow = turbine_outlet.h_out; + turbine_outlet.C_out.Xi_outflow = turbine_outlet.Xi_out; + turbine_outlet.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (turbine_outlet.P_out, turbine_outlet.h_out, turbine_outlet.Xi_out, 0, 0); + turbine_outlet.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + turbine_outlet.state_out); + turbine_outlet.Qv_out = turbine_outlet.Q_out/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + turbine_outlet.state_out); + // end of extends + + // Component condensate_sink + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + condensate_sink.C_in.P = condensate_sink.P_in; + condensate_sink.C_in.Q = condensate_sink.Q_in; + inStream(condensate_sink.C_in.h_outflow) = condensate_sink.h_in; + inStream(condensate_sink.C_in.Xi_outflow) = condensate_sink.Xi_in; + condensate_sink.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (condensate_sink.P_in, condensate_sink.h_in, condensate_sink.Xi_in, 0, 0); + condensate_sink.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + condensate_sink.state_in); + condensate_sink.Qv_in = condensate_sink.Q_in/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + condensate_sink.state_in); + condensate_sink.C_in.h_outflow = 0; + condensate_sink.C_in.Xi_outflow = zeros(0); + // end of extends + + // Component LOA.cold_side_pipe + // class MetroscopeModelingLibrary.WaterSteam.Pipes.Pipe + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + LOA.cold_side_pipe.h_in = inStream(LOA.cold_side_pipe.C_in.h_outflow); + LOA.cold_side_pipe.h_out = LOA.cold_side_pipe.C_out.h_outflow; + LOA.cold_side_pipe.Q = LOA.cold_side_pipe.C_in.Q; + LOA.cold_side_pipe.P_in = LOA.cold_side_pipe.C_in.P; + LOA.cold_side_pipe.P_out = LOA.cold_side_pipe.C_out.P; + LOA.cold_side_pipe.Xi = inStream(LOA.cold_side_pipe.C_in.Xi_outflow); + LOA.cold_side_pipe.C_in.h_outflow = 1000000.0; + LOA.cold_side_pipe.C_in.Xi_outflow = zeros(0); + LOA.cold_side_pipe.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.cold_side_pipe.P_in, LOA.cold_side_pipe.h_in, LOA.cold_side_pipe.Xi, + 0, 0); + LOA.cold_side_pipe.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.cold_side_pipe.P_out, LOA.cold_side_pipe.h_out, LOA.cold_side_pipe.Xi, + 0, 0); + LOA.cold_side_pipe.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.cold_side_pipe.state_in); + LOA.cold_side_pipe.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.cold_side_pipe.state_out); + LOA.cold_side_pipe.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.cold_side_pipe.state_in); + LOA.cold_side_pipe.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.cold_side_pipe.state_out); + LOA.cold_side_pipe.rho = (LOA.cold_side_pipe.rho_in+LOA.cold_side_pipe.rho_out) + /2; + LOA.cold_side_pipe.Qv_in = LOA.cold_side_pipe.Q/LOA.cold_side_pipe.rho_in; + LOA.cold_side_pipe.Qv_out = -LOA.cold_side_pipe.Q/LOA.cold_side_pipe.rho_out; + LOA.cold_side_pipe.Qv = (LOA.cold_side_pipe.Qv_in-LOA.cold_side_pipe.Qv_out) + /2; + LOA.cold_side_pipe.P_out-LOA.cold_side_pipe.P_in = LOA.cold_side_pipe.DP; + LOA.cold_side_pipe.Q*(LOA.cold_side_pipe.h_out-LOA.cold_side_pipe.h_in) = + LOA.cold_side_pipe.W; + LOA.cold_side_pipe.h_out-LOA.cold_side_pipe.h_in = LOA.cold_side_pipe.DH; + LOA.cold_side_pipe.T_out-LOA.cold_side_pipe.T_in = LOA.cold_side_pipe.DT; + LOA.cold_side_pipe.C_in.Q+LOA.cold_side_pipe.C_out.Q = 0; + LOA.cold_side_pipe.C_out.Xi_outflow = inStream(LOA.cold_side_pipe.C_in.Xi_outflow); + assert(LOA.cold_side_pipe.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + LOA.cold_side_pipe.h = LOA.cold_side_pipe.h_in; + LOA.cold_side_pipe.DH = 0; + // extends MetroscopeModelingLibrary.Partial.Pipes.Pipe + equation + if ( not LOA.cold_side_pipe.faulty) then + LOA.cold_side_pipe.fouling = 0; + end if; + LOA.cold_side_pipe.DP_f = -(1+LOA.cold_side_pipe.fouling/100)* + LOA.cold_side_pipe.Kfr*LOA.cold_side_pipe.Q*abs(LOA.cold_side_pipe.Q)/ + LOA.cold_side_pipe.rho_in; + LOA.cold_side_pipe.DP_z = -LOA.cold_side_pipe.rho_in*9.80665* + LOA.cold_side_pipe.delta_z; + LOA.cold_side_pipe.DP = LOA.cold_side_pipe.DP_f+LOA.cold_side_pipe.DP_z; + // end of extends + + // Component LOA.hot_side + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + LOA.hot_side.h_in = inStream(LOA.hot_side.C_in.h_outflow); + LOA.hot_side.h_out = LOA.hot_side.C_out.h_outflow; + LOA.hot_side.Q = LOA.hot_side.C_in.Q; + LOA.hot_side.P_in = LOA.hot_side.C_in.P; + LOA.hot_side.P_out = LOA.hot_side.C_out.P; + LOA.hot_side.Xi = inStream(LOA.hot_side.C_in.Xi_outflow); + LOA.hot_side.C_in.h_outflow = 1000000.0; + LOA.hot_side.C_in.Xi_outflow = zeros(0); + LOA.hot_side.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.hot_side.P_in, LOA.hot_side.h_in, LOA.hot_side.Xi, 0, 0); + LOA.hot_side.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.hot_side.P_out, LOA.hot_side.h_out, LOA.hot_side.Xi, 0, 0); + LOA.hot_side.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + LOA.hot_side.state_in); + LOA.hot_side.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.hot_side.state_out); + LOA.hot_side.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + LOA.hot_side.state_in); + LOA.hot_side.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + LOA.hot_side.state_out); + LOA.hot_side.rho = (LOA.hot_side.rho_in+LOA.hot_side.rho_out)/2; + LOA.hot_side.Qv_in = LOA.hot_side.Q/LOA.hot_side.rho_in; + LOA.hot_side.Qv_out = -LOA.hot_side.Q/LOA.hot_side.rho_out; + LOA.hot_side.Qv = (LOA.hot_side.Qv_in-LOA.hot_side.Qv_out)/2; + LOA.hot_side.P_out-LOA.hot_side.P_in = LOA.hot_side.DP; + LOA.hot_side.Q*(LOA.hot_side.h_out-LOA.hot_side.h_in) = LOA.hot_side.W; + LOA.hot_side.h_out-LOA.hot_side.h_in = LOA.hot_side.DH; + LOA.hot_side.T_out-LOA.hot_side.T_in = LOA.hot_side.DT; + LOA.hot_side.C_in.Q+LOA.hot_side.C_out.Q = 0; + LOA.hot_side.C_out.Xi_outflow = inStream(LOA.hot_side.C_in.Xi_outflow); + assert(LOA.hot_side.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPFlowModel + equation + LOA.hot_side.P = LOA.hot_side.P_in; + LOA.hot_side.DP = 0; + // end of extends + equation + LOA.hot_side.W = LOA.hot_side.W_input; + + // Component LOA.cold_side + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + LOA.cold_side.h_in = inStream(LOA.cold_side.C_in.h_outflow); + LOA.cold_side.h_out = LOA.cold_side.C_out.h_outflow; + LOA.cold_side.Q = LOA.cold_side.C_in.Q; + LOA.cold_side.P_in = LOA.cold_side.C_in.P; + LOA.cold_side.P_out = LOA.cold_side.C_out.P; + LOA.cold_side.Xi = inStream(LOA.cold_side.C_in.Xi_outflow); + LOA.cold_side.C_in.h_outflow = 1000000.0; + LOA.cold_side.C_in.Xi_outflow = zeros(0); + LOA.cold_side.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.cold_side.P_in, LOA.cold_side.h_in, LOA.cold_side.Xi, 0, 0); + LOA.cold_side.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.cold_side.P_out, LOA.cold_side.h_out, LOA.cold_side.Xi, 0, 0); + LOA.cold_side.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.cold_side.state_in); + LOA.cold_side.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.cold_side.state_out); + LOA.cold_side.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + LOA.cold_side.state_in); + LOA.cold_side.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + LOA.cold_side.state_out); + LOA.cold_side.rho = (LOA.cold_side.rho_in+LOA.cold_side.rho_out)/2; + LOA.cold_side.Qv_in = LOA.cold_side.Q/LOA.cold_side.rho_in; + LOA.cold_side.Qv_out = -LOA.cold_side.Q/LOA.cold_side.rho_out; + LOA.cold_side.Qv = (LOA.cold_side.Qv_in-LOA.cold_side.Qv_out)/2; + LOA.cold_side.P_out-LOA.cold_side.P_in = LOA.cold_side.DP; + LOA.cold_side.Q*(LOA.cold_side.h_out-LOA.cold_side.h_in) = LOA.cold_side.W; + LOA.cold_side.h_out-LOA.cold_side.h_in = LOA.cold_side.DH; + LOA.cold_side.T_out-LOA.cold_side.T_in = LOA.cold_side.DT; + LOA.cold_side.C_in.Q+LOA.cold_side.C_out.Q = 0; + LOA.cold_side.C_out.Xi_outflow = inStream(LOA.cold_side.C_in.Xi_outflow); + assert(LOA.cold_side.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPFlowModel + equation + LOA.cold_side.P = LOA.cold_side.P_in; + LOA.cold_side.DP = 0; + // end of extends + equation + LOA.cold_side.W = LOA.cold_side.W_input; + + // Component LOA.water_height_pipe + // class MetroscopeModelingLibrary.WaterSteam.Pipes.Pipe + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + LOA.water_height_pipe.h_in = inStream(LOA.water_height_pipe.C_in.h_outflow); + LOA.water_height_pipe.h_out = LOA.water_height_pipe.C_out.h_outflow; + LOA.water_height_pipe.Q = LOA.water_height_pipe.C_in.Q; + LOA.water_height_pipe.P_in = LOA.water_height_pipe.C_in.P; + LOA.water_height_pipe.P_out = LOA.water_height_pipe.C_out.P; + LOA.water_height_pipe.Xi = inStream(LOA.water_height_pipe.C_in.Xi_outflow); + LOA.water_height_pipe.C_in.h_outflow = 1000000.0; + LOA.water_height_pipe.C_in.Xi_outflow = zeros(0); + LOA.water_height_pipe.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.water_height_pipe.P_in, LOA.water_height_pipe.h_in, + LOA.water_height_pipe.Xi, 0, 0); + LOA.water_height_pipe.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.water_height_pipe.P_out, LOA.water_height_pipe.h_out, + LOA.water_height_pipe.Xi, 0, 0); + LOA.water_height_pipe.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.water_height_pipe.state_in); + LOA.water_height_pipe.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.water_height_pipe.state_out); + LOA.water_height_pipe.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.water_height_pipe.state_in); + LOA.water_height_pipe.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.water_height_pipe.state_out); + LOA.water_height_pipe.rho = (LOA.water_height_pipe.rho_in+LOA.water_height_pipe.rho_out) + /2; + LOA.water_height_pipe.Qv_in = LOA.water_height_pipe.Q/LOA.water_height_pipe.rho_in; + LOA.water_height_pipe.Qv_out = -LOA.water_height_pipe.Q/LOA.water_height_pipe.rho_out; + LOA.water_height_pipe.Qv = (LOA.water_height_pipe.Qv_in-LOA.water_height_pipe.Qv_out) + /2; + LOA.water_height_pipe.P_out-LOA.water_height_pipe.P_in = LOA.water_height_pipe.DP; + LOA.water_height_pipe.Q*(LOA.water_height_pipe.h_out-LOA.water_height_pipe.h_in) + = LOA.water_height_pipe.W; + LOA.water_height_pipe.h_out-LOA.water_height_pipe.h_in = LOA.water_height_pipe.DH; + LOA.water_height_pipe.T_out-LOA.water_height_pipe.T_in = LOA.water_height_pipe.DT; + LOA.water_height_pipe.C_in.Q+LOA.water_height_pipe.C_out.Q = 0; + LOA.water_height_pipe.C_out.Xi_outflow = inStream(LOA.water_height_pipe.C_in.Xi_outflow); + assert(LOA.water_height_pipe.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + LOA.water_height_pipe.h = LOA.water_height_pipe.h_in; + LOA.water_height_pipe.DH = 0; + // extends MetroscopeModelingLibrary.Partial.Pipes.Pipe + equation + if ( not LOA.water_height_pipe.faulty) then + LOA.water_height_pipe.fouling = 0; + end if; + LOA.water_height_pipe.DP_f = -(1+LOA.water_height_pipe.fouling/100)* + LOA.water_height_pipe.Kfr*LOA.water_height_pipe.Q*abs(LOA.water_height_pipe.Q) + /LOA.water_height_pipe.rho_in; + LOA.water_height_pipe.DP_z = -LOA.water_height_pipe.rho_in*9.80665* + LOA.water_height_pipe.delta_z; + LOA.water_height_pipe.DP = LOA.water_height_pipe.DP_f+LOA.water_height_pipe.DP_z; + // end of extends + + // Component LOA.incondensables_in + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + LOA.incondensables_in.h_in = inStream(LOA.incondensables_in.C_in.h_outflow); + LOA.incondensables_in.h_out = LOA.incondensables_in.C_out.h_outflow; + LOA.incondensables_in.Q = LOA.incondensables_in.C_in.Q; + LOA.incondensables_in.P_in = LOA.incondensables_in.C_in.P; + LOA.incondensables_in.P_out = LOA.incondensables_in.C_out.P; + LOA.incondensables_in.Xi = inStream(LOA.incondensables_in.C_in.Xi_outflow); + LOA.incondensables_in.C_in.h_outflow = 1000000.0; + LOA.incondensables_in.C_in.Xi_outflow = zeros(0); + LOA.incondensables_in.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.incondensables_in.P_in, LOA.incondensables_in.h_in, + LOA.incondensables_in.Xi, 0, 0); + LOA.incondensables_in.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.incondensables_in.P_out, LOA.incondensables_in.h_out, + LOA.incondensables_in.Xi, 0, 0); + LOA.incondensables_in.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.incondensables_in.state_in); + LOA.incondensables_in.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.incondensables_in.state_out); + LOA.incondensables_in.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.incondensables_in.state_in); + LOA.incondensables_in.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.incondensables_in.state_out); + LOA.incondensables_in.rho = (LOA.incondensables_in.rho_in+LOA.incondensables_in.rho_out) + /2; + LOA.incondensables_in.Qv_in = LOA.incondensables_in.Q/LOA.incondensables_in.rho_in; + LOA.incondensables_in.Qv_out = -LOA.incondensables_in.Q/LOA.incondensables_in.rho_out; + LOA.incondensables_in.Qv = (LOA.incondensables_in.Qv_in-LOA.incondensables_in.Qv_out) + /2; + LOA.incondensables_in.P_out-LOA.incondensables_in.P_in = LOA.incondensables_in.DP; + LOA.incondensables_in.Q*(LOA.incondensables_in.h_out-LOA.incondensables_in.h_in) + = LOA.incondensables_in.W; + LOA.incondensables_in.h_out-LOA.incondensables_in.h_in = LOA.incondensables_in.DH; + LOA.incondensables_in.T_out-LOA.incondensables_in.T_in = LOA.incondensables_in.DT; + LOA.incondensables_in.C_in.Q+LOA.incondensables_in.C_out.Q = 0; + LOA.incondensables_in.C_out.Xi_outflow = inStream(LOA.incondensables_in.C_in.Xi_outflow); + assert(LOA.incondensables_in.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + LOA.incondensables_in.h = LOA.incondensables_in.h_in; + LOA.incondensables_in.DH = 0; + // end of extends + equation + LOA.incondensables_in.DP = LOA.incondensables_in.DP_input; + + // Component LOA.incondensables_out + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + LOA.incondensables_out.h_in = inStream(LOA.incondensables_out.C_in.h_outflow); + LOA.incondensables_out.h_out = LOA.incondensables_out.C_out.h_outflow; + LOA.incondensables_out.Q = LOA.incondensables_out.C_in.Q; + LOA.incondensables_out.P_in = LOA.incondensables_out.C_in.P; + LOA.incondensables_out.P_out = LOA.incondensables_out.C_out.P; + LOA.incondensables_out.Xi = inStream(LOA.incondensables_out.C_in.Xi_outflow); + LOA.incondensables_out.C_in.h_outflow = 1000000.0; + LOA.incondensables_out.C_in.Xi_outflow = zeros(0); + LOA.incondensables_out.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.incondensables_out.P_in, LOA.incondensables_out.h_in, + LOA.incondensables_out.Xi, 0, 0); + LOA.incondensables_out.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (LOA.incondensables_out.P_out, LOA.incondensables_out.h_out, + LOA.incondensables_out.Xi, 0, 0); + LOA.incondensables_out.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.incondensables_out.state_in); + LOA.incondensables_out.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + LOA.incondensables_out.state_out); + LOA.incondensables_out.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.incondensables_out.state_in); + LOA.incondensables_out.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + LOA.incondensables_out.state_out); + LOA.incondensables_out.rho = (LOA.incondensables_out.rho_in+ + LOA.incondensables_out.rho_out)/2; + LOA.incondensables_out.Qv_in = LOA.incondensables_out.Q/LOA.incondensables_out.rho_in; + LOA.incondensables_out.Qv_out = -LOA.incondensables_out.Q/ + LOA.incondensables_out.rho_out; + LOA.incondensables_out.Qv = (LOA.incondensables_out.Qv_in-LOA.incondensables_out.Qv_out) + /2; + LOA.incondensables_out.P_out-LOA.incondensables_out.P_in = + LOA.incondensables_out.DP; + LOA.incondensables_out.Q*(LOA.incondensables_out.h_out-LOA.incondensables_out.h_in) + = LOA.incondensables_out.W; + LOA.incondensables_out.h_out-LOA.incondensables_out.h_in = + LOA.incondensables_out.DH; + LOA.incondensables_out.T_out-LOA.incondensables_out.T_in = + LOA.incondensables_out.DT; + LOA.incondensables_out.C_in.Q+LOA.incondensables_out.C_out.Q = 0; + LOA.incondensables_out.C_out.Xi_outflow = inStream(LOA.incondensables_out.C_in.Xi_outflow); + assert(LOA.incondensables_out.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + LOA.incondensables_out.h = LOA.incondensables_out.h_in; + LOA.incondensables_out.DH = 0; + // end of extends + equation + LOA.incondensables_out.DP = LOA.incondensables_out.DP_input; + + // Component LOA + // class MetroscopeModelingLibrary.WaterSteam.HeatExchangers.Condenser + equation + if ( not LOA.faulty) then + LOA.fouling = 0; + LOA.air_intake = 0; + LOA.Qv_cold_in_decrease = 0; + end if; + LOA.Q_cold = LOA.cold_side.Q; + LOA.T_cold_in = LOA.cold_side.T_in; + LOA.T_cold_out = LOA.cold_side.T_out; + LOA.cold_side.Qv = LOA.Qv_cold_in*(1-LOA.Qv_cold_in_decrease/100); + LOA.Q_hot = LOA.hot_side.Q; + LOA.T_hot_in = LOA.hot_side.T_in; + LOA.T_hot_out = LOA.hot_side.T_out; + LOA.cold_side.W = LOA.W; + LOA.P_tot = LOA.incondensables_in.P_in; + LOA.hot_side.W+LOA.cold_side.W = 0; + LOA.cold_side_pipe.delta_z = 0; + LOA.cold_side_pipe.Kfr = LOA.Kfr_cold; + LOA.water_height_pipe.delta_z = -LOA.water_height; + LOA.water_height_pipe.Kfr = 0; + LOA.water_height_pipe.DP = LOA.water_height_DP; + LOA.P_incond = LOA.P_offset+LOA.R*(LOA.C_incond+LOA.air_intake)*LOA.Tsat; + LOA.incondensables_in.DP = -LOA.P_incond; + LOA.incondensables_out.DP = LOA.P_incond; + assert(LOA.T_hot_in-LOA.Tsat < 0.1, "The steam admitted in the condenser in superheated", + AssertionLevel.warning); + LOA.Psat = LOA.hot_side.P_in; + LOA.Tsat = Modelica.Media.Water.WaterIF97_ph.saturationTemperature_Unique9( + LOA.Psat); + LOA.hot_side.h_out = Modelica.Media.Water.WaterIF97_ph.bubbleEnthalpy_Unique7 + ( + Modelica.Media.Water.WaterIF97_ph.setSat_p_Unique8(LOA.Psat)); + 0 = LOA.Tsat-LOA.T_cold_out-(LOA.Tsat-LOA.T_cold_in)*exp(LOA.Kth*(1- + LOA.fouling/100)*LOA.S*((LOA.T_cold_in-LOA.T_cold_out)/LOA.W)); + LOA.cold_side_pipe.C_in.P = LOA.C_cold_in.P; + LOA.C_cold_in.Q-LOA.cold_side_pipe.C_in.Q = 0.0; + LOA.cold_side.C_out.P = LOA.C_cold_out.P; + LOA.C_cold_out.Q-LOA.cold_side.C_out.Q = 0.0; + LOA.incondensables_in.C_in.P = LOA.C_hot_in.P; + LOA.C_hot_in.Q-LOA.incondensables_in.C_in.Q = 0.0; + LOA.water_height_pipe.C_out.P = LOA.C_hot_out.P; + LOA.C_hot_out.Q-LOA.water_height_pipe.C_out.Q = 0.0; + LOA.cold_side_pipe.C_out.P = LOA.cold_side.C_in.P; + LOA.cold_side.C_in.Q+LOA.cold_side_pipe.C_out.Q = 0.0; + LOA.incondensables_in.C_out.P = LOA.hot_side.C_in.P; + LOA.hot_side.C_in.Q+LOA.incondensables_in.C_out.Q = 0.0; + LOA.incondensables_out.C_in.P = LOA.hot_side.C_out.P; + LOA.hot_side.C_out.Q+LOA.incondensables_out.C_in.Q = 0.0; + LOA.water_height_pipe.C_in.P = LOA.incondensables_out.C_out.P; + LOA.incondensables_out.C_out.Q+LOA.water_height_pipe.C_in.Q = 0.0; + + // Component VCT178_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + VCT178_sensor.flow_model.h_in = inStream(VCT178_sensor.flow_model.C_in.h_outflow); + VCT178_sensor.flow_model.h_out = VCT178_sensor.flow_model.C_out.h_outflow; + VCT178_sensor.flow_model.Q = VCT178_sensor.flow_model.C_in.Q; + VCT178_sensor.flow_model.P_in = VCT178_sensor.flow_model.C_in.P; + VCT178_sensor.flow_model.P_out = VCT178_sensor.flow_model.C_out.P; + VCT178_sensor.flow_model.Xi = inStream(VCT178_sensor.flow_model.C_in.Xi_outflow); + VCT178_sensor.flow_model.C_in.h_outflow = 1000000.0; + VCT178_sensor.flow_model.C_in.Xi_outflow = zeros(0); + VCT178_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (VCT178_sensor.flow_model.P_in, VCT178_sensor.flow_model.h_in, + VCT178_sensor.flow_model.Xi, 0, 0); + VCT178_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (VCT178_sensor.flow_model.P_out, VCT178_sensor.flow_model.h_out, + VCT178_sensor.flow_model.Xi, 0, 0); + VCT178_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + VCT178_sensor.flow_model.state_in); + VCT178_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + VCT178_sensor.flow_model.state_out); + VCT178_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + VCT178_sensor.flow_model.state_in); + VCT178_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + VCT178_sensor.flow_model.state_out); + VCT178_sensor.flow_model.rho = (VCT178_sensor.flow_model.rho_in+ + VCT178_sensor.flow_model.rho_out)/2; + VCT178_sensor.flow_model.Qv_in = VCT178_sensor.flow_model.Q/ + VCT178_sensor.flow_model.rho_in; + VCT178_sensor.flow_model.Qv_out = -VCT178_sensor.flow_model.Q/ + VCT178_sensor.flow_model.rho_out; + VCT178_sensor.flow_model.Qv = (VCT178_sensor.flow_model.Qv_in- + VCT178_sensor.flow_model.Qv_out)/2; + VCT178_sensor.flow_model.P_out-VCT178_sensor.flow_model.P_in = + VCT178_sensor.flow_model.DP; + VCT178_sensor.flow_model.Q*(VCT178_sensor.flow_model.h_out- + VCT178_sensor.flow_model.h_in) = VCT178_sensor.flow_model.W; + VCT178_sensor.flow_model.h_out-VCT178_sensor.flow_model.h_in = + VCT178_sensor.flow_model.DH; + VCT178_sensor.flow_model.T_out-VCT178_sensor.flow_model.T_in = + VCT178_sensor.flow_model.DT; + VCT178_sensor.flow_model.C_in.Q+VCT178_sensor.flow_model.C_out.Q = 0; + VCT178_sensor.flow_model.C_out.Xi_outflow = inStream(VCT178_sensor.flow_model.C_in.Xi_outflow); + assert(VCT178_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + VCT178_sensor.flow_model.P = VCT178_sensor.flow_model.P_in; + VCT178_sensor.flow_model.h = VCT178_sensor.flow_model.h_in; + VCT178_sensor.flow_model.T = VCT178_sensor.flow_model.T_in; + VCT178_sensor.flow_model.DP = 0; + VCT178_sensor.flow_model.DH = 0; + // end of extends + + // Component VCT178_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not VCT178_sensor.faulty_flow_rate) then + VCT178_sensor.mass_flow_rate_bias = 0; + end if; + VCT178_sensor.P = VCT178_sensor.C_in.P; + VCT178_sensor.Q = VCT178_sensor.C_in.Q+VCT178_sensor.mass_flow_rate_bias; + VCT178_sensor.Xi = inStream(VCT178_sensor.C_in.Xi_outflow); + VCT178_sensor.h = inStream(VCT178_sensor.C_in.h_outflow); + VCT178_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (VCT178_sensor.P, VCT178_sensor.h, VCT178_sensor.Xi, 0, 0); + assert(VCT178_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + VCT178_sensor.P_barA = VCT178_sensor.P*1E-05; + VCT178_sensor.P_psiA = VCT178_sensor.P*0.000145038; + VCT178_sensor.P_MPaA = VCT178_sensor.P*1E-06; + VCT178_sensor.P_kPaA = VCT178_sensor.P*0.001; + VCT178_sensor.P_barG = VCT178_sensor.P_barA-1; + VCT178_sensor.P_psiG = VCT178_sensor.P_psiA-14.50377377; + VCT178_sensor.P_MPaG = VCT178_sensor.P_MPaA-0.1; + VCT178_sensor.P_kPaG = VCT178_sensor.P_kPaA-100; + VCT178_sensor.P_mbar = VCT178_sensor.P*0.01; + VCT178_sensor.P_inHg = VCT178_sensor.P*0.0002953006; + // end of extends + equation + VCT178_sensor.flow_model.C_in.P = VCT178_sensor.C_in.P; + VCT178_sensor.C_in.Q-VCT178_sensor.flow_model.C_in.Q = 0.0; + VCT178_sensor.flow_model.C_out.P = VCT178_sensor.C_out.P; + VCT178_sensor.C_out.Q-VCT178_sensor.flow_model.C_out.Q = 0.0; + + // Component Hotside_Temp_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Hotside_Temp_sensor.flow_model.h_in = inStream(Hotside_Temp_sensor.flow_model.C_in.h_outflow); + Hotside_Temp_sensor.flow_model.h_out = Hotside_Temp_sensor.flow_model.C_out.h_outflow; + Hotside_Temp_sensor.flow_model.Q = Hotside_Temp_sensor.flow_model.C_in.Q; + Hotside_Temp_sensor.flow_model.P_in = Hotside_Temp_sensor.flow_model.C_in.P; + Hotside_Temp_sensor.flow_model.P_out = Hotside_Temp_sensor.flow_model.C_out.P; + Hotside_Temp_sensor.flow_model.Xi = inStream(Hotside_Temp_sensor.flow_model.C_in.Xi_outflow); + Hotside_Temp_sensor.flow_model.C_in.h_outflow = 1000000.0; + Hotside_Temp_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Hotside_Temp_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Hotside_Temp_sensor.flow_model.P_in, Hotside_Temp_sensor.flow_model.h_in, + Hotside_Temp_sensor.flow_model.Xi, 0, 0); + Hotside_Temp_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Hotside_Temp_sensor.flow_model.P_out, Hotside_Temp_sensor.flow_model.h_out, + Hotside_Temp_sensor.flow_model.Xi, 0, 0); + Hotside_Temp_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Hotside_Temp_sensor.flow_model.state_in); + Hotside_Temp_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Hotside_Temp_sensor.flow_model.state_out); + Hotside_Temp_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Hotside_Temp_sensor.flow_model.state_in); + Hotside_Temp_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Hotside_Temp_sensor.flow_model.state_out); + Hotside_Temp_sensor.flow_model.rho = (Hotside_Temp_sensor.flow_model.rho_in + +Hotside_Temp_sensor.flow_model.rho_out)/2; + Hotside_Temp_sensor.flow_model.Qv_in = Hotside_Temp_sensor.flow_model.Q/ + Hotside_Temp_sensor.flow_model.rho_in; + Hotside_Temp_sensor.flow_model.Qv_out = -Hotside_Temp_sensor.flow_model.Q + /Hotside_Temp_sensor.flow_model.rho_out; + Hotside_Temp_sensor.flow_model.Qv = (Hotside_Temp_sensor.flow_model.Qv_in- + Hotside_Temp_sensor.flow_model.Qv_out)/2; + Hotside_Temp_sensor.flow_model.P_out-Hotside_Temp_sensor.flow_model.P_in + = Hotside_Temp_sensor.flow_model.DP; + Hotside_Temp_sensor.flow_model.Q*(Hotside_Temp_sensor.flow_model.h_out- + Hotside_Temp_sensor.flow_model.h_in) = Hotside_Temp_sensor.flow_model.W; + Hotside_Temp_sensor.flow_model.h_out-Hotside_Temp_sensor.flow_model.h_in + = Hotside_Temp_sensor.flow_model.DH; + Hotside_Temp_sensor.flow_model.T_out-Hotside_Temp_sensor.flow_model.T_in + = Hotside_Temp_sensor.flow_model.DT; + Hotside_Temp_sensor.flow_model.C_in.Q+Hotside_Temp_sensor.flow_model.C_out.Q + = 0; + Hotside_Temp_sensor.flow_model.C_out.Xi_outflow = inStream( + Hotside_Temp_sensor.flow_model.C_in.Xi_outflow); + assert(Hotside_Temp_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Hotside_Temp_sensor.flow_model.P = Hotside_Temp_sensor.flow_model.P_in; + Hotside_Temp_sensor.flow_model.h = Hotside_Temp_sensor.flow_model.h_in; + Hotside_Temp_sensor.flow_model.T = Hotside_Temp_sensor.flow_model.T_in; + Hotside_Temp_sensor.flow_model.DP = 0; + Hotside_Temp_sensor.flow_model.DH = 0; + // end of extends + + // Component Hotside_Temp_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Hotside_Temp_sensor.faulty_flow_rate) then + Hotside_Temp_sensor.mass_flow_rate_bias = 0; + end if; + Hotside_Temp_sensor.P = Hotside_Temp_sensor.C_in.P; + Hotside_Temp_sensor.Q = Hotside_Temp_sensor.C_in.Q+Hotside_Temp_sensor.mass_flow_rate_bias; + Hotside_Temp_sensor.Xi = inStream(Hotside_Temp_sensor.C_in.Xi_outflow); + Hotside_Temp_sensor.h = inStream(Hotside_Temp_sensor.C_in.h_outflow); + Hotside_Temp_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Hotside_Temp_sensor.P, Hotside_Temp_sensor.h, Hotside_Temp_sensor.Xi, 0, + 0); + assert(Hotside_Temp_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + Hotside_Temp_sensor.T = Hotside_Temp_sensor.flow_model.T; + Hotside_Temp_sensor.T_degC+273.15 = Hotside_Temp_sensor.T; + Hotside_Temp_sensor.T_degF = Hotside_Temp_sensor.T_degC*1.8+32; + // end of extends + equation + Hotside_Temp_sensor.flow_model.C_in.P = Hotside_Temp_sensor.C_in.P; + Hotside_Temp_sensor.C_in.Q-Hotside_Temp_sensor.flow_model.C_in.Q = 0.0; + Hotside_Temp_sensor.flow_model.C_out.P = Hotside_Temp_sensor.C_out.P; + Hotside_Temp_sensor.C_out.Q-Hotside_Temp_sensor.flow_model.C_out.Q = 0.0; + + // Component Hotside_Flow_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Hotside_Flow_sensor.flow_model.h_in = inStream(Hotside_Flow_sensor.flow_model.C_in.h_outflow); + Hotside_Flow_sensor.flow_model.h_out = Hotside_Flow_sensor.flow_model.C_out.h_outflow; + Hotside_Flow_sensor.flow_model.Q = Hotside_Flow_sensor.flow_model.C_in.Q; + Hotside_Flow_sensor.flow_model.P_in = Hotside_Flow_sensor.flow_model.C_in.P; + Hotside_Flow_sensor.flow_model.P_out = Hotside_Flow_sensor.flow_model.C_out.P; + Hotside_Flow_sensor.flow_model.Xi = inStream(Hotside_Flow_sensor.flow_model.C_in.Xi_outflow); + Hotside_Flow_sensor.flow_model.C_in.h_outflow = 1000000.0; + Hotside_Flow_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Hotside_Flow_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Hotside_Flow_sensor.flow_model.P_in, Hotside_Flow_sensor.flow_model.h_in, + Hotside_Flow_sensor.flow_model.Xi, 0, 0); + Hotside_Flow_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Hotside_Flow_sensor.flow_model.P_out, Hotside_Flow_sensor.flow_model.h_out, + Hotside_Flow_sensor.flow_model.Xi, 0, 0); + Hotside_Flow_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Hotside_Flow_sensor.flow_model.state_in); + Hotside_Flow_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Hotside_Flow_sensor.flow_model.state_out); + Hotside_Flow_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Hotside_Flow_sensor.flow_model.state_in); + Hotside_Flow_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Hotside_Flow_sensor.flow_model.state_out); + Hotside_Flow_sensor.flow_model.rho = (Hotside_Flow_sensor.flow_model.rho_in + +Hotside_Flow_sensor.flow_model.rho_out)/2; + Hotside_Flow_sensor.flow_model.Qv_in = Hotside_Flow_sensor.flow_model.Q/ + Hotside_Flow_sensor.flow_model.rho_in; + Hotside_Flow_sensor.flow_model.Qv_out = -Hotside_Flow_sensor.flow_model.Q + /Hotside_Flow_sensor.flow_model.rho_out; + Hotside_Flow_sensor.flow_model.Qv = (Hotside_Flow_sensor.flow_model.Qv_in- + Hotside_Flow_sensor.flow_model.Qv_out)/2; + Hotside_Flow_sensor.flow_model.P_out-Hotside_Flow_sensor.flow_model.P_in + = Hotside_Flow_sensor.flow_model.DP; + Hotside_Flow_sensor.flow_model.Q*(Hotside_Flow_sensor.flow_model.h_out- + Hotside_Flow_sensor.flow_model.h_in) = Hotside_Flow_sensor.flow_model.W; + Hotside_Flow_sensor.flow_model.h_out-Hotside_Flow_sensor.flow_model.h_in + = Hotside_Flow_sensor.flow_model.DH; + Hotside_Flow_sensor.flow_model.T_out-Hotside_Flow_sensor.flow_model.T_in + = Hotside_Flow_sensor.flow_model.DT; + Hotside_Flow_sensor.flow_model.C_in.Q+Hotside_Flow_sensor.flow_model.C_out.Q + = 0; + Hotside_Flow_sensor.flow_model.C_out.Xi_outflow = inStream( + Hotside_Flow_sensor.flow_model.C_in.Xi_outflow); + assert(Hotside_Flow_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Hotside_Flow_sensor.flow_model.P = Hotside_Flow_sensor.flow_model.P_in; + Hotside_Flow_sensor.flow_model.h = Hotside_Flow_sensor.flow_model.h_in; + Hotside_Flow_sensor.flow_model.T = Hotside_Flow_sensor.flow_model.T_in; + Hotside_Flow_sensor.flow_model.DP = 0; + Hotside_Flow_sensor.flow_model.DH = 0; + // end of extends + + // Component Hotside_Flow_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Hotside_Flow_sensor.faulty_flow_rate) then + Hotside_Flow_sensor.mass_flow_rate_bias = 0; + end if; + Hotside_Flow_sensor.P = Hotside_Flow_sensor.C_in.P; + Hotside_Flow_sensor.Q = Hotside_Flow_sensor.C_in.Q+Hotside_Flow_sensor.mass_flow_rate_bias; + Hotside_Flow_sensor.Xi = inStream(Hotside_Flow_sensor.C_in.Xi_outflow); + Hotside_Flow_sensor.h = inStream(Hotside_Flow_sensor.C_in.h_outflow); + Hotside_Flow_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Hotside_Flow_sensor.P, Hotside_Flow_sensor.h, Hotside_Flow_sensor.Xi, 0, + 0); + assert(Hotside_Flow_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + Hotside_Flow_sensor.Qv = Hotside_Flow_sensor.Q/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Hotside_Flow_sensor.state); + Hotside_Flow_sensor.Q_lm = Hotside_Flow_sensor.Qv*60000; + Hotside_Flow_sensor.Q_th = Hotside_Flow_sensor.Q*3.6; + Hotside_Flow_sensor.Q_lbs = Hotside_Flow_sensor.Q*0.453592428; + Hotside_Flow_sensor.Q_Mlbh = Hotside_Flow_sensor.Q*0.0079366414387; + // end of extends + equation + Hotside_Flow_sensor.flow_model.C_in.P = Hotside_Flow_sensor.C_in.P; + Hotside_Flow_sensor.C_in.Q-Hotside_Flow_sensor.flow_model.C_in.Q = 0.0; + Hotside_Flow_sensor.flow_model.C_out.P = Hotside_Flow_sensor.C_out.P; + Hotside_Flow_sensor.C_out.Q-Hotside_Flow_sensor.flow_model.C_out.Q = 0.0; + + // Component Coldside_Flow_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Coldside_Flow_sensor.flow_model.h_in = inStream(Coldside_Flow_sensor.flow_model.C_in.h_outflow); + Coldside_Flow_sensor.flow_model.h_out = Coldside_Flow_sensor.flow_model.C_out.h_outflow; + Coldside_Flow_sensor.flow_model.Q = Coldside_Flow_sensor.flow_model.C_in.Q; + Coldside_Flow_sensor.flow_model.P_in = Coldside_Flow_sensor.flow_model.C_in.P; + Coldside_Flow_sensor.flow_model.P_out = Coldside_Flow_sensor.flow_model.C_out.P; + Coldside_Flow_sensor.flow_model.Xi = inStream(Coldside_Flow_sensor.flow_model.C_in.Xi_outflow); + Coldside_Flow_sensor.flow_model.C_in.h_outflow = 1000000.0; + Coldside_Flow_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Coldside_Flow_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Coldside_Flow_sensor.flow_model.P_in, Coldside_Flow_sensor.flow_model.h_in, + Coldside_Flow_sensor.flow_model.Xi, 0, 0); + Coldside_Flow_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Coldside_Flow_sensor.flow_model.P_out, Coldside_Flow_sensor.flow_model.h_out, + Coldside_Flow_sensor.flow_model.Xi, 0, 0); + Coldside_Flow_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Coldside_Flow_sensor.flow_model.state_in); + Coldside_Flow_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Coldside_Flow_sensor.flow_model.state_out); + Coldside_Flow_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Coldside_Flow_sensor.flow_model.state_in); + Coldside_Flow_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Coldside_Flow_sensor.flow_model.state_out); + Coldside_Flow_sensor.flow_model.rho = (Coldside_Flow_sensor.flow_model.rho_in + +Coldside_Flow_sensor.flow_model.rho_out)/2; + Coldside_Flow_sensor.flow_model.Qv_in = Coldside_Flow_sensor.flow_model.Q/ + Coldside_Flow_sensor.flow_model.rho_in; + Coldside_Flow_sensor.flow_model.Qv_out = -Coldside_Flow_sensor.flow_model.Q + /Coldside_Flow_sensor.flow_model.rho_out; + Coldside_Flow_sensor.flow_model.Qv = (Coldside_Flow_sensor.flow_model.Qv_in + -Coldside_Flow_sensor.flow_model.Qv_out)/2; + Coldside_Flow_sensor.flow_model.P_out-Coldside_Flow_sensor.flow_model.P_in + = Coldside_Flow_sensor.flow_model.DP; + Coldside_Flow_sensor.flow_model.Q*(Coldside_Flow_sensor.flow_model.h_out- + Coldside_Flow_sensor.flow_model.h_in) = Coldside_Flow_sensor.flow_model.W; + Coldside_Flow_sensor.flow_model.h_out-Coldside_Flow_sensor.flow_model.h_in + = Coldside_Flow_sensor.flow_model.DH; + Coldside_Flow_sensor.flow_model.T_out-Coldside_Flow_sensor.flow_model.T_in + = Coldside_Flow_sensor.flow_model.DT; + Coldside_Flow_sensor.flow_model.C_in.Q+Coldside_Flow_sensor.flow_model.C_out.Q + = 0; + Coldside_Flow_sensor.flow_model.C_out.Xi_outflow = inStream( + Coldside_Flow_sensor.flow_model.C_in.Xi_outflow); + assert(Coldside_Flow_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Coldside_Flow_sensor.flow_model.P = Coldside_Flow_sensor.flow_model.P_in; + Coldside_Flow_sensor.flow_model.h = Coldside_Flow_sensor.flow_model.h_in; + Coldside_Flow_sensor.flow_model.T = Coldside_Flow_sensor.flow_model.T_in; + Coldside_Flow_sensor.flow_model.DP = 0; + Coldside_Flow_sensor.flow_model.DH = 0; + // end of extends + + // Component Coldside_Flow_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Coldside_Flow_sensor.faulty_flow_rate) then + Coldside_Flow_sensor.mass_flow_rate_bias = 0; + end if; + Coldside_Flow_sensor.P = Coldside_Flow_sensor.C_in.P; + Coldside_Flow_sensor.Q = Coldside_Flow_sensor.C_in.Q+Coldside_Flow_sensor.mass_flow_rate_bias; + Coldside_Flow_sensor.Xi = inStream(Coldside_Flow_sensor.C_in.Xi_outflow); + Coldside_Flow_sensor.h = inStream(Coldside_Flow_sensor.C_in.h_outflow); + Coldside_Flow_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Coldside_Flow_sensor.P, Coldside_Flow_sensor.h, Coldside_Flow_sensor.Xi, + 0, 0); + assert(Coldside_Flow_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + Coldside_Flow_sensor.Qv = Coldside_Flow_sensor.Q/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Coldside_Flow_sensor.state); + Coldside_Flow_sensor.Q_lm = Coldside_Flow_sensor.Qv*60000; + Coldside_Flow_sensor.Q_th = Coldside_Flow_sensor.Q*3.6; + Coldside_Flow_sensor.Q_lbs = Coldside_Flow_sensor.Q*0.453592428; + Coldside_Flow_sensor.Q_Mlbh = Coldside_Flow_sensor.Q*0.0079366414387; + // end of extends + equation + Coldside_Flow_sensor.flow_model.C_in.P = Coldside_Flow_sensor.C_in.P; + Coldside_Flow_sensor.C_in.Q-Coldside_Flow_sensor.flow_model.C_in.Q = 0.0; + Coldside_Flow_sensor.flow_model.C_out.P = Coldside_Flow_sensor.C_out.P; + Coldside_Flow_sensor.C_out.Q-Coldside_Flow_sensor.flow_model.C_out.Q = 0.0; + + // Component CEC231_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CEC231_sensor.flow_model.h_in = inStream(CEC231_sensor.flow_model.C_in.h_outflow); + CEC231_sensor.flow_model.h_out = CEC231_sensor.flow_model.C_out.h_outflow; + CEC231_sensor.flow_model.Q = CEC231_sensor.flow_model.C_in.Q; + CEC231_sensor.flow_model.P_in = CEC231_sensor.flow_model.C_in.P; + CEC231_sensor.flow_model.P_out = CEC231_sensor.flow_model.C_out.P; + CEC231_sensor.flow_model.Xi = inStream(CEC231_sensor.flow_model.C_in.Xi_outflow); + CEC231_sensor.flow_model.C_in.h_outflow = 1000000.0; + CEC231_sensor.flow_model.C_in.Xi_outflow = zeros(0); + CEC231_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC231_sensor.flow_model.P_in, CEC231_sensor.flow_model.h_in, + CEC231_sensor.flow_model.Xi, 0, 0); + CEC231_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC231_sensor.flow_model.P_out, CEC231_sensor.flow_model.h_out, + CEC231_sensor.flow_model.Xi, 0, 0); + CEC231_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC231_sensor.flow_model.state_in); + CEC231_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC231_sensor.flow_model.state_out); + CEC231_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC231_sensor.flow_model.state_in); + CEC231_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC231_sensor.flow_model.state_out); + CEC231_sensor.flow_model.rho = (CEC231_sensor.flow_model.rho_in+ + CEC231_sensor.flow_model.rho_out)/2; + CEC231_sensor.flow_model.Qv_in = CEC231_sensor.flow_model.Q/ + CEC231_sensor.flow_model.rho_in; + CEC231_sensor.flow_model.Qv_out = -CEC231_sensor.flow_model.Q/ + CEC231_sensor.flow_model.rho_out; + CEC231_sensor.flow_model.Qv = (CEC231_sensor.flow_model.Qv_in- + CEC231_sensor.flow_model.Qv_out)/2; + CEC231_sensor.flow_model.P_out-CEC231_sensor.flow_model.P_in = + CEC231_sensor.flow_model.DP; + CEC231_sensor.flow_model.Q*(CEC231_sensor.flow_model.h_out- + CEC231_sensor.flow_model.h_in) = CEC231_sensor.flow_model.W; + CEC231_sensor.flow_model.h_out-CEC231_sensor.flow_model.h_in = + CEC231_sensor.flow_model.DH; + CEC231_sensor.flow_model.T_out-CEC231_sensor.flow_model.T_in = + CEC231_sensor.flow_model.DT; + CEC231_sensor.flow_model.C_in.Q+CEC231_sensor.flow_model.C_out.Q = 0; + CEC231_sensor.flow_model.C_out.Xi_outflow = inStream(CEC231_sensor.flow_model.C_in.Xi_outflow); + assert(CEC231_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CEC231_sensor.flow_model.P = CEC231_sensor.flow_model.P_in; + CEC231_sensor.flow_model.h = CEC231_sensor.flow_model.h_in; + CEC231_sensor.flow_model.T = CEC231_sensor.flow_model.T_in; + CEC231_sensor.flow_model.DP = 0; + CEC231_sensor.flow_model.DH = 0; + // end of extends + + // Component CEC231_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not CEC231_sensor.faulty_flow_rate) then + CEC231_sensor.mass_flow_rate_bias = 0; + end if; + CEC231_sensor.P = CEC231_sensor.C_in.P; + CEC231_sensor.Q = CEC231_sensor.C_in.Q+CEC231_sensor.mass_flow_rate_bias; + CEC231_sensor.Xi = inStream(CEC231_sensor.C_in.Xi_outflow); + CEC231_sensor.h = inStream(CEC231_sensor.C_in.h_outflow); + CEC231_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC231_sensor.P, CEC231_sensor.h, CEC231_sensor.Xi, 0, 0); + assert(CEC231_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + CEC231_sensor.T = CEC231_sensor.flow_model.T; + CEC231_sensor.T_degC+273.15 = CEC231_sensor.T; + CEC231_sensor.T_degF = CEC231_sensor.T_degC*1.8+32; + // end of extends + equation + CEC231_sensor.flow_model.C_in.P = CEC231_sensor.C_in.P; + CEC231_sensor.C_in.Q-CEC231_sensor.flow_model.C_in.Q = 0.0; + CEC231_sensor.flow_model.C_out.P = CEC231_sensor.C_out.P; + CEC231_sensor.C_out.Q-CEC231_sensor.flow_model.C_out.Q = 0.0; + + // Component Coldside_Press_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Coldside_Press_sensor.flow_model.h_in = inStream(Coldside_Press_sensor.flow_model.C_in.h_outflow); + Coldside_Press_sensor.flow_model.h_out = Coldside_Press_sensor.flow_model.C_out.h_outflow; + Coldside_Press_sensor.flow_model.Q = Coldside_Press_sensor.flow_model.C_in.Q; + Coldside_Press_sensor.flow_model.P_in = Coldside_Press_sensor.flow_model.C_in.P; + Coldside_Press_sensor.flow_model.P_out = Coldside_Press_sensor.flow_model.C_out.P; + Coldside_Press_sensor.flow_model.Xi = inStream(Coldside_Press_sensor.flow_model.C_in.Xi_outflow); + Coldside_Press_sensor.flow_model.C_in.h_outflow = 1000000.0; + Coldside_Press_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Coldside_Press_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Coldside_Press_sensor.flow_model.P_in, Coldside_Press_sensor.flow_model.h_in, + Coldside_Press_sensor.flow_model.Xi, 0, 0); + Coldside_Press_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Coldside_Press_sensor.flow_model.P_out, Coldside_Press_sensor.flow_model.h_out, + Coldside_Press_sensor.flow_model.Xi, 0, 0); + Coldside_Press_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Coldside_Press_sensor.flow_model.state_in); + Coldside_Press_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Coldside_Press_sensor.flow_model.state_out); + Coldside_Press_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Coldside_Press_sensor.flow_model.state_in); + Coldside_Press_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Coldside_Press_sensor.flow_model.state_out); + Coldside_Press_sensor.flow_model.rho = (Coldside_Press_sensor.flow_model.rho_in + +Coldside_Press_sensor.flow_model.rho_out)/2; + Coldside_Press_sensor.flow_model.Qv_in = Coldside_Press_sensor.flow_model.Q + /Coldside_Press_sensor.flow_model.rho_in; + Coldside_Press_sensor.flow_model.Qv_out = -Coldside_Press_sensor.flow_model.Q + /Coldside_Press_sensor.flow_model.rho_out; + Coldside_Press_sensor.flow_model.Qv = (Coldside_Press_sensor.flow_model.Qv_in + -Coldside_Press_sensor.flow_model.Qv_out)/2; + Coldside_Press_sensor.flow_model.P_out-Coldside_Press_sensor.flow_model.P_in + = Coldside_Press_sensor.flow_model.DP; + Coldside_Press_sensor.flow_model.Q*(Coldside_Press_sensor.flow_model.h_out + -Coldside_Press_sensor.flow_model.h_in) = Coldside_Press_sensor.flow_model.W; + Coldside_Press_sensor.flow_model.h_out-Coldside_Press_sensor.flow_model.h_in + = Coldside_Press_sensor.flow_model.DH; + Coldside_Press_sensor.flow_model.T_out-Coldside_Press_sensor.flow_model.T_in + = Coldside_Press_sensor.flow_model.DT; + Coldside_Press_sensor.flow_model.C_in.Q+Coldside_Press_sensor.flow_model.C_out.Q + = 0; + Coldside_Press_sensor.flow_model.C_out.Xi_outflow = inStream( + Coldside_Press_sensor.flow_model.C_in.Xi_outflow); + assert(Coldside_Press_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Coldside_Press_sensor.flow_model.P = Coldside_Press_sensor.flow_model.P_in; + Coldside_Press_sensor.flow_model.h = Coldside_Press_sensor.flow_model.h_in; + Coldside_Press_sensor.flow_model.T = Coldside_Press_sensor.flow_model.T_in; + Coldside_Press_sensor.flow_model.DP = 0; + Coldside_Press_sensor.flow_model.DH = 0; + // end of extends + + // Component Coldside_Press_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Coldside_Press_sensor.faulty_flow_rate) then + Coldside_Press_sensor.mass_flow_rate_bias = 0; + end if; + Coldside_Press_sensor.P = Coldside_Press_sensor.C_in.P; + Coldside_Press_sensor.Q = Coldside_Press_sensor.C_in.Q+Coldside_Press_sensor.mass_flow_rate_bias; + Coldside_Press_sensor.Xi = inStream(Coldside_Press_sensor.C_in.Xi_outflow); + Coldside_Press_sensor.h = inStream(Coldside_Press_sensor.C_in.h_outflow); + Coldside_Press_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Coldside_Press_sensor.P, Coldside_Press_sensor.h, Coldside_Press_sensor.Xi, + 0, 0); + assert(Coldside_Press_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + Coldside_Press_sensor.P_barA = Coldside_Press_sensor.P*1E-05; + Coldside_Press_sensor.P_psiA = Coldside_Press_sensor.P*0.000145038; + Coldside_Press_sensor.P_MPaA = Coldside_Press_sensor.P*1E-06; + Coldside_Press_sensor.P_kPaA = Coldside_Press_sensor.P*0.001; + Coldside_Press_sensor.P_barG = Coldside_Press_sensor.P_barA-1; + Coldside_Press_sensor.P_psiG = Coldside_Press_sensor.P_psiA-14.50377377; + Coldside_Press_sensor.P_MPaG = Coldside_Press_sensor.P_MPaA-0.1; + Coldside_Press_sensor.P_kPaG = Coldside_Press_sensor.P_kPaA-100; + Coldside_Press_sensor.P_mbar = Coldside_Press_sensor.P*0.01; + Coldside_Press_sensor.P_inHg = Coldside_Press_sensor.P*0.0002953006; + // end of extends + equation + Coldside_Press_sensor.flow_model.C_in.P = Coldside_Press_sensor.C_in.P; + Coldside_Press_sensor.C_in.Q-Coldside_Press_sensor.flow_model.C_in.Q = 0.0; + Coldside_Press_sensor.flow_model.C_out.P = Coldside_Press_sensor.C_out.P; + Coldside_Press_sensor.C_out.Q-Coldside_Press_sensor.flow_model.C_out.Q = 0.0; + + // Component CEC235_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CEC235_sensor.flow_model.h_in = inStream(CEC235_sensor.flow_model.C_in.h_outflow); + CEC235_sensor.flow_model.h_out = CEC235_sensor.flow_model.C_out.h_outflow; + CEC235_sensor.flow_model.Q = CEC235_sensor.flow_model.C_in.Q; + CEC235_sensor.flow_model.P_in = CEC235_sensor.flow_model.C_in.P; + CEC235_sensor.flow_model.P_out = CEC235_sensor.flow_model.C_out.P; + CEC235_sensor.flow_model.Xi = inStream(CEC235_sensor.flow_model.C_in.Xi_outflow); + CEC235_sensor.flow_model.C_in.h_outflow = 1000000.0; + CEC235_sensor.flow_model.C_in.Xi_outflow = zeros(0); + CEC235_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC235_sensor.flow_model.P_in, CEC235_sensor.flow_model.h_in, + CEC235_sensor.flow_model.Xi, 0, 0); + CEC235_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC235_sensor.flow_model.P_out, CEC235_sensor.flow_model.h_out, + CEC235_sensor.flow_model.Xi, 0, 0); + CEC235_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC235_sensor.flow_model.state_in); + CEC235_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC235_sensor.flow_model.state_out); + CEC235_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC235_sensor.flow_model.state_in); + CEC235_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC235_sensor.flow_model.state_out); + CEC235_sensor.flow_model.rho = (CEC235_sensor.flow_model.rho_in+ + CEC235_sensor.flow_model.rho_out)/2; + CEC235_sensor.flow_model.Qv_in = CEC235_sensor.flow_model.Q/ + CEC235_sensor.flow_model.rho_in; + CEC235_sensor.flow_model.Qv_out = -CEC235_sensor.flow_model.Q/ + CEC235_sensor.flow_model.rho_out; + CEC235_sensor.flow_model.Qv = (CEC235_sensor.flow_model.Qv_in- + CEC235_sensor.flow_model.Qv_out)/2; + CEC235_sensor.flow_model.P_out-CEC235_sensor.flow_model.P_in = + CEC235_sensor.flow_model.DP; + CEC235_sensor.flow_model.Q*(CEC235_sensor.flow_model.h_out- + CEC235_sensor.flow_model.h_in) = CEC235_sensor.flow_model.W; + CEC235_sensor.flow_model.h_out-CEC235_sensor.flow_model.h_in = + CEC235_sensor.flow_model.DH; + CEC235_sensor.flow_model.T_out-CEC235_sensor.flow_model.T_in = + CEC235_sensor.flow_model.DT; + CEC235_sensor.flow_model.C_in.Q+CEC235_sensor.flow_model.C_out.Q = 0; + CEC235_sensor.flow_model.C_out.Xi_outflow = inStream(CEC235_sensor.flow_model.C_in.Xi_outflow); + assert(CEC235_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CEC235_sensor.flow_model.P = CEC235_sensor.flow_model.P_in; + CEC235_sensor.flow_model.h = CEC235_sensor.flow_model.h_in; + CEC235_sensor.flow_model.T = CEC235_sensor.flow_model.T_in; + CEC235_sensor.flow_model.DP = 0; + CEC235_sensor.flow_model.DH = 0; + // end of extends + + // Component CEC235_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not CEC235_sensor.faulty_flow_rate) then + CEC235_sensor.mass_flow_rate_bias = 0; + end if; + CEC235_sensor.P = CEC235_sensor.C_in.P; + CEC235_sensor.Q = CEC235_sensor.C_in.Q+CEC235_sensor.mass_flow_rate_bias; + CEC235_sensor.Xi = inStream(CEC235_sensor.C_in.Xi_outflow); + CEC235_sensor.h = inStream(CEC235_sensor.C_in.h_outflow); + CEC235_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC235_sensor.P, CEC235_sensor.h, CEC235_sensor.Xi, 0, 0); + assert(CEC235_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + CEC235_sensor.T = CEC235_sensor.flow_model.T; + CEC235_sensor.T_degC+273.15 = CEC235_sensor.T; + CEC235_sensor.T_degF = CEC235_sensor.T_degC*1.8+32; + // end of extends + equation + CEC235_sensor.flow_model.C_in.P = CEC235_sensor.C_in.P; + CEC235_sensor.C_in.Q-CEC235_sensor.flow_model.C_in.Q = 0.0; + CEC235_sensor.flow_model.C_out.P = CEC235_sensor.C_out.P; + CEC235_sensor.C_out.Q-CEC235_sensor.flow_model.C_out.Q = 0.0; + + // Component CoolingTower.water_inlet_flow + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.water_inlet_flow.h_in = inStream(CoolingTower.water_inlet_flow.C_in.h_outflow); + CoolingTower.water_inlet_flow.h_out = CoolingTower.water_inlet_flow.C_out.h_outflow; + CoolingTower.water_inlet_flow.Q = CoolingTower.water_inlet_flow.C_in.Q; + CoolingTower.water_inlet_flow.P_in = CoolingTower.water_inlet_flow.C_in.P; + CoolingTower.water_inlet_flow.P_out = CoolingTower.water_inlet_flow.C_out.P; + CoolingTower.water_inlet_flow.Xi = inStream(CoolingTower.water_inlet_flow.C_in.Xi_outflow); + CoolingTower.water_inlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.water_inlet_flow.C_in.Xi_outflow = zeros(0); + CoolingTower.water_inlet_flow.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_inlet_flow.P_in, CoolingTower.water_inlet_flow.h_in, + CoolingTower.water_inlet_flow.Xi, 0, 0); + CoolingTower.water_inlet_flow.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_inlet_flow.P_out, CoolingTower.water_inlet_flow.h_out, + CoolingTower.water_inlet_flow.Xi, 0, 0); + CoolingTower.water_inlet_flow.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_inlet_flow.state_in); + CoolingTower.water_inlet_flow.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_inlet_flow.state_out); + CoolingTower.water_inlet_flow.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_inlet_flow.state_in); + CoolingTower.water_inlet_flow.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_inlet_flow.state_out); + CoolingTower.water_inlet_flow.rho = (CoolingTower.water_inlet_flow.rho_in+ + CoolingTower.water_inlet_flow.rho_out)/2; + CoolingTower.water_inlet_flow.Qv_in = CoolingTower.water_inlet_flow.Q/ + CoolingTower.water_inlet_flow.rho_in; + CoolingTower.water_inlet_flow.Qv_out = -CoolingTower.water_inlet_flow.Q/ + CoolingTower.water_inlet_flow.rho_out; + CoolingTower.water_inlet_flow.Qv = (CoolingTower.water_inlet_flow.Qv_in- + CoolingTower.water_inlet_flow.Qv_out)/2; + CoolingTower.water_inlet_flow.P_out-CoolingTower.water_inlet_flow.P_in = + CoolingTower.water_inlet_flow.DP; + CoolingTower.water_inlet_flow.Q*(CoolingTower.water_inlet_flow.h_out- + CoolingTower.water_inlet_flow.h_in) = CoolingTower.water_inlet_flow.W; + CoolingTower.water_inlet_flow.h_out-CoolingTower.water_inlet_flow.h_in = + CoolingTower.water_inlet_flow.DH; + CoolingTower.water_inlet_flow.T_out-CoolingTower.water_inlet_flow.T_in = + CoolingTower.water_inlet_flow.DT; + CoolingTower.water_inlet_flow.C_in.Q+CoolingTower.water_inlet_flow.C_out.Q + = 0; + CoolingTower.water_inlet_flow.C_out.Xi_outflow = inStream(CoolingTower.water_inlet_flow.C_in.Xi_outflow); + assert(CoolingTower.water_inlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + CoolingTower.water_inlet_flow.h = CoolingTower.water_inlet_flow.h_in; + CoolingTower.water_inlet_flow.DH = 0; + // end of extends + equation + CoolingTower.water_inlet_flow.DP = CoolingTower.water_inlet_flow.DP_input; + + // Component CoolingTower.water_outlet_flow + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.water_outlet_flow.h_in = inStream(CoolingTower.water_outlet_flow.C_in.h_outflow); + CoolingTower.water_outlet_flow.h_out = CoolingTower.water_outlet_flow.C_out.h_outflow; + CoolingTower.water_outlet_flow.Q = CoolingTower.water_outlet_flow.C_in.Q; + CoolingTower.water_outlet_flow.P_in = CoolingTower.water_outlet_flow.C_in.P; + CoolingTower.water_outlet_flow.P_out = CoolingTower.water_outlet_flow.C_out.P; + CoolingTower.water_outlet_flow.Xi = inStream(CoolingTower.water_outlet_flow.C_in.Xi_outflow); + CoolingTower.water_outlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.water_outlet_flow.C_in.Xi_outflow = zeros(0); + CoolingTower.water_outlet_flow.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_outlet_flow.P_in, CoolingTower.water_outlet_flow.h_in, + CoolingTower.water_outlet_flow.Xi, 0, 0); + CoolingTower.water_outlet_flow.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_outlet_flow.P_out, CoolingTower.water_outlet_flow.h_out, + CoolingTower.water_outlet_flow.Xi, 0, 0); + CoolingTower.water_outlet_flow.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_outlet_flow.state_in); + CoolingTower.water_outlet_flow.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_outlet_flow.state_out); + CoolingTower.water_outlet_flow.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_outlet_flow.state_in); + CoolingTower.water_outlet_flow.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CoolingTower.water_outlet_flow.state_out); + CoolingTower.water_outlet_flow.rho = (CoolingTower.water_outlet_flow.rho_in + +CoolingTower.water_outlet_flow.rho_out)/2; + CoolingTower.water_outlet_flow.Qv_in = CoolingTower.water_outlet_flow.Q/ + CoolingTower.water_outlet_flow.rho_in; + CoolingTower.water_outlet_flow.Qv_out = -CoolingTower.water_outlet_flow.Q + /CoolingTower.water_outlet_flow.rho_out; + CoolingTower.water_outlet_flow.Qv = (CoolingTower.water_outlet_flow.Qv_in- + CoolingTower.water_outlet_flow.Qv_out)/2; + CoolingTower.water_outlet_flow.P_out-CoolingTower.water_outlet_flow.P_in + = CoolingTower.water_outlet_flow.DP; + CoolingTower.water_outlet_flow.Q*(CoolingTower.water_outlet_flow.h_out- + CoolingTower.water_outlet_flow.h_in) = CoolingTower.water_outlet_flow.W; + CoolingTower.water_outlet_flow.h_out-CoolingTower.water_outlet_flow.h_in + = CoolingTower.water_outlet_flow.DH; + CoolingTower.water_outlet_flow.T_out-CoolingTower.water_outlet_flow.T_in + = CoolingTower.water_outlet_flow.DT; + CoolingTower.water_outlet_flow.C_in.Q+CoolingTower.water_outlet_flow.C_out.Q + = 0; + CoolingTower.water_outlet_flow.C_out.Xi_outflow = inStream( + CoolingTower.water_outlet_flow.C_in.Xi_outflow); + assert(CoolingTower.water_outlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CoolingTower.water_outlet_flow.P = CoolingTower.water_outlet_flow.P_in; + CoolingTower.water_outlet_flow.h = CoolingTower.water_outlet_flow.h_in; + CoolingTower.water_outlet_flow.T = CoolingTower.water_outlet_flow.T_in; + CoolingTower.water_outlet_flow.DP = 0; + CoolingTower.water_outlet_flow.DH = 0; + // end of extends + + // Component CoolingTower.water_outlet + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + CoolingTower.water_outlet.C_out.P = CoolingTower.water_outlet.P_out; + CoolingTower.water_outlet.C_out.Q = CoolingTower.water_outlet.Q_out; + CoolingTower.water_outlet.C_out.h_outflow = CoolingTower.water_outlet.h_out; + CoolingTower.water_outlet.C_out.Xi_outflow = CoolingTower.water_outlet.Xi_out; + CoolingTower.water_outlet.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_outlet.P_out, CoolingTower.water_outlet.h_out, + CoolingTower.water_outlet.Xi_out, 0, 0); + CoolingTower.water_outlet.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_outlet.state_out); + CoolingTower.water_outlet.Qv_out = CoolingTower.water_outlet.Q_out/ + Modelica.Media.Water.WaterIF97_ph.density_Unique6( + CoolingTower.water_outlet.state_out); + // end of extends + + // Component CoolingTower.water_inlet + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + CoolingTower.water_inlet.C_in.P = CoolingTower.water_inlet.P_in; + CoolingTower.water_inlet.C_in.Q = CoolingTower.water_inlet.Q_in; + inStream(CoolingTower.water_inlet.C_in.h_outflow) = CoolingTower.water_inlet.h_in; + inStream(CoolingTower.water_inlet.C_in.Xi_outflow) = CoolingTower.water_inlet.Xi_in; + CoolingTower.water_inlet.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CoolingTower.water_inlet.P_in, CoolingTower.water_inlet.h_in, + CoolingTower.water_inlet.Xi_in, 0, 0); + CoolingTower.water_inlet.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CoolingTower.water_inlet.state_in); + CoolingTower.water_inlet.Qv_in = CoolingTower.water_inlet.Q_in/ + Modelica.Media.Water.WaterIF97_ph.density_Unique6( + CoolingTower.water_inlet.state_in); + CoolingTower.water_inlet.C_in.h_outflow = 0; + CoolingTower.water_inlet.C_in.Xi_outflow = zeros(0); + // end of extends + + // Component CoolingTower.air_inlet_flow + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.air_inlet_flow.h_in = inStream(CoolingTower.air_inlet_flow.C_in.h_outflow); + CoolingTower.air_inlet_flow.h_out = CoolingTower.air_inlet_flow.C_out.h_outflow; + CoolingTower.air_inlet_flow.Q = CoolingTower.air_inlet_flow.C_in.Q; + CoolingTower.air_inlet_flow.P_in = CoolingTower.air_inlet_flow.C_in.P; + CoolingTower.air_inlet_flow.P_out = CoolingTower.air_inlet_flow.C_out.P; + CoolingTower.air_inlet_flow.Xi = inStream(CoolingTower.air_inlet_flow.C_in.Xi_outflow); + CoolingTower.air_inlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.air_inlet_flow.C_in.Xi_outflow = zeros(1); + CoolingTower.air_inlet_flow.state_in = setState_phX_Unique10( + CoolingTower.air_inlet_flow.P_in, CoolingTower.air_inlet_flow.h_in, + CoolingTower.air_inlet_flow.Xi); + CoolingTower.air_inlet_flow.state_out = setState_phX_Unique10( + CoolingTower.air_inlet_flow.P_out, CoolingTower.air_inlet_flow.h_out, + CoolingTower.air_inlet_flow.Xi); + CoolingTower.air_inlet_flow.T_in = temperature_Unique28( + CoolingTower.air_inlet_flow.state_in); + CoolingTower.air_inlet_flow.T_out = temperature_Unique28( + CoolingTower.air_inlet_flow.state_out); + CoolingTower.air_inlet_flow.rho_in = density_Unique29( + CoolingTower.air_inlet_flow.state_in); + CoolingTower.air_inlet_flow.rho_out = density_Unique29( + CoolingTower.air_inlet_flow.state_out); + CoolingTower.air_inlet_flow.rho = (CoolingTower.air_inlet_flow.rho_in+ + CoolingTower.air_inlet_flow.rho_out)/2; + CoolingTower.air_inlet_flow.Qv_in = CoolingTower.air_inlet_flow.Q/ + CoolingTower.air_inlet_flow.rho_in; + CoolingTower.air_inlet_flow.Qv_out = -CoolingTower.air_inlet_flow.Q/ + CoolingTower.air_inlet_flow.rho_out; + CoolingTower.air_inlet_flow.Qv = (CoolingTower.air_inlet_flow.Qv_in- + CoolingTower.air_inlet_flow.Qv_out)/2; + CoolingTower.air_inlet_flow.P_out-CoolingTower.air_inlet_flow.P_in = + CoolingTower.air_inlet_flow.DP; + CoolingTower.air_inlet_flow.Q*(CoolingTower.air_inlet_flow.h_out- + CoolingTower.air_inlet_flow.h_in) = CoolingTower.air_inlet_flow.W; + CoolingTower.air_inlet_flow.h_out-CoolingTower.air_inlet_flow.h_in = + CoolingTower.air_inlet_flow.DH; + CoolingTower.air_inlet_flow.T_out-CoolingTower.air_inlet_flow.T_in = + CoolingTower.air_inlet_flow.DT; + CoolingTower.air_inlet_flow.C_in.Q+CoolingTower.air_inlet_flow.C_out.Q = 0; + CoolingTower.air_inlet_flow.C_out.Xi_outflow = inStream(CoolingTower.air_inlet_flow.C_in.Xi_outflow); + assert(CoolingTower.air_inlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CoolingTower.air_inlet_flow.P = CoolingTower.air_inlet_flow.P_in; + CoolingTower.air_inlet_flow.h = CoolingTower.air_inlet_flow.h_in; + CoolingTower.air_inlet_flow.T = CoolingTower.air_inlet_flow.T_in; + CoolingTower.air_inlet_flow.DP = 0; + CoolingTower.air_inlet_flow.DH = 0; + // end of extends + + // Component CoolingTower.air_inlet + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + CoolingTower.air_inlet.C_in.P = CoolingTower.air_inlet.P_in; + CoolingTower.air_inlet.C_in.Q = CoolingTower.air_inlet.Q_in; + inStream(CoolingTower.air_inlet.C_in.h_outflow) = CoolingTower.air_inlet.h_in; + inStream(CoolingTower.air_inlet.C_in.Xi_outflow) = CoolingTower.air_inlet.Xi_in; + CoolingTower.air_inlet.state_in = setState_phX_Unique10(CoolingTower.air_inlet.P_in, + CoolingTower.air_inlet.h_in, CoolingTower.air_inlet.Xi_in); + CoolingTower.air_inlet.T_in = temperature_Unique28( + CoolingTower.air_inlet.state_in); + CoolingTower.air_inlet.Qv_in = CoolingTower.air_inlet.Q_in/ + density_Unique29( + CoolingTower.air_inlet.state_in); + CoolingTower.air_inlet.C_in.h_outflow = 0; + CoolingTower.air_inlet.C_in.Xi_outflow = zeros(1); + // end of extends + equation + CoolingTower.air_inlet.Xi_in[1] = massFraction_pTphi_Unique31( + CoolingTower.air_inlet.P_in, CoolingTower.air_inlet.T_in, CoolingTower.air_inlet.relative_humidity); + + // Component CoolingTower.air_outlet + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + CoolingTower.air_outlet.C_out.P = CoolingTower.air_outlet.P_out; + CoolingTower.air_outlet.C_out.Q = CoolingTower.air_outlet.Q_out; + CoolingTower.air_outlet.C_out.h_outflow = CoolingTower.air_outlet.h_out; + CoolingTower.air_outlet.C_out.Xi_outflow = CoolingTower.air_outlet.Xi_out; + CoolingTower.air_outlet.state_out = setState_phX_Unique10(CoolingTower.air_outlet.P_out, + CoolingTower.air_outlet.h_out, CoolingTower.air_outlet.Xi_out); + CoolingTower.air_outlet.T_out = temperature_Unique28( + CoolingTower.air_outlet.state_out); + CoolingTower.air_outlet.Qv_out = CoolingTower.air_outlet.Q_out/ + density_Unique29( + CoolingTower.air_outlet.state_out); + // end of extends + equation + CoolingTower.air_outlet.Xi_out[1] = massFraction_pTphi_Unique31( + CoolingTower.air_outlet.P_out, CoolingTower.air_outlet.T_out, + CoolingTower.air_outlet.relative_humidity); + + // Component CoolingTower.air_outlet_flow + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CoolingTower.air_outlet_flow.h_in = inStream(CoolingTower.air_outlet_flow.C_in.h_outflow); + CoolingTower.air_outlet_flow.h_out = CoolingTower.air_outlet_flow.C_out.h_outflow; + CoolingTower.air_outlet_flow.Q = CoolingTower.air_outlet_flow.C_in.Q; + CoolingTower.air_outlet_flow.P_in = CoolingTower.air_outlet_flow.C_in.P; + CoolingTower.air_outlet_flow.P_out = CoolingTower.air_outlet_flow.C_out.P; + CoolingTower.air_outlet_flow.Xi = inStream(CoolingTower.air_outlet_flow.C_in.Xi_outflow); + CoolingTower.air_outlet_flow.C_in.h_outflow = 1000000.0; + CoolingTower.air_outlet_flow.C_in.Xi_outflow = zeros(1); + CoolingTower.air_outlet_flow.state_in = setState_phX_Unique10( + CoolingTower.air_outlet_flow.P_in, CoolingTower.air_outlet_flow.h_in, + CoolingTower.air_outlet_flow.Xi); + CoolingTower.air_outlet_flow.state_out = setState_phX_Unique10( + CoolingTower.air_outlet_flow.P_out, CoolingTower.air_outlet_flow.h_out, + CoolingTower.air_outlet_flow.Xi); + CoolingTower.air_outlet_flow.T_in = temperature_Unique28( + CoolingTower.air_outlet_flow.state_in); + CoolingTower.air_outlet_flow.T_out = temperature_Unique28( + CoolingTower.air_outlet_flow.state_out); + CoolingTower.air_outlet_flow.rho_in = density_Unique29( + CoolingTower.air_outlet_flow.state_in); + CoolingTower.air_outlet_flow.rho_out = density_Unique29( + CoolingTower.air_outlet_flow.state_out); + CoolingTower.air_outlet_flow.rho = (CoolingTower.air_outlet_flow.rho_in+ + CoolingTower.air_outlet_flow.rho_out)/2; + CoolingTower.air_outlet_flow.Qv_in = CoolingTower.air_outlet_flow.Q/ + CoolingTower.air_outlet_flow.rho_in; + CoolingTower.air_outlet_flow.Qv_out = -CoolingTower.air_outlet_flow.Q/ + CoolingTower.air_outlet_flow.rho_out; + CoolingTower.air_outlet_flow.Qv = (CoolingTower.air_outlet_flow.Qv_in- + CoolingTower.air_outlet_flow.Qv_out)/2; + CoolingTower.air_outlet_flow.P_out-CoolingTower.air_outlet_flow.P_in = + CoolingTower.air_outlet_flow.DP; + CoolingTower.air_outlet_flow.Q*(CoolingTower.air_outlet_flow.h_out- + CoolingTower.air_outlet_flow.h_in) = CoolingTower.air_outlet_flow.W; + CoolingTower.air_outlet_flow.h_out-CoolingTower.air_outlet_flow.h_in = + CoolingTower.air_outlet_flow.DH; + CoolingTower.air_outlet_flow.T_out-CoolingTower.air_outlet_flow.T_in = + CoolingTower.air_outlet_flow.DT; + CoolingTower.air_outlet_flow.C_in.Q+CoolingTower.air_outlet_flow.C_out.Q + = 0; + CoolingTower.air_outlet_flow.C_out.Xi_outflow = inStream(CoolingTower.air_outlet_flow.C_in.Xi_outflow); + assert(CoolingTower.air_outlet_flow.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CoolingTower.air_outlet_flow.P = CoolingTower.air_outlet_flow.P_in; + CoolingTower.air_outlet_flow.h = CoolingTower.air_outlet_flow.h_in; + CoolingTower.air_outlet_flow.T = CoolingTower.air_outlet_flow.T_in; + CoolingTower.air_outlet_flow.DP = 0; + CoolingTower.air_outlet_flow.DH = 0; + // end of extends + + // Component CoolingTower + // class MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe + equation + CoolingTower.air_inlet_flow.P_out = CoolingTower.Pin[1]; + CoolingTower.air_inlet_flow.Q = CoolingTower.Q_cold_in; + CoolingTower.air_inlet_flow.h = CoolingTower.i_initial; + CoolingTower.air_inlet.T_in = CoolingTower.T_cold_in; + CoolingTower.w_in = CoolingTower.air_inlet.Xi_in[1]; + CoolingTower.air_outlet_flow.P_in = CoolingTower.Pin[CoolingTower.N_step]; + CoolingTower.air_outlet_flow.Q = CoolingTower.Q_cold_out; + CoolingTower.air_outlet_flow.h = CoolingTower.i_final; + CoolingTower.air_outlet.T_out = CoolingTower.T_cold_out; + CoolingTower.w_out = CoolingTower.air_outlet.Xi_out[1]; + CoolingTower.water_inlet_flow.P_out = CoolingTower.Pin[CoolingTower.N_step]; + CoolingTower.water_inlet_flow.Q = CoolingTower.Q_hot_in; + CoolingTower.water_inlet_flow.T_in = CoolingTower.T_hot_in; + CoolingTower.water_outlet_flow.P_out = CoolingTower.Pin[1]; + CoolingTower.water_outlet_flow.Q = CoolingTower.Q_hot_out; + CoolingTower.water_outlet_flow.T_in = CoolingTower.T_hot_out; + CoolingTower.W_max = CoolingTower.Qw[10]*CoolingTower.cp[1]*(CoolingTower.Tw + [CoolingTower.N_step]-CoolingTower.Tw[1]); + CoolingTower.W_min = CoolingTower.Qw[1]*CoolingTower.cp[1]*(CoolingTower.Tw[ + CoolingTower.N_step]-CoolingTower.Tw[1]); + CoolingTower.deltaTw = (CoolingTower.Tw[CoolingTower.N_step]-CoolingTower.Tw + [1])/(CoolingTower.N_step-1); + for n in (1:CoolingTower.N_step) loop + CoolingTower.Tw[n] = CoolingTower.T_hot_out+(CoolingTower.T_hot_in- + CoolingTower.T_hot_out)*(n-1)/(CoolingTower.N_step-1); + CoolingTower.Ta[n] = T_phX_Unique40(CoolingTower.Pin[n], CoolingTower.i[n], + {CoolingTower.w[n]}); + CoolingTower.w_sat[n] = xsaturation_pT_Unique48(CoolingTower.Pin[n], + CoolingTower.Ta[n]); + end for; + for n in (1:CoolingTower.N_step-1) loop + if (CoolingTower.w[n] < CoolingTower.w_sat[n]) then + CoolingTower.w[n+1] = CoolingTower.w[n]+CoolingTower.deltaTw* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe.f + (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], + CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], + CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.i[n+1] = CoolingTower.i[n]+CoolingTower.deltaTw* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe.g + (CoolingTower.Tw[n], CoolingTower.w[n], CoolingTower.i[n], + CoolingTower.cp[n], CoolingTower.Qw[n], CoolingTower.Qa[n], + CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.M[n+1] = CoolingTower.M[n]+CoolingTower.deltaTw* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe.h + (CoolingTower.Tw[n+1], CoolingTower.w[n+1], CoolingTower.i[n+1], + CoolingTower.cp[n+1], CoolingTower.Pin[n+1], CoolingTower.Lef[n+1]); + CoolingTower.Qw[n+1] = CoolingTower.Qw[n]+CoolingTower.Qa[n]*( + CoolingTower.w[n+1]-CoolingTower.w[n]); + CoolingTower.Qa[n+1] = CoolingTower.Qa[n]*(1+CoolingTower.w[n+1]- + CoolingTower.w[n]); + CoolingTower.Lef[n+1] = CoolingTower.Lef[n]; + CoolingTower.cp[n+1] = CoolingTower.cp[n]; + CoolingTower.Pin[n+1] = CoolingTower.Pin[n]; + else + CoolingTower.w[n+1] = CoolingTower.w[n]+CoolingTower.deltaTw* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe.j + (CoolingTower.Tw[n], CoolingTower.Ta[n], CoolingTower.w[n], + CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Qw[n], + CoolingTower.Qa[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.i[n+1] = CoolingTower.i[n]+CoolingTower.deltaTw* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe.k + (CoolingTower.Tw[n], CoolingTower.Ta[n], CoolingTower.w[n], + CoolingTower.i[n], CoolingTower.cp[n], CoolingTower.Qw[n], + CoolingTower.Qa[n], CoolingTower.Pin[n], CoolingTower.Lef[n]); + CoolingTower.M[n+1] = CoolingTower.M[n]+CoolingTower.deltaTw* + MetroscopeModelingLibrary.MultiFluid.HeatExchangers.CoolingTowerPoppe.m + (CoolingTower.Tw[n+1], CoolingTower.Ta[n+1], CoolingTower.w[n+1], + CoolingTower.i[n+1], CoolingTower.cp[n+1], CoolingTower.Pin[n+1], + CoolingTower.Lef[n+1]); + CoolingTower.Qw[n+1] = CoolingTower.Qw[n]+CoolingTower.Qa[n]*( + CoolingTower.w[n+1]-CoolingTower.w[n]); + CoolingTower.Qa[n+1] = CoolingTower.Qa[n]*(1+CoolingTower.w[n+1]- + CoolingTower.w[n]); + CoolingTower.Lef[n+1] = CoolingTower.Lef[n]; + CoolingTower.cp[n+1] = CoolingTower.cp[n]; + CoolingTower.Pin[n+1] = CoolingTower.Pin[n]; + end if; + end for; + CoolingTower.Me = CoolingTower.hd*CoolingTower.Afr/CoolingTower.Qw[1]; + CoolingTower.M[CoolingTower.N_step] = CoolingTower.Me; + CoolingTower.M[1] = 0; + CoolingTower.w[1] = CoolingTower.w_in; + CoolingTower.w[CoolingTower.N_step] = CoolingTower.w_out; + CoolingTower.i[1] = CoolingTower.i_initial; + CoolingTower.i[CoolingTower.N_step] = CoolingTower.i_final; + CoolingTower.Qw[1] = CoolingTower.Q_hot_out; + CoolingTower.Qw[CoolingTower.N_step] = CoolingTower.Q_hot_in; + CoolingTower.Qa[1] = CoolingTower.Q_cold_in; + CoolingTower.Qa[CoolingTower.N_step] = CoolingTower.Q_cold_out; + CoolingTower.Lef[1] = 0.9077990913*((xsaturation_pT_Unique48( + CoolingTower.Pin[1], CoolingTower.T_cold_in)+0.622)/(CoolingTower.w[1]+ + 0.622)-1)/log((xsaturation_pT_Unique48(CoolingTower.Pin[1], + CoolingTower.T_cold_in)+0.622)/(CoolingTower.w[1]+0.622)); + CoolingTower.cp[1] = Modelica.Media.Water.WaterIF97_ph.specificHeatCapacityCp_Unique49 + ( + CoolingTower.water_inlet_flow.state_in); + CoolingTower.rho_air_inlet = CoolingTower.air_inlet_flow.rho_in; + CoolingTower.rho_air_outlet = CoolingTower.air_outlet_flow.rho_out; + 0.25*(CoolingTower.rho_air_inlet+CoolingTower.rho_air_outlet)* + CoolingTower.Cf*abs(CoolingTower.V_inlet)*CoolingTower.V_inlet = ( + CoolingTower.rho_air_inlet-CoolingTower.rho_air_outlet)*CoolingTower.gr* + CoolingTower.Lfi; + CoolingTower.Q_cold_in = CoolingTower.V_inlet*CoolingTower.Afr* + CoolingTower.rho_air_inlet*(1-CoolingTower.air_inlet.Xi_in[1]); + CoolingTower.air_inlet_flow.C_out.P = CoolingTower.air_inlet.C_in.P; + CoolingTower.air_inlet.C_in.Q+CoolingTower.air_inlet_flow.C_out.Q = 0.0; + CoolingTower.air_inlet_flow.C_in.P = CoolingTower.air_inlet_connector.P; + CoolingTower.air_inlet_connector.Q-CoolingTower.air_inlet_flow.C_in.Q = 0.0; + CoolingTower.air_outlet_flow.C_in.P = CoolingTower.air_outlet.C_out.P; + CoolingTower.air_outlet.C_out.Q+CoolingTower.air_outlet_flow.C_in.Q = 0.0; + CoolingTower.air_outlet_flow.C_out.P = CoolingTower.air_outlet_connector.P; + CoolingTower.air_outlet_connector.Q-CoolingTower.air_outlet_flow.C_out.Q = + 0.0; + CoolingTower.water_inlet_flow.C_out.P = CoolingTower.water_inlet.C_in.P; + CoolingTower.water_inlet.C_in.Q+CoolingTower.water_inlet_flow.C_out.Q = 0.0; + CoolingTower.water_inlet_flow.C_in.P = CoolingTower.water_inlet_connector.P; + CoolingTower.water_inlet_connector.Q-CoolingTower.water_inlet_flow.C_in.Q = + 0.0; + CoolingTower.water_outlet_flow.C_in.P = CoolingTower.water_outlet.C_out.P; + CoolingTower.water_outlet.C_out.Q+CoolingTower.water_outlet_flow.C_in.Q = + 0.0; + CoolingTower.water_outlet_flow.C_out.P = CoolingTower.water_outlet_connector.P; + CoolingTower.water_outlet_connector.Q-CoolingTower.water_outlet_flow.C_out.Q + = 0.0; + + // Component CEC194_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CEC194_sensor.flow_model.h_in = inStream(CEC194_sensor.flow_model.C_in.h_outflow); + CEC194_sensor.flow_model.h_out = CEC194_sensor.flow_model.C_out.h_outflow; + CEC194_sensor.flow_model.Q = CEC194_sensor.flow_model.C_in.Q; + CEC194_sensor.flow_model.P_in = CEC194_sensor.flow_model.C_in.P; + CEC194_sensor.flow_model.P_out = CEC194_sensor.flow_model.C_out.P; + CEC194_sensor.flow_model.Xi = inStream(CEC194_sensor.flow_model.C_in.Xi_outflow); + CEC194_sensor.flow_model.C_in.h_outflow = 1000000.0; + CEC194_sensor.flow_model.C_in.Xi_outflow = zeros(0); + CEC194_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC194_sensor.flow_model.P_in, CEC194_sensor.flow_model.h_in, + CEC194_sensor.flow_model.Xi, 0, 0); + CEC194_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC194_sensor.flow_model.P_out, CEC194_sensor.flow_model.h_out, + CEC194_sensor.flow_model.Xi, 0, 0); + CEC194_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC194_sensor.flow_model.state_in); + CEC194_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC194_sensor.flow_model.state_out); + CEC194_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC194_sensor.flow_model.state_in); + CEC194_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC194_sensor.flow_model.state_out); + CEC194_sensor.flow_model.rho = (CEC194_sensor.flow_model.rho_in+ + CEC194_sensor.flow_model.rho_out)/2; + CEC194_sensor.flow_model.Qv_in = CEC194_sensor.flow_model.Q/ + CEC194_sensor.flow_model.rho_in; + CEC194_sensor.flow_model.Qv_out = -CEC194_sensor.flow_model.Q/ + CEC194_sensor.flow_model.rho_out; + CEC194_sensor.flow_model.Qv = (CEC194_sensor.flow_model.Qv_in- + CEC194_sensor.flow_model.Qv_out)/2; + CEC194_sensor.flow_model.P_out-CEC194_sensor.flow_model.P_in = + CEC194_sensor.flow_model.DP; + CEC194_sensor.flow_model.Q*(CEC194_sensor.flow_model.h_out- + CEC194_sensor.flow_model.h_in) = CEC194_sensor.flow_model.W; + CEC194_sensor.flow_model.h_out-CEC194_sensor.flow_model.h_in = + CEC194_sensor.flow_model.DH; + CEC194_sensor.flow_model.T_out-CEC194_sensor.flow_model.T_in = + CEC194_sensor.flow_model.DT; + CEC194_sensor.flow_model.C_in.Q+CEC194_sensor.flow_model.C_out.Q = 0; + CEC194_sensor.flow_model.C_out.Xi_outflow = inStream(CEC194_sensor.flow_model.C_in.Xi_outflow); + assert(CEC194_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CEC194_sensor.flow_model.P = CEC194_sensor.flow_model.P_in; + CEC194_sensor.flow_model.h = CEC194_sensor.flow_model.h_in; + CEC194_sensor.flow_model.T = CEC194_sensor.flow_model.T_in; + CEC194_sensor.flow_model.DP = 0; + CEC194_sensor.flow_model.DH = 0; + // end of extends + + // Component CEC194_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not CEC194_sensor.faulty_flow_rate) then + CEC194_sensor.mass_flow_rate_bias = 0; + end if; + CEC194_sensor.P = CEC194_sensor.C_in.P; + CEC194_sensor.Q = CEC194_sensor.C_in.Q+CEC194_sensor.mass_flow_rate_bias; + CEC194_sensor.Xi = inStream(CEC194_sensor.C_in.Xi_outflow); + CEC194_sensor.h = inStream(CEC194_sensor.C_in.h_outflow); + CEC194_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC194_sensor.P, CEC194_sensor.h, CEC194_sensor.Xi, 0, 0); + assert(CEC194_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + CEC194_sensor.T = CEC194_sensor.flow_model.T; + CEC194_sensor.T_degC+273.15 = CEC194_sensor.T; + CEC194_sensor.T_degF = CEC194_sensor.T_degC*1.8+32; + // end of extends + equation + CEC194_sensor.flow_model.C_in.P = CEC194_sensor.C_in.P; + CEC194_sensor.C_in.Q-CEC194_sensor.flow_model.C_in.Q = 0.0; + CEC194_sensor.flow_model.C_out.P = CEC194_sensor.C_out.P; + CEC194_sensor.C_out.Q-CEC194_sensor.flow_model.C_out.Q = 0.0; + + // Component CEC197_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CEC197_sensor.flow_model.h_in = inStream(CEC197_sensor.flow_model.C_in.h_outflow); + CEC197_sensor.flow_model.h_out = CEC197_sensor.flow_model.C_out.h_outflow; + CEC197_sensor.flow_model.Q = CEC197_sensor.flow_model.C_in.Q; + CEC197_sensor.flow_model.P_in = CEC197_sensor.flow_model.C_in.P; + CEC197_sensor.flow_model.P_out = CEC197_sensor.flow_model.C_out.P; + CEC197_sensor.flow_model.Xi = inStream(CEC197_sensor.flow_model.C_in.Xi_outflow); + CEC197_sensor.flow_model.C_in.h_outflow = 1000000.0; + CEC197_sensor.flow_model.C_in.Xi_outflow = zeros(0); + CEC197_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC197_sensor.flow_model.P_in, CEC197_sensor.flow_model.h_in, + CEC197_sensor.flow_model.Xi, 0, 0); + CEC197_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC197_sensor.flow_model.P_out, CEC197_sensor.flow_model.h_out, + CEC197_sensor.flow_model.Xi, 0, 0); + CEC197_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC197_sensor.flow_model.state_in); + CEC197_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC197_sensor.flow_model.state_out); + CEC197_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC197_sensor.flow_model.state_in); + CEC197_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC197_sensor.flow_model.state_out); + CEC197_sensor.flow_model.rho = (CEC197_sensor.flow_model.rho_in+ + CEC197_sensor.flow_model.rho_out)/2; + CEC197_sensor.flow_model.Qv_in = CEC197_sensor.flow_model.Q/ + CEC197_sensor.flow_model.rho_in; + CEC197_sensor.flow_model.Qv_out = -CEC197_sensor.flow_model.Q/ + CEC197_sensor.flow_model.rho_out; + CEC197_sensor.flow_model.Qv = (CEC197_sensor.flow_model.Qv_in- + CEC197_sensor.flow_model.Qv_out)/2; + CEC197_sensor.flow_model.P_out-CEC197_sensor.flow_model.P_in = + CEC197_sensor.flow_model.DP; + CEC197_sensor.flow_model.Q*(CEC197_sensor.flow_model.h_out- + CEC197_sensor.flow_model.h_in) = CEC197_sensor.flow_model.W; + CEC197_sensor.flow_model.h_out-CEC197_sensor.flow_model.h_in = + CEC197_sensor.flow_model.DH; + CEC197_sensor.flow_model.T_out-CEC197_sensor.flow_model.T_in = + CEC197_sensor.flow_model.DT; + CEC197_sensor.flow_model.C_in.Q+CEC197_sensor.flow_model.C_out.Q = 0; + CEC197_sensor.flow_model.C_out.Xi_outflow = inStream(CEC197_sensor.flow_model.C_in.Xi_outflow); + assert(CEC197_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CEC197_sensor.flow_model.P = CEC197_sensor.flow_model.P_in; + CEC197_sensor.flow_model.h = CEC197_sensor.flow_model.h_in; + CEC197_sensor.flow_model.T = CEC197_sensor.flow_model.T_in; + CEC197_sensor.flow_model.DP = 0; + CEC197_sensor.flow_model.DH = 0; + // end of extends + + // Component CEC197_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not CEC197_sensor.faulty_flow_rate) then + CEC197_sensor.mass_flow_rate_bias = 0; + end if; + CEC197_sensor.P = CEC197_sensor.C_in.P; + CEC197_sensor.Q = CEC197_sensor.C_in.Q+CEC197_sensor.mass_flow_rate_bias; + CEC197_sensor.Xi = inStream(CEC197_sensor.C_in.Xi_outflow); + CEC197_sensor.h = inStream(CEC197_sensor.C_in.h_outflow); + CEC197_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC197_sensor.P, CEC197_sensor.h, CEC197_sensor.Xi, 0, 0); + assert(CEC197_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + CEC197_sensor.Qv = CEC197_sensor.Q/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC197_sensor.state); + CEC197_sensor.Q_lm = CEC197_sensor.Qv*60000; + CEC197_sensor.Q_th = CEC197_sensor.Q*3.6; + CEC197_sensor.Q_lbs = CEC197_sensor.Q*0.453592428; + CEC197_sensor.Q_Mlbh = CEC197_sensor.Q*0.0079366414387; + // end of extends + equation + CEC197_sensor.flow_model.C_in.P = CEC197_sensor.C_in.P; + CEC197_sensor.C_in.Q-CEC197_sensor.flow_model.C_in.Q = 0.0; + CEC197_sensor.flow_model.C_out.P = CEC197_sensor.C_out.P; + CEC197_sensor.C_out.Q-CEC197_sensor.flow_model.C_out.Q = 0.0; + + // Component AirSource + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + AirSource.C_out.P = AirSource.P_out; + AirSource.C_out.Q = AirSource.Q_out; + AirSource.C_out.h_outflow = AirSource.h_out; + AirSource.C_out.Xi_outflow = AirSource.Xi_out; + AirSource.state_out = setState_phX_Unique10(AirSource.P_out, + AirSource.h_out, AirSource.Xi_out); + AirSource.T_out = temperature_Unique28( + AirSource.state_out); + AirSource.Qv_out = AirSource.Q_out/density_Unique29( + AirSource.state_out); + // end of extends + equation + AirSource.Xi_out[1] = massFraction_pTphi_Unique31(AirSource.P_out, + AirSource.T_out, AirSource.relative_humidity); + + // Component sink + // class MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSink + equation + sink.C_in.P = sink.P_in; + sink.C_in.Q = sink.Q_in; + inStream(sink.C_in.h_outflow) = sink.h_in; + inStream(sink.C_in.Xi_outflow) = sink.Xi_in; + sink.state_in = setState_phX_Unique10(sink.P_in, sink.h_in, sink.Xi_in); + sink.T_in = temperature_Unique28( + sink.state_in); + sink.Qv_in = sink.Q_in/density_Unique29( + sink.state_in); + sink.C_in.h_outflow = 0; + sink.C_in.Xi_outflow = zeros(1); + // end of extends + equation + sink.Xi_in[1] = massFraction_pTphi_Unique31(sink.P_in, sink.T_in, + sink.relative_humidity); + + // Component AirInlet_Flow_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + AirInlet_Flow_sensor.flow_model.h_in = inStream(AirInlet_Flow_sensor.flow_model.C_in.h_outflow); + AirInlet_Flow_sensor.flow_model.h_out = AirInlet_Flow_sensor.flow_model.C_out.h_outflow; + AirInlet_Flow_sensor.flow_model.Q = AirInlet_Flow_sensor.flow_model.C_in.Q; + AirInlet_Flow_sensor.flow_model.P_in = AirInlet_Flow_sensor.flow_model.C_in.P; + AirInlet_Flow_sensor.flow_model.P_out = AirInlet_Flow_sensor.flow_model.C_out.P; + AirInlet_Flow_sensor.flow_model.Xi = inStream(AirInlet_Flow_sensor.flow_model.C_in.Xi_outflow); + AirInlet_Flow_sensor.flow_model.C_in.h_outflow = 1000000.0; + AirInlet_Flow_sensor.flow_model.C_in.Xi_outflow = zeros(1); + AirInlet_Flow_sensor.flow_model.state_in = setState_phX_Unique10( + AirInlet_Flow_sensor.flow_model.P_in, AirInlet_Flow_sensor.flow_model.h_in, + AirInlet_Flow_sensor.flow_model.Xi); + AirInlet_Flow_sensor.flow_model.state_out = setState_phX_Unique10( + AirInlet_Flow_sensor.flow_model.P_out, AirInlet_Flow_sensor.flow_model.h_out, + AirInlet_Flow_sensor.flow_model.Xi); + AirInlet_Flow_sensor.flow_model.T_in = temperature_Unique28( + AirInlet_Flow_sensor.flow_model.state_in); + AirInlet_Flow_sensor.flow_model.T_out = temperature_Unique28( + AirInlet_Flow_sensor.flow_model.state_out); + AirInlet_Flow_sensor.flow_model.rho_in = density_Unique29( + AirInlet_Flow_sensor.flow_model.state_in); + AirInlet_Flow_sensor.flow_model.rho_out = density_Unique29( + AirInlet_Flow_sensor.flow_model.state_out); + AirInlet_Flow_sensor.flow_model.rho = (AirInlet_Flow_sensor.flow_model.rho_in + +AirInlet_Flow_sensor.flow_model.rho_out)/2; + AirInlet_Flow_sensor.flow_model.Qv_in = AirInlet_Flow_sensor.flow_model.Q/ + AirInlet_Flow_sensor.flow_model.rho_in; + AirInlet_Flow_sensor.flow_model.Qv_out = -AirInlet_Flow_sensor.flow_model.Q + /AirInlet_Flow_sensor.flow_model.rho_out; + AirInlet_Flow_sensor.flow_model.Qv = (AirInlet_Flow_sensor.flow_model.Qv_in + -AirInlet_Flow_sensor.flow_model.Qv_out)/2; + AirInlet_Flow_sensor.flow_model.P_out-AirInlet_Flow_sensor.flow_model.P_in + = AirInlet_Flow_sensor.flow_model.DP; + AirInlet_Flow_sensor.flow_model.Q*(AirInlet_Flow_sensor.flow_model.h_out- + AirInlet_Flow_sensor.flow_model.h_in) = AirInlet_Flow_sensor.flow_model.W; + AirInlet_Flow_sensor.flow_model.h_out-AirInlet_Flow_sensor.flow_model.h_in + = AirInlet_Flow_sensor.flow_model.DH; + AirInlet_Flow_sensor.flow_model.T_out-AirInlet_Flow_sensor.flow_model.T_in + = AirInlet_Flow_sensor.flow_model.DT; + AirInlet_Flow_sensor.flow_model.C_in.Q+AirInlet_Flow_sensor.flow_model.C_out.Q + = 0; + AirInlet_Flow_sensor.flow_model.C_out.Xi_outflow = inStream( + AirInlet_Flow_sensor.flow_model.C_in.Xi_outflow); + assert(AirInlet_Flow_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + AirInlet_Flow_sensor.flow_model.P = AirInlet_Flow_sensor.flow_model.P_in; + AirInlet_Flow_sensor.flow_model.h = AirInlet_Flow_sensor.flow_model.h_in; + AirInlet_Flow_sensor.flow_model.T = AirInlet_Flow_sensor.flow_model.T_in; + AirInlet_Flow_sensor.flow_model.DP = 0; + AirInlet_Flow_sensor.flow_model.DH = 0; + // end of extends + + // Component AirInlet_Flow_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not AirInlet_Flow_sensor.faulty_flow_rate) then + AirInlet_Flow_sensor.mass_flow_rate_bias = 0; + end if; + AirInlet_Flow_sensor.P = AirInlet_Flow_sensor.C_in.P; + AirInlet_Flow_sensor.Q = AirInlet_Flow_sensor.C_in.Q+AirInlet_Flow_sensor.mass_flow_rate_bias; + AirInlet_Flow_sensor.Xi = inStream(AirInlet_Flow_sensor.C_in.Xi_outflow); + AirInlet_Flow_sensor.h = inStream(AirInlet_Flow_sensor.C_in.h_outflow); + AirInlet_Flow_sensor.state = setState_phX_Unique10(AirInlet_Flow_sensor.P, + AirInlet_Flow_sensor.h, AirInlet_Flow_sensor.Xi); + assert(AirInlet_Flow_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + AirInlet_Flow_sensor.Qv = AirInlet_Flow_sensor.Q/density_Unique29( + AirInlet_Flow_sensor.state); + AirInlet_Flow_sensor.Q_lm = AirInlet_Flow_sensor.Qv*60000; + AirInlet_Flow_sensor.Q_th = AirInlet_Flow_sensor.Q*3.6; + AirInlet_Flow_sensor.Q_lbs = AirInlet_Flow_sensor.Q*0.453592428; + AirInlet_Flow_sensor.Q_Mlbh = AirInlet_Flow_sensor.Q*0.0079366414387; + // end of extends + equation + AirInlet_Flow_sensor.flow_model.C_in.P = AirInlet_Flow_sensor.C_in.P; + AirInlet_Flow_sensor.C_in.Q-AirInlet_Flow_sensor.flow_model.C_in.Q = 0.0; + AirInlet_Flow_sensor.flow_model.C_out.P = AirInlet_Flow_sensor.C_out.P; + AirInlet_Flow_sensor.C_out.Q-AirInlet_Flow_sensor.flow_model.C_out.Q = 0.0; + + // Component AirInlet_Temp_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + AirInlet_Temp_sensor.flow_model.h_in = inStream(AirInlet_Temp_sensor.flow_model.C_in.h_outflow); + AirInlet_Temp_sensor.flow_model.h_out = AirInlet_Temp_sensor.flow_model.C_out.h_outflow; + AirInlet_Temp_sensor.flow_model.Q = AirInlet_Temp_sensor.flow_model.C_in.Q; + AirInlet_Temp_sensor.flow_model.P_in = AirInlet_Temp_sensor.flow_model.C_in.P; + AirInlet_Temp_sensor.flow_model.P_out = AirInlet_Temp_sensor.flow_model.C_out.P; + AirInlet_Temp_sensor.flow_model.Xi = inStream(AirInlet_Temp_sensor.flow_model.C_in.Xi_outflow); + AirInlet_Temp_sensor.flow_model.C_in.h_outflow = 1000000.0; + AirInlet_Temp_sensor.flow_model.C_in.Xi_outflow = zeros(1); + AirInlet_Temp_sensor.flow_model.state_in = setState_phX_Unique10( + AirInlet_Temp_sensor.flow_model.P_in, AirInlet_Temp_sensor.flow_model.h_in, + AirInlet_Temp_sensor.flow_model.Xi); + AirInlet_Temp_sensor.flow_model.state_out = setState_phX_Unique10( + AirInlet_Temp_sensor.flow_model.P_out, AirInlet_Temp_sensor.flow_model.h_out, + AirInlet_Temp_sensor.flow_model.Xi); + AirInlet_Temp_sensor.flow_model.T_in = temperature_Unique28( + AirInlet_Temp_sensor.flow_model.state_in); + AirInlet_Temp_sensor.flow_model.T_out = temperature_Unique28( + AirInlet_Temp_sensor.flow_model.state_out); + AirInlet_Temp_sensor.flow_model.rho_in = density_Unique29( + AirInlet_Temp_sensor.flow_model.state_in); + AirInlet_Temp_sensor.flow_model.rho_out = density_Unique29( + AirInlet_Temp_sensor.flow_model.state_out); + AirInlet_Temp_sensor.flow_model.rho = (AirInlet_Temp_sensor.flow_model.rho_in + +AirInlet_Temp_sensor.flow_model.rho_out)/2; + AirInlet_Temp_sensor.flow_model.Qv_in = AirInlet_Temp_sensor.flow_model.Q/ + AirInlet_Temp_sensor.flow_model.rho_in; + AirInlet_Temp_sensor.flow_model.Qv_out = -AirInlet_Temp_sensor.flow_model.Q + /AirInlet_Temp_sensor.flow_model.rho_out; + AirInlet_Temp_sensor.flow_model.Qv = (AirInlet_Temp_sensor.flow_model.Qv_in + -AirInlet_Temp_sensor.flow_model.Qv_out)/2; + AirInlet_Temp_sensor.flow_model.P_out-AirInlet_Temp_sensor.flow_model.P_in + = AirInlet_Temp_sensor.flow_model.DP; + AirInlet_Temp_sensor.flow_model.Q*(AirInlet_Temp_sensor.flow_model.h_out- + AirInlet_Temp_sensor.flow_model.h_in) = AirInlet_Temp_sensor.flow_model.W; + AirInlet_Temp_sensor.flow_model.h_out-AirInlet_Temp_sensor.flow_model.h_in + = AirInlet_Temp_sensor.flow_model.DH; + AirInlet_Temp_sensor.flow_model.T_out-AirInlet_Temp_sensor.flow_model.T_in + = AirInlet_Temp_sensor.flow_model.DT; + AirInlet_Temp_sensor.flow_model.C_in.Q+AirInlet_Temp_sensor.flow_model.C_out.Q + = 0; + AirInlet_Temp_sensor.flow_model.C_out.Xi_outflow = inStream( + AirInlet_Temp_sensor.flow_model.C_in.Xi_outflow); + assert(AirInlet_Temp_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + AirInlet_Temp_sensor.flow_model.P = AirInlet_Temp_sensor.flow_model.P_in; + AirInlet_Temp_sensor.flow_model.h = AirInlet_Temp_sensor.flow_model.h_in; + AirInlet_Temp_sensor.flow_model.T = AirInlet_Temp_sensor.flow_model.T_in; + AirInlet_Temp_sensor.flow_model.DP = 0; + AirInlet_Temp_sensor.flow_model.DH = 0; + // end of extends + + // Component AirInlet_Temp_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not AirInlet_Temp_sensor.faulty_flow_rate) then + AirInlet_Temp_sensor.mass_flow_rate_bias = 0; + end if; + AirInlet_Temp_sensor.P = AirInlet_Temp_sensor.C_in.P; + AirInlet_Temp_sensor.Q = AirInlet_Temp_sensor.C_in.Q+AirInlet_Temp_sensor.mass_flow_rate_bias; + AirInlet_Temp_sensor.Xi = inStream(AirInlet_Temp_sensor.C_in.Xi_outflow); + AirInlet_Temp_sensor.h = inStream(AirInlet_Temp_sensor.C_in.h_outflow); + AirInlet_Temp_sensor.state = setState_phX_Unique10(AirInlet_Temp_sensor.P, + AirInlet_Temp_sensor.h, AirInlet_Temp_sensor.Xi); + assert(AirInlet_Temp_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + AirInlet_Temp_sensor.T = AirInlet_Temp_sensor.flow_model.T; + AirInlet_Temp_sensor.T_degC+273.15 = AirInlet_Temp_sensor.T; + AirInlet_Temp_sensor.T_degF = AirInlet_Temp_sensor.T_degC*1.8+32; + // end of extends + equation + AirInlet_Temp_sensor.flow_model.C_in.P = AirInlet_Temp_sensor.C_in.P; + AirInlet_Temp_sensor.C_in.Q-AirInlet_Temp_sensor.flow_model.C_in.Q = 0.0; + AirInlet_Temp_sensor.flow_model.C_out.P = AirInlet_Temp_sensor.C_out.P; + AirInlet_Temp_sensor.C_out.Q-AirInlet_Temp_sensor.flow_model.C_out.Q = 0.0; + + // Component AirInlet_Press_sensor.flow_model + // class MetroscopeModelingLibrary.MoistAir.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + AirInlet_Press_sensor.flow_model.h_in = inStream(AirInlet_Press_sensor.flow_model.C_in.h_outflow); + AirInlet_Press_sensor.flow_model.h_out = AirInlet_Press_sensor.flow_model.C_out.h_outflow; + AirInlet_Press_sensor.flow_model.Q = AirInlet_Press_sensor.flow_model.C_in.Q; + AirInlet_Press_sensor.flow_model.P_in = AirInlet_Press_sensor.flow_model.C_in.P; + AirInlet_Press_sensor.flow_model.P_out = AirInlet_Press_sensor.flow_model.C_out.P; + AirInlet_Press_sensor.flow_model.Xi = inStream(AirInlet_Press_sensor.flow_model.C_in.Xi_outflow); + AirInlet_Press_sensor.flow_model.C_in.h_outflow = 1000000.0; + AirInlet_Press_sensor.flow_model.C_in.Xi_outflow = zeros(1); + AirInlet_Press_sensor.flow_model.state_in = setState_phX_Unique10( + AirInlet_Press_sensor.flow_model.P_in, AirInlet_Press_sensor.flow_model.h_in, + AirInlet_Press_sensor.flow_model.Xi); + AirInlet_Press_sensor.flow_model.state_out = setState_phX_Unique10( + AirInlet_Press_sensor.flow_model.P_out, AirInlet_Press_sensor.flow_model.h_out, + AirInlet_Press_sensor.flow_model.Xi); + AirInlet_Press_sensor.flow_model.T_in = temperature_Unique28( + AirInlet_Press_sensor.flow_model.state_in); + AirInlet_Press_sensor.flow_model.T_out = temperature_Unique28( + AirInlet_Press_sensor.flow_model.state_out); + AirInlet_Press_sensor.flow_model.rho_in = density_Unique29( + AirInlet_Press_sensor.flow_model.state_in); + AirInlet_Press_sensor.flow_model.rho_out = density_Unique29( + AirInlet_Press_sensor.flow_model.state_out); + AirInlet_Press_sensor.flow_model.rho = (AirInlet_Press_sensor.flow_model.rho_in + +AirInlet_Press_sensor.flow_model.rho_out)/2; + AirInlet_Press_sensor.flow_model.Qv_in = AirInlet_Press_sensor.flow_model.Q + /AirInlet_Press_sensor.flow_model.rho_in; + AirInlet_Press_sensor.flow_model.Qv_out = -AirInlet_Press_sensor.flow_model.Q + /AirInlet_Press_sensor.flow_model.rho_out; + AirInlet_Press_sensor.flow_model.Qv = (AirInlet_Press_sensor.flow_model.Qv_in + -AirInlet_Press_sensor.flow_model.Qv_out)/2; + AirInlet_Press_sensor.flow_model.P_out-AirInlet_Press_sensor.flow_model.P_in + = AirInlet_Press_sensor.flow_model.DP; + AirInlet_Press_sensor.flow_model.Q*(AirInlet_Press_sensor.flow_model.h_out + -AirInlet_Press_sensor.flow_model.h_in) = AirInlet_Press_sensor.flow_model.W; + AirInlet_Press_sensor.flow_model.h_out-AirInlet_Press_sensor.flow_model.h_in + = AirInlet_Press_sensor.flow_model.DH; + AirInlet_Press_sensor.flow_model.T_out-AirInlet_Press_sensor.flow_model.T_in + = AirInlet_Press_sensor.flow_model.DT; + AirInlet_Press_sensor.flow_model.C_in.Q+AirInlet_Press_sensor.flow_model.C_out.Q + = 0; + AirInlet_Press_sensor.flow_model.C_out.Xi_outflow = inStream( + AirInlet_Press_sensor.flow_model.C_in.Xi_outflow); + assert(AirInlet_Press_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + AirInlet_Press_sensor.flow_model.P = AirInlet_Press_sensor.flow_model.P_in; + AirInlet_Press_sensor.flow_model.h = AirInlet_Press_sensor.flow_model.h_in; + AirInlet_Press_sensor.flow_model.T = AirInlet_Press_sensor.flow_model.T_in; + AirInlet_Press_sensor.flow_model.DP = 0; + AirInlet_Press_sensor.flow_model.DH = 0; + // end of extends + + // Component AirInlet_Press_sensor + // class MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not AirInlet_Press_sensor.faulty_flow_rate) then + AirInlet_Press_sensor.mass_flow_rate_bias = 0; + end if; + AirInlet_Press_sensor.P = AirInlet_Press_sensor.C_in.P; + AirInlet_Press_sensor.Q = AirInlet_Press_sensor.C_in.Q+AirInlet_Press_sensor.mass_flow_rate_bias; + AirInlet_Press_sensor.Xi = inStream(AirInlet_Press_sensor.C_in.Xi_outflow); + AirInlet_Press_sensor.h = inStream(AirInlet_Press_sensor.C_in.h_outflow); + AirInlet_Press_sensor.state = setState_phX_Unique10(AirInlet_Press_sensor.P, + AirInlet_Press_sensor.h, AirInlet_Press_sensor.Xi); + assert(AirInlet_Press_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + AirInlet_Press_sensor.P_barA = AirInlet_Press_sensor.P*1E-05; + AirInlet_Press_sensor.P_psiA = AirInlet_Press_sensor.P*0.000145038; + AirInlet_Press_sensor.P_MPaA = AirInlet_Press_sensor.P*1E-06; + AirInlet_Press_sensor.P_kPaA = AirInlet_Press_sensor.P*0.001; + AirInlet_Press_sensor.P_barG = AirInlet_Press_sensor.P_barA-1; + AirInlet_Press_sensor.P_psiG = AirInlet_Press_sensor.P_psiA-14.50377377; + AirInlet_Press_sensor.P_MPaG = AirInlet_Press_sensor.P_MPaA-0.1; + AirInlet_Press_sensor.P_kPaG = AirInlet_Press_sensor.P_kPaA-100; + AirInlet_Press_sensor.P_mbar = AirInlet_Press_sensor.P*0.01; + AirInlet_Press_sensor.P_inHg = AirInlet_Press_sensor.P*0.0002953006; + // end of extends + equation + AirInlet_Press_sensor.flow_model.C_in.P = AirInlet_Press_sensor.C_in.P; + AirInlet_Press_sensor.C_in.Q-AirInlet_Press_sensor.flow_model.C_in.Q = 0.0; + AirInlet_Press_sensor.flow_model.C_out.P = AirInlet_Press_sensor.C_out.P; + AirInlet_Press_sensor.C_out.Q-AirInlet_Press_sensor.flow_model.C_out.Q = 0.0; + + // Component source1 + // class MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source + // extends MetroscopeModelingLibrary.Partial.BoundaryConditions.FluidSource + equation + source1.C_out.P = source1.P_out; + source1.C_out.Q = source1.Q_out; + source1.C_out.h_outflow = source1.h_out; + source1.C_out.Xi_outflow = source1.Xi_out; + source1.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (source1.P_out, source1.h_out, source1.Xi_out, 0, 0); + source1.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + source1.state_out); + source1.Qv_out = source1.Q_out/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + source1.state_out); + // end of extends + + // Component V423_valve + // class MetroscopeModelingLibrary.WaterSteam.Pipes.ControlValve + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + V423_valve.h_in = inStream(V423_valve.C_in.h_outflow); + V423_valve.h_out = V423_valve.C_out.h_outflow; + V423_valve.Q = V423_valve.C_in.Q; + V423_valve.P_in = V423_valve.C_in.P; + V423_valve.P_out = V423_valve.C_out.P; + V423_valve.Xi = inStream(V423_valve.C_in.Xi_outflow); + V423_valve.C_in.h_outflow = 1000000.0; + V423_valve.C_in.Xi_outflow = zeros(0); + V423_valve.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (V423_valve.P_in, V423_valve.h_in, V423_valve.Xi, 0, 0); + V423_valve.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (V423_valve.P_out, V423_valve.h_out, V423_valve.Xi, 0, 0); + V423_valve.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + V423_valve.state_in); + V423_valve.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + V423_valve.state_out); + V423_valve.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + V423_valve.state_in); + V423_valve.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + V423_valve.state_out); + V423_valve.rho = (V423_valve.rho_in+V423_valve.rho_out)/2; + V423_valve.Qv_in = V423_valve.Q/V423_valve.rho_in; + V423_valve.Qv_out = -V423_valve.Q/V423_valve.rho_out; + V423_valve.Qv = (V423_valve.Qv_in-V423_valve.Qv_out)/2; + V423_valve.P_out-V423_valve.P_in = V423_valve.DP; + V423_valve.Q*(V423_valve.h_out-V423_valve.h_in) = V423_valve.W; + V423_valve.h_out-V423_valve.h_in = V423_valve.DH; + V423_valve.T_out-V423_valve.T_in = V423_valve.DT; + V423_valve.C_in.Q+V423_valve.C_out.Q = 0; + V423_valve.C_out.Xi_outflow = inStream(V423_valve.C_in.Xi_outflow); + assert(V423_valve.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + V423_valve.h = V423_valve.h_in; + V423_valve.DH = 0; + // extends MetroscopeModelingLibrary.Partial.Pipes.ControlValve + equation + V423_valve.DP*V423_valve.Cv*abs(V423_valve.Cv) = -1733000000000.0*abs( + V423_valve.Q)*V423_valve.Q/V423_valve.rho_in^2; + V423_valve.Cv = V423_valve.Opening*V423_valve.Cv_max; + // end of extends + + // Component V422_valve + // class MetroscopeModelingLibrary.WaterSteam.Pipes.ControlValve + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + V422_valve.h_in = inStream(V422_valve.C_in.h_outflow); + V422_valve.h_out = V422_valve.C_out.h_outflow; + V422_valve.Q = V422_valve.C_in.Q; + V422_valve.P_in = V422_valve.C_in.P; + V422_valve.P_out = V422_valve.C_out.P; + V422_valve.Xi = inStream(V422_valve.C_in.Xi_outflow); + V422_valve.C_in.h_outflow = 1000000.0; + V422_valve.C_in.Xi_outflow = zeros(0); + V422_valve.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (V422_valve.P_in, V422_valve.h_in, V422_valve.Xi, 0, 0); + V422_valve.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (V422_valve.P_out, V422_valve.h_out, V422_valve.Xi, 0, 0); + V422_valve.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + V422_valve.state_in); + V422_valve.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + V422_valve.state_out); + V422_valve.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + V422_valve.state_in); + V422_valve.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + V422_valve.state_out); + V422_valve.rho = (V422_valve.rho_in+V422_valve.rho_out)/2; + V422_valve.Qv_in = V422_valve.Q/V422_valve.rho_in; + V422_valve.Qv_out = -V422_valve.Q/V422_valve.rho_out; + V422_valve.Qv = (V422_valve.Qv_in-V422_valve.Qv_out)/2; + V422_valve.P_out-V422_valve.P_in = V422_valve.DP; + V422_valve.Q*(V422_valve.h_out-V422_valve.h_in) = V422_valve.W; + V422_valve.h_out-V422_valve.h_in = V422_valve.DH; + V422_valve.T_out-V422_valve.T_in = V422_valve.DT; + V422_valve.C_in.Q+V422_valve.C_out.Q = 0; + V422_valve.C_out.Xi_outflow = inStream(V422_valve.C_in.Xi_outflow); + assert(V422_valve.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + V422_valve.h = V422_valve.h_in; + V422_valve.DH = 0; + // extends MetroscopeModelingLibrary.Partial.Pipes.ControlValve + equation + V422_valve.DP*V422_valve.Cv*abs(V422_valve.Cv) = -1733000000000.0*abs( + V422_valve.Q)*V422_valve.Q/V422_valve.rho_in^2; + V422_valve.Cv = V422_valve.Opening*V422_valve.Cv_max; + // end of extends + + // Component V423_opening_sensor + // class MetroscopeModelingLibrary.Sensors.Outline.OpeningSensor + equation + V423_opening_sensor.Opening_pc = V423_opening_sensor.Opening*100; + + // Component V422_opening_sensor + // class MetroscopeModelingLibrary.Sensors.Outline.OpeningSensor + equation + V422_opening_sensor.Opening_pc = V422_opening_sensor.Opening*100; + + // Component Q_reject_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Q_reject_sensor.flow_model.h_in = inStream(Q_reject_sensor.flow_model.C_in.h_outflow); + Q_reject_sensor.flow_model.h_out = Q_reject_sensor.flow_model.C_out.h_outflow; + Q_reject_sensor.flow_model.Q = Q_reject_sensor.flow_model.C_in.Q; + Q_reject_sensor.flow_model.P_in = Q_reject_sensor.flow_model.C_in.P; + Q_reject_sensor.flow_model.P_out = Q_reject_sensor.flow_model.C_out.P; + Q_reject_sensor.flow_model.Xi = inStream(Q_reject_sensor.flow_model.C_in.Xi_outflow); + Q_reject_sensor.flow_model.C_in.h_outflow = 1000000.0; + Q_reject_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Q_reject_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_reject_sensor.flow_model.P_in, Q_reject_sensor.flow_model.h_in, + Q_reject_sensor.flow_model.Xi, 0, 0); + Q_reject_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_reject_sensor.flow_model.P_out, Q_reject_sensor.flow_model.h_out, + Q_reject_sensor.flow_model.Xi, 0, 0); + Q_reject_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Q_reject_sensor.flow_model.state_in); + Q_reject_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Q_reject_sensor.flow_model.state_out); + Q_reject_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_reject_sensor.flow_model.state_in); + Q_reject_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_reject_sensor.flow_model.state_out); + Q_reject_sensor.flow_model.rho = (Q_reject_sensor.flow_model.rho_in+ + Q_reject_sensor.flow_model.rho_out)/2; + Q_reject_sensor.flow_model.Qv_in = Q_reject_sensor.flow_model.Q/ + Q_reject_sensor.flow_model.rho_in; + Q_reject_sensor.flow_model.Qv_out = -Q_reject_sensor.flow_model.Q/ + Q_reject_sensor.flow_model.rho_out; + Q_reject_sensor.flow_model.Qv = (Q_reject_sensor.flow_model.Qv_in- + Q_reject_sensor.flow_model.Qv_out)/2; + Q_reject_sensor.flow_model.P_out-Q_reject_sensor.flow_model.P_in = + Q_reject_sensor.flow_model.DP; + Q_reject_sensor.flow_model.Q*(Q_reject_sensor.flow_model.h_out- + Q_reject_sensor.flow_model.h_in) = Q_reject_sensor.flow_model.W; + Q_reject_sensor.flow_model.h_out-Q_reject_sensor.flow_model.h_in = + Q_reject_sensor.flow_model.DH; + Q_reject_sensor.flow_model.T_out-Q_reject_sensor.flow_model.T_in = + Q_reject_sensor.flow_model.DT; + Q_reject_sensor.flow_model.C_in.Q+Q_reject_sensor.flow_model.C_out.Q = 0; + Q_reject_sensor.flow_model.C_out.Xi_outflow = inStream(Q_reject_sensor.flow_model.C_in.Xi_outflow); + assert(Q_reject_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Q_reject_sensor.flow_model.P = Q_reject_sensor.flow_model.P_in; + Q_reject_sensor.flow_model.h = Q_reject_sensor.flow_model.h_in; + Q_reject_sensor.flow_model.T = Q_reject_sensor.flow_model.T_in; + Q_reject_sensor.flow_model.DP = 0; + Q_reject_sensor.flow_model.DH = 0; + // end of extends + + // Component Q_reject_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Q_reject_sensor.faulty_flow_rate) then + Q_reject_sensor.mass_flow_rate_bias = 0; + end if; + Q_reject_sensor.P = Q_reject_sensor.C_in.P; + Q_reject_sensor.Q = Q_reject_sensor.C_in.Q+Q_reject_sensor.mass_flow_rate_bias; + Q_reject_sensor.Xi = inStream(Q_reject_sensor.C_in.Xi_outflow); + Q_reject_sensor.h = inStream(Q_reject_sensor.C_in.h_outflow); + Q_reject_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_reject_sensor.P, Q_reject_sensor.h, Q_reject_sensor.Xi, 0, 0); + assert(Q_reject_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + Q_reject_sensor.Qv = Q_reject_sensor.Q/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_reject_sensor.state); + Q_reject_sensor.Q_lm = Q_reject_sensor.Qv*60000; + Q_reject_sensor.Q_th = Q_reject_sensor.Q*3.6; + Q_reject_sensor.Q_lbs = Q_reject_sensor.Q*0.453592428; + Q_reject_sensor.Q_Mlbh = Q_reject_sensor.Q*0.0079366414387; + // end of extends + equation + Q_reject_sensor.flow_model.C_in.P = Q_reject_sensor.C_in.P; + Q_reject_sensor.C_in.Q-Q_reject_sensor.flow_model.C_in.Q = 0.0; + Q_reject_sensor.flow_model.C_out.P = Q_reject_sensor.C_out.P; + Q_reject_sensor.C_out.Q-Q_reject_sensor.flow_model.C_out.Q = 0.0; + + // Component Q_reject_press_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Q_reject_press_sensor.flow_model.h_in = inStream(Q_reject_press_sensor.flow_model.C_in.h_outflow); + Q_reject_press_sensor.flow_model.h_out = Q_reject_press_sensor.flow_model.C_out.h_outflow; + Q_reject_press_sensor.flow_model.Q = Q_reject_press_sensor.flow_model.C_in.Q; + Q_reject_press_sensor.flow_model.P_in = Q_reject_press_sensor.flow_model.C_in.P; + Q_reject_press_sensor.flow_model.P_out = Q_reject_press_sensor.flow_model.C_out.P; + Q_reject_press_sensor.flow_model.Xi = inStream(Q_reject_press_sensor.flow_model.C_in.Xi_outflow); + Q_reject_press_sensor.flow_model.C_in.h_outflow = 1000000.0; + Q_reject_press_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Q_reject_press_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_reject_press_sensor.flow_model.P_in, Q_reject_press_sensor.flow_model.h_in, + Q_reject_press_sensor.flow_model.Xi, 0, 0); + Q_reject_press_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_reject_press_sensor.flow_model.P_out, Q_reject_press_sensor.flow_model.h_out, + Q_reject_press_sensor.flow_model.Xi, 0, 0); + Q_reject_press_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Q_reject_press_sensor.flow_model.state_in); + Q_reject_press_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Q_reject_press_sensor.flow_model.state_out); + Q_reject_press_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_reject_press_sensor.flow_model.state_in); + Q_reject_press_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_reject_press_sensor.flow_model.state_out); + Q_reject_press_sensor.flow_model.rho = (Q_reject_press_sensor.flow_model.rho_in + +Q_reject_press_sensor.flow_model.rho_out)/2; + Q_reject_press_sensor.flow_model.Qv_in = Q_reject_press_sensor.flow_model.Q + /Q_reject_press_sensor.flow_model.rho_in; + Q_reject_press_sensor.flow_model.Qv_out = -Q_reject_press_sensor.flow_model.Q + /Q_reject_press_sensor.flow_model.rho_out; + Q_reject_press_sensor.flow_model.Qv = (Q_reject_press_sensor.flow_model.Qv_in + -Q_reject_press_sensor.flow_model.Qv_out)/2; + Q_reject_press_sensor.flow_model.P_out-Q_reject_press_sensor.flow_model.P_in + = Q_reject_press_sensor.flow_model.DP; + Q_reject_press_sensor.flow_model.Q*(Q_reject_press_sensor.flow_model.h_out + -Q_reject_press_sensor.flow_model.h_in) = Q_reject_press_sensor.flow_model.W; + Q_reject_press_sensor.flow_model.h_out-Q_reject_press_sensor.flow_model.h_in + = Q_reject_press_sensor.flow_model.DH; + Q_reject_press_sensor.flow_model.T_out-Q_reject_press_sensor.flow_model.T_in + = Q_reject_press_sensor.flow_model.DT; + Q_reject_press_sensor.flow_model.C_in.Q+Q_reject_press_sensor.flow_model.C_out.Q + = 0; + Q_reject_press_sensor.flow_model.C_out.Xi_outflow = inStream( + Q_reject_press_sensor.flow_model.C_in.Xi_outflow); + assert(Q_reject_press_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Q_reject_press_sensor.flow_model.P = Q_reject_press_sensor.flow_model.P_in; + Q_reject_press_sensor.flow_model.h = Q_reject_press_sensor.flow_model.h_in; + Q_reject_press_sensor.flow_model.T = Q_reject_press_sensor.flow_model.T_in; + Q_reject_press_sensor.flow_model.DP = 0; + Q_reject_press_sensor.flow_model.DH = 0; + // end of extends + + // Component Q_reject_press_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Q_reject_press_sensor.faulty_flow_rate) then + Q_reject_press_sensor.mass_flow_rate_bias = 0; + end if; + Q_reject_press_sensor.P = Q_reject_press_sensor.C_in.P; + Q_reject_press_sensor.Q = Q_reject_press_sensor.C_in.Q+Q_reject_press_sensor.mass_flow_rate_bias; + Q_reject_press_sensor.Xi = inStream(Q_reject_press_sensor.C_in.Xi_outflow); + Q_reject_press_sensor.h = inStream(Q_reject_press_sensor.C_in.h_outflow); + Q_reject_press_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_reject_press_sensor.P, Q_reject_press_sensor.h, Q_reject_press_sensor.Xi, + 0, 0); + assert(Q_reject_press_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + Q_reject_press_sensor.P_barA = Q_reject_press_sensor.P*1E-05; + Q_reject_press_sensor.P_psiA = Q_reject_press_sensor.P*0.000145038; + Q_reject_press_sensor.P_MPaA = Q_reject_press_sensor.P*1E-06; + Q_reject_press_sensor.P_kPaA = Q_reject_press_sensor.P*0.001; + Q_reject_press_sensor.P_barG = Q_reject_press_sensor.P_barA-1; + Q_reject_press_sensor.P_psiG = Q_reject_press_sensor.P_psiA-14.50377377; + Q_reject_press_sensor.P_MPaG = Q_reject_press_sensor.P_MPaA-0.1; + Q_reject_press_sensor.P_kPaG = Q_reject_press_sensor.P_kPaA-100; + Q_reject_press_sensor.P_mbar = Q_reject_press_sensor.P*0.01; + Q_reject_press_sensor.P_inHg = Q_reject_press_sensor.P*0.0002953006; + // end of extends + equation + Q_reject_press_sensor.flow_model.C_in.P = Q_reject_press_sensor.C_in.P; + Q_reject_press_sensor.C_in.Q-Q_reject_press_sensor.flow_model.C_in.Q = 0.0; + Q_reject_press_sensor.flow_model.C_out.P = Q_reject_press_sensor.C_out.P; + Q_reject_press_sensor.C_out.Q-Q_reject_press_sensor.flow_model.C_out.Q = 0.0; + + // Component Pump + // class MetroscopeModelingLibrary.WaterSteam.Machines.Pump + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Pump.h_in = inStream(Pump.C_in.h_outflow); + Pump.h_out = Pump.C_out.h_outflow; + Pump.Q = Pump.C_in.Q; + Pump.P_in = Pump.C_in.P; + Pump.P_out = Pump.C_out.P; + Pump.Xi = inStream(Pump.C_in.Xi_outflow); + Pump.C_in.h_outflow = 1000000.0; + Pump.C_in.Xi_outflow = zeros(0); + Pump.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1( + Pump.P_in, Pump.h_in, Pump.Xi, 0, 0); + Pump.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1( + Pump.P_out, Pump.h_out, Pump.Xi, 0, 0); + Pump.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + Pump.state_in); + Pump.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + Pump.state_out); + Pump.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + Pump.state_in); + Pump.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + Pump.state_out); + Pump.rho = (Pump.rho_in+Pump.rho_out)/2; + Pump.Qv_in = Pump.Q/Pump.rho_in; + Pump.Qv_out = -Pump.Q/Pump.rho_out; + Pump.Qv = (Pump.Qv_in-Pump.Qv_out)/2; + Pump.P_out-Pump.P_in = Pump.DP; + Pump.Q*(Pump.h_out-Pump.h_in) = Pump.W; + Pump.h_out-Pump.h_in = Pump.DH; + Pump.T_out-Pump.T_in = Pump.DT; + Pump.C_in.Q+Pump.C_out.Q = 0; + Pump.C_out.Xi_outflow = inStream(Pump.C_in.Xi_outflow); + assert(Pump.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Machines.Pump + equation + Pump.R = Pump.VRot/Pump.VRotn; + Pump.hn = Pump.a1*Pump.Qv^2+Pump.a2*Pump.Qv*Pump.R+Pump.a3*Pump.R^2; + Pump.rh = noEvent(max((if Pump.R > 1E-05 then Pump.b1*Pump.Qv^2/Pump.R^2+ + Pump.b2*Pump.Qv/Pump.R+Pump.b3 else Pump.b3), Pump.rh_min)); + Pump.DP = Pump.rho*9.80665*Pump.hn; + Pump.DH = 9.80665*Pump.hn/Pump.rh; + Pump.Wm = Pump.C_power.W; + Pump.Wm = Pump.W/Pump.rm; + Pump.Wh = Pump.Qv*Pump.DP/Pump.rh; + // end of extends + + // Component CEC180_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + CEC180_sensor.flow_model.h_in = inStream(CEC180_sensor.flow_model.C_in.h_outflow); + CEC180_sensor.flow_model.h_out = CEC180_sensor.flow_model.C_out.h_outflow; + CEC180_sensor.flow_model.Q = CEC180_sensor.flow_model.C_in.Q; + CEC180_sensor.flow_model.P_in = CEC180_sensor.flow_model.C_in.P; + CEC180_sensor.flow_model.P_out = CEC180_sensor.flow_model.C_out.P; + CEC180_sensor.flow_model.Xi = inStream(CEC180_sensor.flow_model.C_in.Xi_outflow); + CEC180_sensor.flow_model.C_in.h_outflow = 1000000.0; + CEC180_sensor.flow_model.C_in.Xi_outflow = zeros(0); + CEC180_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC180_sensor.flow_model.P_in, CEC180_sensor.flow_model.h_in, + CEC180_sensor.flow_model.Xi, 0, 0); + CEC180_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC180_sensor.flow_model.P_out, CEC180_sensor.flow_model.h_out, + CEC180_sensor.flow_model.Xi, 0, 0); + CEC180_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC180_sensor.flow_model.state_in); + CEC180_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + CEC180_sensor.flow_model.state_out); + CEC180_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC180_sensor.flow_model.state_in); + CEC180_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + CEC180_sensor.flow_model.state_out); + CEC180_sensor.flow_model.rho = (CEC180_sensor.flow_model.rho_in+ + CEC180_sensor.flow_model.rho_out)/2; + CEC180_sensor.flow_model.Qv_in = CEC180_sensor.flow_model.Q/ + CEC180_sensor.flow_model.rho_in; + CEC180_sensor.flow_model.Qv_out = -CEC180_sensor.flow_model.Q/ + CEC180_sensor.flow_model.rho_out; + CEC180_sensor.flow_model.Qv = (CEC180_sensor.flow_model.Qv_in- + CEC180_sensor.flow_model.Qv_out)/2; + CEC180_sensor.flow_model.P_out-CEC180_sensor.flow_model.P_in = + CEC180_sensor.flow_model.DP; + CEC180_sensor.flow_model.Q*(CEC180_sensor.flow_model.h_out- + CEC180_sensor.flow_model.h_in) = CEC180_sensor.flow_model.W; + CEC180_sensor.flow_model.h_out-CEC180_sensor.flow_model.h_in = + CEC180_sensor.flow_model.DH; + CEC180_sensor.flow_model.T_out-CEC180_sensor.flow_model.T_in = + CEC180_sensor.flow_model.DT; + CEC180_sensor.flow_model.C_in.Q+CEC180_sensor.flow_model.C_out.Q = 0; + CEC180_sensor.flow_model.C_out.Xi_outflow = inStream(CEC180_sensor.flow_model.C_in.Xi_outflow); + assert(CEC180_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + CEC180_sensor.flow_model.P = CEC180_sensor.flow_model.P_in; + CEC180_sensor.flow_model.h = CEC180_sensor.flow_model.h_in; + CEC180_sensor.flow_model.T = CEC180_sensor.flow_model.T_in; + CEC180_sensor.flow_model.DP = 0; + CEC180_sensor.flow_model.DH = 0; + // end of extends + + // Component CEC180_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not CEC180_sensor.faulty_flow_rate) then + CEC180_sensor.mass_flow_rate_bias = 0; + end if; + CEC180_sensor.P = CEC180_sensor.C_in.P; + CEC180_sensor.Q = CEC180_sensor.C_in.Q+CEC180_sensor.mass_flow_rate_bias; + CEC180_sensor.Xi = inStream(CEC180_sensor.C_in.Xi_outflow); + CEC180_sensor.h = inStream(CEC180_sensor.C_in.h_outflow); + CEC180_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (CEC180_sensor.P, CEC180_sensor.h, CEC180_sensor.Xi, 0, 0); + assert(CEC180_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.TemperatureSensor + equation + CEC180_sensor.T = CEC180_sensor.flow_model.T; + CEC180_sensor.T_degC+273.15 = CEC180_sensor.T; + CEC180_sensor.T_degF = CEC180_sensor.T_degC*1.8+32; + // end of extends + equation + CEC180_sensor.flow_model.C_in.P = CEC180_sensor.C_in.P; + CEC180_sensor.C_in.Q-CEC180_sensor.flow_model.C_in.Q = 0.0; + CEC180_sensor.flow_model.C_out.P = CEC180_sensor.C_out.P; + CEC180_sensor.C_out.Q-CEC180_sensor.flow_model.C_out.Q = 0.0; + + // Component Press1_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Press1_sensor.flow_model.h_in = inStream(Press1_sensor.flow_model.C_in.h_outflow); + Press1_sensor.flow_model.h_out = Press1_sensor.flow_model.C_out.h_outflow; + Press1_sensor.flow_model.Q = Press1_sensor.flow_model.C_in.Q; + Press1_sensor.flow_model.P_in = Press1_sensor.flow_model.C_in.P; + Press1_sensor.flow_model.P_out = Press1_sensor.flow_model.C_out.P; + Press1_sensor.flow_model.Xi = inStream(Press1_sensor.flow_model.C_in.Xi_outflow); + Press1_sensor.flow_model.C_in.h_outflow = 1000000.0; + Press1_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Press1_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Press1_sensor.flow_model.P_in, Press1_sensor.flow_model.h_in, + Press1_sensor.flow_model.Xi, 0, 0); + Press1_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Press1_sensor.flow_model.P_out, Press1_sensor.flow_model.h_out, + Press1_sensor.flow_model.Xi, 0, 0); + Press1_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Press1_sensor.flow_model.state_in); + Press1_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Press1_sensor.flow_model.state_out); + Press1_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Press1_sensor.flow_model.state_in); + Press1_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Press1_sensor.flow_model.state_out); + Press1_sensor.flow_model.rho = (Press1_sensor.flow_model.rho_in+ + Press1_sensor.flow_model.rho_out)/2; + Press1_sensor.flow_model.Qv_in = Press1_sensor.flow_model.Q/ + Press1_sensor.flow_model.rho_in; + Press1_sensor.flow_model.Qv_out = -Press1_sensor.flow_model.Q/ + Press1_sensor.flow_model.rho_out; + Press1_sensor.flow_model.Qv = (Press1_sensor.flow_model.Qv_in- + Press1_sensor.flow_model.Qv_out)/2; + Press1_sensor.flow_model.P_out-Press1_sensor.flow_model.P_in = + Press1_sensor.flow_model.DP; + Press1_sensor.flow_model.Q*(Press1_sensor.flow_model.h_out- + Press1_sensor.flow_model.h_in) = Press1_sensor.flow_model.W; + Press1_sensor.flow_model.h_out-Press1_sensor.flow_model.h_in = + Press1_sensor.flow_model.DH; + Press1_sensor.flow_model.T_out-Press1_sensor.flow_model.T_in = + Press1_sensor.flow_model.DT; + Press1_sensor.flow_model.C_in.Q+Press1_sensor.flow_model.C_out.Q = 0; + Press1_sensor.flow_model.C_out.Xi_outflow = inStream(Press1_sensor.flow_model.C_in.Xi_outflow); + assert(Press1_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Press1_sensor.flow_model.P = Press1_sensor.flow_model.P_in; + Press1_sensor.flow_model.h = Press1_sensor.flow_model.h_in; + Press1_sensor.flow_model.T = Press1_sensor.flow_model.T_in; + Press1_sensor.flow_model.DP = 0; + Press1_sensor.flow_model.DH = 0; + // end of extends + + // Component Press1_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Press1_sensor.faulty_flow_rate) then + Press1_sensor.mass_flow_rate_bias = 0; + end if; + Press1_sensor.P = Press1_sensor.C_in.P; + Press1_sensor.Q = Press1_sensor.C_in.Q+Press1_sensor.mass_flow_rate_bias; + Press1_sensor.Xi = inStream(Press1_sensor.C_in.Xi_outflow); + Press1_sensor.h = inStream(Press1_sensor.C_in.h_outflow); + Press1_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Press1_sensor.P, Press1_sensor.h, Press1_sensor.Xi, 0, 0); + assert(Press1_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.PressureSensor + equation + Press1_sensor.P_barA = Press1_sensor.P*1E-05; + Press1_sensor.P_psiA = Press1_sensor.P*0.000145038; + Press1_sensor.P_MPaA = Press1_sensor.P*1E-06; + Press1_sensor.P_kPaA = Press1_sensor.P*0.001; + Press1_sensor.P_barG = Press1_sensor.P_barA-1; + Press1_sensor.P_psiG = Press1_sensor.P_psiA-14.50377377; + Press1_sensor.P_MPaG = Press1_sensor.P_MPaA-0.1; + Press1_sensor.P_kPaG = Press1_sensor.P_kPaA-100; + Press1_sensor.P_mbar = Press1_sensor.P*0.01; + Press1_sensor.P_inHg = Press1_sensor.P*0.0002953006; + // end of extends + equation + Press1_sensor.flow_model.C_in.P = Press1_sensor.C_in.P; + Press1_sensor.C_in.Q-Press1_sensor.flow_model.C_in.Q = 0.0; + Press1_sensor.flow_model.C_out.P = Press1_sensor.C_out.P; + Press1_sensor.C_out.Q-Press1_sensor.flow_model.C_out.Q = 0.0; + + // Component source + // class MetroscopeModelingLibrary.Power.BoundaryConditions.Source + equation + source.W_out = source.C_out.W; + + // Component V421_valve + // class MetroscopeModelingLibrary.WaterSteam.Pipes.ControlValve + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + V421_valve.h_in = inStream(V421_valve.C_in.h_outflow); + V421_valve.h_out = V421_valve.C_out.h_outflow; + V421_valve.Q = V421_valve.C_in.Q; + V421_valve.P_in = V421_valve.C_in.P; + V421_valve.P_out = V421_valve.C_out.P; + V421_valve.Xi = inStream(V421_valve.C_in.Xi_outflow); + V421_valve.C_in.h_outflow = 1000000.0; + V421_valve.C_in.Xi_outflow = zeros(0); + V421_valve.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (V421_valve.P_in, V421_valve.h_in, V421_valve.Xi, 0, 0); + V421_valve.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (V421_valve.P_out, V421_valve.h_out, V421_valve.Xi, 0, 0); + V421_valve.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + V421_valve.state_in); + V421_valve.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5( + V421_valve.state_out); + V421_valve.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + V421_valve.state_in); + V421_valve.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6( + V421_valve.state_out); + V421_valve.rho = (V421_valve.rho_in+V421_valve.rho_out)/2; + V421_valve.Qv_in = V421_valve.Q/V421_valve.rho_in; + V421_valve.Qv_out = -V421_valve.Q/V421_valve.rho_out; + V421_valve.Qv = (V421_valve.Qv_in-V421_valve.Qv_out)/2; + V421_valve.P_out-V421_valve.P_in = V421_valve.DP; + V421_valve.Q*(V421_valve.h_out-V421_valve.h_in) = V421_valve.W; + V421_valve.h_out-V421_valve.h_in = V421_valve.DH; + V421_valve.T_out-V421_valve.T_in = V421_valve.DT; + V421_valve.C_in.Q+V421_valve.C_out.Q = 0; + V421_valve.C_out.Xi_outflow = inStream(V421_valve.C_in.Xi_outflow); + assert(V421_valve.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoHFlowModel + equation + V421_valve.h = V421_valve.h_in; + V421_valve.DH = 0; + // extends MetroscopeModelingLibrary.Partial.Pipes.ControlValve + equation + V421_valve.DP*V421_valve.Cv*abs(V421_valve.Cv) = -1733000000000.0*abs( + V421_valve.Q)*V421_valve.Q/V421_valve.rho_in^2; + V421_valve.Cv = V421_valve.Opening*V421_valve.Cv_max; + // end of extends + + // Component V421_opening_sensor + // class MetroscopeModelingLibrary.Sensors.Outline.OpeningSensor + equation + V421_opening_sensor.Opening_pc = V421_opening_sensor.Opening*100; + + // Component Q_recirculation_sensor.flow_model + // class MetroscopeModelingLibrary.WaterSteam.BaseClasses.IsoPHFlowModel + // extends MetroscopeModelingLibrary.Partial.BaseClasses.FlowModel + equation + Q_recirculation_sensor.flow_model.h_in = inStream(Q_recirculation_sensor.flow_model.C_in.h_outflow); + Q_recirculation_sensor.flow_model.h_out = Q_recirculation_sensor.flow_model.C_out.h_outflow; + Q_recirculation_sensor.flow_model.Q = Q_recirculation_sensor.flow_model.C_in.Q; + Q_recirculation_sensor.flow_model.P_in = Q_recirculation_sensor.flow_model.C_in.P; + Q_recirculation_sensor.flow_model.P_out = Q_recirculation_sensor.flow_model.C_out.P; + Q_recirculation_sensor.flow_model.Xi = inStream(Q_recirculation_sensor.flow_model.C_in.Xi_outflow); + Q_recirculation_sensor.flow_model.C_in.h_outflow = 1000000.0; + Q_recirculation_sensor.flow_model.C_in.Xi_outflow = zeros(0); + Q_recirculation_sensor.flow_model.state_in = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_recirculation_sensor.flow_model.P_in, Q_recirculation_sensor.flow_model.h_in, + Q_recirculation_sensor.flow_model.Xi, 0, 0); + Q_recirculation_sensor.flow_model.state_out = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_recirculation_sensor.flow_model.P_out, Q_recirculation_sensor.flow_model.h_out, + Q_recirculation_sensor.flow_model.Xi, 0, 0); + Q_recirculation_sensor.flow_model.T_in = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Q_recirculation_sensor.flow_model.state_in); + Q_recirculation_sensor.flow_model.T_out = Modelica.Media.Water.WaterIF97_ph.temperature_Unique5 + ( + Q_recirculation_sensor.flow_model.state_out); + Q_recirculation_sensor.flow_model.rho_in = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_recirculation_sensor.flow_model.state_in); + Q_recirculation_sensor.flow_model.rho_out = Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_recirculation_sensor.flow_model.state_out); + Q_recirculation_sensor.flow_model.rho = (Q_recirculation_sensor.flow_model.rho_in + +Q_recirculation_sensor.flow_model.rho_out)/2; + Q_recirculation_sensor.flow_model.Qv_in = Q_recirculation_sensor.flow_model.Q + /Q_recirculation_sensor.flow_model.rho_in; + Q_recirculation_sensor.flow_model.Qv_out = -Q_recirculation_sensor.flow_model.Q + /Q_recirculation_sensor.flow_model.rho_out; + Q_recirculation_sensor.flow_model.Qv = (Q_recirculation_sensor.flow_model.Qv_in + -Q_recirculation_sensor.flow_model.Qv_out)/2; + Q_recirculation_sensor.flow_model.P_out-Q_recirculation_sensor.flow_model.P_in + = Q_recirculation_sensor.flow_model.DP; + Q_recirculation_sensor.flow_model.Q*(Q_recirculation_sensor.flow_model.h_out + -Q_recirculation_sensor.flow_model.h_in) = Q_recirculation_sensor.flow_model.W; + Q_recirculation_sensor.flow_model.h_out-Q_recirculation_sensor.flow_model.h_in + = Q_recirculation_sensor.flow_model.DH; + Q_recirculation_sensor.flow_model.T_out-Q_recirculation_sensor.flow_model.T_in + = Q_recirculation_sensor.flow_model.DT; + Q_recirculation_sensor.flow_model.C_in.Q+Q_recirculation_sensor.flow_model.C_out.Q + = 0; + Q_recirculation_sensor.flow_model.C_out.Xi_outflow = inStream( + Q_recirculation_sensor.flow_model.C_in.Xi_outflow); + assert(Q_recirculation_sensor.flow_model.Q > 0, "Wrong flow sign. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.BaseClasses.IsoPHFlowModel + equation + Q_recirculation_sensor.flow_model.P = Q_recirculation_sensor.flow_model.P_in; + Q_recirculation_sensor.flow_model.h = Q_recirculation_sensor.flow_model.h_in; + Q_recirculation_sensor.flow_model.T = Q_recirculation_sensor.flow_model.T_in; + Q_recirculation_sensor.flow_model.DP = 0; + Q_recirculation_sensor.flow_model.DH = 0; + // end of extends + + // Component Q_recirculation_sensor + // class MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor + // extends MetroscopeModelingLibrary.Partial.Sensors.BaseSensor + equation + if ( not Q_recirculation_sensor.faulty_flow_rate) then + Q_recirculation_sensor.mass_flow_rate_bias = 0; + end if; + Q_recirculation_sensor.P = Q_recirculation_sensor.C_in.P; + Q_recirculation_sensor.Q = Q_recirculation_sensor.C_in.Q+Q_recirculation_sensor.mass_flow_rate_bias; + Q_recirculation_sensor.Xi = inStream(Q_recirculation_sensor.C_in.Xi_outflow); + Q_recirculation_sensor.h = inStream(Q_recirculation_sensor.C_in.h_outflow); + Q_recirculation_sensor.state = Modelica.Media.Water.WaterIF97_ph.setState_phX_Unique1 + (Q_recirculation_sensor.P, Q_recirculation_sensor.h, Q_recirculation_sensor.Xi, + 0, 0); + assert(Q_recirculation_sensor.Q > 0, "Wrong flow sign in inline sensor. Common causes : outlet connected as if it was inlet and vice versa, or Positive/NegativeMassflowrate misuse. Recall : inlet flow is positive, outlet is negatve", + AssertionLevel.warning); + // extends MetroscopeModelingLibrary.Partial.Sensors.FlowSensor + equation + Q_recirculation_sensor.Qv = Q_recirculation_sensor.Q/Modelica.Media.Water.WaterIF97_ph.density_Unique6 + ( + Q_recirculation_sensor.state); + Q_recirculation_sensor.Q_lm = Q_recirculation_sensor.Qv*60000; + Q_recirculation_sensor.Q_th = Q_recirculation_sensor.Q*3.6; + Q_recirculation_sensor.Q_lbs = Q_recirculation_sensor.Q*0.453592428; + Q_recirculation_sensor.Q_Mlbh = Q_recirculation_sensor.Q*0.0079366414387; + // end of extends + equation + Q_recirculation_sensor.flow_model.C_in.P = Q_recirculation_sensor.C_in.P; + Q_recirculation_sensor.C_in.Q-Q_recirculation_sensor.flow_model.C_in.Q = 0.0; + Q_recirculation_sensor.flow_model.C_out.P = Q_recirculation_sensor.C_out.P; + Q_recirculation_sensor.C_out.Q-Q_recirculation_sensor.flow_model.C_out.Q = + 0.0; + + // This model + // class TIH3_CoolingLoop.TIH_CoolingLoop_Rev5_Poppe_Start_Values + // extends TIH3_CoolingLoop.TIH_CoolingLoop_Rev5_Poppe + equation + Hotside_Temp_sensor.T_degC = Hotside_Temp; + VCT178_sensor.P_barA = VCT178; + CEC180_sensor.T_degC = CEC180; + Press1_sensor.P_barA = Pressure1; + AirInlet_Temp_sensor.T_degC = AirInlet_Temp; + AirInlet_Press_sensor.P_barA = AirInlet_Press; + AirSource.relative_humidity = AirSource_relative_humidity; + Q_reject_press_sensor.P_barA = Q_reject_press; + Coldside_Flow_sensor.Q = Coldside_Flow; + Hotside_Flow_sensor.Q = Hotside_Flow; + LOA.S = 100; + LOA.water_height = 1; + LOA.C_incond = 0; + LOA.P_offset = 0; + LOA.Kfr_cold = 0; + LOA.Kth = LOA_Kth; + CEC231_sensor.T_degC = CEC231; + Coldside_Press_sensor.P_barA = Coldside_Press; + Pump.Qv = Pump_Qv; + Pump.VRotn = 4000; + Pump.VRot = 4000; + Pump.rm = 0.85; + Pump.a1 = 0; + Pump.a2 = 0; + Pump.b1 = 0; + Pump.b2 = 0; + Pump.rh_min = 0.2; + Pump.hn = Extraction_Pump_hn; + Pump.rh = Extraction_Pump_rh; + CEC235_sensor.T_degC = CEC235; + CEC194_sensor.T_degC = CEC194; + CoolingTower.Lfi = 15; + CoolingTower.Afr = 3000; + CoolingTower.Cf = 0.025509778; + CoolingTower.hd = hd; + CoolingTower.V_inlet = V_inlet; + V423_opening_sensor.Opening = V423_opening; + V422_opening_sensor.Opening = V422_opening; + V421_opening_sensor.Opening = V421_opening; + V423_valve.Cv_max = Cvmax_V423; + V422_valve.Cv_max = Cvmax_V422; + V421_valve.Cv_max = Cvmax_V421; + V423_valve.Qv = V422_valve.Qv; + V423_valve.Qv = V421_valve.Qv; + Q_reject_sensor.Q = Q_reject; + Q_recirculation_sensor.Q = Q_recirculation; + // end of extends + equation + AirSource.C_out.P = AirInlet_Flow_sensor.C_in.P; + AirInlet_Flow_sensor.C_in.Q+AirSource.C_out.Q = 0.0; + AirInlet_Temp_sensor.C_in.P = AirInlet_Flow_sensor.C_out.P; + AirInlet_Flow_sensor.C_out.Q+AirInlet_Temp_sensor.C_in.Q = 0.0; + AirInlet_Temp_sensor.C_out.P = AirInlet_Press_sensor.C_in.P; + AirInlet_Press_sensor.C_in.Q+AirInlet_Temp_sensor.C_out.Q = 0.0; + CoolingTower.air_inlet_connector.P = AirInlet_Press_sensor.C_out.P; + AirInlet_Press_sensor.C_out.Q+CoolingTower.air_inlet_connector.Q = 0.0; + Coldside_Flow_sensor.C_out.P = CEC180_sensor.C_in.P; + CEC180_sensor.C_in.Q+Coldside_Flow_sensor.C_out.Q = 0.0; + Press1_sensor.C_in.P = CEC180_sensor.C_out.P; + CEC180_sensor.C_out.Q+Press1_sensor.C_in.Q = 0.0; + CoolingTower.water_outlet_connector.P = CEC194_sensor.C_in.P; + CEC194_sensor.C_in.Q+CoolingTower.water_outlet_connector.Q = 0.0; + CEC197_sensor.C_in.P = CEC194_sensor.C_out.P; + CEC194_sensor.C_out.Q+CEC197_sensor.C_in.Q = 0.0; + V421_valve.C_in.P = CEC197_sensor.C_out.P; + V422_valve.C_in.P = CEC197_sensor.C_out.P; + V423_valve.C_in.P = CEC197_sensor.C_out.P; + CEC197_sensor.C_out.Q+V421_valve.C_in.Q+V422_valve.C_in.Q+V423_valve.C_in.Q + = 0.0; + Pump.C_out.P = CEC231_sensor.C_in.P; + CEC231_sensor.C_in.Q+Pump.C_out.Q = 0.0; + Coldside_Press_sensor.C_in.P = CEC231_sensor.C_out.P; + CEC231_sensor.C_out.Q+Coldside_Press_sensor.C_in.Q = 0.0; + LOA.C_cold_out.P = CEC235_sensor.C_in.P; + CEC235_sensor.C_in.Q+LOA.C_cold_out.Q = 0.0; + CoolingTower.water_inlet_connector.P = CEC235_sensor.C_out.P; + CEC235_sensor.C_out.Q+CoolingTower.water_inlet_connector.Q = 0.0; + source1.C_out.P = Coldside_Flow_sensor.C_in.P; + Coldside_Flow_sensor.C_in.Q+source1.C_out.Q = 0.0; + LOA.C_cold_in.P = Coldside_Press_sensor.C_out.P; + Coldside_Press_sensor.C_out.Q+LOA.C_cold_in.Q = 0.0; + sink.C_in.P = CoolingTower.air_outlet_connector.P; + CoolingTower.air_outlet_connector.Q+sink.C_in.Q = 0.0; + turbine_outlet.C_out.P = Hotside_Flow_sensor.C_in.P; + Hotside_Flow_sensor.C_in.Q+turbine_outlet.C_out.Q = 0.0; + Hotside_Temp_sensor.C_in.P = Hotside_Flow_sensor.C_out.P; + Hotside_Flow_sensor.C_out.Q+Hotside_Temp_sensor.C_in.Q = 0.0; + VCT178_sensor.C_in.P = Hotside_Temp_sensor.C_out.P; + Hotside_Temp_sensor.C_out.Q+VCT178_sensor.C_in.Q = 0.0; + VCT178_sensor.C_out.P = LOA.C_hot_in.P; + LOA.C_hot_in.Q+VCT178_sensor.C_out.Q = 0.0; + condensate_sink.C_in.P = LOA.C_hot_out.P; + LOA.C_hot_out.Q+condensate_sink.C_in.Q = 0.0; + Pump.C_in.P = Press1_sensor.C_out.P; + Q_recirculation_sensor.C_out.P = Press1_sensor.C_out.P; + Press1_sensor.C_out.Q+Pump.C_in.Q+Q_recirculation_sensor.C_out.Q = 0.0; + Pump.C_power.W+source.C_out.W = 0.0; + V421_valve.C_out.P = Q_recirculation_sensor.C_in.P; + Q_recirculation_sensor.C_in.Q+V421_valve.C_out.Q = 0.0; + Q_reject_sensor.C_out.P = Q_reject_press_sensor.C_in.P; + Q_reject_press_sensor.C_in.Q+Q_reject_sensor.C_out.Q = 0.0; + cooling_sink.C_in.P = Q_reject_press_sensor.C_out.P; + Q_reject_press_sensor.C_out.Q+cooling_sink.C_in.Q = 0.0; + V422_valve.C_out.P = Q_reject_sensor.C_in.P; + V423_valve.C_out.P = Q_reject_sensor.C_in.P; + Q_reject_sensor.C_in.Q+V422_valve.C_out.Q+V423_valve.C_out.Q = 0.0; + V421_valve.Opening = V421_opening_sensor.Opening; + V422_valve.Opening = V422_opening_sensor.Opening; + V423_valve.Opening = V423_opening_sensor.Opening; + +end TIH_CoolingLoop_Rev5_Poppe_Start_Values; diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo index b713a2e6..29aadb1f 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_direct.mo @@ -28,12 +28,16 @@ model CoolingTowerMerkel_direct parameter Real Cf = 15; output Real V_inlet(start = 4.3490353) "m/s"; + parameter Real efan = 1; + parameter Real W_fan = 40000 "W"; + // Observables output Real airInletFlow(start=12894.166) "kg/s"; output Real Q_evap(start=379.48428) "kg/s"; output Real Q_cold_in(start=15214.605); output Real Ratio; output Real W; + output Real deltaP_fan; output Real AirOutletTemp(start=35) "deg_C"; output Real airOutletPress(start=1); @@ -41,43 +45,43 @@ model CoolingTowerMerkel_direct // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; - MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-122,-10},{-102,10}}))); + MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-138,-10},{-118,10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{64,-10},{84,10}}))); - MultiFluid.HeatExchangers.CoolingTowerMerkel CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + MultiFluid.HeatExchangers.CoolingTowerMerkel CoolingTower annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,90}))); + origin={0,114}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Sink cold_sink annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, origin={0,-92}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-52,-10},{-32,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor waterInletPress_sensor annotation (Placement(transformation(extent={{-46,-10},{-26,10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirInletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,66}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-76,-10},{-56,10}}))); + origin={0,90}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor waterInletTemp_sensor annotation (Placement(transformation(extent={{-78,-10},{-58,10}}))); MetroscopeModelingLibrary.Sensors.WaterSteam.TemperatureSensor WaterOutletTemp_sensor annotation (Placement(transformation(extent={{30,-10},{50,10}}))); - MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-102,-10},{-82,10}}))); + MetroscopeModelingLibrary.Sensors.WaterSteam.FlowSensor waterFlow_sensor annotation (Placement(transformation(extent={{-110,-10},{-90,10}}))); MetroscopeModelingLibrary.Sensors.MoistAir.TemperatureSensor AirOutletTemp_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-70}))); + origin={0,-64}))); MetroscopeModelingLibrary.Sensors.MoistAir.FlowSensor airInletFlow_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,36}))); + origin={0,58}))); MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airInletPress_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,8}))); + origin={0,28}))); MetroscopeModelingLibrary.Sensors.MoistAir.PressureSensor airOutletPress_sensor annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, - origin={0,-44}))); + origin={0,-30}))); equation // Hot Water Inlet waterFlow_sensor.Qv = waterFlow; @@ -104,6 +108,7 @@ equation CoolingTower.Q_cold_in = Q_cold_in; CoolingTower.Ratio = Ratio; CoolingTower.W = W; + CoolingTower.deltaP_fan = deltaP_fan; // Parameters CoolingTower.Lfi = Lfi; @@ -111,27 +116,30 @@ equation CoolingTower.Afr = Afr; CoolingTower.V_inlet = V_inlet; + CoolingTower.efan = efan; + CoolingTower.W_fan = W_fan; + // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,-20},{-16,-20},{-16,-14},{-14,-14},{-14,-4},{-12,-4},{-12,0},{-32,0}}, + connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-7.5,0},{-26,0}}, color={28,108,200})); - connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); - connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-52,0},{-56,0}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,-20},{24,-20},{24,0},{30,0}}, + connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{0,100},{0,109}}, color={85,170,255})); + connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-46,0},{-58,0}}, color={28,108,200})); + connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{7.5,0},{30,0}}, color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{50,0},{69,0}}, color={28,108,200})); - connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-107,0},{-102,0}}, + connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-123,0},{-110,0}}, color={28,108,200})); - connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-76,0},{-82,0}}, color={28,108,200})); - connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); - connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); - connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{-1.77636e-15,26},{-1.77636e-15,22},{1.77636e-15,22},{1.77636e-15,18}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,-2},{-1,-2},{-1,-12.5},{0,-12.5}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); - connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); - annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + connect(waterInletTemp_sensor.C_in, waterFlow_sensor.C_out) annotation (Line(points={{-78,0},{-90,0}}, color={28,108,200})); + connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-74},{0,-83.5},{0,-87}}, color={85,170,255})); + connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{0,80},{0,68}}, color={85,170,255})); + connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,48},{0,38}}, color={85,170,255})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,18},{0,7.5}}, color={85,170,255})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-7.5},{0,-20}}, color={85,170,255})); + connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{0,-54},{0,-40}}, color={85,170,255})); + annotation (Diagram(coordinateSystem(extent={{-160,-120},{120,140}})), Icon(coordinateSystem(extent={{-160,-120},{120,140}}), graphics={ Ellipse(lineColor={0,0,0}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo index f3e3bc5b..cf01a552 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerMerkel_reverse.mo @@ -26,6 +26,9 @@ model CoolingTowerMerkel_reverse parameter Real Cf = 1; output Real V_inlet(start = 13.251477) "m/s"; + parameter Real efan = 1; + parameter Real W_fan = 40000 "W"; + // Observables output Real airInletFlow(start=52552.133) "m3/s"; output Real Q_evap(start=1311.1932) "m3/s"; @@ -33,13 +36,15 @@ model CoolingTowerMerkel_reverse output Real airOutletPress(start=1) "bar"; output Real AirOutletTemp(start=35) "deg_C"; + output Real deltaP_fan; + // Output output Units.Fraction cold_sink_relative_humidity(start=1) "1"; MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source hot_source annotation (Placement(transformation(extent={{-120,-30},{-100,-10}}))); MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Sink hot_sink annotation (Placement(transformation(extent={{66,-30},{86,-10}}))); - MultiFluid.HeatExchangers.CoolingTowerMerkel CoolingTower annotation (Placement(transformation(extent={{-4,-28},{16,-8}}))); + MultiFluid.HeatExchangers.CoolingTowerMerkel CoolingTower annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); MetroscopeModelingLibrary.MoistAir.BoundaryConditions.Source cold_source annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -85,8 +90,6 @@ equation airInletFlow_sensor.Qv = airInletFlow; AirInletTemp_sensor.T_degC = AirInletTemp; - // Hot Water Outlet - // Cold Air Outlet cold_sink.relative_humidity = cold_sink_relative_humidity; airOutletPress_sensor.P_barA = airOutletPress; @@ -103,17 +106,17 @@ equation CoolingTower.Afr = Afr; CoolingTower.V_inlet = V_inlet; + CoolingTower.efan = efan; + CoolingTower.W_fan = W_fan; + CoolingTower.deltaP_fan = deltaP_fan; + // Observable for Calibration WaterOutletTemp_sensor.T_degC = WaterOutletTemp; AirOutletTemp_sensor.T_degC = AirOutletTemp; - connect(CoolingTower.C_hot_in, waterInletPress_sensor.C_out) annotation (Line(points={{-1.5,-18},{-14,-18},{-14,-20},{-16,-20}}, - color={28,108,200})); connect(AirInletTemp_sensor.C_in, cold_source.C_out) annotation (Line(points={{1.77636e-15,76},{1.77636e-15,80.5},{-8.88178e-16,80.5},{-8.88178e-16,85}}, color={85,170,255})); connect(waterInletPress_sensor.C_in,waterInletTemp_sensor. C_out) annotation (Line(points={{-36,-20},{-48,-20}}, color={28,108,200})); - connect(CoolingTower.C_hot_out, WaterOutletTemp_sensor.C_in) annotation (Line(points={{13.5,-18},{18,-18},{18,-20},{34,-20}}, - color={28,108,200})); connect(WaterOutletTemp_sensor.C_out, hot_sink.C_in) annotation (Line(points={{54,-20},{71,-20}}, color={28,108,200})); connect(hot_source.C_out, waterFlow_sensor.C_in) annotation (Line(points={{-105,-20},{-98,-20}}, @@ -123,9 +126,11 @@ equation connect(AirOutletTemp_sensor.C_out, cold_sink.C_in) annotation (Line(points={{-1.77636e-15,-80},{-1.77636e-15,-83.5},{8.88178e-16,-83.5},{8.88178e-16,-87}}, color={85,170,255})); connect(AirInletTemp_sensor.C_out, airInletFlow_sensor.C_in) annotation (Line(points={{-1.77636e-15,56},{-1.77636e-15,52},{1.77636e-15,52},{1.77636e-15,46}}, color={85,170,255})); connect(airInletFlow_sensor.C_out, airInletPress_sensor.C_in) annotation (Line(points={{0,26},{0,22}}, color={85,170,255})); - connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,2},{7,2},{7,-10.5},{6,-10.5}}, color={85,170,255})); - connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{6,-25.5},{6,-31.5},{0,-31.5},{0,-34}}, color={85,170,255})); connect(AirOutletTemp_sensor.C_in, airOutletPress_sensor.C_out) annotation (Line(points={{1.77636e-15,-60},{1.77636e-15,-57},{-1.77636e-15,-57},{-1.77636e-15,-54}}, color={85,170,255})); + connect(waterInletPress_sensor.C_out, CoolingTower.C_hot_in) annotation (Line(points={{-16,-20},{-7.5,-20}}, color={28,108,200})); + connect(airInletPress_sensor.C_out, CoolingTower.C_cold_in) annotation (Line(points={{0,2},{0,-12.5}}, color={85,170,255})); + connect(WaterOutletTemp_sensor.C_in, CoolingTower.C_hot_out) annotation (Line(points={{34,-20},{7.5,-20}}, color={28,108,200})); + connect(CoolingTower.C_cold_out, airOutletPress_sensor.C_in) annotation (Line(points={{0,-27.5},{0,-34}}, color={85,170,255})); annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ Ellipse(lineColor={0,0,0}, fillColor={255,255,255}, diff --git a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo index d6aefafe..7536823a 100644 --- a/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo +++ b/MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/CoolingTowerPoppe_reverse.mo @@ -4,17 +4,17 @@ model CoolingTowerPoppe_reverse // Boundary Conditions // Hot Water Inlet - input Real waterInletTemp(start=30) "deg_C"; + input Real waterInletTemp(start=31) "deg_C"; input Units.VolumeFlowRate waterInletFlow(start=30) "m3/s"; - input Real waterInletPress(start=1) "bar"; + input Real waterInletPress(start=3) "bar"; // Cold Air Inlet - input Real AirInletTemp(start=15) "deg_C"; + input Real AirInletTemp(start=10) "deg_C"; input Real airInletPress(start=1) "bar"; input Units.Fraction cold_source_relative_humidity(start=0.5) "1"; // Input for calibration - input Real WaterOutletTemp(start=20) "deg_C"; + input Real WaterOutletTemp(start=18.9) "deg_C"; // Calibrated Parameters output Real hd(start=8.849857); @@ -123,7 +123,7 @@ equation connect(CoolingTower.water_outlet_connector, WaterOutletTemp_sensor.C_in) annotation (Line(points={{9.16667,-20},{34,-20}}, color={28,108,200})); connect(CoolingTower.air_outlet_connector, airOutletPress_sensor.C_in) annotation (Line(points={{0,-29.1667},{0,-34}}, color={85,170,255})); connect(airInletPress_sensor.C_out, CoolingTower.air_inlet_connector) annotation (Line(points={{0,0},{0,-10.8333}}, color={85,170,255})); - annotation (Diagram(coordinateSystem(extent={{-120,-100},{100,100}})), Icon(coordinateSystem(extent={{-120,-100},{100,100}}), graphics={ + annotation (Diagram(coordinateSystem(extent={{-140,-120},{120,100}})), Icon(coordinateSystem(extent={{-140,-120},{120,100}}), graphics={ Ellipse(lineColor={0,0,0}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, From b6e7cc41173cbb72300a30fc3885096ddf890fa9 Mon Sep 17 00:00:00 2001 From: phelimb-met Date: Wed, 26 Jun 2024 09:59:08 +0200 Subject: [PATCH 29/34] Github Comments Implemented --- ..._0Merkel_TIH_0CoolingLoop_0Rev5_0Merkel.so | Bin 0 -> 3975664 bytes .../.FMUOutput/documentation/_main.html | 9 + .../.FMUOutput/documentation/_opensource.html | 354 + .../.FMUOutput/documentation/index.html | 113 + MetroscopeModelingLibrary/.FMUOutput/fmu.map | 55 + .../HeatExchangers/CoolingTowerMerkel.mo | 71 +- .../HeatExchangers/CoolingTowerPoppe.mo | 85 +- ...ingLoop_0Rev5_0Merkel_0withStartValues.fmu | Bin 0 -> 1333470 bytes .../TIH3_CoolingLoop_Poppe.Poppe_Rev5.mof | 8666 +++++++++++++++++ .../CoolingTowerMerkel_direct.mo | 17 +- .../CoolingTowerMerkel_reverse.mo | 20 +- .../CoolingTowerPoppe_direct.mo | 28 +- .../CoolingTowerPoppe_reverse.mo | 29 +- .../HeatExchangers/Fogging_direct.mo | 98 - .../HeatExchangers/Fogging_reverse.mo | 96 - MetroscopeModelingLibrary/_wslbuildfmu.sh | 42 + 16 files changed, 9393 insertions(+), 290 deletions(-) create mode 100644 MetroscopeModelingLibrary/.FMUOutput/binaries/linux64/TIH3_0CoolingLoop_0Merkel_TIH_0CoolingLoop_0Rev5_0Merkel.so create mode 100644 MetroscopeModelingLibrary/.FMUOutput/documentation/_main.html create mode 100644 MetroscopeModelingLibrary/.FMUOutput/documentation/_opensource.html create mode 100644 MetroscopeModelingLibrary/.FMUOutput/documentation/index.html create mode 100644 MetroscopeModelingLibrary/.FMUOutput/fmu.map create mode 100644 MetroscopeModelingLibrary/TIH3_0CoolingLoop_TIH_0CoolingLoop_0Rev5_0Merkel_0withStartValues.fmu create mode 100644 MetroscopeModelingLibrary/TIH3_CoolingLoop_Poppe.Poppe_Rev5.mof delete mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/Fogging_direct.mo delete mode 100644 MetroscopeModelingLibrary/Tests/Multifluid/HeatExchangers/Fogging_reverse.mo create mode 100644 MetroscopeModelingLibrary/_wslbuildfmu.sh diff --git a/MetroscopeModelingLibrary/.FMUOutput/binaries/linux64/TIH3_0CoolingLoop_0Merkel_TIH_0CoolingLoop_0Rev5_0Merkel.so b/MetroscopeModelingLibrary/.FMUOutput/binaries/linux64/TIH3_0CoolingLoop_0Merkel_TIH_0CoolingLoop_0Rev5_0Merkel.so new file mode 100644 index 0000000000000000000000000000000000000000..f3b67889e005583d0c766567cece2c88d1d64abb GIT binary patch literal 3975664 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�ydFFKgv1zdMjs; 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¥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

K99 z@#}}l<(iF1a-P`bsHal1*oV&oVLc^K^G8X4Hv|#xmOLFzY}N!dZnYKNfrMncof=!* zR6R+4V&(*G1+%*`@sg$r0J0ecn0)OYZdO>Q7b)0`GJ3AVu%CU)P!JzIzhgPWCEG4^_Y z`$G-%l&IVgs~{*in7me5>6@YSWypkAZw)No=Uz9;!6RajN}${(C}r}N%MzNoaMB3-u4lZn;Cj6 z1vO7Y(b?-nRC_m30WXZ8uGe&=LW@4|Q|BZ>F9;TEH)`^gm}?!gfwIY)F-7j=+VM@0 z=oIl;D*Xf=O^g^Gl|k@ z*F9Eff+Q*yev!had z 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