From 63e215f414ddb26691c4152addb75620b9653dab Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 11:55:06 +0100
Subject: [PATCH 01/10] Moved TwoStoreyBoxes model to examples
---
.../Multizone/BaseClasses/DoorDiscretized.mo | 4 ++
.../TwoStoreyBoxes.mo | 58 ++++++++++---------
.../Components/Examples/package.order | 1 +
.../Components/Validations/package.order | 1 -
4 files changed, 35 insertions(+), 29 deletions(-)
rename IDEAS/Buildings/Components/{Validations => Examples}/TwoStoreyBoxes.mo (59%)
diff --git a/IDEAS/Airflow/Multizone/BaseClasses/DoorDiscretized.mo b/IDEAS/Airflow/Multizone/BaseClasses/DoorDiscretized.mo
index cdc7984247..b47848f844 100644
--- a/IDEAS/Airflow/Multizone/BaseClasses/DoorDiscretized.mo
+++ b/IDEAS/Airflow/Multizone/BaseClasses/DoorDiscretized.mo
@@ -118,6 +118,10 @@ using the model for a door that can be open or closed.
revisions="
-
+October 29, 2024, by Klaas De Jonge:
+Unprotected dh
and changed prefixes of dh
,hAg
and hBg
to input
.This is for #1935.
+
+-
January 8, 2019, by Michael Wetter:
Moved parameter CD
from
diff --git a/IDEAS/Buildings/Components/Validations/TwoStoreyBoxes.mo b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
similarity index 59%
rename from IDEAS/Buildings/Components/Validations/TwoStoreyBoxes.mo
rename to IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
index 8223d81f67..831d94df69 100644
--- a/IDEAS/Buildings/Components/Validations/TwoStoreyBoxes.mo
+++ b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
@@ -1,4 +1,4 @@
-within IDEAS.Buildings.Components.Validations;
+within IDEAS.Buildings.Components.Examples;
model TwoStoreyBoxes
extends Modelica.Icons.Example;
@@ -6,9 +6,10 @@ model TwoStoreyBoxes
n50=1)
annotation (Placement(transformation(extent={{-100,80},{-80,100}})));
- RectangularZoneTemplate Level(
+ IDEAS.Buildings.Components.RectangularZoneTemplate Level(
redeclare package Medium = IDEAS.Media.Specialized.Air.PerfectGas,
hFloor=5,
+ energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
T_start=291.15,
bouTypA=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
bouTypB=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
@@ -24,11 +25,13 @@ model TwoStoreyBoxes
h_winA=2,
redeclare Validation.Data.Constructions.LightRoof conTypCei,
redeclare IDEAS.Buildings.Data.Constructions.ConcreteSlab conTypFlo,
- hasCavityFlo=true)
+ hasCavityFlo=true,
+ airModel(massDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial))
annotation (Placement(transformation(extent={{-40,20},{-20,40}})));
- RectangularZoneTemplate Groundfloor(
+ IDEAS.Buildings.Components.RectangularZoneTemplate Groundfloor(
redeclare package Medium = IDEAS.Media.Specialized.Air.PerfectGas,
+ energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
T_start=291.15,
bouTypA=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
bouTypB=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
@@ -43,37 +46,26 @@ model TwoStoreyBoxes
A_winA=2,
h_winA=2,
redeclare Validation.Data.Constructions.LightRoof conTypCei,
- redeclare Data.Constructions.FloorOnGround conTypFlo)
+ redeclare Data.Constructions.FloorOnGround conTypFlo,
+ airModel(massDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial))
annotation (Placement(transformation(extent={{-40,-40},{-20,-20}})));
- Modelica.Thermal.HeatTransfer.Components.ThermalConductor Con[2](each G=
- 100000)
- annotation (Placement(transformation(extent={{0,32},{20,52}})));
- Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature fixedTemperature[2](each T=
- 18)
- annotation (Placement(transformation(extent={{60,20},{40,40}})));
- Modelica.Thermal.HeatTransfer.Components.ThermalConductor Rad[2](each G=
- 100000)
- annotation (Placement(transformation(extent={{0,6},{20,26}})));
-
+ Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature Tfix(T=18)
+ annotation (Placement(transformation(extent={{40,20},{20,40}})));
equation
connect(Groundfloor.proBusCei, Level.proBusFlo) annotation (Line(
points={{-30.2,-24},{-30,-22},{-30,24}},
color={255,204,51},
thickness=0.5));
- connect(Level.gainCon, Con[1].port_a) annotation (Line(points={{-20,27},{-6,27},
- {-6,42},{0,42}}, color={191,0,0}));
- connect(Groundfloor.gainCon, Con[2].port_a) annotation (Line(points={{-20,-33},
- {-20,-34},{-10,-34},{-10,28},{-6,28},{-6,42},{0,42}}, color={191,0,0}));
- connect(Level.gainRad, Rad[1].port_a) annotation (Line(points={{-20,24},{-4,24},
- {-4,16},{0,16}}, color={191,0,0}));
- connect(Groundfloor.gainRad, Rad[2].port_a) annotation (Line(points={{-20,-36},
- {-6,-36},{-6,16},{0,16}}, color={191,0,0}));
- connect(fixedTemperature.port, Con.port_b) annotation (Line(points={{40,30},{26,
- 30},{26,42},{20,42}}, color={191,0,0}));
- connect(fixedTemperature.port, Rad.port_b) annotation (Line(points={{40,30},{26,
- 30},{26,16},{20,16}}, color={191,0,0}));
+ connect(Tfix.port, Level.gainCon) annotation (Line(points={{20,30},{-16,30},{-16,
+ 27},{-20,27}}, color={191,0,0}));
+ connect(Tfix.port, Level.gainRad) annotation (Line(points={{20,30},{-16,30},{-16,
+ 24},{-20,24}}, color={191,0,0}));
+ connect(Tfix.port, Groundfloor.gainCon) annotation (Line(points={{20,30},{-16,
+ 30},{-16,-33},{-20,-33}}, color={191,0,0}));
+ connect(Tfix.port, Groundfloor.gainRad) annotation (Line(points={{20,30},{-16,
+ 30},{-16,-36},{-20,-36}}, color={191,0,0}));
annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
coordinateSystem(preserveAspectRatio=false)),
experiment(
@@ -81,5 +73,15 @@ equation
Interval=3600.00288,
Tolerance=1e-12,
__Dymola_fixedstepsize=15,
- __Dymola_Algorithm="Dassl"));
+ __Dymola_Algorithm="Dassl"),
+ Documentation(revisions="
+
+-
+October 30, 2024, by Klaas De Jonge:
+First implementation
+
+
+", info="
+Model with two zones on different floors with a large opening between these zones and stack-effect airflow enabled.
+"));
end TwoStoreyBoxes;
diff --git a/IDEAS/Buildings/Components/Examples/package.order b/IDEAS/Buildings/Components/Examples/package.order
index 00f229ebd7..55cd027391 100644
--- a/IDEAS/Buildings/Components/Examples/package.order
+++ b/IDEAS/Buildings/Components/Examples/package.order
@@ -15,6 +15,7 @@ RectangularZoneTemplate
RectangularZoneTemplateOnePort
RectangularZoneTemplateTwoPort
ScalingWindow
+TwoStoreyBoxes
WallUnitTest
WindowDynamics
WindowLinearisation
diff --git a/IDEAS/Buildings/Components/Validations/package.order b/IDEAS/Buildings/Components/Validations/package.order
index 2205766385..f7051baf83 100644
--- a/IDEAS/Buildings/Components/Validations/package.order
+++ b/IDEAS/Buildings/Components/Validations/package.order
@@ -1,4 +1,3 @@
CeilingOrientationConsistency
WindowEN673
WindowOrientations
-TwoStoreyBoxes
From 62efce8f9e8ae983604acbc61f77a5c6992bb1fb Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 11:59:35 +0100
Subject: [PATCH 02/10] Revision notes
---
IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo | 4 ++++
.../Multizone/Validation/LargeHorziontalOpening.mo | 13 +++++--------
.../Interfaces/PartialSimInfoManager.mo | 4 ++++
.../Components/Examples/AirflowBoxModel.mo | 10 ++++++++--
.../Components/Interfaces/PartialSurface.mo | 4 ++++
.../Buildings/Components/Interfaces/PartialZone.mo | 4 ++++
IDEAS/Buildings/Components/InternalWall.mo | 4 ++++
IDEAS/Buildings/Components/OuterWall.mo | 4 ++++
IDEAS/Buildings/Components/Window.mo | 4 ++++
.../Buildings/Data/Interfaces/WindPressureCoeff.mo | 7 +++++++
.../WindPressureCoeff/Lowrise_Square_Exposed.mo | 8 ++++++++
IDEAS/Buildings/Examples/ZoneExample.mo | 4 ++++
IDEAS/Buildings/Validation/Tests/n50Test.mo | 4 ++++
IDEAS/Buildings/Validation/Tests/n50Test2.mo | 4 ++++
IDEAS/Buildings/Validation/Tests/n50Test2TwoPort.mo | 10 +++++++++-
IDEAS/Buildings/Validation/Tests/n50Test3TwoPort.mo | 10 +++++++++-
IDEAS/Fluid/Sources/OutsideAir.mo | 4 ++++
17 files changed, 90 insertions(+), 12 deletions(-)
diff --git a/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo b/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
index ce120a39c0..1ec522bf16 100644
--- a/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
+++ b/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
@@ -203,6 +203,10 @@ There is no support for open doors when using only a single fluid port.
revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Changes for column heights,used default density and transition point to laminar flow at low dp.
+
+-
October 20, 2023 by Filip Jorissen:
First documented version.
diff --git a/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo b/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
index b70dfab025..01426082be 100644
--- a/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
+++ b/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
@@ -302,16 +302,13 @@ equation
Documentation(revisions="
-
-February 2, 2022, by Michael Wetter:
-Revised implementation.
-This is for
-IDEAS, #1436.
-
--
-Apr 6, 2021, 2020, by Klaas De Jonge:
+October 30, 2024, by Klaas De Jonge:
First implementation.
-"), Icon(coordinateSystem(extent={{-100,-100},{100,100}})));
+", info="
+Model to test the airflow trough large non-horizontal openings.
+"),
+ Icon(coordinateSystem(extent={{-100,-100},{100,100}})));
end LargeHorziontalOpening;
diff --git a/IDEAS/BoundaryConditions/Interfaces/PartialSimInfoManager.mo b/IDEAS/BoundaryConditions/Interfaces/PartialSimInfoManager.mo
index 7b320916ba..782dbf7777 100644
--- a/IDEAS/BoundaryConditions/Interfaces/PartialSimInfoManager.mo
+++ b/IDEAS/BoundaryConditions/Interfaces/PartialSimInfoManager.mo
@@ -584,6 +584,10 @@ equation
", revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Modifications for wind pressure,ambient pressure and wind speed modifiers used in interzonal airflow.
+
+-
October 18, 2023 by Filip Jorissen:
Added use_port_1 and use_port_2 for convenience.
diff --git a/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo b/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo
index df8cd69012..7cec4e26cc 100644
--- a/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo
+++ b/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo
@@ -125,8 +125,14 @@ protected
Tolerance=1e-07,
__Dymola_fixedstepsize=15,
__Dymola_Algorithm="Dassl"), Documentation(info="
-This model runs the 4 possible interzonal airflow configurations of a simple box model. Temperature is kept constant at 18° degrees
-
+This model runs 5 possible interzonal airflow configurations of a simple box model. Temperature is kept constant at 18° degrees
+", revisions="
+
+-
+October 30, 2024 by Klaas De Jonge:
+First documented implementation.
+
+
"),
Diagram(coordinateSystem(extent={{-180,-100},{100,100}})),
Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
diff --git a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo
index 24c3a69a41..677b21bb1c 100644
--- a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo
+++ b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo
@@ -269,6 +269,10 @@ equation
Documentation(revisions="
-
+October 30, 2024, by Klaas De Jonge and Filip Jorissen:
+Additions for supporting interzonal airflow: use of crackoroperabledoor model, default column height implementation for stack-effect.
+
+-
October 23, 2023, by Filip Jorissen:
Using real expression to set area of propsBusInt. To add some flexibility for ensuring n50 computation is correct.
diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo
index 8163da8e11..7ff85582d1 100644
--- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo
+++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo
@@ -554,6 +554,10 @@ end for;
", revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Modifications for interzonal airflow and stack-effect input.
+
+-
April 26, 2024 by Jelger Jansen:
Added parameter ignAss
to ignore view factor asserts for non-physical unit test models.
This is for #1272.
diff --git a/IDEAS/Buildings/Components/InternalWall.mo b/IDEAS/Buildings/Components/InternalWall.mo
index bd3c0291c6..55b8456c6c 100644
--- a/IDEAS/Buildings/Components/InternalWall.mo
+++ b/IDEAS/Buildings/Components/InternalWall.mo
@@ -219,6 +219,10 @@ We assume that the value of A
excludes the surface area of the cavi
", revisions = "
-
+October 30, 2024, by Klaas De Jonge:
+Modifications for stack-effect interzonal airflow heights.
+
+-
Februari 18, 2024, by Filip Jorissen:
Modifications for supporting trickle vents and interzonal airflow.
diff --git a/IDEAS/Buildings/Components/OuterWall.mo b/IDEAS/Buildings/Components/OuterWall.mo
index 96cd945cf3..950b41532a 100644
--- a/IDEAS/Buildings/Components/OuterWall.mo
+++ b/IDEAS/Buildings/Components/OuterWall.mo
@@ -304,6 +304,10 @@ The correct shading parameter values should then be passed through the redeclara
", revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Modifications for stack-effect interzonal airflow heights and wind pressure profiles.
+
+-
Februari 18, 2024, by Filip Jorissen:
Modifications for supporting trickle vents and interzonal airflow.
diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo
index be1e3ad4a0..2f73d068c3 100644
--- a/IDEAS/Buildings/Components/Window.mo
+++ b/IDEAS/Buildings/Components/Window.mo
@@ -463,6 +463,10 @@ IDEAS.Buildings.Components.Validations.WindowEN673
", revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Modifications for stack-effect interzonal airflow heights and wind pressure profiles.
+
+-
Februari 18, 2024, by Filip Jorissen:
Modifications for supporting trickle vents and interzonal airflow.
diff --git a/IDEAS/Buildings/Data/Interfaces/WindPressureCoeff.mo b/IDEAS/Buildings/Data/Interfaces/WindPressureCoeff.mo
index a1a9eded74..6b810c60e2 100644
--- a/IDEAS/Buildings/Data/Interfaces/WindPressureCoeff.mo
+++ b/IDEAS/Buildings/Data/Interfaces/WindPressureCoeff.mo
@@ -19,5 +19,12 @@ Appendix 2 - Wind Pressure Coefficient Data
+", revisions="
+
+-
+October 30, 2024, by Klaas De Jonge:
+First implementation.
+
+
"));
end WindPressureCoeff;
diff --git a/IDEAS/Buildings/Data/WindPressureCoeff/Lowrise_Square_Exposed.mo b/IDEAS/Buildings/Data/WindPressureCoeff/Lowrise_Square_Exposed.mo
index 6e597e4d66..e038d0c079 100644
--- a/IDEAS/Buildings/Data/WindPressureCoeff/Lowrise_Square_Exposed.mo
+++ b/IDEAS/Buildings/Data/WindPressureCoeff/Lowrise_Square_Exposed.mo
@@ -25,4 +25,12 @@ Wind speed reference level: Building height
"));
+ annotation (Documentation(revisions="
+
+-
+October 30, 2024, by Klaas De Jonge:
+First implementation.
+
+
+"));
end Lowrise_Square_Exposed;
diff --git a/IDEAS/Buildings/Examples/ZoneExample.mo b/IDEAS/Buildings/Examples/ZoneExample.mo
index ad7cb55ce7..1fe293427c 100644
--- a/IDEAS/Buildings/Examples/ZoneExample.mo
+++ b/IDEAS/Buildings/Examples/ZoneExample.mo
@@ -114,6 +114,10 @@ equation
Documentation(revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Medium declaration in surfaces and replaceable medium
+
+-
April 26, 2024 by Jelger Jansen:
Set parameter ignAss
to ignore view factor assert.
This is for #1272.
diff --git a/IDEAS/Buildings/Validation/Tests/n50Test.mo b/IDEAS/Buildings/Validation/Tests/n50Test.mo
index 188b24d760..c5dec963c7 100644
--- a/IDEAS/Buildings/Validation/Tests/n50Test.mo
+++ b/IDEAS/Buildings/Validation/Tests/n50Test.mo
@@ -91,6 +91,10 @@ equation
Documentation(revisions="
-
+October 30, 2024, by Klaas De Jonge:
+rho_default coupled to medium, outside pressure reference height at zone reference height.
+
+-
June 3, 2021, by Filip Jorissen:
First implementation.
diff --git a/IDEAS/Buildings/Validation/Tests/n50Test2.mo b/IDEAS/Buildings/Validation/Tests/n50Test2.mo
index 69e736f4bc..5bdf0942cf 100644
--- a/IDEAS/Buildings/Validation/Tests/n50Test2.mo
+++ b/IDEAS/Buildings/Validation/Tests/n50Test2.mo
@@ -93,6 +93,10 @@ equation
Documentation(revisions="
-
+October 30, 2024, by Klaas De Jonge:
+rho_default coupled to medium and new initial zone moisture content,outside pressure reference height at zone reference height.
+
+-
June 3, 2021, by Filip Jorissen:
First implementation.
diff --git a/IDEAS/Buildings/Validation/Tests/n50Test2TwoPort.mo b/IDEAS/Buildings/Validation/Tests/n50Test2TwoPort.mo
index cf208d169d..a980795943 100644
--- a/IDEAS/Buildings/Validation/Tests/n50Test2TwoPort.mo
+++ b/IDEAS/Buildings/Validation/Tests/n50Test2TwoPort.mo
@@ -6,5 +6,13 @@ model n50Test2TwoPort
"Simulate and plot"),experiment(
StopTime=3,
Tolerance=1e-06,
- __Dymola_Algorithm="Dassl"));
+ __Dymola_Algorithm="Dassl"),
+ Documentation(revisions="
+
+-
+October 30, 2024, by Klaas De Jonge:
+First implementation.
+
+
+"));
end n50Test2TwoPort;
diff --git a/IDEAS/Buildings/Validation/Tests/n50Test3TwoPort.mo b/IDEAS/Buildings/Validation/Tests/n50Test3TwoPort.mo
index 876ccfc495..d234eea841 100644
--- a/IDEAS/Buildings/Validation/Tests/n50Test3TwoPort.mo
+++ b/IDEAS/Buildings/Validation/Tests/n50Test3TwoPort.mo
@@ -6,5 +6,13 @@ model n50Test3TwoPort
"Simulate and plot"),experiment(
StopTime=3,
Tolerance=1e-06,
- __Dymola_Algorithm="Dassl"));
+ __Dymola_Algorithm="Dassl"),
+ Documentation(revisions="
+
+-
+October 30, 2024, by Klaas De Jonge:
+First implementation.
+
+
+"));
end n50Test3TwoPort;
diff --git a/IDEAS/Fluid/Sources/OutsideAir.mo b/IDEAS/Fluid/Sources/OutsideAir.mo
index daad76f1b4..12fa447d2b 100644
--- a/IDEAS/Fluid/Sources/OutsideAir.mo
+++ b/IDEAS/Fluid/Sources/OutsideAir.mo
@@ -215,6 +215,10 @@ with exception of boundary pressure, do not have an effect.
revisions="
-
+October 30, 2024, by Klaas De Jonge:
+Modifications for wind pressure,ambient pressure and wind speed modifiers used in interzonal airflow.
+
+-
November 13, 2023 by Filip Jorissen:
Computing stack height.
From 786a32c6e970738ef859edf6513377227b4bf39c Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 12:25:02 +0100
Subject: [PATCH 03/10] Update TwoStoreyBoxes for direct constant Tair
---
.../Components/Examples/TwoStoreyBoxes.mo | 30 +++++++++++--------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
index 831d94df69..59f985141d 100644
--- a/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
+++ b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
@@ -25,8 +25,7 @@ model TwoStoreyBoxes
h_winA=2,
redeclare Validation.Data.Constructions.LightRoof conTypCei,
redeclare IDEAS.Buildings.Data.Constructions.ConcreteSlab conTypFlo,
- hasCavityFlo=true,
- airModel(massDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial))
+ hasCavityFlo=true)
annotation (Placement(transformation(extent={{-40,20},{-20,40}})));
IDEAS.Buildings.Components.RectangularZoneTemplate Groundfloor(
@@ -46,26 +45,33 @@ model TwoStoreyBoxes
A_winA=2,
h_winA=2,
redeclare Validation.Data.Constructions.LightRoof conTypCei,
- redeclare Data.Constructions.FloorOnGround conTypFlo,
- airModel(massDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial))
+ redeclare Data.Constructions.FloorOnGround conTypFlo)
annotation (Placement(transformation(extent={{-40,-40},{-20,-20}})));
Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature Tfix(T=18)
- annotation (Placement(transformation(extent={{40,20},{20,40}})));
+ annotation (Placement(transformation(extent={{62,20},{42,40}})));
+ Modelica.Thermal.HeatTransfer.Components.ThermalConductor PerfectRadLevel(G=1e6)
+ annotation (Placement(transformation(extent={{0,6},{20,26}})));
+ Modelica.Thermal.HeatTransfer.Components.ThermalConductor PerfectRadGround(G=1e6)
+ annotation (Placement(transformation(extent={{0,-52},{20,-32}})));
equation
connect(Groundfloor.proBusCei, Level.proBusFlo) annotation (Line(
points={{-30.2,-24},{-30,-22},{-30,24}},
color={255,204,51},
thickness=0.5));
- connect(Tfix.port, Level.gainCon) annotation (Line(points={{20,30},{-16,30},{-16,
+ connect(Tfix.port, Level.gainCon) annotation (Line(points={{42,30},{-16,30},{-16,
27},{-20,27}}, color={191,0,0}));
- connect(Tfix.port, Level.gainRad) annotation (Line(points={{20,30},{-16,30},{-16,
- 24},{-20,24}}, color={191,0,0}));
- connect(Tfix.port, Groundfloor.gainCon) annotation (Line(points={{20,30},{-16,
- 30},{-16,-33},{-20,-33}}, color={191,0,0}));
- connect(Tfix.port, Groundfloor.gainRad) annotation (Line(points={{20,30},{-16,
- 30},{-16,-36},{-20,-36}}, color={191,0,0}));
+ connect(PerfectRadLevel.port_a, Level.gainRad) annotation (Line(points={{0,16},
+ {-14,16},{-14,24},{-20,24}}, color={191,0,0}));
+ connect(PerfectRadLevel.port_b, Tfix.port) annotation (Line(points={{20,16},{32,
+ 16},{32,30},{42,30}}, color={191,0,0}));
+ connect(PerfectRadGround.port_a, Groundfloor.gainRad) annotation (Line(points
+ ={{0,-42},{-14,-42},{-14,-36},{-20,-36}}, color={191,0,0}));
+ connect(Tfix.port, PerfectRadGround.port_b) annotation (Line(points={{42,30},{
+ 38,30},{38,-42},{20,-42}}, color={191,0,0}));
+ connect(Tfix.port, Groundfloor.gainCon) annotation (Line(points={{42,30},{38,30},
+ {38,-26},{-14,-26},{-14,-33},{-20,-33}}, color={191,0,0}));
annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
coordinateSystem(preserveAspectRatio=false)),
experiment(
From 9074a5fa67e7cf006633a12d7147bc3137c01c97 Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 12:26:00 +0100
Subject: [PATCH 04/10] Update AirflowBoxModel for direct constant Tair and
moved around some models
---
.../Components/Examples/AirflowBoxModel.mo | 49 +++++++++----------
1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo b/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo
index 7cec4e26cc..1de8ef4dc1 100644
--- a/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo
+++ b/IDEAS/Buildings/Components/Examples/AirflowBoxModel.mo
@@ -2,31 +2,33 @@ within IDEAS.Buildings.Components.Examples;
model AirflowBoxModel
extends Modelica.Icons.Example;
- Box_Sim Energy_Only(sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None)) annotation (Placement(transformation(rotation=0, extent={{-124,16},
- {-64,76}})));
+ Box_Sim Energy_Only(sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None)) annotation (Placement(transformation(rotation=0, extent={{-110,30},
+ {-50,90}})));
Box_Sim Energy_n50Corr(sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None, unify_n50=true)) annotation (Placement(transformation(rotation=0,
- extent={{-22,18},{38,78}})));
+ extent={{-30,30},{30,90}})));
Box_Sim IAQ_1port(sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.OnePort))
- annotation (Placement(transformation(rotation=0, extent={{-164,-82},{-104,-22}})));
+ annotation (Placement(transformation(rotation=0, extent={{-110,-90},{-50,
+ -30}})));
Box_Sim IAQ_1port_trickle(sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.OnePort),
winD(
use_trickle_vent=true,
m_flow_nominal=0.0192656,
dp_nominal=2))
"Extends the 1 port implementation with a tricklevent in the window"
- annotation (Placement(transformation(rotation=0, extent={{-70,-82},
- {-10,-22}})));
- Box_Sim IAQ_2Port(sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts),
+ annotation (Placement(transformation(rotation=0, extent={{-30,-90},
+ {30,-30}})));
+ Box_Sim IAQ_2Port(
+ PerfectRad(G=10000000),
+ sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts),
+
use_operable_window=true,
winD(
crackOrOperableDoor(nCom=2),
use_trickle_vent=false,
m_flow_nominal=0.0192656,
dp_nominal=2),
- winD_position(y=0),
- Con(G=10000000),
- Rad(G=10000000)) annotation (Placement(transformation(rotation=0,
- extent={{20,-80},{80,-20}})));
+ winD_position(y=0)) annotation (Placement(transformation(rotation=0, extent
+ ={{50,-90},{110,-30}})));
protected
model Box_Sim
inner BoundaryConditions.SimInfoManager sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts,
@@ -37,6 +39,7 @@ protected
"= true, to enable window control input";
IDEAS.Buildings.Components.RectangularZoneTemplate BoxModel(
+ energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
T_start=291.15,
bouTypA=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
bouTypB=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
@@ -65,11 +68,9 @@ protected
redeclare IDEAS.Buildings.Data.Frames.AluminumInsulated fraTypC)
annotation (Placement(transformation(extent={{-80,40},{-60,60}})));
- Modelica.Thermal.HeatTransfer.Components.ThermalConductor Con(G=100000)
- annotation (Placement(transformation(extent={{-40,52},{-20,72}})));
- Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature fixedTemperature(T=
- 18) annotation (Placement(transformation(extent={{20,40},{0,60}})));
- Modelica.Thermal.HeatTransfer.Components.ThermalConductor Rad(G=100000)
+ Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature Tfix(T=18)
+ annotation (Placement(transformation(extent={{20,40},{0,60}})));
+ Modelica.Thermal.HeatTransfer.Components.ThermalConductor PerfectRad(G=1e6)
annotation (Placement(transformation(extent={{-40,26},{-20,46}})));
OuterWall outD(
redeclare IDEAS.Buildings.Data.Constructions.CavityWall constructionType,
@@ -87,14 +88,10 @@ protected
annotation (Placement(transformation(extent={{-140,0},{-120,20}})));
equation
- connect(BoxModel.gainCon, Con.port_a) annotation (Line(points={{-60,47},{
- -46,47},{-46,62},{-40,62}}, color={191,0,0}));
- connect(fixedTemperature.port, Con.port_b) annotation (Line(points={{0,50},
- {-14,50},{-14,62},{-20,62}}, color={191,0,0}));
- connect(BoxModel.gainRad, Rad.port_a) annotation (Line(points={{-60,44},{
- -46,44},{-46,36},{-40,36}}, color={191,0,0}));
- connect(Rad.port_b, fixedTemperature.port) annotation (Line(points={{-20,36},
- {-14,36},{-14,50},{0,50}}, color={191,0,0}));
+ connect(BoxModel.gainRad, PerfectRad.port_a) annotation (Line(points={{-60,
+ 44},{-46,44},{-46,36},{-40,36}}, color={191,0,0}));
+ connect(PerfectRad.port_b, Tfix.port) annotation (Line(points={{-20,36},{-14,
+ 36},{-14,50},{0,50}}, color={191,0,0}));
connect(outD.propsBus_a, BoxModel.proBusD[1]) annotation (Line(
points={{-95,58},{-88,58},{-88,42.5},{-79.6,42.5}},
color={255,204,51},
@@ -105,6 +102,8 @@ protected
thickness=0.5));
connect(winD_position.y, winD.y_window)
annotation (Line(points={{-119,10},{-102,10},{-102,22}}, color={0,0,127}));
+ connect(Tfix.port, BoxModel.gainCon) annotation (Line(points={{0,50},{-56,
+ 50},{-56,47},{-60,47}}, color={191,0,0}));
annotation (Icon(graphics={Rectangle(
extent={{-60,60},{60,-60}},
lineColor={28,108,200},
@@ -134,7 +133,7 @@ First documented implementation.
"),
- Diagram(coordinateSystem(extent={{-180,-100},{100,100}})),
+ Diagram(coordinateSystem(extent={{-120,-100},{120,100}})),
Icon(coordinateSystem(extent={{-100,-100},{100,100}})),
__Dymola_Commands(file=
"Resources/Scripts/Dymola/Buildings/Components/Examples/AirflowOptions.mos"
From 02ad04c8cc9416638d7ea0d91defff4210f5f4b4 Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 12:29:24 +0100
Subject: [PATCH 05/10] Deleted Specialized.Air.PerfectGas from twostoreyboxes
This caused errors irrelevant to the model example
---
IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo | 2 --
1 file changed, 2 deletions(-)
diff --git a/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
index 59f985141d..1cb1f46cf4 100644
--- a/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
+++ b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
@@ -7,7 +7,6 @@ model TwoStoreyBoxes
annotation (Placement(transformation(extent={{-100,80},{-80,100}})));
IDEAS.Buildings.Components.RectangularZoneTemplate Level(
- redeclare package Medium = IDEAS.Media.Specialized.Air.PerfectGas,
hFloor=5,
energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
T_start=291.15,
@@ -29,7 +28,6 @@ model TwoStoreyBoxes
annotation (Placement(transformation(extent={{-40,20},{-20,40}})));
IDEAS.Buildings.Components.RectangularZoneTemplate Groundfloor(
- redeclare package Medium = IDEAS.Media.Specialized.Air.PerfectGas,
energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
T_start=291.15,
bouTypA=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
From 94c09e38a58e9c3a350bbacb17f203b030114860 Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 14:43:00 +0100
Subject: [PATCH 06/10] .mos file for TwoStoreyBoxes
---
IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo | 5 ++++-
.../Scripts/Dymola/Buildings/Examples/TwoStoreyBoxes.mos | 4 ++++
2 files changed, 8 insertions(+), 1 deletion(-)
create mode 100644 IDEAS/Resources/Scripts/Dymola/Buildings/Examples/TwoStoreyBoxes.mos
diff --git a/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
index 1cb1f46cf4..716a4a20a8 100644
--- a/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
+++ b/IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
@@ -87,5 +87,8 @@ First implementation
", info="
Model with two zones on different floors with a large opening between these zones and stack-effect airflow enabled.
-"));
+"),
+ __Dymola_Commands(file=
+ "Resources/Scripts/Dymola/Buildings/Examples/TwoStoreyBoxes.mos"
+ "Simulate and Plot"));
end TwoStoreyBoxes;
diff --git a/IDEAS/Resources/Scripts/Dymola/Buildings/Examples/TwoStoreyBoxes.mos b/IDEAS/Resources/Scripts/Dymola/Buildings/Examples/TwoStoreyBoxes.mos
new file mode 100644
index 0000000000..1c2225284b
--- /dev/null
+++ b/IDEAS/Resources/Scripts/Dymola/Buildings/Examples/TwoStoreyBoxes.mos
@@ -0,0 +1,4 @@
+simulateModel("IDEAS.Buildings.Components.Examples.TwoStoreyBoxes", stopTime=1.2096e+06, method="Dassl", tolerance=1e-12, resultFile="TwoStoreyBoxes");
+createPlot(id=1, position={0, 0, 1521, 716}, y={"Level.intFlo.crackOrOperableDoor.m1_flow"}, range={0.0, 1220000.0, 0.0028, 0.005}, grid=true, subPlot=101, colors={{28,108,200}}, timeUnit="s", displayUnits={"kg/s"});
+createPlot(id=1, position={0, 0, 1521, 716}, y={"Level.intFlo.crackOrOperableDoor.doo.dpAB[1]", "Level.intFlo.crackOrOperableDoor.doo.dpAB[2]"}, range={0.0, 1220000.0, 1.0000000000000002E-06, 4.000000000000001E-06}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"Pa", "Pa"});
+
From afb84b3bb7a61da69525a3d499cb43795f6c4957 Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 15:53:39 +0100
Subject: [PATCH 07/10] Updates to LargeHorizontalOpening model
Model intended to show flow difference for seemingly similar models for large horizontal openings. Model adapted to highlight differences more. Documentation added.
---
.../Validation/LargeHorziontalOpening.mo | 237 ++++++------------
1 file changed, 73 insertions(+), 164 deletions(-)
diff --git a/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo b/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
index 01426082be..4c0de8dcb2 100644
--- a/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
+++ b/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
@@ -10,9 +10,9 @@ model LargeHorziontalOpening
dp_turbulent=Opening_CrackOrOperableDoor.dp_turbulent_ope,
A=2,
CD=0.78) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
+ extent={{10,-10},{-10,10}},
rotation=270,
- origin={-116,-18})));
+ origin={-118,-24})));
CrackOrOperableDoor Opening_CrackOrOperableDoor(
redeclare package Medium = Medium,
@@ -25,18 +25,19 @@ model LargeHorziontalOpening
h_a2=0,
hA=-1.5,
hB=1.5,
- A_q50=0.01,
- q50=0.01,
+ A_q50=0,
+ q50=0,
useDoor=true,
use_y=false,
inc=0) annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
- origin={60,-6})));
+ origin={60,-20})));
Modelica.Blocks.Math.Sum MF_Doormodel(nin=2, k={3600,3600})
- annotation (Placement(transformation(extent={{14,30},{-6,50}})));
+ annotation (Placement(transformation(extent={{4,14},{-16,34}})));
Modelica.Blocks.Math.Sum MF_Orifice(nin=1, k={3600})
annotation (Placement(transformation(extent={{-180,28},{-200,48}})));
+ Real OpeningflowDiff(unit="kg/s")=abs(MF_Doormodel.y)-abs(MF_Orifice.y);
protected
Fluid.Sensors.MassFlowRate MFsensor_Orifice(redeclare package Medium =
@@ -44,65 +45,67 @@ protected
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
- origin={-116,38})));
+ origin={-118,36})));
Fluid.Sensors.MassFlowRate Ori_Mixingvol_MF2(redeclare package Medium =
Medium) "Mass flow rate sensor"
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
- origin={50,40})));
+ origin={40,24})));
Fluid.MixingVolumes.MixingVolume
vol1(
redeclare package Medium = Medium,
T_start=293.15,
X_start={0,1},
- m_flow_nominal=1e-6,
+ m_flow_nominal=1e-12,
+ allowFlowReversal=true,
V=15,
- nPorts=2) "Pressure boundary" annotation (Placement(transformation(extent={{-10,10},
+ nPorts=4) "Pressure boundary" annotation (Placement(transformation(extent={{-10,10},
{10,-10}},
rotation=0,
- origin={-134,-76})));
+ origin={-18,-102})));
Fluid.MixingVolumes.MixingVolume
vol(
redeclare package Medium = Medium,
T_start=293.15,
X_start={0,1},
- m_flow_nominal=1e-6,
+ m_flow_nominal=1e-12,
+ allowFlowReversal=true,
V=15,
- nPorts=2) "Pressure boundary" annotation (Placement(transformation(extent={{-10,-10},
+ nPorts=4) "Pressure boundary" annotation (Placement(transformation(extent={{-10,-10},
{10,10}},
rotation=0,
- origin={-134,64})));
+ origin={-20,68})));
MediumColumn col2(
redeclare package Medium = Medium,
h=1.5,
densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromTop)
- annotation (Placement(transformation(extent={{-124,2},{-104,22}})));
+ annotation (Placement(transformation(extent={{-128,-4},{-108,16}})));
MediumColumn col3(
redeclare package Medium = Medium,
h=1.5,
densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromBottom)
- annotation (Placement(transformation(extent={{-124,-58},{-104,-38}})));
+ annotation (Placement(transformation(extent={{-128,-64},{-108,-44}})));
Orifice ori2(
redeclare package Medium = Medium,
useDefaultProperties=false,
A=0.5,
CD=0.6) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
+ extent={{10,-10},{-10,10}},
rotation=0,
- origin={-152,-130})));
+ origin={90,-148})));
MediumColumn col4(
redeclare package Medium = Medium,
h=1.5,
densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromBottom)
- annotation (Placement(transformation(extent={{-124,74},{-104,94}})));
+ annotation (Placement(transformation(extent={{-60,80},{-40,100}})));
MediumColumn col5(
redeclare package Medium = Medium,
h=1.5,
densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromTop)
- annotation (Placement(transformation(extent={{-124,-124},{-104,-104}})));
+ annotation (Placement(transformation(extent={{-4,-142},{16,-122}})));
Orifice ori3(
redeclare package Medium = Medium,
useDefaultProperties=false,
@@ -110,84 +113,15 @@ protected
CD=0.6) annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=0,
- origin={-80,100})));
- Fluid.Sources.Boundary_pT bouA4(
- redeclare package Medium = Medium,
- X={0,1},
- p(displayUnit="Pa") = 101325,
- T=278.15,
- nPorts=2) "Pressure boundary" annotation (Placement(transformation(extent={{10,10},
- {-10,-10}},
- rotation=0,
- origin={2,172})));
+ origin={50,116})));
Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature fixedTemperature(T=20)
- annotation (Placement(transformation(extent={{-172,54},{-152,74}})));
- Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature fixedTemperature1(T=20)
- annotation (Placement(transformation(extent={{-176,-86},{-156,-66}})));
- MediumColumn col6(
- redeclare package Medium = Medium,
- h=10,
- densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromTop)
- annotation (Placement(transformation(extent={{-40,-76},{-12,-48}})));
- MediumColumn col7(
- redeclare package Medium = Medium,
- h=4,
- densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromTop)
- annotation (Placement(transformation(extent={{-56,128},{-28,156}})));
- Fluid.MixingVolumes.MixingVolume
- vol2(
- redeclare package Medium = Medium,
- T_start=293.15,
- X_start={0,1},
- m_flow_nominal=1e-6,
- V=15,
- nPorts=3) "Pressure boundary" annotation (Placement(transformation(extent={{-10,10},
- {10,-10}},
- rotation=0,
- origin={50,-66})));
- Fluid.MixingVolumes.MixingVolume
- vol3(
- redeclare package Medium = Medium,
- T_start=293.15,
- X_start={0,1},
- m_flow_nominal=1e-6,
- V=15,
- nPorts=3) "Pressure boundary" annotation (Placement(transformation(extent={{-10,-10},
- {10,10}},
- rotation=0,
- origin={50,74})));
+ annotation (Placement(transformation(extent={{-172,58},{-152,78}})));
Fluid.Sensors.MassFlowRate Ori_Mixingvol_MF1(redeclare package Medium =
Medium) "Mass flow rate sensor"
annotation (Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
- origin={82,40})));
- Orifice ori5(
- redeclare package Medium = Medium,
- useDefaultProperties=false,
- A=0.5,
- CD=0.6) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={32,-120})));
- MediumColumn col9(
- redeclare package Medium = Medium,
- h=1.5,
- densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromBottom)
- annotation (Placement(transformation(extent={{60,84},{80,104}})));
- MediumColumn col10(
- redeclare package Medium = Medium,
- h=1.5,
- densitySelection=IDEAS.Airflow.Multizone.Types.densitySelection.fromTop)
- annotation (Placement(transformation(extent={{60,-114},{80,-94}})));
- Orifice ori6(
- redeclare package Medium = Medium,
- useDefaultProperties=false,
- A=0.5,
- CD=0.6) annotation (Placement(transformation(
- extent={{-10,-10},{10,10}},
- rotation=0,
- origin={104,110})));
+ origin={72,24})));
Fluid.Sources.Boundary_pT bouA1(
redeclare package Medium = Medium,
X={0,1},
@@ -196,11 +130,7 @@ protected
nPorts=2) "Pressure boundary" annotation (Placement(transformation(extent={{10,10},
{-10,-10}},
rotation=0,
- origin={186,166})));
- Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature fixedTemperature2(T=20)
- annotation (Placement(transformation(extent={{12,64},{32,84}})));
- Modelica.Thermal.HeatTransfer.Celsius.FixedTemperature fixedTemperature3(T=20)
- annotation (Placement(transformation(extent={{8,-76},{28,-56}})));
+ origin={198,172})));
MediumColumn col11(
redeclare package Medium = Medium,
h=10,
@@ -215,81 +145,60 @@ protected
equation
- connect(col3.port_b, vol1.ports[1]) annotation (Line(points={{-114,-58},{-114,
- -66},{-135,-66}},color={0,127,255}));
- connect(Opening_Orifice.port_a, col2.port_b)
- annotation (Line(points={{-116,-8},{-116,2},{-114,2}}, color={0,127,255}));
- connect(col3.port_a, Opening_Orifice.port_b) annotation (Line(points={{-114,-38},
- {-114,-32},{-116,-32},{-116,-28}}, color={0,127,255}));
- connect(col2.port_a, MFsensor_Orifice.port_a) annotation (Line(points={{-114,22},
- {-114,26},{-116,26},{-116,28}}, color={0,127,255}));
- connect(MFsensor_Orifice.port_b, vol.ports[1]) annotation (Line(points={{-116,
- 48},{-116,54},{-135,54}}, color={0,127,255}));
+ connect(col3.port_b, vol1.ports[1]) annotation (Line(points={{-118,-64},{-118,
+ -82},{-19.5,-82},{-19.5,-92}},
+ color={0,127,255}));
+ connect(col2.port_a, MFsensor_Orifice.port_a) annotation (Line(points={{-118,16},
+ {-118,26}}, color={0,127,255}));
+ connect(MFsensor_Orifice.port_b, vol.ports[1]) annotation (Line(points={{-118,46},
+ {-118,50},{-21.5,50},{-21.5,58}},
+ color={0,127,255}));
connect(vol.ports[2], col4.port_b)
- annotation (Line(points={{-133,54},{-114,54},{-114,74}},
- color={0,127,255}));
- connect(vol1.ports[2], col5.port_a) annotation (Line(points={{-133,-66},{-114,
- -66},{-114,-104}},
+ annotation (Line(points={{-20.5,58},{-20.5,56},{-22,56},{-22,52},{-50,52},{-50,
+ 80}}, color={0,127,255}));
+ connect(vol1.ports[2], col5.port_a) annotation (Line(points={{-18.5,-92},{-18.5,
+ -90},{-16,-90},{-16,-82},{6,-82},{6,-122}},
color={0,127,255}));
- connect(col5.port_b, ori2.port_b) annotation (Line(points={{-114,-124},{-114,-130},
- {-142,-130}}, color={0,127,255}));
- connect(col4.port_a, ori3.port_a) annotation (Line(points={{-114,94},{-114,100},
- {-90,100}}, color={0,127,255}));
+ connect(col5.port_b, ori2.port_b) annotation (Line(points={{6,-142},{6,-148},{
+ 80,-148}}, color={0,127,255}));
+ connect(col4.port_a, ori3.port_a) annotation (Line(points={{-50,100},{-50,116},
+ {40,116}}, color={0,127,255}));
connect(fixedTemperature.port, vol.heatPort)
- annotation (Line(points={{-152,64},{-144,64}},
- color={191,0,0}));
- connect(fixedTemperature1.port, vol1.heatPort)
- annotation (Line(points={{-156,-76},{-144,-76}},
- color={191,0,0}));
- connect(col6.port_a, bouA4.ports[1]) annotation (Line(points={{-26,-48},{-26,122},
- {-12,122},{-12,173},{-8,173}}, color={0,127,255}));
- connect(col6.port_b, ori2.port_a) annotation (Line(points={{-26,-76},{-26,-146},
- {-168,-146},{-168,-130},{-162,-130}}, color={0,127,255}));
- connect(col7.port_a, bouA4.ports[2]) annotation (Line(points={{-42,156},{-42,171},
- {-8,171}}, color={0,127,255}));
- connect(col7.port_b, ori3.port_b) annotation (Line(points={{-42,128},{-42,100},
- {-70,100}}, color={0,127,255}));
- connect(Ori_Mixingvol_MF1.port_b, vol3.ports[1]) annotation (Line(points={{82,50},
- {82,62},{70,62},{70,64},{48.6667,64}}, color={0,127,255}));
- connect(vol3.ports[2], col9.port_b)
- annotation (Line(points={{50,64},{70,64},{70,84}}, color={0,127,255}));
- connect(vol2.ports[1], col10.port_a) annotation (Line(points={{48.6667,-56},{
- 70,-56},{70,-94}},
- color={0,127,255}));
- connect(col10.port_b, ori5.port_b) annotation (Line(points={{70,-114},{70,-120},
- {42,-120}}, color={0,127,255}));
- connect(col9.port_a,ori6. port_a) annotation (Line(points={{70,104},{70,110},{
- 94,110}}, color={0,127,255}));
- connect(fixedTemperature2.port, vol3.heatPort)
- annotation (Line(points={{32,74},{40,74}}, color={191,0,0}));
- connect(fixedTemperature3.port,vol2. heatPort)
- annotation (Line(points={{28,-66},{40,-66}}, color={191,0,0}));
+ annotation (Line(points={{-152,68},{-30,68}},color={191,0,0}));
connect(col11.port_a, bouA1.ports[1]) annotation (Line(points={{158,-52},{158,
- 116},{166,116},{166,167},{176,167}}, color={0,127,255}));
- connect(col11.port_b, ori5.port_a) annotation (Line(points={{158,-80},{158,
- -146},{16,-146},{16,-120},{22,-120}},
- color={0,127,255}));
+ 173},{188,173}}, color={0,127,255}));
connect(col12.port_a, bouA1.ports[2]) annotation (Line(points={{142,150},{142,
- 165},{176,165}}, color={0,127,255}));
- connect(col12.port_b, ori6.port_b) annotation (Line(points={{142,122},{142,110},
- {114,110}}, color={0,127,255}));
- connect(Opening_CrackOrOperableDoor.port_a1, vol2.ports[2]) annotation (Line(
- points={{54,-16},{54,-50},{50,-50},{50,-56}}, color={0,127,255}));
- connect(Opening_CrackOrOperableDoor.port_b2, vol2.ports[3]) annotation (Line(
- points={{66,-16},{66,-50},{51.3333,-50},{51.3333,-56}}, color={0,127,255}));
+ 171},{188,171}}, color={0,127,255}));
connect(Opening_CrackOrOperableDoor.port_a2, Ori_Mixingvol_MF1.port_a)
- annotation (Line(points={{66,4},{66,24},{82,24},{82,30}}, color={0,127,255}));
+ annotation (Line(points={{66,-10},{66,8},{72,8},{72,14}}, color={0,127,255}));
connect(Opening_CrackOrOperableDoor.port_b1, Ori_Mixingvol_MF2.port_a)
- annotation (Line(points={{54,4},{54,24},{50,24},{50,30}}, color={0,127,255}));
- connect(Ori_Mixingvol_MF2.port_b, vol3.ports[3]) annotation (Line(points={{50,50},
- {51.3333,50},{51.3333,64}}, color={0,127,255}));
- connect(Ori_Mixingvol_MF2.m_flow, MF_Doormodel.u[1]) annotation (Line(points={
- {39,40},{28,40},{28,39.5},{16,39.5}}, color={0,0,127}));
- connect(Ori_Mixingvol_MF1.m_flow, MF_Doormodel.u[2]) annotation (Line(points={
- {71,40},{66,40},{66,56},{32,56},{32,40},{28,40},{28,40.5},{16,40.5}},
+ annotation (Line(points={{54,-10},{54,8},{40,8},{40,14}}, color={0,127,255}));
+ connect(Ori_Mixingvol_MF2.m_flow, MF_Doormodel.u[1]) annotation (Line(points={{29,24},
+ {18,24},{18,23.5},{6,23.5}}, color={0,0,127}));
+ connect(Ori_Mixingvol_MF1.m_flow, MF_Doormodel.u[2]) annotation (Line(points={{61,24},
+ {56,24},{56,40},{22,40},{22,24},{18,24},{18,24.5},{6,24.5}},
color={0,0,127}));
connect(MF_Orifice.u[1], MFsensor_Orifice.m_flow)
- annotation (Line(points={{-178,38},{-127,38}}, color={0,0,127}));
+ annotation (Line(points={{-178,38},{-154,38},{-154,36},{-129,36}},
+ color={0,0,127}));
+ connect(col3.port_a, Opening_Orifice.port_a) annotation (Line(points={{-118,-44},
+ {-118,-34}}, color={0,127,255}));
+ connect(Opening_Orifice.port_b, col2.port_b) annotation (Line(points={{-118,-14},
+ {-118,-4}}, color={0,127,255}));
+ connect(col12.port_b, ori3.port_b) annotation (Line(points={{142,122},{142,116},
+ {60,116}}, color={0,127,255}));
+ connect(col11.port_b, ori2.port_a) annotation (Line(points={{158,-80},{158,-148},
+ {100,-148}}, color={0,127,255}));
+ connect(fixedTemperature.port, vol1.heatPort) annotation (Line(points={{-152,68},
+ {-76,68},{-76,-102},{-28,-102}}, color={191,0,0}));
+ connect(Opening_CrackOrOperableDoor.port_a1, vol1.ports[3]) annotation (Line(
+ points={{54,-30},{54,-82},{-17.5,-82},{-17.5,-92}}, color={0,127,255}));
+ connect(Opening_CrackOrOperableDoor.port_b2, vol1.ports[4]) annotation (Line(
+ points={{66,-30},{66,-82},{-16.5,-82},{-16.5,-92}}, color={0,127,255}));
+ connect(Ori_Mixingvol_MF2.port_b, vol.ports[3]) annotation (Line(points={{40,34},
+ {40,52},{-19.5,52},{-19.5,58}}, color={0,127,255}));
+ connect(Ori_Mixingvol_MF1.port_b, vol.ports[4]) annotation (Line(points={{72,34},
+ {72,52},{-22,52},{-22,58},{-18.5,58}}, color={0,127,255}));
annotation (Diagram(
coordinateSystem(preserveAspectRatio=false, extent={{-200,-160},{220,200}})),
experiment(
@@ -308,7 +217,7 @@ First implementation.
", info="
-Model to test the airflow trough large non-horizontal openings.
+Differences in assumptions for density calculations linked to stack-effect airflow (internally for door component, external via density columns for orifice) can result in different pressure differences over the opening (10e-3). However, for large horizontal openings this can result in important differences in volume flow results. This example shows how two similar openings with other underlying modelling assumptions lead to noticeable differences in massflowrate.
"),
Icon(coordinateSystem(extent={{-100,-100},{100,100}})));
end LargeHorziontalOpening;
From cae81c7d176647b17be5d74bff2826455cbc5b7a Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 15:54:17 +0100
Subject: [PATCH 08/10] .mos for LargeHorizontalOpening model
---
IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo | 4 ++--
.../Airflow/Multizone/Validation/LargeHorizontalOpening.mos | 5 +++++
2 files changed, 7 insertions(+), 2 deletions(-)
create mode 100644 IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/Validation/LargeHorizontalOpening.mos
diff --git a/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo b/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
index 4c0de8dcb2..f996920e4f 100644
--- a/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
+++ b/IDEAS/Airflow/Multizone/Validation/LargeHorziontalOpening.mo
@@ -206,8 +206,8 @@ equation
Interval=10,
Tolerance=1e-09,
__Dymola_Algorithm="Cvode"),
- __Dymola_Commands(file="modelica://IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OneWayFlow.mos"
- "Simulate and plot"),
+ __Dymola_Commands(file="Resources/Scripts/Dymola/Airflow/Multizone/Validation/LargeHorizontalOpening.mos"
+ "Simulate and Plot"),
Documentation(revisions="
-
diff --git a/IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/Validation/LargeHorizontalOpening.mos b/IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/Validation/LargeHorizontalOpening.mos
new file mode 100644
index 0000000000..ce319dd64f
--- /dev/null
+++ b/IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/Validation/LargeHorizontalOpening.mos
@@ -0,0 +1,5 @@
+simulateModel("IDEAS.Airflow.Multizone.Validation.LargeHorziontalOpening", stopTime=300, method="Cvode", tolerance=1e-12, resultFile="LargeHorziontalOpening");
+createPlot(id=1, position={0, 0, 1319, 716}, y={"OpeningflowDiff"}, range={0.0, 300.0, -2000.0, 500.0}, grid=true, subPlot=103, colors={{28,108,200}}, timeUnit="s", displayUnits={"kg/s"});
+createPlot(id=1, position={0, 0, 1319, 716}, y={"MF_Orifice.y", "MF_Doormodel.y"}, range={0.0, 300.0, 0.0, 2000.0}, autoscale=false, grid=true, subPlot=101, colors={{28,108,200}, {238,46,47}}, range2={0.76, 0.96}, timeUnit="s");
+createPlot(id=1, position={0, 0, 1319, 716}, y={"Opening_Orifice.dp", "Opening_CrackOrOperableDoor.doo.dpAB[1]"}, range={0.0, 300.0, -0.1, 0.1}, autoscale=false, grid=true, subPlot=102, colors={{238,46,47}, {28,108,200}}, range2={0.785, 0.8200000000000001}, timeUnit="s", displayUnits={"Pa", "Pa"});
+
From ce5b8d10e6f45d4503fa5ce3be4eb7a68fb9f6d7 Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 16:02:47 +0100
Subject: [PATCH 09/10] Renamed reversibldensitycolumn to
MediumColumnReversible
This is cleaner as part of the multizone package
---
.../Multizone/Examples/TrickleVentIDEAS.mo | 28 +++++++++----------
...ityColumn.mo => MediumColumnReversible.mo} | 8 +++---
IDEAS/Airflow/Multizone/package.order | 2 +-
IDEAS/Buildings/Components/Window.mo | 16 ++++++-----
4 files changed, 28 insertions(+), 26 deletions(-)
rename IDEAS/Airflow/Multizone/{ReversibleDensityColumn.mo => MediumColumnReversible.mo} (95%)
diff --git a/IDEAS/Airflow/Multizone/Examples/TrickleVentIDEAS.mo b/IDEAS/Airflow/Multizone/Examples/TrickleVentIDEAS.mo
index b7b4982b02..c94135c198 100644
--- a/IDEAS/Airflow/Multizone/Examples/TrickleVentIDEAS.mo
+++ b/IDEAS/Airflow/Multizone/Examples/TrickleVentIDEAS.mo
@@ -2,27 +2,27 @@ within IDEAS.Airflow.Multizone.Examples;
model TrickleVentIDEAS
"Model with a trickle vent modelled using the models with flow based on tabulated data"
extends IDEAS.Airflow.Multizone.Examples.TrickleVent(west(nPorts=2), east(nPorts=2));
-
+
IDEAS.Airflow.Multizone.TrickleVent vent(
redeclare package Medium = Medium,
- dp_nominal = 10,
- m_flow_nominal = 0.02614,
- use_y = true)
- "Analytic trickle vent implementation" annotation(
+ dp_nominal = 10,
+ m_flow_nominal = 0.02614,
+ use_y = true)
+ "Analytic trickle vent implementation" annotation (
Placement(visible = true, transformation(origin = {20, -70}, extent = {{-10, 10}, {10, -10}}, rotation = 0)));
Modelica.Blocks.Sources.Ramp ramp(
- duration = 1e6,
- height = -1,
- offset = 1,
- startTime = 1592000)
- "Step control signal" annotation(
+ duration = 1e6,
+ height = -1,
+ offset = 1,
+ startTime = 1592000)
+ "Step control signal" annotation (
Placement(visible = true, transformation(origin = {-90, -88}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
- connect(vent.port_a, east.ports[2]) annotation(
+ connect(vent.port_a, east.ports[2]) annotation (
Line(points = {{10, -70}, {-25, -70}, {-25, -30}, {-30, -30}}, color = {0, 127, 255}));
- connect(vent.port_b, west.ports[2]) annotation(
+ connect(vent.port_b, west.ports[2]) annotation (
Line(points = {{30, -70}, {65, -70}, {65, -30}, {70, -30}}, color = {0, 127, 255}));
- connect(ramp.y, vent.y) annotation(
+ connect(ramp.y, vent.y) annotation (
Line(points = {{-79, -88}, {20.5, -88}, {20.5, -82}, {20, -82}}, color = {0, 0, 127}));
annotation (__Dymola_Commands(file="modelica://IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/Examples/TrickleVentIDEAS.mos"
"Simulate and plot"),
@@ -50,4 +50,4 @@ First implementation.
"),
Diagram);
-end TrickleVentIDEAS;
\ No newline at end of file
+end TrickleVentIDEAS;
diff --git a/IDEAS/Airflow/Multizone/ReversibleDensityColumn.mo b/IDEAS/Airflow/Multizone/MediumColumnReversible.mo
similarity index 95%
rename from IDEAS/Airflow/Multizone/ReversibleDensityColumn.mo
rename to IDEAS/Airflow/Multizone/MediumColumnReversible.mo
index 96360c35bb..6da0ffca15 100644
--- a/IDEAS/Airflow/Multizone/ReversibleDensityColumn.mo
+++ b/IDEAS/Airflow/Multizone/MediumColumnReversible.mo
@@ -1,13 +1,13 @@
within IDEAS.Airflow.Multizone;
-model ReversibleDensityColumn
+model MediumColumnReversible
"Vertical shaft with no friction and no storage of heat and mass, reversible because it can handle negative column heights"
extends IDEAS.Airflow.Multizone.MediumColumn(
- h(min=-Modelica.Constants.inf),
+ h(min=-Modelica.Constants.inf),
final densitySelection = IDEAS.Airflow.Multizone.Types.densitySelection.fromBottom);
// by convention, port_b must be connected to a zone instead of a flow element
// h is allowed to be negative to accomodate for this convention
-
+
annotation (
Icon(graphics={
Line(
@@ -39,4 +39,4 @@ This makes port_a not nececarilly always the top port.
"));
-end ReversibleDensityColumn;
\ No newline at end of file
+end MediumColumnReversible;
diff --git a/IDEAS/Airflow/Multizone/package.order b/IDEAS/Airflow/Multizone/package.order
index 08612d5ffb..07a26438fe 100644
--- a/IDEAS/Airflow/Multizone/package.order
+++ b/IDEAS/Airflow/Multizone/package.order
@@ -9,10 +9,10 @@ DoorOperable
EffectiveAirLeakageArea
MediumColumn
MediumColumnDynamic
+MediumColumnReversible
Orifice
Point_m_flow
Points_m_flow
-ReversibleDensityColumn
Table_V_flow
Table_m_flow
TrickleVent
diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo
index 2f73d068c3..f9d458d7db 100644
--- a/IDEAS/Buildings/Components/Window.mo
+++ b/IDEAS/Buildings/Components/Window.mo
@@ -195,13 +195,15 @@ model Window "Multipane window"
Modelica.Blocks.Sources.RealExpression y_window_trunc(y = max(0, min(1, y_window_internal)))
"Truncated control signal" annotation (
Placement(visible = true, transformation(origin = {-10, -90}, extent = {{-10, 10}, {10, -10}}, rotation = 90)));
- Airflow.Multizone.ReversibleDensityColumn col_trickle(redeclare package
- Medium = Medium, h=
- hTrickleVent - (hzone_a/2)) if use_trickle_vent and sim.interZonalAirFlowType
- == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Column for port trickle vent" annotation (
- Placement(transformation(origin = {112, -40}, extent = {{50, -10}, {70, 10}}, rotation = 180)));
- Airflow.Multizone.ReversibleDensityColumn outside_trickleCol(redeclare package
- Medium = Medium, h=hTrickleVent - (Habs_surf - hAbs_floor_a)) if
+ Airflow.Multizone.MediumColumnReversible col_trickle(redeclare package Medium
+ = Medium, h=hTrickleVent - (hzone_a/2)) if use_trickle_vent and sim.interZonalAirFlowType
+ == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
+ "Column for port trickle vent" annotation (Placement(transformation(
+ origin={112,-40},
+ extent={{50,-10},{70,10}},
+ rotation=180)));
+ Airflow.Multizone.MediumColumnReversible outside_trickleCol(redeclare package
+ Medium = Medium, h=hTrickleVent - (Habs_surf - hAbs_floor_a)) if
use_trickle_vent and sim.interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
"Column for connecting outside side of trickle vent"
annotation (Placement(visible=true, transformation(
From ce3224c955f5d367fcd0d43b5a021cd9526ceaac Mon Sep 17 00:00:00 2001
From: kldjonge
Date: Wed, 30 Oct 2024 15:59:10 +0100
Subject: [PATCH 10/10] Changed description of crack or operable door
---
.../Airflow/Multizone/CrackOrOperableDoor.mo | 60 ++++++++++++-------
1 file changed, 40 insertions(+), 20 deletions(-)
diff --git a/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo b/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
index 1ec522bf16..de5c583d80 100644
--- a/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
+++ b/IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
@@ -1,6 +1,6 @@
within IDEAS.Airflow.Multizone;
model CrackOrOperableDoor
- "Door model using discretization along height coordinate"
+ "Infiltration or large opening model used for the embeded airflow implementation in IDEAS.Buildings.Components"
extends IDEAS.Fluid.Interfaces.PartialFourPortInterface(
redeclare final package Medium1 = Medium,
redeclare final package Medium2 = Medium,
@@ -99,14 +99,34 @@ model CrackOrOperableDoor
m = if openDoorOnePort and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.OnePort then mOpe else mClo,
useDefaultProperties = false) if not useDoor or (useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.OnePort) "Pressure drop equation" annotation (
Placement(visible = true, transformation(origin = {0, 60}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
- IDEAS.Airflow.Multizone.ReversibleDensityColumn col_b1(redeclare package Medium = Medium, h=h_b1) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts and not useDoor "Column for port b1" annotation (
- Placement(visible = true, transformation(origin = {0, 70}, extent = {{50, -10}, {70, 10}}, rotation = 0)));
- IDEAS.Airflow.Multizone.ReversibleDensityColumn col_a1(redeclare package Medium = Medium, h=h_a1) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts and not useDoor "Column for port a1" annotation (
- Placement(visible = true, transformation(origin = {0, 70}, extent = {{-70, -10}, {-50, 10}}, rotation = 0)));
- IDEAS.Airflow.Multizone.ReversibleDensityColumn col_b2(redeclare package Medium = Medium, h=h_b2) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts and not useDoor"Column for port b2" annotation (
- Placement(visible = true, transformation(origin = {0, -50}, extent = {{-70, -10}, {-50, 10}}, rotation = 0)));
- IDEAS.Airflow.Multizone.ReversibleDensityColumn col_a2(redeclare package Medium = Medium, h=h_a2) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts and not useDoor "Column for port a2" annotation (
- Placement(visible = true, transformation(origin = {0, -50}, extent = {{50, -10}, {70, 10}}, rotation = 0)));
+ IDEAS.Airflow.Multizone.MediumColumnReversible col_b1(redeclare package
+ Medium = Medium, h=h_b1) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
+ and not useDoor "Column for port b1" annotation (Placement(visible=true,
+ transformation(
+ origin={0,70},
+ extent={{50,-10},{70,10}},
+ rotation=0)));
+ IDEAS.Airflow.Multizone.MediumColumnReversible col_a1(redeclare package
+ Medium = Medium, h=h_a1) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
+ and not useDoor "Column for port a1" annotation (Placement(visible=true,
+ transformation(
+ origin={0,70},
+ extent={{-70,-10},{-50,10}},
+ rotation=0)));
+ IDEAS.Airflow.Multizone.MediumColumnReversible col_b2(redeclare package
+ Medium = Medium, h=h_b2) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
+ and not useDoor "Column for port b2" annotation (Placement(visible=true,
+ transformation(
+ origin={0,-50},
+ extent={{-70,-10},{-50,10}},
+ rotation=0)));
+ IDEAS.Airflow.Multizone.MediumColumnReversible col_a2(redeclare package
+ Medium = Medium, h=h_a2) if interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
+ and not useDoor "Column for port a2" annotation (Placement(visible=true,
+ transformation(
+ origin={0,-50},
+ extent={{50,-10},{70,10}},
+ rotation=0)));
IDEAS.Airflow.Multizone.Point_m_flow point_m_flow2(
redeclare package Medium = Medium,
dpMea_nominal = dpCloRat,
@@ -169,7 +189,7 @@ equation
connect(col_a1.port_b, port_a1) annotation (
Line(points = {{-60, 60}, {-100, 60}}, color = {0, 127, 255}));
connect(y, doo.y) annotation (
- Line(points={{-110,0},{-11,0}}, color = {0, 0, 127}));
+ Line(points={{-110,0},{-13,0}}, color = {0, 0, 127}));
connect(bou.ports[1], port_a2) annotation (
Line(points={{-1,-80},{100,-80},{100,-60}}, color = {0, 127, 255}));
if interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts then
@@ -179,17 +199,17 @@ equation
Line(points = {{10, 60}, {100, 60}}, color = {0, 127, 255}));
end if;
connect(constOne.y, doo.y) annotation (
- Line(points={{-47.4,-14},{-32,-14},{-32,0},{-11,0}}, color = {0, 0, 127}));
+ Line(points={{-47.4,-14},{-32,-14},{-32,0},{-13,0}}, color = {0, 0, 127}));
connect(bou.ports[2], port_b2) annotation (
Line(points={{1,-80},{-100,-80},{-100,-60}}, color = {0, 127, 255}));
- connect(doo.port_a1, port_a1) annotation(
- Line(points = {{-10, 6}, {-30, 6}, {-30, 60}, {-100, 60}}, color = {0, 127, 255}));
- connect(doo.port_b1, port_b1) annotation(
- Line(points = {{10, 6}, {30, 6}, {30, 60}, {100, 60}}, color = {0, 127, 255}));
- connect(doo.port_b2, port_b2) annotation(
- Line(points = {{-10, -6}, {-20, -6}, {-20, -34}, {-100, -34}, {-100, -60}}, color = {0, 127, 255}));
- connect(doo.port_a2, port_a2) annotation(
- Line(points = {{10, -6}, {20, -6}, {20, -34}, {100, -34}, {100, -60}}, color = {0, 127, 255}));
+ connect(doo.port_a1, port_a1) annotation (
+ Line(points={{-12,6},{-30,6},{-30,60},{-100,60}}, color = {0, 127, 255}));
+ connect(doo.port_b1, port_b1) annotation (
+ Line(points={{8,6},{30,6},{30,60},{100,60}}, color = {0, 127, 255}));
+ connect(doo.port_b2, port_b2) annotation (
+ Line(points={{-12,-6},{-20,-6},{-20,-34},{-100,-34},{-100,-60}}, color = {0, 127, 255}));
+ connect(doo.port_a2, port_a2) annotation (
+ Line(points={{8,-6},{20,-6},{20,-34},{100,-34},{100,-60}}, color = {0, 127, 255}));
annotation(Documentation(info="
@@ -214,4 +234,4 @@ First documented version.
"),
Diagram,
Icon(graphics={ Polygon(lineColor = {0, 0, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, points = {{-30, -10}, {-16, -8}, {-16, -14}, {-30, -16}, {-30, -10}}), Line(points = {{-54, 48}, {-36, 48}}), Line(points = {{-54, 20}, {-36, 20}}), Rectangle(fillColor = {255, 255, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-100, 100}, {100, -100}}), Line(points = {{-54, -58}, {-36, -58}}), Rectangle(lineColor = {0, 0, 255}, fillColor = {255, 128, 0}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-46, -16}, {-20, -20}}), Rectangle(lineColor = {0, 0, 255}, fillColor = {85, 75, 55}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-60, 80}, {60, -84}}), Rectangle(fillColor = {215, 215, 215}, fillPattern = FillPattern.Solid, extent = {{-54, 72}, {56, -84}}), Polygon(fillColor = {95, 95, 95}, fillPattern = FillPattern.Solid, points = {{56, 72}, {-36, 66}, {-36, -90}, {56, -84}, {56, 72}}), Rectangle(lineColor = {0, 0, 255}, fillColor = {255, 128, 0}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-100, 2}, {-46, -2}}), Polygon(visible = false, origin = {75, 50}, rotation = 360, lineColor = {0, 128, 255}, fillColor = {0, 128, 255}, fillPattern = FillPattern.Solid, points = {{-5, 10}, {25, 10}, {-5, -10}, {-5, 10}}), Text(textColor = {0, 0, 127}, extent = {{-118, 34}, {-98, 16}}, textString = "y"), Line(points = {{-54, -6}, {-36, -6}}), Line(points = {{-54, -32}, {-36, -32}}), Polygon(visible = false, origin = {-79, -50}, rotation = 360, lineColor = {0, 128, 255}, fillColor = {0, 128, 255}, fillPattern = FillPattern.Solid, points = {{10, 10}, {-20, -10}, {10, -10}, {10, 10}}), Rectangle(lineColor = {0, 0, 255}, fillColor = {255, 128, 0}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-46, 2}, {-40, -16}})}, coordinateSystem(extent = {{-100, -100}, {100, 100}})));
-end CrackOrOperableDoor;
\ No newline at end of file
+end CrackOrOperableDoor;