From b475a3220724b0db9d1aad663eae6cff378af2d8 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Mon, 30 Sep 2024 13:14:02 +0200 Subject: [PATCH 01/19] Adding parameter T_setpoint in PartialZone and PartialSurface --- IDEAS/Buildings/Components/BoundaryWall.mo | 2 +- .../Buildings/Components/Interfaces/PartialSurface.mo | 4 ++++ IDEAS/Buildings/Components/Interfaces/PartialZone.mo | 5 ++++- IDEAS/Buildings/Components/OuterWall.mo | 2 +- IDEAS/Buildings/Components/SlabOnGround.mo | 2 +- IDEAS/Buildings/Components/Window.mo | 11 +++++------ 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index 8b440c7d9..561cf95e1 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -4,7 +4,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe final custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=U_value*A*(273.15 + 21 - TRef_a), + QTra_design=U_value*A*(T_setpoint - TRef_a), dT_nominal_a=-1, add_cracks=false, layMul(disableInitPortB=use_T_in or use_T_fixed, monLay(monLayDyn(each diff --git a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo index 3a8b0e77d..cc20c28b2 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo @@ -30,6 +30,10 @@ partial model PartialSurface "Partial model for building envelope component" parameter Modelica.Units.SI.Temperature TRef_a=291.15 "Reference temperature of zone on side of propsBus_a, for calculation of design heat loss" annotation (Dialog(group="Design power", tab="Advanced")); + parameter Modelica.Units.SI.Temperature T_setpoint=273.15+21 + "Reference temperature setpoint of zone (in K), for calculation of design heat loss" + annotation (Dialog(group="Design power", tab="Advanced")); + parameter Boolean linIntCon_a=sim.linIntCon "= true, if convective heat transfer should be linearised" annotation (Dialog(tab="Convection")); diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo index f4f59fb09..0ff029860 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo @@ -34,8 +34,11 @@ model PartialZone "Building zone model" parameter Boolean calculateViewFactor = false "Explicit calculation of view factors: works well only for rectangular zones!" annotation(Dialog(tab="Advanced", group="Radiative heat exchange")); + parameter Modelica.Units.SI.Temperature T_setpoint=273.15+21 + "Reference temperature setpoint of zone (in K), for calculation of design heat loss"; + final parameter Modelica.Units.SI.Power QInf_design=1012*1.204*V/3600*n50_int - /n50toAch*(273.15 + 21 - sim.Tdes) + /n50toAch*(T_setpoint - sim.Tdes) "Design heat losses from infiltration at reference outdoor temperature"; final parameter Modelica.Units.SI.Power QRH_design=A*fRH "Additional power required to compensate for the effects of intermittent heating"; diff --git a/IDEAS/Buildings/Components/OuterWall.mo b/IDEAS/Buildings/Components/OuterWall.mo index 2d52cf657..3c65e1d0a 100644 --- a/IDEAS/Buildings/Components/OuterWall.mo +++ b/IDEAS/Buildings/Components/OuterWall.mo @@ -96,7 +96,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-100,-60},{-80,-40}}))); initial equation - QTra_design =U_value*A*(273.15 + 21 - Tdes.y); + QTra_design =U_value*A*(T_setpoint - Tdes.y); equation if hasBuildingShade then diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index 0a778334b..b6c59ecfa 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -4,7 +4,7 @@ model SlabOnGround "opaque floor on ground slab" custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=UEqui*A*(273.15 + 21 - sim.Tdes), + QTra_design=UEqui*A*(T_setpoint - sim.Tdes), add_cracks=false, dT_nominal_a=-3, inc=IDEAS.Types.Tilt.Floor, diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo index 3c2e29506..b0706801e 100644 --- a/IDEAS/Buildings/Components/Window.mo +++ b/IDEAS/Buildings/Components/Window.mo @@ -74,10 +74,8 @@ model Window "Multipane window" Modelica.Blocks.Interfaces.RealInput Ctrl if controlled "Control signal between 0 and 1, i.e. 1 is fully closed" annotation ( Placement(visible = true,transformation( - origin={-50,-110},extent={{20,-20},{-20,20}}, rotation=-90), iconTransformation( - origin={-40,-100},extent={{10,-10},{-10,10}}, rotation=-90))); @@ -190,7 +188,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-40,-100},{-20,-80}}))); initial equation - QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(273.15 + 21 - Tdes.y); + QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(T_setpoint - Tdes.y); assert(not use_trickle_vent or sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None, "In " + getInstanceName() + ": Trickle vents can only be enabled when sim.interZonalAirFlowType is not None."); @@ -271,8 +269,9 @@ equation connect(shaType.hForcedConExt, radSolData.hForcedConExt) annotation ( Line(points={{-68.5,-32.7043},{-76,-32.7043},{-76,-62.2},{-79.4,-62.2}}, color = {0, 0, 127})); - connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation( - Line(points = {{-42, -90}, {-46, -90}, {-46, -48}, {-58, -48}}, color = {0, 0, 127})); + connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation ( + Line(points={{-42,-90},{-46,-90},{-46,-49.4895},{-57.5,-49.4895}}, + color = {0, 0, 127})); annotation ( Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-100},{60,100}}), graphics={Rectangle(fillColor = {255, 255, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-50, -90}, {50, 100}}), @@ -467,4 +466,4 @@ Adjusted implementation for grouping of solar calculations. ")); -end Window; \ No newline at end of file +end Window; From dcb5db138c1fcdfd71c91141292a4fa05cd3d05c Mon Sep 17 00:00:00 2001 From: annadellisola Date: Wed, 2 Oct 2024 15:14:02 +0200 Subject: [PATCH 02/19] Modelica convention for naming TSet --- IDEAS/Buildings/Components/BoundaryWall.mo | 2 +- IDEAS/Buildings/Components/Interfaces/PartialSurface.mo | 2 +- IDEAS/Buildings/Components/Interfaces/PartialZone.mo | 4 ++-- IDEAS/Buildings/Components/OuterWall.mo | 2 +- IDEAS/Buildings/Components/SlabOnGround.mo | 2 +- IDEAS/Buildings/Components/Window.mo | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index 561cf95e1..f55089994 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -4,7 +4,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe final custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=U_value*A*(T_setpoint - TRef_a), + QTra_design=U_value*A*(TSet - TRef_a), dT_nominal_a=-1, add_cracks=false, layMul(disableInitPortB=use_T_in or use_T_fixed, monLay(monLayDyn(each diff --git a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo index cc20c28b2..c62bed75e 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo @@ -30,7 +30,7 @@ partial model PartialSurface "Partial model for building envelope component" parameter Modelica.Units.SI.Temperature TRef_a=291.15 "Reference temperature of zone on side of propsBus_a, for calculation of design heat loss" annotation (Dialog(group="Design power", tab="Advanced")); - parameter Modelica.Units.SI.Temperature T_setpoint=273.15+21 + parameter Modelica.Units.SI.Temperature TSet=273.15+21 "Reference temperature setpoint of zone (in K), for calculation of design heat loss" annotation (Dialog(group="Design power", tab="Advanced")); diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo index 0ff029860..44eec8ab5 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo @@ -34,11 +34,11 @@ model PartialZone "Building zone model" parameter Boolean calculateViewFactor = false "Explicit calculation of view factors: works well only for rectangular zones!" annotation(Dialog(tab="Advanced", group="Radiative heat exchange")); - parameter Modelica.Units.SI.Temperature T_setpoint=273.15+21 + parameter Modelica.Units.SI.Temperature TSet=273.15+21 "Reference temperature setpoint of zone (in K), for calculation of design heat loss"; final parameter Modelica.Units.SI.Power QInf_design=1012*1.204*V/3600*n50_int - /n50toAch*(T_setpoint - sim.Tdes) + /n50toAch*(TSet - sim.Tdes) "Design heat losses from infiltration at reference outdoor temperature"; final parameter Modelica.Units.SI.Power QRH_design=A*fRH "Additional power required to compensate for the effects of intermittent heating"; diff --git a/IDEAS/Buildings/Components/OuterWall.mo b/IDEAS/Buildings/Components/OuterWall.mo index 3c65e1d0a..0b9f8d01f 100644 --- a/IDEAS/Buildings/Components/OuterWall.mo +++ b/IDEAS/Buildings/Components/OuterWall.mo @@ -96,7 +96,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-100,-60},{-80,-40}}))); initial equation - QTra_design =U_value*A*(T_setpoint - Tdes.y); + QTra_design =U_value*A*(TSet - Tdes.y); equation if hasBuildingShade then diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index b6c59ecfa..b71fa2117 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -4,7 +4,7 @@ model SlabOnGround "opaque floor on ground slab" custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=UEqui*A*(T_setpoint - sim.Tdes), + QTra_design=UEqui*A*(TSet - sim.Tdes), add_cracks=false, dT_nominal_a=-3, inc=IDEAS.Types.Tilt.Floor, diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo index b0706801e..305e16587 100644 --- a/IDEAS/Buildings/Components/Window.mo +++ b/IDEAS/Buildings/Components/Window.mo @@ -188,7 +188,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-40,-100},{-20,-80}}))); initial equation - QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(T_setpoint - Tdes.y); + QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TSet - Tdes.y); assert(not use_trickle_vent or sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None, "In " + getInstanceName() + ": Trickle vents can only be enabled when sim.interZonalAirFlowType is not None."); From 5a4693ce6f4bd2dc378f8472fcc670f0c8cf0c96 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 11:55:09 +0200 Subject: [PATCH 03/19] BoundaryWall.mo change for QTra_losses calculation --- IDEAS/Buildings/Components/BoundaryWall.mo | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index f55089994..2759506d0 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -4,7 +4,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe final custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=U_value*A*(TSet - TRef_a), + QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRef_a - T_in_nom) else Q_in_nom, dT_nominal_a=-1, add_cracks=false, layMul(disableInitPortB=use_T_in or use_T_fixed, monLay(monLayDyn(each @@ -13,16 +13,18 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe parameter Boolean use_T_fixed = false "Get the boundary temperature from the input connector" annotation(Dialog(group="Boundary conditions")); - parameter Modelica.Units.SI.Temperature T_fixed=294.15 - "Fixed boundary temperature" - annotation (Dialog(group="Boundary conditions", enable=use_T_fixed)); parameter Boolean use_T_in = false "Get the boundary temperature from the input connector" annotation(Dialog(group="Boundary conditions")); + parameter Modelica.Units.SI.Temperature T_in_nom=294.15 + "Nominal boundary temperature, for fixed boundary condition and for calculation of design heat loss" + annotation (Dialog(group="Boundary conditions",enable=use_T_fixed or use_T_in)); parameter Boolean use_Q_in = false "Get the boundary heat flux from the input connector" annotation(Dialog(group="Boundary conditions")); - + parameter Modelica.Units.SI.HeatFlowRate Q_in_nom + "Nominal boundary heat flux, for calculation of design heat loss" + annotation (Dialog(group="Boundary conditions", enable=use_Q_in)); Modelica.Blocks.Interfaces.RealInput T if use_T_in "Input for boundary temperature" annotation (Placement( transformation(extent={{-120,10},{-100,30}}),iconTransformation(extent={{-120,10}, @@ -36,7 +38,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe annotation (Placement(transformation(extent={{-86,26},{-74,14}}))); Modelica.Blocks.Math.Product proPreQ if use_Q_in "Product for linearisation" annotation (Placement(transformation(extent={{-86,-14},{-74,-26}}))); - Modelica.Blocks.Sources.Constant TConst(k=T_fixed) if use_T_fixed + Modelica.Blocks.Sources.Constant TConst(k=T_in_nom) if use_T_fixed "Constant block for temperature" annotation (Placement(transformation(extent={{-110,32},{-100,42}}))); @@ -166,10 +168,12 @@ Instead a prescribed temperature or heat flow rate may be set.

Parameters use_T_in and use_Q_in may be used to enable an input for a prescribed boundary condition temperature or heat flow rate. -Alternatively, parameters use_T_fixed and T_fixed can be used +Alternatively, parameters use_T_fixed and T_in_nom can be used to specify a fixed boundary condition temperature. It is not allowed to enabled multiple of these three options. -If all are disabled then an adiabatic boundary (Q_flow=0) is used. +If all are disabled then an adiabatic boundary (Q_flow=0) is used.

+Parameters T_in_nom and Q_in_nom are used for the calculation +of heat losses, when the temperature boundary condition and heat flow boundary condition are applied, respectively.

", revisions="
    From 1f0d7dce07afa00caadcb74cf28152f8561c32e9 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 14:14:37 +0200 Subject: [PATCH 04/19] OuterWall.mo change TRef_a --- IDEAS/Buildings/Components/OuterWall.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IDEAS/Buildings/Components/OuterWall.mo b/IDEAS/Buildings/Components/OuterWall.mo index 0b9f8d01f..d5ac79475 100644 --- a/IDEAS/Buildings/Components/OuterWall.mo +++ b/IDEAS/Buildings/Components/OuterWall.mo @@ -96,7 +96,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-100,-60},{-80,-40}}))); initial equation - QTra_design =U_value*A*(TSet - Tdes.y); + QTra_design =U_value*A*(TRef_a - Tdes.y); equation if hasBuildingShade then From e7b99814fce7700f792a221eea0249d056eac1c5 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 14:15:36 +0200 Subject: [PATCH 05/19] Window.mo change TRef_a --- IDEAS/Buildings/Components/Window.mo | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo index 305e16587..3b243fa15 100644 --- a/IDEAS/Buildings/Components/Window.mo +++ b/IDEAS/Buildings/Components/Window.mo @@ -188,7 +188,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-40,-100},{-20,-80}}))); initial equation - QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TSet - Tdes.y); + QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TRef_a - Tdes.y); assert(not use_trickle_vent or sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None, "In " + getInstanceName() + ": Trickle vents can only be enabled when sim.interZonalAirFlowType is not None."); @@ -270,8 +270,7 @@ equation Line(points={{-68.5,-32.7043},{-76,-32.7043},{-76,-62.2},{-79.4,-62.2}}, color = {0, 0, 127})); connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation ( - Line(points={{-42,-90},{-46,-90},{-46,-49.4895},{-57.5,-49.4895}}, - color = {0, 0, 127})); + Line(points={{-42,-90},{-46,-90},{-46,-49.4895},{-57.5,-49.4895}}, color = {0, 0, 127})); annotation ( Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-100},{60,100}}), graphics={Rectangle(fillColor = {255, 255, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-50, -90}, {50, 100}}), From 0d0e7880967798b879cecbcc3e5692524b40826b Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 14:20:24 +0200 Subject: [PATCH 06/19] GUI change in window --- IDEAS/Buildings/Components/Window.mo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo index 3b243fa15..255fcc891 100644 --- a/IDEAS/Buildings/Components/Window.mo +++ b/IDEAS/Buildings/Components/Window.mo @@ -269,8 +269,8 @@ equation connect(shaType.hForcedConExt, radSolData.hForcedConExt) annotation ( Line(points={{-68.5,-32.7043},{-76,-32.7043},{-76,-62.2},{-79.4,-62.2}}, color = {0, 0, 127})); - connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation ( - Line(points={{-42,-90},{-46,-90},{-46,-49.4895},{-57.5,-49.4895}}, color = {0, 0, 127})); + connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation( + Line(points = {{-42, -90}, {-46, -90}, {-46, -48}, {-58, -48}}, color = {0, 0, 127})); annotation ( Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-100},{60,100}}), graphics={Rectangle(fillColor = {255, 255, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-50, -90}, {50, 100}}), From 96a3b88503f39aaa5fba88ebb3c1bc46b07e3c09 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 14:21:02 +0200 Subject: [PATCH 07/19] SlabOnGround.mo change TRef_a --- IDEAS/Buildings/Components/SlabOnGround.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index b71fa2117..4baa9c672 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -4,7 +4,7 @@ model SlabOnGround "opaque floor on ground slab" custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=UEqui*A*(TSet - sim.Tdes), + QTra_design=UEqui*A*(TRef_a - sim.Tdes), add_cracks=false, dT_nominal_a=-3, inc=IDEAS.Types.Tilt.Floor, From 0f8a8bcf604f61c70cb69bbc44596129b0056b04 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 14:22:12 +0200 Subject: [PATCH 08/19] Remove extra parameter TSet --- IDEAS/Buildings/Components/Interfaces/PartialSurface.mo | 4 ---- 1 file changed, 4 deletions(-) diff --git a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo index c62bed75e..3a8b0e77d 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo @@ -30,10 +30,6 @@ partial model PartialSurface "Partial model for building envelope component" parameter Modelica.Units.SI.Temperature TRef_a=291.15 "Reference temperature of zone on side of propsBus_a, for calculation of design heat loss" annotation (Dialog(group="Design power", tab="Advanced")); - parameter Modelica.Units.SI.Temperature TSet=273.15+21 - "Reference temperature setpoint of zone (in K), for calculation of design heat loss" - annotation (Dialog(group="Design power", tab="Advanced")); - parameter Boolean linIntCon_a=sim.linIntCon "= true, if convective heat transfer should be linearised" annotation (Dialog(tab="Convection")); From bdfab9c5ad5ce92afe8eee58666b197568b470cf Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 15:37:00 +0200 Subject: [PATCH 09/19] BoundaryWall.mo definition of 2 parameters (one for fixed boundary T, one for design heat loss) --- IDEAS/Buildings/Components/BoundaryWall.mo | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index 2759506d0..a7f4b7593 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -4,7 +4,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe final custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRef_a - T_in_nom) else Q_in_nom, + QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRef_a - T_in_nom) else -Q_in_nom, dT_nominal_a=-1, add_cracks=false, layMul(disableInitPortB=use_T_in or use_T_fixed, monLay(monLayDyn(each @@ -13,18 +13,21 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe parameter Boolean use_T_fixed = false "Get the boundary temperature from the input connector" annotation(Dialog(group="Boundary conditions")); + parameter Modelica.Units.SI.Temperature T_fixed=294.15 + "Fixed boundary temperature" + annotation (Dialog(group="Boundary conditions",enable=use_T_fixed)); parameter Boolean use_T_in = false "Get the boundary temperature from the input connector" annotation(Dialog(group="Boundary conditions")); - parameter Modelica.Units.SI.Temperature T_in_nom=294.15 - "Nominal boundary temperature, for fixed boundary condition and for calculation of design heat loss" - annotation (Dialog(group="Boundary conditions",enable=use_T_fixed or use_T_in)); + parameter Modelica.Units.SI.Temperature T_in_nom=T_fixed + "Nominal boundary temperature, for calculation of design heat loss" + annotation (Dialog(group="Design power", tab="Advanced",enable=use_T_fixed or use_T_in)); parameter Boolean use_Q_in = false "Get the boundary heat flux from the input connector" annotation(Dialog(group="Boundary conditions")); - parameter Modelica.Units.SI.HeatFlowRate Q_in_nom + parameter Modelica.Units.SI.HeatFlowRate Q_in_nom=0 "Nominal boundary heat flux, for calculation of design heat loss" - annotation (Dialog(group="Boundary conditions", enable=use_Q_in)); + annotation (Dialog(group="Design power", tab="Advanced", enable=use_Q_in)); Modelica.Blocks.Interfaces.RealInput T if use_T_in "Input for boundary temperature" annotation (Placement( transformation(extent={{-120,10},{-100,30}}),iconTransformation(extent={{-120,10}, @@ -38,7 +41,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe annotation (Placement(transformation(extent={{-86,26},{-74,14}}))); Modelica.Blocks.Math.Product proPreQ if use_Q_in "Product for linearisation" annotation (Placement(transformation(extent={{-86,-14},{-74,-26}}))); - Modelica.Blocks.Sources.Constant TConst(k=T_in_nom) if use_T_fixed + Modelica.Blocks.Sources.Constant TConst(k=T_fixed) if use_T_fixed "Constant block for temperature" annotation (Placement(transformation(extent={{-110,32},{-100,42}}))); @@ -168,7 +171,7 @@ Instead a prescribed temperature or heat flow rate may be set.

    Parameters use_T_in and use_Q_in may be used to enable an input for a prescribed boundary condition temperature or heat flow rate. -Alternatively, parameters use_T_fixed and T_in_nom can be used +Alternatively, parameters use_T_fixed and T_fixed can be used to specify a fixed boundary condition temperature. It is not allowed to enabled multiple of these three options. If all are disabled then an adiabatic boundary (Q_flow=0) is used.

    From 8952d6b28907e224241973d0d1a4bfda5b981fd6 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 15:37:19 +0200 Subject: [PATCH 10/19] PartialZone.mo change TRefInt --- IDEAS/Buildings/Components/Interfaces/PartialZone.mo | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo index 44eec8ab5..04a0301df 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo @@ -34,11 +34,11 @@ model PartialZone "Building zone model" parameter Boolean calculateViewFactor = false "Explicit calculation of view factors: works well only for rectangular zones!" annotation(Dialog(tab="Advanced", group="Radiative heat exchange")); - parameter Modelica.Units.SI.Temperature TSet=273.15+21 - "Reference temperature setpoint of zone (in K), for calculation of design heat loss"; - + parameter Modelica.Units.SI.Temperature TRefInt=291.15 + "Reference temperature of zone on side of propsBusInt, for calculation of design heat load" + annotation (Dialog(group="Design heat load", tab="Advanced")); final parameter Modelica.Units.SI.Power QInf_design=1012*1.204*V/3600*n50_int - /n50toAch*(TSet - sim.Tdes) + /n50toAch*(TRefInt - sim.Tdes) "Design heat losses from infiltration at reference outdoor temperature"; final parameter Modelica.Units.SI.Power QRH_design=A*fRH "Additional power required to compensate for the effects of intermittent heating"; From 4e5d92b740b8163b8e74a010db596c0455f5db22 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Fri, 11 Oct 2024 18:09:12 +0200 Subject: [PATCH 11/19] Description for the convention of Q_in_nom --- IDEAS/Buildings/Components/BoundaryWall.mo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index a7f4b7593..cb02e146e 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -26,14 +26,14 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe "Get the boundary heat flux from the input connector" annotation(Dialog(group="Boundary conditions")); parameter Modelica.Units.SI.HeatFlowRate Q_in_nom=0 - "Nominal boundary heat flux, for calculation of design heat loss" + "Nominal boundary heat flux, for calculation of design heat loss (positive if entering the wall)" annotation (Dialog(group="Design power", tab="Advanced", enable=use_Q_in)); Modelica.Blocks.Interfaces.RealInput T if use_T_in "Input for boundary temperature" annotation (Placement( transformation(extent={{-120,10},{-100,30}}),iconTransformation(extent={{-120,10}, {-100,30}}))); Modelica.Blocks.Interfaces.RealInput Q_flow if use_Q_in - "Input for boundary heat flow rate entering the wall" annotation (Placement( + "Input for boundary heat flow rate entering the wall (positive)" annotation (Placement( transformation(extent={{-120,-30},{-100,-10}}), iconTransformation(extent={{-120, -30},{-100,-10}}))); From 3969b0425d1b2966bfe0c1e4afc354a34eaf2552 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Thu, 17 Oct 2024 18:43:48 +0200 Subject: [PATCH 12/19] QTra in SlabGroung model --- IDEAS/Buildings/Components/SlabOnGround.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index 4baa9c672..d1eaa031d 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -4,7 +4,7 @@ model SlabOnGround "opaque floor on ground slab" custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=UEqui*A*(TRef_a - sim.Tdes), + QTra_design=UEqui*A*(TRef_a - sim.TdesGround), add_cracks=false, dT_nominal_a=-3, inc=IDEAS.Types.Tilt.Floor, From 48ac411e1559adfdc56fa1a63477bf2f97fb1b38 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Mon, 21 Oct 2024 15:11:28 +0200 Subject: [PATCH 13/19] TRef_zone[nSurf] propagation from the zone to the different components --- IDEAS/Buildings/Components/BoundaryWall.mo | 2 +- .../Components/Interfaces/PartialSurface.mo | 7 ++++--- IDEAS/Buildings/Components/Interfaces/ZoneBus.mo | 3 +++ .../Interfaces/ZoneBusVarMultiplicator.mo | 15 +++++++++++++++ IDEAS/Buildings/Components/InternalWall.mo | 10 ++++------ IDEAS/Buildings/Components/OuterWall.mo | 2 +- IDEAS/Buildings/Components/SlabOnGround.mo | 2 +- 7 files changed, 29 insertions(+), 12 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index cb02e146e..8304125eb 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -4,7 +4,7 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe final custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRef_a - T_in_nom) else -Q_in_nom, + QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRefInt - T_in_nom) else -Q_in_nom, dT_nominal_a=-1, add_cracks=false, layMul(disableInitPortB=use_T_in or use_T_fixed, monLay(monLayDyn(each diff --git a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo index 3a8b0e77d..8ae7ba948 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo @@ -27,9 +27,9 @@ partial model PartialSurface "Partial model for building envelope component" "Start temperature for each of the layers" annotation (Dialog(tab="Dynamics", group="Initial condition")); - parameter Modelica.Units.SI.Temperature TRef_a=291.15 - "Reference temperature of zone on side of propsBus_a, for calculation of design heat loss" - annotation (Dialog(group="Design power", tab="Advanced")); + Modelica.Blocks.Interfaces.RealInput TRefInt + "Reference temperature of zone on side of propsBusInt, for calculation of design heat loss"; + parameter Boolean linIntCon_a=sim.linIntCon "= true, if convective heat transfer should be linearised" annotation (Dialog(tab="Convection")); @@ -334,6 +334,7 @@ equation -91},{79.4,-90.5},{56.09,-90.5},{56.09,19.91}}, color={255,0,255})); connect(setArea.v50, propsBus_a.v50) annotation (Line(points={{79.4,-83.2},{ 79.4,-82},{56,-82},{56,0},{100.1,0},{100.1,19.9}}, color={0,0,127})); + connect(TRefInt, propsBusInt.TRef_zone); annotation ( Diagram(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{ diff --git a/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo b/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo index 3298d24a3..757072428 100644 --- a/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo +++ b/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo @@ -11,6 +11,9 @@ expandable connector ZoneBus IDEAS.Buildings.Components.Interfaces.RealConnector QTra_design( final quantity="Power", final unit="W") annotation (); + IDEAS.Buildings.Components.Interfaces.RealConnector TRef_zone( + final quantity="Reference zone temperature for calculation of design heat load", + final unit="K") annotation (); IDEAS.Buildings.Components.Interfaces.RealConnector area( final quantity="Area", final unit="m2") annotation (); diff --git a/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo b/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo index 0abbedf94..e8685e96d 100644 --- a/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo +++ b/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo @@ -80,6 +80,9 @@ protected Modelica.Blocks.Routing.BooleanPassThrough use_custom_q50 "0 if the surface has a custom q50" annotation (Placement(transformation(extent={{-12,-296},{8,-276}}))); + Modelica.Blocks.Routing.RealPassThrough TRef_zone + "Reference zone temperature for calculation of design heat load" + annotation (Placement(transformation(extent={{8,-356},{-12,-336}}))); equation connect(QTra_desgin.u, propsBus_a.QTra_design) annotation (Line(points={{-12,188}, {-100.1,188},{-100.1,0.1}}, color={0,0,127})); @@ -162,6 +165,18 @@ equation connect(use_custom_n50.y, propsBus_a.use_custom_n50) annotation (Line(points={{-13, -314},{-100,-314},{-100,0.1},{-100.1,0.1}}, color={255,0,255})); + connect(TRef_zone.u, propsBus_b.TRef_zone) annotation (Line(points={{10,-346}, + {100.1,-346},{100.1,-0.1}}, color={0,0,127}), Text( + string="%second", + index=1, + extent={{6,3},{6,3}}, + horizontalAlignment=TextAlignment.Left)); + connect(TRef_zone.y, propsBus_a.TRef_zone) annotation (Line(points={{-13,-346}, + {-100.1,-346},{-100.1,0.1}}, color={0,0,127}), Text( + string="%second", + index=1, + extent={{-6,3},{-6,3}}, + horizontalAlignment=TextAlignment.Right)); annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-180}, {100,200}}), graphics={ Polygon( diff --git a/IDEAS/Buildings/Components/InternalWall.mo b/IDEAS/Buildings/Components/InternalWall.mo index fa54b615d..63d1305db 100644 --- a/IDEAS/Buildings/Components/InternalWall.mo +++ b/IDEAS/Buildings/Components/InternalWall.mo @@ -8,7 +8,7 @@ model InternalWall "interior opaque wall between two zones" E(y=if sim.computeConservationOfEnergy then layMul.E else 0), Qgai(y=(if sim.openSystemConservationOfEnergy or not sim.computeConservationOfEnergy then 0 else sum(port_emb.Q_flow))), - final QTra_design=U_value*A*(TRef_a - TRef_b), + QTra_design=U_value*A*(TRefInt - TRef_b), q50_zone(v50_surf=0)); //using custom q50 since this model is not an external component @@ -18,10 +18,8 @@ model InternalWall "interior opaque wall between two zones" parameter Modelica.Units.SI.TemperatureDifference dT_nominal_b=1 "Nominal temperature difference used for linearisation, negative temperatures indicate the solid is colder" annotation (Dialog(tab="Convection")); - parameter Modelica.Units.SI.Temperature TRef_b=291.15 - "Reference temperature of zone on side of propsBus_b, for calculation of design heat loss" - annotation (Dialog(group="Design power", tab="Advanced")); - + Modelica.Blocks.Interfaces.RealInput TRef_b + "Reference temperature of zone on side of propsBus_b, for calculation of design heat loss"; // open door modelling parameter Boolean hasCavity = false "=true, to model open door or cavity in wall" @@ -203,7 +201,7 @@ equation -58},{56,20.1},{-100.1,20.1}}, color={0,0,127})); connect(q50_zone.using_custom_q50, propsBus_b.use_custom_q50) annotation (Line(points={{79,-52}, {56,-52},{56,20.1},{-100.1,20.1}}, color={0,0,127})); - + connect(TRef_b, propsBus_b.TRef_zone); annotation ( Icon(coordinateSystem(preserveAspectRatio=false,extent={{-60,-100},{60,100}}), graphics={ diff --git a/IDEAS/Buildings/Components/OuterWall.mo b/IDEAS/Buildings/Components/OuterWall.mo index d5ac79475..573491ce7 100644 --- a/IDEAS/Buildings/Components/OuterWall.mo +++ b/IDEAS/Buildings/Components/OuterWall.mo @@ -96,7 +96,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-100,-60},{-80,-40}}))); initial equation - QTra_design =U_value*A*(TRef_a - Tdes.y); + QTra_design =U_value*A*(TRefInt - Tdes.y); equation if hasBuildingShade then diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index d1eaa031d..807d4e6bd 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -4,7 +4,7 @@ model SlabOnGround "opaque floor on ground slab" custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=UEqui*A*(TRef_a - sim.TdesGround), + QTra_design=UEqui*A*(TRefInt - sim.TdesGround), add_cracks=false, dT_nominal_a=-3, inc=IDEAS.Types.Tilt.Floor, From a1b567d08ed74d71fa93bb45c52fe2e9ea48f613 Mon Sep 17 00:00:00 2001 From: annadellisola Date: Mon, 21 Oct 2024 15:19:58 +0200 Subject: [PATCH 14/19] changes in window and partial zone --- IDEAS/Buildings/Components/Interfaces/PartialZone.mo | 10 ++++++---- IDEAS/Buildings/Components/Window.mo | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo index 04a0301df..3c529709b 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo @@ -34,11 +34,11 @@ model PartialZone "Building zone model" parameter Boolean calculateViewFactor = false "Explicit calculation of view factors: works well only for rectangular zones!" annotation(Dialog(tab="Advanced", group="Radiative heat exchange")); - parameter Modelica.Units.SI.Temperature TRefInt=291.15 - "Reference temperature of zone on side of propsBusInt, for calculation of design heat load" + parameter Modelica.Units.SI.Temperature defaultTRef=291.15 "Default zone temperature for calculation of design heat load" annotation (Dialog(group="Design heat load", tab="Advanced")); + Modelica.Blocks.Interfaces.RealOutput TRef_zone[nSurf] "Reference zone temperature for the surfaces connected to this zone, for calculation of design heat load"; final parameter Modelica.Units.SI.Power QInf_design=1012*1.204*V/3600*n50_int - /n50toAch*(TRefInt - sim.Tdes) + /n50toAch*(defaultTRef - sim.Tdes) "Design heat losses from infiltration at reference outdoor temperature"; final parameter Modelica.Units.SI.Power QRH_design=A*fRH "Additional power required to compensate for the effects of intermittent heating"; @@ -507,7 +507,9 @@ end for; connect(setq50.use_custom_n50s, propsBusInt.use_custom_n50) annotation (Line(points={{-60.8, -92.8},{-60,-92.8},{-60,-92},{-80.1,-92},{-80.1,39.9}}, color={ 255,0,255})); - annotation (Placement(transformation(extent={{ + connect(TRef_zone[1:nSurf], propsBusInt[1:nSurf].TRef_zone); + annotation (Dialog(group="Design heat load", tab="Advanced"), + Placement(transformation(extent={{ 140,48},{100,88}})), Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), graphics), diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo index 255fcc891..1707ac883 100644 --- a/IDEAS/Buildings/Components/Window.mo +++ b/IDEAS/Buildings/Components/Window.mo @@ -188,7 +188,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-40,-100},{-20,-80}}))); initial equation - QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TRef_a - Tdes.y); + QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TRefInt - Tdes.y); assert(not use_trickle_vent or sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None, "In " + getInstanceName() + ": Trickle vents can only be enabled when sim.interZonalAirFlowType is not None."); From b5b22ffd95ce7e9ba7e07ef00ee21ffaee2e3c5b Mon Sep 17 00:00:00 2001 From: annadellisola Date: Mon, 28 Oct 2024 17:16:09 +0100 Subject: [PATCH 15/19] Change in QTra definition --- IDEAS/Buildings/Components/BoundaryWall.mo | 4 +++- IDEAS/Buildings/Components/Interfaces/PartialZone.mo | 4 ++-- IDEAS/Buildings/Components/InternalWall.mo | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index 8304125eb..d379ec023 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -4,9 +4,9 @@ model BoundaryWall "Opaque wall with optional prescribed heat flow rate or tempe final custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRefInt - T_in_nom) else -Q_in_nom, dT_nominal_a=-1, add_cracks=false, + QTra_design(fixed=false), layMul(disableInitPortB=use_T_in or use_T_fixed, monLay(monLayDyn(each addRes_b=(sim.lineariseDymola and (use_T_in or use_T_fixed)))))); @@ -69,6 +69,8 @@ protected IDEAS.Buildings.Components.Interfaces.WeaBus weaBus(final numSolBus=sim.numIncAndAziInBus, outputAngles=sim.outputAngles) "Weather bus" annotation (Placement(transformation(extent={{40,-80},{60,-60}}))); +initial equation + QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRefInt - T_in_nom) else -Q_in_nom; equation assert(not (use_T_in and use_Q_in or use_T_in and use_T_fixed or use_Q_in and use_T_fixed), "In "+getInstanceName()+": Only one of the following options can be used simultaneously: use_T_in, use_Q_in, use_T_fixed"); diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo index 3c529709b..4af449d35 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo @@ -36,7 +36,7 @@ model PartialZone "Building zone model" annotation(Dialog(tab="Advanced", group="Radiative heat exchange")); parameter Modelica.Units.SI.Temperature defaultTRef=291.15 "Default zone temperature for calculation of design heat load" annotation (Dialog(group="Design heat load", tab="Advanced")); - Modelica.Blocks.Interfaces.RealOutput TRef_zone[nSurf] "Reference zone temperature for the surfaces connected to this zone, for calculation of design heat load"; + Modelica.Blocks.Interfaces.RealOutput TRef_zone[nSurf]=defaultTRef*ones(nSurf) "Reference zone temperature for the surfaces connected to this zone, for calculation of design heat load"; final parameter Modelica.Units.SI.Power QInf_design=1012*1.204*V/3600*n50_int /n50toAch*(defaultTRef - sim.Tdes) "Design heat losses from infiltration at reference outdoor temperature"; @@ -507,7 +507,7 @@ end for; connect(setq50.use_custom_n50s, propsBusInt.use_custom_n50) annotation (Line(points={{-60.8, -92.8},{-60,-92.8},{-60,-92},{-80.1,-92},{-80.1,39.9}}, color={ 255,0,255})); - connect(TRef_zone[1:nSurf], propsBusInt[1:nSurf].TRef_zone); + connect(TRef_zone, propsBusInt.TRef_zone); annotation (Dialog(group="Design heat load", tab="Advanced"), Placement(transformation(extent={{ 140,48},{100,88}})), diff --git a/IDEAS/Buildings/Components/InternalWall.mo b/IDEAS/Buildings/Components/InternalWall.mo index 63d1305db..ed85dc8d2 100644 --- a/IDEAS/Buildings/Components/InternalWall.mo +++ b/IDEAS/Buildings/Components/InternalWall.mo @@ -8,8 +8,8 @@ model InternalWall "interior opaque wall between two zones" E(y=if sim.computeConservationOfEnergy then layMul.E else 0), Qgai(y=(if sim.openSystemConservationOfEnergy or not sim.computeConservationOfEnergy then 0 else sum(port_emb.Q_flow))), - QTra_design=U_value*A*(TRefInt - TRef_b), - q50_zone(v50_surf=0)); + q50_zone(v50_surf=0), + QTra_design(fixed=false)); //using custom q50 since this model is not an external component parameter Boolean linIntCon_b=sim.linIntCon @@ -139,6 +139,8 @@ public if hasCavity and sim.interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.OnePort "1-port model for open door" annotation (Placement(transformation(extent={{-10,58},{10,78}}))); +initial equation + QTra_design=U_value*A*(TRefInt - TRef_b); equation assert(hasCavity == false or IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Wall), "In " + getInstanceName() + ": Cavities are only supported for vertical walls, but inc=" + String(incInt) + ". The model is not accurate.", From 0831ac9beb9fb2d1f236165dc9bec4630042bbff Mon Sep 17 00:00:00 2001 From: annadellisola Date: Wed, 30 Oct 2024 13:51:59 +0100 Subject: [PATCH 16/19] SlabOnGround changes --- IDEAS/Buildings/Components/SlabOnGround.mo | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index 807d4e6bd..d670ff4fc 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -4,9 +4,9 @@ model SlabOnGround "opaque floor on ground slab" custom_q50=0, final use_custom_q50=true, final nWin=1, - QTra_design=UEqui*A*(TRefInt - sim.TdesGround), add_cracks=false, dT_nominal_a=-3, + QTra_design(fixed=false), inc=IDEAS.Types.Tilt.Floor, azi=0, redeclare replaceable Data.Constructions.FloorOnGround constructionType, @@ -36,7 +36,8 @@ model SlabOnGround "opaque floor on ground slab" cos(2*3.1415/12*(i - 1 + alfa)) + Lpe*dTeAvg*cos(2*3.1415/12*(i - 1 - beta)) for i in 1:12})/12 "Two-dimensional correction for edge flow"; -//Calculation of heat loss based on ISO 13370 + Modelica.Blocks.Routing.RealPassThrough TdesGround "Design temperature passthrough"; + IDEAS.Fluid.Sources.MassFlowSource_T boundary1( redeclare package Medium = Medium, nPorts=1, @@ -96,8 +97,11 @@ protected outputAngles=sim.outputAngles) "Weather data bus connectable to weaBus connector from Buildings Library" annotation (Placement(transformation(extent={{46,-90},{66,-70}}))); -equation +initial equation + QTra_design=UEqui*A*(TRefInt - TdesGround.y); +equation + connect(TdesGround.u, weaBus.TGroundDes); connect(periodicFlow.port, layMul.port_b) annotation (Line(points={{-20,22},{ -14,22},{-14,0},{-10,0}}, color={191,0,0})); connect(layGro.port_a, layMul.port_b) From c38310f7f02da2d8ad96539108a6c345a213b8ee Mon Sep 17 00:00:00 2001 From: jelgerjansen Date: Thu, 7 Nov 2024 14:44:25 +0100 Subject: [PATCH 17/19] Fix typo --- .../Components/Interfaces/ZoneBusVarMultiplicator.mo | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo b/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo index e8685e96d..0c40f029d 100644 --- a/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo +++ b/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo @@ -41,7 +41,7 @@ protected if sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None "Mass flow rate multiplier for port 1" annotation (Placement(transformation(extent={{-10,-170},{10,-150}}))); - Modelica.Blocks.Math.Gain QTra_desgin(k=k) "Design heat flow rate" + Modelica.Blocks.Math.Gain QTra_design(k=k) "Design heat flow rate" annotation (Placement(transformation(extent={{-10,178},{10,198}}))); Modelica.Blocks.Math.Gain area(k=k) "Heat exchange surface area" annotation (Placement(transformation(extent={{-10,150},{10,170}}))); @@ -84,9 +84,9 @@ protected "Reference zone temperature for calculation of design heat load" annotation (Placement(transformation(extent={{8,-356},{-12,-336}}))); equation - connect(QTra_desgin.u, propsBus_a.QTra_design) annotation (Line(points={{-12,188}, + connect(QTra_design.u, propsBus_a.QTra_design) annotation (Line(points={{-12,188}, {-100.1,188},{-100.1,0.1}}, color={0,0,127})); - connect(QTra_desgin.y, propsBus_b.QTra_design) annotation (Line(points={{11,188}, + connect(QTra_design.y, propsBus_b.QTra_design) annotation (Line(points={{11,188}, {100.1,188},{100.1,-0.1}},color={0,0,127})); connect(area.u, propsBus_a.area) annotation (Line(points={{-12,160},{-100.1, 160},{-100.1,0.1}},color={0,0,127})); @@ -166,13 +166,13 @@ equation -314},{-100,-314},{-100,0.1},{-100.1,0.1}}, color={255,0,255})); connect(TRef_zone.u, propsBus_b.TRef_zone) annotation (Line(points={{10,-346}, - {100.1,-346},{100.1,-0.1}}, color={0,0,127}), Text( + {100,-346},{100,0}}, color={0,0,127}), Text( string="%second", index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); connect(TRef_zone.y, propsBus_a.TRef_zone) annotation (Line(points={{-13,-346}, - {-100.1,-346},{-100.1,0.1}}, color={0,0,127}), Text( + {-100,-346},{-100,0}}, color={0,0,127}), Text( string="%second", index=1, extent={{-6,3},{-6,3}}, From 253072a43a3955b3723525fc672f362283ba0397 Mon Sep 17 00:00:00 2001 From: jelgerjansen Date: Thu, 7 Nov 2024 20:18:36 +0100 Subject: [PATCH 18/19] Change TRefInt by TRefZon and avoid replace RealInput and RealOutput interfaces by variables or parameters --- IDEAS/Buildings/Components/BoundaryWall.mo | 2 +- .../Components/Interfaces/DummyConnection.mo | 4 ++++ .../Components/Interfaces/PartialSurface.mo | 12 ++++-------- .../Components/Interfaces/PartialZone.mo | 13 +++++++------ .../Buildings/Components/Interfaces/ZoneBus.mo | 6 +++--- .../Interfaces/ZoneBusVarMultiplicator.mo | 18 +++++------------- IDEAS/Buildings/Components/InternalWall.mo | 7 +++---- IDEAS/Buildings/Components/OuterWall.mo | 2 +- IDEAS/Buildings/Components/SlabOnGround.mo | 4 ++-- IDEAS/Buildings/Components/Window.mo | 7 ++++--- 10 files changed, 34 insertions(+), 41 deletions(-) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index d379ec023..4706579c3 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -70,7 +70,7 @@ protected outputAngles=sim.outputAngles) "Weather bus" annotation (Placement(transformation(extent={{40,-80},{60,-60}}))); initial equation - QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRefInt - T_in_nom) else -Q_in_nom; + QTra_design=if use_T_in or use_T_fixed then U_value*A*(TRefZon - T_in_nom) else -Q_in_nom; equation assert(not (use_T_in and use_Q_in or use_T_in and use_T_fixed or use_Q_in and use_T_fixed), "In "+getInstanceName()+": Only one of the following options can be used simultaneously: use_T_in, use_Q_in, use_T_fixed"); diff --git a/IDEAS/Buildings/Components/Interfaces/DummyConnection.mo b/IDEAS/Buildings/Components/Interfaces/DummyConnection.mo index 30d1ada8c..5386103b9 100644 --- a/IDEAS/Buildings/Components/Interfaces/DummyConnection.mo +++ b/IDEAS/Buildings/Components/Interfaces/DummyConnection.mo @@ -54,6 +54,8 @@ model DummyConnection "Source generator/sink for propsbus" annotation (Placement(transformation(extent={{-80,-100},{-60,-80}}))); Modelica.Blocks.Sources.BooleanConstant custom_q50(k=false) if not isZone annotation (Placement(transformation(extent={{-80,-130},{-60,-110}}))); + Modelica.Blocks.Sources.Constant TRefZon(k=T) if isZone + annotation (Placement(transformation(extent={{-40,60},{-20,80}}))); equation connect(prescribedHeatFlow[1].port, zoneBus.surfCon) annotation (Line( points={{-50,20},{62,20},{62,-1.9},{100.1,-1.9}}, @@ -132,6 +134,8 @@ equation connect(custom_q50.y, zoneBus.use_custom_q50) annotation (Line(points={{-59, -120},{100.1,-120},{100.1,-1.9}}, color={255,0,255})); + connect(TRefZon.y, zoneBus.TRefZon) annotation (Line(points={{-19,70},{100.1,70}, + {100.1,-1.9}}, color={0,0,127})); annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100, -100},{100,100}})), Icon(coordinateSystem( preserveAspectRatio=false, extent={{-100,-100},{100,100}}), graphics={ diff --git a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo index 8ae7ba948..a99351003 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialSurface.mo @@ -26,10 +26,6 @@ partial model PartialSurface "Partial model for building envelope component" parameter Modelica.Units.SI.Temperature T_start=293.15 "Start temperature for each of the layers" annotation (Dialog(tab="Dynamics", group="Initial condition")); - - Modelica.Blocks.Interfaces.RealInput TRefInt - "Reference temperature of zone on side of propsBusInt, for calculation of design heat loss"; - parameter Boolean linIntCon_a=sim.linIntCon "= true, if convective heat transfer should be linearised" annotation (Dialog(tab="Convection")); @@ -138,6 +134,9 @@ protected Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow prescribedHeatFlowQgai "Component for computing conservation of energy"; + Modelica.Units.SI.Temperature TRefZon=propsBusInt.TRefZon + "Reference zone temperature for calculation of design heat load"; + IDEAS.Buildings.Components.Interfaces.ZoneBusVarMultiplicator gain(redeclare package Medium = Medium, k=nWin) "Gain for all propsBus variable to represent nWin surfaces instead of 1" @@ -279,7 +278,6 @@ equation points={{56.09,19.91},{46,19.91},{46,0},{40,0}}, color={191,0,0}, smooth=Smooth.None)); - connect(layMul.port_a, propsBusInt.surfRad) annotation (Line( points={{10,0},{16,0},{16,19.91},{56.09,19.91}}, color={191,0,0}, @@ -334,10 +332,8 @@ equation -91},{79.4,-90.5},{56.09,-90.5},{56.09,19.91}}, color={255,0,255})); connect(setArea.v50, propsBus_a.v50) annotation (Line(points={{79.4,-83.2},{ 79.4,-82},{56,-82},{56,0},{100.1,0},{100.1,19.9}}, color={0,0,127})); - connect(TRefInt, propsBusInt.TRef_zone); annotation ( - Diagram(graphics, - coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{ + Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{ 100,100}})), Icon(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-50,-100},{50,100}})), diff --git a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo index 4af449d35..ad00a2407 100644 --- a/IDEAS/Buildings/Components/Interfaces/PartialZone.mo +++ b/IDEAS/Buildings/Components/Interfaces/PartialZone.mo @@ -34,11 +34,11 @@ model PartialZone "Building zone model" parameter Boolean calculateViewFactor = false "Explicit calculation of view factors: works well only for rectangular zones!" annotation(Dialog(tab="Advanced", group="Radiative heat exchange")); - parameter Modelica.Units.SI.Temperature defaultTRef=291.15 "Default zone temperature for calculation of design heat load" + parameter Modelica.Units.SI.Temperature TZon_design=294.15 + "Reference zone temperature for calculation of design heat load" annotation (Dialog(group="Design heat load", tab="Advanced")); - Modelica.Blocks.Interfaces.RealOutput TRef_zone[nSurf]=defaultTRef*ones(nSurf) "Reference zone temperature for the surfaces connected to this zone, for calculation of design heat load"; final parameter Modelica.Units.SI.Power QInf_design=1012*1.204*V/3600*n50_int - /n50toAch*(defaultTRef - sim.Tdes) + /n50toAch*(TZon_design - sim.Tdes) "Design heat losses from infiltration at reference outdoor temperature"; final parameter Modelica.Units.SI.Power QRH_design=A*fRH "Additional power required to compensate for the effects of intermittent heating"; @@ -195,6 +195,9 @@ model PartialZone "Building zone model" protected + Modelica.Blocks.Sources.RealExpression TRefZon[nSurf](each y=TZon_design) + "Reference zone temperature for the surfaces connected to this zone, for calculation of design heat load"; + parameter Real n50_int(unit="1/h",min=0.01,fixed= false) "n50 value cfr airtightness, i.e. the ACH at a pressure diffence of 50 Pa" annotation(Dialog(enable=use_custom_n50,tab="Airflow", group="Airtightness")); @@ -301,8 +304,6 @@ end Setq50; initial equation - - n50_int = if use_custom_n50 and not setq50.allSurfacesCustom then n50 else sum(propsBusInt.v50)/V; Q_design=QInf_design+QRH_design+QTra_design; //Total design load for zone (additional ventilation losses are calculated in the ventilation system) @@ -507,7 +508,7 @@ end for; connect(setq50.use_custom_n50s, propsBusInt.use_custom_n50) annotation (Line(points={{-60.8, -92.8},{-60,-92.8},{-60,-92},{-80.1,-92},{-80.1,39.9}}, color={ 255,0,255})); - connect(TRef_zone, propsBusInt.TRef_zone); + connect(TRefZon.y, propsBusInt.TRefZon); annotation (Dialog(group="Design heat load", tab="Advanced"), Placement(transformation(extent={{ 140,48},{100,88}})), diff --git a/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo b/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo index 757072428..247cdd74d 100644 --- a/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo +++ b/IDEAS/Buildings/Components/Interfaces/ZoneBus.mo @@ -11,9 +11,6 @@ expandable connector ZoneBus IDEAS.Buildings.Components.Interfaces.RealConnector QTra_design( final quantity="Power", final unit="W") annotation (); - IDEAS.Buildings.Components.Interfaces.RealConnector TRef_zone( - final quantity="Reference zone temperature for calculation of design heat load", - final unit="K") annotation (); IDEAS.Buildings.Components.Interfaces.RealConnector area( final quantity="Area", final unit="m2") annotation (); @@ -51,6 +48,9 @@ expandable connector ZoneBus IDEAS.Buildings.Components.Interfaces.RealConnector q50_zone(final unit="m3/(h.m2)") "v50 of the surface" annotation (); IDEAS.Buildings.Components.Interfaces.BooleanConnector use_custom_q50 "true if custome q50 value is assigned to surface" annotation (); IDEAS.Buildings.Components.Interfaces.BooleanConnector use_custom_n50 "true if the zone n50 is a custom value"; + IDEAS.Buildings.Components.Interfaces.RealConnector TRefZon( + final quantity="Temperature", + final unit="K") annotation (); annotation (Documentation(info="

    Connector that contains a weather bus and further diff --git a/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo b/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo index 0c40f029d..bed9d8392 100644 --- a/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo +++ b/IDEAS/Buildings/Components/Interfaces/ZoneBusVarMultiplicator.mo @@ -80,7 +80,7 @@ protected Modelica.Blocks.Routing.BooleanPassThrough use_custom_q50 "0 if the surface has a custom q50" annotation (Placement(transformation(extent={{-12,-296},{8,-276}}))); - Modelica.Blocks.Routing.RealPassThrough TRef_zone + Modelica.Blocks.Routing.RealPassThrough TRefZon "Reference zone temperature for calculation of design heat load" annotation (Placement(transformation(extent={{8,-356},{-12,-336}}))); equation @@ -165,18 +165,10 @@ equation connect(use_custom_n50.y, propsBus_a.use_custom_n50) annotation (Line(points={{-13, -314},{-100,-314},{-100,0.1},{-100.1,0.1}}, color={255,0,255})); - connect(TRef_zone.u, propsBus_b.TRef_zone) annotation (Line(points={{10,-346}, - {100,-346},{100,0}}, color={0,0,127}), Text( - string="%second", - index=1, - extent={{6,3},{6,3}}, - horizontalAlignment=TextAlignment.Left)); - connect(TRef_zone.y, propsBus_a.TRef_zone) annotation (Line(points={{-13,-346}, - {-100,-346},{-100,0}}, color={0,0,127}), Text( - string="%second", - index=1, - extent={{-6,3},{-6,3}}, - horizontalAlignment=TextAlignment.Right)); + connect(TRefZon.u, propsBus_b.TRefZon) annotation (Line(points={{10,-346},{ + 100.1,-346},{100.1,-0.1}}, color={0,0,127})); + connect(TRefZon.y, propsBus_a.TRefZon) annotation (Line(points={{-13,-346},{ + -100.1,-346},{-100.1,0.1}}, color={0,0,127})); annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-180}, {100,200}}), graphics={ Polygon( diff --git a/IDEAS/Buildings/Components/InternalWall.mo b/IDEAS/Buildings/Components/InternalWall.mo index ed85dc8d2..7f3f341c5 100644 --- a/IDEAS/Buildings/Components/InternalWall.mo +++ b/IDEAS/Buildings/Components/InternalWall.mo @@ -18,7 +18,7 @@ model InternalWall "interior opaque wall between two zones" parameter Modelica.Units.SI.TemperatureDifference dT_nominal_b=1 "Nominal temperature difference used for linearisation, negative temperatures indicate the solid is colder" annotation (Dialog(tab="Convection")); - Modelica.Blocks.Interfaces.RealInput TRef_b + Modelica.Units.SI.Temperature TRef_b = propsBus_b.TRefZon "Reference temperature of zone on side of propsBus_b, for calculation of design heat loss"; // open door modelling parameter Boolean hasCavity = false @@ -96,7 +96,7 @@ protected "convective surface heat transimission on the interior side of the wall" annotation (Placement(transformation(extent={{-22,-10},{-42,10}}))); Modelica.Blocks.Sources.RealExpression QDesign_b(y=-QTra_design); - //Negative, because of its losses from zone side b to zone side a, oposite of calculation of QTra_design + //Negative, because of its losses from zone side b to zone side a, opposite of calculation of QTra_design Modelica.Blocks.Sources.RealExpression incExp1(y=incInt + Modelica.Constants.pi) "Inclination angle"; @@ -140,7 +140,7 @@ public "1-port model for open door" annotation (Placement(transformation(extent={{-10,58},{10,78}}))); initial equation - QTra_design=U_value*A*(TRefInt - TRef_b); + QTra_design=U_value*A*(TRefZon - TRef_b); equation assert(hasCavity == false or IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Wall), "In " + getInstanceName() + ": Cavities are only supported for vertical walls, but inc=" + String(incInt) + ". The model is not accurate.", @@ -203,7 +203,6 @@ equation -58},{56,20.1},{-100.1,20.1}}, color={0,0,127})); connect(q50_zone.using_custom_q50, propsBus_b.use_custom_q50) annotation (Line(points={{79,-52}, {56,-52},{56,20.1},{-100.1,20.1}}, color={0,0,127})); - connect(TRef_b, propsBus_b.TRef_zone); annotation ( Icon(coordinateSystem(preserveAspectRatio=false,extent={{-60,-100},{60,100}}), graphics={ diff --git a/IDEAS/Buildings/Components/OuterWall.mo b/IDEAS/Buildings/Components/OuterWall.mo index 573491ce7..daa52f471 100644 --- a/IDEAS/Buildings/Components/OuterWall.mo +++ b/IDEAS/Buildings/Components/OuterWall.mo @@ -96,7 +96,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-100,-60},{-80,-40}}))); initial equation - QTra_design =U_value*A*(TRefInt - Tdes.y); + QTra_design =U_value*A*(TRefZon - Tdes.y); equation if hasBuildingShade then diff --git a/IDEAS/Buildings/Components/SlabOnGround.mo b/IDEAS/Buildings/Components/SlabOnGround.mo index d670ff4fc..a5e077d5d 100644 --- a/IDEAS/Buildings/Components/SlabOnGround.mo +++ b/IDEAS/Buildings/Components/SlabOnGround.mo @@ -67,7 +67,7 @@ protected final parameter Real alfa=1.5 - 12/(2*3.14)*atan(dt/(dt + delta)); final parameter Real beta=1.5 - 0.42*log(delta/(dt + 1)); final parameter Real delta=sqrt(3.15*10^7*ground1.k/3.14/ground1.rho/ground1.c); - final parameter Real Lpi=A *ground1.k/dt*sqrt(1/((1 + delta/dt)^2 + 1)); + final parameter Real Lpi=A*ground1.k/dt*sqrt(1/((1 + delta/dt)^2 + 1)); final parameter Real Lpe=0.37*PWall*ground1.k*log(delta/dt + 1); Real m = sim.solTim.y/3.1536e7*12 "time in months"; final parameter Integer nLayGro = layGro.nLay "Number of ground layers"; @@ -99,7 +99,7 @@ protected annotation (Placement(transformation(extent={{46,-90},{66,-70}}))); initial equation - QTra_design=UEqui*A*(TRefInt - TdesGround.y); + QTra_design=UEqui*A*(TRefZon - weaBus.TGroundDes); equation connect(TdesGround.u, weaBus.TGroundDes); connect(periodicFlow.port, layMul.port_b) annotation (Line(points={{-20,22},{ diff --git a/IDEAS/Buildings/Components/Window.mo b/IDEAS/Buildings/Components/Window.mo index 1707ac883..128092bca 100644 --- a/IDEAS/Buildings/Components/Window.mo +++ b/IDEAS/Buildings/Components/Window.mo @@ -188,7 +188,7 @@ protected "Outside air model" annotation (Placement(transformation(extent={{-40,-100},{-20,-80}}))); initial equation - QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TRefInt - Tdes.y); + QTra_design = (U_value*A + (if fraType.briTyp.present then fraType.briTyp.G else 0)) *(TRefZon - Tdes.y); assert(not use_trickle_vent or sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None, "In " + getInstanceName() + ": Trickle vents can only be enabled when sim.interZonalAirFlowType is not None."); @@ -269,8 +269,9 @@ equation connect(shaType.hForcedConExt, radSolData.hForcedConExt) annotation ( Line(points={{-68.5,-32.7043},{-76,-32.7043},{-76,-62.2},{-79.4,-62.2}}, color = {0, 0, 127})); - connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation( - Line(points = {{-42, -90}, {-46, -90}, {-46, -48}, {-58, -48}}, color = {0, 0, 127})); + connect(outsideAir.TDryBul_in, shaType.TDryBul) annotation ( + Line(points={{-42,-90},{-46,-90},{-46,-49.4895},{-57.5,-49.4895}}, + color = {0, 0, 127})); annotation ( Icon(coordinateSystem(preserveAspectRatio=true, extent={{-60,-100},{60,100}}), graphics={Rectangle(fillColor = {255, 255, 255}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-50, -90}, {50, 100}}), From 350cee779d84bbfae7cb85c36b822612c2bc6d63 Mon Sep 17 00:00:00 2001 From: jelgerjansen Date: Fri, 8 Nov 2024 10:21:25 +0100 Subject: [PATCH 19/19] Add revision notes. --- IDEAS/Buildings/Components/BoundaryWall.mo | 5 +++++ IDEAS/Buildings/Components/Interfaces/DummyConnection.mo | 5 +++++ IDEAS/Buildings/Components/Interfaces/PartialSurface.mo | 5 +++++ IDEAS/Buildings/Components/Interfaces/PartialZone.mo | 5 +++++ IDEAS/Buildings/Components/Interfaces/ZoneBus.mo | 5 +++++ .../Components/Interfaces/ZoneBusVarMultiplicator.mo | 5 +++++ IDEAS/Buildings/Components/InternalWall.mo | 5 +++++ IDEAS/Buildings/Components/OuterWall.mo | 5 +++++ IDEAS/Buildings/Components/SlabOnGround.mo | 5 +++++ IDEAS/Buildings/Components/Window.mo | 5 +++++ 10 files changed, 50 insertions(+) diff --git a/IDEAS/Buildings/Components/BoundaryWall.mo b/IDEAS/Buildings/Components/BoundaryWall.mo index 4706579c3..8bcca1eeb 100644 --- a/IDEAS/Buildings/Components/BoundaryWall.mo +++ b/IDEAS/Buildings/Components/BoundaryWall.mo @@ -183,6 +183,11 @@ of heat losses, when the temperature boundary condition and heat flow boundary c ", revisions="