From bc5735df760dab732ef530152934c93b860c1b25 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 09:00:06 +0200 Subject: [PATCH 01/44] [skip-ci] Add default value for structural parameter 'n' For #1351 --- .../MembraneBasedEnthalpyExchangers/EnthalpyExchanger.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/EnthalpyExchanger.mo b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/EnthalpyExchanger.mo index 5c9f6ea328..23114a49f6 100644 --- a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/EnthalpyExchanger.mo +++ b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/EnthalpyExchanger.mo @@ -9,7 +9,7 @@ model EnthalpyExchanger choice(redeclare package Medium = AixLib.Media.AirIncompressible "Moist air incompressible"))); // General parameter - parameter Integer n(min=2) + parameter Integer n(min=2)=2 "number of discrecete volumes in flow direction"; parameter Integer nParallel(min=1) "number of parallel membranes"; From da443b7bee6784779bdbb280d183273cdf71aa34 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 09:02:08 +0200 Subject: [PATCH 02/44] [skip-ci] Redeclare constants as protected For #1351 --- .../BaseClasses/Functions/CollisionIntegral.mo | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo index 1a21ca671c..4ca5417aee 100644 --- a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo +++ b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo @@ -5,10 +5,6 @@ function CollisionIntegral "calculates collision integral for water in air" output Real Omega_D; - constant Real kB(unit="J/K") = 1.38064852E-23 "Stefan-Boltzmann-Constant"; - constant Real epsAir = 78.6 * kB "Lennard-Jones potential of air"; - constant Real epsSteam = 363 * kB "Lennard-Jones potential of steam"; - protected Real omegas[:]; Real epsis[:]; @@ -16,6 +12,10 @@ protected Real eps12; Real epsInternal; + + constant Real kB(unit="J/K") = 1.38064852E-23 "Stefan-Boltzmann-Constant"; + constant Real epsAir = 78.6 * kB "Lennard-Jones potential of air"; + constant Real epsSteam = 363 * kB "Lennard-Jones potential of steam"; algorithm omegas :={2.662,2.476,2.318,2.184,2.066,1.966,1.877,1.789,1.729,1.667,1.612,1.562, From bd61f1c37f3dd7b0643fe20b20b7a0d0b4001f7c Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 09:31:53 +0200 Subject: [PATCH 03/44] [skip-ci] Add connection for pumpOn-boolean in pump bus For #1346 --- AixLib/Systems/HydraulicModules/Example/Injection.mo | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AixLib/Systems/HydraulicModules/Example/Injection.mo b/AixLib/Systems/HydraulicModules/Example/Injection.mo index 5e822d8306..b4c59e981f 100644 --- a/AixLib/Systems/HydraulicModules/Example/Injection.mo +++ b/AixLib/Systems/HydraulicModules/Example/Injection.mo @@ -56,6 +56,8 @@ model Injection "Test for injection circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-84, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(hydraulicBus,Injection. hydraulicBus) annotation (Line( @@ -84,6 +86,8 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-72, -30}, {-40, -30}, {-40, 10}}, color = {255, 0, 255})); annotation (Placement(transformation( extent={{-24,-24},{24,24}}, rotation=90, From c3ea51396637fd163b1f9ea4e0f7840b88296094 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 09:53:17 +0200 Subject: [PATCH 04/44] [skip-ci] Add boolean input for onSet in pump-bus For #1346 --- AixLib/Systems/HydraulicModules/Example/Admix.mo | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AixLib/Systems/HydraulicModules/Example/Admix.mo b/AixLib/Systems/HydraulicModules/Example/Admix.mo index d5191f98e3..2adfcd8a08 100644 --- a/AixLib/Systems/HydraulicModules/Example/Admix.mo +++ b/AixLib/Systems/HydraulicModules/Example/Admix.mo @@ -57,6 +57,8 @@ model Admix "Test for admix circuit" annotation (Placement(transformation(extent={{-100,40},{-80,60}}))); BaseClasses.HydraulicBus hydraulicBus annotation (Placement(transformation(extent={{-52,0},{-32,20}}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-84, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(Admix.port_b1, hydRes.port_a) @@ -85,6 +87,8 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-72, -30}, {-42, -30}, {-42, 10}}, color = {255, 0, 255})); annotation ( Icon(graphics, coordinateSystem(preserveAspectRatio=false)), From 0d77b24afb648476a8e51eee2922909f5506d5b5 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 09:57:15 +0200 Subject: [PATCH 05/44] [skip-ci] Add boolean input for 'onSet' in pump-bus For #1346 --- AixLib/Systems/HydraulicModules/Example/Injection2WayValve.mo | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AixLib/Systems/HydraulicModules/Example/Injection2WayValve.mo b/AixLib/Systems/HydraulicModules/Example/Injection2WayValve.mo index 422b102fd8..302222cb2e 100644 --- a/AixLib/Systems/HydraulicModules/Example/Injection2WayValve.mo +++ b/AixLib/Systems/HydraulicModules/Example/Injection2WayValve.mo @@ -54,6 +54,8 @@ model Injection2WayValve "Test for injection circuit with a 2 way valve" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-84, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(hydraulicBus,Injection. hydraulicBus) annotation (Line( @@ -82,6 +84,8 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-72, -30}, {-40, -30}, {-40, 10}}, color = {255, 0, 255})); annotation (Placement(transformation( extent={{-24,-24},{24,24}}, rotation=90, From f3fab0d7dcde4802c606e6e22e2b94f884fe99ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Larissa=20K=C3=BChn?= Date: Thu, 13 Oct 2022 10:47:43 +0200 Subject: [PATCH 06/44] Fix compatibility bug with Open Modelica [scip-ci] --- AixLib/Fluid/Movers/DpControlledMovers/DpControlled_dp.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AixLib/Fluid/Movers/DpControlledMovers/DpControlled_dp.mo b/AixLib/Fluid/Movers/DpControlledMovers/DpControlled_dp.mo index 3ab7286d77..6d0dede888 100644 --- a/AixLib/Fluid/Movers/DpControlledMovers/DpControlled_dp.mo +++ b/AixLib/Fluid/Movers/DpControlledMovers/DpControlled_dp.mo @@ -100,7 +100,7 @@ model DpControlled_dp "Pump or fan including pressure control (constant or varia Modelica.Blocks.Interfaces.RealInput dpMea( final quantity="PressureDifference", final displayUnit="Pa", - final unit="Pa")=gain.u if prescribeSystemPressure + final unit="Pa") if prescribeSystemPressure "Measurement of pressure difference between two points where the set point should be obtained" annotation (Placement(transformation( extent={{20,-20},{-20,20}}, From 2c18c8ab699355c2ee4780406dec4945094fb323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Larissa=20K=C3=BChn?= Date: Thu, 13 Oct 2022 10:49:42 +0200 Subject: [PATCH 07/44] Add Modelica standard icon to model for open modelica --- AixLib/Fluid/Movers/DpControlledMovers/package.mo | 1 + 1 file changed, 1 insertion(+) diff --git a/AixLib/Fluid/Movers/DpControlledMovers/package.mo b/AixLib/Fluid/Movers/DpControlledMovers/package.mo index fa3404e60c..a5eb99c387 100644 --- a/AixLib/Fluid/Movers/DpControlledMovers/package.mo +++ b/AixLib/Fluid/Movers/DpControlledMovers/package.mo @@ -1,3 +1,4 @@ within AixLib.Fluid.Movers; package DpControlledMovers +extends Modelica.Icons.Package; end DpControlledMovers; From 71f591567574dc78d5e3290e25bc637ddebf4d73 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 10:53:56 +0200 Subject: [PATCH 08/44] =?UTF-8?q?[skip-ci]=20Fix=20bug=20in=20not=20workin?= =?UTF-8?q?g=20simulation=20for=20=C2=B4AixLib.Systems.HydraulicModules.Ex?= =?UTF-8?q?ample.Pump=C2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes start input for pump to 1 rpm to avoid mass flow rate = 0 For #1346 --- .../Systems/HydraulicModules/Example/Pump.mo | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/AixLib/Systems/HydraulicModules/Example/Pump.mo b/AixLib/Systems/HydraulicModules/Example/Pump.mo index ae42b3c721..84f292e385 100644 --- a/AixLib/Systems/HydraulicModules/Example/Pump.mo +++ b/AixLib/Systems/HydraulicModules/Example/Pump.mo @@ -37,8 +37,8 @@ model Pump "Test for unmixed pump circuit" annotation (Placement(transformation(extent={{-52,0},{-32,20}}))); Modelica.Blocks.Sources.Ramp RPM_ramp( duration=500, - startTime=180, - height=3000) + height=3000, offset = 1, + startTime=180) annotation (Placement(transformation(extent={{-100,0},{-80,20}}))); AixLib.Fluid.Sources.Boundary_pT boundary( T=323.15, @@ -54,35 +54,32 @@ model Pump "Test for unmixed pump circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-86, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation - connect(Unmixed.hydraulicBus, hydraulicBus) annotation (Line( - points={{-20,10},{-42,10}}, - color={255,204,51}, - thickness=0.5), Text( - string="%second", - index=1, - extent={{6,3},{6,3}})); - connect(hydRes.port_b, Unmixed.port_a2) - annotation (Line(points={{20,60},{28,60},{28,40}}, color={0,127,255})); - connect(hydRes.port_a, Unmixed.port_b1) - annotation (Line(points={{0,60},{-8,60},{-8,40}}, color={0,127,255})); - connect(boundary.ports[1], Unmixed.port_a1) - annotation (Line(points={{-8,-40},{-8,-20}}, color={0,127,255})); - connect(boundary1.ports[1], Unmixed.port_b2) - annotation (Line(points={{28,-40},{28,-20},{28,-20}}, color={0,127,255})); - connect(RPM_ramp.y, hydraulicBus.pumpBus.rpmSet) annotation (Line(points={{ - -79,10},{-60,10},{-60,10.05},{-41.95,10.05}}, color={0,0,127}), Text( - string="%second", - index=1, - extent={{6,3},{6,3}}, - horizontalAlignment=TextAlignment.Left)); - annotation (Placement(transformation(extent={{80,80},{100,100}})), + connect(Unmixed.hydraulicBus, hydraulicBus) annotation( + Line(points = {{-20, 10}, {-42, 10}}, color = {255, 204, 51}, thickness = 0.5), + Text(string = "%second", index = 1, extent = {{6, 3}, {6, 3}})); + connect(hydRes.port_b, Unmixed.port_a2) annotation( + Line(points = {{20, 60}, {28, 60}, {28, 40}}, color = {0, 127, 255})); + connect(hydRes.port_a, Unmixed.port_b1) annotation( + Line(points = {{0, 60}, {-8, 60}, {-8, 40}}, color = {0, 127, 255})); + connect(boundary.ports[1], Unmixed.port_a1) annotation( + Line(points = {{-8, -40}, {-8, -20}}, color = {0, 127, 255})); + connect(boundary1.ports[1], Unmixed.port_b2) annotation( + Line(points = {{28, -40}, {28, -20}, {28, -20}}, color = {0, 127, 255})); + connect(RPM_ramp.y, hydraulicBus.pumpBus.rpmSet) annotation( + Line(points = {{-79, 10}, {-60, 10}, {-60, 10.05}, {-41.95, 10.05}}, color = {0, 0, 127}), + Text(string = "%second", index = 1, extent = {{6, 3}, {6, 3}}, horizontalAlignment = TextAlignment.Left)); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-74, -28}, {-42, -28}, {-42, 10}}, color = {255, 0, 255})); + annotation (Placement(transformation(extent={{80,80},{100,100}})), Icon(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-100, -100},{120,100}})), Diagram( coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, 100}})), - experiment(StopTime=800), + experiment(StopTime=800,Interval = 5,Solver=dassl), Documentation(revisions="
  • October 25, 2017, by Alexander Kümpel:
    Transfer from ZUGABE to AixLib. From bf02035c5f530a23556fb5d4ae0d9a449ee31361 Mon Sep 17 00:00:00 2001 From: Tobias Schellen Date: Thu, 13 Oct 2022 11:05:09 +0200 Subject: [PATCH 09/44] OpenModelica compatibility for ExergyMeter #1340 [skip-ci] --- .../Sensors/ExergyMeter/FlowExergyMeter.mo | 2 +- .../Sensors/ExergyMeter/StoredExergyMeter.mo | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/AixLib/Utilities/Sensors/ExergyMeter/FlowExergyMeter.mo b/AixLib/Utilities/Sensors/ExergyMeter/FlowExergyMeter.mo index 67577f02b1..a5d0d5005e 100644 --- a/AixLib/Utilities/Sensors/ExergyMeter/FlowExergyMeter.mo +++ b/AixLib/Utilities/Sensors/ExergyMeter/FlowExergyMeter.mo @@ -5,7 +5,7 @@ model FlowExergyMeter extends Modelica.Icons.RoundSensor; Modelica.Blocks.Interfaces.RealInput X_ref[Medium.nX]( - final quantity="MassFraction", final unit="1", min=0, max=1) + each final quantity="MassFraction", each final unit="1", each min=0, each max=1) "Reference composition" annotation (Placement(transformation(extent={{-20,-20},{20,20}}, rotation=90, diff --git a/AixLib/Utilities/Sensors/ExergyMeter/StoredExergyMeter.mo b/AixLib/Utilities/Sensors/ExergyMeter/StoredExergyMeter.mo index 84155d4702..7d8f8b6d8f 100644 --- a/AixLib/Utilities/Sensors/ExergyMeter/StoredExergyMeter.mo +++ b/AixLib/Utilities/Sensors/ExergyMeter/StoredExergyMeter.mo @@ -75,10 +75,10 @@ model StoredExergyMeter origin={0,0}))); Modelica.Blocks.Interfaces.RealInput T[n]( - final unit="K", - displayUnit="degC", - final quantity="ThermodynamicTemperature", - min=0) "Actual temperature" + each final unit="K", + each displayUnit="degC", + each final quantity="ThermodynamicTemperature", + each min=0) "Actual temperature" annotation (Placement(transformation(extent={{-20,-20},{20,20}}, rotation=90, origin={0,-108}), iconTransformation( @@ -139,16 +139,16 @@ model StoredExergyMeter rotation=180, origin={27,-32}))); Modelica.Blocks.Interfaces.RealInput X_ref[Medium.nX]( - final quantity="MassFraction", final unit="1", min=0, max=1) + each final quantity="MassFraction", each final unit="1", each min=0, each max=1) "Reference composition" annotation (Placement(transformation(extent={{-20,-20},{20,20}}, rotation=0, origin={-100,-70}))); Modelica.Blocks.Interfaces.RealInput X[Medium.nX]( - final quantity="MassFraction", - final unit="1", - min=0, - max=1) "Actual composition" annotation (Placement(transformation( + each final quantity="MassFraction", + each final unit="1", + each min=0, + each max=1) "Actual composition" annotation (Placement(transformation( extent={{-20,-20},{20,20}}, rotation=90, origin={50,-108}))); From 52b265f57fd9904739db4a490b8c5d4a5169c1f5 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 11:06:09 +0200 Subject: [PATCH 10/44] =?UTF-8?q?[skip-ci]=20Add=20boolean=20input=20for?= =?UTF-8?q?=20pump-bus=20in=20=C2=B4AixLib.Systems.HydraulicModules.Exampl?= =?UTF-8?q?e.ThrottlePump=C2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For #1346 --- AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo index 9057d91786..5626671dbf 100644 --- a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo +++ b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo @@ -53,6 +53,8 @@ model ThrottlePump "Test for unmixed throttle and pump circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-86, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(ThrottlePump.hydraulicBus, hydraulicBus) annotation (Line( points={{-20,10},{-50,10}}, @@ -80,6 +82,8 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-74, -30}, {-50, -30}, {-50, 10}}, color = {255, 0, 255})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-100, -100},{120,100}})), Diagram( From 6811858efff33eb5319257c8e202ba39a3a83167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannah=20Kr=C3=BCtzfeldt?= Date: Thu, 13 Oct 2022 11:43:04 +0200 Subject: [PATCH 11/44] Add each, change Units to Reals for non-physical VDI equations [skip-ci] --- .../BaseClasses/PartialCorrectionG.mo | 2 +- .../BaseClasses/PartialCorrectionGTaue.mo | 42 +++++++++---------- .../SolarGain/CorrectionGDoublePane.mo | 19 +++++---- .../SolarGain/CorrectionGTaueDoublePane.mo | 36 ++++++---------- .../Windows/BaseClasses/HVisible.mo | 36 ++++++++-------- .../Windows/BaseClasses/HWindow.mo | 36 ++++++++-------- .../Windows/BaseClasses/Window.mo | 28 ++++++------- .../ReducedOrder/Windows/Window.mo | 14 +++---- 8 files changed, 103 insertions(+), 110 deletions(-) diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo index b27dfa1d72..6bd6f6c3f5 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo @@ -2,7 +2,7 @@ within AixLib.ThermalZones.ReducedOrder.SolarGain.BaseClasses; partial model PartialCorrectionG "Partial model for correction of the solar gain factor" - parameter Integer n(min = 1) "Vector size for input and output"; + parameter Integer n(min = 1)=1 "Vector size for input and output"; parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window"; diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionGTaue.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionGTaue.mo index 7a16da9cdc..9ef361b6d3 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionGTaue.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionGTaue.mo @@ -2,73 +2,73 @@ within AixLib.ThermalZones.ReducedOrder.SolarGain.BaseClasses; partial model PartialCorrectionGTaue "Partial model for correction of the solar gain factor and for the translucence" - parameter Integer n(min = 1) "Number of windows" + parameter Integer n(min = 1)=1 "Number of windows" annotation(dialog(group="window")); parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window" annotation (dialog(group="window")); parameter Modelica.Units.SI.Angle xi(displayUnit="degree") = 0 "Elevation angle"; - parameter Modelica.Units.SI.Angle[n] til(displayUnit="degree") + parameter Modelica.Units.SI.Angle[n] til(each displayUnit="degree") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (dialog(group="window")); Modelica.Blocks.Interfaces.RealOutput[n] corG_Dir( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for direct radiation" annotation (Placement(transformation(extent={{80,-30},{100,-10}}), iconTransformation(extent={{80,-30},{100,-10}}))); Modelica.Blocks.Interfaces.RealOutput[n] corG_DifCle( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for diffuse radiation while clear sky" annotation (Placement(transformation(extent={{80,-50},{100,-30}}), iconTransformation(extent={{80,-50},{100,-30}}))); Modelica.Blocks.Interfaces.RealOutput[n] corG_DifCov( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for diffuse radiation while covered sky" annotation (Placement(transformation(extent={{80,-70},{100,-50}}), iconTransformation(extent={{80,-70},{100,-50}}))); Modelica.Blocks.Interfaces.RealOutput[n] corG_Gro( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for ground reflection radiation" annotation (Placement(transformation(extent={{80,-90},{100,-70}}), iconTransformation(extent={{80,-90},{100,-70}}))); Modelica.Blocks.Interfaces.RealOutput[n] corTaue_Dir( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for direct irradiation" annotation (Placement(transformation(extent={{80,10},{100,30}}), iconTransformation(extent={{80,10},{100,30}}))); Modelica.Blocks.Interfaces.RealOutput[n] corTaue_DifCle( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for diffuse irradiation during clear sky" annotation (Placement(transformation(extent={{80,30},{100,50}}), iconTransformation(extent={{80,30},{100,50}}))); Modelica.Blocks.Interfaces.RealOutput[n] corTaue_DifCov( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for diffuse irradiation during covered sky" annotation (Placement(transformation(extent={{80,50},{100,70}}), iconTransformation(extent={{80,50},{100,70}}))); Modelica.Blocks.Interfaces.RealOutput[n] corTaue_Gro( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for ground reflection radiation" annotation (Placement(transformation(extent={{80,70},{100,90}}), iconTransformation(extent={{80,70},{100,90}}))); Modelica.Blocks.Interfaces.RealInput incAng[n]( - final quantity="Angle", - final unit="rad", - displayUnit="degree") + each final quantity="Angle", + each final unit="rad", + each displayUnit="degree") "Incidence angles of the sun beam on a tilted surface" annotation (Placement(transformation(extent={{-120,-10},{-80,30}}), iconTransformation(extent={{-100,10},{-80,30}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo index e8124a7049..4bd0fb1fb1 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo @@ -20,6 +20,8 @@ protected "Constant 5 to calculate reference transmission"; parameter Real A6=4.74*10^(-12) "Constant 6 to calculate reference transmission"; + parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin_dimless=1 + "Auxiliary parameter for dimensionless UWin"; parameter Modelica.Units.SI.TransmissionCoefficient g_dir0=0.7537 "Reference vertical parallel transmission coefficient for direct radiation for double pane window"; parameter Modelica.Units.SI.TransmissionCoefficient Ta_diff=0.84 "Energetic degree of transmission for diffuse radiation for uniformly @@ -42,14 +44,14 @@ protected XN2_diff "Energetic dregree of transmission for second pane"; parameter Modelica.Units.SI.Emissivity a1_diff=1 - Ta1_diff - rho_1_diff "Degree of absorption for single pane window"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer Q21_diff=a1_diff*(1 + ( - Ta1_diff*rho_1_diff/XN2_diff))*UWin/25 - "Coefficient of heat transfer for exterior pane of double pane window"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer Q22_diff=a1_diff*( - Ta1_diff/XN2_diff)*(1 - (UWin/7.7)) - "Coefficient of heat transfer for interior pane of double pane window"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer Qsek2_diff=Q21_diff + - Q22_diff "Overall coefficient of heat transfer for double pane window"; + parameter Real Q21_diff=a1_diff*(1 + ( + Ta1_diff*rho_1_diff/XN2_diff))*UWin/UWin_dimless/25 + "Auxiliary variable for exterior pane of double pane window"; + parameter Real Q22_diff=a1_diff*( + Ta1_diff/XN2_diff)*(1 - (UWin/UWin_dimless/7.7)) + "Auxiliary variable for interior pane of double pane window"; + parameter Real Qsek2_diff=Q21_diff + + Q22_diff "Auxiliary variable for whole double pane window"; parameter Modelica.Units.SI.TransmissionCoefficient CorG_diff=(Ta2_diff + Qsek2_diff)/g_dir0 "Transmission coefficient correction factor for diffuse radiation"; @@ -57,6 +59,7 @@ protected Qsek2_diff)/g_dir0 "Transmission coefficient correction factor for irradiations from ground"; + //Calculating the correction factor for direct solar radiation Modelica.Units.SI.TransmissionCoefficient[n] Ta_dir "Energetic degree of transmission for direct radiation"; diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGTaueDoublePane.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGTaueDoublePane.mo index 5a936eb05a..c207bb5185 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGTaueDoublePane.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGTaueDoublePane.mo @@ -41,6 +41,8 @@ model CorrectionGTaueDoublePane "Correction of the solar gain factor and the Real[n] qSek2_Gro "Overall coefficient of heat transfer for double pane window"; protected + parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin_dimless=1 + "Auxiliary parameter for dimensionless UWin"; parameter Modelica.Units.SI.TransmissionCoefficient g_Dir0=taue_Dir0 + q210 + q220 "Reference vertical parallel transmission coefficient for direct radiation for double pane window"; @@ -66,36 +68,28 @@ protected 2)/xn2_DifCov "Energetic degree of transmission for second pane"; parameter Modelica.Units.SI.Emissivity a_1DifCov=1 - tau_1DifCov - rho_1DifCov "Degree of absorption for single pane window"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer q21_DifCov=a_1DifCov*(1 - + (tau_1DifCov*rho_1DifCov/xn2_DifCov))*UWin/25 - "Coefficient of heat transfer for exterior pane of double pane window"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer q22_DifCov=a_1DifCov*( - tau_1DifCov/xn2_DifCov)*(1 - (UWin/7.7)) - "Coefficient of heat transfer for interior pane of double pane window"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer qSek2_DifCov=q21_DifCov + parameter Real q21_DifCov=a_1DifCov*(1 + + (tau_1DifCov*rho_1DifCov/xn2_DifCov))*UWin/UWin_dimless/25 + "Auxiliary variable for exterior pane of double pane window"; + parameter Real q22_DifCov=a_1DifCov*( + tau_1DifCov/xn2_DifCov)*(1 - (UWin/UWin_dimless/7.7)) + "Auxiliary variable for interior pane of double pane window"; + parameter Real qSek2_DifCov=q21_DifCov + q22_DifCov - "Overall coefficient of heat transfer for double pane window"; + "Auxiliary variable for whole double pane window"; equation for i in 1:n loop //Calculating variables for the overall degree of energy passage for //direct irradiation - if (1-rho_1Dir[i]^2)==0 then - xn2_Dir[i]=10^(-20); - else - xn2_Dir[i]= 1-rho_1Dir[i]^2; - end if; + xn2_Dir[i]=max(10^(-20),1-rho_1Dir[i]^2); q21_Dir[i]=a_1Dir[i]*(1+(tau_1Dir[i]*rho_1Dir[i]/xn2_Dir[i]))*UWin/25; q22_Dir[i]= a_1Dir[i]*(tau_1Dir[i]/xn2_Dir[i])*(1-(UWin/7.7)); qSek2_Dir[i]=q21_Dir[i]+q22_Dir[i]; tau_2Dir[i]= tau_1Dir[i]^2/xn2_Dir[i]; //Calculating variables for diffuse irradiation at clear sky - if (1-rho_1DifCle[i]^2)==0 then - xn2_DifCle[i]=10^(-20); - else - xn2_DifCle[i]= 1-rho_1DifCle[i]^2; - end if; + xn2_DifCle[i]=max(10^(-20),1-rho_1DifCle[i]^2); q21_DifCle[i]=a_1DifCle[i]*(1+(tau_1DifCle[i]*rho_1DifCle[i]/ xn2_DifCle[i]))*UWin/25; q22_DifCle[i]= a_1DifCle[i]*(tau_1DifCle[i]/xn2_DifCle[i])*(1-(UWin/7.7)); @@ -104,11 +98,7 @@ equation //Calculating variables for the overall degree of energy passage for ground //reflection radiation - if (1-rho_1Gro[i]^2)==0 then - xn2_Gro[i]=10^(-20); - else - xn2_Gro[i]= 1-rho_1Gro[i]^2; - end if; + xn2_Gro[i]=max(10^(-20),1-rho_1Gro[i]^2); q21_Gro[i]=a_1Gro[i]*(1+(tau_1Gro[i]*rho_1Gro[i]/xn2_Gro[i]))*UWin/25; q22_Gro[i]= a_1Gro[i]*(tau_1Gro[i]/xn2_Gro[i])*(1-(UWin/7.7)); qSek2_Gro[i]=q21_Gro[i]+q22_Gro[i]; diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HVisible.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HVisible.mo index 613b062a11..aa1b1f19a0 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HVisible.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HVisible.mo @@ -2,7 +2,7 @@ within AixLib.ThermalZones.ReducedOrder.Windows.BaseClasses; model HVisible "Calculates the solar energy entering the room in the visible area" extends Modelica.Blocks.Icons.Block; - parameter Integer n(min=1) "Number of windows" + parameter Integer n(min=1)=1 "Number of windows" annotation (Dialog(group="window")); parameter Modelica.Units.SI.TransmissionCoefficient tau_vis[n] @@ -14,7 +14,7 @@ model HVisible "Degree of light transmission for diffuse irradiation, with sunscreen" annotation (Dialog(group="window")); - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); final parameter Modelica.Units.SI.ReflectionCoefficient rho=0.2 "Degree of ground reflection"; @@ -24,30 +24,30 @@ model HVisible annotation (Placement(transformation(extent={{-120,-40},{-80,0}}), iconTransformation(extent={{-114,-6},{-100,8}}))); Modelica.Blocks.Interfaces.RealInput corTaue_Dir[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for direct irradiation" annotation (Placement(transformation(extent={{-128,78},{-108,98}}), iconTransformation(extent={{-114,-106},{-100,-92}}))); Modelica.Blocks.Interfaces.RealInput corTaue_DifCle[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for diffuse irradiation during clear sky" annotation (Placement(transformation(extent={{-120,-92},{-100,-72}}), iconTransformation(extent={{-114,-86},{-100,-72}}))); Modelica.Blocks.Interfaces.RealInput corTaue_DifCov[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for diffuse irradiation during covered sky" annotation (Placement(transformation(extent={{-120,-72},{-100,-52}}), iconTransformation(extent={{-114,-66},{-100,-52}}))); Modelica.Blocks.Interfaces.RealInput corTaue_Gro[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for ground reflection radiation" annotation (Placement(transformation(extent={{-120,-52},{-100,-32}}), iconTransformation(extent={{-114,-46},{-100,-32}}))); @@ -59,8 +59,8 @@ model HVisible iconTransformation(extent={{-114,-26},{-100,-12}}))); Modelica.Blocks.Interfaces.RealInput HDirTil[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "Direct irradition on tilted surface" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Direct irradition on tilted surface" annotation (Placement(transformation(extent={{-114,76},{-100,90}}), iconTransformation(extent={{-114,76},{-100,90}}))); @@ -83,22 +83,22 @@ model HVisible iconTransformation(extent={{-114,12},{-100,26}}))); Modelica.Blocks.Interfaces.RealInput HDifTilCov[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Hemispherical diffuse solar irradiation on a tilted surface at covered sky" annotation (Placement(transformation(extent={{-116,42},{-100,58}}), iconTransformation(extent={{-114,44},{-100,58}}))); Modelica.Blocks.Interfaces.RealInput HDifTilCle[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Hemispherical diffuse solar irradiation on a tilted surface at clear sky" annotation (Placement(transformation(extent={{-116,58},{-100,74}}), iconTransformation(extent={{-114,60},{-100,74}}))); Modelica.Blocks.Interfaces.RealOutput HVis[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "solar energy entering the room in the visible area" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "solar energy entering the room in the visible area" annotation (Placement(transformation(extent={{100,-10},{120,10}}), iconTransformation(extent={{100,-10},{120,10}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HWindow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HWindow.mo index 5a4a628e2a..7834150ccd 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HWindow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/HWindow.mo @@ -2,7 +2,7 @@ within AixLib.ThermalZones.ReducedOrder.Windows.BaseClasses; model HWindow "Calculates the solar heat input through the window" extends Modelica.Blocks.Icons.Block; - parameter Integer n(min=1) "Number of windows" + parameter Integer n(min=1)=1 "Number of windows" annotation (Dialog(group="window")); parameter Modelica.Units.SI.TransmissionCoefficient g[n] "Total energy transmittance of windows" annotation (Dialog(group="window")); @@ -10,7 +10,7 @@ model HWindow "Calculates the solar heat input through the window" radiation" annotation (Dialog(group="window")); parameter Modelica.Units.SI.TransmissionCoefficient g_TotDif[n] "Total energy transmittance of windows with closed sunscreen for diffuse radiation" annotation (Dialog(group="window")); - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); final parameter Modelica.Units.SI.ReflectionCoefficient rho=0.2 "Degree of ground reflection"; @@ -21,14 +21,14 @@ model HWindow "Calculates the solar heat input through the window" annotation (Placement(transformation(extent={{-120,8},{-100,28}}), iconTransformation(extent={{-114,14},{-100,28}}))); Modelica.Blocks.Interfaces.RealInput HDifTilCov[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Hemispherical diffuse solar irradiation on a tilted surface at covered sky" annotation (Placement(transformation(extent={{-116,-68},{-100,-52}}), iconTransformation(extent={{-114,-66},{-100,-52}}))); Modelica.Blocks.Interfaces.RealInput HDifTilCle[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Hemispherical diffuse solar irradiation on a tilted surface at clear sky" annotation (Placement(transformation(extent={{-116,-88},{-100,-72}}), iconTransformation(extent={{-114,-86},{-100,-72}}))); @@ -43,8 +43,8 @@ model HWindow "Calculates the solar heat input through the window" annotation (Placement(transformation(extent={{-116,-108},{-100,-92}}), iconTransformation(extent={{-114,-106},{-100,-92}}))); Modelica.Blocks.Interfaces.RealInput HDirTil[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "Direct irradition on tilted surface" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Direct irradition on tilted surface" annotation (Placement(transformation(extent={{-120,-26},{-106,-12}}), iconTransformation(extent={{-114,-26},{-100,-12}}))); Modelica.Blocks.Interfaces.BooleanInput sunscreen[n] @@ -52,34 +52,34 @@ model HWindow "Calculates the solar heat input through the window" annotation (Placement(transformation(extent={{-120,-40},{-80,0}}), iconTransformation(extent={{-114,-6},{-100,8}}))); Modelica.Blocks.Interfaces.RealInput corG_Dir[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for direct radiation" annotation (Placement(transformation(extent={{-120,86},{-100,106}}), iconTransformation(extent={{-114,92},{-100,106}}))); Modelica.Blocks.Interfaces.RealInput corG_DifCle[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for diffuse radiation while clear sky" annotation (Placement(transformation(extent={{-130,68},{-110,88}}), iconTransformation(extent={{-114,74},{-100,88}}))); Modelica.Blocks.Interfaces.RealInput corG_DifCov[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for diffuse radiation while covered sky" annotation (Placement(transformation(extent={{-120,48},{-100,68}}), iconTransformation(extent={{-114,54},{-100,68}}))); Modelica.Blocks.Interfaces.RealInput corG_Gro[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Transmission coefficient correction factor for ground reflection radiation" annotation (Placement(transformation(extent={{-120,28},{-100,48}}), iconTransformation(extent={{-114,34},{-100,48}}))); Modelica.Blocks.Interfaces.RealOutput HWin[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar radiation transmitted through aggregated window" annotation (Placement(transformation(extent={{100,-10},{120,10}}), iconTransformation(extent={{100,-10},{120,10}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Window.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Window.mo index 0786b02bb1..7b296eb990 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Window.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Window.mo @@ -1,6 +1,6 @@ within AixLib.ThermalZones.ReducedOrder.Windows.BaseClasses; model Window "Calculation of solar energy transmitted through windows" - parameter Integer n(min = 1) "Number of windows" + parameter Integer n(min = 1)=1 "Number of windows" annotation(dialog(group="window")); parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window" @@ -25,13 +25,13 @@ model Window "Calculation of solar energy transmitted through windows" annotation (dialog(group="sunscreen")); parameter Modelica.Units.SI.Angle xi(displayUnit="degree") = 0 "Elevation angle"; - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); Modelica.Blocks.Interfaces.RealInput incAng[n]( - final quantity="Angle", - final unit="rad", - displayUnit="degree") + each final quantity="Angle", + each final unit="rad", + each displayUnit="degree") "Incidence angles of the sun beam on a tilted surface" annotation (Placement(transformation(extent={{-124,68},{-100,92}}), iconTransformation(extent={{-120,72},{-100,92}}))); @@ -47,8 +47,8 @@ model Window "Calculation of solar energy transmitted through windows" annotation (Placement(transformation(extent={{-124,42},{-100,66}}), iconTransformation(extent={{-120,46},{-100,66}}))); Modelica.Blocks.Interfaces.RealInput HDirTil[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "Direct irradition on tilted surface" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Direct irradition on tilted surface" annotation (Placement(transformation(extent={{-124,-92},{-100,-68}}), iconTransformation(extent={{-120,-88},{-100,-68}}))); @@ -65,27 +65,27 @@ model Window "Calculation of solar energy transmitted through windows" iconTransformation(extent={{-120,-32},{-100,-12}}))); Modelica.Blocks.Interfaces.RealInput HDifTil[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Hemispherical diffuse solar irradiation on a tilted surface from the sky" annotation (Placement(transformation(extent={{-124,-12},{-100,12}}), iconTransformation(extent={{-120,-8},{-100,12}}))); Modelica.Blocks.Interfaces.RealOutput HVis[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "Solar energy entering the room in the visible area" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar energy entering the room in the visible area" annotation (Placement(transformation(extent={{100,30},{120,50}}), iconTransformation(extent={{100,30},{120,50}}))); Modelica.Blocks.Interfaces.RealOutput HWin[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar radiation transmitted through aggregated window" annotation (Placement(transformation(extent={{100,-50},{120,-30}}), iconTransformation(extent={{100,-50},{120,-30}}))); AixLib.ThermalZones.ReducedOrder.Windows.BaseClasses.Sunblind sunblind[n]( - final lim=lim) + each final lim=lim) annotation (Placement(transformation(extent={{-68,-42},{-56,-30}}))); AixLib.ThermalZones.ReducedOrder.SolarGain.CorrectionGTaueDoublePane CorGTaue( final n=n, diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Window.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Window.mo index 2a1ab91157..27f50a436b 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Window.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Window.mo @@ -1,7 +1,7 @@ within AixLib.ThermalZones.ReducedOrder.Windows; model Window "Calculation of solar energy transmitted through windows" parameter Modelica.Units.SI.Angle lat "Latitude"; - parameter Integer n(min = 1) "Number of windows" + parameter Integer n(min = 1)=1 "Number of windows" annotation(dialog(group="window")); parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window" @@ -24,22 +24,22 @@ model Window "Calculation of solar energy transmitted through windows" parameter Modelica.Units.SI.RadiantEnergyFluenceRate lim "Limit for the sunscreen to become active" annotation (dialog(group="sunscreen")); - parameter Modelica.Units.SI.Angle xi(displayUnit="degree") = 0 + parameter Modelica.Units.SI.Angle xi(displayUnit="deg") = 0 "Elevation angle"; - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); parameter Modelica.Units.SI.Angle azi[n] "Surface azimuth" annotation (Dialog(group="window")); extends Modelica.Blocks.Icons.Block; Modelica.Blocks.Interfaces.RealOutput HVis[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "Solar energy entering the room in the visible area" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar energy entering the room in the visible area" annotation (Placement(transformation(extent={{100,30},{120,50}}), iconTransformation(extent={{100,30},{120,50}}))); Modelica.Blocks.Interfaces.RealOutput HWin[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar radiation transmitted through aggregated window" annotation (Placement(transformation(extent={{100,-50},{120,-30}}), iconTransformation(extent={{100,-50},{120,-30}}))); From 463c3f1a3d8c5734f2ce3b1efb1ca4d16ef0701f Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 12:30:56 +0200 Subject: [PATCH 12/44] [skip-ci] Change extrapolation in look-up table to 'Hold last point'; changed critical damping to order 1 For #1368 --- .../PumpHeadControlled.mo | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo index 783698dd0d..792d27c6e4 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo @@ -38,8 +38,7 @@ model PumpHeadControlled annotation (Dialog(tab="Nominal design point", group= "Design point of pump. Used for start value calculation.")); - - // Parameters +// Parameters // Initialization parameter Modelica.Units.SI.Height Hstart=Hnom " Start value of pump head. Will be used to initialize criticalDamping." @@ -49,14 +48,14 @@ model PumpHeadControlled parameter Modelica.Media.Interfaces.Types.Temperature T_start=Medium.T_default "Start value of temperature" annotation (Dialog(tab="Initialization", group="Temperature")); - // Dynamics +// Dynamics parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state" annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Equations")); parameter Modelica.Fluid.Types.Dynamics massDynamics=energyDynamics "Type of mass balance: dynamic (3 initialization options) or steady state" annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Equations")); - // Assumptions +// Assumptions parameter Modelica.Units.SI.Volume V=0 "Volume inside the pump" annotation (Dialog(tab="Assumptions"), Evaluate=true); @@ -66,7 +65,7 @@ model PumpHeadControlled T=Medium.T_default, X=Medium.X_default) "Default medium density"; - // Power and Efficiency +// Power and Efficiency parameter Boolean calculatePower=true "calc. power consumption?" annotation ( Dialog(tab="General", group="Power and Efficiency")); parameter Boolean calculateEfficiency=false @@ -83,7 +82,7 @@ model PumpHeadControlled group="Power and Efficiency", enable=calculate_Efficiency), choicesAllMatching=true); - // Variables +// Variables Modelica.Units.SI.Pressure dp_pump "Pressure increase"; Modelica.Blocks.Interfaces.RealOutput head( quantity="Length", @@ -102,7 +101,7 @@ model PumpHeadControlled annotation (Placement(transformation(extent={{-100,35},{-80,55}}))); Modelica.Blocks.Tables.CombiTable1Dv maxMinTable( - columns={2,3}, + columns={2,3}, extrapolation = Modelica.Blocks.Types.Extrapolation.HoldLastPoint, table=pumpParam.maxMinHeight, tableName="NoName", tableOnFile=false) @@ -137,9 +136,9 @@ protected annotation (Placement(transformation(extent={{-71,-76},{-51,-56}}))); Modelica.Blocks.Continuous.CriticalDamping criticalDamping( - y_start=Hstart, + f=1/5, - initType=Modelica.Blocks.Types.Init.InitialOutput) + initType=Modelica.Blocks.Types.Init.InitialOutput, n = 1,y_start=Hstart) annotation (Placement(transformation(extent={{50,-20},{70,0}}))); public Modelica.Blocks.Logical.Switch onOff @@ -177,7 +176,7 @@ equation head = criticalDamping.y "safe head after limiting and other checks."; dp_pump = head * rho_default * Modelica.Constants.g_n; - //Calculate power and Efficiency +//Calculate power and Efficiency if pumpBus.onSet and head > AixLib.Fluid.Movers.PumpsPolynomialBased.BaseClasses.polynomial2D( pumpParam.cHQN, From 7c59efc9807f2d17222af108f51f5aee6aa72ff2 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 13 Oct 2022 13:28:22 +0200 Subject: [PATCH 13/44] Start smaller fixes #1349 --- AixLib/Airflow/AirHandlingUnit/AHU.mo | 57 ++++++++++++++------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/AixLib/Airflow/AirHandlingUnit/AHU.mo b/AixLib/Airflow/AirHandlingUnit/AHU.mo index d496fd4c40..4db55597df 100644 --- a/AixLib/Airflow/AirHandlingUnit/AHU.mo +++ b/AixLib/Airflow/AirHandlingUnit/AHU.mo @@ -112,6 +112,9 @@ model AHU block StartState outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + initial equation + Q_dot_C = 1e-3; + Q_dot_H = 1e-3; equation Q_dot_C = previous(Q_dot_C); @@ -131,6 +134,22 @@ model AHU singleInstance=true); end StartState; + block StateExtra + + annotation ( + Icon(graphics={Text( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + textString="%name")}), + Diagram(graphics={Text( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + textString="%stateName", + fontSize=10)}), + __Dymola_state=true, + showDiagram=true, + singleInstance=true); + end StateExtra; StartState startState annotation (Placement(transformation(extent={{-82,-24},{-62,-4}}))); @@ -820,25 +839,25 @@ equation stateToOnlyHeatingHRS_true = if choiceX and - (previous(T_5) >= pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) + (previous(T_5) >= previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) and heating and HRS then true else false; stateToOnlyHeatingHRS_false = if choiceX and - (previous(T_5) >= pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) + (previous(T_5) >= previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) and heating and not HRS then true else false; stateToOnlyCoolingHRS_true = if choiceX and - (previous(T_5) < pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) + (previous(T_5) < previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) and cooling and HRS then true else false; stateToOnlyCoolingHRS_false = if choiceX and - (previous(T_5) < pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) + (previous(T_5) < previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) and cooling and not HRS then true else false; X_supplyMin = (molarMassRatio*phi_supplyAir[1]* @@ -1280,43 +1299,25 @@ equation //stateToHuCHRS_false==false, connect(T_outdoorAir, sample.u[1]) annotation (Line(points={{-100,56},{-100, - 56},{-67.7778,56},{-67.7778,26}}, + 56},{-66.8889,56},{-66.8889,26}}, color={0,0,127})); connect(X_outdoorAir, sample.u[2]) annotation (Line(points={{-100,36},{-100, - 36},{-67.3333,36},{-67.3333,26}}, + 36},{-66.6667,36},{-66.6667,26}}, color={0,0,127})); connect(T_supplyAir, sample.u[3]) annotation (Line(points={{100,36},{100,42}, - {-66.8889,42},{-66.8889,26}}, + {-66.4444,42},{-66.4444,26}}, color={0,0,127})); connect(T_extractAir, sample.u[4]) annotation (Line(points={{100,78},{-60,78}, - {-60,60},{-66.4444,60},{-66.4444,26}}, + {-60,60},{-66.2222,60},{-66.2222,26}}, color={0,0,127})); - connect(Vflow_in, sample.u[8]) annotation (Line(points={{-100,82},{-64.6667, - 82},{-64.6667,26}}, + connect(Vflow_in, sample.u[8]) annotation (Line(points={{-100,82},{-65.3333, + 82},{-65.3333,26}}, color={0,0,127})); connect(Vflow_in_extractAir_internal, sample.u[9]); connect(hold_phi_sup.y, phi_supply) annotation (Line(points={{79,9},{99,9},{99, 5}}, color={0,0,127})); connect(TsupAirOut.y, T_supplyAirOut) annotation (Line(points={{79,57},{99,57}, {99,49}}, color={0,0,127})); -public - block StateExtra - - annotation ( - Icon(graphics={Text( - extent={{-100,100},{100,-100}}, - lineColor={0,0,0}, - textString="%name")}), - Diagram(graphics={Text( - extent={{-100,100},{100,-100}}, - lineColor={0,0,0}, - textString="%stateName", - fontSize=10)}), - __Dymola_state=true, - showDiagram=true, - singleInstance=true); - end StateExtra; -equation transition( startState, stateExtra,Q_dot_C > 0 and Q_dot_H > 0, From 5b05860408d2a3f8f1f81b3dd7a7fa6c0de6cc99 Mon Sep 17 00:00:00 2001 From: Tobias Schellen Date: Thu, 13 Oct 2022 14:23:50 +0200 Subject: [PATCH 14/44] #1372 heatingRod OpenModelica [skip-ci] --- AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo b/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo index 0aad8d9791..415899d2c0 100644 --- a/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo +++ b/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo @@ -3,7 +3,7 @@ model HeatingRod "Example for the usage of the heating rod model" extends Modelica.Icons.Example; extends AixLib.Fluid.HeatExchangers.Examples.BaseClasses.Heater( redeclare package Medium = AixLib.Media.Water, - m_flow_nominal=V*heatingRod.rho_default/3600, + m_flow_nominal=V*1000/3600, Q_flow_nominal=100, conPI(k=10), vol(V=V/1000), From 1ecabae21435d722c261ea5968ec1031f9cbcc70 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 14:37:43 +0200 Subject: [PATCH 15/44] [skip-ci] Delete StateGraphs as they lead to problems with OpenModelica. Also they are incorrect, since the head is delayed by 60 seconds but the on-Signal of the pump is not delayed. For #1368 --- .../Controls/CtrlDpVarN.mo | 164 ++++++------------ 1 file changed, 51 insertions(+), 113 deletions(-) diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/Controls/CtrlDpVarN.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/Controls/CtrlDpVarN.mo index 1ce623e233..917bfe092b 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/Controls/CtrlDpVarN.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/Controls/CtrlDpVarN.mo @@ -34,6 +34,17 @@ model CtrlDpVarN "'dp variable' for PumpSpeedControlled" Modelica.Blocks.Sources.RealExpression headControl(y=(Hnom - H0)/Qnom*Q.y + H0) "The given pump head according to controll strategy" annotation (Placement(transformation(extent={{-80,-24},{-44,-4}}))); + parameter Modelica.Blocks.Types.SimpleController controllerTypePID=.Modelica.Blocks.Types.SimpleController.PID + "Type of controller"; + Modelica.Blocks.Logical.Switch pumpSpeedSwitch "If false: rpm_Input = 0" + annotation (Placement(transformation(extent={{60,-40},{80,-20}}))); + Modelica.Blocks.Sources.Constant zeroSpeed(k=0) + annotation (Placement(transformation(extent={{38,-44},{50,-32}}))); + Modelica.Blocks.Routing.RealPassThrough nActPassThrough + "pass through of pump speed signal" + annotation (Placement(transformation(extent={{-74,-42},{-88,-28}}))); + Modelica.Blocks.Routing.BooleanPassThrough onOffPassThrough1 + annotation (Placement(transformation(extent={{-88,-96},{-74,-82}}))); protected Modelica.Blocks.Routing.RealPassThrough powerPassThrough annotation ( Placement(transformation( @@ -50,108 +61,42 @@ protected extent={{7,-7},{-7,7}}, rotation=270, origin={-53,-31}))); -public - parameter Modelica.Blocks.Types.SimpleController controllerTypePID=.Modelica.Blocks.Types.SimpleController.PID - "Type of controller"; - Modelica.StateGraph.InitialStep Standby(nIn=1, nOut=1) - annotation (Placement(transformation(extent={{-56,48},{-36,68}}))); - Modelica.StateGraph.StepWithSignal ActiveState(nIn=1, nOut=1) - annotation (Placement(transformation(extent={{0,48},{20,68}}))); - Modelica.StateGraph.TransitionWithSignal pumpOn(enableTimer=false, waitTime=1) - "fires when on" - annotation (Placement(transformation(extent={{-30,48},{-10,68}}))); - Modelica.StateGraph.TransitionWithSignal noDemand(waitTime=60, enableTimer= - false) - annotation (Placement(transformation(extent={{24,48},{44,68}}))); - Modelica.Blocks.Logical.Switch pumpSpeedSwitch "If false: rpm_Input = 0" - annotation (Placement(transformation(extent={{60,-40},{80,-20}}))); - Modelica.Blocks.Sources.Constant zeroSpeed(k=0) - annotation (Placement(transformation(extent={{38,-44},{50,-32}}))); - Modelica.Blocks.Logical.Not notOn annotation (Placement(transformation( - extent={{-4,-4},{4,4}}, - rotation=90, - origin={34,32}))); - Modelica.Blocks.Routing.RealPassThrough nActPassThrough - "pass through of pump speed signal" - annotation (Placement(transformation(extent={{-74,-42},{-88,-28}}))); - Modelica.Blocks.Routing.BooleanPassThrough onOffPassThrough1 - annotation (Placement(transformation(extent={{-88,-96},{-74,-82}}))); equation - connect(pumpBus.PelMea, powerPassThrough.u) annotation (Line( - points={{0.1,-99.9},{-62,-99.9},{-62,-53},{-72.6,-53}}, - color={255,204,51}, - thickness=0.5), Text( - string="%first", - index=-1, - extent={{-5,3},{-5,3}})); - connect(powerPassThrough.y, pumpControllerBus.PelMea) annotation (Line(points= - {{-88.7,-53},{-98,-53},{-98,100.1},{0.1,100.1}}, color={0,0,127})); - connect(pumpBus.efficiencyMea, efficiencyPassThrough.u) annotation (Line( - points={{0.1,-99.9},{-62,-99.9},{-62,-71},{-72.6,-71}}, - color={255,204,51}, - thickness=0.5), Text( - string="%first", - index=-1, - extent={{-3,3},{-3,3}})); + connect(pumpBus.PelMea, powerPassThrough.u) annotation ( + Line(points = {{0.1, -99.9}, {-62, -99.9}, {-62, -53}, {-72.6, -53}}, color = {255, 204, 51}, thickness = 0.5), + Text(string = "%first", index = -1, extent = {{-5, 3}, {-5, 3}})); + connect(powerPassThrough.y, pumpControllerBus.PelMea) annotation ( + Line(points = {{-88.7, -53}, {-98, -53}, {-98, 100.1}, {0.1, 100.1}}, color = {0, 0, 127})); + connect(pumpBus.efficiencyMea, efficiencyPassThrough.u) annotation ( + Line(points = {{0.1, -99.9}, {-62, -99.9}, {-62, -71}, {-72.6, -71}}, color = {255, 204, 51}, thickness = 0.5), + Text(string = "%first", index = -1, extent = {{-3, 3}, {-3, 3}})); connect(efficiencyPassThrough.y, pumpControllerBus.efficiencyMea) annotation ( - Line(points={{-88.7,-71},{-98,-71},{-98,100.1},{0.1,100.1}}, color={0,0, - 127})); - connect(PID.y, pumpSpeedSwitch.u1) annotation (Line(points={{15,-14},{38,-14}, - {38,-22},{58,-22}}, color={0,0,127})); - connect(pumpBus.vFRcur_m3h, Q.u) annotation (Line( - points={{0,-100},{-2,-100},{-2,-76},{-53,-76},{-53,-39.4}}, - color={255,204,51}, - thickness=0.5)); - connect(pumpBus.dpMea, PID.u_m) annotation (Line( - points={{0.1,-99.9},{4,-99.9},{4,-26}}, - color={255,204,51}, - thickness=0.5), Text( - string="%first", - index=-1, - extent={{-6,3},{-6,3}})); - connect(headControl.y, PID.u_s) - annotation (Line(points={{-42.2,-14},{-8,-14}}, color={0,0,127})); - connect(Standby.outPort[1],pumpOn. inPort) - annotation (Line(points={{-35.5,58},{-24,58}}, color={0,0,0})); - connect(ActiveState.outPort[1],noDemand. inPort) - annotation (Line(points={{20.5,58},{25.25,58},{30,58}}, color={0,0,0})); - connect(ActiveState.active,pumpSpeedSwitch. u2) annotation (Line(points={{10,47}, - {10,8},{52,8},{52,-30},{58,-30}}, color={255,0,255})); - connect(notOn.y,noDemand. condition) - annotation (Line(points={{34,36.4},{34,36.4},{34,46}}, color={255,0,255})); - connect(pumpOn.condition, pumpControllerBus.onSet) annotation (Line(points={{ - -20,46},{-98,46},{-98,100.1},{0.1,100.1}}, color={255,0,255}), Text( - string="%second", - index=1, - extent={{6,3},{6,3}})); - connect(pumpSpeedSwitch.y, pumpBus.rpmSet) annotation (Line(points={{81,-30}, - {86,-30},{86,-99.9},{0.1,-99.9}}, color={0,0,127}), Text( - string="%second", - index=1, - extent={{6,3},{6,3}})); - connect(zeroSpeed.y,pumpSpeedSwitch. u3) - annotation (Line(points={{50.6,-38},{58,-38}}, color={0,0,127})); - connect(pumpOn.condition,notOn. u) annotation (Line(points={{-20,46},{-20,22}, - {34,22},{34,27.2}}, color={255,0,255})); - connect(pumpOn.outPort,ActiveState. inPort[1]) - annotation (Line(points={{-18.5,58},{-1,58}}, color={0,0,0})); - connect(noDemand.outPort,Standby. inPort[1]) annotation (Line(points={{35.5,58}, - {50,58},{50,80},{-66,80},{-66,58},{-57,58}}, color={0,0,0})); - connect(pumpBus.rpmMea, nActPassThrough.u) annotation (Line( - points={{0.1,-99.9},{-62,-99.9},{-62,-35},{-72.6,-35}}, - color={255,204,51}, - thickness=0.5), Text( - string="%first", - index=-1, - extent={{-3,3},{-3,3}})); - connect(nActPassThrough.y, pumpControllerBus.rpmMea) annotation (Line(points= - {{-88.7,-35},{-98,-35},{-98,100.1},{0.1,100.1}}, color={0,0,127})); - connect(pumpControllerBus.onSet, onOffPassThrough1.u) annotation (Line( - points={{0.1,100.1},{-98,100.1},{-98,-89},{-89.4,-89}}, - color={255,204,51}, - thickness=0.5)); - connect(onOffPassThrough1.y, pumpBus.onSet) annotation (Line(points={{-73.3,-89}, - {-62,-89},{-62,-100},{0.1,-99.9}}, color={255,0,255})); + Line(points = {{-88.7, -71}, {-98, -71}, {-98, 100.1}, {0.1, 100.1}}, color = {0, 0, 127})); + connect(PID.y, pumpSpeedSwitch.u1) annotation ( + Line(points = {{15, -14}, {38, -14}, {38, -22}, {58, -22}}, color = {0, 0, 127})); + connect(pumpBus.vFRcur_m3h, Q.u) annotation ( + Line(points = {{0, -100}, {-2, -100}, {-2, -76}, {-53, -76}, {-53, -39.4}}, color = {255, 204, 51}, thickness = 0.5)); + connect(pumpBus.dpMea, PID.u_m) annotation ( + Line(points = {{0.1, -99.9}, {4, -99.9}, {4, -26}}, color = {255, 204, 51}, thickness = 0.5), + Text(string = "%first", index = -1, extent = {{-6, 3}, {-6, 3}})); + connect(headControl.y, PID.u_s) annotation ( + Line(points = {{-42.2, -14}, {-8, -14}}, color = {0, 0, 127})); + connect(pumpSpeedSwitch.y, pumpBus.rpmSet) annotation ( + Line(points = {{81, -30}, {86, -30}, {86, -99.9}, {0.1, -99.9}}, color = {0, 0, 127}), + Text(string = "%second", index = 1, extent = {{6, 3}, {6, 3}})); + connect(zeroSpeed.y, pumpSpeedSwitch.u3) annotation ( + Line(points = {{50.6, -38}, {58, -38}}, color = {0, 0, 127})); + connect(pumpBus.rpmMea, nActPassThrough.u) annotation ( + Line(points = {{0.1, -99.9}, {-62, -99.9}, {-62, -35}, {-72.6, -35}}, color = {255, 204, 51}, thickness = 0.5), + Text(string = "%first", index = -1, extent = {{-3, 3}, {-3, 3}})); + connect(nActPassThrough.y, pumpControllerBus.rpmMea) annotation ( + Line(points = {{-88.7, -35}, {-98, -35}, {-98, 100.1}, {0.1, 100.1}}, color = {0, 0, 127})); + connect(pumpControllerBus.onSet, onOffPassThrough1.u) annotation ( + Line(points = {{0.1, 100.1}, {-98, 100.1}, {-98, -89}, {-89.4, -89}}, color = {255, 204, 51}, thickness = 0.5)); + connect(onOffPassThrough1.y, pumpBus.onSet) annotation ( + Line(points = {{-73.3, -89}, {-62, -89}, {-62, -100}, {0.1, -99.9}}, color = {255, 0, 255})); + connect(pumpControllerBus.onSet, pumpSpeedSwitch.u2) annotation ( + Line(points={{0.1,100.1},{50,100.1},{50,-30},{58,-30}}, color = {255, 0, 255})); annotation ( Dialog(group="Heating curves"), choicesAllMatching=true, @@ -162,7 +107,11 @@ equation flow rate and pump head at zero mass flow. Hence p0 = (0, H0). p1 is the pump's design point. Normally, H0 = 0.5 * Hnom.

    +", revisions="
      +
    • 2022-10-13 by Martin Kremer:
      + Deleted StateGraph-Models due to incompatibility to OpenModelica. +
    • 2019-09-18 by Alexander Kümpel:
      Renaming and bug fixes.
    • @@ -190,17 +139,6 @@ equation
    "), - Icon(graphics={ - Rectangle( - extent={{-80,50},{76,-8}}, - lineColor={0,0,0}, - fillColor={254,178,76}, - fillPattern=FillPattern.Solid, - lineThickness=1), - Text( - extent={{-70,38},{64,8}}, - lineColor={240,59,32}, - fillColor={0,216,108}, - fillPattern=FillPattern.Solid, - textString="dp_var")})); + Icon(graphics={Rectangle(fillColor = {254, 178, 76}, fillPattern = FillPattern.Solid, lineThickness = 1, extent = {{-80, 50}, {76, -8}}), + Text(lineColor = {240, 59, 32}, extent = {{-70, 38}, {64, 8}}, textString = "dp_var")})); end CtrlDpVarN; From 79398868e54691215aec32edee3d846779eb976c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannah=20Kr=C3=BCtzfeldt?= Date: Thu, 13 Oct 2022 15:51:09 +0200 Subject: [PATCH 16/44] add each and fix units for Window examples in ROM [skip-ci] --- .../ReducedOrder/RC/OneElement.mo | 2 +- .../Windows/BaseClasses/Illumination.mo | 16 +++++----- .../Windows/BaseClasses/SelfShadowing.mo | 28 ++++++++-------- .../Windows/BaseClasses/ShadedWindow.mo | 32 +++++++++---------- .../Windows/BaseClasses/SkylineShadowing.mo | 12 +++---- .../Windows/Examples/ShadedWindow.mo | 2 +- .../ReducedOrder/Windows/ShadedWindow.mo | 18 +++++------ .../BaseClasses/IncidenceAngleVDI6007.mo | 4 +-- .../SelfShadowing/SelfShadowingTestAbove.mo | 8 ++--- .../SelfShadowing/SelfShadowingTestBelow.mo | 8 ++--- .../SelfShadowing/SelfShadowingTestRight.mo | 4 +-- .../VDI2078/TestCase1_Illumination.mo | 2 +- 12 files changed, 68 insertions(+), 68 deletions(-) diff --git a/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo b/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo index a704d39758..9004b6f530 100644 --- a/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo +++ b/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo @@ -8,7 +8,7 @@ model OneElement "Thermal Zone with one element for exterior walls" parameter Modelica.Units.SI.CoefficientOfHeatTransfer hRad "Coefficient of heat transfer for linearized radiation exchange between walls" annotation (Dialog(group="Thermal zone")); - parameter Integer nOrientations(min=1) "Number of orientations" + parameter Integer nOrientations(min=1)=1 "Number of orientations" annotation(Dialog(group="Thermal zone")); parameter Integer nPorts=0 "Number of fluid ports" annotation(Evaluate=true, diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Illumination.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Illumination.mo index 8c2cd8ce01..8aee1a2414 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Illumination.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/Illumination.mo @@ -7,9 +7,9 @@ model Illumination "Radiation equivalent for uniformly overcast skies"; //Window parameter - parameter Integer n(min=1) "Number of windows" + parameter Integer n(min=1)=1 "Number of windows" annotation (Dialog(group="window")); - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); parameter Real r[n] "Frame share" annotation (Dialog(group="window")); @@ -25,22 +25,22 @@ model Illumination annotation (Placement(transformation(extent={{98,-10},{118,10}}), iconTransformation(extent={{100,-10},{120,10}}))); - Modelica.Blocks.Interfaces.RealInput HVis[n](final quantity= - "RadiantEnergyFluenceRate", final unit="W/m2") + Modelica.Blocks.Interfaces.RealInput HVis[n](each final quantity= + "RadiantEnergyFluenceRate", each final unit="W/m2") "Solar energy entering the room in the visible area" annotation (Placement(transformation(extent={{-120,70},{-100,90}}), iconTransformation(extent={{-120,70},{-100,90}}))); Modelica.Blocks.Interfaces.RealInput corTaue_DifCov[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for diffuse irradiation during covered sky" annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}), iconTransformation(extent={{-120,-70},{-100,-50}}))); Modelica.Blocks.Interfaces.RealInput corTaue_Gro[n]( - final quantity="TransmissionCoefficient", - final unit="1") + each final quantity="TransmissionCoefficient", + each final unit="1") "Correction value for translucence for ground reflection radiation" annotation (Placement(transformation(extent={{-120,30},{-100,50}}), iconTransformation(extent={{-120,30},{-100,50}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SelfShadowing.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SelfShadowing.mo index bb7c6501e7..ac2b850747 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SelfShadowing.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SelfShadowing.mo @@ -1,7 +1,7 @@ within AixLib.ThermalZones.ReducedOrder.Windows.BaseClasses; block SelfShadowing "Self-shadowing due to projections for direct radiation" - parameter Integer n(min = 1) "Number of windows" + parameter Integer n(min = 1)=1 "Number of windows" annotation(dialog(group="window")); extends Modelica.Blocks.Icons.Block; parameter Modelica.Units.SI.Length b[n] "Width of window" @@ -28,16 +28,16 @@ block SelfShadowing parameter Modelica.Units.SI.Length dBel[n] "Distance between projection (below) and window" annotation (Dialog(group="Window parameter")); - parameter Modelica.Units.SI.Angle azi[n](displayUnit="degree") "Surface azimuth. azi=-90 degree if surface outward unit normal points + parameter Modelica.Units.SI.Angle azi[n](each displayUnit="deg") "Surface azimuth. azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south" annotation (Dialog(group="Window parameter")); - parameter Modelica.Units.SI.Angle til[n](displayUnit="degree") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="Window parameter")); Modelica.Blocks.Interfaces.RealInput incAng[n]( - final quantity="Angle", - final unit="rad", - displayUnit="degree") + each final quantity="Angle", + each final unit="rad", + each displayUnit="deg") "Incidence angle of the sun beam on a tilted surface" annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}), iconTransformation(extent={{-120,-80},{-100,-60}}))); @@ -53,20 +53,20 @@ block SelfShadowing displayUnit="deg") "Solar altitude angle" annotation (Placement(transformation(extent={{-140,-30},{-100,10}}), iconTransformation(extent={{-120,-10},{-100,10}}))); - Modelica.Blocks.Interfaces.RealOutput x_As[n](min=0, - final unit="1") "Not shaded percentage of window area" + Modelica.Blocks.Interfaces.RealOutput x_As[n](each min=0, + each final unit="1") "Not shaded percentage of window area" annotation (Placement(transformation(extent={{100,-20},{140,20}}), iconTransformation(extent={{100,-8},{118,10}}))); protected Real e_hn[n] "Horizontal calculation factor"; Real e_vn[n] "Vertical calculation factor"; - Modelica.Units.SI.Distance x1[n] "Auxiliary variable for shadow from left"; - Modelica.Units.SI.Distance x2[n] "Auxiliary variable for shadow from right"; - Modelica.Units.SI.Distance x3[n] "Auxiliary variable for shadow from above"; - Modelica.Units.SI.Distance x4[n] "Auxiliary variable for shadow from below"; - Modelica.Units.SI.Distance s_h[n] "Horizontal reduction of window"; - Modelica.Units.SI.Distance s_v[n] "Vertical reduction of window"; + Modelica.Units.SI.Length x1[n] "Auxiliary variable for shadow from left"; + Modelica.Units.SI.Length x2[n] "Auxiliary variable for shadow from right"; + Modelica.Units.SI.Length x3[n] "Auxiliary variable for shadow from above"; + Modelica.Units.SI.Length x4[n] "Auxiliary variable for shadow from below"; + Modelica.Units.SI.Length s_h[n] "Horizontal reduction of window"; + Modelica.Units.SI.Length s_v[n] "Vertical reduction of window"; Modelica.Units.SI.Area A_S[n] "Auxiliary variable for effective area"; Modelica.Units.SI.Area A_s[n] "Effective windowarea"; equation diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/ShadedWindow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/ShadedWindow.mo index db3acc46d3..ae1a79e557 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/ShadedWindow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/ShadedWindow.mo @@ -2,7 +2,7 @@ within AixLib.ThermalZones.ReducedOrder.Windows.BaseClasses; model ShadedWindow "Calculation of solar energy transmitted through windows considering shadowing." - parameter Integer n(min = 1) "Number of windows" + parameter Integer n(min = 1)=1 "Number of windows" annotation(dialog(group="window")); parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window" @@ -23,7 +23,7 @@ model ShadedWindow annotation (dialog(group="sunscreen")); parameter Modelica.Units.SI.Angle xi(displayUnit="degree") = 0 "Elevation angle"; - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); parameter Modelica.Units.SI.Length b[n] "Width of window" annotation (Dialog(group="window")); @@ -49,12 +49,12 @@ model ShadedWindow parameter Modelica.Units.SI.Length dBel[n] "Distance between projection (below) and window" annotation (Dialog(group="window")); - parameter Modelica.Units.SI.Angle azi[n](displayUnit="degree") "Surface azimuth. azi=-90 degree if surface outward unit normal points + parameter Modelica.Units.SI.Angle azi[n](each displayUnit="deg") "Surface azimuth. azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south" annotation (Dialog(group="window")); - parameter Integer nCorPoi(min = 1) "Number of corner points" + parameter Integer nCorPoi(min = 1)=1 "Number of corner points" annotation(dialog(group="skyline")); - parameter Modelica.Units.SI.Angle[nCorPoi] alpha(displayUnit="deg") "Azimuth of corner points, sorted from north to east to south to west, + parameter Modelica.Units.SI.Angle[nCorPoi] alpha(each displayUnit="deg") "Azimuth of corner points, sorted from north to east to south to west, azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south" annotation (dialog(group="skyline")); parameter Modelica.Units.SI.Height[nCorPoi] deltaH @@ -71,9 +71,9 @@ model ShadedWindow parameter Modelica.Units.SI.TransmissionCoefficient g_TotDif[n] "Total energy transmittance of windows with closed sunscreen for diffuse radiation" annotation (Dialog(group="window")); Modelica.Blocks.Interfaces.RealInput incAng[n]( - final quantity="Angle", - final unit="rad", - displayUnit="degree") + each final quantity="Angle", + each final unit="rad", + each displayUnit="degree") "Incidence angles of the sun beam on a tilted surface" annotation (Placement(transformation(extent={{-124,84},{-100,108}}), iconTransformation(extent={{-120,88},{-100,108}}))); @@ -95,8 +95,8 @@ model ShadedWindow annotation (Placement(transformation(extent={{-124,60},{-100,84}}), iconTransformation(extent={{-120,64},{-100,84}}))); Modelica.Blocks.Interfaces.RealInput HDirTil[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Direct irradition on tilted surface" annotation (Placement(transformation(extent={{-124,30},{-100,54}}), iconTransformation(extent={{-120,34},{-100,54}}))); @@ -115,21 +115,21 @@ model ShadedWindow iconTransformation(extent={{-120,-106},{-100,-86}}))); Modelica.Blocks.Interfaces.RealInput HDifTil[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Hemispherical diffuse solar irradiation on a tilted surface from the sky" annotation (Placement(transformation(extent={{-124,-88},{-100,-64}}), iconTransformation(extent={{-120,-84},{-100,-64}}))); Modelica.Blocks.Interfaces.RealOutput HVis[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar energy entering the room in the visible area" annotation (Placement(transformation(extent={{100,30},{120,50}}), iconTransformation(extent={{100,30},{120,50}}))); Modelica.Blocks.Interfaces.RealOutput HWin[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar radiation transmitted through aggregated window" annotation (Placement(transformation(extent={{100,-50},{120,-30}}), iconTransformation(extent={{100,-50},{120,-30}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SkylineShadowing.mo b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SkylineShadowing.mo index 27a0e84919..aaa924e5ef 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SkylineShadowing.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/BaseClasses/SkylineShadowing.mo @@ -3,9 +3,9 @@ model SkylineShadowing "Calculation of the limit elevation angle for shadowing by a skyline (for direct solar irradiation)" extends Modelica.Blocks.Icons.Block; - parameter Integer n(min = 1) "Number of corner points" + parameter Integer n(min = 1)=1 "Number of corner points" annotation(dialog(group="skyline")); - parameter Modelica.Units.SI.Angle[n] alpha(displayUnit="deg") "Azimuth of corner points, sorted from north to east to south to west, + parameter Modelica.Units.SI.Angle[n] alpha(each displayUnit="deg") "Azimuth of corner points, sorted from north to east to south to west, azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south" annotation (dialog(group="skyline")); parameter Modelica.Units.SI.Height[n] deltaH @@ -34,12 +34,12 @@ model SkylineShadowing protected Modelica.Units.SI.Angle[n - 1] X "Calculation factor to simplify equations"; Modelica.Units.SI.Angle[n - 1] Y "Calculation factor to simplify equations"; - Modelica.Units.SI.Angle altLimi[n - 1](displayUnit="deg") + Modelica.Units.SI.Angle altLimi[n - 1](each displayUnit="deg") "Limit elevation angle for shadowing by a skyline for point i and i+1"; Modelica.Units.SI.Angle gamma[n]( - min=0, - max=Modelica.Constants.pi/2, - displayUnit="deg") "Elevation angle of the obstruction for point i"; + each min=0, + each max=Modelica.Constants.pi/2, + each displayUnit="deg") "Elevation angle of the obstruction for point i"; equation //Calculating gamma for i in 1:n loop diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Examples/ShadedWindow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Examples/ShadedWindow.mo index 3006156cba..0a697a28b7 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Examples/ShadedWindow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Examples/ShadedWindow.mo @@ -27,7 +27,7 @@ model ShadedWindow "Testmodel for ShadedWindow" bBel={0,0}, dAbo={0.5,0.5}, dBel={0,0}, - azi(displayUnit="deg") = {0,1.5707963267949}, + azi={0,1.5707963267949}, deltaH={5,5,10,10}, s={100,100,20,20}, gap={false,true,false}, diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/ShadedWindow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/ShadedWindow.mo index 4b60729b35..7d9e56c451 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/ShadedWindow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/ShadedWindow.mo @@ -2,7 +2,7 @@ within AixLib.ThermalZones.ReducedOrder.Windows; model ShadedWindow "Calculation of solar energy transmitted through windows considering shadowing." parameter Modelica.Units.SI.Angle lat "Latitude"; - parameter Integer n(min = 1) "Number of windows" + parameter Integer n(min = 1)=1 "Number of windows" annotation(dialog(group="window")); parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window" @@ -23,7 +23,7 @@ model ShadedWindow annotation (dialog(group="sunscreen")); parameter Modelica.Units.SI.Angle xi(displayUnit="degree") = 0 "Elevation angle"; - parameter Modelica.Units.SI.Angle til[n](displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for + parameter Modelica.Units.SI.Angle til[n](each displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof" annotation (Dialog(group="window")); parameter Modelica.Units.SI.Length b[n] "Width of window" annotation (Dialog(group="window")); @@ -49,12 +49,12 @@ model ShadedWindow parameter Modelica.Units.SI.Length dBel[n] "Distance between projection (below) and window" annotation (Dialog(group="window")); - parameter Modelica.Units.SI.Angle azi[n](displayUnit="degree") "Surface azimuth. azi=-90 degree if surface outward unit normal points + parameter Modelica.Units.SI.Angle azi[n](each displayUnit="deg") "Surface azimuth. azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south" annotation (Dialog(group="window")); - parameter Integer nCorPoi(min = 1) "Number of corner points" + parameter Integer nCorPoi(min = 1)=1 "Number of corner points" annotation(dialog(group="skyline")); - parameter Modelica.Units.SI.Angle[nCorPoi] alpha(displayUnit="deg") "Azimuth of corner points, sorted from north to east to south to west, + parameter Modelica.Units.SI.Angle[nCorPoi] alpha(each displayUnit="deg") "Azimuth of corner points, sorted from north to east to south to west, azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south" annotation (dialog(group="skyline")); parameter Modelica.Units.SI.Height[nCorPoi] deltaH @@ -72,14 +72,14 @@ model ShadedWindow radiation" annotation (Dialog(group="window")); Modelica.Blocks.Interfaces.RealOutput HVis[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") "Solar energy entering the room in the visible area" + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar energy entering the room in the visible area" annotation (Placement(transformation(extent={{100,30},{120,50}}), iconTransformation(extent={{100,30},{120,50}}))); Modelica.Blocks.Interfaces.RealOutput HWin[n]( - final quantity="RadiantEnergyFluenceRate", - final unit="W/m2") + each final quantity="RadiantEnergyFluenceRate", + each final unit="W/m2") "Solar radiation transmitted through aggregated window" annotation (Placement(transformation(extent={{100,-50},{120,-30}}), iconTransformation(extent={{100,-50},{120,-30}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/BaseClasses/IncidenceAngleVDI6007.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/BaseClasses/IncidenceAngleVDI6007.mo index 409fe77484..0c6ba41390 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/BaseClasses/IncidenceAngleVDI6007.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/BaseClasses/IncidenceAngleVDI6007.mo @@ -2,9 +2,9 @@ within AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses; block IncidenceAngleVDI6007 "The solar incidence angle on a tilted surface" extends Modelica.Blocks.Icons.Block; - parameter Modelica.Units.SI.Angle azi(displayUnit="degree") "Surface azimuth. azi=-90 degree if surface outward unit normal points + parameter Modelica.Units.SI.Angle azi(displayUnit="deg") "Surface azimuth. azi=-90 degree if surface outward unit normal points toward east; azi=0 if it points toward south"; - parameter Modelica.Units.SI.Angle til(displayUnit="degree") + parameter Modelica.Units.SI.Angle til(displayUnit="deg") "Surface tilt. til=90 degree for walls; til=0 for ceilings; til=180 for roof"; Modelica.Blocks.Interfaces.RealInput solAzi(final quantity="Angle", final unit="rad") diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo index 1aed5f6d06..a73787b50f 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo @@ -14,8 +14,8 @@ model SelfShadowingTestAbove final bBel={0}, final dAbo={0.01}, final dBel={0}, - final azi(displayUnit="deg") = {0}, - final til(displayUnit="deg") = {1.5707963267949}) + final azi = {0}, + final til = {1.5707963267949}) "Shadowing due to a projection above the window" annotation (Placement(transformation(extent={{56,46},{88,74}}))); AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til=90) @@ -42,8 +42,8 @@ model SelfShadowingTestAbove final bBel={0}, final dAbo={0.01}, final dBel={0}, - final azi(displayUnit="deg") = {0}, - final til(displayUnit="deg") = {1.5707963267949}) + final azi={0}, + final til={1.5707963267949}) "Shadowing due to a projection above the window" annotation (Placement(transformation(extent={{56,-32},{88,-4}}))); AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng2(azi=0, til=90) diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo index c52f551db4..a09b2cae2b 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo @@ -12,8 +12,8 @@ model SelfShadowingTestBelow final dLef={0}, final bAbo={0}, final dAbo={0}, - final azi(displayUnit="deg") = {0}, - final til(displayUnit="deg") = {1.5707963267949}, + final azi= {0}, + final til= {1.5707963267949}, final dBel={0.01}, final bBel={1}) "Shadowing due to a projection below" annotation (Placement(transformation(extent={{56,46},{88,74}}))); @@ -36,8 +36,8 @@ model SelfShadowingTestBelow final dLef={0}, final bAbo={0}, final dAbo={0}, - final azi(displayUnit="deg") = {0}, - final til(displayUnit="deg") = {1.5707963267949}, + final azi= {0}, + final til= {1.5707963267949}, final bBel={1}, final dBel={-0.2}) "Shadowing due to a balkony" annotation (Placement(transformation(extent={{56,-40},{88,-12}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo index 34aad61e24..4586784933 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo @@ -10,8 +10,8 @@ model SelfShadowingTestRight final dLef={0}, final bBel={0}, final dBel={0}, - final azi(displayUnit="deg") = {0}, - final til(displayUnit="deg") = {1.5707963267949}, + final azi= {0}, + final til= {1.5707963267949}, final bRig={1}, final dRig={0.01}, final bAbo={0}, diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo index cabe43122e..7c4b9193ef 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo @@ -288,7 +288,7 @@ model TestCase1_Illumination n=1, UWin=1.4, xi=0, - til(displayUnit="deg") = {1.5707963267949}) + til= {1.5707963267949}) "Correction values for non-parallel and non-vertical irradiation for VDI2078 test case 1" annotation (Placement(transformation(extent={{-52,46},{-32,66}}))); From 3e4e74b7f4505fd94fc50136c55be6404fc7694a Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 13 Oct 2022 16:12:38 +0200 Subject: [PATCH 17/44] Fix errors in OM by following the IBPSA changes and removing multiport in DHC models. For #1352. [skip-ci] --- .../Demands/OpenLoop/HeatPumpCarnot.mo | 2 +- .../Demands/OpenLoop/VarTSupplyDp.mo | 2 +- .../Demands/OpenLoop/VarTSupplyDpBypass.mo | 2 +- .../VarTSupplyDpFixedTempDifferenceBypass.mo | 2 +- .../DistrictHeatingCooling/Pipes/DHCPipe.mo | 84 ++---- .../Pipes/Examples/DHCPipe.mo | 18 +- .../Pipes/Examples/PlugFlowPipeEmbedded.mo | 3 +- .../Pipes/Examples/PlugFlowPipeZeta.mo | 3 +- .../Pipes/Examples/StaticPipe.mo | 5 +- .../Pipes/PlugFlowPipeEmbedded.mo | 11 +- .../Pipes/PlugFlowPipeZeta.mo | 33 ++- .../Pipes/StaticPipe.mo | 18 +- .../BaseClasses/PlugFlowCore.mo | 279 ------------------ .../BaseClasses/package.order | 1 - 14 files changed, 75 insertions(+), 388 deletions(-) delete mode 100644 AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo diff --git a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/HeatPumpCarnot.mo b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/HeatPumpCarnot.mo index 6e08aac203..2e179bc9c7 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/HeatPumpCarnot.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/HeatPumpCarnot.mo @@ -78,7 +78,7 @@ public extent={{10,10},{-10,-10}}, rotation=180, origin={-90,50}))); - Modelica.Blocks.Math.Gain gain(k=cp_default) + Modelica.Blocks.Math.Gain gain(k(unit="J/(kg.K)")=cp_default, y(unit="J/(kg.K)")) annotation (Placement(transformation(extent={{-32,40},{-12,60}}))); Modelica.Blocks.Math.Division hea2MasFlo annotation (Placement(transformation( extent={{-10,-10},{10,10}}, diff --git a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDp.mo b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDp.mo index 050ab1bc9c..40bc9ded68 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDp.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDp.mo @@ -61,7 +61,7 @@ public extent={{10,10},{-10,-10}}, rotation=180, origin={-90,46}))); - Modelica.Blocks.Math.Gain gain(k=cp_default) + Modelica.Blocks.Math.Gain gain(k(unit="J/(kg.K)")=cp_default, y(unit="J/(kg.K)")) annotation (Placement(transformation(extent={{-26,54},{-6,74}}))); Modelica.Blocks.Math.Division hea2MasFlo annotation (Placement(transformation( extent={{-10,-10},{10,10}}, diff --git a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpBypass.mo b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpBypass.mo index e3fa261ac2..e1b44bf712 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpBypass.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpBypass.mo @@ -64,7 +64,7 @@ public extent={{10,10},{-10,-10}}, rotation=180, origin={-90,46}))); - Modelica.Blocks.Math.Gain gain(k=cp_default) + Modelica.Blocks.Math.Gain gain(k(unit="J/(kg.K)")=cp_default, y(unit="J/(kg.K)")) annotation (Placement(transformation(extent={{-26,54},{-6,74}}))); Modelica.Blocks.Math.Division hea2MasFlo annotation (Placement(transformation( extent={{-10,-10},{10,10}}, diff --git a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpFixedTempDifferenceBypass.mo b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpFixedTempDifferenceBypass.mo index e08d00d5d3..0b9ee225f1 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpFixedTempDifferenceBypass.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Demands/OpenLoop/VarTSupplyDpFixedTempDifferenceBypass.mo @@ -54,7 +54,7 @@ public annotation (Placement(transformation(extent={{-10,-10},{10,10}}, rotation=0, origin={80,0}))); - Modelica.Blocks.Math.Gain gain(k=cp_default) + Modelica.Blocks.Math.Gain gain(k(unit="J/(kg.K)")=cp_default, y(unit="J/(kg.K)")) annotation (Placement(transformation(extent={{-40,104},{-20,124}}))); Modelica.Blocks.Math.Division hea2MasFlo annotation (Placement(transformation( extent={{-10,-10},{10,10}}, diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo index 3da3ace663..31ffec7140 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo @@ -1,6 +1,6 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model DHCPipe "Generic pipe model for DHC applications" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -124,12 +124,15 @@ model DHCPipe "Generic pipe model for DHC applications" "Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)" annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - replaceable AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowCore pipCor( + replaceable AixLib.Fluid.FixedResistances.PlugFlowPipe pipCor( redeclare final package Medium = Medium, final dh=dh, final v_nominal=v_nominal, final length=length, - final C=C, + dIns=dIns, + kIns=kIns, + cPip=cPip, + rhoPip=rhoPip, final R=R, final m_flow_small=m_flow_small, final m_flow_nominal=m_flow_nominal, @@ -144,27 +147,7 @@ model DHCPipe "Generic pipe model for DHC applications" final roughness=roughness, final allowFlowReversal=allowFlowReversal, final homotopyInitialization=homotopyInitialization, - final linearized=linearized) constrainedby Interfaces.PartialTwoPort( - redeclare package Medium = Medium, - dh=dh, - v_nominal=v_nominal, - length=length, - C=C, - R=R, - m_flow_small=m_flow_small, - m_flow_nominal=m_flow_nominal, - T_start_in=T_start_in, - T_start_out=T_start_out, - m_flow_start=m_flow_start, - initDelay=initDelay, - from_dp=from_dp, - fac=if not use_zeta then fac else 1.0, - ReC=ReC, - thickness=thickness, - roughness=roughness, - allowFlowReversal=allowFlowReversal, - homotopyInitialization=homotopyInitialization, - linearized=linearized) "Describing the pipe behavior" annotation (choices( + final linearized=linearized) constrainedby Interfaces.PartialTwoPort "Describing the pipe behavior" annotation (choices( choice(redeclare AixLib.Fluid.DistrictHeatingCooling.Pipes.BaseClassesStatic.StaticCore pipCor "Static core"), choice(redeclare @@ -181,7 +164,7 @@ model DHCPipe "Generic pipe model for DHC applications" redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=nPorts + 1, + final nPorts=2, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -220,7 +203,26 @@ model DHCPipe "Generic pipe model for DHC applications" T0=283.15) if use_soil annotation (Placement(transformation(extent={{-10,72},{10,92}}))); - + FixedResistances.HydraulicResistance hydRes( + diameter=dh, + m_flow_nominal=m_flow_nominal, + redeclare package Medium = Medium, + zeta=sum_zetas, + allowFlowReversal=allowFlowReversal, + from_dp=from_dp, + homotopyInitialization=homotopyInitialization, + linearized=linearized, + m_flow_start=m_flow_start) if use_zeta + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + Modelica.Thermal.HeatTransfer.Components.ThermalCollector thePasThr(final m=1) + if not use_soil "Thermal pass through if there is no soil activated" + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=180, + origin={-16,54}))); + Interfaces.PassThroughMedium pasThrMed(redeclare package Medium = Medium) + if not use_zeta + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); protected parameter Modelica.Units.SI.HeatCapacity CPip=length*((dh + 2*thickness)^2 - dh^2)*Modelica.Constants.pi/4*cPip*rhoPip "Heat capacity of pipe wall"; @@ -255,27 +257,7 @@ protected Modelica.Units.SI.Heat Q_gai(start=0.0, fixed=true) "Integrated heat gain of the pipe"; -public - FixedResistances.HydraulicResistance hydRes( - diameter=dh, - m_flow_nominal=m_flow_nominal, - redeclare package Medium = Medium, - zeta=sum_zetas, - allowFlowReversal=allowFlowReversal, - from_dp=from_dp, - homotopyInitialization=homotopyInitialization, - linearized=linearized, - m_flow_start=m_flow_start) if use_zeta - annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); - Modelica.Thermal.HeatTransfer.Components.ThermalCollector thePasThr(final m=1) - if not use_soil "Thermal pass through if there is no soil activated" - annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=180, - origin={-16,54}))); - Interfaces.PassThroughMedium pasThrMed(redeclare package Medium = Medium) - if not use_zeta - annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + equation //calculation of the flow velocity of water in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); @@ -284,14 +266,12 @@ equation der(Q_los) = min(0, pipCor.heatPort.Q_flow); der(Q_gai) = max(0, pipCor.heatPort.Q_flow); - for i in 1:nPorts loop - connect(vol.ports[i + 1], ports_b[i]) - annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, + connect(vol.ports[2], port_b) + annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - end for; connect(pipCor.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); connect(pipCor.heatPort, cylHeaTra1.port_a) annotation (Line(points={{0,10},{0,30}}, color={191,0,0}, pattern=LinePattern.Dash)); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo index 93b829a206..66fd0221d6 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo @@ -15,11 +15,9 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{72,40},{52,60}}))); - AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip( + AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - redeclare BaseClassesStatic.StaticCore pipCor "Static core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -69,8 +67,6 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip1( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -117,8 +113,6 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" redeclare package Medium = Medium, use_soil=true, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -165,8 +159,6 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" redeclare package Medium = Medium, sum_zetas=2.5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -203,7 +195,7 @@ equation connect(Tin.y, sou.T_in) annotation (Line(points={{-79,54},{-72,54}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{10,50},{20,50}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) @@ -219,7 +211,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,20}}, color={191,0,0})); connect(Tin1.y, sou1.T_in) annotation (Line(points={{-79,14},{-72,14}}, color={0,0,127})); - connect(pip1.ports_b[1], senTemOut1.port_a) + connect(pip1.port_b, senTemOut1.port_a) annotation (Line(points={{10,10},{20,10}}, color={0,127,255})); connect(senTemOut1.port_b, sin1.ports[1]) annotation (Line(points={{40,10},{52,10}}, color={0,127,255})); @@ -231,7 +223,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,-22}}, color={191,0,0})); connect(Tin2.y, sou2.T_in) annotation (Line(points={{-79,-28},{-72,-28}}, color={0,0,127})); - connect(pip2.ports_b[1], senTemOut2.port_a) + connect(pip2.port_b, senTemOut2.port_a) annotation (Line(points={{10,-32},{20,-32}}, color={0,127,255})); connect(senTemOut2.port_b, sin2.ports[1]) annotation (Line(points={{40,-32},{52,-32}}, color={0,127,255})); @@ -243,7 +235,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,-60}}, color={191,0,0})); connect(Tin3.y, sou3.T_in) annotation (Line(points={{-79,-66},{-72,-66}}, color={0,0,127})); - connect(pip3.ports_b[1], senTemOut3.port_a) + connect(pip3.port_b, senTemOut3.port_a) annotation (Line(points={{10,-70},{20,-70}}, color={0,127,255})); connect(senTemOut3.port_b, sin3.ports[1]) annotation (Line(points={{40,-70},{52,-70}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo index abb939f6e8..a9e75adf96 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo @@ -19,7 +19,6 @@ model PlugFlowPipeEmbedded "Simple example of PlugFlowPipeEmbedded" pip( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -60,7 +59,7 @@ equation color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo index 581ef000c5..6a3d0babab 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo @@ -17,7 +17,6 @@ model PlugFlowPipeZeta "Simple example of PlugFlowPipe" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); AixLib.Fluid.DistrictHeatingCooling.Pipes.PlugFlowPipeZeta pip( redeclare package Medium = Medium, - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -57,7 +56,7 @@ equation annotation (Line(points={{-20,70},{10,70},{10,10}}, color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo index e274ce4d09..e772517988 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo @@ -11,13 +11,12 @@ model StaticPipe "Simple example of StaticPipe" annotation (Placement(transformation(extent={{-92,-6},{-72,14}}))); Sources.Boundary_pT sin( redeclare package Medium = Medium, - T=273.15 + 10, + T=323.15, nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); AixLib.Fluid.DistrictHeatingCooling.Pipes.StaticPipe pip( redeclare package Medium = Medium, - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -57,7 +56,7 @@ equation annotation (Line(points={{-20,70},{10,70},{10,10}}, color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo index 51b9f7f8c4..a5d95414c5 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo @@ -2,7 +2,7 @@ model PlugFlowPipeEmbedded "Embedded pipe model using spatialDistribution for temperature delay" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state" @@ -61,11 +61,11 @@ model PlugFlowPipeEmbedded parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) - = T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -135,7 +135,6 @@ model PlugFlowPipeEmbedded final R=R, final fac=fac, final sum_zetas=sum_zetas, - nPorts=nPorts, final use_zeta=true) annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); @@ -215,7 +214,7 @@ equation annotation (Line(points={{0,90.8},{0,104}}, color={191,0,0})); connect(port_a, plugFlowPipeZeta.port_a) annotation (Line(points={{-100,0},{-10,0}}, color={0,127,255})); - connect(plugFlowPipeZeta.ports_b, ports_b) annotation (Line(points={{10,0},{56, + connect(plugFlowPipeZeta.port_b, port_b) annotation (Line(points={{10,0},{56, 0},{56,0},{100,0}}, color={0,127,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo index 534405568f..bf7da1e834 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo @@ -1,7 +1,7 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model PlugFlowPipeZeta "Pipe model using spatialDistribution for temperature delay and conditional HydraulicResistance" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -56,11 +56,11 @@ model PlugFlowPipeZeta parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) - = T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -95,12 +95,15 @@ model PlugFlowPipeZeta "Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)" annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowCore plugFlowCore( + FixedResistances.PlugFlowPipe plugFlowPipe( redeclare final package Medium = Medium, final dh=dh, final v_nominal=v_nominal, final length=length, - final C=C, + dIns=dIns, + kIns=kIns, + cPip=cPip, + rhoPip=rhoPip, final R=R, final m_flow_small=m_flow_small, final m_flow_nominal=m_flow_nominal, @@ -128,7 +131,7 @@ model PlugFlowPipeZeta redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=nPorts + 1, + final nPorts=2, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -178,25 +181,23 @@ equation //calculation of the flow velocity of medium in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); - for i in 1:nPorts loop - connect(vol.ports[i + 1], ports_b[i]) - annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, + connect(vol.ports[2], port_b) + annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - end for; - connect(plugFlowCore.heatPort, heatPort) + connect(plugFlowPipe.heatPort, heatPort) annotation (Line(points={{0,10},{0,10},{0,100}}, color={191,0,0})); - connect(plugFlowCore.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + connect(plugFlowPipe.port_b, vol.ports[1]) + annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); if use_zeta then - connect(hydraulicResistance.port_b, plugFlowCore.port_a) + connect(hydraulicResistance.port_b,plugFlowPipe. port_a) annotation (Line(points={{-40,20},{-20,20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); connect(hydraulicResistance.port_a, port_a) annotation (Line(points={{-60,20},{-80,20},{-80,0},{-100,0}}, color={0,127,255}, pattern=LinePattern.Dash)); else - connect(port_a, plugFlowCore.port_a) + connect(port_a,plugFlowPipe. port_a) annotation (Line(points={{-100,0},{-80,0},{-80,-20},{-20,-20},{-20,0},{-10,0}}, color={0,127,255})); end if; diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo index 09ae7f1ff5..5986218d4d 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo @@ -1,7 +1,7 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model StaticPipe "Static Pipe model using conditional HydraulicResistance" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -56,11 +56,11 @@ model StaticPipe parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) - = T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -129,7 +129,7 @@ model StaticPipe redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=nPorts + 1, + final nPorts=2, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -179,16 +179,14 @@ equation //calculation of the flow velocity of medium in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); - for i in 1:nPorts loop - connect(vol.ports[i + 1], ports_b[i]) - annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, + connect(vol.ports[2], port_b) + annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - end for; connect(staticCore.heatPort, heatPort) annotation (Line(points={{0,10},{0,10},{0,100}}, color={191,0,0})); connect(staticCore.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); //Connect hydraulicResistance if use_zeta then connect(hydraulicResistance.port_b, staticCore.port_a) diff --git a/AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo b/AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo deleted file mode 100644 index 93efbe6a03..0000000000 --- a/AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo +++ /dev/null @@ -1,279 +0,0 @@ -within AixLib.Fluid.FixedResistances.BaseClasses; -model PlugFlowCore - "Pipe model using spatialDistribution for temperature delay with modified delay tracker" - extends AixLib.Fluid.Interfaces.PartialTwoPort; - - constant Boolean homotopyInitialization = true "= true, use homotopy method" - annotation(HideResult=true); - - parameter Modelica.Units.SI.Length dh - "Hydraulic diameter (assuming a round cross section area)"; - - parameter Modelica.Units.SI.Velocity v_nominal - "Velocity at m_flow_nominal (used to compute default value for hydraulic diameter dh)" - annotation(Dialog(group="Nominal condition")); - - parameter Modelica.Units.SI.Length length(min=0) "Pipe length"; - - parameter Modelica.Units.SI.MassFlowRate m_flow_nominal(min=0) - "Nominal mass flow rate" annotation (Dialog(group="Nominal condition")); - - parameter Modelica.Units.SI.MassFlowRate m_flow_small(min=0) = 1E-4*abs( - m_flow_nominal) "Small mass flow rate for regularization of zero flow" - annotation (Dialog(tab="Advanced")); - - parameter Modelica.Units.SI.Height roughness=2.5e-5 - "Average height of surface asperities (default: smooth steel pipe)" - annotation (Dialog(group="Geometry")); - - parameter Real R(unit="(m.K)/W") - "Thermal resistance per unit length from fluid to boundary temperature"; - - parameter Real C(unit="J/(K.m)") - "Thermal capacity per unit length of pipe"; - - parameter Real fac=1 - "Factor to take into account flow resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal"; - - - parameter Boolean from_dp=false - "= true, use m_flow = f(dp) else dp = f(m_flow)" - annotation (Evaluate=true, Dialog(tab="Advanced")); - parameter Modelica.Units.SI.Length thickness(min=0) "Pipe wall thickness"; - - parameter Modelica.Units.SI.Temperature T_start_in=Medium.T_default - "Initialization temperature at pipe inlet" - annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out=Medium.T_default - "Initialization temperature at pipe outlet" - annotation (Dialog(tab="Initialization")); - parameter Boolean initDelay=false - "Initialize delay for a constant mass flow rate if true, otherwise start from 0" - annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.MassFlowRate m_flow_start=0 - annotation (Dialog(tab="Initialization", enable=initDelay)); - - parameter Real ReC=4000 - "Reynolds number where transition to turbulent starts"; - - parameter Boolean linearized = false - "= true, use linear relation between m_flow and dp for any flow rate" - annotation(Evaluate=true, Dialog(tab="Advanced")); - - AixLib.Fluid.FixedResistances.HydraulicDiameter res( - redeclare final package Medium = Medium, - final dh=dh, - final m_flow_nominal=m_flow_nominal, - final from_dp=from_dp, - final length=length, - final roughness=roughness, - final fac=fac, - final ReC=ReC, - final v_nominal=v_nominal, - final allowFlowReversal=allowFlowReversal, - final show_T=false, - final homotopyInitialization=homotopyInitialization, - final linearized=linearized, - dp(nominal=fac*200*length)) - "Pressure drop calculation for this pipe" - annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); - - AixLib.Fluid.FixedResistances.BaseClasses.PlugFlow del( - redeclare final package Medium = Medium, - final m_flow_small=m_flow_small, - final dh=dh, - final length=length, - final allowFlowReversal=allowFlowReversal, - final T_start_in=T_start_in, - final T_start_out=T_start_out) - "Model for temperature wave propagation" - annotation (Placement(transformation(extent={{20,-10},{40,10}}))); - - AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowHeatLoss heaLos_a( - redeclare final package Medium = Medium, - final C=C, - final R=R, - final m_flow_small=m_flow_small, - final T_start=T_start_in, - final m_flow_nominal=m_flow_nominal, - final m_flow_start=m_flow_start, - final show_T=false, - final show_V_flow=false) "Heat loss for flow from port_b to port_a" - annotation (Placement(transformation(extent={{-60,-10},{-80,10}}))); - - AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowHeatLoss heaLos_b( - redeclare final package Medium = Medium, - final C=C, - final R=R, - final m_flow_small=m_flow_small, - final T_start=T_start_out, - final m_flow_nominal=m_flow_nominal, - final m_flow_start=m_flow_start, - final show_T=false, - final show_V_flow=false) "Heat loss for flow from port_a to port_b" - annotation (Placement(transformation(extent={{60,-10},{80,10}}))); - AixLib.Fluid.Sensors.MassFlowRate senMasFlo( - redeclare final package Medium = Medium) "Mass flow sensor" - annotation (Placement(transformation(extent={{-50,10},{-30,-10}}))); - AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowTransportDelay timDel( - final length=length, - final dh=dh, - final rho=rho_default, - final initDelay=initDelay, - final m_flow_nominal=m_flow_nominal, - final m_flow_start=m_flow_start) "Time delay" - annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); - Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPort - "Heat port to connect environment (positive heat flow for heat loss to surroundings)" - annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - -protected - parameter Modelica.Units.SI.Density rho_default=Medium.density_pTX( - p=Medium.p_default, - T=Medium.T_default, - X=Medium.X_default) - "Default density (e.g., rho_liquidWater = 995, rho_air = 1.2)" - annotation (Dialog(group="Advanced")); - -initial equation - assert(homotopyInitialization, "In " + getInstanceName() + - ": The constant homotopyInitialization has been modified from its default value. This constant will be removed in future releases.", - level = AssertionLevel.warning); - -equation - connect(senMasFlo.m_flow, timDel.m_flow) annotation (Line( - points={{-40,-11},{-40,-40},{-12,-40}}, - color={0,0,127}, - smooth=Smooth.None)); - connect(heaLos_a.heatPort, heatPort) annotation (Line(points={{-70,10},{-70,40}, - {0,40},{0,100}}, color={191,0,0})); - connect(heaLos_b.heatPort, heatPort) annotation (Line(points={{70,10},{70,40}, - {0,40},{0,100}}, color={191,0,0})); - - connect(timDel.tauRev, heaLos_a.tau) annotation (Line(points={{11,-36},{50,-36}, - {50,28},{-64,28},{-64,10}}, color={0,0,127})); - connect(timDel.tau, heaLos_b.tau) annotation (Line(points={{11,-44},{54,-44}, - {54,28},{64,28},{64,10}}, color={0,0,127})); - - connect(port_a, heaLos_a.port_b) - annotation (Line(points={{-100,0},{-80,0}}, color={0,127,255})); - connect(heaLos_a.port_a, senMasFlo.port_a) - annotation (Line(points={{-60,0},{-50,0}}, color={0,127,255})); - connect(heaLos_b.port_b, port_b) - annotation (Line(points={{80,0},{100,0}}, color={0,127,255})); - connect(del.port_a, res.port_b) - annotation (Line(points={{20,0},{0,0}}, color={0,127,255})); - connect(senMasFlo.port_b, res.port_a) - annotation (Line(points={{-30,0},{-20,0}}, color={0,127,255})); - connect(heaLos_b.port_a, del.port_b) - annotation (Line(points={{60,0},{40,0}}, color={0,127,255})); - annotation ( - Line(points={{70,20},{72,20},{72,0},{100,0}}, color={0,127,255}), - Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, - 100}})), - Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), - graphics={ - Rectangle( - extent={{-100,40},{100,-40}}, - lineColor={0,0,0}, - fillPattern=FillPattern.HorizontalCylinder, - fillColor={192,192,192}), - Rectangle( - extent={{-100,30},{100,-30}}, - lineColor={0,0,0}, - fillPattern=FillPattern.HorizontalCylinder, - fillColor={0,127,255}), - Rectangle( - extent={{-100,50},{100,40}}, - lineColor={175,175,175}, - fillColor={255,255,255}, - fillPattern=FillPattern.Backward), - Rectangle( - extent={{-100,-40},{100,-50}}, - lineColor={175,175,175}, - fillColor={255,255,255}, - fillPattern=FillPattern.Backward), - Polygon( - points={{0,100},{40,62},{20,62},{20,38},{-20,38},{-20,62},{-40,62},{0, - 100}}, - lineColor={0,0,0}, - fillColor={238,46,47}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{-30,30},{28,-30}}, - lineColor={0,0,0}, - fillPattern=FillPattern.HorizontalCylinder, - fillColor={215,202,187})}), - Documentation(revisions="
      -
    • April 14, 2020, by Michael Wetter:
      - Changed homotopyInitialization to a constant.
      - This is for AixLib, - #1341. -
    • -
    • October 20, 2017, by Michael Wetter:
      - Replaced model that lumps flow resistance and transport delays with - two separate models, as these are physically distinct processes. - This also avoids one more layer of models.
      - Revised variable names and documentation to follow guidelines. -
    • -
    • July 4, 2016 by Bram van der Heijde:
      - Introduce pipVol. -
    • -
    • October 10, 2015 by Marcus Fuchs:
      - Copy Icon from KUL implementation and rename model. Replace - resistance and temperature delay by an adiabatic pipe. -
    • -
    • September, 2015 by Marcus Fuchs:
      - First implementation. -
    • -
    -",info=" -

    - Pipe with heat loss using the time delay based heat losses and plug - flow for the transport delay of the fluid. -

    -

    - Implementation -

    -

    - The spatialDistribution operator is used for the - temperature wave propagation through the length of the pipe. This - operator is contained in BaseClasses.PlugFlow. -

    -

    - This model does not include thermal inertia of the pipe wall. The - wall inertia is implemented in PlugFlowPipe, - which uses this model.
    - The removal of the thermal inertia with a mixing volume can be - desirable in the case where mixing volumes are added manually at the - pipe junctions. -

    -

    - The model - PlugFlowHeatLoss implements a heat loss in design direction, but - leaves the enthalpy unchanged in opposite flow direction. Therefore - it is used in front of and behind the time delay. -

    -

    - References -

    -

    - Full details on the model implementation and experimental validation - can be found in: -

    -

    - van der Heijde, B., Fuchs, M., Ribas Tugores, C., Schweiger, G., - Sartor, K., Basciotti, D., Müller, D., Nytsch-Geusen, C., Wetter, M. - and Helsen, L. (2017).
    - Dynamic equation-based thermo-hydraulic pipe model for district - heating and cooling systems.
    - Energy Conversion and Management, vol. 151, p. 158-169. - doi: - 10.1016/j.enconman.2017.08.072 . -

    -")); -end PlugFlowCore; diff --git a/AixLib/Fluid/FixedResistances/BaseClasses/package.order b/AixLib/Fluid/FixedResistances/BaseClasses/package.order index 06493b07b5..3aabb3011a 100644 --- a/AixLib/Fluid/FixedResistances/BaseClasses/package.order +++ b/AixLib/Fluid/FixedResistances/BaseClasses/package.order @@ -2,4 +2,3 @@ PlugFlow PlugFlowHeatLoss PlugFlowPipe PlugFlowTransportDelay -PlugFlowCore From 11262a800758dc650f42f5eafce46dc27df9355c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannah=20Kr=C3=BCtzfeldt?= Date: Thu, 13 Oct 2022 16:23:39 +0200 Subject: [PATCH 18/44] Add each for OM compatibility in ROM [skip-ci] --- .../Multizone/BaseClasses/AirFlowRateSplit.mo | 4 +- .../Multizone/BaseClasses/PartialMultizone.mo | 40 +++++++++---------- .../ReducedOrder/Multizone/Multizone.mo | 12 +++--- .../Multizone/MultizoneEquipped.mo | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/AirFlowRateSplit.mo b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/AirFlowRateSplit.mo index 86a6e00d4d..6ed5652791 100644 --- a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/AirFlowRateSplit.mo +++ b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/AirFlowRateSplit.mo @@ -23,8 +23,8 @@ block AirFlowRateSplit "VolumeFlowRate", final unit="m3/s") "Aggregated air flow rate" annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), iconTransformation(extent={{-140,-20},{-100,20}}))); - Modelica.Blocks.Interfaces.RealOutput airFlowOut[dimension](final quantity= - "VolumeFlowRate", final unit="1/h") "Splitted air flow rate" + Modelica.Blocks.Interfaces.RealOutput airFlowOut[dimension](each final quantity= + "VolumeFlowRate", each final unit="1/h") "Splitted air flow rate" annotation (Placement(transformation(extent={{100,-20},{140,20}}), iconTransformation(extent={{100,-20},{140,20}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/PartialMultizone.mo b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/PartialMultizone.mo index fd691ea0f2..91e69cfea0 100644 --- a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/PartialMultizone.mo +++ b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/PartialMultizone.mo @@ -55,16 +55,16 @@ partial model PartialMultizone "Partial model for multizone models" rotation=90, origin={60,-110}))); Modelica.Blocks.Interfaces.RealOutput TAir[size(zone, 1)]( - final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit="degC") if ASurTot > 0 or VAir > 0 + each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit="degC") if ASurTot > 0 or VAir > 0 "Indoor air temperature" annotation (Placement(transformation(extent={{100,71},{120,91}}), iconTransformation(extent={{80,19},{100,40}}))); Modelica.Blocks.Interfaces.RealOutput TRad[size(zone, 1)]( - final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit="degC") if ASurTot > 0 + each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit="degC") if ASurTot > 0 "Mean indoor radiation temperature" annotation (Placement(transformation(extent={{100,49},{120,69}}), iconTransformation(extent={{80,0},{100,20}}))); @@ -149,10 +149,10 @@ partial model PartialMultizone "Partial model for multizone models" enable=not recOrSep)); Modelica.Blocks.Interfaces.RealInput TSetHeat[numZones]( - final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit="degC", - min=0) "Set point for heater - used only if zoneParam[i].HeaterOn is true" + each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit="degC", + each min=0) "Set point for heater - used only if zoneParam[i].HeaterOn is true" annotation (Placement(transformation( extent={{20,-20},{-20,20}}, rotation=270, @@ -161,10 +161,10 @@ partial model PartialMultizone "Partial model for multizone models" rotation=270, origin={-52,-110}))); Modelica.Blocks.Interfaces.RealInput TSetCool[numZones]( - final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit="degC", - min=0) "Set point for cooler - used only if zoneParam[i].CoolerOn is true" + each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit="degC", + each min=0) "Set point for cooler - used only if zoneParam[i].CoolerOn is true" annotation (Placement(transformation( extent={{20,-20},{-20,20}}, rotation=270, @@ -172,20 +172,20 @@ partial model PartialMultizone "Partial model for multizone models" extent={{10,-10},{-10,10}}, rotation=270, origin={-74,-110}))); - Modelica.Blocks.Interfaces.RealOutput PHeater[numZones](final quantity="HeatFlowRate", - final unit="W") + Modelica.Blocks.Interfaces.RealOutput PHeater[numZones](each final quantity="HeatFlowRate", + each final unit="W") "Power for heating" annotation ( Placement(transformation(extent={{100,-56},{120,-36}}), iconTransformation(extent={{80,-80},{100,-60}}))); - Modelica.Blocks.Interfaces.RealOutput PCooler[numZones](final quantity="HeatFlowRate", - final unit="W") + Modelica.Blocks.Interfaces.RealOutput PCooler[numZones](each final quantity="HeatFlowRate", + each final unit="W") "Power for cooling" annotation ( Placement(transformation(extent={{100,-70},{120,-50}}),iconTransformation( extent={{80,-100},{100,-80}}))); - Modelica.Blocks.Interfaces.RealOutput QIntGains_flow[numZones,3](final - quantity="HeatFlowRate", final unit="W") if ASurTot > 0 or VAir > 0 + Modelica.Blocks.Interfaces.RealOutput QIntGains_flow[numZones,3](each final + quantity="HeatFlowRate", each final unit="W") if ASurTot > 0 or VAir > 0 "Heat flow based on internal gains for each zone from persons, machines, and light" annotation (Placement(transformation(extent={{100,-90},{ 120,-70}}), iconTransformation(extent={{80,-100},{100,-80}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Multizone/Multizone.mo b/AixLib/ThermalZones/ReducedOrder/Multizone/Multizone.mo index 85e207d39e..2efa4672da 100644 --- a/AixLib/ThermalZones/ReducedOrder/Multizone/Multizone.mo +++ b/AixLib/ThermalZones/ReducedOrder/Multizone/Multizone.mo @@ -6,18 +6,18 @@ model Multizone Modelica.Blocks.Interfaces.RealInput ventTemp[numZones]( - final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit="degC", - min=0) + each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit="degC", + each min=0) "Ventilation and infiltration temperature" annotation (Placement(transformation(extent={{-120,-12},{-80,28}}), iconTransformation( extent={{-10,-10},{10,10}}, rotation=0, origin={-90,0}))); - Modelica.Blocks.Interfaces.RealInput ventRate[numZones](final - quantity="VolumeFlowRate", final unit="1/h") + Modelica.Blocks.Interfaces.RealInput ventRate[numZones]( + each final quantity="VolumeFlowRate", each final unit="1/h") "Ventilation and infiltration rate" annotation (Placement(transformation(extent={{-120,-40},{-80,0}}), iconTransformation(extent={{-100,-36},{-80,-16}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Multizone/MultizoneEquipped.mo b/AixLib/ThermalZones/ReducedOrder/Multizone/MultizoneEquipped.mo index 399c7c0c19..76f398a74f 100644 --- a/AixLib/ThermalZones/ReducedOrder/Multizone/MultizoneEquipped.mo +++ b/AixLib/ThermalZones/ReducedOrder/Multizone/MultizoneEquipped.mo @@ -114,7 +114,7 @@ model MultizoneEquipped "CO2 concentration in the thermal zone in ppm" annotation (Placement(transformation(extent={{100,10},{120,30}}))); protected - parameter Real zoneFactor[numZones,1](fixed=false) + parameter Real zoneFactor[numZones,1](each fixed=false) "Calculated zone factors"; parameter Real VAirRes(fixed=false) "Resulting air volume in zones supplied by the AHU"; From 3d102edc260bf9c1dffda83021ccf40ed3792911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannah=20Kr=C3=BCtzfeldt?= Date: Thu, 13 Oct 2022 16:34:47 +0200 Subject: [PATCH 19/44] add each [skip-ci] --- .../BaseClasses/MultizonePostProcessing.mo | 38 +++++++++---------- .../SelfShadowing/SelfShadowingTestLeft.mo | 4 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo index 199ae74ebc..46916e911e 100644 --- a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo +++ b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo @@ -2,7 +2,7 @@ model MultizonePostProcessing "Calculates and outputs values of interest for multizone model" parameter Modelica.Units.SI.Volume VAir "Indoor air volume of building"; - parameter Integer numZones(min=1) + parameter Integer numZones(min=1)=1 "Number of zones"; parameter AixLib.DataBase.ThermalZones.ZoneBaseRecord zoneParam[numZones] "Setup for zones" annotation (choicesAllMatching=false); @@ -26,31 +26,31 @@ model MultizonePostProcessing "Average temperature of all zones" annotation (Placement(transformation(extent={{58,88},{74,104}}))); - Modelica.Blocks.Interfaces.RealInput TAir[numZones](final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit= "°C") "Air temperature of each zone" + Modelica.Blocks.Interfaces.RealInput TAir[numZones](each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit= "degC") "Air temperature of each zone" annotation (Placement(transformation(extent={{-140,80}, {-100,120}}), iconTransformation(extent={{-140,80},{-100,120}}))); Modelica.Blocks.Interfaces.RealInput TRad[numZones]( - final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit="°C") "Radiative temperature of each zone" + each final quantity="ThermodynamicTemperature", + each final unit="K", + each displayUnit="degC") "Radiative temperature of each zone" annotation (Placement(transformation(extent={{-140,56}, {-100,96}}), iconTransformation(extent={{-140,56},{-100, 96}}))); Modelica.Blocks.Interfaces.RealInput X_w[numZones]( - final quantity="MassFraction", - final unit="1") if calc_rel_humidity + each final quantity="MassFraction", + each final unit="1") if calc_rel_humidity "Absolute humidity in thermal zone" annotation ( Placement(transformation(extent={{-140,28},{-100,68}}), iconTransformation(extent={{-140,22},{-100,62}}))); - Modelica.Blocks.Interfaces.RealInput PCooler[numZones](final quantity="HeatFlowRate", - final unit="W") + Modelica.Blocks.Interfaces.RealInput PCooler[numZones](each final quantity="HeatFlowRate", + each final unit="W") "Power consumed for cooling with ideal coolers by each zone" annotation ( Placement(transformation(extent={{-140,-34},{-100,6}}), iconTransformation(extent={{-140,-34},{-100,6}}))); - Modelica.Blocks.Interfaces.RealInput PHeater[numZones](final quantity="HeatFlowRate", - final unit="W") + Modelica.Blocks.Interfaces.RealInput PHeater[numZones](each final quantity="HeatFlowRate", + each final unit="W") "Power consumed for heating ling with ideal heaters by each zone" annotation (Placement(transformation(extent={{-140,-6},{-100,34}}), iconTransformation(extent={{-140,-6},{-100,34}}))); @@ -145,7 +145,7 @@ model MultizonePostProcessing Utilities.Psychrometrics.Phi_pTX calcPhi[numZones] if calc_rel_humidity "Calculates relative humdity" annotation (Placement(transformation(extent={{-22,32},{-2,52}}))); - Modelica.Blocks.Sources.Constant constPressure[numZones](k=PAirConstant) + Modelica.Blocks.Sources.Constant constPressure[numZones](each k=PAirConstant) if calc_rel_humidity annotation (Placement(transformation(extent={{-78,20},{-62,36}}))); Modelica.Blocks.Interfaces.RealOutput TOperativeMean( @@ -169,14 +169,14 @@ model MultizonePostProcessing "Average relative humidity of all zones" annotation (Placement(transformation(extent={{58,48},{74,64}}))); Modelica.Blocks.Interfaces.RealOutput QIntGains[numZones,3]( - final quantity="Energy", - final unit="J", - displayUnit="kWh") + each final quantity="Energy", + each final unit="J", + each displayUnit="kWh") "Heat gains based on internal gains for each zone from persons, machines, and light" annotation (Placement(transformation(extent={{100,-122},{120,-102}}), iconTransformation(extent={{100,-130},{120,-110}}))); - Modelica.Blocks.Interfaces.RealInput QIntGains_flow[numZones,3](final - quantity="HeatFlowRate", final unit="W") + Modelica.Blocks.Interfaces.RealInput QIntGains_flow[numZones,3](each final + quantity="HeatFlowRate", each final unit="W") "Heat flow based on internal gains for each zone from persons, machines, and light" annotation ( Placement(transformation(extent={{-140,-140},{-100,-100}}), diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo index ca4e8308e0..1ed442b3c6 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo @@ -12,8 +12,8 @@ model SelfShadowingTestLeft final bBel={0}, final dAbo={0}, final dBel={0}, - final azi(displayUnit="deg") = {0}, - final til(displayUnit="deg") = {1.5707963267949}, + final azi= {0}, + final til= {1.5707963267949}, final bLef={1}, final dLef={0.01}) "Shadowing due to a projection on the left-hand side of the window" From da7782b47b6f9d70ccea68311db4b5c0f1d18388 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 13 Oct 2022 16:57:42 +0200 Subject: [PATCH 20/44] Add review changes, increase version number --- .../DistrictHeatingCooling/Pipes/DHCPipe.mo | 24 +++++++++---------- .../Pipes/Examples/StaticPipe.mo | 2 +- .../ConvertAixLib_from_1.3.1_to_1.3.2.mos | 6 +++++ AixLib/package.mo | 4 +++- 4 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.3.1_to_1.3.2.mos diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo index 31ffec7140..9020ff1026 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo @@ -124,15 +124,15 @@ model DHCPipe "Generic pipe model for DHC applications" "Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)" annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - replaceable AixLib.Fluid.FixedResistances.PlugFlowPipe pipCor( + replaceable AixLib.Fluid.FixedResistances.PlugFlowPipe floPip( redeclare final package Medium = Medium, final dh=dh, final v_nominal=v_nominal, final length=length, - dIns=dIns, - kIns=kIns, - cPip=cPip, - rhoPip=rhoPip, + final dIns=dIns, + final kIns=kIns, + final cPip=cPip, + final rhoPip=rhoPip, final R=R, final m_flow_small=m_flow_small, final m_flow_nominal=m_flow_nominal, @@ -263,16 +263,16 @@ equation v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); //calculation of heat losses and heat gains of pipe - der(Q_los) = min(0, pipCor.heatPort.Q_flow); - der(Q_gai) = max(0, pipCor.heatPort.Q_flow); + der(Q_los) = min(0,floPip.heatPort.Q_flow); + der(Q_gai) = max(0,floPip.heatPort.Q_flow); connect(vol.ports[2], port_b) annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - connect(pipCor.port_b, vol.ports[1]) + connect(floPip.port_b, vol.ports[1]) annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); - connect(pipCor.heatPort, cylHeaTra1.port_a) + connect(floPip.heatPort, cylHeaTra1.port_a) annotation (Line(points={{0,10},{0,30}}, color={191,0,0}, pattern=LinePattern.Dash)); connect(cylHeaTra1.port_b, cylHeaTra2.port_a) @@ -284,7 +284,7 @@ equation connect(cylHeaTra3.port_b, heatPort) annotation (Line(points={{0,90.8},{0,90.8},{0,100}}, color={191,0,0}, pattern=LinePattern.Dash)); - connect(pipCor.heatPort, thePasThr.port_a[1]) annotation (Line(points={{0,10}, + connect(floPip.heatPort, thePasThr.port_a[1]) annotation (Line(points={{0,10}, {0,20},{-16,20},{-16,44}}, color={191,0,0}, pattern=LinePattern.Dash)); connect(thePasThr.port_b, heatPort) annotation (Line(points={{-16,64},{-16,94}, @@ -294,7 +294,7 @@ equation points={{-100,0},{-80,0},{-80,20},{-60,20}}, color={0,127,255}, pattern=LinePattern.Dash)); - connect(hydRes.port_b, pipCor.port_a) annotation (Line( + connect(hydRes.port_b,floPip. port_a) annotation (Line( points={{-40,20},{-20,20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); @@ -304,7 +304,7 @@ equation points={{-100,0},{-80,0},{-80,-20},{-60,-20}}, color={0,127,255}, pattern=LinePattern.Dash)); - connect(pasThrMed.port_b, pipCor.port_a) annotation (Line( + connect(pasThrMed.port_b,floPip. port_a) annotation (Line( points={{-40,-20},{-20,-20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo index e772517988..2ba6eae122 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo @@ -11,7 +11,7 @@ model StaticPipe "Simple example of StaticPipe" annotation (Placement(transformation(extent={{-92,-6},{-72,14}}))); Sources.Boundary_pT sin( redeclare package Medium = Medium, - T=323.15, + T=273.15 + 10, nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); diff --git a/AixLib/Resources/Scripts/ConvertAixLib_from_1.3.1_to_1.3.2.mos b/AixLib/Resources/Scripts/ConvertAixLib_from_1.3.1_to_1.3.2.mos new file mode 100644 index 0000000000..ce7e7e4d13 --- /dev/null +++ b/AixLib/Resources/Scripts/ConvertAixLib_from_1.3.1_to_1.3.2.mos @@ -0,0 +1,6 @@ +clear + +convertClear(); + +// add the parameters heaLoadFacOut and heaLoadFacGrd for dynamic heat load calculation with dummy values of zero +convertElement("AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe", "pipCor", "floPip"); \ No newline at end of file diff --git a/AixLib/package.mo b/AixLib/package.mo index c7eba614c7..9cb5206d9f 100644 --- a/AixLib/package.mo +++ b/AixLib/package.mo @@ -89,7 +89,9 @@ package AixLib version="1.2.1", script="modelica://AixLib/Resources/Scripts/ConvertAixLib_from_1.2.1_to_1.2.2.mos", version="1.3.0", - script="modelica://AixLib/Resources/Scripts/ConvertAixLib_from_1.3.0_to_1.3.1.mos") + script="modelica://AixLib/Resources/Scripts/ConvertAixLib_from_1.3.0_to_1.3.1.mos", + version="1.3.1", + script="modelica://AixLib/Resources/Scripts/ConvertAixLib_from_1.3.1_to_1.3.2.mos") ), Documentation(info = "

    The free open-source AixLib library is being developed From 279f41d5fe1fcb89764dbc89a7b59a5d7b0603d3 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Thu, 13 Oct 2022 17:08:57 +0200 Subject: [PATCH 21/44] git commit -m "ci_update_ref --- .../PumpHeadControlled.mo | 30 +++++++------ bin/interact_CI/update_ref.txt | 43 ++----------------- 2 files changed, 20 insertions(+), 53 deletions(-) diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo index 792d27c6e4..9a1e9dbfbc 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo @@ -136,10 +136,10 @@ protected annotation (Placement(transformation(extent={{-71,-76},{-51,-56}}))); Modelica.Blocks.Continuous.CriticalDamping criticalDamping( - f=1/5, initType=Modelica.Blocks.Types.Init.InitialOutput, n = 1,y_start=Hstart) annotation (Placement(transformation(extent={{50,-20},{70,0}}))); + public Modelica.Blocks.Logical.Switch onOff annotation (Placement(transformation(extent={{48,10},{68,30}}))); @@ -222,23 +222,23 @@ equation color={0,0,127}, smooth=Smooth.None)); - connect(pumpPower.y, pumpBus.PelMea) annotation (Line(points={{-79,76},{-66, - 76},{-66,93},{0.5975,93},{0.5975,100.597}}, color={0,0,127}), Text( + connect(pumpPower.y, pumpBus.PelMea) annotation (Line(points={{-79,76},{-66,76},{-66,93},{0.5975,93},{0.5975,100.597}}, + color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(pumpHead.y, pumpBus.dpMea) annotation (Line(points={{94,-10},{95,-10}, - {95,90},{0.5975,90},{0.5975,100.597}},color={0,0,127}), Text( + connect(pumpHead.y, pumpBus.dpMea) annotation (Line(points={{94,-10},{95,-10},{95,90},{0.5975,90},{0.5975,100.597}}, + color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(pumpEfficiency.y, pumpBus.efficiencyMea) annotation (Line(points={{-79,60}, - {-62,60},{-62,100.597},{0.5975,100.597}}, color={0,0,127}), Text( + connect(pumpEfficiency.y, pumpBus.efficiencyMea) annotation (Line(points={{-79,60},{-62,60},{-62,100.597},{0.5975,100.597}}, + color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(onOff.u2, pumpBus.onSet) annotation (Line(points={{46,20},{38,20},{38, - 100.597},{0.5975,100.597}}, color={255,0,255}), Text( + connect(onOff.u2, pumpBus.onSet) annotation (Line(points={{46,20},{38,20},{38,100.597},{0.5975,100.597}}, + color={255,0,255}), Text( string="%second", index=1, extent={{6,3},{6,3}})); @@ -254,14 +254,14 @@ equation index=1, extent={{6,3},{6,3}})); - connect(variableLimiter.u, pumpBus.dpSet) annotation (Line(points={{-12,20},{ - -19,20},{-19,100.597},{0.5975,100.597}}, color={0,0,127}), Text( + connect(variableLimiter.u, pumpBus.dpSet) annotation (Line(points={{-12,20},{-19,20},{-19,100.597},{0.5975,100.597}}, + color={0,0,127}), Text( string="%second", index=1, extent={{-6,3},{-6,3}}, horizontalAlignment=TextAlignment.Right)); - connect(realExpression.y, pumpBus.rpmMea) annotation (Line(points={{30,44},{ - 30,100.597},{0.5975,100.597}}, color={0,0,127}), Text( + connect(realExpression.y, pumpBus.rpmMea) annotation (Line(points={{30,44},{30,100.597},{0.5975,100.597}}, + color={0,0,127}), Text( string="%second", index=1, extent={{-3,6},{-3,6}}, @@ -430,7 +430,11 @@ equation Describe whether the validation was done using analytical validation, comparative model validation or empirical validation.

    +", revisions="
      +
    • 2022-10-13 by Martin Kremer:
      + Changed extrapolation in look-up table to 'hold last point'. Changed filter to first order. +
    • 2019-09-18 by Alexander Kümpel:
      Renaming, restructuring and bug fixes.
    • diff --git a/bin/interact_CI/update_ref.txt b/bin/interact_CI/update_ref.txt index d0ffc3c37a..8f955784cd 100644 --- a/bin/interact_CI/update_ref.txt +++ b/bin/interact_CI/update_ref.txt @@ -1,40 +1,3 @@ -AixLib_Airflow_Multizone_Examples_ReverseBuoyancy.txt -AixLib_Airflow_Multizone_Examples_PressurizationData.txt -AixLib_Airflow_Multizone_Examples_OneOpenDoor.txt -AixLib_Controls_Continuous_Examples_LimPIDWithReset.txt -AixLib_Fluid_Examples_SimpleHouse.txt -AixLib_Fluid_Examples_FlowSystem_Simplified1.txt -AixLib_Fluid_Movers_Validation_ControlledFlowMachineDynamic.txt -AixLib_Fluid_FMI_Adaptors_Examples_ThermalZoneHVACNoExhaust.txt -AixLib_Fluid_DistrictHeatingCooling_Pipes_Examples_DHCPipe.txt -AixLib_Fluid_FixedResistances_Validation_PlugFlowPipes_MSLAIT2Nodes.txt -AixLib_Fluid_FixedResistances_Validation_PlugFlowPipes_MSLAIT.txt -AixLib_Fluid_FixedResistances_Validation_PlugFlowPipes_PlugFlowAIT.txt -AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomThreeElements.txt -AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomTwoElements.txt -AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomFourElements.txt -AixLib_ThermalZones_ReducedOrder_Validation_VDI6007_TestCase11.txt -AixLib_ThermalZones_ReducedOrder_Validation_VDI6007_TestCase7.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case940.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case620.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case400.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case920.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case410.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case320.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case600.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case810.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case800.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case280.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case650.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case210.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case440.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case250.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case300.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case230.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case900.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case270.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case640.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case420.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case220.txt -AixLib_ThermalZones_HighOrder_Validation_ASHRAE140_Case950.txt -AixLib_Fluid_Storage_Validation_HeatExchangerDynamics.txt \ No newline at end of file +AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt +AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt +AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt \ No newline at end of file From 4f479653ab6326f6d5c617a3f947366065acb38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannah=20Kr=C3=BCtzfeldt?= Date: Thu, 13 Oct 2022 17:28:10 +0200 Subject: [PATCH 22/44] revert AHU changes [skip-ci] --- AixLib/Airflow/AirHandlingUnit/AHU.mo | 61 +++++++++++++-------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/AixLib/Airflow/AirHandlingUnit/AHU.mo b/AixLib/Airflow/AirHandlingUnit/AHU.mo index 4db55597df..993f7d5ab1 100644 --- a/AixLib/Airflow/AirHandlingUnit/AHU.mo +++ b/AixLib/Airflow/AirHandlingUnit/AHU.mo @@ -112,9 +112,6 @@ model AHU block StartState outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; - initial equation - Q_dot_C = 1e-3; - Q_dot_H = 1e-3; equation Q_dot_C = previous(Q_dot_C); @@ -134,22 +131,6 @@ model AHU singleInstance=true); end StartState; - block StateExtra - - annotation ( - Icon(graphics={Text( - extent={{-100,100},{100,-100}}, - lineColor={0,0,0}, - textString="%name")}), - Diagram(graphics={Text( - extent={{-100,100},{100,-100}}, - lineColor={0,0,0}, - textString="%stateName", - fontSize=10)}), - __Dymola_state=true, - showDiagram=true, - singleInstance=true); - end StateExtra; StartState startState annotation (Placement(transformation(extent={{-82,-24},{-62,-4}}))); @@ -839,25 +820,25 @@ equation stateToOnlyHeatingHRS_true = if choiceX and - (previous(T_5) >= previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) + (previous(T_5) >= pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) and heating and HRS then true else false; stateToOnlyHeatingHRS_false = if choiceX and - (previous(T_5) >= previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) + (previous(T_5) >= pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) and heating and not HRS then true else false; stateToOnlyCoolingHRS_true = if choiceX and - (previous(T_5) < previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) + (previous(T_5) < pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) and cooling and HRS then true else false; stateToOnlyCoolingHRS_false = if choiceX and - (previous(T_5) < previous(T_oda) + phi_t_withoutHRS*(previous(T_6) - previous(T_oda))) + (previous(T_5) < pre(T_oda) + phi_t_withoutHRS*(pre(T_6) - pre(T_oda))) and cooling and not HRS then true else false; X_supplyMin = (molarMassRatio*phi_supplyAir[1]* @@ -1299,25 +1280,43 @@ equation //stateToHuCHRS_false==false, connect(T_outdoorAir, sample.u[1]) annotation (Line(points={{-100,56},{-100, - 56},{-66.8889,56},{-66.8889,26}}, + 56},{-67.7778,56},{-67.7778,26}}, color={0,0,127})); connect(X_outdoorAir, sample.u[2]) annotation (Line(points={{-100,36},{-100, - 36},{-66.6667,36},{-66.6667,26}}, + 36},{-67.3333,36},{-67.3333,26}}, color={0,0,127})); connect(T_supplyAir, sample.u[3]) annotation (Line(points={{100,36},{100,42}, - {-66.4444,42},{-66.4444,26}}, + {-66.8889,42},{-66.8889,26}}, color={0,0,127})); connect(T_extractAir, sample.u[4]) annotation (Line(points={{100,78},{-60,78}, - {-60,60},{-66.2222,60},{-66.2222,26}}, + {-60,60},{-66.4444,60},{-66.4444,26}}, color={0,0,127})); - connect(Vflow_in, sample.u[8]) annotation (Line(points={{-100,82},{-65.3333, - 82},{-65.3333,26}}, + connect(Vflow_in, sample.u[8]) annotation (Line(points={{-100,82},{-64.6667, + 82},{-64.6667,26}}, color={0,0,127})); connect(Vflow_in_extractAir_internal, sample.u[9]); connect(hold_phi_sup.y, phi_supply) annotation (Line(points={{79,9},{99,9},{99, 5}}, color={0,0,127})); connect(TsupAirOut.y, T_supplyAirOut) annotation (Line(points={{79,57},{99,57}, {99,49}}, color={0,0,127})); +public + block StateExtra + + annotation ( + Icon(graphics={Text( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + textString="%name")}), + Diagram(graphics={Text( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + textString="%stateName", + fontSize=10)}), + __Dymola_state=true, + showDiagram=true, + singleInstance=true); + end StateExtra; +equation transition( startState, stateExtra,Q_dot_C > 0 and Q_dot_H > 0, @@ -1492,11 +1491,11 @@ equation
    • [2] Khurmi, R. S.; Gupta, J. K. (2009): Textbook of Refrigeration and Air Conditioning. 4th ed. New Delhi: Eurasia. (682 pages). ISBN - 9788121927819. + 9788121927819 [Titel anhand dieser ISBN in Citavi-Projekt übernehmen] .
    • [3] Lindeburg, M. R. (2013): Mechanical Engineering Reference Manual for the PE Exam. 13th ed. Belmont: Professional Publications, - Inc. (1488 pages). ISBN 9781591264149. + Inc. (1488 pages). ISBN 9781591264149 [Titel anhand dieser ISBN in Citavi-Projekt übernehmen] .
    • [4] Verein Deutscher Ingenieure e. V.: VDI 2071:1997-12: Wärmerückgewinnung in Raumlufttechnischen Anlagen. Richtlinie. From 9b15d83ed7c3d895a93043faecf4c7851bcb1f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannah=20Kr=C3=BCtzfeldt?= Date: Thu, 13 Oct 2022 17:38:11 +0200 Subject: [PATCH 23/44] Delete Citavi invasion [skip-ci] --- AixLib/Airflow/AirHandlingUnit/AHU.mo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AixLib/Airflow/AirHandlingUnit/AHU.mo b/AixLib/Airflow/AirHandlingUnit/AHU.mo index 993f7d5ab1..d496fd4c40 100644 --- a/AixLib/Airflow/AirHandlingUnit/AHU.mo +++ b/AixLib/Airflow/AirHandlingUnit/AHU.mo @@ -1491,11 +1491,11 @@ equation
    • [2] Khurmi, R. S.; Gupta, J. K. (2009): Textbook of Refrigeration and Air Conditioning. 4th ed. New Delhi: Eurasia. (682 pages). ISBN - 9788121927819 [Titel anhand dieser ISBN in Citavi-Projekt übernehmen] . + 9788121927819.
    • [3] Lindeburg, M. R. (2013): Mechanical Engineering Reference Manual for the PE Exam. 13th ed. Belmont: Professional Publications, - Inc. (1488 pages). ISBN 9781591264149 [Titel anhand dieser ISBN in Citavi-Projekt übernehmen] . + Inc. (1488 pages). ISBN 9781591264149.
    • [4] Verein Deutscher Ingenieure e. V.: VDI 2071:1997-12: Wärmerückgewinnung in Raumlufttechnischen Anlagen. Richtlinie. From 87e32cb1a89062f4197be43da3d67c254fc47108 Mon Sep 17 00:00:00 2001 From: ebc-aixlib-bot Date: Thu, 13 Oct 2022 17:37:13 +0000 Subject: [PATCH 24/44] Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue1346_HydraulicModulesOM/plots/ --- ...ers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt | 6 +++--- ...rs_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt | 2 +- ...PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt index d9f45a4940..76bc090fd3 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt @@ -1,4 +1,4 @@ -last-generated=2021-07-20 +last-generated=2022-10-13 statistics-initialization= { "nonlinear": "1", @@ -8,11 +8,11 @@ statistics-simulation= { "linear": " ", "nonlinear": "0", - "number of continuous time states": "4", + "number of continuous time states": "3", "numerical Jacobians": "0" } time=[0e+00, 6e+02] rampValvePosition.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.249999761581421e-01, 5.50000011920929e-01, 5.74999988079071e-01, 6.000000238418579e-01, 6.25e-01, 6.499999761581421e-01, 6.75000011920929e-01, 6.999999880790712e-01, 7.250000238418579e-01, 7.5e-01, 7.749999761581421e-01, 8.00000011920929e-01, 8.24999988079071e-01, 8.50000023841858e-01, 8.75e-01, 8.999999761581421e-01, 9.25000011920929e-01, 9.49999988079071e-01, 9.750000238418579e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] -pump.pumpBus.dpMea=[3.813213109970093e+00, 2.000015497207642e+00, 1.99999988079071e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.020731210708619e+00, 2.139513731002808e+00, 2.259513854980469e+00, 2.379513740539551e+00, 2.499513864517212e+00, 2.619513750076294e+00, 2.739513874053955e+00, 2.859513759613037e+00, 2.979513645172119e+00, 3.09951376914978e+00, 3.219513654708862e+00, 3.339513778686524e+00, 3.459513664245605e+00, 3.579513788223267e+00, 3.699513673782349e+00, 3.81951379776001e+00, 3.939513683319092e+00, 3.999957799911499e+00, 3.999999761581421e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 1.429434213787317e-02, 1.872007828751521e-07, -1.488145162653609e-08, -1.61492486050463e-09, -2.688640698966793e-10, -8.969994885754673e-11, -5.230772412434526e-11, -1.491550286059073e-11, -3.040396710438098e-12, -2.515976142702936e-12, -1.991555574967774e-12, -1.467135007232612e-12, -9.427144394974496e-13, -4.182938175521789e-13, -4.170324702972364e-14, -2.175307155271363e-14, -1.802895016912438e-15] +pump.pumpBus.dpMea=[3.813213109970093e+00, 2.000964641571045e+00, 2.000000715255737e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.025371551513672e+00, 2.144084692001343e+00, 2.264084577560425e+00, 2.384084463119507e+00, 2.504084587097168e+00, 2.62408447265625e+00, 2.744084596633911e+00, 2.864084482192993e+00, 2.984084606170654e+00, 3.104084491729736e+00, 3.224084615707397e+00, 3.34408450126648e+00, 3.464084386825562e+00, 3.584084510803223e+00, 3.704084396362305e+00, 3.824084520339966e+00, 3.944084405899048e+00, 3.999897718429565e+00, 3.999999761581421e+00, 3.999999761581421e+00, 3.999999761581421e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2.624639682471752e-02, 1.412647270626621e-05, -3.105893142674176e-08, -2.90326007679198e-09, -4.745635551195448e-10, -8.935204659499263e-11, -3.792053129836326e-11, -2.329843262760534e-11, -8.676334824209153e-12, -1.786767348660456e-12, -1.503881004102925e-12, -1.220994767965611e-12, -9.381084234080794e-13, -6.552220246404394e-13, -3.723357071879624e-13, -8.94493694066946e-14, -5.243219493831792e-15] pump.pumpBus.dpSet=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.039999961853028e+00, 2.160000085830688e+00, 2.279999971389771e+00, 2.400000095367432e+00, 2.519999980926514e+00, 2.640000104904175e+00, 2.759999990463257e+00, 2.880000114440918e+00, 3e+00, 3.119999885559082e+00, 3.240000009536743e+00, 3.359999895095826e+00, 3.480000019073486e+00, 3.599999904632568e+00, 3.720000028610229e+00, 3.839999914169312e+00, 3.960000038146973e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00] pump.pumpBus.onSet=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt index b1dccfc937..ccdd167b70 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt @@ -1,4 +1,4 @@ -last-generated=2022-05-23 +last-generated=2022-10-13 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt index 34bd4bf893..5ed35f3c41 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt @@ -1,4 +1,4 @@ -last-generated=2022-05-23 +last-generated=2022-10-13 statistics-initialization= { "nonlinear": "1", From 9eb42ba2d102625d60d6fe17fed69499ac09ca80 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 14 Oct 2022 08:28:44 +0200 Subject: [PATCH 25/44] pretty-indent and ci_update_ref --- .../PumpsPolynomialBased/PumpHeadControlled.mo | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo index 9a1e9dbfbc..65a27b6656 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo @@ -1,12 +1,8 @@ within AixLib.Fluid.Movers.PumpsPolynomialBased; model PumpHeadControlled "Pump model with pump head control, an onOff-Switch and limitation of pump head." - - extends AixLib.Fluid.Interfaces.PartialTwoPortInterface; - - parameter AixLib.DataBase.Pumps.PumpPolynomialBased.PumpBaseRecord pumpParam= AixLib.DataBase.Pumps.PumpPolynomialBased.PumpBaseRecord() "pump parameter record" annotation (choicesAllMatching=true); @@ -135,9 +131,12 @@ protected "implements a connectable object that can be cuppled with pumpBus." annotation (Placement(transformation(extent={{-71,-76},{-51,-56}}))); Modelica.Blocks.Continuous.CriticalDamping - criticalDamping( - f=1/5, - initType=Modelica.Blocks.Types.Init.InitialOutput, n = 1,y_start=Hstart) + criticalDamping( + f=1/5, + initType=Modelica.Blocks.Types.Init.InitialOutput, + n = 1, + y_start=Hstart + ) annotation (Placement(transformation(extent={{50,-20},{70,0}}))); public From 17142b28db4cde8b84b231441dd790a721ff25e9 Mon Sep 17 00:00:00 2001 From: ebc-aixlib-bot Date: Fri, 14 Oct 2022 06:30:04 +0000 Subject: [PATCH 26/44] Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue1346_HydraulicModulesOM/plots/ --- ..._Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt | 2 +- ...Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt | 2 +- ...ers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt index 76bc090fd3..6bcbec1f7e 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt @@ -1,4 +1,4 @@ -last-generated=2022-10-13 +last-generated=2022-10-14 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt index ccdd167b70..e7ec5c0cda 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt @@ -1,4 +1,4 @@ -last-generated=2022-10-13 +last-generated=2022-10-14 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt index 5ed35f3c41..f9a3ccf013 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt @@ -1,4 +1,4 @@ -last-generated=2022-10-13 +last-generated=2022-10-14 statistics-initialization= { "nonlinear": "1", From 736ec14955348c6cd3dbfbcd91cc5128f115db8c Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 14 Oct 2022 08:31:18 +0200 Subject: [PATCH 27/44] really update ref: ci_update_ref --- bin/interact_CI/update_ref.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bin/interact_CI/update_ref.txt b/bin/interact_CI/update_ref.txt index 8f955784cd..024c85ed27 100644 --- a/bin/interact_CI/update_ref.txt +++ b/bin/interact_CI/update_ref.txt @@ -1,3 +1 @@ -AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt -AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt -AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt \ No newline at end of file +AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt \ No newline at end of file From bf89f56d3d45578212958e8d54bff9627399ed12 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 14 Oct 2022 09:42:42 +0200 Subject: [PATCH 28/44] Apply review from lma ci_update_ref --- .../Pipes/PlugFlowPipeZeta.mo | 14 +++++++------- .../DistrictHeatingCooling/Pipes/StaticPipe.mo | 2 +- .../Fluid/HeatExchangers/Examples/HeatingRod.mo | 6 +++++- .../BaseClasses/Functions/CollisionIntegral.mo | 4 ++-- .../PumpsPolynomialBased/PumpHeadControlled.mo | 17 ++++++++++------- ...Fluid_HeatExchangers_Examples_HeatingRod.txt | 14 -------------- .../BaseClasses/MultizonePostProcessing.mo | 4 ++-- .../SolarGain/CorrectionGDoublePane.mo | 1 - .../SelfShadowing/SelfShadowingTestAbove.mo | 4 ++-- .../SelfShadowing/SelfShadowingTestBelow.mo | 8 ++++---- .../SelfShadowing/SelfShadowingTestLeft.mo | 4 ++-- .../SelfShadowing/SelfShadowingTestRight.mo | 4 ++-- .../VDI2078/TestCase1_Illumination.mo | 6 +++--- AixLib/package.mo | 2 +- 14 files changed, 41 insertions(+), 49 deletions(-) delete mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo index bf7da1e834..fe1fb3862d 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo @@ -95,15 +95,15 @@ model PlugFlowPipeZeta "Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)" annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - FixedResistances.PlugFlowPipe plugFlowPipe( + FixedResistances.PlugFlowPipe plugFlowPipe( redeclare final package Medium = Medium, final dh=dh, final v_nominal=v_nominal, final length=length, - dIns=dIns, - kIns=kIns, - cPip=cPip, - rhoPip=rhoPip, + final dIns=dIns, + final kIns=kIns, + final cPip=cPip, + final rhoPip=rhoPip, final R=R, final m_flow_small=m_flow_small, final m_flow_nominal=m_flow_nominal, @@ -190,14 +190,14 @@ equation connect(plugFlowPipe.port_b, vol.ports[1]) annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); if use_zeta then - connect(hydraulicResistance.port_b,plugFlowPipe. port_a) + connect(hydraulicResistance.port_b, plugFlowPipe.port_a) annotation (Line(points={{-40,20},{-20,20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); connect(hydraulicResistance.port_a, port_a) annotation (Line(points={{-60,20},{-80,20},{-80,0},{-100,0}}, color={0,127,255}, pattern=LinePattern.Dash)); else - connect(port_a,plugFlowPipe. port_a) + connect(port_a, plugFlowPipe.port_a) annotation (Line(points={{-100,0},{-80,0},{-80,-20},{-20,-20},{-20,0},{-10,0}}, color={0,127,255})); end if; diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo index 5986218d4d..6d68d5339c 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo @@ -60,7 +60,7 @@ model StaticPipe Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= - T_start_in "Initialization temperature at pipe outlet" + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" diff --git a/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo b/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo index 415899d2c0..968043fcd2 100644 --- a/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo +++ b/AixLib/Fluid/HeatExchangers/Examples/HeatingRod.mo @@ -3,7 +3,7 @@ model HeatingRod "Example for the usage of the heating rod model" extends Modelica.Icons.Example; extends AixLib.Fluid.HeatExchangers.Examples.BaseClasses.Heater( redeclare package Medium = AixLib.Media.Water, - m_flow_nominal=V*1000/3600, + m_flow_nominal=V*rhoWat/3600, Q_flow_nominal=100, conPI(k=10), vol(V=V/1000), @@ -23,6 +23,10 @@ model HeatingRod "Example for the usage of the heating rod model" Modelica.Blocks.Interfaces.RealOutput Pel "Electrical power used to provide current heat flow" annotation (Placement(transformation(extent={{120,-70},{140,-50}}))); + +protected + parameter Modelica.Units.SI.Density rhoWat=1000 "Density of water"; + equation connect(mov.port_b, heatingRod.port_a) annotation (Line(points={{-50,-40},{-30,-40}}, color={0,127,255})); diff --git a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo index 4ca5417aee..cb428de57c 100644 --- a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo +++ b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo @@ -12,8 +12,8 @@ protected Real eps12; Real epsInternal; - - constant Real kB(unit="J/K") = 1.38064852E-23 "Stefan-Boltzmann-Constant"; + + constant Real kB(unit="J/K") = Modelica.Constants.k "Stefan-Boltzmann-Constant"; constant Real epsAir = 78.6 * kB "Lennard-Jones potential of air"; constant Real epsSteam = 363 * kB "Lennard-Jones potential of steam"; algorithm diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo index 792d27c6e4..eeb5e3220f 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo @@ -101,7 +101,8 @@ model PumpHeadControlled annotation (Placement(transformation(extent={{-100,35},{-80,55}}))); Modelica.Blocks.Tables.CombiTable1Dv maxMinTable( - columns={2,3}, extrapolation = Modelica.Blocks.Types.Extrapolation.HoldLastPoint, + columns={2,3}, + extrapolation=Modelica.Blocks.Types.Extrapolation.HoldLastPoint, table=pumpParam.maxMinHeight, tableName="NoName", tableOnFile=false) @@ -135,11 +136,13 @@ protected "implements a connectable object that can be cuppled with pumpBus." annotation (Placement(transformation(extent={{-71,-76},{-51,-56}}))); Modelica.Blocks.Continuous.CriticalDamping - criticalDamping( - - f=1/5, - initType=Modelica.Blocks.Types.Init.InitialOutput, n = 1,y_start=Hstart) + criticalDamping( + f=1/5, + initType=Modelica.Blocks.Types.Init.InitialOutput, + n=1, + y_start=Hstart) annotation (Placement(transformation(extent={{50,-20},{70,0}}))); + public Modelica.Blocks.Logical.Switch onOff annotation (Placement(transformation(extent={{48,10},{68,30}}))); @@ -271,9 +274,9 @@ equation connect(idealSource.port_a, port_a) annotation (Line(points={{-31,-80},{-81,-80}, {-81,0},{-100,0}}, color={0,127,255})); connect(idealSource.port_b,vol. ports[1]) - annotation (Line(points={{-11,-80},{31,-80}}, color={0,127,255})); + annotation (Line(points={{-11,-80},{32,-80}}, color={0,127,255})); connect(vol.ports[2], port_b) - annotation (Line(points={{35,-80},{100,-80},{100,0}}, color={0,127,255})); + annotation (Line(points={{34,-80},{100,-80},{100,0}}, color={0,127,255})); connect(onOff.y, criticalDamping.u) annotation (Line(points={{69,20},{70,20},{ 70,5},{41,5},{41,-10},{48,-10}}, color={0,0,127})); annotation ( diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt deleted file mode 100644 index 2920584c42..0000000000 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt +++ /dev/null @@ -1,14 +0,0 @@ -last-generated=2022-05-23 -statistics-simulation= -{ - "linear": "0", - "nonlinear": " ", - "number of continuous time states": "6", - "numerical Jacobians": "0" -} -time=[0e+00, 1.728e+05] -TSet.y=[2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02] -TOut.y=[2.841499938964844e+02, 2.841894226074219e+02, 2.843070983886719e+02, 2.845011291503906e+02, 2.847684631347656e+02, 2.851049194335938e+02, 2.855051574707031e+02, 2.85962890625e+02, 2.864708557128906e+02, 2.870211181640625e+02, 2.876049194335938e+02, 2.882131042480469e+02, 2.888360595703125e+02, 2.894639587402344e+02, 2.900869140625e+02, 2.906950988769531e+02, 2.912789001464844e+02, 2.918291320800781e+02, 2.923371276855469e+02, 2.927948303222656e+02, 2.931950988769531e+02, 2.935315246582031e+02, 2.937988891601562e+02, 2.93992919921875e+02, 2.941105651855469e+02, 2.941499938964844e+02, 2.941105651855469e+02, 2.93992919921875e+02, 2.937988891601562e+02, 2.935315246582031e+02, 2.931950988769531e+02, 2.927948303222656e+02, 2.923371276855469e+02, 2.918291320800781e+02, 2.912789001464844e+02, 2.906950988769531e+02, 2.900869140625e+02, 2.894639587402344e+02, 2.888360595703125e+02, 2.882131042480469e+02, 2.876049194335938e+02, 2.870211181640625e+02, 2.864708557128906e+02, 2.85962890625e+02, 2.855051574707031e+02, 2.851049194335938e+02, 2.847684631347656e+02, 2.845011291503906e+02, 2.843070983886719e+02, 2.841894226074219e+02, 2.841499938964844e+02, 2.841894226074219e+02, 2.843070983886719e+02, 2.845011291503906e+02, 2.847684631347656e+02, 2.851049194335938e+02, 2.855051574707031e+02, 2.85962890625e+02, 2.864708557128906e+02, 2.870211181640625e+02, 2.876049194335938e+02, 2.882131042480469e+02, 2.888360595703125e+02, 2.894639587402344e+02, 2.900869140625e+02, 2.906950988769531e+02, 2.912789001464844e+02, 2.918291320800781e+02, 2.923371276855469e+02, 2.927948303222656e+02, 2.931950988769531e+02, 2.935315246582031e+02, 2.937988891601562e+02, 2.93992919921875e+02, 2.941105651855469e+02, 2.941499938964844e+02, 2.941105651855469e+02, 2.93992919921875e+02, 2.937988891601562e+02, 2.935315246582031e+02, 2.931950988769531e+02, 2.927948303222656e+02, 2.923371276855469e+02, 2.918291320800781e+02, 2.912789001464844e+02, 2.906950988769531e+02, 2.900869140625e+02, 2.894639587402344e+02, 2.888360595703125e+02, 2.882131042480469e+02, 2.876049194335938e+02, 2.870211181640625e+02, 2.864708557128906e+02, 2.85962890625e+02, 2.855051574707031e+02, 2.851049194335938e+02, 2.847684631347656e+02, 2.845011291503906e+02, 2.843070983886719e+02, 2.841894226074219e+02, 2.841499938964844e+02] -TVol.T=[2.891499938964844e+02, 2.891498413085938e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891502685546875e+02, 2.891515502929688e+02, 2.893247680664062e+02, 2.897407836914062e+02, 2.901571350097656e+02, 2.905736999511719e+02, 2.909904174804688e+02, 2.914071655273438e+02, 2.918237915039062e+02, 2.922401733398438e+02, 2.926561889648438e+02, 2.930716857910156e+02, 2.931881408691406e+02, 2.931901245117188e+02, 2.9319189453125e+02, 2.93193359375e+02, 2.931943359375e+02, 2.931947021484375e+02, 2.931942749023438e+02, 2.931929626464844e+02, 2.93190673828125e+02, 2.931872863769531e+02, 2.931827392578125e+02, 2.931769714355469e+02, 2.93169921875e+02, 2.9316162109375e+02, 2.931520385742188e+02, 2.931451721191406e+02, 2.931331176757812e+02, 2.931199035644531e+02, 2.931056518554688e+02, 2.930904235839844e+02, 2.930743408203125e+02, 2.930575256347656e+02, 2.930401306152344e+02, 2.930223083496094e+02, 2.93004150390625e+02, 2.929859008789062e+02, 2.929677124023438e+02, 2.929497680664062e+02, 2.929321594238281e+02, 2.929150390625e+02, 2.928985595703125e+02, 2.928828735351562e+02, 2.928681335449219e+02, 2.928542175292969e+02, 2.928415832519531e+02, 2.928302917480469e+02, 2.928202514648438e+02, 2.928115234375e+02, 2.928040771484375e+02, 2.927978515625e+02, 2.929635009765625e+02, 2.931851806640625e+02, 2.931818542480469e+02, 2.931795959472656e+02, 2.931783752441406e+02, 2.931780090332031e+02, 2.931784057617188e+02, 2.93179443359375e+02, 2.931809387207031e+02, 2.931827697753906e+02, 2.931847229003906e+02, 2.931866760253906e+02, 2.931884460449219e+02, 2.931899108886719e+02, 2.931908874511719e+02, 2.931912841796875e+02, 2.931908874511719e+02, 2.931895751953125e+02, 2.931872863769531e+02, 2.931838989257812e+02, 2.931793518066406e+02, 2.93173583984375e+02, 2.931665649414062e+02, 2.931582641601562e+02, 2.93149169921875e+02, 2.931455993652344e+02, 2.93133544921875e+02, 2.931203308105469e+02, 2.931060791015625e+02, 2.930908508300781e+02, 2.930747680664062e+02, 2.930579528808594e+02, 2.930405578613281e+02, 2.930227355957031e+02, 2.930046081542969e+02, 2.929863586425781e+02] -THeaOut.T=[2.891499938964844e+02, 2.891500549316406e+02, 2.891502075195312e+02, 2.891502075195312e+02, 2.891502075195312e+02, 2.891501770019531e+02, 2.891501770019531e+02, 2.89150146484375e+02, 2.89150146484375e+02, 2.891501159667969e+02, 2.891500854492188e+02, 2.891500549316406e+02, 2.891500244140625e+02, 2.891502380371094e+02, 2.891515197753906e+02, 2.893262023925781e+02, 2.897422180175781e+02, 2.901585693359375e+02, 2.905751342773438e+02, 2.909918212890625e+02, 2.914085693359375e+02, 2.918251953125e+02, 2.922416076660156e+02, 2.926576232910156e+02, 2.930731201171875e+02, 2.931881103515625e+02, 2.931900634765625e+02, 2.931918640136719e+02, 2.931933288574219e+02, 2.931943359375e+02, 2.931947021484375e+02, 2.931943054199219e+02, 2.931929931640625e+02, 2.931907043457031e+02, 2.931873474121094e+02, 2.931828308105469e+02, 2.931770935058594e+02, 2.931700744628906e+02, 2.931617736816406e+02, 2.931522216796875e+02, 2.931453552246094e+02, 2.931333312988281e+02, 2.931201477050781e+02, 2.931059265136719e+02, 2.930906982421875e+02, 2.930746459960938e+02, 2.930578308105469e+02, 2.930404357910156e+02, 2.930226135253906e+02, 2.930044860839844e+02, 2.929862365722656e+02, 2.929680480957031e+02, 2.929500732421875e+02, 2.929324645996094e+02, 2.929153442382812e+02, 2.928988647460938e+02, 2.928831481933594e+02, 2.928683776855469e+02, 2.928544616699219e+02, 2.928418273925781e+02, 2.928304748535156e+02, 2.928204345703125e+02, 2.928116760253906e+02, 2.9280419921875e+02, 2.927979431152344e+02, 2.929650573730469e+02, 2.931852722167969e+02, 2.93181884765625e+02, 2.931796264648438e+02, 2.931783752441406e+02, 2.931780090332031e+02, 2.931784057617188e+02, 2.931794128417969e+02, 2.93180908203125e+02, 2.931827087402344e+02, 2.931846923828125e+02, 2.931866455078125e+02, 2.931884155273438e+02, 2.931898803710938e+02, 2.931908874511719e+02, 2.931912841796875e+02, 2.931908874511719e+02, 2.931896057128906e+02, 2.931873474121094e+02, 2.931839599609375e+02, 2.93179443359375e+02, 2.931737060546875e+02, 2.931667175292969e+02, 2.931584167480469e+02, 2.931493835449219e+02, 2.931458129882812e+02, 2.931337585449219e+02, 2.931205749511719e+02, 2.931063537597656e+02, 2.930911254882812e+02, 2.930750732421875e+02, 2.930582580566406e+02, 2.930408630371094e+02, 2.930230407714844e+02, 2.930049438476562e+02, 2.929866943359375e+02] -Pel=[0e+00, 2.537812423706055e+01, 2.518207550048828e+01, 2.391185188293457e+01, 2.257701683044434e+01, 2.082238388061523e+01, 1.876025581359863e+01, 1.638795661926269e+01, 1.376489734649658e+01, 1.09269905090332e+01, 7.913133144378662e+00, 4.775211811065674e+00, 1.703271389007568e+00, 0e+00, 0e+00, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.030927856445312e+03, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.933403778076172e+01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo index 46916e911e..e41c46612a 100644 --- a/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo +++ b/AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo @@ -1,4 +1,4 @@ -within AixLib.ThermalZones.ReducedOrder.Multizone.BaseClasses; +within AixLib.ThermalZones.ReducedOrder.Multizone.BaseClasses; model MultizonePostProcessing "Calculates and outputs values of interest for multizone model" parameter Modelica.Units.SI.Volume VAir "Indoor air volume of building"; @@ -28,7 +28,7 @@ model MultizonePostProcessing Modelica.Blocks.Interfaces.RealInput TAir[numZones](each final quantity="ThermodynamicTemperature", each final unit="K", - each displayUnit= "degC") "Air temperature of each zone" + each displayUnit="degC") "Air temperature of each zone" annotation (Placement(transformation(extent={{-140,80}, {-100,120}}), iconTransformation(extent={{-140,80},{-100,120}}))); Modelica.Blocks.Interfaces.RealInput TRad[numZones]( diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo index 4bd0fb1fb1..7b4cf4090d 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo @@ -59,7 +59,6 @@ protected Qsek2_diff)/g_dir0 "Transmission coefficient correction factor for irradiations from ground"; - //Calculating the correction factor for direct solar radiation Modelica.Units.SI.TransmissionCoefficient[n] Ta_dir "Energetic degree of transmission for direct radiation"; diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo index a73787b50f..20579ad1ad 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo @@ -14,8 +14,8 @@ model SelfShadowingTestAbove final bBel={0}, final dAbo={0.01}, final dBel={0}, - final azi = {0}, - final til = {1.5707963267949}) + final azi={0}, + final til={1.5707963267949}) "Shadowing due to a projection above the window" annotation (Placement(transformation(extent={{56,46},{88,74}}))); AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til=90) diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo index a09b2cae2b..9e37e46af2 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo @@ -12,8 +12,8 @@ model SelfShadowingTestBelow final dLef={0}, final bAbo={0}, final dAbo={0}, - final azi= {0}, - final til= {1.5707963267949}, + final azi={0}, + final til={1.5707963267949}, final dBel={0.01}, final bBel={1}) "Shadowing due to a projection below" annotation (Placement(transformation(extent={{56,46},{88,74}}))); @@ -36,8 +36,8 @@ model SelfShadowingTestBelow final dLef={0}, final bAbo={0}, final dAbo={0}, - final azi= {0}, - final til= {1.5707963267949}, + final azi={0}, + final til={1.5707963267949}, final bBel={1}, final dBel={-0.2}) "Shadowing due to a balkony" annotation (Placement(transformation(extent={{56,-40},{88,-12}}))); diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo index 1ed442b3c6..58493f8792 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo @@ -12,8 +12,8 @@ model SelfShadowingTestLeft final bBel={0}, final dAbo={0}, final dBel={0}, - final azi= {0}, - final til= {1.5707963267949}, + final azi={0}, + final til={1.5707963267949}, final bLef={1}, final dLef={0.01}) "Shadowing due to a projection on the left-hand side of the window" diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo index 4586784933..5381f21ac6 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo @@ -10,8 +10,8 @@ model SelfShadowingTestRight final dLef={0}, final bBel={0}, final dBel={0}, - final azi= {0}, - final til= {1.5707963267949}, + final azi={0}, + final til={1.5707963267949}, final bRig={1}, final dRig={0.01}, final bAbo={0}, diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo index 7c4b9193ef..434715be66 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/VDI2078/TestCase1_Illumination.mo @@ -288,7 +288,7 @@ model TestCase1_Illumination n=1, UWin=1.4, xi=0, - til= {1.5707963267949}) + til={1.5707963267949}) "Correction values for non-parallel and non-vertical irradiation for VDI2078 test case 1" annotation (Placement(transformation(extent={{-52,46},{-32,66}}))); @@ -808,8 +808,8 @@ model TestCase1_Illumination annotation (Placement(transformation(extent={{-76,-98},{-68,-90}}))); AixLib.BoundaryConditions.SolarGeometry.BaseClasses.IncidenceAngle incAng( - azi(displayUnit="deg") = 0, - til(displayUnit="deg") = 1.5707963267949, + azi(displayUnit="deg")=0, + til(displayUnit="deg")=1.5707963267949, lat=0.86393797973719) "Solar incidence angle on the tilted window" annotation (Placement(transformation(extent={{-54,-94},{-44,-84}}))); AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.SolarDeclinationAngleVDI6007 solarDeclinationAngleVDI diff --git a/AixLib/package.mo b/AixLib/package.mo index 9cb5206d9f..236e646a2c 100644 --- a/AixLib/package.mo +++ b/AixLib/package.mo @@ -6,7 +6,7 @@ package AixLib SDF(version="0.4.2"), Modelica_DeviceDrivers(version="2.0.0"), Modelica(version="4.0.0")), - version="1.3.1", + version="1.3.2", conversion(from( version="0.3.2", script="modelica://AixLib/Resources/Scripts/ConvertAixLib_from_0.3.2_to_0.4.mos", From 4d0fa51f3dc3348ea201eb0ceca271e7e59b48f7 Mon Sep 17 00:00:00 2001 From: ebc-aixlib-bot Date: Fri, 14 Oct 2022 07:46:28 +0000 Subject: [PATCH 29/44] Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/openModelicaProject/plots/ --- ...ib_Fluid_HeatExchangers_Examples_HeatingRod.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt new file mode 100644 index 0000000000..e8fb1bd755 --- /dev/null +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_HeatingRod.txt @@ -0,0 +1,14 @@ +last-generated=2022-10-14 +statistics-simulation= +{ + "linear": "0", + "nonlinear": " ", + "number of continuous time states": "6", + "numerical Jacobians": "0" +} +time=[0e+00, 1.728e+05] +TSet.y=[2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891499938964844e+02] +TOut.y=[2.841499938964844e+02, 2.841894226074219e+02, 2.843070983886719e+02, 2.845011291503906e+02, 2.847684631347656e+02, 2.851049194335938e+02, 2.855051574707031e+02, 2.85962890625e+02, 2.864708557128906e+02, 2.870211181640625e+02, 2.876049194335938e+02, 2.882131042480469e+02, 2.888360595703125e+02, 2.894639587402344e+02, 2.900869140625e+02, 2.906950988769531e+02, 2.912789001464844e+02, 2.918291320800781e+02, 2.923371276855469e+02, 2.927948303222656e+02, 2.931950988769531e+02, 2.935315246582031e+02, 2.937988891601562e+02, 2.93992919921875e+02, 2.941105651855469e+02, 2.941499938964844e+02, 2.941105651855469e+02, 2.93992919921875e+02, 2.937988891601562e+02, 2.935315246582031e+02, 2.931950988769531e+02, 2.927948303222656e+02, 2.923371276855469e+02, 2.918291320800781e+02, 2.912789001464844e+02, 2.906950988769531e+02, 2.900869140625e+02, 2.894639587402344e+02, 2.888360595703125e+02, 2.882131042480469e+02, 2.876049194335938e+02, 2.870211181640625e+02, 2.864708557128906e+02, 2.85962890625e+02, 2.855051574707031e+02, 2.851049194335938e+02, 2.847684631347656e+02, 2.845011291503906e+02, 2.843070983886719e+02, 2.841894226074219e+02, 2.841499938964844e+02, 2.841894226074219e+02, 2.843070983886719e+02, 2.845011291503906e+02, 2.847684631347656e+02, 2.851049194335938e+02, 2.855051574707031e+02, 2.85962890625e+02, 2.864708557128906e+02, 2.870211181640625e+02, 2.876049194335938e+02, 2.882131042480469e+02, 2.888360595703125e+02, 2.894639587402344e+02, 2.900869140625e+02, 2.906950988769531e+02, 2.912789001464844e+02, 2.918291320800781e+02, 2.923371276855469e+02, 2.927948303222656e+02, 2.931950988769531e+02, 2.935315246582031e+02, 2.937988891601562e+02, 2.93992919921875e+02, 2.941105651855469e+02, 2.941499938964844e+02, 2.941105651855469e+02, 2.93992919921875e+02, 2.937988891601562e+02, 2.935315246582031e+02, 2.931950988769531e+02, 2.927948303222656e+02, 2.923371276855469e+02, 2.918291320800781e+02, 2.912789001464844e+02, 2.906950988769531e+02, 2.900869140625e+02, 2.894639587402344e+02, 2.888360595703125e+02, 2.882131042480469e+02, 2.876049194335938e+02, 2.870211181640625e+02, 2.864708557128906e+02, 2.85962890625e+02, 2.855051574707031e+02, 2.851049194335938e+02, 2.847684631347656e+02, 2.845011291503906e+02, 2.843070983886719e+02, 2.841894226074219e+02, 2.841499938964844e+02] +TVol.T=[2.891499938964844e+02, 2.891498413085938e+02, 2.891499938964844e+02, 2.891499938964844e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891500244140625e+02, 2.891502685546875e+02, 2.891515502929688e+02, 2.893241577148438e+02, 2.897387084960938e+02, 2.90153564453125e+02, 2.905686645507812e+02, 2.9098388671875e+02, 2.91399169921875e+02, 2.918143310546875e+02, 2.922292785644531e+02, 2.926438293457031e+02, 2.930578308105469e+02, 2.931883544921875e+02, 2.931902770996094e+02, 2.931920776367188e+02, 2.931935424804688e+02, 2.931944885253906e+02, 2.931948547363281e+02, 2.931944580078125e+02, 2.931931762695312e+02, 2.931908569335938e+02, 2.931874694824219e+02, 2.931829223632812e+02, 2.931771850585938e+02, 2.93170166015625e+02, 2.931618957519531e+02, 2.9315234375e+02, 2.931450500488281e+02, 2.93133056640625e+02, 2.931199035644531e+02, 2.931056823730469e+02, 2.930905151367188e+02, 2.930744934082031e+02, 2.930577392578125e+02, 2.930404052734375e+02, 2.930226440429688e+02, 2.930045776367188e+02, 2.929863586425781e+02, 2.929681701660156e+02, 2.929502563476562e+02, 2.929327392578125e+02, 2.929157409667969e+02, 2.928993835449219e+02, 2.928838195800781e+02, 2.928691101074219e+02, 2.928553771972656e+02, 2.928428039550781e+02, 2.928313293457031e+02, 2.928211059570312e+02, 2.928123474121094e+02, 2.92804931640625e+02, 2.92798828125e+02, 2.929639892578125e+02, 2.931850891113281e+02, 2.931817626953125e+02, 2.931795043945312e+02, 2.931782836914062e+02, 2.931779174804688e+02, 2.931783142089844e+02, 2.931793518066406e+02, 2.931808471679688e+02, 2.931826477050781e+02, 2.931846008300781e+02, 2.931865539550781e+02, 2.931883544921875e+02, 2.931898193359375e+02, 2.931907958984375e+02, 2.93191162109375e+02, 2.931907348632812e+02, 2.93189453125e+02, 2.931871643066406e+02, 2.931838073730469e+02, 2.931792907714844e+02, 2.931735229492188e+02, 2.931665344238281e+02, 2.931582641601562e+02, 2.931491394042969e+02, 2.931456298828125e+02, 2.931336059570312e+02, 2.931204528808594e+02, 2.931062316894531e+02, 2.93091064453125e+02, 2.930750427246094e+02, 2.930582885742188e+02, 2.930409545898438e+02, 2.93023193359375e+02, 2.93005126953125e+02, 2.929869689941406e+02] +THeaOut.T=[2.891499938964844e+02, 2.891500549316406e+02, 2.891502075195312e+02, 2.891502075195312e+02, 2.891502075195312e+02, 2.891501770019531e+02, 2.891501770019531e+02, 2.89150146484375e+02, 2.89150146484375e+02, 2.891501159667969e+02, 2.891500854492188e+02, 2.891500549316406e+02, 2.891500244140625e+02, 2.891502380371094e+02, 2.891515197753906e+02, 2.893255615234375e+02, 2.897401123046875e+02, 2.901549682617188e+02, 2.90570068359375e+02, 2.909852905273438e+02, 2.914005737304688e+02, 2.918157348632812e+02, 2.922306823730469e+02, 2.926452331542969e+02, 2.930592651367188e+02, 2.931882934570312e+02, 2.931902465820312e+02, 2.931920471191406e+02, 2.931935119628906e+02, 2.931944885253906e+02, 2.931948547363281e+02, 2.931944580078125e+02, 2.931932067871094e+02, 2.9319091796875e+02, 2.931875305175781e+02, 2.931830139160156e+02, 2.931773071289062e+02, 2.931703186035156e+02, 2.931620483398438e+02, 2.931525268554688e+02, 2.93145263671875e+02, 2.931332702636719e+02, 2.931201477050781e+02, 2.9310595703125e+02, 2.930907897949219e+02, 2.930747985839844e+02, 2.930580444335938e+02, 2.930407104492188e+02, 2.9302294921875e+02, 2.930049133300781e+02, 2.929866943359375e+02, 2.929684753417969e+02, 2.929505615234375e+02, 2.929330444335938e+02, 2.929160461425781e+02, 2.928996887207031e+02, 2.928840637207031e+02, 2.928693542480469e+02, 2.928556213378906e+02, 2.92843017578125e+02, 2.928315124511719e+02, 2.928212890625e+02, 2.928125e+02, 2.928050537109375e+02, 2.927989501953125e+02, 2.929655456542969e+02, 2.931851501464844e+02, 2.931817932128906e+02, 2.931795349121094e+02, 2.931782836914062e+02, 2.931779174804688e+02, 2.931783142089844e+02, 2.931793212890625e+02, 2.931808166503906e+02, 2.931826171875e+02, 2.931845703125e+02, 2.931865234375e+02, 2.931883239746094e+02, 2.931897888183594e+02, 2.931907958984375e+02, 2.93191162109375e+02, 2.931907348632812e+02, 2.931894836425781e+02, 2.931872253417969e+02, 2.931838684082031e+02, 2.931793823242188e+02, 2.931736450195312e+02, 2.931666564941406e+02, 2.931584167480469e+02, 2.931493530273438e+02, 2.931458129882812e+02, 2.931338500976562e+02, 2.931206970214844e+02, 2.931065063476562e+02, 2.930913391113281e+02, 2.930753479003906e+02, 2.9305859375e+02, 2.93041259765625e+02, 2.930234985351562e+02, 2.930054626464844e+02, 2.929872741699219e+02] +Pel=[0e+00, 2.533153343200684e+01, 2.517453765869141e+01, 2.391025161743164e+01, 2.257803726196289e+01, 2.082214546203613e+01, 1.876042747497559e+01, 1.638805770874023e+01, 1.376475620269775e+01, 1.092701625823975e+01, 7.9131760597229e+00, 4.775187969207764e+00, 1.715836048126221e+00, 0e+00, 0e+00, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 1.030927856445312e+03, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.030927856445312e+03, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.879804611206055e+01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] From 2dd878bcbe0409fd3deb324d0ce782b75b769f7e Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 14 Oct 2022 10:05:37 +0200 Subject: [PATCH 30/44] Revert IBPSA changes --- .../ReducedOrder/RC/OneElement.mo | 2 +- .../BaseClasses/PartialCorrectionG.mo | 2 +- .../SolarGain/CorrectionGDoublePane.mo | 20 +++++++++---------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo b/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo index 9004b6f530..a704d39758 100644 --- a/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo +++ b/AixLib/ThermalZones/ReducedOrder/RC/OneElement.mo @@ -8,7 +8,7 @@ model OneElement "Thermal Zone with one element for exterior walls" parameter Modelica.Units.SI.CoefficientOfHeatTransfer hRad "Coefficient of heat transfer for linearized radiation exchange between walls" annotation (Dialog(group="Thermal zone")); - parameter Integer nOrientations(min=1)=1 "Number of orientations" + parameter Integer nOrientations(min=1) "Number of orientations" annotation(Dialog(group="Thermal zone")); parameter Integer nPorts=0 "Number of fluid ports" annotation(Evaluate=true, diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo index 6bd6f6c3f5..b27dfa1d72 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/BaseClasses/PartialCorrectionG.mo @@ -2,7 +2,7 @@ within AixLib.ThermalZones.ReducedOrder.SolarGain.BaseClasses; partial model PartialCorrectionG "Partial model for correction of the solar gain factor" - parameter Integer n(min = 1)=1 "Vector size for input and output"; + parameter Integer n(min = 1) "Vector size for input and output"; parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin "Thermal transmission coefficient of whole window"; diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo index 7b4cf4090d..651d2e1f27 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo @@ -20,8 +20,6 @@ protected "Constant 5 to calculate reference transmission"; parameter Real A6=4.74*10^(-12) "Constant 6 to calculate reference transmission"; - parameter Modelica.Units.SI.CoefficientOfHeatTransfer UWin_dimless=1 - "Auxiliary parameter for dimensionless UWin"; parameter Modelica.Units.SI.TransmissionCoefficient g_dir0=0.7537 "Reference vertical parallel transmission coefficient for direct radiation for double pane window"; parameter Modelica.Units.SI.TransmissionCoefficient Ta_diff=0.84 "Energetic degree of transmission for diffuse radiation for uniformly @@ -44,14 +42,14 @@ protected XN2_diff "Energetic dregree of transmission for second pane"; parameter Modelica.Units.SI.Emissivity a1_diff=1 - Ta1_diff - rho_1_diff "Degree of absorption for single pane window"; - parameter Real Q21_diff=a1_diff*(1 + ( - Ta1_diff*rho_1_diff/XN2_diff))*UWin/UWin_dimless/25 - "Auxiliary variable for exterior pane of double pane window"; - parameter Real Q22_diff=a1_diff*( - Ta1_diff/XN2_diff)*(1 - (UWin/UWin_dimless/7.7)) - "Auxiliary variable for interior pane of double pane window"; - parameter Real Qsek2_diff=Q21_diff + - Q22_diff "Auxiliary variable for whole double pane window"; + parameter Modelica.Units.SI.CoefficientOfHeatTransfer Q21_diff=a1_diff*(1 + ( + Ta1_diff*rho_1_diff/XN2_diff))*UWin/25 + "Coefficient of heat transfer for exterior pane of double pane window"; + parameter Modelica.Units.SI.CoefficientOfHeatTransfer Q22_diff=a1_diff*( + Ta1_diff/XN2_diff)*(1 - (UWin/7.7)) + "Coefficient of heat transfer for interior pane of double pane window"; + parameter Modelica.Units.SI.CoefficientOfHeatTransfer Qsek2_diff=Q21_diff + + Q22_diff "Overall coefficient of heat transfer for double pane window"; parameter Modelica.Units.SI.TransmissionCoefficient CorG_diff=(Ta2_diff + Qsek2_diff)/g_dir0 "Transmission coefficient correction factor for diffuse radiation"; @@ -141,4 +139,4 @@ equation
    "), __Dymola_LockedEditing="Model from IBPSA"); -end CorrectionGDoublePane; +end CorrectionGDoublePane; \ No newline at end of file From 1c986a755957df24ed522e01c63a6bc00f995c5c Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Fri, 14 Oct 2022 10:41:52 +0200 Subject: [PATCH 31/44] [skip-ci] Change Init for mass dynamics to steady state to fit to energy dynamics For #1345 --- AixLib/Systems/ModularAHU/Examples/Cooler.mo | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/AixLib/Systems/ModularAHU/Examples/Cooler.mo b/AixLib/Systems/ModularAHU/Examples/Cooler.mo index 2158541b62..b3041cc693 100644 --- a/AixLib/Systems/ModularAHU/Examples/Cooler.mo +++ b/AixLib/Systems/ModularAHU/Examples/Cooler.mo @@ -7,7 +7,7 @@ model Cooler "Cooler register example" annotation (choicesAllMatching=true); RegisterModule registerModule( - T_start=297.15, + redeclare HydraulicModules.ThrottlePump hydraulicModule( parameterPipe=AixLib.DataBase.Pipes.Copper.Copper_35x1_5(), parameterIso=AixLib.DataBase.Pipes.Insulation.Iso25pc(), @@ -19,19 +19,17 @@ model Cooler "Cooler register example" AixLib.Fluid.Movers.Data.Pumps.Wilo.VeroLine50slash150dash4slash2 per))), redeclare package Medium2 = MediumWater, - m1_flow_nominal=1, - m2_flow_nominal=0.1, redeclare package Medium1 = MediumAir, - energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, + T_amb=293.15,T_start=297.15, dynamicHX( - dp1_nominal=100, - dp2_nominal=6000, - dT_nom=20, + Q_nom=30000, - redeclare AixLib.Fluid.MixingVolumes.MixingVolume vol1, - redeclare AixLib.Fluid.MixingVolumes.MixingVolume vol2), + dT_nom=20,dp1_nominal=100, + dp2_nominal=6000), + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, hydraulicModuleIcon="ThrottlePump", - T_amb=293.15) + m1_flow_nominal=1, + m2_flow_nominal=0.1, massDynamics = Modelica.Fluid.Types.Dynamics.SteadyStateInitial) annotation (Placement(transformation(extent={{-40,-46},{26,40}}))); Fluid.Sources.Boundary_pT boundaryWaterSource( p=300000, From 33c1dac2c696b97b73e5a74b270d4d17bbaafc92 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Fri, 14 Oct 2022 10:49:00 +0200 Subject: [PATCH 32/44] =?UTF-8?q?[skip-ci]=20Add=20=C2=B4Tsteam=5Fintern?= =?UTF-8?q?=C2=B4=20interface=20to=20avoid=20warning=20with=20usage=20of?= =?UTF-8?q?=20conditional=20component=20in=20non-connection=20type.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For #1345 --- AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo index 8d7deeb678..d1589bf8f1 100644 --- a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo +++ b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo @@ -37,7 +37,7 @@ model GenericHumidifier_u extent={{100,90},{120,110}}), iconTransformation(extent={{100,90},{120, 110}}))); Modelica.Blocks.Sources.RealExpression steamEnthalpyFlow(y= - Medium.enthalpyOfCondensingGas(T=Tsteam.y)*mWat_flow) if steamHumidifier + Medium.enthalpyOfCondensingGas(T=Tsteam_intern)*mWat_flow) if steamHumidifier annotation (Placement(transformation(extent={{-100,-50},{-80,-30}}))); Modelica.Blocks.Sources.RealExpression waterEnthalpyFlow(y=Medium.enthalpyOfLiquid(T=TLiqWat_in)*mWat_flow) annotation (Placement(transformation(extent={{-100,-70},{-80,-50}}))); Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow prescribedHeatFlow @@ -51,6 +51,7 @@ model GenericHumidifier_u annotation (Placement(transformation(extent={{-60,-98},{-40,-78}}))); protected + Modelica.Blocks.Interfaces.RealInput Tsteam_intern; Modelica.Blocks.Nonlinear.Limiter limiter(uMax=1, uMin=0) annotation (Placement(transformation(extent={{-90,50},{-70,70}}))); @@ -60,6 +61,11 @@ protected Modelica.Blocks.Math.Add add(k2=-1) if steamHumidifier annotation (Placement(transformation(extent={{20,-60},{40,-40}}))); equation + if not steamHumidifier then + Tsteam_intern = 273.15; + end if; + + connect(Tsteam.y, Tsteam_intern); connect(gai.y, vol.mWat_flow) annotation (Line( points={{-37,60},{-30,60},{-30,-18},{-11,-18}}, color={0,0,127})); From 02869b0f8cd799dfed53067c2439c99ba32b0aae Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Fri, 14 Oct 2022 10:58:52 +0200 Subject: [PATCH 33/44] =?UTF-8?q?[skip-ci]=20Change=20=C2=B4gain=C2=B4-blo?= =?UTF-8?q?ck=20to=20=C2=B4product=C2=B4-Block=20with=20=C2=B4realExpressi?= =?UTF-8?q?on=C2=B4-block=20to=20avoid=20warning=20concerning=20unit-incon?= =?UTF-8?q?sistency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For #1345 --- .../Fluid/Humidifiers/GenericHumidifier_u.mo | 185 ++++-------------- 1 file changed, 40 insertions(+), 145 deletions(-) diff --git a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo index d1589bf8f1..633bac7a13 100644 --- a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo +++ b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo @@ -49,15 +49,15 @@ model GenericHumidifier_u annotation (Placement(transformation(extent={{-100,-104},{-80,-84}}))); Modelica.Blocks.Routing.RealPassThrough Tsteam if steamHumidifier annotation (Placement(transformation(extent={{-60,-98},{-40,-78}}))); - + Modelica.Blocks.Sources.RealExpression realExpression(y = mWat_flow_nominal) annotation( + Placement(visible = true, transformation(origin = {-62, 32}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); + Modelica.Blocks.Math.Product product annotation( + Placement(visible = true, transformation(origin = {-20, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); protected Modelica.Blocks.Interfaces.RealInput Tsteam_intern; Modelica.Blocks.Nonlinear.Limiter limiter(uMax=1, uMin=0) annotation (Placement(transformation(extent={{-90,50},{-70,70}}))); - Modelica.Blocks.Math.Gain gai(final k=mWat_flow_nominal) "Gain" - annotation (Placement(transformation(extent={{-58,50},{-38,70}}))); - Modelica.Blocks.Math.Add add(k2=-1) if steamHumidifier annotation (Placement(transformation(extent={{20,-60},{40,-40}}))); equation @@ -66,16 +66,11 @@ equation end if; connect(Tsteam.y, Tsteam_intern); - connect(gai.y, vol.mWat_flow) annotation (Line( + connect(product.y, vol.mWat_flow) annotation (Line( points={{-37,60},{-30,60},{-30,-18},{-11,-18}}, color={0,0,127})); - - connect(gai.y, mWat_flow) - annotation (Line(points={{-37,60},{110,60}}, color={0,0,127})); connect(u, limiter.u) annotation (Line(points={{-120,60},{-92,60}}, color={0,0,127})); - connect(limiter.y, gai.u) - annotation (Line(points={{-69,60},{-60,60}}, color={0,0,127})); connect(prescribedHeatFlow.port, vol.heatPort) annotation (Line(points={{-20,-40}, {-20,-10},{-9,-10}}, color={191,0,0})); @@ -105,142 +100,42 @@ equation points={{-79,-94},{-72,-94},{-72,-88},{-62,-88}}, color={0,0,127}, pattern=LinePattern.Dash)); + connect(limiter.y, product.u1) annotation( + Line(points = {{-68, 60}, {-48, 60}, {-48, 66}, {-32, 66}}, color = {0, 0, 127})); + connect(realExpression.y, product.u2) annotation( + Line(points = {{-50, 32}, {-40, 32}, {-40, 54}, {-32, 54}}, color = {0, 0, 127})); + connect(product.y, mWat_flow) annotation( + Line(points = {{-9, 60}, {110, 60}}, color = {0, 0, 127})); annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100, - -100},{100,100}}), graphics={ - Text( - extent={{-52,-60},{58,-120}}, - textString="m=%m_flow_nominal", - pattern=LinePattern.None, - lineColor={0,0,127}), - Rectangle( - extent={{-100,61},{-70,58}}, - lineColor={0,0,255}, - pattern=LinePattern.None, - fillColor={0,0,127}, - fillPattern=FillPattern.Solid), - Text( - extent={{-118,104},{-74,76}}, - lineColor={0,0,127}, - textString="u"), - Rectangle( - extent={{-100,5},{101,-5}}, - lineColor={0,0,255}, - pattern=LinePattern.None, - fillColor={0,0,0}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{-70,60},{70,-60}}, - lineColor={0,0,255}, - pattern=LinePattern.None, - fillColor={95,95,95}, - fillPattern=FillPattern.Solid), - Polygon( - points={{42,42},{54,34},{54,34},{42,28},{42,30},{50,34},{50,34},{42, - 40},{42,42}}, - lineColor={255,255,255}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{58,-54},{54,52}}, - lineColor={255,255,255}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Rectangle( - extent={{70,61},{100,58}}, - lineColor={0,0,255}, - pattern=LinePattern.None, - fillColor={0,0,127}, - fillPattern=FillPattern.Solid), - Text( - extent={{32,98},{98,44}}, - lineColor={0,0,127}, - textString="mWat_flow"), - Polygon( - points={{42,10},{54,2},{54,2},{42,-4},{42,-2},{50,2},{50,2},{42,8},{ - 42,10}}, - lineColor={255,255,255}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Polygon( - points={{42,-26},{54,-34},{54,-34},{42,-40},{42,-38},{50,-34},{50,-34}, - {42,-28},{42,-26}}, - lineColor={255,255,255}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Text(extent={{30,130},{96,76}}, - lineColor={0,0,127}, - textString="powerEva", - visible=steamHumidifier), - Ellipse(visible=steamHumidifier, - extent={{-14,44},{10,30}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{24,38},{34,32}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{26,30},{8,42}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{-28,12},{-4,-2}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{12,-2},{-6,10}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{10,6},{20,0}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{-12,-24},{12,-38}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{28,-38},{10,-26}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Ellipse(visible=steamHumidifier, - extent={{26,-30},{36,-36}}, - lineColor={28,108,200}, - fillColor={255,255,255}, - fillPattern=FillPattern.Solid), - Line(visible=not steamHumidifier, - points={{28,40},{14,40}}, color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{-6,36},{-20,30}},color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{30,4},{16,6}}, color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{0,4},{-14,-2}}, color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{30,-32},{16,-30}}, color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{0,-34},{-14,-40}}, color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{-32,-24},{-42,-38}},color={28, - 108,200}, - thickness=0.5), - Line(visible=not steamHumidifier,points={{-32,10},{-42,-4}}, color={28, - 108,200}, - thickness=0.5)}), + -100},{100,100}}), graphics={Text(lineColor = {0, 0, 127}, extent = {{-52, -60}, {58, -120}}, textString = "m=%m_flow_nominal"), + Rectangle(lineColor = {0, 0, 255}, fillColor = {0, 0, 127}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-100, 61}, {-70, 58}}), + Text(lineColor = {0, 0, 127}, extent = {{-118, 104}, {-74, 76}}, textString = "u"), + Rectangle(lineColor = {0, 0, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-100, 5}, {101, -5}}), + Rectangle(lineColor = {0, 0, 255}, fillColor = {95, 95, 95}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-70, 60}, {70, -60}}), + Polygon(lineColor = {255, 255, 255}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, points = {{42, 42}, {54, 34}, {54, 34}, {42, 28}, {42, 30}, {50, 34}, {50, 34}, {42, 40}, {42, 42}}), + Rectangle(lineColor = {255, 255, 255}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{58, -54}, {54, 52}}), + Rectangle(lineColor = {0, 0, 255}, fillColor = {0, 0, 127}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{70, 61}, {100, 58}}), + Text(lineColor = {0, 0, 127}, extent = {{32, 98}, {98, 44}}, textString = "mWat_flow"), + Polygon(lineColor = {255, 255, 255}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, points = {{42, 10}, {54, 2}, {54, 2}, {42, -4}, {42, -2}, {50, 2}, {50, 2}, {42, 8}, {42, 10}}), + Polygon(lineColor = {255, 255, 255}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, points = {{42, -26}, {54, -34}, {54, -34}, {42, -40}, {42, -38}, {50, -34}, {50, -34}, {42, -28}, {42, -26}}), + Text(lineColor = {0, 0, 127}, extent = {{30, 130}, {96, 76}}, textString = "powerEva"), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-14, 44}, {10, 30}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{24, 38}, {34, 32}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{26, 30}, {8, 42}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-28, 12}, {-4, -2}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{12, -2}, {-6, 10}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{10, 6}, {20, 0}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-12, -24}, {12, -38}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{28, -38}, {10, -26}}), + Ellipse(lineColor = {28, 108, 200}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{26, -30}, {36, -36}}), + Line(visible = false, points = {{28, 40}, {14, 40}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{-6, 36}, {-20, 30}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{30, 4}, {16, 6}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{0, 4}, {-14, -2}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{30, -32}, {16, -30}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{0, -34}, {-14, -40}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{-32, -24}, {-42, -38}}, color = {28, 108, 200}, thickness = 0.5), + Line(visible = false, points = {{-32, 10}, {-42, -4}}, color = {28, 108, 200}, thickness = 0.5)}), defaultComponentName="hum", Documentation(info="

    Model for an air humidifier. From 7119209871a4f3588d0cbedbc14a51711b2957da Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Fri, 14 Oct 2022 11:03:48 +0200 Subject: [PATCH 34/44] [skip-ci] Changes initilization of massDynamics to steady-state For #1345 --- AixLib/Systems/ModularAHU/Examples/Heater.mo | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/AixLib/Systems/ModularAHU/Examples/Heater.mo b/AixLib/Systems/ModularAHU/Examples/Heater.mo index 9c3496090c..1ba666d427 100644 --- a/AixLib/Systems/ModularAHU/Examples/Heater.mo +++ b/AixLib/Systems/ModularAHU/Examples/Heater.mo @@ -20,19 +20,17 @@ model Heater "Heating register" PumpInterface(pump(redeclare AixLib.Fluid.Movers.Data.Pumps.Wilo.Stratos25slash1to4 per))), redeclare package Medium2 = MediumWater, - m1_flow_nominal=1, - m2_flow_nominal=0.1, redeclare package Medium1 = MediumAir, - energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, + T_amb=293.15, dynamicHX( - dp1_nominal=100, - dp2_nominal=6000, - dT_nom=20, + Q_nom=30000, - redeclare AixLib.Fluid.MixingVolumes.MixingVolume vol1, - redeclare AixLib.Fluid.MixingVolumes.MixingVolume vol2), + dT_nom=20,dp1_nominal=100, + dp2_nominal=6000), + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, hydraulicModuleIcon="Admix", - T_amb=293.15) + m1_flow_nominal=1, + m2_flow_nominal=0.1, massDynamics = Modelica.Fluid.Types.Dynamics.SteadyStateInitial) annotation (Placement(transformation(extent={{-40,-46},{26,40}}))); Fluid.Sources.Boundary_pT boundaryWaterSource( nPorts=1, From 8ef7d67c76e12ffbbede71dfd12f234e99a1ffc1 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Fri, 14 Oct 2022 14:14:24 +0200 Subject: [PATCH 35/44] =?UTF-8?q?[skip-ci]=20Add=20boolean=20input=20for?= =?UTF-8?q?=20=C2=B4onSet=C2=B4=20in=20pump-bus=20to=20avoid=20mismatch=20?= =?UTF-8?q?in=20equations=20and=20variables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For #1345 --- AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo | 4 ++++ AixLib/Systems/ModularAHU/Validation/AHU2_Heater.mo | 4 ++++ AixLib/Systems/ModularAHU/Validation/AHU2_Preheater.mo | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo index 4741ca78a8..dae31283f0 100644 --- a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo +++ b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo @@ -108,6 +108,8 @@ model AHU2_Cooler "Cooling register of ahu 2 in E.ON ERC testhall" annotation (Placement(transformation(extent={{-90,34},{-78,46}}))); Modelica.Blocks.Sources.Constant const(k=-0.5) annotation (Placement(transformation(extent={{-104,32},{-96,40}}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-80, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(toKelvin.Kelvin, boundaryWaterSource.T_in) annotation (Line(points={{-57,-92},{-16,-92}}, color={0,0,127})); @@ -158,6 +160,8 @@ equation -72,40},{-72,36}}, color={0,0,127})); connect(const.y, add.u2) annotation (Line(points={{-95.6,36},{-94,36},{-94, 36.4},{-91.2,36.4}}, color={0,0,127})); + connect(pumpOn.y, registerBus1.hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-68, -24}, {-38, -24}, {-38, 10}}, color = {255, 0, 255})); annotation (Documentation(info="

    This example compares the simulated behavior with measured data. The input filter of the valve is deactivated because the measured actual diff --git a/AixLib/Systems/ModularAHU/Validation/AHU2_Heater.mo b/AixLib/Systems/ModularAHU/Validation/AHU2_Heater.mo index 0008745871..11e6431c0f 100644 --- a/AixLib/Systems/ModularAHU/Validation/AHU2_Heater.mo +++ b/AixLib/Systems/ModularAHU/Validation/AHU2_Heater.mo @@ -103,6 +103,8 @@ model AHU2_Heater "Heating register of ahu 2 in E.ON ERC testhall" annotation (Placement(transformation(extent={{-90,34},{-78,46}}))); Modelica.Blocks.Sources.Constant const(k=1) annotation (Placement(transformation(extent={{-104,32},{-96,40}}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-80, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(toKelvin.Celsius, combiTimeTable.y[2]) annotation (Line(points={{-80,-92}, {-106,-92},{-106,70},{-58,70},{-58,90},{-79,90}}, color={0,0,127})); @@ -153,6 +155,8 @@ equation -72,40},{-72,36}}, color={0,0,127})); connect(const.y, add.u2) annotation (Line(points={{-95.6,36},{-94,36},{-94, 36.4},{-91.2,36.4}}, color={0,0,127})); + connect(pumpOn.y, registerBus1.hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-68, -24}, {-38, -24}, {-38, 10}}, color = {255, 0, 255})); annotation (Documentation(info="

    This example compares the simulated behavior with measured data. The input filter of the valve is deactivated because the measured actual diff --git a/AixLib/Systems/ModularAHU/Validation/AHU2_Preheater.mo b/AixLib/Systems/ModularAHU/Validation/AHU2_Preheater.mo index b318f937e6..45717feb75 100644 --- a/AixLib/Systems/ModularAHU/Validation/AHU2_Preheater.mo +++ b/AixLib/Systems/ModularAHU/Validation/AHU2_Preheater.mo @@ -98,6 +98,8 @@ model AHU2_Preheater "Heating register of ahu 2 in E.ON ERC testhall" BaseClasses.RegisterBus registerBus1 annotation (Placement(transformation(extent={{-48,0},{-28,20}}))); + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Placement(visible = true, transformation(origin = {-80, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(toKelvin.Kelvin, boundaryWaterSource.T_in) annotation (Line(points={{-57,-92},{-16,-92}}, color={0,0,127})); @@ -143,6 +145,8 @@ equation connect(boundaryWaterSource.ports[1], registerModule.port_a2) annotation ( Line(points={{-20,-70},{-22,-70},{-22,0.461538},{-22,0.461538}}, color={0, 127,255})); + connect(pumpOn.y, registerBus1.hydraulicBus.pumpBus.onSet) annotation( + Line(points = {{-68, -24}, {-38, -24}, {-38, 10}}, color = {255, 0, 255})); annotation (Documentation(info="

    This example compares the simulated behavior with measured data. The input filter of the valve is deactivated because the measured actual From bbe22c8076dcc810a125528747e938308648b5c1 Mon Sep 17 00:00:00 2001 From: Martin Kremer Date: Mon, 24 Oct 2022 15:40:05 +0200 Subject: [PATCH 36/44] Delete unneccessary constant definition, directly using existing constant --- .../BaseClasses/Functions/CollisionIntegral.mo | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo index cb428de57c..b54bbe71d5 100644 --- a/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo +++ b/AixLib/Fluid/MassExchangers/MembraneBasedEnthalpyExchangers/BaseClasses/Functions/CollisionIntegral.mo @@ -13,9 +13,10 @@ protected Real eps12; Real epsInternal; - constant Real kB(unit="J/K") = Modelica.Constants.k "Stefan-Boltzmann-Constant"; - constant Real epsAir = 78.6 * kB "Lennard-Jones potential of air"; - constant Real epsSteam = 363 * kB "Lennard-Jones potential of steam"; + constant Real epsAir = 78.6 * Modelica.Constants.k + "Lennard-Jones potential of air"; + constant Real epsSteam = 363 * Modelica.Constants.k + "Lennard-Jones potential of steam"; algorithm omegas :={2.662,2.476,2.318,2.184,2.066,1.966,1.877,1.789,1.729,1.667,1.612,1.562, @@ -33,7 +34,7 @@ algorithm eps12 :=(epsAir*epsSteam)^(1/2); - epsInternal :=kB*T/eps12; + epsInternal :=Modelica.Constants.k*T/eps12; Omega_D := AixLib.Utilities.Math.Functions.linearInterpolation( x=epsInternal, y_1=interp); From 9af25ffb7261aba0ad73531a0f750adb83b8c8b9 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 11 Nov 2022 12:06:22 +0100 Subject: [PATCH 37/44] Revert changes causing the regression test to fail. Only apply scalar ports. --- .../DistrictHeatingCooling/Pipes/DHCPipe.mo | 98 +++--- .../Pipes/Examples/DHCPipe.mo | 18 +- .../Pipes/Examples/PlugFlowPipeEmbedded.mo | 3 +- .../Pipes/Examples/PlugFlowPipeZeta.mo | 3 +- .../Pipes/Examples/StaticPipe.mo | 3 +- .../Pipes/PlugFlowPipeEmbedded.mo | 11 +- .../Pipes/PlugFlowPipeZeta.mo | 33 +-- .../Pipes/StaticPipe.mo | 18 +- .../BaseClasses/PlugFlowCore.mo | 279 ++++++++++++++++++ .../BaseClasses/package.order | 1 + 10 files changed, 390 insertions(+), 77 deletions(-) create mode 100644 AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo index 9020ff1026..3da3ace663 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo @@ -1,6 +1,6 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model DHCPipe "Generic pipe model for DHC applications" - extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -124,15 +124,12 @@ model DHCPipe "Generic pipe model for DHC applications" "Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)" annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - replaceable AixLib.Fluid.FixedResistances.PlugFlowPipe floPip( + replaceable AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowCore pipCor( redeclare final package Medium = Medium, final dh=dh, final v_nominal=v_nominal, final length=length, - final dIns=dIns, - final kIns=kIns, - final cPip=cPip, - final rhoPip=rhoPip, + final C=C, final R=R, final m_flow_small=m_flow_small, final m_flow_nominal=m_flow_nominal, @@ -147,7 +144,27 @@ model DHCPipe "Generic pipe model for DHC applications" final roughness=roughness, final allowFlowReversal=allowFlowReversal, final homotopyInitialization=homotopyInitialization, - final linearized=linearized) constrainedby Interfaces.PartialTwoPort "Describing the pipe behavior" annotation (choices( + final linearized=linearized) constrainedby Interfaces.PartialTwoPort( + redeclare package Medium = Medium, + dh=dh, + v_nominal=v_nominal, + length=length, + C=C, + R=R, + m_flow_small=m_flow_small, + m_flow_nominal=m_flow_nominal, + T_start_in=T_start_in, + T_start_out=T_start_out, + m_flow_start=m_flow_start, + initDelay=initDelay, + from_dp=from_dp, + fac=if not use_zeta then fac else 1.0, + ReC=ReC, + thickness=thickness, + roughness=roughness, + allowFlowReversal=allowFlowReversal, + homotopyInitialization=homotopyInitialization, + linearized=linearized) "Describing the pipe behavior" annotation (choices( choice(redeclare AixLib.Fluid.DistrictHeatingCooling.Pipes.BaseClassesStatic.StaticCore pipCor "Static core"), choice(redeclare @@ -164,7 +181,7 @@ model DHCPipe "Generic pipe model for DHC applications" redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=2, + final nPorts=nPorts + 1, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -203,26 +220,7 @@ model DHCPipe "Generic pipe model for DHC applications" T0=283.15) if use_soil annotation (Placement(transformation(extent={{-10,72},{10,92}}))); - FixedResistances.HydraulicResistance hydRes( - diameter=dh, - m_flow_nominal=m_flow_nominal, - redeclare package Medium = Medium, - zeta=sum_zetas, - allowFlowReversal=allowFlowReversal, - from_dp=from_dp, - homotopyInitialization=homotopyInitialization, - linearized=linearized, - m_flow_start=m_flow_start) if use_zeta - annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); - Modelica.Thermal.HeatTransfer.Components.ThermalCollector thePasThr(final m=1) - if not use_soil "Thermal pass through if there is no soil activated" - annotation (Placement(transformation( - extent={{-10,-10},{10,10}}, - rotation=180, - origin={-16,54}))); - Interfaces.PassThroughMedium pasThrMed(redeclare package Medium = Medium) - if not use_zeta - annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + protected parameter Modelica.Units.SI.HeatCapacity CPip=length*((dh + 2*thickness)^2 - dh^2)*Modelica.Constants.pi/4*cPip*rhoPip "Heat capacity of pipe wall"; @@ -257,22 +255,44 @@ protected Modelica.Units.SI.Heat Q_gai(start=0.0, fixed=true) "Integrated heat gain of the pipe"; - +public + FixedResistances.HydraulicResistance hydRes( + diameter=dh, + m_flow_nominal=m_flow_nominal, + redeclare package Medium = Medium, + zeta=sum_zetas, + allowFlowReversal=allowFlowReversal, + from_dp=from_dp, + homotopyInitialization=homotopyInitialization, + linearized=linearized, + m_flow_start=m_flow_start) if use_zeta + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + Modelica.Thermal.HeatTransfer.Components.ThermalCollector thePasThr(final m=1) + if not use_soil "Thermal pass through if there is no soil activated" + annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=180, + origin={-16,54}))); + Interfaces.PassThroughMedium pasThrMed(redeclare package Medium = Medium) + if not use_zeta + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); equation //calculation of the flow velocity of water in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); //calculation of heat losses and heat gains of pipe - der(Q_los) = min(0,floPip.heatPort.Q_flow); - der(Q_gai) = max(0,floPip.heatPort.Q_flow); + der(Q_los) = min(0, pipCor.heatPort.Q_flow); + der(Q_gai) = max(0, pipCor.heatPort.Q_flow); - connect(vol.ports[2], port_b) - annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, + for i in 1:nPorts loop + connect(vol.ports[i + 1], ports_b[i]) + annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); + end for; - connect(floPip.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); - connect(floPip.heatPort, cylHeaTra1.port_a) + connect(pipCor.port_b, vol.ports[1]) + annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + connect(pipCor.heatPort, cylHeaTra1.port_a) annotation (Line(points={{0,10},{0,30}}, color={191,0,0}, pattern=LinePattern.Dash)); connect(cylHeaTra1.port_b, cylHeaTra2.port_a) @@ -284,7 +304,7 @@ equation connect(cylHeaTra3.port_b, heatPort) annotation (Line(points={{0,90.8},{0,90.8},{0,100}}, color={191,0,0}, pattern=LinePattern.Dash)); - connect(floPip.heatPort, thePasThr.port_a[1]) annotation (Line(points={{0,10}, + connect(pipCor.heatPort, thePasThr.port_a[1]) annotation (Line(points={{0,10}, {0,20},{-16,20},{-16,44}}, color={191,0,0}, pattern=LinePattern.Dash)); connect(thePasThr.port_b, heatPort) annotation (Line(points={{-16,64},{-16,94}, @@ -294,7 +314,7 @@ equation points={{-100,0},{-80,0},{-80,20},{-60,20}}, color={0,127,255}, pattern=LinePattern.Dash)); - connect(hydRes.port_b,floPip. port_a) annotation (Line( + connect(hydRes.port_b, pipCor.port_a) annotation (Line( points={{-40,20},{-20,20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); @@ -304,7 +324,7 @@ equation points={{-100,0},{-80,0},{-80,-20},{-60,-20}}, color={0,127,255}, pattern=LinePattern.Dash)); - connect(pasThrMed.port_b,floPip. port_a) annotation (Line( + connect(pasThrMed.port_b, pipCor.port_a) annotation (Line( points={{-40,-20},{-20,-20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo index 66fd0221d6..93b829a206 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo @@ -15,9 +15,11 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{72,40},{52,60}}))); - AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip( + AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + redeclare BaseClassesStatic.StaticCore pipCor "Static core", + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -67,6 +69,8 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip1( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -113,6 +117,8 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" redeclare package Medium = Medium, use_soil=true, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -159,6 +165,8 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" redeclare package Medium = Medium, sum_zetas=2.5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -195,7 +203,7 @@ equation connect(Tin.y, sou.T_in) annotation (Line(points={{-79,54},{-72,54}}, color={0,0,127})); - connect(pip.port_b, senTemOut.port_a) + connect(pip.ports_b[1], senTemOut.port_a) annotation (Line(points={{10,50},{20,50}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) @@ -211,7 +219,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,20}}, color={191,0,0})); connect(Tin1.y, sou1.T_in) annotation (Line(points={{-79,14},{-72,14}}, color={0,0,127})); - connect(pip1.port_b, senTemOut1.port_a) + connect(pip1.ports_b[1], senTemOut1.port_a) annotation (Line(points={{10,10},{20,10}}, color={0,127,255})); connect(senTemOut1.port_b, sin1.ports[1]) annotation (Line(points={{40,10},{52,10}}, color={0,127,255})); @@ -223,7 +231,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,-22}}, color={191,0,0})); connect(Tin2.y, sou2.T_in) annotation (Line(points={{-79,-28},{-72,-28}}, color={0,0,127})); - connect(pip2.port_b, senTemOut2.port_a) + connect(pip2.ports_b[1], senTemOut2.port_a) annotation (Line(points={{10,-32},{20,-32}}, color={0,127,255})); connect(senTemOut2.port_b, sin2.ports[1]) annotation (Line(points={{40,-32},{52,-32}}, color={0,127,255})); @@ -235,7 +243,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,-60}}, color={191,0,0})); connect(Tin3.y, sou3.T_in) annotation (Line(points={{-79,-66},{-72,-66}}, color={0,0,127})); - connect(pip3.port_b, senTemOut3.port_a) + connect(pip3.ports_b[1], senTemOut3.port_a) annotation (Line(points={{10,-70},{20,-70}}, color={0,127,255})); connect(senTemOut3.port_b, sin3.ports[1]) annotation (Line(points={{40,-70},{52,-70}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo index a9e75adf96..abb939f6e8 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo @@ -19,6 +19,7 @@ model PlugFlowPipeEmbedded "Simple example of PlugFlowPipeEmbedded" pip( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -59,7 +60,7 @@ equation color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.port_b, senTemOut.port_a) + connect(pip.ports_b[1], senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo index 6a3d0babab..581ef000c5 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo @@ -17,6 +17,7 @@ model PlugFlowPipeZeta "Simple example of PlugFlowPipe" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); AixLib.Fluid.DistrictHeatingCooling.Pipes.PlugFlowPipeZeta pip( redeclare package Medium = Medium, + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -56,7 +57,7 @@ equation annotation (Line(points={{-20,70},{10,70},{10,10}}, color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.port_b, senTemOut.port_a) + connect(pip.ports_b[1], senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo index 2ba6eae122..e274ce4d09 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo @@ -17,6 +17,7 @@ model StaticPipe "Simple example of StaticPipe" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); AixLib.Fluid.DistrictHeatingCooling.Pipes.StaticPipe pip( redeclare package Medium = Medium, + nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -56,7 +57,7 @@ equation annotation (Line(points={{-20,70},{10,70},{10,10}}, color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.port_b, senTemOut.port_a) + connect(pip.ports_b[1], senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo index a5d95414c5..51b9f7f8c4 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo @@ -2,7 +2,7 @@ model PlugFlowPipeEmbedded "Embedded pipe model using spatialDistribution for temperature delay" - extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state" @@ -61,11 +61,11 @@ model PlugFlowPipeEmbedded parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= - T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) + = T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -135,6 +135,7 @@ model PlugFlowPipeEmbedded final R=R, final fac=fac, final sum_zetas=sum_zetas, + nPorts=nPorts, final use_zeta=true) annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); @@ -214,7 +215,7 @@ equation annotation (Line(points={{0,90.8},{0,104}}, color={191,0,0})); connect(port_a, plugFlowPipeZeta.port_a) annotation (Line(points={{-100,0},{-10,0}}, color={0,127,255})); - connect(plugFlowPipeZeta.port_b, port_b) annotation (Line(points={{10,0},{56, + connect(plugFlowPipeZeta.ports_b, ports_b) annotation (Line(points={{10,0},{56, 0},{56,0},{100,0}}, color={0,127,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo index fe1fb3862d..534405568f 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo @@ -1,7 +1,7 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model PlugFlowPipeZeta "Pipe model using spatialDistribution for temperature delay and conditional HydraulicResistance" - extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -56,11 +56,11 @@ model PlugFlowPipeZeta parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= - T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) + = T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -95,15 +95,12 @@ model PlugFlowPipeZeta "Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)" annotation (Placement(transformation(extent={{-10,90},{10,110}}))); - FixedResistances.PlugFlowPipe plugFlowPipe( + AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowCore plugFlowCore( redeclare final package Medium = Medium, final dh=dh, final v_nominal=v_nominal, final length=length, - final dIns=dIns, - final kIns=kIns, - final cPip=cPip, - final rhoPip=rhoPip, + final C=C, final R=R, final m_flow_small=m_flow_small, final m_flow_nominal=m_flow_nominal, @@ -131,7 +128,7 @@ model PlugFlowPipeZeta redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=2, + final nPorts=nPorts + 1, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -181,23 +178,25 @@ equation //calculation of the flow velocity of medium in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); - connect(vol.ports[2], port_b) - annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, + for i in 1:nPorts loop + connect(vol.ports[i + 1], ports_b[i]) + annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - connect(plugFlowPipe.heatPort, heatPort) + end for; + connect(plugFlowCore.heatPort, heatPort) annotation (Line(points={{0,10},{0,10},{0,100}}, color={191,0,0})); - connect(plugFlowPipe.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); + connect(plugFlowCore.port_b, vol.ports[1]) + annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); if use_zeta then - connect(hydraulicResistance.port_b, plugFlowPipe.port_a) + connect(hydraulicResistance.port_b, plugFlowCore.port_a) annotation (Line(points={{-40,20},{-20,20},{-20,0},{-10,0}}, color={0,127,255}, pattern=LinePattern.Dash)); connect(hydraulicResistance.port_a, port_a) annotation (Line(points={{-60,20},{-80,20},{-80,0},{-100,0}}, color={0,127,255}, pattern=LinePattern.Dash)); else - connect(port_a, plugFlowPipe.port_a) + connect(port_a, plugFlowCore.port_a) annotation (Line(points={{-100,0},{-80,0},{-80,-20},{-20,-20},{-20,0},{-10,0}}, color={0,127,255})); end if; diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo index 6d68d5339c..09ae7f1ff5 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo @@ -1,7 +1,7 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model StaticPipe "Static Pipe model using conditional HydraulicResistance" - extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -56,11 +56,11 @@ model StaticPipe parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= - T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) + = T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -129,7 +129,7 @@ model StaticPipe redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=2, + final nPorts=nPorts + 1, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -179,14 +179,16 @@ equation //calculation of the flow velocity of medium in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); - connect(vol.ports[2], port_b) - annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, + for i in 1:nPorts loop + connect(vol.ports[i + 1], ports_b[i]) + annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); + end for; connect(staticCore.heatPort, heatPort) annotation (Line(points={{0,10},{0,10},{0,100}}, color={191,0,0})); connect(staticCore.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); //Connect hydraulicResistance if use_zeta then connect(hydraulicResistance.port_b, staticCore.port_a) diff --git a/AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo b/AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo new file mode 100644 index 0000000000..93efbe6a03 --- /dev/null +++ b/AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo @@ -0,0 +1,279 @@ +within AixLib.Fluid.FixedResistances.BaseClasses; +model PlugFlowCore + "Pipe model using spatialDistribution for temperature delay with modified delay tracker" + extends AixLib.Fluid.Interfaces.PartialTwoPort; + + constant Boolean homotopyInitialization = true "= true, use homotopy method" + annotation(HideResult=true); + + parameter Modelica.Units.SI.Length dh + "Hydraulic diameter (assuming a round cross section area)"; + + parameter Modelica.Units.SI.Velocity v_nominal + "Velocity at m_flow_nominal (used to compute default value for hydraulic diameter dh)" + annotation(Dialog(group="Nominal condition")); + + parameter Modelica.Units.SI.Length length(min=0) "Pipe length"; + + parameter Modelica.Units.SI.MassFlowRate m_flow_nominal(min=0) + "Nominal mass flow rate" annotation (Dialog(group="Nominal condition")); + + parameter Modelica.Units.SI.MassFlowRate m_flow_small(min=0) = 1E-4*abs( + m_flow_nominal) "Small mass flow rate for regularization of zero flow" + annotation (Dialog(tab="Advanced")); + + parameter Modelica.Units.SI.Height roughness=2.5e-5 + "Average height of surface asperities (default: smooth steel pipe)" + annotation (Dialog(group="Geometry")); + + parameter Real R(unit="(m.K)/W") + "Thermal resistance per unit length from fluid to boundary temperature"; + + parameter Real C(unit="J/(K.m)") + "Thermal capacity per unit length of pipe"; + + parameter Real fac=1 + "Factor to take into account flow resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal"; + + + parameter Boolean from_dp=false + "= true, use m_flow = f(dp) else dp = f(m_flow)" + annotation (Evaluate=true, Dialog(tab="Advanced")); + parameter Modelica.Units.SI.Length thickness(min=0) "Pipe wall thickness"; + + parameter Modelica.Units.SI.Temperature T_start_in=Medium.T_default + "Initialization temperature at pipe inlet" + annotation (Dialog(tab="Initialization")); + parameter Modelica.Units.SI.Temperature T_start_out=Medium.T_default + "Initialization temperature at pipe outlet" + annotation (Dialog(tab="Initialization")); + parameter Boolean initDelay=false + "Initialize delay for a constant mass flow rate if true, otherwise start from 0" + annotation (Dialog(tab="Initialization")); + parameter Modelica.Units.SI.MassFlowRate m_flow_start=0 + annotation (Dialog(tab="Initialization", enable=initDelay)); + + parameter Real ReC=4000 + "Reynolds number where transition to turbulent starts"; + + parameter Boolean linearized = false + "= true, use linear relation between m_flow and dp for any flow rate" + annotation(Evaluate=true, Dialog(tab="Advanced")); + + AixLib.Fluid.FixedResistances.HydraulicDiameter res( + redeclare final package Medium = Medium, + final dh=dh, + final m_flow_nominal=m_flow_nominal, + final from_dp=from_dp, + final length=length, + final roughness=roughness, + final fac=fac, + final ReC=ReC, + final v_nominal=v_nominal, + final allowFlowReversal=allowFlowReversal, + final show_T=false, + final homotopyInitialization=homotopyInitialization, + final linearized=linearized, + dp(nominal=fac*200*length)) + "Pressure drop calculation for this pipe" + annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); + + AixLib.Fluid.FixedResistances.BaseClasses.PlugFlow del( + redeclare final package Medium = Medium, + final m_flow_small=m_flow_small, + final dh=dh, + final length=length, + final allowFlowReversal=allowFlowReversal, + final T_start_in=T_start_in, + final T_start_out=T_start_out) + "Model for temperature wave propagation" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowHeatLoss heaLos_a( + redeclare final package Medium = Medium, + final C=C, + final R=R, + final m_flow_small=m_flow_small, + final T_start=T_start_in, + final m_flow_nominal=m_flow_nominal, + final m_flow_start=m_flow_start, + final show_T=false, + final show_V_flow=false) "Heat loss for flow from port_b to port_a" + annotation (Placement(transformation(extent={{-60,-10},{-80,10}}))); + + AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowHeatLoss heaLos_b( + redeclare final package Medium = Medium, + final C=C, + final R=R, + final m_flow_small=m_flow_small, + final T_start=T_start_out, + final m_flow_nominal=m_flow_nominal, + final m_flow_start=m_flow_start, + final show_T=false, + final show_V_flow=false) "Heat loss for flow from port_a to port_b" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + AixLib.Fluid.Sensors.MassFlowRate senMasFlo( + redeclare final package Medium = Medium) "Mass flow sensor" + annotation (Placement(transformation(extent={{-50,10},{-30,-10}}))); + AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowTransportDelay timDel( + final length=length, + final dh=dh, + final rho=rho_default, + final initDelay=initDelay, + final m_flow_nominal=m_flow_nominal, + final m_flow_start=m_flow_start) "Time delay" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPort + "Heat port to connect environment (positive heat flow for heat loss to surroundings)" + annotation (Placement(transformation(extent={{-10,90},{10,110}}))); + +protected + parameter Modelica.Units.SI.Density rho_default=Medium.density_pTX( + p=Medium.p_default, + T=Medium.T_default, + X=Medium.X_default) + "Default density (e.g., rho_liquidWater = 995, rho_air = 1.2)" + annotation (Dialog(group="Advanced")); + +initial equation + assert(homotopyInitialization, "In " + getInstanceName() + + ": The constant homotopyInitialization has been modified from its default value. This constant will be removed in future releases.", + level = AssertionLevel.warning); + +equation + connect(senMasFlo.m_flow, timDel.m_flow) annotation (Line( + points={{-40,-11},{-40,-40},{-12,-40}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(heaLos_a.heatPort, heatPort) annotation (Line(points={{-70,10},{-70,40}, + {0,40},{0,100}}, color={191,0,0})); + connect(heaLos_b.heatPort, heatPort) annotation (Line(points={{70,10},{70,40}, + {0,40},{0,100}}, color={191,0,0})); + + connect(timDel.tauRev, heaLos_a.tau) annotation (Line(points={{11,-36},{50,-36}, + {50,28},{-64,28},{-64,10}}, color={0,0,127})); + connect(timDel.tau, heaLos_b.tau) annotation (Line(points={{11,-44},{54,-44}, + {54,28},{64,28},{64,10}}, color={0,0,127})); + + connect(port_a, heaLos_a.port_b) + annotation (Line(points={{-100,0},{-80,0}}, color={0,127,255})); + connect(heaLos_a.port_a, senMasFlo.port_a) + annotation (Line(points={{-60,0},{-50,0}}, color={0,127,255})); + connect(heaLos_b.port_b, port_b) + annotation (Line(points={{80,0},{100,0}}, color={0,127,255})); + connect(del.port_a, res.port_b) + annotation (Line(points={{20,0},{0,0}}, color={0,127,255})); + connect(senMasFlo.port_b, res.port_a) + annotation (Line(points={{-30,0},{-20,0}}, color={0,127,255})); + connect(heaLos_b.port_a, del.port_b) + annotation (Line(points={{60,0},{40,0}}, color={0,127,255})); + annotation ( + Line(points={{70,20},{72,20},{72,0},{100,0}}, color={0,127,255}), + Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, + 100}})), + Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,40},{100,-40}}, + lineColor={0,0,0}, + fillPattern=FillPattern.HorizontalCylinder, + fillColor={192,192,192}), + Rectangle( + extent={{-100,30},{100,-30}}, + lineColor={0,0,0}, + fillPattern=FillPattern.HorizontalCylinder, + fillColor={0,127,255}), + Rectangle( + extent={{-100,50},{100,40}}, + lineColor={175,175,175}, + fillColor={255,255,255}, + fillPattern=FillPattern.Backward), + Rectangle( + extent={{-100,-40},{100,-50}}, + lineColor={175,175,175}, + fillColor={255,255,255}, + fillPattern=FillPattern.Backward), + Polygon( + points={{0,100},{40,62},{20,62},{20,38},{-20,38},{-20,62},{-40,62},{0, + 100}}, + lineColor={0,0,0}, + fillColor={238,46,47}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-30,30},{28,-30}}, + lineColor={0,0,0}, + fillPattern=FillPattern.HorizontalCylinder, + fillColor={215,202,187})}), + Documentation(revisions="

      +
    • April 14, 2020, by Michael Wetter:
      + Changed homotopyInitialization to a constant.
      + This is for AixLib, + #1341. +
    • +
    • October 20, 2017, by Michael Wetter:
      + Replaced model that lumps flow resistance and transport delays with + two separate models, as these are physically distinct processes. + This also avoids one more layer of models.
      + Revised variable names and documentation to follow guidelines. +
    • +
    • July 4, 2016 by Bram van der Heijde:
      + Introduce pipVol. +
    • +
    • October 10, 2015 by Marcus Fuchs:
      + Copy Icon from KUL implementation and rename model. Replace + resistance and temperature delay by an adiabatic pipe. +
    • +
    • September, 2015 by Marcus Fuchs:
      + First implementation. +
    • +
    +",info=" +

    + Pipe with heat loss using the time delay based heat losses and plug + flow for the transport delay of the fluid. +

    +

    + Implementation +

    +

    + The spatialDistribution operator is used for the + temperature wave propagation through the length of the pipe. This + operator is contained in BaseClasses.PlugFlow. +

    +

    + This model does not include thermal inertia of the pipe wall. The + wall inertia is implemented in PlugFlowPipe, + which uses this model.
    + The removal of the thermal inertia with a mixing volume can be + desirable in the case where mixing volumes are added manually at the + pipe junctions. +

    +

    + The model + PlugFlowHeatLoss implements a heat loss in design direction, but + leaves the enthalpy unchanged in opposite flow direction. Therefore + it is used in front of and behind the time delay. +

    +

    + References +

    +

    + Full details on the model implementation and experimental validation + can be found in: +

    +

    + van der Heijde, B., Fuchs, M., Ribas Tugores, C., Schweiger, G., + Sartor, K., Basciotti, D., Müller, D., Nytsch-Geusen, C., Wetter, M. + and Helsen, L. (2017).
    + Dynamic equation-based thermo-hydraulic pipe model for district + heating and cooling systems.
    + Energy Conversion and Management, vol. 151, p. 158-169. + doi: + 10.1016/j.enconman.2017.08.072 . +

    +")); +end PlugFlowCore; diff --git a/AixLib/Fluid/FixedResistances/BaseClasses/package.order b/AixLib/Fluid/FixedResistances/BaseClasses/package.order index 3aabb3011a..06493b07b5 100644 --- a/AixLib/Fluid/FixedResistances/BaseClasses/package.order +++ b/AixLib/Fluid/FixedResistances/BaseClasses/package.order @@ -2,3 +2,4 @@ PlugFlow PlugFlowHeatLoss PlugFlowPipe PlugFlowTransportDelay +PlugFlowCore From 0514300c5cdd3dac5c7aa1de9a6226580ec4279f Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 11 Nov 2022 12:10:59 +0100 Subject: [PATCH 38/44] only apply scalars for real --- .../DistrictHeatingCooling/Pipes/DHCPipe.mo | 12 +++++------ .../Pipes/Examples/DHCPipe.mo | 20 ++++++++----------- .../Pipes/Examples/PlugFlowPipeEmbedded.mo | 3 +-- .../Pipes/Examples/PlugFlowPipeZeta.mo | 3 +-- .../Pipes/Examples/StaticPipe.mo | 3 +-- .../Pipes/PlugFlowPipeEmbedded.mo | 11 +++++----- .../Pipes/PlugFlowPipeZeta.mo | 18 ++++++++--------- .../Pipes/StaticPipe.mo | 18 ++++++++--------- 8 files changed, 37 insertions(+), 51 deletions(-) diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo index 3da3ace663..7b755b0697 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo @@ -1,6 +1,6 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model DHCPipe "Generic pipe model for DHC applications" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -181,7 +181,7 @@ model DHCPipe "Generic pipe model for DHC applications" redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=nPorts + 1, + final nPorts=2, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -284,14 +284,12 @@ equation der(Q_los) = min(0, pipCor.heatPort.Q_flow); der(Q_gai) = max(0, pipCor.heatPort.Q_flow); - for i in 1:nPorts loop - connect(vol.ports[i + 1], ports_b[i]) - annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, + connect(vol.ports[2], port_b) + annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - end for; connect(pipCor.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); connect(pipCor.heatPort, cylHeaTra1.port_a) annotation (Line(points={{0,10},{0,30}}, color={191,0,0}, pattern=LinePattern.Dash)); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo index 93b829a206..4ff557128e 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/DHCPipe.mo @@ -15,11 +15,10 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{72,40},{52,60}}))); - AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip( + AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, redeclare BaseClassesStatic.StaticCore pipCor "Static core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -66,11 +65,10 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{72,0},{52,20}}))); - AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip1( + AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip1( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -113,12 +111,11 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{72,-42},{52,-22}}))); - AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip2( + AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip2( redeclare package Medium = Medium, use_soil=true, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -161,12 +158,11 @@ model DHCPipe "Simple example of DHCPipe and its four different modes" nPorts=1, p(displayUnit="Pa") = 101325) "Pressure boundary condition" annotation (Placement(transformation(extent={{72,-80},{52,-60}}))); - AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip3( + AixLib.Fluid.DistrictHeatingCooling.Pipes.DHCPipe pip3( redeclare package Medium = Medium, sum_zetas=2.5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, redeclare FixedResistances.BaseClasses.PlugFlowCore pipCor "PlugFlow core", - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -203,7 +199,7 @@ equation connect(Tin.y, sou.T_in) annotation (Line(points={{-79,54},{-72,54}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{10,50},{20,50}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) @@ -219,7 +215,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,20}}, color={191,0,0})); connect(Tin1.y, sou1.T_in) annotation (Line(points={{-79,14},{-72,14}}, color={0,0,127})); - connect(pip1.ports_b[1], senTemOut1.port_a) + connect(pip1.port_b, senTemOut1.port_a) annotation (Line(points={{10,10},{20,10}}, color={0,127,255})); connect(senTemOut1.port_b, sin1.ports[1]) annotation (Line(points={{40,10},{52,10}}, color={0,127,255})); @@ -231,7 +227,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,-22}}, color={191,0,0})); connect(Tin2.y, sou2.T_in) annotation (Line(points={{-79,-28},{-72,-28}}, color={0,0,127})); - connect(pip2.ports_b[1], senTemOut2.port_a) + connect(pip2.port_b, senTemOut2.port_a) annotation (Line(points={{10,-32},{20,-32}}, color={0,127,255})); connect(senTemOut2.port_b, sin2.ports[1]) annotation (Line(points={{40,-32},{52,-32}}, color={0,127,255})); @@ -243,7 +239,7 @@ equation annotation (Line(points={{-80,90},{0,90},{0,-60}}, color={191,0,0})); connect(Tin3.y, sou3.T_in) annotation (Line(points={{-79,-66},{-72,-66}}, color={0,0,127})); - connect(pip3.ports_b[1], senTemOut3.port_a) + connect(pip3.port_b, senTemOut3.port_a) annotation (Line(points={{10,-70},{20,-70}}, color={0,127,255})); connect(senTemOut3.port_b, sin3.ports[1]) annotation (Line(points={{40,-70},{52,-70}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo index abb939f6e8..a9e75adf96 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeEmbedded.mo @@ -19,7 +19,6 @@ model PlugFlowPipeEmbedded "Simple example of PlugFlowPipeEmbedded" pip( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -60,7 +59,7 @@ equation color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo index 581ef000c5..6a3d0babab 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/PlugFlowPipeZeta.mo @@ -17,7 +17,6 @@ model PlugFlowPipeZeta "Simple example of PlugFlowPipe" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); AixLib.Fluid.DistrictHeatingCooling.Pipes.PlugFlowPipeZeta pip( redeclare package Medium = Medium, - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -57,7 +56,7 @@ equation annotation (Line(points={{-20,70},{10,70},{10,10}}, color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo index e274ce4d09..2ba6eae122 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/Examples/StaticPipe.mo @@ -17,7 +17,6 @@ model StaticPipe "Simple example of StaticPipe" annotation (Placement(transformation(extent={{82,-10},{62,10}}))); AixLib.Fluid.DistrictHeatingCooling.Pipes.StaticPipe pip( redeclare package Medium = Medium, - nPorts=1, dh=0.1, length=100, dIns=0.05, @@ -57,7 +56,7 @@ equation annotation (Line(points={{-20,70},{10,70},{10,10}}, color={191,0,0})); connect(Tin.y, sou.T_in) annotation (Line(points={{-71,4},{-62,4}}, color={0,0,127})); - connect(pip.ports_b[1], senTemOut.port_a) + connect(pip.port_b, senTemOut.port_a) annotation (Line(points={{20,0},{30,0}}, color={0,127,255})); connect(senTemOut.port_b, sin.ports[1]) annotation (Line(points={{50,0},{62,0}}, color={0,127,255})); diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo index 51b9f7f8c4..a5d95414c5 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeEmbedded.mo @@ -2,7 +2,7 @@ model PlugFlowPipeEmbedded "Embedded pipe model using spatialDistribution for temperature delay" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state" @@ -61,11 +61,11 @@ model PlugFlowPipeEmbedded parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) - = T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -135,7 +135,6 @@ model PlugFlowPipeEmbedded final R=R, final fac=fac, final sum_zetas=sum_zetas, - nPorts=nPorts, final use_zeta=true) annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); @@ -215,7 +214,7 @@ equation annotation (Line(points={{0,90.8},{0,104}}, color={191,0,0})); connect(port_a, plugFlowPipeZeta.port_a) annotation (Line(points={{-100,0},{-10,0}}, color={0,127,255})); - connect(plugFlowPipeZeta.ports_b, ports_b) annotation (Line(points={{10,0},{56, + connect(plugFlowPipeZeta.port_b, port_b) annotation (Line(points={{10,0},{56, 0},{56,0},{100,0}}, color={0,127,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo index 534405568f..b2398e1204 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/PlugFlowPipeZeta.mo @@ -1,7 +1,7 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model PlugFlowPipeZeta "Pipe model using spatialDistribution for temperature delay and conditional HydraulicResistance" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -56,11 +56,11 @@ model PlugFlowPipeZeta parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) - = T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -128,7 +128,7 @@ model PlugFlowPipeZeta redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=nPorts + 1, + final nPorts=2, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -178,16 +178,14 @@ equation //calculation of the flow velocity of medium in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); - for i in 1:nPorts loop - connect(vol.ports[i + 1], ports_b[i]) - annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, + connect(vol.ports[2], port_b) + annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - end for; connect(plugFlowCore.heatPort, heatPort) annotation (Line(points={{0,10},{0,10},{0,100}}, color={191,0,0})); connect(plugFlowCore.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); if use_zeta then connect(hydraulicResistance.port_b, plugFlowCore.port_a) annotation (Line(points={{-40,20},{-20,20},{-20,0},{-10,0}}, diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo index 09ae7f1ff5..5986218d4d 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/StaticPipe.mo @@ -1,7 +1,7 @@ within AixLib.Fluid.DistrictHeatingCooling.Pipes; model StaticPipe "Static Pipe model using conditional HydraulicResistance" - extends AixLib.Fluid.Interfaces.PartialTwoPortVector(show_T=true); + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface(show_T=true); parameter Boolean use_zeta=false "= true HydraulicResistance is implemented, zeta value has to be given next" @@ -56,11 +56,11 @@ model StaticPipe parameter Modelica.Units.SI.Length thickness=0.0035 "Pipe wall thickness" annotation (Dialog(group="Material")); - parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default) = + parameter Modelica.Units.SI.Temperature T_start_in(start=Medium.T_default)= Medium.T_default "Initialization temperature at pipe inlet" annotation (Dialog(tab="Initialization")); - parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default) - = T_start_in "Initialization temperature at pipe outlet" + parameter Modelica.Units.SI.Temperature T_start_out(start=Medium.T_default)= + T_start_in "Initialization temperature at pipe outlet" annotation (Dialog(tab="Initialization")); parameter Boolean initDelay(start=false) = false "Initialize delay for a constant mass flow rate if true, otherwise start from 0" @@ -129,7 +129,7 @@ model StaticPipe redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, - final nPorts=nPorts + 1, + final nPorts=2, final T_start=T_start_out, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, final mSenFac = if rho_default > 500 then 1 else 10) @@ -179,16 +179,14 @@ equation //calculation of the flow velocity of medium in the pipes v_med = (4 * port_a.m_flow) / (Modelica.Constants.pi * rho_default * dh * dh); - for i in 1:nPorts loop - connect(vol.ports[i + 1], ports_b[i]) - annotation (Line(points={{70,20},{72,20},{72,6},{72,0},{100,0}}, + connect(vol.ports[2], port_b) + annotation (Line(points={{71,20},{72,20},{72,6},{72,0},{100,0}}, color={0,127,255})); - end for; connect(staticCore.heatPort, heatPort) annotation (Line(points={{0,10},{0,10},{0,100}}, color={191,0,0})); connect(staticCore.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); //Connect hydraulicResistance if use_zeta then connect(hydraulicResistance.port_b, staticCore.port_a) From a311c79ccc15269a666d4d7e8a5979752bc97e58 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 6 Dec 2022 13:02:04 +0100 Subject: [PATCH 39/44] chore: review from lma --- .../PumpHeadControlled.mo | 24 ++++++++--------- .../PumpSpeedControlled.mo | 27 ++++++++++--------- ...mialBased_Examples_PumpSpeedControlled.txt | 2 +- ...lBased_Examples_PumpSpeedControlledDpV.txt | 2 +- AixLib/Systems/ModularAHU/Examples/Cooler.mo | 3 +-- AixLib/Systems/ModularAHU/Examples/Heater.mo | 4 +-- .../SolarGain/CorrectionGDoublePane.mo | 2 +- .../SelfShadowing/SelfShadowingTestAbove.mo | 6 +++-- .../SelfShadowing/SelfShadowingTestBelow.mo | 6 +++-- .../SelfShadowing/SelfShadowingTestLeft.mo | 3 ++- .../SelfShadowing/SelfShadowingTestRight.mo | 3 ++- 11 files changed, 44 insertions(+), 38 deletions(-) diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo index 2e102b5526..9b9c895d48 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpHeadControlled.mo @@ -221,23 +221,23 @@ equation color={0,0,127}, smooth=Smooth.None)); - connect(pumpPower.y, pumpBus.PelMea) annotation (Line(points={{-79,76},{-66,76},{-66,93},{0.5975,93},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(pumpPower.y, pumpBus.PelMea) annotation (Line(points={{-79,76},{-66, + 76},{-66,93},{0.5975,93},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(pumpHead.y, pumpBus.dpMea) annotation (Line(points={{94,-10},{95,-10},{95,90},{0.5975,90},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(pumpHead.y, pumpBus.dpMea) annotation (Line(points={{94,-10},{95,-10}, + {95,90},{0.5975,90},{0.5975,100.597}},color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(pumpEfficiency.y, pumpBus.efficiencyMea) annotation (Line(points={{-79,60},{-62,60},{-62,100.597},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(pumpEfficiency.y, pumpBus.efficiencyMea) annotation (Line(points={{-79,60}, + {-62,60},{-62,100.597},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(onOff.u2, pumpBus.onSet) annotation (Line(points={{46,20},{38,20},{38,100.597},{0.5975,100.597}}, - color={255,0,255}), Text( + connect(onOff.u2, pumpBus.onSet) annotation (Line(points={{46,20},{38,20},{38, + 100.597},{0.5975,100.597}}, color={255,0,255}), Text( string="%second", index=1, extent={{6,3},{6,3}})); @@ -253,14 +253,14 @@ equation index=1, extent={{6,3},{6,3}})); - connect(variableLimiter.u, pumpBus.dpSet) annotation (Line(points={{-12,20},{-19,20},{-19,100.597},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(variableLimiter.u, pumpBus.dpSet) annotation (Line(points={{-12,20},{ + -19,20},{-19,100.597},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{-6,3},{-6,3}}, horizontalAlignment=TextAlignment.Right)); - connect(realExpression.y, pumpBus.rpmMea) annotation (Line(points={{30,44},{30,100.597},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(realExpression.y, pumpBus.rpmMea) annotation (Line(points={{30,44},{ + 30,100.597},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{-3,6},{-3,6}}, diff --git a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpSpeedControlled.mo b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpSpeedControlled.mo index 252e71c25b..9b25e5cd14 100644 --- a/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpSpeedControlled.mo +++ b/AixLib/Fluid/Movers/PumpsPolynomialBased/PumpSpeedControlled.mo @@ -244,17 +244,18 @@ equation color={0,0,127}, smooth=Smooth.None)); - connect(pumpPower.y, pumpBus.PelMea) annotation (Line(points={{-79,76},{-66,76},{-66,93},{0.5975,93},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(pumpPower.y, pumpBus.PelMea) annotation (Line(points={{-79,76},{-66, + 76},{-66,93},{0.5975,93},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(pumpEfficiency.y, pumpBus.efficiencyMea) annotation (Line(points={{-79,60},{-62,60},{-62,100.597},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(pumpEfficiency.y, pumpBus.efficiencyMea) annotation (Line(points={{-79,60}, + {-62,60},{-62,100.597},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); - connect(onOffHead.u2, pumpBus.onSet) annotation (Line(points={{-8,-40},{-43,-40},{-43,-16},{69,-16},{69,100.597},{0.5975,100.597}}, + connect(onOffHead.u2, pumpBus.onSet) annotation (Line(points={{-8,-40},{-43, + -40},{-43,-16},{69,-16},{69,100.597},{0.5975,100.597}}, color={255,0,255}), Text( string="%second", @@ -264,24 +265,24 @@ equation -48},{-8,-48}}, color={0,0,127})); connect(deMultiplex2.y1[1], variableLimiter.limit1) annotation (Line(points={{ -26,26},{-23,26},{-23,28},{-12,28}}, color={0,0,127})); - connect(variableLimiter.u, pumpBus.rpmSet) annotation (Line(points={{-12,20},{-20,20},{-20,38},{0.5975,38},{0.5975,100.597}}, - color={0,0,127}), + connect(variableLimiter.u, pumpBus.rpmSet) annotation (Line(points={{-12,20}, + {-20,20},{-20,38},{0.5975,38},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); connect(onOffHead.y, criticalDamping.u) annotation (Line(points={{15,-40},{21,-40}}, color={0,0,127})); - connect(pumpHead.y, pumpBus.dpMea) annotation (Line(points={{75,-40},{81,-40},{81,90},{0.5975,90},{0.5975,100.597}}, - color={0,0,127}), Text( + connect(pumpHead.y, pumpBus.dpMea) annotation (Line(points={{75,-40},{81,-40}, + {81,90},{0.5975,90},{0.5975,100.597}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}})); connect(variableLimiter.y, onOffn.u1) annotation (Line(points={{11,20},{12,20}, {12,28},{17,28}}, color={0,0,127})); - connect(onOffn.u2, pumpBus.onSet) annotation (Line(points={{17,20},{14,20},{14,49},{36,49},{36,100.597},{0.5975,100.597}}, - color={255,0,255}), + connect(onOffn.u2, pumpBus.onSet) annotation (Line(points={{17,20},{14,20},{ + 14,49},{36,49},{36,100.597},{0.5975,100.597}}, color={255,0,255}), Text( string="%second", index=3, @@ -308,9 +309,9 @@ equation connect(pressure_difference.y, idealSource.dp_in) annotation (Line(points={{-50,-66},{-15,-66},{-15,-72}}, color={0,0,127})); connect(idealSource.port_b, vol.ports[1]) - annotation (Line(points={{-11,-80},{31,-80}}, color={0,127,255})); + annotation (Line(points={{-11,-80},{32,-80}}, color={0,127,255})); connect(vol.ports[2], port_b) - annotation (Line(points={{35,-80},{100,-80},{100,0}}, color={0,127,255})); + annotation (Line(points={{34,-80},{100,-80},{100,0}}, color={0,127,255})); annotation ( Diagram(coordinateSystem( preserveAspectRatio=true, diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt index e7ec5c0cda..b1dccfc937 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt @@ -1,4 +1,4 @@ -last-generated=2022-10-14 +last-generated=2022-05-23 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt index f9a3ccf013..34bd4bf893 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt @@ -1,4 +1,4 @@ -last-generated=2022-10-14 +last-generated=2022-05-23 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Systems/ModularAHU/Examples/Cooler.mo b/AixLib/Systems/ModularAHU/Examples/Cooler.mo index a0335fd1de..041619c466 100644 --- a/AixLib/Systems/ModularAHU/Examples/Cooler.mo +++ b/AixLib/Systems/ModularAHU/Examples/Cooler.mo @@ -7,7 +7,6 @@ model Cooler "Cooler register example" annotation (choicesAllMatching=true); RegisterModule registerModule( - redeclare HydraulicModules.ThrottlePump hydraulicModule( parameterPipe=AixLib.DataBase.Pipes.Copper.Copper_35x1_5(), parameterIso=AixLib.DataBase.Pipes.Insulation.Iso25pc(), @@ -22,7 +21,6 @@ model Cooler "Cooler register example" redeclare package Medium1 = MediumAir, T_amb=293.15,T_start=297.15, dynamicHX( - Q_nom=30000, dT_nom=20,dp1_nominal=100, dp2_nominal=6000), @@ -31,6 +29,7 @@ model Cooler "Cooler register example" m1_flow_nominal=1, m2_flow_nominal=0.1, massDynamics = Modelica.Fluid.Types.Dynamics.SteadyStateInitial) annotation (Placement(transformation(extent={{-40,-46},{26,40}}))); + Fluid.Sources.Boundary_pT boundaryWaterSource( p=300000, nPorts=1, diff --git a/AixLib/Systems/ModularAHU/Examples/Heater.mo b/AixLib/Systems/ModularAHU/Examples/Heater.mo index 1ba666d427..f2262695c4 100644 --- a/AixLib/Systems/ModularAHU/Examples/Heater.mo +++ b/AixLib/Systems/ModularAHU/Examples/Heater.mo @@ -23,7 +23,6 @@ model Heater "Heating register" redeclare package Medium1 = MediumAir, T_amb=293.15, dynamicHX( - Q_nom=30000, dT_nom=20,dp1_nominal=100, dp2_nominal=6000), @@ -32,6 +31,7 @@ model Heater "Heating register" m1_flow_nominal=1, m2_flow_nominal=0.1, massDynamics = Modelica.Fluid.Types.Dynamics.SteadyStateInitial) annotation (Placement(transformation(extent={{-40,-46},{26,40}}))); + Fluid.Sources.Boundary_pT boundaryWaterSource( nPorts=1, redeclare package Medium = MediumWater, @@ -96,7 +96,7 @@ equation StopTime=3600, __Dymola_fixedstepsize=1, __Dymola_Algorithm="Dassl"), - __Dymola_Commands(file(ensureSimulated=true) = + __Dymola_Commands(file(ensureSimulated=true)= "Resources/Scripts/Dymola/Systems/ModularAHU/Examples/Heater.mos" "Simulate and plot")); end Heater; diff --git a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo index 651d2e1f27..e8124a7049 100644 --- a/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo +++ b/AixLib/ThermalZones/ReducedOrder/SolarGain/CorrectionGDoublePane.mo @@ -139,4 +139,4 @@ equation
"), __Dymola_LockedEditing="Model from IBPSA"); -end CorrectionGDoublePane; \ No newline at end of file +end CorrectionGDoublePane; diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo index 20579ad1ad..b0401985dc 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestAbove.mo @@ -18,7 +18,8 @@ model SelfShadowingTestAbove final til={1.5707963267949}) "Shadowing due to a projection above the window" annotation (Placement(transformation(extent={{56,46},{88,74}}))); - AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til=90) + AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til= + 1.5707963267949) "Incidence angle for the window" annotation (Placement(transformation(extent={{-26,40},{-6,60}}))); Modelica.Blocks.Sources.Constant solAzi(k=0) @@ -46,7 +47,8 @@ model SelfShadowingTestAbove final til={1.5707963267949}) "Shadowing due to a projection above the window" annotation (Placement(transformation(extent={{56,-32},{88,-4}}))); - AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng2(azi=0, til=90) + AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng2(azi=0, til= + 1.5707963267949) "Incidence angle for the window" annotation (Placement(transformation(extent={{-26,-38},{-6,-18}}))); Modelica.Blocks.Sources.Sine solAziSine(f=0.25, amplitude=2*Modelica.Constants.pi) diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo index 9e37e46af2..0c84cd59f7 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestBelow.mo @@ -17,7 +17,8 @@ model SelfShadowingTestBelow final dBel={0.01}, final bBel={1}) "Shadowing due to a projection below" annotation (Placement(transformation(extent={{56,46},{88,74}}))); - AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til=90) + AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til= + 1.5707963267949) "Incidence Angle for the window" annotation (Placement(transformation(extent={{-26,40},{-6,60}}))); Modelica.Blocks.Sources.Constant solAzi(k=0) @@ -41,7 +42,8 @@ model SelfShadowingTestBelow final bBel={1}, final dBel={-0.2}) "Shadowing due to a balkony" annotation (Placement(transformation(extent={{56,-40},{88,-12}}))); - AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng2(azi=0, til=90) + AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng2(azi=0, til= + 1.5707963267949) "Incidence angle for the window" annotation (Placement(transformation(extent={{-26,-46},{-6,-26}}))); Modelica.Blocks.Sources.Constant solAzi1(k=0) diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo index 58493f8792..d63251fd42 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestLeft.mo @@ -18,7 +18,8 @@ model SelfShadowingTestLeft final dLef={0.01}) "Shadowing due to a projection on the left-hand side of the window" annotation (Placement(transformation(extent={{62,-4},{94,24}}))); - AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til=90) + AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til= + 1.5707963267949) "Incidence angle for the window" annotation (Placement(transformation(extent={{-10,-12},{10,8}}))); Modelica.Blocks.Sources.Constant alt(k=0.3490658504) diff --git a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo index 5381f21ac6..a79c8f6e3c 100644 --- a/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo +++ b/AixLib/ThermalZones/ReducedOrder/Windows/Validation/SelfShadowing/SelfShadowingTestRight.mo @@ -18,7 +18,8 @@ model SelfShadowingTestRight final dAbo={0}) "Shadowing due to a projection on the right-hand side" annotation (Placement(transformation(extent={{60,-4},{92,24}}))); - AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til=90) + AixLib.ThermalZones.ReducedOrder.Windows.Validation.BaseClasses.IncidenceAngleVDI6007 incAng1(azi=0, til= + 1.5707963267949) "Incidence Angle for the window" annotation (Placement(transformation(extent={{-10,-12},{10,8}}))); Modelica.Blocks.Sources.Constant alt(k=0.3490658504) From 39592155ff4e65ea39f930a9a450887875258899 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 6 Dec 2022 14:04:29 +0100 Subject: [PATCH 40/44] fix path and annotation --- AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo index 7b755b0697..62680b42ff 100644 --- a/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo +++ b/AixLib/Fluid/DistrictHeatingCooling/Pipes/DHCPipe.mo @@ -177,7 +177,7 @@ model DHCPipe "Generic pipe model for DHC applications" // See also AixLib.Fluid.FixedResistances.Validation.PlugFlowPipes.TransportWaterAir // for why mSenFac is 10 and not 1000, as this gives more reasonable // temperature step response - Fluid.MixingVolumes.MixingVolume vol( + AixLib.Fluid.MixingVolumes.MixingVolume vol( redeclare final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final V=if rho_default > 500 then VEqu else VEqu/1000, @@ -289,7 +289,7 @@ equation color={0,127,255})); connect(pipCor.port_b, vol.ports[1]) - annotation (Line(points={{10,0},{69,0},{69,20}}, color={0,127,255})); + annotation (Line(points={{10,0},{70,0},{70,20}}, color={0,127,255})); connect(pipCor.heatPort, cylHeaTra1.port_a) annotation (Line(points={{0,10},{0,30}}, color={191,0,0}, pattern=LinePattern.Dash)); From fe8dbd6fa5e5e06ae8b9dcda3615ec2e7252fb15 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 6 Dec 2022 14:25:38 +0100 Subject: [PATCH 41/44] Revert lines, add revisions --- .../Fluid/Humidifiers/GenericHumidifier_u.mo | 21 +++++---- AixLib/Systems/HydraulicModules/Admix.mo | 12 ++++- .../Systems/HydraulicModules/Example/Pump.mo | 47 ++++++++++++------- .../HydraulicModules/Example/ThrottlePump.mo | 10 ++-- AixLib/Systems/HydraulicModules/Injection.mo | 15 +++--- .../HydraulicModules/Injection2WayValve.mo | 16 +++++-- .../ModularAHU/Validation/AHU2_Cooler.mo | 10 ++-- 7 files changed, 86 insertions(+), 45 deletions(-) diff --git a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo index 633bac7a13..d307485b6b 100644 --- a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo +++ b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo @@ -49,9 +49,9 @@ model GenericHumidifier_u annotation (Placement(transformation(extent={{-100,-104},{-80,-84}}))); Modelica.Blocks.Routing.RealPassThrough Tsteam if steamHumidifier annotation (Placement(transformation(extent={{-60,-98},{-40,-78}}))); - Modelica.Blocks.Sources.RealExpression realExpression(y = mWat_flow_nominal) annotation( + Modelica.Blocks.Sources.RealExpression realExpression(y = mWat_flow_nominal) annotation ( Placement(visible = true, transformation(origin = {-62, 32}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); - Modelica.Blocks.Math.Product product annotation( + Modelica.Blocks.Math.Product product annotation ( Placement(visible = true, transformation(origin = {-20, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); protected Modelica.Blocks.Interfaces.RealInput Tsteam_intern; @@ -64,10 +64,10 @@ equation if not steamHumidifier then Tsteam_intern = 273.15; end if; - + connect(Tsteam.y, Tsteam_intern); connect(product.y, vol.mWat_flow) annotation (Line( - points={{-37,60},{-30,60},{-30,-18},{-11,-18}}, + points={{-9,60},{-30,60},{-30,-18},{-11,-18}}, color={0,0,127})); connect(u, limiter.u) annotation (Line(points={{-120,60},{-92,60}}, color={0,0,127})); @@ -100,11 +100,11 @@ equation points={{-79,-94},{-72,-94},{-72,-88},{-62,-88}}, color={0,0,127}, pattern=LinePattern.Dash)); - connect(limiter.y, product.u1) annotation( - Line(points = {{-68, 60}, {-48, 60}, {-48, 66}, {-32, 66}}, color = {0, 0, 127})); - connect(realExpression.y, product.u2) annotation( - Line(points = {{-50, 32}, {-40, 32}, {-40, 54}, {-32, 54}}, color = {0, 0, 127})); - connect(product.y, mWat_flow) annotation( + connect(limiter.y, product.u1) annotation ( + Line(points={{-69,60},{-48,60},{-48,66},{-32,66}}, color = {0, 0, 127})); + connect(realExpression.y, product.u2) annotation ( + Line(points={{-51,32},{-40,32},{-40,54},{-32,54}}, color = {0, 0, 127})); + connect(product.y, mWat_flow) annotation ( Line(points = {{-9, 60}, {110, 60}}, color = {0, 0, 127})); annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100, -100},{100,100}}), graphics={Text(lineColor = {0, 0, 127}, extent = {{-52, -60}, {58, -120}}, textString = "m=%m_flow_nominal"), @@ -165,6 +165,9 @@ Documentation(info="

", revisions="
    +
  • December 06, 2022, by FG Modelica:
    + Fixes to increase compatability to OpenModelica #1378. +
  • October 22, 2019, by Alexander Kümpel:
    First implementation.
  • diff --git a/AixLib/Systems/HydraulicModules/Admix.mo b/AixLib/Systems/HydraulicModules/Admix.mo index dc12bee506..ab53e75227 100644 --- a/AixLib/Systems/HydraulicModules/Admix.mo +++ b/AixLib/Systems/HydraulicModules/Admix.mo @@ -152,7 +152,7 @@ equation index=1, extent={{6,3},{6,3}})); connect(pipe5.port_a,junc456. ports[1]) - annotation (Line(points={{-50,-60},{-32.1333,-60}}, color={0,127,255})); + annotation (Line(points={{-50,-60},{-31.0667,-60}}, color={0,127,255})); connect(pipe6.port_a,junc456. ports[2]) annotation (Line(points={{-30,-28},{ -30,-44},{-30,-60},{-30,-60}}, color={0,127,255})); @@ -185,7 +185,7 @@ equation connect(pipe1.port_b, valve.port_1) annotation (Line(points={{-62,20},{-40,20}}, color={0,127,255})); connect(pipe4.port_b, junc456.ports[3]) - annotation (Line(points={{24,-60},{-27.8667,-60}}, color={0,127,255})); + annotation (Line(points={{24,-60},{-28.9333,-60}}, color={0,127,255})); connect(pipe5.port_b, senT_b2.port_a) annotation (Line(points={{-66,-60},{-78,-60}}, color={0,127,255})); connect(pipe2.port_b, PumpInterface.port_a) annotation (Line(points={{8,20},{ @@ -303,5 +303,13 @@ equation First implementation
+", revisions="
    +
  • December 06, 2022, by FG Modelica:
    + Fixes to increase compatability to OpenModelica #1378. +
  • +
  • 2017-06 by Alexander Kümpel:
    + Implemented +
  • +
")); end Admix; diff --git a/AixLib/Systems/HydraulicModules/Example/Pump.mo b/AixLib/Systems/HydraulicModules/Example/Pump.mo index 84f292e385..79255acce5 100644 --- a/AixLib/Systems/HydraulicModules/Example/Pump.mo +++ b/AixLib/Systems/HydraulicModules/Example/Pump.mo @@ -54,33 +54,44 @@ model Pump "Test for unmixed pump circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); - Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation ( Placement(visible = true, transformation(origin = {-86, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation - connect(Unmixed.hydraulicBus, hydraulicBus) annotation( - Line(points = {{-20, 10}, {-42, 10}}, color = {255, 204, 51}, thickness = 0.5), - Text(string = "%second", index = 1, extent = {{6, 3}, {6, 3}})); - connect(hydRes.port_b, Unmixed.port_a2) annotation( - Line(points = {{20, 60}, {28, 60}, {28, 40}}, color = {0, 127, 255})); - connect(hydRes.port_a, Unmixed.port_b1) annotation( - Line(points = {{0, 60}, {-8, 60}, {-8, 40}}, color = {0, 127, 255})); - connect(boundary.ports[1], Unmixed.port_a1) annotation( - Line(points = {{-8, -40}, {-8, -20}}, color = {0, 127, 255})); - connect(boundary1.ports[1], Unmixed.port_b2) annotation( - Line(points = {{28, -40}, {28, -20}, {28, -20}}, color = {0, 127, 255})); - connect(RPM_ramp.y, hydraulicBus.pumpBus.rpmSet) annotation( - Line(points = {{-79, 10}, {-60, 10}, {-60, 10.05}, {-41.95, 10.05}}, color = {0, 0, 127}), - Text(string = "%second", index = 1, extent = {{6, 3}, {6, 3}}, horizontalAlignment = TextAlignment.Left)); - connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( - Line(points = {{-74, -28}, {-42, -28}, {-42, 10}}, color = {255, 0, 255})); + connect(Unmixed.hydraulicBus, hydraulicBus) annotation (Line( + points={{-20,10},{-42,10}}, + color={255,204,51}, + thickness=0.5), Text( + string="%second", + index=1, + extent={{6,3},{6,3}})); + connect(hydRes.port_b, Unmixed.port_a2) + annotation (Line(points={{20,60},{28,60},{28,40}}, color={0,127,255})); + connect(hydRes.port_a, Unmixed.port_b1) + annotation (Line(points={{0,60},{-8,60},{-8,40}}, color={0,127,255})); + connect(boundary.ports[1], Unmixed.port_a1) + annotation (Line(points={{-8,-40},{-8,-20}}, color={0,127,255})); + connect(boundary1.ports[1], Unmixed.port_b2) + annotation (Line(points={{28,-40},{28,-20},{28,-20}}, color={0,127,255})); + connect(RPM_ramp.y, hydraulicBus.pumpBus.rpmSet) annotation (Line(points={{ + -79,10},{-60,10},{-60,10.05},{-41.95,10.05}}, color={0,0,127}), Text( + string="%second", + index=1, + extent={{6,3},{6,3}}, + horizontalAlignment=TextAlignment.Left)); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation ( + Line(points={{-75,-28},{-41.95,-28},{-41.95,10.05}}, + color = {255, 0, 255})); annotation (Placement(transformation(extent={{80,80},{100,100}})), Icon(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-100, -100},{120,100}})), Diagram( coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, 100}})), - experiment(StopTime=800,Interval = 5,Solver=dassl), + experiment(StopTime=800,Interval = 5), Documentation(revisions="
    +
  • December 06, 2022, by FG Modelica:
    + Fixes to increase compatability to OpenModelica #1378. +
  • October 25, 2017, by Alexander Kümpel:
    Transfer from ZUGABE to AixLib.
  • diff --git a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo index 5626671dbf..7fc29d241d 100644 --- a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo +++ b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo @@ -53,7 +53,7 @@ model ThrottlePump "Test for unmixed throttle and pump circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); - Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation ( Placement(visible = true, transformation(origin = {-86, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(ThrottlePump.hydraulicBus, hydraulicBus) annotation (Line( @@ -82,8 +82,9 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); - connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation( - Line(points = {{-74, -30}, {-50, -30}, {-50, 10}}, color = {255, 0, 255})); + connect(pumpOn.y, hydraulicBus.pumpBus.onSet) annotation ( + Line(points={{-75,-30},{-49.95,-30},{-49.95,10.05}}, + color = {255, 0, 255})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-100, -100},{120,100}})), Diagram( @@ -91,6 +92,9 @@ equation 100}})), experiment(StopTime=600), Documentation(revisions="
      +
    • December 06, 2022, by FG Modelica:
      + Fixes to increase compatability to OpenModelica #1378. +
    • October 25, 2017, by Alexander Kümpel:
      Transfer from ZUGABE to AixLib.
    • diff --git a/AixLib/Systems/HydraulicModules/Injection.mo b/AixLib/Systems/HydraulicModules/Injection.mo index 41bbb99d13..889cb91b2e 100644 --- a/AixLib/Systems/HydraulicModules/Injection.mo +++ b/AixLib/Systems/HydraulicModules/Injection.mo @@ -239,13 +239,13 @@ equation connect(pipe8.heatPort, pipe9.heatPort) annotation (Line(points={{-32,-20},{8,-20}}, color={191,0,0})); connect(pipe2.port_a, junc15j.ports[1]) - annotation (Line(points={{-30,20},{-41.0667,20}}, + annotation (Line(points={{-30,20},{-40.5333,20}}, color={0,127,255})); connect(VFSen_injection.port_b, juncjp6.ports[1]) - annotation (Line(points={{8,20},{14.9333,20}}, + annotation (Line(points={{8,20},{15.4667,20}}, color={0,127,255})); connect(pipe6.port_a, junc3v6.ports[1]) - annotation (Line(points={{0,-60},{14.9333,-60}}, + annotation (Line(points={{0,-60},{15.4667,-60}}, color={0,127,255})); connect(juncjp6.ports[2], pipe3.port_a) annotation (Line(points={{16,20},{24,20}}, color={0,127,255})); @@ -302,13 +302,13 @@ equation connect(pipe8.port_b, valve.port_3) annotation (Line(points={{-40,-28},{-40,-52}}, color={0,127,255})); connect(pipe9.port_b, juncjp6.ports[3]) annotation (Line(points={{16,-12},{16, - 20},{17.0667,20}}, color={0,127,255})); + 20},{16.5333,20}}, color={0,127,255})); connect(pipe9.port_a, junc3v6.ports[3]) annotation (Line(points={{16,-28},{16, - -60},{17.0667,-60}}, color={0,127,255})); + -60},{16.5333,-60}}, color={0,127,255})); connect(pipe4.port_b, senT_b1.port_a) annotation (Line(points={{86,20},{88,20}}, color={0,127,255})); connect(pipe8.port_a, junc15j.ports[3]) annotation (Line(points={{-40,-12},{ - -40,20},{-38.9333,20}}, color={0,127,255})); + -40,20},{-39.4667,20}}, color={0,127,255})); connect(pipe9.heatPort, prescribedTemperature.port) annotation (Line(points={ {8,-20},{8,-34},{30,-34},{30,-20},{32,-20}}, color={191,0,0})); annotation ( @@ -448,6 +448,9 @@ equation

      ", revisions="
        +
      • December 06, 2022, by FG Modelica:
        + Fixes to increase compatability to OpenModelica #1378. +
      • August 09, 2018, by Alexander Kümpel:
        Extension from base PartioalHydraulicModuls
      • diff --git a/AixLib/Systems/HydraulicModules/Injection2WayValve.mo b/AixLib/Systems/HydraulicModules/Injection2WayValve.mo index 9e3e581095..891238ddb8 100644 --- a/AixLib/Systems/HydraulicModules/Injection2WayValve.mo +++ b/AixLib/Systems/HydraulicModules/Injection2WayValve.mo @@ -168,12 +168,12 @@ equation index=1, extent={{6,3},{6,3}})); connect(pipe5.port_a, junc3v6.ports[1]) - annotation (Line(points={{-4,-60},{4.4,-60}}, + annotation (Line(points={{-4,-60},{5.2,-60}}, color={0,127,255})); connect(valve.port_b, pipe6.port_a) annotation (Line(points={{-50,-60},{-58,-60}}, color={0,127,255})); connect(juncjp6.ports[1], pipe2.port_a) - annotation (Line(points={{4.4,20},{16,20}}, color={0,127,255})); + annotation (Line(points={{5.2,20},{16,20}}, color={0,127,255})); connect(senT_a1.port_b, pipe1.port_a) annotation (Line(points={{-88,20},{-40,20}}, color={0,127,255})); connect(pipe1.heatPort, prescribedTemperature.port) annotation (Line(points={{-32, @@ -214,9 +214,9 @@ equation connect(pipe4.port_b, junc3v6.ports[2]) annotation (Line(points={{44,-60},{6,-60}}, color={0,127,255})); connect(pipe7.port_b, juncjp6.ports[3]) - annotation (Line(points={{6,-12},{6,20},{7.6,20}}, color={0,127,255})); + annotation (Line(points={{6,-12},{6,20},{6.8,20}}, color={0,127,255})); connect(pipe7.port_a, junc3v6.ports[3]) - annotation (Line(points={{6,-28},{7.6,-28},{7.6,-60}}, color={0,127,255})); + annotation (Line(points={{6,-28},{6.8,-28},{6.8,-60}}, color={0,127,255})); connect(pipe5.port_b, valve.port_a) annotation (Line(points={{-20,-60},{-34,-60}}, color={0,127,255})); connect(pipe6.port_b, senT_b2.port_a) @@ -328,5 +328,13 @@ equation First implementation
      +", revisions="
        +
      • December 06, 2022, by FG Modelica:
        + Fixes to increase compatability to OpenModelica #1378. +
      • +
      • 2017-06 by Alexander Kümpel:
        + Implemented +
      • +
      ")); end Injection2WayValve; diff --git a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo index dae31283f0..2166c6f65e 100644 --- a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo +++ b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo @@ -108,7 +108,7 @@ model AHU2_Cooler "Cooling register of ahu 2 in E.ON ERC testhall" annotation (Placement(transformation(extent={{-90,34},{-78,46}}))); Modelica.Blocks.Sources.Constant const(k=-0.5) annotation (Placement(transformation(extent={{-104,32},{-96,40}}))); - Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation ( Placement(visible = true, transformation(origin = {-80, -24}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(toKelvin.Kelvin, boundaryWaterSource.T_in) @@ -160,8 +160,9 @@ equation -72,40},{-72,36}}, color={0,0,127})); connect(const.y, add.u2) annotation (Line(points={{-95.6,36},{-94,36},{-94, 36.4},{-91.2,36.4}}, color={0,0,127})); - connect(pumpOn.y, registerBus1.hydraulicBus.pumpBus.onSet) annotation( - Line(points = {{-68, -24}, {-38, -24}, {-38, 10}}, color = {255, 0, 255})); + connect(pumpOn.y, registerBus1.hydraulicBus.pumpBus.onSet) annotation ( + Line(points={{-69,-24},{-37.95,-24},{-37.95,10.05}}, + color = {255, 0, 255})); annotation (Documentation(info="

      This example compares the simulated behavior with measured data. The input filter of the valve is deactivated because the measured actual @@ -169,6 +170,9 @@ equation

      ", revisions="
        +
      • December 06, 2022, by FG Modelica:
        + Fixes to increase compatability to OpenModelica #1378. +
      • November 4, 2019, by Alexander Kümpel:
        First implementation.
      • From 34b4e87689a935d798584d7968a1305e9995cea9 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Mon, 16 Jan 2023 17:21:41 +0100 Subject: [PATCH 42/44] Update DeviceDrivers to 2.1.1 to avoid warnings --- AixLib/package.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AixLib/package.mo b/AixLib/package.mo index 028803b6e9..db44fbca58 100644 --- a/AixLib/package.mo +++ b/AixLib/package.mo @@ -4,7 +4,7 @@ package AixLib annotation ( uses( SDF(version="0.4.2"), - Modelica_DeviceDrivers(version="2.0.0"), + Modelica_DeviceDrivers(version="2.1.1"), Modelica(version="4.0.0")), version="1.3.2", conversion(from( From 1f815fc872e45e592fe7652e0f7bc8d64b22ed7c Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 8 Feb 2023 14:35:10 +0100 Subject: [PATCH 43/44] Add review --- AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo | 4 ++-- ...vers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt | 2 +- ...s_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt | 2 +- AixLib/Systems/HydraulicModules/Example/Pump.mo | 2 +- AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo | 2 +- AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo | 3 +-- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo index d307485b6b..bca4c84a66 100644 --- a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo +++ b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo @@ -49,9 +49,9 @@ model GenericHumidifier_u annotation (Placement(transformation(extent={{-100,-104},{-80,-84}}))); Modelica.Blocks.Routing.RealPassThrough Tsteam if steamHumidifier annotation (Placement(transformation(extent={{-60,-98},{-40,-78}}))); - Modelica.Blocks.Sources.RealExpression realExpression(y = mWat_flow_nominal) annotation ( + Modelica.Blocks.Sources.RealExpression realExpression(y = mWat_flow_nominal) annotation( Placement(visible = true, transformation(origin = {-62, 32}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); - Modelica.Blocks.Math.Product product annotation ( + Modelica.Blocks.Math.Product product annotation( Placement(visible = true, transformation(origin = {-20, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); protected Modelica.Blocks.Interfaces.RealInput Tsteam_intern; diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt index b1dccfc937..e7ec5c0cda 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt @@ -1,4 +1,4 @@ -last-generated=2022-05-23 +last-generated=2022-10-14 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt index 34bd4bf893..f9a3ccf013 100644 --- a/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt +++ b/AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt @@ -1,4 +1,4 @@ -last-generated=2022-05-23 +last-generated=2022-10-14 statistics-initialization= { "nonlinear": "1", diff --git a/AixLib/Systems/HydraulicModules/Example/Pump.mo b/AixLib/Systems/HydraulicModules/Example/Pump.mo index 79255acce5..ca85d813a3 100644 --- a/AixLib/Systems/HydraulicModules/Example/Pump.mo +++ b/AixLib/Systems/HydraulicModules/Example/Pump.mo @@ -54,7 +54,7 @@ model Pump "Test for unmixed pump circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); - Modelica.Blocks.Sources.BooleanConstant pumpOn annotation ( + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( Placement(visible = true, transformation(origin = {-86, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(Unmixed.hydraulicBus, hydraulicBus) annotation (Line( diff --git a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo index 7fc29d241d..0cbd725968 100644 --- a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo +++ b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo @@ -53,7 +53,7 @@ model ThrottlePump "Test for unmixed throttle and pump circuit" extent={{10,-10},{-10,10}}, rotation=-90, origin={28,-50}))); - Modelica.Blocks.Sources.BooleanConstant pumpOn annotation ( + Modelica.Blocks.Sources.BooleanConstant pumpOn annotation( Placement(visible = true, transformation(origin = {-86, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(ThrottlePump.hydraulicBus, hydraulicBus) annotation (Line( diff --git a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo index 2166c6f65e..a14c2c53b4 100644 --- a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo +++ b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo @@ -161,8 +161,7 @@ equation connect(const.y, add.u2) annotation (Line(points={{-95.6,36},{-94,36},{-94, 36.4},{-91.2,36.4}}, color={0,0,127})); connect(pumpOn.y, registerBus1.hydraulicBus.pumpBus.onSet) annotation ( - Line(points={{-69,-24},{-37.95,-24},{-37.95,10.05}}, - color = {255, 0, 255})); + Line(points={{-69,-24},{-37.95,-24},{-37.95,10.05}}, color = {255, 0, 255})); annotation (Documentation(info="

        This example compares the simulated behavior with measured data. The input filter of the valve is deactivated because the measured actual From fae8e8d7ee425909f2299852c3e6f779c96a68a5 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 8 Feb 2023 15:02:44 +0100 Subject: [PATCH 44/44] Adjust revision based on review --- AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo | 4 ++-- AixLib/Systems/HydraulicModules/Admix.mo | 4 ++-- AixLib/Systems/HydraulicModules/Example/Pump.mo | 4 ++-- AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo | 4 ++-- AixLib/Systems/HydraulicModules/Injection.mo | 4 ++-- AixLib/Systems/HydraulicModules/Injection2WayValve.mo | 4 ++-- AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo index bca4c84a66..524f4f526f 100644 --- a/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo +++ b/AixLib/Fluid/Humidifiers/GenericHumidifier_u.mo @@ -165,8 +165,8 @@ Documentation(info="

        ", revisions="
          -
        • December 06, 2022, by FG Modelica:
          - Fixes to increase compatability to OpenModelica #1378. +
        • December 06, 2022, by EBC-Modelica group:
          + Fixes to increase compatability to OpenModelica #1378.
        • October 22, 2019, by Alexander Kümpel:
          First implementation. diff --git a/AixLib/Systems/HydraulicModules/Admix.mo b/AixLib/Systems/HydraulicModules/Admix.mo index ab53e75227..442ea2b9f4 100644 --- a/AixLib/Systems/HydraulicModules/Admix.mo +++ b/AixLib/Systems/HydraulicModules/Admix.mo @@ -304,8 +304,8 @@ equation
        ", revisions="
          -
        • December 06, 2022, by FG Modelica:
          - Fixes to increase compatability to OpenModelica #1378. +
        • December 06, 2022, by EBC-Modelica group:
          + Fixes to increase compatability to OpenModelica #1378.
        • 2017-06 by Alexander Kümpel:
          Implemented diff --git a/AixLib/Systems/HydraulicModules/Example/Pump.mo b/AixLib/Systems/HydraulicModules/Example/Pump.mo index ca85d813a3..dd4236d5ba 100644 --- a/AixLib/Systems/HydraulicModules/Example/Pump.mo +++ b/AixLib/Systems/HydraulicModules/Example/Pump.mo @@ -89,8 +89,8 @@ equation 100}})), experiment(StopTime=800,Interval = 5), Documentation(revisions="
            -
          • December 06, 2022, by FG Modelica:
            - Fixes to increase compatability to OpenModelica #1378. +
          • December 06, 2022, by EBC-Modelica group:
            + Fixes to increase compatability to OpenModelica #1378.
          • October 25, 2017, by Alexander Kümpel:
            Transfer from ZUGABE to AixLib. diff --git a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo index 0cbd725968..fc80aae3cc 100644 --- a/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo +++ b/AixLib/Systems/HydraulicModules/Example/ThrottlePump.mo @@ -92,8 +92,8 @@ equation 100}})), experiment(StopTime=600), Documentation(revisions="
              -
            • December 06, 2022, by FG Modelica:
              - Fixes to increase compatability to OpenModelica #1378. +
            • December 06, 2022, by EBC-Modelica group:
              + Fixes to increase compatability to OpenModelica #1378.
            • October 25, 2017, by Alexander Kümpel:
              Transfer from ZUGABE to AixLib. diff --git a/AixLib/Systems/HydraulicModules/Injection.mo b/AixLib/Systems/HydraulicModules/Injection.mo index 889cb91b2e..837c3a46a1 100644 --- a/AixLib/Systems/HydraulicModules/Injection.mo +++ b/AixLib/Systems/HydraulicModules/Injection.mo @@ -448,8 +448,8 @@ equation

              ", revisions="
                -
              • December 06, 2022, by FG Modelica:
                - Fixes to increase compatability to OpenModelica #1378. +
              • December 06, 2022, by EBC-Modelica group:
                + Fixes to increase compatability to OpenModelica #1378.
              • August 09, 2018, by Alexander Kümpel:
                Extension from base PartioalHydraulicModuls diff --git a/AixLib/Systems/HydraulicModules/Injection2WayValve.mo b/AixLib/Systems/HydraulicModules/Injection2WayValve.mo index 891238ddb8..b1f57d9d97 100644 --- a/AixLib/Systems/HydraulicModules/Injection2WayValve.mo +++ b/AixLib/Systems/HydraulicModules/Injection2WayValve.mo @@ -329,8 +329,8 @@ equation
              ", revisions="
                -
              • December 06, 2022, by FG Modelica:
                - Fixes to increase compatability to OpenModelica #1378. +
              • December 06, 2022, by EBC-Modelica group:
                + Fixes to increase compatability to OpenModelica #1378.
              • 2017-06 by Alexander Kümpel:
                Implemented diff --git a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo index a14c2c53b4..0d232726d0 100644 --- a/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo +++ b/AixLib/Systems/ModularAHU/Validation/AHU2_Cooler.mo @@ -169,8 +169,8 @@ equation

                ", revisions="
                  -
                • December 06, 2022, by FG Modelica:
                  - Fixes to increase compatability to OpenModelica #1378. +
                • December 06, 2022, by EBC-Modelica group:
                  + Fixes to increase compatability to OpenModelica #1378.
                • November 4, 2019, by Alexander Kümpel:
                  First implementation.