From 0f3480f6ffd43eda693e085307b5d81f4510eca9 Mon Sep 17 00:00:00 2001 From: "Philipp.Schmitz3" Date: Wed, 15 Feb 2023 14:02:52 +0100 Subject: [PATCH 01/23] fixed dead link and added message --- BESMod/Systems/Control/NoControl.mo | 3 +++ BESMod/UsersGuide/Conventions/package.mo | 12 +++--------- BESMod/UsersGuide/GettingStarted/package.mo | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/BESMod/Systems/Control/NoControl.mo b/BESMod/Systems/Control/NoControl.mo index 2cead548..3113f62d 100644 --- a/BESMod/Systems/Control/NoControl.mo +++ b/BESMod/Systems/Control/NoControl.mo @@ -1,4 +1,7 @@ within BESMod.Systems.Control; model NoControl "No HEMS control" extends BaseClasses.PartialControl; + annotation (Documentation(info=" +

When no supervisory controll is needed, this class is meant to be selected.

+")); end NoControl; diff --git a/BESMod/UsersGuide/Conventions/package.mo b/BESMod/UsersGuide/Conventions/package.mo index 6d2ca277..865a96f9 100644 --- a/BESMod/UsersGuide/Conventions/package.mo +++ b/BESMod/UsersGuide/Conventions/package.mo @@ -2,14 +2,8 @@ within BESMod.UsersGuide; package Conventions "Conventions" extends Modelica.Icons.Information; -annotation (Documentation(info="

- Please be aware of the model development and documentation - guidelines: https://github.com/RWTH-EBC/IBPSA/wiki/Modelica-guidelines. -

-

- This Conventions package includes documentation templates for - models and records. -

+annotation (Documentation(info=" +

Please be aware of the model development and documentation guidelines: https://github.com/ibpsa/modelica-ibpsa/wiki.

+

This Conventions package includes documentation templates for models and records.

")); end Conventions; diff --git a/BESMod/UsersGuide/GettingStarted/package.mo b/BESMod/UsersGuide/GettingStarted/package.mo index b24c01df..29c4a39d 100644 --- a/BESMod/UsersGuide/GettingStarted/package.mo +++ b/BESMod/UsersGuide/GettingStarted/package.mo @@ -3,7 +3,7 @@ package GettingStarted "Getting Started" extends Modelica.Icons.Information; annotation (Documentation(info=" -

Please be aware of the model development and documentation guidelines: https://github.com/RWTH-EBC/IBPSA/wiki/Modelica-guidelines.

+

Please be aware of the model development and documentation guidelines: https://github.com/ibpsa/modelica-ibpsa/wiki.

This Getting Started package includes documentation on how to use the library and build your own models.

")); end GettingStarted; From d3195e12c94f62c533111f2b0032171124d9500d Mon Sep 17 00:00:00 2001 From: "Philipp.Schmitz3" Date: Thu, 2 Mar 2023 18:50:26 +0100 Subject: [PATCH 02/23] added some missing documentation --- .../UseCaseModelicaConferencePaper/package.mo | 4 ++++ BESMod/Systems/Control/DHWSuperheating.mo | 3 +++ BESMod/Systems/Control/NoControl.mo | 2 +- .../Demand/Building/RecordsCollection/RefAachen.mo | 3 +++ BESMod/Systems/Demand/DHW/RecordsCollection/NoDHW.mo | 3 +++ .../Demand/DHW/TappingProfiles/PassThrough.mo | 3 +++ BESMod/Systems/Electrical/Control/NoControl.mo | 5 ++++- BESMod/Systems/Electrical/Generation/NoGeneration.mo | 5 ++++- .../Electrical/Generation/PVSystemMultiSub.mo | 4 +++- BESMod/Systems/Electrical/Interfaces/package.mo | 3 +++ .../Components/DHWSetControl/ConstTSet_DHW.mo | 5 ++++- .../Components/OnOffController/ConstantHysteresis.mo | 4 +++- .../Hydraulical/Control/MonovalentGasBoiler.mo | 12 ++++++++---- BESMod/Systems/Hydraulical/Control/NoControl.mo | 3 +++ .../Systems/Hydraulical/Distribution/BuildingOnly.mo | 3 +++ BESMod/Systems/Hydraulical/Distribution/DHWOnly.mo | 3 +++ .../Distribution/DistributionTwoStorageParallel.mo | 3 +++ .../Hydraulical/Distribution/Tests/package.mo | 3 +++ .../Hydraulical/Generation/ElectricalHeater.mo | 3 +++ .../Systems/Hydraulical/Generation/NoGeneration.mo | 3 +++ BESMod/Systems/Hydraulical/Interfaces/package.mo | 3 +++ .../Systems/Hydraulical/Transfer/NoHeatTransfer.mo | 3 +++ BESMod/Systems/Interfaces/package.mo | 3 +++ BESMod/Systems/Ventilation/Control/NoControl.mo | 3 +++ .../Systems/Ventilation/Generation/NoVentilation.mo | 3 +++ BESMod/Systems/Ventilation/Interfaces/package.mo | 3 +++ BESMod/Systems/Ventilation/NoVentilation.mo | 3 +++ BESMod/Tutorial/MyOwnModule.mo | 4 ++-- BESMod/Tutorial/package.mo | 3 +++ BESMod/Utilities/Icons/package.mo | 3 +++ 30 files changed, 96 insertions(+), 12 deletions(-) diff --git a/BESMod/Examples/UseCaseModelicaConferencePaper/package.mo b/BESMod/Examples/UseCaseModelicaConferencePaper/package.mo index e66d88f5..c948abe6 100644 --- a/BESMod/Examples/UseCaseModelicaConferencePaper/package.mo +++ b/BESMod/Examples/UseCaseModelicaConferencePaper/package.mo @@ -1,4 +1,8 @@ within BESMod.Examples; package UseCaseModelicaConferencePaper "The use cases described in the BESMod publication" extends Modelica.Icons.ExamplesPackage; + +annotation (Documentation(info=" +

More Information on this example system can be found with the following link:https://2022.american.conference.modelica.org/documents/01_papers/02_full/1_Wullhorst.pdf

+ ")); end UseCaseModelicaConferencePaper; diff --git a/BESMod/Systems/Control/DHWSuperheating.mo b/BESMod/Systems/Control/DHWSuperheating.mo index 92e0b6d6..f35dd6b2 100644 --- a/BESMod/Systems/Control/DHWSuperheating.mo +++ b/BESMod/Systems/Control/DHWSuperheating.mo @@ -38,4 +38,7 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

This supervisory control increases the DHW set temperature by 5 K at 12pm for 1h.

+")); end DHWSuperheating; diff --git a/BESMod/Systems/Control/NoControl.mo b/BESMod/Systems/Control/NoControl.mo index 3113f62d..ff1e418e 100644 --- a/BESMod/Systems/Control/NoControl.mo +++ b/BESMod/Systems/Control/NoControl.mo @@ -2,6 +2,6 @@ within BESMod.Systems.Control; model NoControl "No HEMS control" extends BaseClasses.PartialControl; annotation (Documentation(info=" -

When no supervisory controll is needed, this class is meant to be selected.

+

This class is meant to be selected, when no supervisory control is needed.

")); end NoControl; diff --git a/BESMod/Systems/Demand/Building/RecordsCollection/RefAachen.mo b/BESMod/Systems/Demand/Building/RecordsCollection/RefAachen.mo index 1eb975ae..cc1da9f0 100644 --- a/BESMod/Systems/Demand/Building/RecordsCollection/RefAachen.mo +++ b/BESMod/Systems/Demand/Building/RecordsCollection/RefAachen.mo @@ -91,4 +91,7 @@ record RefAachen "Reference Building for Aachen" TThresholdCooler=295.15, heaLoadFacGrd=0, heaLoadFacOut=0); + annotation (Documentation(info=" +

Reference Building for Aachen, which sets the building paramters to the values shown in the table below.

+")); end RefAachen; diff --git a/BESMod/Systems/Demand/DHW/RecordsCollection/NoDHW.mo b/BESMod/Systems/Demand/DHW/RecordsCollection/NoDHW.mo index 6393c499..c6d129f8 100644 --- a/BESMod/Systems/Demand/DHW/RecordsCollection/NoDHW.mo +++ b/BESMod/Systems/Demand/DHW/RecordsCollection/NoDHW.mo @@ -6,4 +6,7 @@ record NoDHW final m_flow_nominal=0, final table=[0,0,0,10,10; 86400,0,0,10,10], final VDHWDay=0); + annotation (Documentation(info=" +

This record is meant to be selected, when no DHW is being used.

+")); end NoDHW; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/PassThrough.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/PassThrough.mo index d26bf0ce..75703351 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/PassThrough.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/PassThrough.mo @@ -4,4 +4,7 @@ model PassThrough "Just extract the water from the DHW tank" equation connect(m_flow_in, m_flow_out) annotation (Line(points={{-120,60},{-6,60},{ -6,0},{110,0}}, color={0,0,127})); + annotation (Documentation(info=" +

This tapping profile directly extracts water from the DHW tank, without calculation of an equivalent mass flow.

+")); end PassThrough; diff --git a/BESMod/Systems/Electrical/Control/NoControl.mo b/BESMod/Systems/Electrical/Control/NoControl.mo index 5e17a7f5..88f99f7f 100644 --- a/BESMod/Systems/Electrical/Control/NoControl.mo +++ b/BESMod/Systems/Electrical/Control/NoControl.mo @@ -3,5 +3,8 @@ model NoControl extends BESMod.Systems.Electrical.Control.BaseClasses.PartialControl; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), + Documentation(info=" +

This class is meant to be selected, when no supervisory control is needed.

+")); end NoControl; diff --git a/BESMod/Systems/Electrical/Generation/NoGeneration.mo b/BESMod/Systems/Electrical/Generation/NoGeneration.mo index 5189850f..6cc16203 100644 --- a/BESMod/Systems/Electrical/Generation/NoGeneration.mo +++ b/BESMod/Systems/Electrical/Generation/NoGeneration.mo @@ -1,5 +1,5 @@ within BESMod.Systems.Electrical.Generation; -model NoGeneration "Don't generation electricity" +model NoGeneration "No electricity generation" extends BaseClasses.PartialGeneration(final f_design=fill(0.8, numGenUnits), final numGenUnits=1); BESMod.Utilities.Electrical.ZeroLoad zeroLoad @@ -10,4 +10,7 @@ equation points={{30,70},{50,70},{50,98}}, color={0,0,0}, thickness=1)); + annotation (Documentation(info=" +

This class is meant to be selected, when no electricity is supposed to be generated.

+")); end NoGeneration; diff --git a/BESMod/Systems/Electrical/Generation/PVSystemMultiSub.mo b/BESMod/Systems/Electrical/Generation/PVSystemMultiSub.mo index 8f8b2117..f7dbcd1e 100644 --- a/BESMod/Systems/Electrical/Generation/PVSystemMultiSub.mo +++ b/BESMod/Systems/Electrical/Generation/PVSystemMultiSub.mo @@ -5,7 +5,9 @@ model PVSystemMultiSub numGenUnits=1); replaceable model CellTemperature = AixLib.Electrical.PVSystem.BaseClasses.PartialCellTemperature annotation ( - __Dymola_choicesAllMatching=true); + __Dymola_choicesAllMatching=true, Documentation(info=" +

Calculates the cell temperature of the PV module based on winVel, T_a, eta and radTil.

+")); replaceable parameter AixLib.DataBase.SolarElectric.PVBaseDataDefinition pVParameters[numGenUnits] constrainedby AixLib.DataBase.SolarElectric.PVBaseDataDefinition annotation(choicesAllMatching=true,Placement(transformation(extent={{-82,-40}, diff --git a/BESMod/Systems/Electrical/Interfaces/package.mo b/BESMod/Systems/Electrical/Interfaces/package.mo index 622bb6b2..3c8306ff 100644 --- a/BESMod/Systems/Electrical/Interfaces/package.mo +++ b/BESMod/Systems/Electrical/Interfaces/package.mo @@ -2,4 +2,7 @@ within BESMod.Systems.Electrical; package Interfaces "Interfaces for electrical package" extends Modelica.Icons.InterfacesPackage; +annotation (Documentation(info=" +

These classes represent interfaces for the different BESMod Submodules and allow the transfer of information between them.

+")); end Interfaces; diff --git a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo index 6341e653..ce5c8dde 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo @@ -32,5 +32,8 @@ equation Text( extent={{70,-80},{94,-100}}, textString="time"), - Line(points={{-90,-70},{82,-70}}, color={95,95,95})})); + Line(points={{-90,-70},{82,-70}}, color={95,95,95})}), Documentation( + info=" +

This class creates a constant DHW set temperature.

+")); end ConstTSet_DHW; diff --git a/BESMod/Systems/Hydraulical/Control/Components/OnOffController/ConstantHysteresis.mo b/BESMod/Systems/Hydraulical/Control/Components/OnOffController/ConstantHysteresis.mo index 92ad7e50..581edd97 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/OnOffController/ConstantHysteresis.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/OnOffController/ConstantHysteresis.mo @@ -80,5 +80,7 @@ algorithm extent={{-63,-88},{-38,-71}}, lineColor={0,0,0}, textString="uLow"),Line(points={{-69,10},{-60,10}}, color={160, - 160,164})})); + 160,164})}), Documentation(info=" +

constant hystersis with a temperature difference of 10K

+")); end ConstantHysteresis; diff --git a/BESMod/Systems/Hydraulical/Control/MonovalentGasBoiler.mo b/BESMod/Systems/Hydraulical/Control/MonovalentGasBoiler.mo index 4770399b..8594a347 100644 --- a/BESMod/Systems/Hydraulical/Control/MonovalentGasBoiler.mo +++ b/BESMod/Systems/Hydraulical/Control/MonovalentGasBoiler.mo @@ -58,8 +58,8 @@ model MonovalentGasBoiler "PI Control of gas boiler" final TBiv=monovalentControlParas.TOda_nominal) annotation (choicesAllMatching=true, Placement(transformation(extent={{-218, -36},{-204,-22}}))); - Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=false) - if not use_dhw annotation (Placement(transformation( + Modelica.Blocks.Sources.BooleanConstant booleanConstant(k=false) if + not use_dhw annotation (Placement(transformation( extent={{10,10},{-10,-10}}, rotation=180, origin={-30,-10}))); @@ -75,8 +75,8 @@ model MonovalentGasBoiler "PI Control of gas boiler" extent={{-10,-10},{10,10}}, rotation=0, origin={-70,-50}))); - Modelica.Blocks.Math.BooleanToReal booToRea(final realTrue=1, final realFalse - =0) if use_dhw "Convert boolean signal to real for valve" annotation ( + Modelica.Blocks.Math.BooleanToReal booToRea(final realTrue=1, final realFalse= + 0) if use_dhw "Convert boolean signal to real for valve" annotation ( Placement(transformation( extent={{-10,-10},{10,10}}, rotation=0, @@ -198,4 +198,8 @@ equation horizontalAlignment=TextAlignment.Left)); connect(bufOn.u, boilerOnOffDHW.y) annotation (Line(points={{-82,-50},{-122, -50},{-122,50},{-139,50}}, color={255,0,255})); + annotation (Documentation(info=" +

This controll class creates an input signal for the gas boiler by using a PI controller and passes it to the generation interface. The PI controller takes into account the current set temperature, a measured temperature and the heat demand of the system.

+

The heat demand is derived from a drop in temperature in the storage tanks.

+")); end MonovalentGasBoiler; diff --git a/BESMod/Systems/Hydraulical/Control/NoControl.mo b/BESMod/Systems/Hydraulical/Control/NoControl.mo index 29cc7fcf..2c1f00b0 100644 --- a/BESMod/Systems/Hydraulical/Control/NoControl.mo +++ b/BESMod/Systems/Hydraulical/Control/NoControl.mo @@ -1,4 +1,7 @@ within BESMod.Systems.Hydraulical.Control; model NoControl "No control" extends BaseClasses.PartialControl; + annotation (Documentation(info=" +

This class is meant to be selected, when no control of the hydraulic system is needed.

+")); end NoControl; diff --git a/BESMod/Systems/Hydraulical/Distribution/BuildingOnly.mo b/BESMod/Systems/Hydraulical/Distribution/BuildingOnly.mo index 3ff08dfa..37861dc3 100644 --- a/BESMod/Systems/Hydraulical/Distribution/BuildingOnly.mo +++ b/BESMod/Systems/Hydraulical/Distribution/BuildingOnly.mo @@ -48,4 +48,7 @@ equation annotation (Line(points={{-100,40},{100,40}}, color={0,127,255})); connect(portGen_in[1], portBui_out[1]) annotation (Line(points={{-100,80},{100,80}}, color={0,127,255})); + annotation (Documentation(info=" +

Generation system directly supplys the building with heat without using storage tanks and no creation of DHW.

+")); end BuildingOnly; diff --git a/BESMod/Systems/Hydraulical/Distribution/DHWOnly.mo b/BESMod/Systems/Hydraulical/Distribution/DHWOnly.mo index 132b0e5c..19534b0c 100644 --- a/BESMod/Systems/Hydraulical/Distribution/DHWOnly.mo +++ b/BESMod/Systems/Hydraulical/Distribution/DHWOnly.mo @@ -32,4 +32,7 @@ equation points={{44,-98},{56,-98},{56,-96},{70,-96},{70,-98}}, color={0,0,0}, thickness=1)); + annotation (Documentation(info=" +

Generation system directly supplys the production of DHW without the use of storage tanks.

+")); end DHWOnly; diff --git a/BESMod/Systems/Hydraulical/Distribution/DistributionTwoStorageParallel.mo b/BESMod/Systems/Hydraulical/Distribution/DistributionTwoStorageParallel.mo index 8a47a625..4ab93931 100644 --- a/BESMod/Systems/Hydraulical/Distribution/DistributionTwoStorageParallel.mo +++ b/BESMod/Systems/Hydraulical/Distribution/DistributionTwoStorageParallel.mo @@ -266,4 +266,7 @@ equation horizontalAlignment=TextAlignment.Left)); connect(bouPumBuf.ports[1], storageBuf.port_a_consumer) annotation (Line( points={{10,20},{10,32},{49,32},{49,40}}, color={0,127,255})); + annotation (Documentation(info=" +

This distribution system consists of one storage tank for the building heat demand and another storage tank for the production of DHW. The storage tanks are built in parallel and connected with a three way valve.

+")); end DistributionTwoStorageParallel; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/package.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/package.mo index 0673b45e..c5298c95 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/package.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/package.mo @@ -2,4 +2,7 @@ within BESMod.Systems.Hydraulical.Distribution; package Tests extends Modelica.Icons.ExamplesPackage; +annotation (Documentation(info=" +

Test setups to check the functionality of the distribution systems.

+")); end Tests; diff --git a/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo b/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo index 54e34e46..1c1ca668 100644 --- a/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo @@ -159,4 +159,7 @@ equation index=1, extent={{-3,-6},{-3,-6}}, horizontalAlignment=TextAlignment.Right)); + annotation (Documentation(info=" +

Uses only a heating rod to generate heat.

+")); end ElectricalHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/NoGeneration.mo b/BESMod/Systems/Hydraulical/Generation/NoGeneration.mo index d6afcdef..bca6794d 100644 --- a/BESMod/Systems/Hydraulical/Generation/NoGeneration.mo +++ b/BESMod/Systems/Hydraulical/Generation/NoGeneration.mo @@ -14,4 +14,7 @@ equation points={{52,-98},{62,-98},{62,-100},{72,-100}}, color={0,0,0}, thickness=1)); + annotation (Documentation(info=" +

This class is meant to be selected, when no heat generation is needed.

+")); end NoGeneration; diff --git a/BESMod/Systems/Hydraulical/Interfaces/package.mo b/BESMod/Systems/Hydraulical/Interfaces/package.mo index 7810a3ea..8a694494 100644 --- a/BESMod/Systems/Hydraulical/Interfaces/package.mo +++ b/BESMod/Systems/Hydraulical/Interfaces/package.mo @@ -2,4 +2,7 @@ within BESMod.Systems.Hydraulical; package Interfaces extends Modelica.Icons.InterfacesPackage; +annotation (Documentation(info=" +

These classes represent interfaces for the different BESMod Submodules and allow the transfer of information between them.

+")); end Interfaces; diff --git a/BESMod/Systems/Hydraulical/Transfer/NoHeatTransfer.mo b/BESMod/Systems/Hydraulical/Transfer/NoHeatTransfer.mo index 8712ec9f..0ca50511 100644 --- a/BESMod/Systems/Hydraulical/Transfer/NoHeatTransfer.mo +++ b/BESMod/Systems/Hydraulical/Transfer/NoHeatTransfer.mo @@ -20,4 +20,7 @@ equation points={{60,-70},{72,-70},{72,-98}}, color={0,0,0}, thickness=1)); + annotation (Documentation(info=" +

This class is meant to be used, when the building should not be supplied with heat.

+")); end NoHeatTransfer; diff --git a/BESMod/Systems/Interfaces/package.mo b/BESMod/Systems/Interfaces/package.mo index eeaa8493..fa485842 100644 --- a/BESMod/Systems/Interfaces/package.mo +++ b/BESMod/Systems/Interfaces/package.mo @@ -3,4 +3,7 @@ package Interfaces extends Modelica.Icons.InterfacesPackage; +annotation (Documentation(info=" +

These classes represent interfaces for the different BESMod Submodules and allow the transfer of information between them.

+")); end Interfaces; diff --git a/BESMod/Systems/Ventilation/Control/NoControl.mo b/BESMod/Systems/Ventilation/Control/NoControl.mo index 364501a4..8fb133bb 100644 --- a/BESMod/Systems/Ventilation/Control/NoControl.mo +++ b/BESMod/Systems/Ventilation/Control/NoControl.mo @@ -1,4 +1,7 @@ within BESMod.Systems.Ventilation.Control; model NoControl "Dont control anything" extends BaseClasses.PartialControl; + annotation (Documentation(info=" +

This class is meant to be selected, when no supervisory control is needed.

+")); end NoControl; diff --git a/BESMod/Systems/Ventilation/Generation/NoVentilation.mo b/BESMod/Systems/Ventilation/Generation/NoVentilation.mo index 6dbeaaf6..2ef7cce6 100644 --- a/BESMod/Systems/Ventilation/Generation/NoVentilation.mo +++ b/BESMod/Systems/Ventilation/Generation/NoVentilation.mo @@ -20,4 +20,7 @@ equation points={{40,-90},{56,-90},{56,-84},{70,-84},{70,-98}}, color={0,0,0}, thickness=1)); + annotation (Documentation(info=" +

This class is meant to be selected, when no ventilation is needed.

+")); end NoVentilation; diff --git a/BESMod/Systems/Ventilation/Interfaces/package.mo b/BESMod/Systems/Ventilation/Interfaces/package.mo index 1fb036f9..2c677f85 100644 --- a/BESMod/Systems/Ventilation/Interfaces/package.mo +++ b/BESMod/Systems/Ventilation/Interfaces/package.mo @@ -6,4 +6,7 @@ package Interfaces +annotation (Documentation(info=" +

These classes represent interfaces for the different BESMod Submodules and allow the transfer of information between them.

+")); end Interfaces; diff --git a/BESMod/Systems/Ventilation/NoVentilation.mo b/BESMod/Systems/Ventilation/NoVentilation.mo index 3581bbb4..8597fe07 100644 --- a/BESMod/Systems/Ventilation/NoVentilation.mo +++ b/BESMod/Systems/Ventilation/NoVentilation.mo @@ -2,4 +2,7 @@ within BESMod.Systems.Ventilation; model NoVentilation extends BaseClasses.PartialVentilationSystem(redeclare BESMod.Systems.Ventilation.Generation.NoVentilation generation, redeclare BESMod.Systems.Ventilation.Distribution.SimpleDistribution distribution( m_flow_nominal={1}), redeclare BESMod.Systems.Ventilation.Control.NoControl control); + annotation (Documentation(info=" +

This class is meant to be selected, when no ventilation system is needed.

+")); end NoVentilation; diff --git a/BESMod/Tutorial/MyOwnModule.mo b/BESMod/Tutorial/MyOwnModule.mo index 6b7cf6f6..f49d92ab 100644 --- a/BESMod/Tutorial/MyOwnModule.mo +++ b/BESMod/Tutorial/MyOwnModule.mo @@ -18,8 +18,8 @@ model MyOwnModule "My module can do this and that" startTime=myComponentParameters.startTime) annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); Modelica.Blocks.Nonlinear.Limiter - limiter(final uMax=yMax, final uMin=-yMax) - if use_lim + limiter(final uMax=yMax, final uMin=-yMax) if + use_lim annotation (Placement(transformation(extent={{6,4},{26,24}}))); Modelica.Blocks.Interfaces.RealOutput y "Output signal connector" annotation (Placement(transformation(extent={{100,-10},{120,10}}))); diff --git a/BESMod/Tutorial/package.mo b/BESMod/Tutorial/package.mo index 54070903..abfb1b89 100644 --- a/BESMod/Tutorial/package.mo +++ b/BESMod/Tutorial/package.mo @@ -3,4 +3,7 @@ package Tutorial extends Modelica.Icons.ExamplesPackage; +annotation (Documentation(info=" +

Tutorial system to create custom modular building energy systems.

+")); end Tutorial; diff --git a/BESMod/Utilities/Icons/package.mo b/BESMod/Utilities/Icons/package.mo index 269b5651..7999c8bb 100644 --- a/BESMod/Utilities/Icons/package.mo +++ b/BESMod/Utilities/Icons/package.mo @@ -1,4 +1,7 @@ within BESMod.Utilities; package Icons "Package with Icons used in BESMod" +annotation (Documentation(info=" +

This class contains the icons used on the graphical layer of the model.

+")); end Icons; From 7025cf7d76e87e87f4b1f9ef45c6b3da3fc49779 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 19 Nov 2024 16:33:06 +0100 Subject: [PATCH 03/23] first chunk of AI generated docs --- BESMod/Examples/BAUSimStudy/BESParameters.mo | 4 +++ BESMod/Examples/BAUSimStudy/Case1Standard.mo | 8 +++++ BESMod/Examples/BAUSimStudy/PartialCase.mo | 30 ++++++++++++++++- .../DesignOptimization/AachenSystem.mo | 4 +++ BESMod/Examples/DesignOptimization/BES.mo | 29 +++++++++++++++- .../Examples/DesignOptimization/BESNoDHW.mo | 9 +++++ .../DesignOptimization/ParametersToChange.mo | 4 +++ BESMod/Examples/GasBoilerBuildingOnly.mo | 15 ++++++++- .../HeatPumpAndBoiler/AachenSystem.mo | 4 +++ .../HeatPumpAndBoiler/AfterBufferWithDHW.mo | 28 +++++++++++++++- .../AfterBufferWithoutDHW.mo | 31 ++++++++++++++++- .../Examples/HeatPumpAndBoiler/BaseClasses.mo | 33 ++++++++++++++++--- BESMod/Examples/HeatPumpAndBoiler/Parallel.mo | 26 ++++++++++++++- .../HeatPumpAndBoiler/ParametersToChange.mo | 9 +++++ BESMod/Examples/HeatPumpAndBoiler/Serial.mo | 21 +++++++++++- BESMod/Examples/HighOrderModel/BES_HOM.mo | 8 ++++- BESMod/Examples/HighOrderModel/HOMSystem.mo | 4 +++ .../BESModSystemParas.mo | 5 +++ .../BuildingsLibraryRoom.mo | 11 +++++++ .../PartialModelicaConferenceUseCase.mo | 29 ++++++++++++++++ .../ModelicaConferencePaper/TEASERBuilding.mo | 15 +++++++-- BESMod/Examples/Retrofit/BESParameters.mo | 6 ++++ BESMod/Examples/Retrofit/PartialCase.mo | 23 ++++++++++--- 23 files changed, 337 insertions(+), 19 deletions(-) diff --git a/BESMod/Examples/BAUSimStudy/BESParameters.mo b/BESMod/Examples/BAUSimStudy/BESParameters.mo index 4c4287a8..27d73ae8 100644 --- a/BESMod/Examples/BAUSimStudy/BESParameters.mo +++ b/BESMod/Examples/BAUSimStudy/BESParameters.mo @@ -12,4 +12,8 @@ record BESParameters final nZones=1, final use_ventilation=false); + annotation (Documentation(info=" +

Information

+

This record contains basic parameters for building energy system simulations in the BauSIM case study.

+")); end BESParameters; diff --git a/BESMod/Examples/BAUSimStudy/Case1Standard.mo b/BESMod/Examples/BAUSimStudy/Case1Standard.mo index 1fcf94e3..a9881fc3 100644 --- a/BESMod/Examples/BAUSimStudy/Case1Standard.mo +++ b/BESMod/Examples/BAUSimStudy/Case1Standard.mo @@ -13,4 +13,12 @@ model Case1Standard __Dymola_Algorithm="Dassl"), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/BAUSimStudy/Case1Standard.mos" "Simulate and plot")); + annotation (Documentation(info=" +

Information

+

+This model represents the standard case (Case 1) of a building energy simulation study. It extends from +BESMod.Examples.BAUSimStudy.PartialCase +and uses parameters for a non-retrofitted single dwelling house from 1918. +

+")); end Case1Standard; diff --git a/BESMod/Examples/BAUSimStudy/PartialCase.mo b/BESMod/Examples/BAUSimStudy/PartialCase.mo index c864fa3e..f59a1b77 100644 --- a/BESMod/Examples/BAUSimStudy/PartialCase.mo +++ b/BESMod/Examples/BAUSimStudy/PartialCase.mo @@ -92,8 +92,36 @@ partial model PartialCase parameter Modelica.Units.SI.Temperature TBiv=271.15 "Nominal bivalence temperature. = TOda_nominal for monovalent systems."; + annotation (experiment( StopTime=172800, Interval=600, - __Dymola_Algorithm="Dassl")); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

Information

+

This is a partial case model for building energy system simulations. It extends a partial building energy system with specific subsystems for electrical, thermal, hydraulic and control components. The model includes:

+
    +
  • Direct grid connection for electrical system
  • +
  • TEASER thermal zone building model
  • +
  • No control system
  • +
  • Hydraulic system with: +
      +
    • Bivalent parallel heat pump and electric heater
    • +
    • Two storage system with detailed loading
    • +
    • Radiator-based heat transfer
    • +
    +
  • +
  • DHW system with standard profiles
  • +
  • TEASER user profiles
  • +
  • No ventilation system
  • +
+ +

Related Models

+ +")); end PartialCase; diff --git a/BESMod/Examples/DesignOptimization/AachenSystem.mo b/BESMod/Examples/DesignOptimization/AachenSystem.mo index 4a036a26..063af4e9 100644 --- a/BESMod/Examples/DesignOptimization/AachenSystem.mo +++ b/BESMod/Examples/DesignOptimization/AachenSystem.mo @@ -10,4 +10,8 @@ record AachenSystem THydSup_nominal={328.15}, TOda_nominal=265.35); + annotation (Documentation(info=" +

Information

+

This record extends BESMod.Systems.RecordsCollection.SystemParametersBaseDataDefinition and defines parameters for a building energy system in Aachen, Germany. The model represents a single-zone building without ventilation and electric heating.

+")); end AachenSystem; diff --git a/BESMod/Examples/DesignOptimization/BES.mo b/BESMod/Examples/DesignOptimization/BES.mo index e61a1065..d1047f99 100644 --- a/BESMod/Examples/DesignOptimization/BES.mo +++ b/BESMod/Examples/DesignOptimization/BES.mo @@ -99,7 +99,34 @@ model BES extends Modelica.Icons.Example; - annotation (experiment(StopTime=172800, + annotation (Documentation(info=" +

Information

+

This model represents a complete building energy system (BES) setup for design optimization. It extends the PartialBuildingEnergySystem base class and includes an electrical system with direct grid connection, a thermal zone building model based on TEASER, and a hydraulic system with heat pump and electric heater.

+ +

System Components

+
    +
  • Electrical: DirectGridConnectionSystem
  • +
  • Building: TEASERThermalZone with reference parameters for Aachen
  • +
  • Control: NoControl
  • +
  • Hydraulic: HydraulicSystem +
      +
    • Generation: Bivalent heat pump with electric heater
    • +
    • Distribution: Two storage system in parallel (buffer and DHW)
    • +
    • Transfer: Ideal valve radiator system
    • +
    +
  • +
  • DHW: Standard domestic hot water system with M-Profile
  • +
  • Ventilation: No ventilation system
  • +
+ +

Important Parameters

+
    +
  • TBiv: Bivalent temperature point for heat pump operation
  • +
  • TCutOff: Cut-off temperature for heat pump
  • +
  • QHP_flow_cutOff: Heat pump power at cut-off temperature
  • +
  • VPerQFlow: Storage volume per nominal heat flow rate
  • +
+"),experiment(StopTime=172800, Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/DesignOptimization/BES.mos" diff --git a/BESMod/Examples/DesignOptimization/BESNoDHW.mo b/BESMod/Examples/DesignOptimization/BESNoDHW.mo index bea6c198..3bd997bb 100644 --- a/BESMod/Examples/DesignOptimization/BESNoDHW.mo +++ b/BESMod/Examples/DesignOptimization/BESNoDHW.mo @@ -91,4 +91,13 @@ model BESNoDHW "Example to demonstrate usage without DHW" Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/DesignOptimization/BESNoDHW.mos" "Simulate and plot")); + annotation (Documentation(info=" +

Information

+

+ This model demonstrates a building energy system without domestic hot water (DHW). + It uses a bivalent parallel heat pump system with an electric heater as backup. + The heat distribution is building-only with ideal valve radiators. + The control system is monoergetic with thermostatically controlled valves. +

+")); end BESNoDHW; diff --git a/BESMod/Examples/DesignOptimization/ParametersToChange.mo b/BESMod/Examples/DesignOptimization/ParametersToChange.mo index dc7ce13d..301493bd 100644 --- a/BESMod/Examples/DesignOptimization/ParametersToChange.mo +++ b/BESMod/Examples/DesignOptimization/ParametersToChange.mo @@ -15,4 +15,8 @@ record ParametersToChange annotation(Evaluate=false); parameter Modelica.Units.SI.HeatFlowRate QHP_flow_cutOff=3000 annotation (Evaluate=false); + annotation (Documentation(info=" +

Information

+

This record defines parameters for design optimization of building energy systems.

+")); end ParametersToChange; diff --git a/BESMod/Examples/GasBoilerBuildingOnly.mo b/BESMod/Examples/GasBoilerBuildingOnly.mo index f77cd61c..48da6af7 100644 --- a/BESMod/Examples/GasBoilerBuildingOnly.mo +++ b/BESMod/Examples/GasBoilerBuildingOnly.mo @@ -61,5 +61,18 @@ model GasBoilerBuildingOnly Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/GasBoilerBuildingOnly.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

+ This model represents a building energy system featuring a gas boiler for space heating. The building model uses the TEASER thermal zone representation of a building located in Aachen, Germany. The system only models space heating without ventilation, domestic hot water or electrical heating. +

+ +

Key Components

+ +")); end GasBoilerBuildingOnly; diff --git a/BESMod/Examples/HeatPumpAndBoiler/AachenSystem.mo b/BESMod/Examples/HeatPumpAndBoiler/AachenSystem.mo index f7a738b2..8ed10214 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/AachenSystem.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/AachenSystem.mo @@ -10,4 +10,8 @@ record AachenSystem THydSup_nominal={328.15}, TOda_nominal=265.35); + annotation (Documentation(info=" +

Information

+

Define parameters for a heating system model of a building in Aachen, Germany.

+")); end AachenSystem; diff --git a/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo b/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo index d6250b8d..43232839 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo @@ -46,5 +46,31 @@ model AfterBufferWithDHW Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

+This model represents a bivalent heat pump system with boiler integration after the buffer tank including domestic hot water (DHW) support. It extends the PartialHybridSystem base class. +

+ +

System Description

+

+Key components: +

    +
  • Heat pump with vapor injection phase separator using propane refrigerant
  • +
  • Boiler integrated after buffer storage tank
  • +
  • Two storage system with buffer tank and DHW storage
  • +
  • Bivalent-parallel configuration for heat generation
  • +
+

+ +

Important Parameters

+

+

    +
  • TBiv: Bivalence temperature for heat pump operation
  • +
  • VPerQFlow: Buffer storage volume per nominal heat flow rate
  • +
  • dTLoadingHC1: Temperature difference for DHW loading (10K)
  • +
  • dTBoiDHWLoa: Temperature difference for boiler DHW loading (10K)
  • +
+

+")); end AfterBufferWithDHW; diff --git a/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithoutDHW.mo b/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithoutDHW.mo index bd0bfab4..832e102f 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithoutDHW.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithoutDHW.mo @@ -36,9 +36,38 @@ model AfterBufferWithoutDHW extends Modelica.Icons.Example; + annotation (experiment(StopTime=172800, Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/HeatPumpAndBoiler/AfterBufferWithoutDHW.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

This model represents a bivalent heat pump system with a boiler integration after the buffer tank. The system does not include domestic hot water (DHW) support by the boiler. It extends from a partial hybrid system base class.

+ +

System Configuration

+

The hydraulic system consists of:

+
    +
  • Heat pump generation system with: +
      +
    • Bivalent parallel operation with boiler
    • +
    • Vapor injection heat pump using propane refrigerant
    • +
    • Performance based on 3D table data
    • +
    +
  • +
  • Distribution system with: +
      +
    • Detailed buffer storage with direct loading
    • +
    • Three-way valve control
    • +
    • Boiler integration after buffer storage
    • +
    +
  • +
+ +

Important Parameters

+
    +
  • TBiv: Bivalent temperature point
  • +
  • VPerQFlow: Storage volume per heat flow rate
  • +
+")); end AfterBufferWithoutDHW; diff --git a/BESMod/Examples/HeatPumpAndBoiler/BaseClasses.mo b/BESMod/Examples/HeatPumpAndBoiler/BaseClasses.mo index 46c6d462..83cca7d4 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/BaseClasses.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/BaseClasses.mo @@ -59,9 +59,34 @@ package BaseClasses "Contains partial example case" redeclare final package MediumHyd = AixLib.Media.Water, redeclare BESMod.Systems.Ventilation.NoVentilation ventilation); - annotation (experiment( - StopTime=172800, - Interval=600, - __Dymola_Algorithm="Dassl")); + end PartialHybridSystem; + annotation (Documentation(info=" +

Information

+

This package contains a partial example case for a hybrid building energy system. The main model PartialHybridSystem defines a bivalent heat pump system that combines a heat pump with a backup boiler. The model extends BESMod.Systems.BaseClasses.PartialBuildingEnergySystem and includes:

+ +
    +
  • Direct grid connection for electrical system
  • +
  • TEASER thermal zone building model with Aachen reference parameters
  • +
  • Hybrid heat pump hydraulic system with PI-controlled thermostatic valves
  • +
  • Standard DHW profile system
  • +
  • TEASER user profiles
  • +
  • No ventilation system
  • +
+ +

Important Parameters

+
    +
  • TBiv - Bivalent temperature point for heat pump operation
  • +
  • TCutOff - Heat pump cut-off temperature
  • +
  • dTHysBui - Building temperature hysteresis (5K)
  • +
  • dTHysDHW - DHW temperature hysteresis (5K)
  • +
+ +

Related Models

+ +")); end BaseClasses; diff --git a/BESMod/Examples/HeatPumpAndBoiler/Parallel.mo b/BESMod/Examples/HeatPumpAndBoiler/Parallel.mo index 84da41fe..8858223f 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/Parallel.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/Parallel.mo @@ -36,5 +36,29 @@ model Parallel Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/HeatPumpAndBoiler/Parallel.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

+This model implements a bivalent heating system with parallel heat generation using a heat pump and gas boiler. The system includes two storage tanks - one buffer storage for heating and one for domestic hot water (DHW). +

+ +

Important Parameters

+
    +
  • TBiv: Bivalence temperature for heat pump operation
  • +
  • VPerQFlow: Specific storage volume per heat flow rate
  • +
  • dTLoadingHC1: Temperature difference for loading heating circuit 1 +
      +
    • Buffer storage: 0K
    • +
    • DHW storage: 10K
    • +
    +
  • +
+ +

Key components:

+ +")); end Parallel; diff --git a/BESMod/Examples/HeatPumpAndBoiler/ParametersToChange.mo b/BESMod/Examples/HeatPumpAndBoiler/ParametersToChange.mo index a0cef995..559a6443 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/ParametersToChange.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/ParametersToChange.mo @@ -16,4 +16,13 @@ record ParametersToChange annotation (Evaluate=false); parameter Modelica.Units.SI.HeatFlowRate QHP_flow_biv=4000 annotation (Evaluate=false); + annotation (Documentation(info=" +

Information

+

+Record that contains parameters related to the heat pump and boiler system design. +

+

+All parameters have Evaluate=false since they are meant to be changed during parameter studies. +

+")); end ParametersToChange; diff --git a/BESMod/Examples/HeatPumpAndBoiler/Serial.mo b/BESMod/Examples/HeatPumpAndBoiler/Serial.mo index cede0848..dfdb7931 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/Serial.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/Serial.mo @@ -33,5 +33,24 @@ model Serial "Bivalent Heat Pump Systems with serial heat generation" Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/HeatPumpAndBoiler/Serial.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

+This model represents a bivalent heating system with serial arrangement of a heat pump and gas boiler. The system uses modular components for modeling the heating supply system with two storages in parallel arrangement for both buffer and domestic hot water storage. +

+ +

Important Parameters

+
    +
  • TBiv: Bivalence temperature for heat pump operation
  • +
  • VPerQFlow: Storage volume per nominal heat flow for buffer storage dimensioning
  • +
  • dTLoadingHC1: Temperature difference for DHW loading (10K)
  • +
+ +

Key components:

+
    +
  • Heat pump model using AixLib table-based heat pump with vapor injection
  • +
  • Two storage system: Buffer storage and DHW storage arranged in parallel
  • + +
+")); end Serial; diff --git a/BESMod/Examples/HighOrderModel/BES_HOM.mo b/BESMod/Examples/HighOrderModel/BES_HOM.mo index e0d14835..dce3c8ae 100644 --- a/BESMod/Examples/HighOrderModel/BES_HOM.mo +++ b/BESMod/Examples/HighOrderModel/BES_HOM.mo @@ -91,5 +91,11 @@ model BES_HOM Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/HighOrderModel/BES_HOM.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

High order building energy system model extending BESMod.Systems.BaseClasses.PartialBuildingEnergySystem. The model consists of an electrical, building, control, hydraulic, DHW and ventilation system.

+ +

The building is modeled using AixLib high order approach with EnEV2009 heavy walls and simple window model. The hydraulic system features a heat pump with electric heater backup in a monoenergetic configuration, two storage tanks in parallel (buffer and DHW), and radiator heating system.

+ +")); end BES_HOM; diff --git a/BESMod/Examples/HighOrderModel/HOMSystem.mo b/BESMod/Examples/HighOrderModel/HOMSystem.mo index 1e546923..ebd7b716 100644 --- a/BESMod/Examples/HighOrderModel/HOMSystem.mo +++ b/BESMod/Examples/HighOrderModel/HOMSystem.mo @@ -10,4 +10,8 @@ record HOMSystem THydSup_nominal=fill(328.15,nZones), TOda_nominal=265.35); + annotation (Documentation(info=" +

Information

+

Record for a high-order building model consisting of 10 thermal zones.

+")); end HOMSystem; diff --git a/BESMod/Examples/ModelicaConferencePaper/BESModSystemParas.mo b/BESMod/Examples/ModelicaConferencePaper/BESModSystemParas.mo index cccec10a..84d07406 100644 --- a/BESMod/Examples/ModelicaConferencePaper/BESModSystemParas.mo +++ b/BESMod/Examples/ModelicaConferencePaper/BESModSystemParas.mo @@ -9,4 +9,9 @@ record BESModSystemParas "Case studies system parameters" THydSup_nominal={328.15}, TOda_nominal=265.35); + annotation (Documentation(info=" +

Information

+

BESModSystemParas is a record containing system parameters for building energy system case studies.

+ +")); end BESModSystemParas; diff --git a/BESMod/Examples/ModelicaConferencePaper/BuildingsLibraryRoom.mo b/BESMod/Examples/ModelicaConferencePaper/BuildingsLibraryRoom.mo index 9d60c613..91204277 100644 --- a/BESMod/Examples/ModelicaConferencePaper/BuildingsLibraryRoom.mo +++ b/BESMod/Examples/ModelicaConferencePaper/BuildingsLibraryRoom.mo @@ -16,4 +16,15 @@ annotation(experiment(StopTime=172800, "Simulate and plot"), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/ModelicaConferencePaper/BuildingsLibraryRoom.mos" "Simulate and plot")); + annotation (Documentation(info=" +

Information

+

System model extending from PartialModelicaConferenceUseCase using the Buildings library's room model. The model demonstrates the use case of a single zone building simulation based on the BESTEST Case 600 setup.

+ +

Important Parameters

+ +")); end BuildingsLibraryRoom; diff --git a/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo b/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo index 6d86c3e6..1dc735ea 100644 --- a/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo +++ b/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo @@ -116,4 +116,33 @@ partial model PartialModelicaConferenceUseCase use_bypass=false))); + annotation (Documentation(info=" +

Information

+

This is a partial model representing a building energy system (BES) example case study. It implements the following subsystems:

+ +
    +
  • Electrical system with PV generation and battery storage (Tesla Powerwall)
  • +
  • Heat pump based hydraulic system with electric backup heater and thermal storage
  • +
  • Domestic hot water system with standard tapping profile
  • +
  • Ventilation system with heat recovery
  • +
  • Control system for DHW superheating
  • +
+ +

Important Parameters

+ +")); end PartialModelicaConferenceUseCase; diff --git a/BESMod/Examples/ModelicaConferencePaper/TEASERBuilding.mo b/BESMod/Examples/ModelicaConferencePaper/TEASERBuilding.mo index 702cdd4f..3ced1220 100644 --- a/BESMod/Examples/ModelicaConferencePaper/TEASERBuilding.mo +++ b/BESMod/Examples/ModelicaConferencePaper/TEASERBuilding.mo @@ -20,7 +20,16 @@ annotation(experiment(StopTime=172800, Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/ModelicaConferencePaper/TEASERBuilding.mos" - "Simulate and plot"), - __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/ModelicaConferencePaper/TEASERBuilding.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

+This model represents a TEASER building model example. It uses a single thermal zone configuration with parameters based on a reference building in Aachen. +

+

Model Components

+ +")); end TEASERBuilding; diff --git a/BESMod/Examples/Retrofit/BESParameters.mo b/BESMod/Examples/Retrofit/BESParameters.mo index ffb8ec3c..c9e90c0e 100644 --- a/BESMod/Examples/Retrofit/BESParameters.mo +++ b/BESMod/Examples/Retrofit/BESParameters.mo @@ -13,4 +13,10 @@ record BESParameters final nZones=1, final use_ventilation=false); + annotation (Documentation(info=" +

Information

+

+Record for Building Energy System (BES) parameters used in retrofit examples. +

+")); end BESParameters; diff --git a/BESMod/Examples/Retrofit/PartialCase.mo b/BESMod/Examples/Retrofit/PartialCase.mo index 6ea8aac0..68049e57 100644 --- a/BESMod/Examples/Retrofit/PartialCase.mo +++ b/BESMod/Examples/Retrofit/PartialCase.mo @@ -95,8 +95,23 @@ partial model PartialCase "If true, hydraulic distribution system uses QBuiNoRetrofit."; parameter Boolean NoRetrofitHydGen = false "If true, hydraulic generation system uses QBuiNoRetrofit."; - annotation (experiment( - StopTime=31536000, - Interval=600, - __Dymola_Algorithm="Dassl")); + annotation (Documentation(info=" +

Information

+This partial model serves as a base class for retrofit case studies in building energy systems. It configures: + + + +

Important Parameters

+
    +
  • NoRetrofitHydTra: Boolean flag to use non-retrofitted heating load for transfer system sizing
  • +
  • NoRetrofitHydDis: Boolean flag to use non-retrofitted heating load for distribution system sizing
  • +
  • NoRetrofitHydGen: Boolean flag to use non-retrofitted heating load for generation system sizing
  • +
  • Heat pump bivalence temperature: 271.15 K (-2°C)
  • +
+")); end PartialCase; From 12670bccfedcad6f6fb34e94bd408d2aaa9f0d0e Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 19 Nov 2024 17:13:49 +0100 Subject: [PATCH 04/23] add examples documentation --- .../SolarThermalSystem/CombiStorage.mo | 4 +++ .../SolarThermalSystem/SolarCollector.mo | 7 ++++- .../SolarThermalSystem/SolarThermalAixLib.mo | 22 +++++++++++++++- .../SolarThermalBuildings.mo | 26 ++++++++++++++++++- .../SolarThermalDesignOptimization.mo | 4 +++ .../SolarThermalSystemParameters.mo | 3 +++ .../TEASERHeatLoadCalculation/Example.mo | 13 +++++++++- .../PartialCalculation.mo | 22 ++++++++++++++++ .../Systems/BaseClasses/PartialBESExample.mo | 3 +++ 9 files changed, 100 insertions(+), 4 deletions(-) diff --git a/BESMod/Examples/SolarThermalSystem/CombiStorage.mo b/BESMod/Examples/SolarThermalSystem/CombiStorage.mo index ee40211e..9a4f94be 100644 --- a/BESMod/Examples/SolarThermalSystem/CombiStorage.mo +++ b/BESMod/Examples/SolarThermalSystem/CombiStorage.mo @@ -8,4 +8,8 @@ record CombiStorage dTLoadingHC2=5, redeclare AixLib.DataBase.Pipes.Copper.Copper_22x1 pipeHC2, redeclare AixLib.DataBase.Pipes.Copper.Copper_22x1 pipeHC1); + annotation (Documentation(info=" +

Information

+

Base record type for a combined storage tank (combi storage) used in solar thermal systems. The model inherits from BufferStorageBaseDataDefinition which provides the base parameters.

+")); end CombiStorage; diff --git a/BESMod/Examples/SolarThermalSystem/SolarCollector.mo b/BESMod/Examples/SolarThermalSystem/SolarCollector.mo index db6d847b..2c79e45d 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarCollector.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarCollector.mo @@ -1,5 +1,5 @@ within BESMod.Examples.SolarThermalSystem; -record SolarCollector "For BA" +record SolarCollector "Custom values used for example" extends Systems.Hydraulical.Generation.RecordsCollection.SolarThermal.Generic( GMax=1000, @@ -7,4 +7,9 @@ record SolarCollector "For BA" spacing(displayUnit="mm") = 0.02, dPipe(displayUnit="mm") = 0.012); + annotation (Documentation(info=" +

Information

+

Solar collector parameter record for a example system

+ +")); end SolarCollector; diff --git a/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo b/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo index abc4679c..ec772128 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo @@ -35,5 +35,25 @@ model SolarThermalAixLib "Solar thermal collector from AixLib" Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/SolarThermalSystem/SolarThermalAixLib.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

Model of a solar thermal system coupled with a heat pump system using components from the AixLib library. +The model uses a modular reversible heat pump with vapor injection and phase separation using propane as refrigerant. +The solar thermal collector parameters can be adjusted through the parameterStudy record.

+ +

Important Parameters

+
    +
  • A: Collector area [m²]
  • +
  • eta_zero: Zero-loss efficiency [-]
  • +
  • c1: First order heat loss coefficient [W/(m²K)]
  • +
  • c2: Second order heat loss coefficient [W/(m²K²)]
  • +
+ +

Model Dependencies

+")); end SolarThermalAixLib; diff --git a/BESMod/Examples/SolarThermalSystem/SolarThermalBuildings.mo b/BESMod/Examples/SolarThermalSystem/SolarThermalBuildings.mo index 0138c1c1..5c3b9fa3 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarThermalBuildings.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarThermalBuildings.mo @@ -38,5 +38,29 @@ model SolarThermalBuildings Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/SolarThermalSystem/SolarThermalBuildings.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

Model of a heat pump system (HPS) supported by a solar thermal collector. +This model extends a partial model for solar thermal heat pump systems and +uses a detailed solar thermal system with heat pump for the hydraulic generation subsystem. +

+ +

Important Parameters

+
    +
  • Solar collector parameters (configurable via parameterStudy record): +
      +
    • A - Collector area
    • +
    • eta_zero - Peak collector efficiency
    • +
    • c1 - Linear heat loss coefficient
    • +
    • c2 - Quadratic heat loss coefficient
    • +
    +
  • +
+ +

Uses components from:

+ +")); end SolarThermalBuildings; diff --git a/BESMod/Examples/SolarThermalSystem/SolarThermalDesignOptimization.mo b/BESMod/Examples/SolarThermalSystem/SolarThermalDesignOptimization.mo index 621c08ea..e0943b89 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarThermalDesignOptimization.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarThermalDesignOptimization.mo @@ -10,4 +10,8 @@ record SolarThermalDesignOptimization parameter Real c1=2 "Loss coefficient c1"; parameter Real c2=0.005 "Loss coefficient c2"; annotation(Evaluate=false); + annotation (Documentation(info=" +

Information

+

Record that defines parameters for optimization of a solar thermal system design.

+")); end SolarThermalDesignOptimization; diff --git a/BESMod/Examples/SolarThermalSystem/SolarThermalSystemParameters.mo b/BESMod/Examples/SolarThermalSystem/SolarThermalSystemParameters.mo index 7e9a6717..6dbcc253 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarThermalSystemParameters.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarThermalSystemParameters.mo @@ -2,4 +2,7 @@ within BESMod.Examples.SolarThermalSystem; record SolarThermalSystemParameters extends BESMod.Examples.DesignOptimization.AachenSystem; + annotation (Documentation(info=" +

Information

+

Duplicate of BESMod.Examples.DesignOptimization.AachenSystem to define parameters for a solar thermal system.

")); end SolarThermalSystemParameters; diff --git a/BESMod/Examples/TEASERHeatLoadCalculation/Example.mo b/BESMod/Examples/TEASERHeatLoadCalculation/Example.mo index 758fb9d6..ab9545db 100644 --- a/BESMod/Examples/TEASERHeatLoadCalculation/Example.mo +++ b/BESMod/Examples/TEASERHeatLoadCalculation/Example.mo @@ -11,5 +11,16 @@ model Example "Simple example" Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/TEASERHeatLoadCalculation/Example.mos" - "Simulate and plot")); + "Simulate and plot"), Documentation(info=" +

Information

+

Simple example model for the heat load calculation. +Extends from BESMod.Examples.TEASERHeatLoadCalculation.PartialCalculation +and uses a single dwelling building model that represents a retrofitted 1983 building.

+ +

Important Parameters

+
    +
  • dTSetBack = 3 K (Night setback temperature difference)
  • +
  • energyDynamics = FixedInitial (Fixed initialization for energy balance)
  • +
+")); end Example; diff --git a/BESMod/Examples/TEASERHeatLoadCalculation/PartialCalculation.mo b/BESMod/Examples/TEASERHeatLoadCalculation/PartialCalculation.mo index dee81429..ddf5630a 100644 --- a/BESMod/Examples/TEASERHeatLoadCalculation/PartialCalculation.mo +++ b/BESMod/Examples/TEASERHeatLoadCalculation/PartialCalculation.mo @@ -31,4 +31,26 @@ model PartialCalculation "Partial model with common interfaces" redeclare BESMod.Systems.RecordsCollection.ParameterStudy.NoStudy parameterStudy); + annotation (Documentation(info=" +

Information

+

Partial model with common interfaces to enable heat load calculation for TEASER examples. +This model extends the PartialBuildingEnergySystem with standard components for simple heat load simulation scenarios.

+ +

Important Parameters

+
    +
  • QBui_flow_nominal: Nominal heat flow rate of the building (automatically set from building model)
  • +
  • use_hydraulic: Set to false (no hydraulic system used)
  • +
  • use_ventilation: Set to false (no ventilation system used)
  • +
+ +

Components

+
    +
  • Building: TEASERThermalZone
  • +
  • User Profiles: TEASERProfiles
  • +
  • Control: NoControl
  • +
  • Electrical System: Ideal heater configuration with direct grid connection
  • +
  • DHW: Standard profiles without actual DHW demand
  • +
  • Hydraulic/Ventilation: Disabled placeholder components
  • +
+")); end PartialCalculation; diff --git a/BESMod/Systems/BaseClasses/PartialBESExample.mo b/BESMod/Systems/BaseClasses/PartialBESExample.mo index a783bbdb..a10f07fa 100644 --- a/BESMod/Systems/BaseClasses/PartialBESExample.mo +++ b/BESMod/Systems/BaseClasses/PartialBESExample.mo @@ -6,4 +6,7 @@ partial model PartialBESExample "Partial example model" annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)),experiment(StopTime=86400, __Dymola_Algorithm="Dassl")); + annotation (Documentation(info=" +

Partial model serving as a base class for building energy system examples. +Contains basic system parameters that are relevant for all building energy systems.

")); end PartialBESExample; From 145f678b93f4c19c92179ef3c01502a902e1d8dd Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 19 Nov 2024 17:21:10 +0100 Subject: [PATCH 05/23] add tutorial and usersGuide --- BESMod/Tutorial/BaseClasses/PartialModule.mo | 21 +++++++++++++++- BESMod/Tutorial/BaseClasses/PartialSystem.mo | 24 ++++++++++++++++++- BESMod/Tutorial/MyOwnModule.mo | 18 ++++++++++++++ BESMod/Tutorial/MyOwnSystem.mo | 13 ++++++++++ BESMod/Tutorial/RecordsCollection.mo | 17 +++++++++++++ .../UsersGuide/ContrainingClauseTutorial.mo | 16 ++++++++++++- 6 files changed, 106 insertions(+), 3 deletions(-) diff --git a/BESMod/Tutorial/BaseClasses/PartialModule.mo b/BESMod/Tutorial/BaseClasses/PartialModule.mo index 7cc11821..37e97f78 100644 --- a/BESMod/Tutorial/BaseClasses/PartialModule.mo +++ b/BESMod/Tutorial/BaseClasses/PartialModule.mo @@ -18,5 +18,24 @@ partial model PartialModule "The partial base-class" extent={{-60,52},{64,-30}}, textColor={28,108,200}, textString="%name%")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This is a partial base class for modules. It defines common parameters and a real output signal.

+ +

Important Parameters

+
    +
  • yMax: A top-down parameter that sets the maximum value for output y
  • +
  • timePeriod: A bottom-up parameter that specifies the estimated period time
  • +
+ +

Connectors

+ + +

Annotation Features

+
    +
  • Parameters are organized in dialog groups \"Top-Down\" and \"Bottom-Up\"
  • +
  • Icon shows a white rectangle with blue border and model name in center
  • +
+")); end PartialModule; diff --git a/BESMod/Tutorial/BaseClasses/PartialSystem.mo b/BESMod/Tutorial/BaseClasses/PartialSystem.mo index 8fc38092..1fd34914 100644 --- a/BESMod/Tutorial/BaseClasses/PartialSystem.mo +++ b/BESMod/Tutorial/BaseClasses/PartialSystem.mo @@ -22,5 +22,27 @@ equation connect(moduleWrong.y, yWrong) annotation (Line(points={{21.9,-60},{110,-60}}, color={0,0,127})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+This model demonstrates the correct and wrong way of handling top-down parameter propagation in Modelica. +It contains two instances of a replaceable partial module: +

+
    +
  • module: Shows the correct way of parameter propagation by placing the parameter redeclaration after constrainedby
  • +
  • moduleWrong: Shows the wrong way by placing the parameter redeclaration before constrainedby
  • +
+ +

Both modules are constrained by BESMod.Tutorial.BaseClasses.PartialModule.

+ +

Important Parameters

+
    +
  • yMax: Maximum value for y, used as top-down parameter
  • +
+ +

Connections

+
    +
  • Module outputs y and yWrong are connected to system outputs
  • +
+")); end PartialSystem; diff --git a/BESMod/Tutorial/MyOwnModule.mo b/BESMod/Tutorial/MyOwnModule.mo index f49d92ab..dd197c89 100644 --- a/BESMod/Tutorial/MyOwnModule.mo +++ b/BESMod/Tutorial/MyOwnModule.mo @@ -35,4 +35,22 @@ equation -16},{4,-16}}, color={0,0,127})); connect(realPassThrough.y, y) annotation (Line(points={{27,-16},{42,-16},{42,0}, {110,0}}, color={0,0,127})); + annotation (Documentation(info=" +

Information

+

This module extends BESMod.Tutorial.BaseClasses.PartialModule and generates a sine signal with an optional limiter.

+ +

Important Parameters

+
    +
  • use_lim: Boolean parameter to enable/disable the limiter
  • +
  • myComponentParameters: Record of type BESMod.Tutorial.RecordsCollection.MyComponentBaseDataDefinition containing: +
      +
    • amplitude: Amplitude of sine wave (constrained to yMax)
    • +
    • f: Frequency of sine wave
    • +
    • phase: Phase shift of sine wave
    • +
    • offset: Vertical offset of sine wave
    • +
    • startTime: Start time of sine wave
    • +
    +
  • +
+")); end MyOwnModule; diff --git a/BESMod/Tutorial/MyOwnSystem.mo b/BESMod/Tutorial/MyOwnSystem.mo index cacce2dc..547e30c7 100644 --- a/BESMod/Tutorial/MyOwnSystem.mo +++ b/BESMod/Tutorial/MyOwnSystem.mo @@ -11,4 +11,17 @@ model MyOwnSystem redeclare BESMod.Tutorial.RecordsCollection.DefaultSineWave myComponentParameters)); extends Modelica.Icons.Example; annotation (experiment(StopTime=10, __Dymola_Algorithm="Dassl")); + annotation (Documentation(info=" +

+This model extends BESMod.Tutorial.BaseClasses.PartialSystem +and consists of two instances of BESMod.Tutorial.MyOwnModule. +The model uses DefaultSineWave parameters for both module instances. +It serves as an example model. +

+ +

Important Parameters

+
    +
  • yMax: Upper limit value set to 5 for the system and moduleWrong instance
  • +
  • use_lim: Limitation is enabled for both module instances
  • +
")); end MyOwnSystem; diff --git a/BESMod/Tutorial/RecordsCollection.mo b/BESMod/Tutorial/RecordsCollection.mo index 751e4c5d..0aebdadf 100644 --- a/BESMod/Tutorial/RecordsCollection.mo +++ b/BESMod/Tutorial/RecordsCollection.mo @@ -29,4 +29,21 @@ package RecordsCollection phase=1.5707963267949, f=1); end PhaseShift90; + annotation (Documentation(info=" +

Information

+

+This package contains record definitions for sine wave parameterization used in the +BESMod.Tutorial package. +

+ +

+The base record MyComponentBaseDataDefinition defines the fundamental parameters needed +to describe a sine wave signal. Two predefined parameter sets are available: +

+ +
    +
  • DefaultSineWave: Standard 1 Hz sine wave without phase shift or offset
  • +
  • PhaseShift90: 1 Hz sine wave with 90� phase shift
  • +
+")); end RecordsCollection; diff --git a/BESMod/UsersGuide/ContrainingClauseTutorial.mo b/BESMod/UsersGuide/ContrainingClauseTutorial.mo index 40d60ddc..57330598 100644 --- a/BESMod/UsersGuide/ContrainingClauseTutorial.mo +++ b/BESMod/UsersGuide/ContrainingClauseTutorial.mo @@ -18,5 +18,19 @@ package ContrainingClauseTutorial end MyOwnModule; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+This package demonstrates the contraining clause methodology in Modelica. The methodology consists of two parts: +

+
    +
  • A partial model defining parameters with either top-down or bottom-up characteristics
  • +
  • An inheriting model that extends the partial model and sets bottom-up parameters
  • +
+ +

Important Parameters

+
    +
  • topDownParameter: Parameter intended to be set from top level (Dialog group: Top-Down)
  • +
  • bottomUpParameter: Parameter intended to be set from bottom level, pre-set to 5 in MyOwnModule (Dialog group: Bottom-Up)
  • +
")); end ContrainingClauseTutorial; From 1f390e745be419a1cc9d11cdc2710a4cd15fce51 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 19 Nov 2024 17:34:05 +0100 Subject: [PATCH 06/23] add utilities doc --- .../Utilities/Electrical/ConverterExample.mo | 13 ++++++- BESMod/Utilities/Electrical/ElecConToReal.mo | 7 ++++ BESMod/Utilities/Electrical/MultiSumElec.mo | 8 +++- BESMod/Utilities/Electrical/RealToElecCon.mo | 13 ++++++- BESMod/Utilities/Electrical/ZeroLoad.mo | 4 +- BESMod/Utilities/Icons/BuildingIcon.mo | 4 +- BESMod/Utilities/Icons/ControlIcon.mo | 6 ++- BESMod/Utilities/Icons/DistributionIcon.mo | 4 +- BESMod/Utilities/Icons/StorageIcon.mo | 8 +++- BESMod/Utilities/Icons/TransferIcon.mo | 5 ++- BESMod/Utilities/Icons/VentilationIcon.mo | 20 ++++++++++ .../Utilities/KPIs/BaseClasses/KPIDevice.mo | 12 ++++++ .../Utilities/KPIs/BaseClasses/KPIIntegral.mo | 11 ++++++ .../KPIs/BaseClasses/ZoneEnergyBalanceBus.mo | 3 ++ BESMod/Utilities/KPIs/ZoneEnergyBalance.mo | 37 ++++++++++++++++++- .../SupervisoryControl/SupervisoryControl.mo | 9 ++++- .../SupervisoryControlExample.mo | 20 +++++++++- .../Types/SupervisoryControlType.mo | 14 +++++++ 18 files changed, 186 insertions(+), 12 deletions(-) diff --git a/BESMod/Utilities/Electrical/ConverterExample.mo b/BESMod/Utilities/Electrical/ConverterExample.mo index 729ebf2b..db981305 100644 --- a/BESMod/Utilities/Electrical/ConverterExample.mo +++ b/BESMod/Utilities/Electrical/ConverterExample.mo @@ -66,5 +66,16 @@ equation annotation (Line(points={{-79,-70},{-22,-70}}, color={0,0,127})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+This model demonstrates different configurations of electrical power conversion from real signals to electrical connectors. It shows four different use cases: +

+ +")); end ConverterExample; diff --git a/BESMod/Utilities/Electrical/ElecConToReal.mo b/BESMod/Utilities/Electrical/ElecConToReal.mo index 8b4fad40..d968c0f4 100644 --- a/BESMod/Utilities/Electrical/ElecConToReal.mo +++ b/BESMod/Utilities/Electrical/ElecConToReal.mo @@ -25,4 +25,11 @@ equation lineColor={0,0,0}, textString="%name")}), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Information

+

+ Model for transferring electrical power values from an electrical connector interface to Real output signals. + The model provides separate outputs for electrical load (PElecLoa) and generation (PElecGen). +

+")); end ElecConToReal; diff --git a/BESMod/Utilities/Electrical/MultiSumElec.mo b/BESMod/Utilities/Electrical/MultiSumElec.mo index b69956e6..dbf4bf01 100644 --- a/BESMod/Utilities/Electrical/MultiSumElec.mo +++ b/BESMod/Utilities/Electrical/MultiSumElec.mo @@ -25,5 +25,11 @@ equation extent={{-100,-100},{98,-160}}, lineColor={0,0,0}, textString="%name")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+Model that sums up multiple electrical input power values (generation and load) into a single output. +The number of inputs can be defined via the nPorts parameter. +

+")); end MultiSumElec; diff --git a/BESMod/Utilities/Electrical/RealToElecCon.mo b/BESMod/Utilities/Electrical/RealToElecCon.mo index 48e3fca1..a9920751 100644 --- a/BESMod/Utilities/Electrical/RealToElecCon.mo +++ b/BESMod/Utilities/Electrical/RealToElecCon.mo @@ -55,5 +55,16 @@ equation extent={{-98,-100},{100,-160}}, lineColor={0,0,0}, textString="%name")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

Model for transferring real power inputs to the electrical connectors. +The model provides an interface between real-valued electrical power signals and an +internal electrical connector system.

+ +

Important Parameters

+
    +
  • use_souLoa (default=true): Activates the real interface for electrical loads
  • +
  • use_souGen (default=true): Activates the real interface for electrical generation
  • +
+")); end RealToElecCon; diff --git a/BESMod/Utilities/Electrical/ZeroLoad.mo b/BESMod/Utilities/Electrical/ZeroLoad.mo index be79f132..514fb97b 100644 --- a/BESMod/Utilities/Electrical/ZeroLoad.mo +++ b/BESMod/Utilities/Electrical/ZeroLoad.mo @@ -15,5 +15,7 @@ equation extent={{-92,-52},{92,60}}, lineColor={0,0,0}, textString="0 W")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Zero Load model that can be used if an electrical system is disabled. Sets both load and generation power to 0 W.

+")); end ZeroLoad; diff --git a/BESMod/Utilities/Icons/BuildingIcon.mo b/BESMod/Utilities/Icons/BuildingIcon.mo index 42ee92d4..3b06b019 100644 --- a/BESMod/Utilities/Icons/BuildingIcon.mo +++ b/BESMod/Utilities/Icons/BuildingIcon.mo @@ -23,5 +23,7 @@ partial model BuildingIcon lineColor={0,0,0}, textString="%name%")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +This is a partial model that defines an icon for building-related models in Modelica. +")); end BuildingIcon; diff --git a/BESMod/Utilities/Icons/ControlIcon.mo b/BESMod/Utilities/Icons/ControlIcon.mo index 4f72e151..13ca30fd 100644 --- a/BESMod/Utilities/Icons/ControlIcon.mo +++ b/BESMod/Utilities/Icons/ControlIcon.mo @@ -47,5 +47,9 @@ partial model ControlIcon extent={{-100,-74},{104,-170}}, lineColor={0,0,0}, textString="%name%")}),Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+A partial model defining an icon for control blocks. +

+")); end ControlIcon; diff --git a/BESMod/Utilities/Icons/DistributionIcon.mo b/BESMod/Utilities/Icons/DistributionIcon.mo index f21212f5..17e8a970 100644 --- a/BESMod/Utilities/Icons/DistributionIcon.mo +++ b/BESMod/Utilities/Icons/DistributionIcon.mo @@ -53,5 +53,7 @@ partial model DistributionIcon fillColor={238,46,47}, fillPattern=FillPattern.Solid)}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +This is a partial model that defines the graphical icon for distribution systems in the BESMod library. +")); end DistributionIcon; diff --git a/BESMod/Utilities/Icons/StorageIcon.mo b/BESMod/Utilities/Icons/StorageIcon.mo index 04f6d8dc..f6097629 100644 --- a/BESMod/Utilities/Icons/StorageIcon.mo +++ b/BESMod/Utilities/Icons/StorageIcon.mo @@ -39,5 +39,11 @@ partial model StorageIcon extent={{-100,-72},{104,-168}}, lineColor={0,0,0}, textString="%name%")}),Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" + + +

+ A partial model defining a visual icon for storage components. +

+")); end StorageIcon; diff --git a/BESMod/Utilities/Icons/TransferIcon.mo b/BESMod/Utilities/Icons/TransferIcon.mo index f3494801..7b48bb9e 100644 --- a/BESMod/Utilities/Icons/TransferIcon.mo +++ b/BESMod/Utilities/Icons/TransferIcon.mo @@ -52,5 +52,8 @@ partial model TransferIcon extent={{-100,-76},{104,-172}}, lineColor={0,0,0}, textString="%name%")}),Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +A partial model defining an icon for heat transfer components. + +")); end TransferIcon; diff --git a/BESMod/Utilities/Icons/VentilationIcon.mo b/BESMod/Utilities/Icons/VentilationIcon.mo index 2217f4fc..eb41f86a 100644 --- a/BESMod/Utilities/Icons/VentilationIcon.mo +++ b/BESMod/Utilities/Icons/VentilationIcon.mo @@ -39,4 +39,24 @@ partial model VentilationIcon lineColor={0,0,0}, textString="%name%")}),Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" + + +

Information

+

+This icon shows a stylized ventilation fan symbol with three blades arranged radially around a central hub. It is used as a partial model to provide a consistent visual representation for ventilation-related components in the BESMod library. +

+ +

Important Parameters

+

The icon contains the following graphical elements:

+
    +
  • Circular white background with black outline
  • +
  • Central black hub
  • +
  • Three black fan blades at 120° angles
  • +
  • Component name displayed below the icon
  • +
+ + + +")); end VentilationIcon; diff --git a/BESMod/Utilities/KPIs/BaseClasses/KPIDevice.mo b/BESMod/Utilities/KPIs/BaseClasses/KPIDevice.mo index a0470052..8a1eda52 100644 --- a/BESMod/Utilities/KPIs/BaseClasses/KPIDevice.mo +++ b/BESMod/Utilities/KPIs/BaseClasses/KPIDevice.mo @@ -13,4 +13,16 @@ expandable connector KPIDevice "Connector for KPIs of number of switches" final unit="s", final displayUnit="h") "Total time the device is on"; + annotation (Documentation(info=" +

Expandable connector for device key performance indicators (KPIs) +focusing on switching behavior and operation times. +The connector inherits base definitions from BESMod.Utilities.KPIs.BaseClasses.PartialKPIConnector.

+ +

KPIs

+
    +
  • numSwi: Integer value counting the number of device switches
  • +
  • sinOnTim: Duration the device operates in a single on-cycle (unit: s, display unit: h)
  • +
  • totOnTim: Accumulated time the device has been operating (unit: s, display unit: h)
  • +
+")); end KPIDevice; diff --git a/BESMod/Utilities/KPIs/BaseClasses/KPIIntegral.mo b/BESMod/Utilities/KPIs/BaseClasses/KPIIntegral.mo index 69339b31..13f8a044 100644 --- a/BESMod/Utilities/KPIs/BaseClasses/KPIIntegral.mo +++ b/BESMod/Utilities/KPIs/BaseClasses/KPIIntegral.mo @@ -8,4 +8,15 @@ expandable connector KPIIntegral "Connector for KPIs" Real integral "Integral of value"; + annotation (Documentation(info=" +

Expandable connector for Key Performance Indicators (KPIs) that provides both current values and +their integral over time. +

+ +

KPIs

+
    +
  • value: Current value of the KPI
  • +
  • integral: Time integral of the KPI value
  • +
+")); end KPIIntegral; diff --git a/BESMod/Utilities/KPIs/BaseClasses/ZoneEnergyBalanceBus.mo b/BESMod/Utilities/KPIs/BaseClasses/ZoneEnergyBalanceBus.mo index f71fa2d1..c651aaf4 100644 --- a/BESMod/Utilities/KPIs/BaseClasses/ZoneEnergyBalanceBus.mo +++ b/BESMod/Utilities/KPIs/BaseClasses/ZoneEnergyBalanceBus.mo @@ -2,4 +2,7 @@ within BESMod.Utilities.KPIs.BaseClasses; expandable connector ZoneEnergyBalanceBus "Bus for energy balance of thermal zone" extends Icons.OutputsBus; + annotation (Documentation(info=" +

Expandable connector that defines a bus for thermal zone energy balance calculations.

+")); end ZoneEnergyBalanceBus; diff --git a/BESMod/Utilities/KPIs/ZoneEnergyBalance.mo b/BESMod/Utilities/KPIs/ZoneEnergyBalance.mo index 832486e8..9bc201d1 100644 --- a/BESMod/Utilities/KPIs/ZoneEnergyBalance.mo +++ b/BESMod/Utilities/KPIs/ZoneEnergyBalance.mo @@ -219,5 +219,40 @@ equation extent={{-104,182},{100,86}}, lineColor={0,0,0}, textString="%name%")}), Diagram(coordinateSystem(preserveAspectRatio=false, extent={ - {-100,-200},{100,200}}))); + {-100,-200},{100,200}})), Documentation(info=" +

Model for calculating energy key performance indicators (KPIs) for a single thermal zone. +The model splits energy flows through different building components (walls, roof, floor, windows) and +systems (ventilation, heating/cooling) into gains and losses. +It also accounts for internal gains from lights, people, machines and solar radiation. +

+ +

Structure

+

The model contains several instances of BESMod.Utilities.KPIs.BaseClasses.SplitGainAndLoss +for splitting energy flows into gains and losses for:

+
    +
  • External walls
  • +
  • Roof
  • +
  • Floor
  • +
  • Windows
  • +
  • Air exchange
  • +
  • Transfer systems (heating/cooling)
  • +
  • Ventilation system (optional)
  • +
+ +

Internal gains are calculated using BESMod.Utilities.KPIs.EnergyKPICalculator for:

+
    +
  • Lighting
  • +
  • People
  • +
  • Machines
  • +
  • Solar gains
  • +
+ +

Important Parameters

+
    +
  • with_ventilation (boolean): Enable/disable ventilation system calculations. Default: true
  • +
+ +

Interfaces

+

The model has Real inputs for heat flows through all components (in W) and outputs the calculated KPIs through a zoneEneBal bus connector of type ZoneEnergyBalanceBus.

+")); end ZoneEnergyBalance; diff --git a/BESMod/Utilities/SupervisoryControl/SupervisoryControl.mo b/BESMod/Utilities/SupervisoryControl/SupervisoryControl.mo index 6f38f385..d5bca51a 100644 --- a/BESMod/Utilities/SupervisoryControl/SupervisoryControl.mo +++ b/BESMod/Utilities/SupervisoryControl/SupervisoryControl.mo @@ -76,5 +76,12 @@ equation extent={{2,-8},{18,8}}), Line(points={{-100,-80},{-40,-80},{-40,-80}}, color={0,0,127})}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Model for supervisory control implementation with three different modes:

+
    +
  • Internal: Uses internal supervisory control signal when activated
  • +
  • External: Uses external supervisory control signal
  • +
  • Local: Only uses local control signal
  • +
+")); end SupervisoryControl; diff --git a/BESMod/Utilities/SupervisoryControl/SupervisoryControlExample.mo b/BESMod/Utilities/SupervisoryControl/SupervisoryControlExample.mo index 62feebb6..fef103de 100644 --- a/BESMod/Utilities/SupervisoryControl/SupervisoryControlExample.mo +++ b/BESMod/Utilities/SupervisoryControl/SupervisoryControlExample.mo @@ -31,5 +31,23 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=10, __Dymola_Algorithm="Dassl")); + experiment(StopTime=10, __Dymola_Algorithm="Dassl"), Documentation(info=" +

Example model demonstrating different types of supervisory control implementations. +The model includes three instances of supervisory control: +

+
    +
  • Local control (locCtrl): Basic control without supervisory intervention
  • +
  • Internal control (intCtrl): Control with internally implemented supervisory logic
  • +
  • External control (extCtrl): Control with externally provided supervisory signals
  • +
+ +

Each controller receives a local control signal from a pulse source. +The internal and external controllers additionally receive supervisory control +signals that can override the local control when activated.

+ +

See also

+

+BESMod.Utilities.SupervisoryControl.SupervisoryControl +

+")); end SupervisoryControlExample; diff --git a/BESMod/Utilities/SupervisoryControl/Types/SupervisoryControlType.mo b/BESMod/Utilities/SupervisoryControl/Types/SupervisoryControlType.mo index af1b6538..79f4206d 100644 --- a/BESMod/Utilities/SupervisoryControl/Types/SupervisoryControlType.mo +++ b/BESMod/Utilities/SupervisoryControl/Types/SupervisoryControlType.mo @@ -1,6 +1,20 @@ + within BESMod.Utilities.SupervisoryControl.Types; type SupervisoryControlType = enumeration( Local "Local control only", Internal "Modelica internal supervisory control", External "External supervisory control (e.g. FMU, python)") "Enum for supervisory control type"; + annotation (Documentation(info=" +

Enumeration type that defines the supervisory control strategy for BES models:

+
    +
  • Local: Uses only local signal
  • +
  • Internal: Implements supervisory control using internal Modelica logic
  • +
  • External: Enables supervisory control via external tools (e.g. FMUs, Python scripts)
  • +
+ +

Related Models

+ +")); \ No newline at end of file From d5edbfe92e3392f1595260a210c74fae7256977f Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Tue, 19 Nov 2024 17:57:18 +0100 Subject: [PATCH 07/23] add utils and ventilation --- .../BaseClasses/PartialFluidSubsystem.mo | 13 ++++++ .../PartialFluidSubsystemWithParameters.mo | 7 +++ .../BaseClasses/PartialSubsystemParameters.mo | 31 +++++++++++++ .../Control/BaseClasses/PartialControl.mo | 19 +++++++- .../Movers/AutomaticConfigurationData.mo | 15 +++++++ .../RecordsCollection/Movers/DefaultMover.mo | 11 +++++ .../Movers/MoverBaseDataDefinition.mo | 6 ++- .../ParameterStudy/NoStudy.mo | 5 +++ .../SubsystemControlBaseDataDefinition.mo | 3 ++ .../SupplySystemBaseDataDefinition.mo | 6 +++ .../SystemParametersBaseDataDefinition.mo | 45 +++++++++++++++++++ .../TemperatureSensors/DefaultSensor.mo | 14 ++++++ .../TemperatureSensorBaseDefinition.mo | 5 +++ .../Valves/DefaultThreeWayValve.mo | 14 ++++++ .../UserProfiles/AixLibHighOrderProfiles.mo | 17 +++++++ .../BaseClasses/PartialUserProfiles.mo | 13 ++++++ .../Systems/UserProfiles/Case600Profiles.mo | 17 +++++++ BESMod/Systems/UserProfiles/TEASERProfiles.mo | 25 +++++++++++ .../UserProfiles/Tests/Case600Profiles.mo | 3 ++ .../Systems/UserProfiles/Tests/HOMUserTest.mo | 4 ++ .../Systems/UserProfiles/Tests/PartialTest.mo | 10 +++++ .../UserProfiles/Tests/TEASERProfileTest.mo | 6 +++ .../BaseClasses/PartialVentilationSystem.mo | 25 +++++++++++ .../Control/BaseClasses/PartialControl.mo | 10 ++++- .../Control/Components/SummerByPass.mo | 23 ++++++++++ .../Ventilation/Control/SummerPIDByPass.mo | 8 ++++ .../BaseClasses/PartialDistribution.mo | 6 ++- .../Distribution/SimpleDistribution.mo | 14 ++++++ .../BaseClasses/PartialGeneration.mo | 6 ++- .../ControlledDomesticVentilation.mo | 22 +++++++++ .../DummyHeatExchangerRecovery.mo | 8 ++++ .../PartialHeatExchangerRecovery.mo | 9 ++++ .../Tests/ControlledDomesticVentilation.mo | 20 +++++++++ .../Generation/Tests/PartialTest.mo | 24 ++++++++++ .../Systems/Ventilation/VentilationSystem.mo | 5 +++ 35 files changed, 464 insertions(+), 5 deletions(-) diff --git a/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo b/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo index 1747ce10..e3298c81 100644 --- a/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo +++ b/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo @@ -26,4 +26,17 @@ protected annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" + +

This is a partial base class for fluid-based subsystems that extends the IBPSA fluid core components through IBPSA.Fluid.Interfaces.LumpedVolumeDeclarations.

+ +

Important Parameters

+
    +
  • use_openModelica: Parameter to disable features not available in OpenModelica
  • +
  • allowFlowReversal: If false, equations are simplified by assuming (but not enforcing) no flow reversal
  • +
  • show_T: Enable computation of actual port temperatures
  • +
  • rho: Density of the heat distribution system fluid [kg/m³]
  • +
  • cp: Specific heat capacity of the heat distribution system fluid [J/(kg.K)]
  • +
+")); end PartialFluidSubsystem; diff --git a/BESMod/Systems/BaseClasses/PartialFluidSubsystemWithParameters.mo b/BESMod/Systems/BaseClasses/PartialFluidSubsystemWithParameters.mo index f461fc0a..da51b3c2 100644 --- a/BESMod/Systems/BaseClasses/PartialFluidSubsystemWithParameters.mo +++ b/BESMod/Systems/BaseClasses/PartialFluidSubsystemWithParameters.mo @@ -2,4 +2,11 @@ within BESMod.Systems.BaseClasses; model PartialFluidSubsystemWithParameters extends PartialFluidSubsystem; extends PartialSubsystemParameters; + annotation (Documentation(info=" +

Base class that combines fluid system properties and subsystem parameters of +BESMod.Systems.BaseClasses.PartialFluidSubsystem +and +BESMod.Systems.BaseClasses.PartialSubsystemParameters. +

+")); end PartialFluidSubsystemWithParameters; diff --git a/BESMod/Systems/BaseClasses/PartialSubsystemParameters.mo b/BESMod/Systems/BaseClasses/PartialSubsystemParameters.mo index 267fcf5a..28b84bba 100644 --- a/BESMod/Systems/BaseClasses/PartialSubsystemParameters.mo +++ b/BESMod/Systems/BaseClasses/PartialSubsystemParameters.mo @@ -80,4 +80,35 @@ model PartialSubsystemParameters "Model for a partial subsystem" annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Base model for subsystem parameters in building energy systems. +Contains parameters for mass flows, temperatures, heat flows and other physical quantities +needed to define both supply and demand sides of the subsystem.

+ +

Important Parameters

+
    +
  • Supply side parameters: +
      +
    • nParallelSup: Number of parallel supply systems
    • +
    • TSup_nominal: Nominal supply temperatures
    • +
    +
  • +
  • Demand side parameters: +
      +
    • nParallelDem: Number of parallel demand systems
    • +
    • m_flow_nominal: Nominal mass flow rates
    • +
    • Q_flow_nominal: Nominal heat flow rates
    • +
    • dTTra_nominal: Nominal temperature differences for heat transfer
    • +
    • dp_nominal: Nominal pressure differences
    • +
    +
  • +
  • Design and loss parameters: +
      +
    • f_design: Oversizing factors, e.g. due to heat losses
    • +
    • QLoss_flow_nominal: Nominal heat losses
    • +
    • dTLoss_nominal: Temperature differences due to heat losses
    • +
    +
  • +
+")); end PartialSubsystemParameters; diff --git a/BESMod/Systems/Control/BaseClasses/PartialControl.mo b/BESMod/Systems/Control/BaseClasses/PartialControl.mo index 22dd5687..ed93b564 100644 --- a/BESMod/Systems/Control/BaseClasses/PartialControl.mo +++ b/BESMod/Systems/Control/BaseClasses/PartialControl.mo @@ -25,5 +25,22 @@ partial model PartialControl "Model for a partial HEMS control" extent={{44,88},{72,114}}))); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+This is a partial model defining a Home Energy Management System (HEMS) control interface. +It serves as a base class for implementing specific control strategies. +

+ +

Connectors

+

+

+

+")); end PartialControl; diff --git a/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo b/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo index a9eb08ae..3d22bbb9 100644 --- a/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo +++ b/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo @@ -13,4 +13,19 @@ record AutomaticConfigurationData parameter Modelica.Units.SI.Density rho "Density of fluid in use"; parameter Real V_flowCurve[:]={0,0.99,1,1.01,1.02} "Relative V_flow curve to be used"; parameter Real dpCurve[:]={1.02,1.01,1,0.99,0} "Relative dp curve to be used"; + annotation (Documentation(info=" +

+This record extends AixLib.Fluid.Movers.Data.Generic +to automatically configure a pump/fan for the BES Library based on nominal operating points. +

+ +

Important Parameters

+
    +
  • m_flow_nominal: Nominal mass flow rate [kg/s]
  • +
  • dp_nominal: Nominal pressure difference [Pa]
  • +
  • rho: Density of fluid in use [kg/m³]
  • +
  • V_flowCurve: Relative volume flow curve points around nominal point [-]
  • +
  • dpCurve: Relative pressure difference curve points around nominal point [-]
  • +
+")); end AutomaticConfigurationData; diff --git a/BESMod/Systems/RecordsCollection/Movers/DefaultMover.mo b/BESMod/Systems/RecordsCollection/Movers/DefaultMover.mo index 0ac88944..6f6d4aea 100644 --- a/BESMod/Systems/RecordsCollection/Movers/DefaultMover.mo +++ b/BESMod/Systems/RecordsCollection/Movers/DefaultMover.mo @@ -5,4 +5,15 @@ record DefaultMover riseTimeInpFilter=30, use_inputFilter=false, addPowerToMedium=false); + annotation (Documentation(info=" +

Default record for mover/pump characteristics in BESMod.

+ +

Important Parameters

+
    +
  • tau: Time constant (1 s) of motor
  • +
  • riseTimeInpFilter: Rise time of the filter (30 s)
  • +
  • use_inputFilter: False - input filter not activated
  • +
  • addPowerToMedium: False - pump power not added to medium
  • +
+")); end DefaultMover; diff --git a/BESMod/Systems/RecordsCollection/Movers/MoverBaseDataDefinition.mo b/BESMod/Systems/RecordsCollection/Movers/MoverBaseDataDefinition.mo index 88555e57..09c78800 100644 --- a/BESMod/Systems/RecordsCollection/Movers/MoverBaseDataDefinition.mo +++ b/BESMod/Systems/RecordsCollection/Movers/MoverBaseDataDefinition.mo @@ -12,5 +12,9 @@ partial record MoverBaseDataDefinition annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+Partial record that specifies base parameters for movers. +

+")); end MoverBaseDataDefinition; diff --git a/BESMod/Systems/RecordsCollection/ParameterStudy/NoStudy.mo b/BESMod/Systems/RecordsCollection/ParameterStudy/NoStudy.mo index da63331f..9cde9c59 100644 --- a/BESMod/Systems/RecordsCollection/ParameterStudy/NoStudy.mo +++ b/BESMod/Systems/RecordsCollection/ParameterStudy/NoStudy.mo @@ -1,4 +1,9 @@ within BESMod.Systems.RecordsCollection.ParameterStudy; record NoStudy "Don't study anything" extends ParameterStudyBaseDefinition; + annotation (Documentation(info=" +

+Model which should be used if no parameter study is needed. +

+")); end NoStudy; diff --git a/BESMod/Systems/RecordsCollection/SubsystemControlBaseDataDefinition.mo b/BESMod/Systems/RecordsCollection/SubsystemControlBaseDataDefinition.mo index 8e592e61..4e1ff2a3 100644 --- a/BESMod/Systems/RecordsCollection/SubsystemControlBaseDataDefinition.mo +++ b/BESMod/Systems/RecordsCollection/SubsystemControlBaseDataDefinition.mo @@ -39,4 +39,7 @@ record SubsystemControlBaseDataDefinition annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Record used to include data of each subsystem into the control of the subsystem.

+")); end SubsystemControlBaseDataDefinition; diff --git a/BESMod/Systems/RecordsCollection/SupplySystemBaseDataDefinition.mo b/BESMod/Systems/RecordsCollection/SupplySystemBaseDataDefinition.mo index e51bdafb..d8e57e40 100644 --- a/BESMod/Systems/RecordsCollection/SupplySystemBaseDataDefinition.mo +++ b/BESMod/Systems/RecordsCollection/SupplySystemBaseDataDefinition.mo @@ -31,4 +31,10 @@ record SupplySystemBaseDataDefinition parameter Modelica.Units.SI.Area ARoo "Roof area of building" annotation (Dialog(group="Geometry")); + annotation (Documentation(info=" +

+Record that defines base geometric and thermodynamic parameters of a supply system and +building. +

+")); end SupplySystemBaseDataDefinition; diff --git a/BESMod/Systems/RecordsCollection/SystemParametersBaseDataDefinition.mo b/BESMod/Systems/RecordsCollection/SystemParametersBaseDataDefinition.mo index 3b9f7b87..2414421c 100644 --- a/BESMod/Systems/RecordsCollection/SystemParametersBaseDataDefinition.mo +++ b/BESMod/Systems/RecordsCollection/SystemParametersBaseDataDefinition.mo @@ -78,4 +78,49 @@ record SystemParametersBaseDataDefinition annotation (defaultComponentName = "baseParameterAssumptions", Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

This record contains the basic parameters used globally in all BESMod systems. +It defines temperature levels, heat demand characteristics, and system configuration parameters +for building energy system simulations.

+ +

Important Parameters

+
Heat Demand
+
    +
  • nZones: Number of building zones (default: 1)
  • +
  • QBui_flow_nominal: Nominal heating load per zone [W]
  • +
+ +
Temperature Levels
+
    +
  • TOda_nominal: Nominal outdoor air temperature [K]
  • +
  • TSetZone_nominal: Nominal zone setpoint temperatures [K]
  • +
  • THydSup_nominal: Nominal hydraulic supply temperatures [K]
  • +
  • TVenSup_nominal: Nominal ventilation supply temperatures [K]
  • +
  • TEleSup_nominal: Nominal electrical heating supply temperatures [K]
  • +
  • TSetDHW: DHW setpoint temperature [K]
  • +
  • TDHWWaterCold: Cold water inlet temperature [K]
  • +
  • TAmbHyd: Ambient temperature for hydraulic system [K]
  • +
  • TAmbVen: Ambient temperature for ventilation system [K]
  • +
  • TAmbEle: Ambient temperature for electrical system [K]
  • +
+ +
System Configuration
+
    +
  • use_hydraulic: Enable/disable hydraulic subsystem
  • +
  • use_ventilation: Enable/disable ventilation subsystem
  • +
  • use_dhw: Enable/disable DHW subsystem
  • +
  • use_elecHeating: Enable/disable electrical heating
  • +
+ +
Retrofit Parameters
+
    +
  • QBuiOld_flow_design: Design heating load before retrofit [W]
  • +
  • THydSupOld_design: Design hydraulic supply temperatures before retrofit [K]
  • +
+ +
Weather Data
+
    +
  • filNamWea: Weather data file name
  • +
+")); end SystemParametersBaseDataDefinition; diff --git a/BESMod/Systems/RecordsCollection/TemperatureSensors/DefaultSensor.mo b/BESMod/Systems/RecordsCollection/TemperatureSensors/DefaultSensor.mo index 5fa53578..f0d4c041 100644 --- a/BESMod/Systems/RecordsCollection/TemperatureSensors/DefaultSensor.mo +++ b/BESMod/Systems/RecordsCollection/TemperatureSensors/DefaultSensor.mo @@ -6,4 +6,18 @@ record DefaultSensor transferHeat=false, initType=Modelica.Blocks.Types.Init.InitialState, tau=1); + annotation (Documentation(info=" +

Information

+

Default temperature sensor record. +

+ +

Important Parameters

+
    +
  • TAmb = 293.15 K: Ambient temperature
  • +
  • tauHeaTra = 1200 s: Time constant for heat transfer
  • +
  • transferHeat = false: Heat transfer disabled
  • +
  • initType = InitialState: Initial state configuration type
  • +
  • tau = 1 s: Time constant of the sensor
  • +
+")); end DefaultSensor; diff --git a/BESMod/Systems/RecordsCollection/TemperatureSensors/TemperatureSensorBaseDefinition.mo b/BESMod/Systems/RecordsCollection/TemperatureSensors/TemperatureSensorBaseDefinition.mo index fcfc388d..9295c590 100644 --- a/BESMod/Systems/RecordsCollection/TemperatureSensors/TemperatureSensorBaseDefinition.mo +++ b/BESMod/Systems/RecordsCollection/TemperatureSensors/TemperatureSensorBaseDefinition.mo @@ -17,4 +17,9 @@ partial record TemperatureSensorBaseDefinition annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

+Base record that defines common parameters for temperature sensors in the BESMod library. +

+")); end TemperatureSensorBaseDefinition; diff --git a/BESMod/Systems/RecordsCollection/Valves/DefaultThreeWayValve.mo b/BESMod/Systems/RecordsCollection/Valves/DefaultThreeWayValve.mo index cb04844f..db3ee119 100644 --- a/BESMod/Systems/RecordsCollection/Valves/DefaultThreeWayValve.mo +++ b/BESMod/Systems/RecordsCollection/Valves/DefaultThreeWayValve.mo @@ -14,4 +14,18 @@ record DefaultThreeWayValve R=50, delta0=0.01, deltaM=0.02); + annotation (Documentation(info=" +

+Default parameter settings for a three-way valve. +This model uses flow characteristics based on valve authority and fixed +parameters for initialization and dynamics. +

+ +

Important Parameters

+
    +
  • valveAutho = 0.5: Valve authority
  • +
+ + +")); end DefaultThreeWayValve; diff --git a/BESMod/Systems/UserProfiles/AixLibHighOrderProfiles.mo b/BESMod/Systems/UserProfiles/AixLibHighOrderProfiles.mo index 1425764c..2b290bcc 100644 --- a/BESMod/Systems/UserProfiles/AixLibHighOrderProfiles.mo +++ b/BESMod/Systems/UserProfiles/AixLibHighOrderProfiles.mo @@ -129,4 +129,21 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

This model provides user profiles for the high order building model in the AixLib. +It implements three types of profiles:

+
    +
  • Internal gains from a text file
  • +
  • Natural ventilation schedule
  • +
  • Temperature setpoints
  • +
+ +

Important Parameters

+ +")); end AixLibHighOrderProfiles; diff --git a/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo b/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo index ce215d2d..8e5a4d4e 100644 --- a/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo +++ b/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo @@ -24,4 +24,17 @@ partial model PartialUserProfiles Diagram(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-120,-120}, {120,120}}))); + annotation (Documentation(info=" +

+Partial model serving as a base class for user profiles. +This model provides basic parameters and interfaces for modeling occupant behavior +and comfort preferences in different thermal zones. +

+ +

Important Parameters

+
    +
  • nZones (Integer): Number of thermal zones to transfer heat to
  • +
  • TSetZone_nominal (Temperature vector): Nominal temperature setpoints for each zone, defaults to 293.15 K (20°C) for all zones
  • +
+")); end PartialUserProfiles; diff --git a/BESMod/Systems/UserProfiles/Case600Profiles.mo b/BESMod/Systems/UserProfiles/Case600Profiles.mo index 01e09ac4..70691a03 100644 --- a/BESMod/Systems/UserProfiles/Case600Profiles.mo +++ b/BESMod/Systems/UserProfiles/Case600Profiles.mo @@ -53,4 +53,21 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

This model implements the user profiles for Case600FF. +<\p> + +

Important Parameters

+
    +
  • Convective heat gains: 80/48 W/m²
  • +
  • Radiative heat gains: 120/48 W/m²
  • +
  • Latent heat gains: 0 W/m²
  • +
  • Shading control: 0 (no shading)
  • +
+ +

References

+
    +
  • ANSI/ASHRAE Standard 140-2017, Standard Method of Test for the Evaluation of Building Energy Analysis Computer Programs
  • +
+")); end Case600Profiles; diff --git a/BESMod/Systems/UserProfiles/TEASERProfiles.mo b/BESMod/Systems/UserProfiles/TEASERProfiles.mo index f677b642..28a370f0 100644 --- a/BESMod/Systems/UserProfiles/TEASERProfiles.mo +++ b/BESMod/Systems/UserProfiles/TEASERProfiles.mo @@ -57,4 +57,29 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

+A user profile model providing internal gains based on TEASER +(Tool for Energy Analysis and Simulation for Efficient Retrofit) and temperature setpoints +with an optional setback period. +

+ +

Important Parameters

+
    +
  • fileNameIntGains: Path to text file containing internal gains profiles
  • +
  • gain[3]: Multiplier for internal gains (can be used to enable/disable individual gains)
  • +
  • dTSetBack: Temperature reduction during setback period [K]
  • +
  • startTimeSetBack: Start time of setback period [s]
  • +
  • hoursSetBack: Duration of setback period [h] (max 24)
  • +
+ +

Outputs

+

+The model provides the following outputs via the useProBus connector: +

+
    +
  • Internal gains profiles (3 components) from TEASER
  • +
  • Zone temperature setpoints including setback
  • +
+")); end TEASERProfiles; diff --git a/BESMod/Systems/UserProfiles/Tests/Case600Profiles.mo b/BESMod/Systems/UserProfiles/Tests/Case600Profiles.mo index 8763ebbc..9da9e754 100644 --- a/BESMod/Systems/UserProfiles/Tests/Case600Profiles.mo +++ b/BESMod/Systems/UserProfiles/Tests/Case600Profiles.mo @@ -3,4 +3,7 @@ model Case600Profiles extends PartialTest(redeclare BESMod.Systems.UserProfiles.Case600Profiles userProfiles); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

Test model for Case 600 user profiles from ASHRAE 140.

+")); end Case600Profiles; diff --git a/BESMod/Systems/UserProfiles/Tests/HOMUserTest.mo b/BESMod/Systems/UserProfiles/Tests/HOMUserTest.mo index 1f2c7fdb..d40f1168 100644 --- a/BESMod/Systems/UserProfiles/Tests/HOMUserTest.mo +++ b/BESMod/Systems/UserProfiles/Tests/HOMUserTest.mo @@ -7,4 +7,8 @@ model HOMUserTest "Test case for the HOM user profiles" TSetProfile)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

Test case for the HOM (Higher Order Model) user profiles, +implementing ventilation and temperature setpoint profiles.

+")); end HOMUserTest; diff --git a/BESMod/Systems/UserProfiles/Tests/PartialTest.mo b/BESMod/Systems/UserProfiles/Tests/PartialTest.mo index 40bb211d..1e3ce748 100644 --- a/BESMod/Systems/UserProfiles/Tests/PartialTest.mo +++ b/BESMod/Systems/UserProfiles/Tests/PartialTest.mo @@ -7,4 +7,14 @@ partial model PartialTest "Partial Test model" StopTime=86400, Interval=1, __Dymola_Algorithm="Dassl")); + annotation (Documentation(info=" +

Partial test model for user profiles in building energy system simulations. +The model contains a replaceable user profile component that must be constrained by +BESMod.Systems.UserProfiles.BaseClasses.PartialUserProfiles. +

+ +

Important Parameters

+
    +
  • userProfiles: Replaceable component for user profiles with choices matching enabled
  • +
")); end PartialTest; diff --git a/BESMod/Systems/UserProfiles/Tests/TEASERProfileTest.mo b/BESMod/Systems/UserProfiles/Tests/TEASERProfileTest.mo index 3b7d7cf4..b4999fe2 100644 --- a/BESMod/Systems/UserProfiles/Tests/TEASERProfileTest.mo +++ b/BESMod/Systems/UserProfiles/Tests/TEASERProfileTest.mo @@ -4,4 +4,10 @@ model TEASERProfileTest userProfiles); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

+Test model for the TEASER user profiles model used in building energy simulation. +Uses BESMod.Systems.UserProfiles.TEASERProfiles model for the user profiles. +

+")); end TEASERProfileTest; diff --git a/BESMod/Systems/Ventilation/BaseClasses/PartialVentilationSystem.mo b/BESMod/Systems/Ventilation/BaseClasses/PartialVentilationSystem.mo index c51eae85..8825028e 100644 --- a/BESMod/Systems/Ventilation/BaseClasses/PartialVentilationSystem.mo +++ b/BESMod/Systems/Ventilation/BaseClasses/PartialVentilationSystem.mo @@ -237,4 +237,29 @@ equation annotation (Icon( graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Information

+

+This is a partial model for ventilation systems in building energy simulation. +It serves as a base class that defines the basic structure and interfaces of a +ventilation system with the following main components: +

+ + +

Important Parameters

+
    +
  • ventilationSystemParameters: Record containing system design parameters like: +
      +
    • Number of zones (nZones)
    • +
    • Nominal temperatures (TOda_nominal, TZone_nominal, TSup_nominal)
    • +
    • Nominal heat flows (Q_flow_nominal)
    • +
    • Ambient temperature (TAmb)
    • +
    +
  • +
+")); end PartialVentilationSystem; diff --git a/BESMod/Systems/Ventilation/Control/BaseClasses/PartialControl.mo b/BESMod/Systems/Ventilation/Control/BaseClasses/PartialControl.mo index 83fcbc3f..28a24743 100644 --- a/BESMod/Systems/Ventilation/Control/BaseClasses/PartialControl.mo +++ b/BESMod/Systems/Ventilation/Control/BaseClasses/PartialControl.mo @@ -38,5 +38,13 @@ partial model PartialControl annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+ This is a partial control model for ventilation systems, +serving as a base class that provides common interfaces and parameters +for ventilation control implementations. +It extends from the control icon model and defines essential bus connectors for +communication between different system components. +

+")); end PartialControl; diff --git a/BESMod/Systems/Ventilation/Control/Components/SummerByPass.mo b/BESMod/Systems/Ventilation/Control/Components/SummerByPass.mo index afd3c993..e8a05f12 100644 --- a/BESMod/Systems/Ventilation/Control/Components/SummerByPass.mo +++ b/BESMod/Systems/Ventilation/Control/Components/SummerByPass.mo @@ -70,4 +70,27 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

+Model for summer bypass control of a ventilation system. +The bypass is activated in summer (between specified start and end days) +when the outdoor temperature is lower than the measured indoor temperature. +The bypass degree is controlled by a PI controller which aims to reach the temperature setpoint. +

+ +

Important Parameters

+
    +
  • day_summer_start: Day when summer period starts (default: May 1st)
  • +
  • day_summer_end: Day when summer period ends (default: September 30th)
  • +
  • k: Controller gain (default: 1)
  • +
  • Ti: Integrator time constant in seconds (default: 120s)
  • +
+ +

Main Components

+
    +
  • PI controller from IBPSA.Controls.Continuous.LimPID
  • +
  • Summer/winter mode switching based on day of year
  • +
  • Temperature comparison between outdoor and indoor air
  • +
+")); end SummerByPass; diff --git a/BESMod/Systems/Ventilation/Control/SummerPIDByPass.mo b/BESMod/Systems/Ventilation/Control/SummerPIDByPass.mo index 5ffb389b..c3dbb8a9 100644 --- a/BESMod/Systems/Ventilation/Control/SummerPIDByPass.mo +++ b/BESMod/Systems/Ventilation/Control/SummerPIDByPass.mo @@ -51,4 +51,12 @@ equation horizontalAlignment=TextAlignment.Right)); connect(minMaxSet.yMin, summerByPass.TZoneSet) annotation (Line(points={{-57,-46}, {-35.2,-46},{-35.2,-4}}, color={0,0,127})); + annotation (Documentation(info=" +

Model for controlling a heat exchanger bypass in summer conditions. +The bypass is controlled based on outdoor temperature and zone temperature +measurements/setpoints. +If enabled, the bypass control is handled by +BESMod.Systems.Ventilation.Control.Components.SummerByPass +component. If disabled, a constant 0 signal is used.

+")); end SummerPIDByPass; diff --git a/BESMod/Systems/Ventilation/Distribution/BaseClasses/PartialDistribution.mo b/BESMod/Systems/Ventilation/Distribution/BaseClasses/PartialDistribution.mo index f0673468..548a01ce 100644 --- a/BESMod/Systems/Ventilation/Distribution/BaseClasses/PartialDistribution.mo +++ b/BESMod/Systems/Ventilation/Distribution/BaseClasses/PartialDistribution.mo @@ -35,5 +35,9 @@ partial model PartialDistribution annotation (Placement(transformation(extent={{60,-108},{80,-88}}))); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+Base distribution model for ventilation systems. +

+")); end PartialDistribution; diff --git a/BESMod/Systems/Ventilation/Distribution/SimpleDistribution.mo b/BESMod/Systems/Ventilation/Distribution/SimpleDistribution.mo index bc85f39d..bcea3cf5 100644 --- a/BESMod/Systems/Ventilation/Distribution/SimpleDistribution.mo +++ b/BESMod/Systems/Ventilation/Distribution/SimpleDistribution.mo @@ -41,4 +41,18 @@ equation points={{40,-90},{56,-90},{56,-84},{70,-84},{70,-98}}, color={0,0,0}, thickness=1)); + annotation (Documentation(info=" +

Information

+

Most basic distribution model for ventilation systems. +This model extends from PartialDistribution +and implements a simple distribution system with fixed pressure drops in supply and exhaust lines.

+ +

Important Parameters

+
    +
  • dp_nominal: Nominal pressure drop (default set to 100 Pa)
  • +
  • f_design: Design factor (set to 1)
  • +
  • nParallelSup: Number of parallel supplies (set to 1)
  • +
  • m_flow_nominal: Nominal mass flow rate
  • +
+")); end SimpleDistribution; diff --git a/BESMod/Systems/Ventilation/Generation/BaseClasses/PartialGeneration.mo b/BESMod/Systems/Ventilation/Generation/BaseClasses/PartialGeneration.mo index b9c6b1ce..68cd9fe2 100644 --- a/BESMod/Systems/Ventilation/Generation/BaseClasses/PartialGeneration.mo +++ b/BESMod/Systems/Ventilation/Generation/BaseClasses/PartialGeneration.mo @@ -30,5 +30,9 @@ partial model PartialGeneration annotation (Placement(transformation(extent={{60,-108},{80,-88}}))); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Base model for all ventilation generation systems. +

+ +")); end PartialGeneration; diff --git a/BESMod/Systems/Ventilation/Generation/ControlledDomesticVentilation.mo b/BESMod/Systems/Ventilation/Generation/ControlledDomesticVentilation.mo index 20480e77..abbe09c7 100644 --- a/BESMod/Systems/Ventilation/Generation/ControlledDomesticVentilation.mo +++ b/BESMod/Systems/Ventilation/Generation/ControlledDomesticVentilation.mo @@ -259,4 +259,26 @@ equation -110},{0,-110}}, color={0,0,127})); connect(add.u1, fanFlow.P) annotation (Line(points={{0,-98},{-20,-98},{-20, -96},{-87,-96},{-87,51}}, color={0,0,127})); + annotation (Documentation(info=" +

Model of a ventilation system with heat recovery using a constant effectiveness heat exchanger. +The system contains supply and extract fans with controllers, and bypass option using three-way valves. +The system is controlled to maintain desired ventilation rates while recovering heat between exhaust and +supply air streams.

+ +

Important Parameters

+
    +
  • parameters: Heat exchanger parameters including pressure drop and effectiveness
  • +
  • fanData: Fan configuration parameters
  • +
  • threeWayValveParas: Parameters for bypass valves
  • +
  • tempSensorData: Temperature sensor configuration
  • +
+ +

Main Components

+ +")); end ControlledDomesticVentilation; diff --git a/BESMod/Systems/Ventilation/Generation/RecordsCollection/DummyHeatExchangerRecovery.mo b/BESMod/Systems/Ventilation/Generation/RecordsCollection/DummyHeatExchangerRecovery.mo index 864990f6..162d8871 100644 --- a/BESMod/Systems/Ventilation/Generation/RecordsCollection/DummyHeatExchangerRecovery.mo +++ b/BESMod/Systems/Ventilation/Generation/RecordsCollection/DummyHeatExchangerRecovery.mo @@ -2,4 +2,12 @@ within BESMod.Systems.Ventilation.Generation.RecordsCollection; record DummyHeatExchangerRecovery "DummyVentilation" extends PartialHeatExchangerRecovery(dpHex_nominal(displayUnit="Pa") = 100, epsHex=0.8); + annotation (Documentation(info=" +

Dummy heat exchanger record for ventilation systems with fixed nominal pressure drop and heat recovery rate. +

+

Important Parameters

+
    +
  • dpHex_nominal = 100 Pa: Nominal pressure drop across heat exchanger
  • +
  • epsHex = 0.8: Heat recovery rate/effectiveness of the heat exchanger
  • +
")); end DummyHeatExchangerRecovery; diff --git a/BESMod/Systems/Ventilation/Generation/RecordsCollection/PartialHeatExchangerRecovery.mo b/BESMod/Systems/Ventilation/Generation/RecordsCollection/PartialHeatExchangerRecovery.mo index bf1c5d3a..9dfdfd83 100644 --- a/BESMod/Systems/Ventilation/Generation/RecordsCollection/PartialHeatExchangerRecovery.mo +++ b/BESMod/Systems/Ventilation/Generation/RecordsCollection/PartialHeatExchangerRecovery.mo @@ -8,4 +8,13 @@ partial record PartialHeatExchangerRecovery annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

This model is a partial record that contains basic parameters for a heat exchanger recovery system.

+ +

Important Parameters

+
    +
  • epsHex - Heat exchanger effectiveness [1]
  • +
  • dpHex_nominal - Nominal pressure drop on one HEX pipe [Pa]
  • +
+")); end PartialHeatExchangerRecovery; diff --git a/BESMod/Systems/Ventilation/Generation/Tests/ControlledDomesticVentilation.mo b/BESMod/Systems/Ventilation/Generation/Tests/ControlledDomesticVentilation.mo index 5d402da9..9492067e 100644 --- a/BESMod/Systems/Ventilation/Generation/Tests/ControlledDomesticVentilation.mo +++ b/BESMod/Systems/Ventilation/Generation/Tests/ControlledDomesticVentilation.mo @@ -41,4 +41,24 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Information

+

Test model for a controlled domestic ventilation system with heat recovery. +The model extends from PartialTest +and uses a ControlledDomesticVentilation system. +

+ +

Important Parameters

+
    +
  • Heat exchanger pressure drop (dpHex_nominal): 100 Pa
  • +
  • Three-way valves: Equal percentage linear characteristics
  • +
  • Components configured using default records for: +
      +
    • Three-way valve parameters
    • +
    • Fan data
    • +
    • Temperature sensors
    • +
    +
  • +
+")); end ControlledDomesticVentilation; diff --git a/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo b/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo index 50261b39..773b95df 100644 --- a/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo +++ b/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo @@ -65,4 +65,28 @@ equation end for; annotation (experiment(StopTime=2592000, __Dymola_Algorithm="Dassl")); + annotation (Documentation(info=" + +

Partial model for testing ventilation generation systems. +

+ +

The model includes:

+
    +
  • Weather data reader using TMY3 format
  • +
  • Replaceable ventilation generation system
  • +
  • Mixing volumes representing building air volume
  • +
  • Fixed temperature boundary condition
  • +
+ +

Important Parameters

+
    +
  • Medium: Replaceable medium package (defaults to IBPSA.Media.Air)
  • +
  • m_flow_nominal: Nominal mass flow rate based on room volume (150m³) and air changes
  • +
  • Q_flow_nominal: Nominal heating/cooling power
  • +
  • TOda_nominal: Nominal outdoor temperature
  • +
  • TDem_nominal: Nominal zone temperature setpoint
  • +
  • V: Room volume (150m³ with 2.6m height)
  • +
+ +")); end PartialTest; diff --git a/BESMod/Systems/Ventilation/VentilationSystem.mo b/BESMod/Systems/Ventilation/VentilationSystem.mo index 0e9335f5..e0578f93 100644 --- a/BESMod/Systems/Ventilation/VentilationSystem.mo +++ b/BESMod/Systems/Ventilation/VentilationSystem.mo @@ -2,4 +2,9 @@ within BESMod.Systems.Ventilation; model VentilationSystem "Build your custom ventilation system" extends BaseClasses.PartialVentilationSystem; + annotation (Documentation(info=" +

Base model to build custom ventilation systems by extending +BESMod.Systems.Ventilation.BaseClasses.PartialVentilationSystem. +

+")); end VentilationSystem; From 958f1cb95dd02f5f075cda93cd671715f1883bee Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 20 Nov 2024 07:15:34 +0100 Subject: [PATCH 08/23] add demand --- .../Demand/Building/AixLibHighOrder.mo | 6 +++- .../BaseClasses/PartialAixLibHighOrder.mo | 6 +++- .../Building/BaseClasses/PartialDemand.mo | 36 ++++++++++++++++++- .../Building/Components/AixLibHighOrderOFD.mo | 11 ++++++ .../BaseClasses/HighOrderModelParameters.mo | 24 +++++++++++++ .../BaseClasses/PartialAixLibHighOrder.mo | 8 +++++ .../Demand/DHW/BaseClasses/PartialDHW.mo | 21 +++++++++++ .../DHW/BaseClasses/PartialDHWWithBasics.mo | 15 ++++++++ .../Demand/DHW/RecordsCollection/ProfileL.mo | 14 ++++++++ .../Demand/DHW/RecordsCollection/ProfileM.mo | 13 +++++++ .../Demand/DHW/RecordsCollection/ProfileS.mo | 12 +++++++ .../TappingProfiles/BaseClasses/PartialDHW.mo | 13 +++++++ .../BaseClasses/PartialcalcmFlowEqu.mo | 22 ++++++++++++ .../TappingProfiles/calcmFlowEquDynamic.mo | 9 +++++ .../DHW/TappingProfiles/calcmFlowEquStatic.mo | 7 ++++ BESMod/Systems/Demand/DHW/Types/DHWProfile.mo | 12 +++++++ 16 files changed, 226 insertions(+), 3 deletions(-) diff --git a/BESMod/Systems/Demand/Building/AixLibHighOrder.mo b/BESMod/Systems/Demand/Building/AixLibHighOrder.mo index f57cb38e..5cecf13c 100644 --- a/BESMod/Systems/Demand/Building/AixLibHighOrder.mo +++ b/BESMod/Systems/Demand/Building/AixLibHighOrder.mo @@ -177,5 +177,9 @@ equation horizontalAlignment=TextAlignment.Right)); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This is a high order building model based on the AixLib library. +It models a multi-zone building with detailed consideration of solar radiation, +thermal dynamics of walls, and both mechanical and natural ventilation.

+")); end AixLibHighOrder; diff --git a/BESMod/Systems/Demand/Building/BaseClasses/PartialAixLibHighOrder.mo b/BESMod/Systems/Demand/Building/BaseClasses/PartialAixLibHighOrder.mo index 55e1d455..b4671676 100644 --- a/BESMod/Systems/Demand/Building/BaseClasses/PartialAixLibHighOrder.mo +++ b/BESMod/Systems/Demand/Building/BaseClasses/PartialAixLibHighOrder.mo @@ -53,5 +53,9 @@ partial model PartialAixLibHighOrder transformation(extent={{-86,-76},{-132,-30}}), iconTransformation( extent={{-84,-70},{-124,-30}}))); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This model serves as a base class for high-order building models based on AixLib. +It contains the basic interfaces and parameters needed for multi-zone building models with optional ventilation. +

+")); end PartialAixLibHighOrder; diff --git a/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo b/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo index 450f584c..98e5075a 100644 --- a/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo +++ b/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo @@ -83,5 +83,39 @@ protected T=MediumZone.T_default, p=MediumZone.p_default, X=MediumZone.X_default) "Nominal / default state of medium"; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+This is a partial model that serves as a base class for building envelope models. +It defines the basic building parameters and interfaces for thermal, ventilation and electrical connections. +

+ +

Important Parameters

+
    +
  • nZones: Number of thermal zones/rooms in the building
  • +
  • TSetZone_nominal: Nominal temperature setpoints for each zone [K]
  • +
  • Geometry parameters: +
      +
    • AZone: Area of each zone [m²]
    • +
    • hZone: Height of each zone [m]
    • +
    • ABui: Ground area of building [m²]
    • +
    • hBui: Building height [m]
    • +
    • ARoo: Roof area [m²]
    • +
    +
  • +
  • use_hydraulic: Enable/disable hydraulic supply system
  • +
  • use_ventilation: Enable/disable ventilation system
  • +
  • TOda_nominal: Design outdoor air temperature [K]
  • +
+ +

Connectors

+
    +
  • heatPortCon: Convective heat ports for each zone
  • +
  • heatPortRad: Radiative heat ports for each zone
  • +
  • portVent_in/out: Ventilation air ports (if enabled)
  • +
  • weaBus: Weather data connection
  • +
  • buiMeaBus: Building measurements bus
  • +
  • internalElectricalPin: Electrical system connection
  • +
+")); end PartialDemand; diff --git a/BESMod/Systems/Demand/Building/Components/AixLibHighOrderOFD.mo b/BESMod/Systems/Demand/Building/Components/AixLibHighOrderOFD.mo index d5c3eb1a..e9e5dc11 100644 --- a/BESMod/Systems/Demand/Building/Components/AixLibHighOrderOFD.mo +++ b/BESMod/Systems/Demand/Building/Components/AixLibHighOrderOFD.mo @@ -170,4 +170,15 @@ equation color={0,0,127})); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Model to implement a high-order model of an +one-family dwelling (OFD) using AixLib building models.

+ +

The building consists of:

+
    +
  • Ground floor: Living room, hobby room, corridor, WC/storage, kitchen
  • +
  • Upper floor: Bedroom, two children's rooms, corridor, bathroom
  • +
  • Non-heated attic
  • +
+")); end AixLibHighOrderOFD; diff --git a/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo b/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo index 23e60359..cad58a06 100644 --- a/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo +++ b/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo @@ -26,4 +26,28 @@ partial model HighOrderModelParameters annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

+This is a partial model containing parameters for high order building models from AixLib. +It includes parameters for different building thermal insulation regulations (TIR). +

+ +

Important Parameters

+
    +
  • TIR: Thermal Insulation Regulation level (1=EnEV_2009, 2=EnEV_2002, 3=WSchV_1995, 4=WSchV_1984)
  • +
  • n50: Air exchange rate at 50 Pa pressure difference (1/h). Values depend on TIR: +
      +
    • 3.0 1/h for EnEV_2009 and EnEV_2002
    • +
    • 4.0 1/h for WSchV_1995
    • +
    • 6.0 1/h for WSchV_1984
    • +
    +
  • +
  • UValOutDoors: Thermal transmission coefficient of door [W/(m²·K)] +
      +
    • 1.8 W/(m²·K) for EnEV_2009
    • +
    • 2.9 W/(m²·K) for other regulations
    • +
    +
  • +
+")); end HighOrderModelParameters; diff --git a/BESMod/Systems/Demand/Building/Components/BaseClasses/PartialAixLibHighOrder.mo b/BESMod/Systems/Demand/Building/Components/BaseClasses/PartialAixLibHighOrder.mo index 38ddba99..dd6ff300 100644 --- a/BESMod/Systems/Demand/Building/Components/BaseClasses/PartialAixLibHighOrder.mo +++ b/BESMod/Systems/Demand/Building/Components/BaseClasses/PartialAixLibHighOrder.mo @@ -53,4 +53,12 @@ partial model PartialAixLibHighOrder extent={{-84,-70},{-124,-30}}))); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

+This is a partial model that serves as a base class for +high-order building models using the AixLib library. +It provides basic interfaces and parameters needed for multi-zone +building models with optional ventilation. +

+")); end PartialAixLibHighOrder; diff --git a/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo b/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo index 6fe262b4..f547bccb 100644 --- a/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo +++ b/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo @@ -43,4 +43,25 @@ equation annotation (Icon( graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Information

+

Partial model for domestic hot water (DHW) generation system. +This model defines the base parameters +and interfaces for domestic hot water preparation. +

+ +

Important Parameters

+
    +
  • mDHW_flow_nominal: Nominal mass flow rate [kg/s]
  • +
  • TDHW_nominal: Nominal DHW temperature [K]
  • +
  • TDHWCold_nominal: Nominal temperature of cold city water [K]
  • +
  • VDHWDay: Daily volume of DHW tapping [m³]
  • +
  • tCrit: Time for critical period based on EN 15450 [s]
  • +
  • QCrit: Energy demand during critical period [kWh]
  • +
+ +

References

+
    +
  • EN 15450: Heating systems in buildings - Design of heat pump heating systems
  • +
")); end PartialDHW; diff --git a/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHWWithBasics.mo b/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHWWithBasics.mo index c462b137..c956c2bd 100644 --- a/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHWWithBasics.mo +++ b/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHWWithBasics.mo @@ -108,4 +108,19 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Information

+This model is a partial class implementing a hot water system module with basic +models for fluid flow and controls. +It provides the basic functionality needed for +domestic hot water generation, including: + +
    +
  • Pump control based on mass flow rate
  • +
  • Cold water source and sink models
  • +
  • Tapping profile implementation
  • +
  • Temperature control
  • +
  • Energy KPI calculation
  • +
+")); end PartialDHWWithBasics; diff --git a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileL.mo b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileL.mo index e5995037..943a5b73 100644 --- a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileL.mo +++ b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileL.mo @@ -32,4 +32,18 @@ record ProfileL "Profile L" 0.166666667,10,10; 76221,0,0,10,10; 77400,0,0,10,10; 77400,0.105,0.05, 25,25; 77521,0,0.05,10,10; 77521,0,0,10,10; 86400,0,0,10,10], VDHWDay=248.517e-3); + annotation (Documentation(info=" +

This record defines Profile L according to EN 16147 +for domestic hot water (DHW) draw profiles.

+ +

Important Parameters

+
    +
  • QCrit = 4.445 kWh (Critical heat demand)
  • +
  • tCrit = 3600 s (Critical time period)
  • +
  • VDHWDay = 248.517 liters (Daily DHW volume)
  • +
+ +

References

+

EN 16147 - Heat pumps with electrically driven compressors - Testing, performance rating and requirements for marking of domestic hot water units

+")); end ProfileL; diff --git a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileM.mo b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileM.mo index edb007a0..cd640188 100644 --- a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileM.mo +++ b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileM.mo @@ -31,4 +31,17 @@ record ProfileM "Profile M" 10,10; 77400,0,0,10,10; 77400,1.4,0.1,40,40; 77802,0,0.1,10,10; 77802,0, 0,10,10; 86400,0,0,10,10], VDHWDay=123.417e-3); + annotation (Documentation(info=" +

Profile M represents a predefined domestic hot water load profile

+ +

Important Parameters

+
    +
  • QCrit = 2.24 (Critical heat flow rate)
  • +
  • tCrit = 3600s (Critical time period)
  • +
  • VDHWDay = 123.417 liters (Daily hot water volume)
  • +
+ +

References

+

This profile is based on the EN 16147 standard for domestic hot water heat pumps testing, representing a medium load profile.

+")); end ProfileM; diff --git a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo index 5094821e..33ea7578 100644 --- a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo +++ b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo @@ -19,4 +19,16 @@ record ProfileS "Profile S" 86400,0,0,10,10], VDHWDay=43.5e-3); + annotation (Documentation(info=" +

+Profile S implements a small daily domestic hot water draw-off pattern. +

+ +

Important Parameters

+
    +
  • QCrit = 0.945: Critical heat demand [kWh]
  • +
  • tCrit = 3600: Critical time period [s]
  • +
  • VDHWDay = 43.5e-3: Daily hot water volume [m³/day]
  • +
+")); end ProfileS; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo index 3c1facce..9df4a41a 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo @@ -23,4 +23,17 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Partial model that serves as a base class for domestic hot water (DHW) +tapping profile models. +Contains basic parameters and interfaces for DHW systems.

+ +

Important Parameters

+
    +
  • TCold (K): Cold water temperature, default 283.15 K
  • +
  • dWater (kg/m³): Density of water, default 1000 kg/m³
  • +
  • c_p_water (J/(kg·K)): Specific heat capacity of water, default 4184 J/(kg·K)
  • +
  • TSetDHW (K): Set temperature of DHW
  • +
+")); end PartialDHW; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo index 6334ed63..dd91b468 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo @@ -62,4 +62,26 @@ equation 110,80},{110,80}}, color={0,0,127})); connect(dTSet.y, multiProduct.u[4]) annotation (Line(points={{-21,-70},{28,-70}, {28,77.375},{42,77.375}}, color={0,0,127})); + annotation (Documentation(info=" +

Base model for calculating mass flow for domestic hot water based on +set temperature and actual temperature using an equalized temperature signal. +

+ +

Model Structure

+

The model calculates mass flows using: +

    +
  • Temperature differences between set point and cold water
  • +
  • Actual temperature differences in the system
  • +
  • A limiter to keep ratios between 0 and 1
  • +
  • Heat flow error calculation using specific heat capacity
  • +
+

+ + +

Outputs

+
    +
  • m_flow_out: Calculated mass flow rate considering temperature differences [kg/s]
  • +
  • Q_flowERROR: Error in heat flow rate calculation [W]
  • +
+")); end PartialcalcmFlowEqu; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquDynamic.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquDynamic.mo index 84e917d1..089e5f6d 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquDynamic.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquDynamic.mo @@ -9,4 +9,13 @@ equation color={0,0,127})); connect(m_flow_in, mDHWTapped.u) annotation (Line(points={{-120,60},{-92,60}, {-92,34},{-64,34}}, color={0,0,127})); + annotation (Documentation(info=" +

Dynamic way to calculate mass flow equivalent by integrating +tapped volume over time. +

+

+Contains an integrator block mDHWTapped to integrate the DHW +tapping mass flow rate input m_flow_in. +

+")); end calcmFlowEquDynamic; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquStatic.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquStatic.mo index a208507d..2e1e1f25 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquStatic.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/calcmFlowEquStatic.mo @@ -6,4 +6,11 @@ model calcmFlowEquStatic "Static way to calc m_flow_equivalent" equation connect(constTSet.y, dTIs.u1) annotation (Line(points={{-61,0},{-44,0}}, color={0,0,127})); + annotation (Documentation(info=" +

Information

+

Static calculation of equivalent mass flow rates with constant temperature setpoint of TSetDHW. Extends from BESMod.Systems.Demand.DHW.TappingProfiles.BaseClasses.PartialcalcmFlowEqu.

+ +

Important Parameters

+

TSetDHW - Target DHW temperature setpoint value in K (defined in base class)

+")); end calcmFlowEquStatic; diff --git a/BESMod/Systems/Demand/DHW/Types/DHWProfile.mo b/BESMod/Systems/Demand/DHW/Types/DHWProfile.mo index a89eb46b..6d53bb1d 100644 --- a/BESMod/Systems/Demand/DHW/Types/DHWProfile.mo +++ b/BESMod/Systems/Demand/DHW/Types/DHWProfile.mo @@ -5,3 +5,15 @@ type DHWProfile = enumeration( L "Profile L", DHWCalc "DHWCalc", NoDHW "No DHW") "Enum for dhw profile type"; + annotation (Documentation(info=" +

Enumeration for selecting different domestic hot water (DHW) demand profiles.

+ +

Important Parameters

+
    +
  • S: Profile S - Small tapping profile
  • +
  • M: Profile M - Medium tapping profile
  • +
  • L: Profile L - Large tapping profile
  • +
  • DHWCalc: DHWCalc profile
  • +
  • NoDHW: No DHW demand
  • +
+")); From fc653e654ed0053bab12dcf6486e4bb526133a58 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 20 Nov 2024 09:41:18 +0100 Subject: [PATCH 09/23] doc electrical systems --- .../BaseClasses/PartialElectricalSystem.mo | 15 ++++++++- .../Control/BaseClasses/PartialControl.mo | 7 ++++- .../Systems/Electrical/Control/IdealHeater.mo | 7 ++++- .../Electrical/DirectGridConnectionSystem.mo | 17 ++++++++++ .../BaseClasses/PartialDistribution.mo | 13 +++++++- .../Distribution/BatterySystemSimple.mo | 14 ++++++++- .../Components/FixedInitialBatterySimple.mo | 18 +++++++++++ .../Electrical/Distribution/DirectlyToGrid.mo | 10 +++++- .../Electrical/Distribution/OwnConsumption.mo | 12 ++++++- .../Distribution/Tests/BatterySystemSimple.mo | 15 +++------ .../Distribution/Tests/DirectToGridTest.mo | 15 +++------ .../Distribution/Tests/OwnConsumptionTest.mo | 13 ++------ .../Distribution/Tests/PartialTest.mo | 21 +++++-------- BESMod/Systems/Electrical/ElectricalSystem.mo | 4 ++- .../BaseClasses/PartialGeneration.mo | 13 +++++++- .../Generation/Tests/PVSystemMultiSub.mo | 14 +++------ .../Generation/Tests/PartialTest.mo | 21 +++++-------- .../Generation/Tests/TestNoGeneration.mo | 18 +++++------ .../ElectricalSystemBaseDataDefinition.mo | 7 ++++- .../Electrical/Tests/ElectricalSystem.mo | 31 +++++++++++++------ .../Transfer/BaseClasses/PartialTransfer.mo | 12 ++++++- .../Electrical/Transfer/IdealHeater.mo | 20 +++++++++++- .../Transfer/NoElectricalTransfer.mo | 8 ++++- .../Transfer/Tests/NoElectricalTransfer.mo | 14 +++------ .../Electrical/Transfer/Tests/PartialTest.mo | 19 +++++------- 25 files changed, 237 insertions(+), 121 deletions(-) diff --git a/BESMod/Systems/Electrical/BaseClasses/PartialElectricalSystem.mo b/BESMod/Systems/Electrical/BaseClasses/PartialElectricalSystem.mo index 00d02321..68f065cc 100644 --- a/BESMod/Systems/Electrical/BaseClasses/PartialElectricalSystem.mo +++ b/BESMod/Systems/Electrical/BaseClasses/PartialElectricalSystem.mo @@ -200,5 +200,18 @@ equation extent={{-98,-134},{106,-230}}, lineColor={0,0,0}, textString="%name%")}), Diagram( - coordinateSystem(preserveAspectRatio=false, extent={{-180,-140},{160,140}}))); + coordinateSystem(preserveAspectRatio=false, extent={{-180,-140},{160,140}})), Documentation(info=" +

Partial model for an electrical system consisting of electrical +generation, distribution, transfer and control components. +The model is structured to handle both internal and external +electrical loads.

+

Model Structure

+

The model consists of the following main components:

+ +")); end PartialElectricalSystem; diff --git a/BESMod/Systems/Electrical/Control/BaseClasses/PartialControl.mo b/BESMod/Systems/Electrical/Control/BaseClasses/PartialControl.mo index c1f37918..b58c1058 100644 --- a/BESMod/Systems/Electrical/Control/BaseClasses/PartialControl.mo +++ b/BESMod/Systems/Electrical/Control/BaseClasses/PartialControl.mo @@ -83,5 +83,10 @@ partial model PartialControl "Partial electrical control model" fillColor={175,175,175}, fillPattern=FillPattern.Solid)}), Diagram(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-240,-100},{240, - 100}}))); + 100}})), Documentation(info=" +

A partial model serving as a base class for electrical control systems. +The control system has defined interfaces to the +generation, distribution, and transfer subsystems as well as to the +building measurement and use profiles.

+")); end PartialControl; diff --git a/BESMod/Systems/Electrical/Control/IdealHeater.mo b/BESMod/Systems/Electrical/Control/IdealHeater.mo index 1e984174..36fce967 100644 --- a/BESMod/Systems/Electrical/Control/IdealHeater.mo +++ b/BESMod/Systems/Electrical/Control/IdealHeater.mo @@ -19,5 +19,10 @@ equation horizontalAlignment=TextAlignment.Left)); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This is a control model for an ideal heater that passes through zone +setpoint temperature signals, as the actual control is located in the +AixLib ideal heater model in the transfer system. +

+")); end IdealHeater; diff --git a/BESMod/Systems/Electrical/DirectGridConnectionSystem.mo b/BESMod/Systems/Electrical/DirectGridConnectionSystem.mo index 6a8f5d63..78b7d46c 100644 --- a/BESMod/Systems/Electrical/DirectGridConnectionSystem.mo +++ b/BESMod/Systems/Electrical/DirectGridConnectionSystem.mo @@ -9,4 +9,21 @@ model DirectGridConnectionSystem transfer, redeclare final BESMod.Systems.Electrical.Distribution.DirectlyToGrid distribution); + annotation (Documentation(info=" +
+

A simple electrical system model that represents a direct grid +connection without any local generation, control, storage/transfer +capabilities or complex distribution. +All electricity is drawn directly from the power grid.

+ +

Models used

+

This model uses default parameters from the following base components:

+ +
+")); end DirectGridConnectionSystem; diff --git a/BESMod/Systems/Electrical/Distribution/BaseClasses/PartialDistribution.mo b/BESMod/Systems/Electrical/Distribution/BaseClasses/PartialDistribution.mo index 2dd35aef..7e0e829c 100644 --- a/BESMod/Systems/Electrical/Distribution/BaseClasses/PartialDistribution.mo +++ b/BESMod/Systems/Electrical/Distribution/BaseClasses/PartialDistribution.mo @@ -117,5 +117,16 @@ equation fillColor={0,0,0}, fillPattern=FillPattern.Solid, lineColor={0,0,0})}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Partial model for electrical distribution systems. +This model serves as a base class for specific distribution +implementations, handling the electrical connections between +multiple subsystems and the grid.

+ +

Important Parameters

+
    +
  • use_openModelica: Boolean flag to disable features not compatible with OpenModelica
  • +
  • nSubSys: Number of subsystems with electrical load/generation (minimum 2)
  • +
+")); end PartialDistribution; diff --git a/BESMod/Systems/Electrical/Distribution/BatterySystemSimple.mo b/BESMod/Systems/Electrical/Distribution/BatterySystemSimple.mo index e63f7b19..92d109ec 100644 --- a/BESMod/Systems/Electrical/Distribution/BatterySystemSimple.mo +++ b/BESMod/Systems/Electrical/Distribution/BatterySystemSimple.mo @@ -66,5 +66,17 @@ equation {{50,-18},{50,16.8},{24.84,16.8}}, color={0,0,127})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Simple battery model acting as an electrical distribution system. +The model uses a simplified battery model with SOC tracking and +interfaces with other system components through electrical connectors +that are converted to real signals.

+ +

Important Parameters

+ +")); end BatterySystemSimple; diff --git a/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo b/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo index 210cc416..4a1f7810 100644 --- a/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo +++ b/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo @@ -13,4 +13,22 @@ initial equation E = E_nominal * SOC_start; E_charged = E_start; E_discharged = E_start; + annotation (Documentation(info=" +

Information

+

+This model extends the BuildingSystems.Technologies.ElectricalStorages.BatterySimple +model with fixed initial conditions to enable regression tests in CI. +

+

Initial Equations

+

+The model sets fixed initial conditions for: +

    +
  • Available energy (EAva)
  • +
  • Bound energy (EBou)
  • +
  • Total energy (E)
  • +
  • Charged energy (E_charged)
  • +
  • Discharged energy (E_discharged)
  • +
+

+")); end FixedInitialBatterySimple; diff --git a/BESMod/Systems/Electrical/Distribution/DirectlyToGrid.mo b/BESMod/Systems/Electrical/Distribution/DirectlyToGrid.mo index 6938e14c..1e21ffac 100644 --- a/BESMod/Systems/Electrical/Distribution/DirectlyToGrid.mo +++ b/BESMod/Systems/Electrical/Distribution/DirectlyToGrid.mo @@ -21,5 +21,13 @@ equation thickness=1)); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+This model represents a direct grid connection for electrical systems with no own consumption. +It sums up the electrical power flows of all subsystems (nSubSys). +The summed power is directly fed to/from the grid via the +external electrical pin connection. +

+")); end DirectlyToGrid; diff --git a/BESMod/Systems/Electrical/Distribution/OwnConsumption.mo b/BESMod/Systems/Electrical/Distribution/OwnConsumption.mo index 122dc803..88c6a438 100644 --- a/BESMod/Systems/Electrical/Distribution/OwnConsumption.mo +++ b/BESMod/Systems/Electrical/Distribution/OwnConsumption.mo @@ -66,5 +66,15 @@ equation thickness=1)); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Electric distribution system model for direct grid +connection with own consumption. +

+

+The model calculates the energy balance between generation and load. +Generated electricity can be consumed directly (own consumption) and +excess generation is fed into the grid. +If generation is insufficient, additional electricity is drawn +from the grid.

+")); end OwnConsumption; diff --git a/BESMod/Systems/Electrical/Distribution/Tests/BatterySystemSimple.mo b/BESMod/Systems/Electrical/Distribution/Tests/BatterySystemSimple.mo index 9650cd6b..2076c003 100644 --- a/BESMod/Systems/Electrical/Distribution/Tests/BatterySystemSimple.mo +++ b/BESMod/Systems/Electrical/Distribution/Tests/BatterySystemSimple.mo @@ -23,14 +23,9 @@ equation experiment( StopTime=86400, Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

Information

+

Simple test model for a battery system with one battery. +Test is for a Tesla Powerwall 1 lithium-ion battery.

+")); end BatterySystemSimple; diff --git a/BESMod/Systems/Electrical/Distribution/Tests/DirectToGridTest.mo b/BESMod/Systems/Electrical/Distribution/Tests/DirectToGridTest.mo index aea7cd66..d5750f35 100644 --- a/BESMod/Systems/Electrical/Distribution/Tests/DirectToGridTest.mo +++ b/BESMod/Systems/Electrical/Distribution/Tests/DirectToGridTest.mo @@ -20,14 +20,9 @@ equation experiment( StopTime=86400, Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + __Dymola_Algorithm="Dassl"),Documentation(info=" +

Test model for the + BESMod.Systems.Electrical.Distribution.DirectlyToGrid +electrical distribution model.

+")); end DirectToGridTest; diff --git a/BESMod/Systems/Electrical/Distribution/Tests/OwnConsumptionTest.mo b/BESMod/Systems/Electrical/Distribution/Tests/OwnConsumptionTest.mo index fdf44abf..5f1cedf3 100644 --- a/BESMod/Systems/Electrical/Distribution/Tests/OwnConsumptionTest.mo +++ b/BESMod/Systems/Electrical/Distribution/Tests/OwnConsumptionTest.mo @@ -20,14 +20,7 @@ equation experiment( StopTime=86400, Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

Test model for BESMod.Systems.Electrical.Distribution.OwnConsumption electrical distribution system.

+")); end OwnConsumptionTest; diff --git a/BESMod/Systems/Electrical/Distribution/Tests/PartialTest.mo b/BESMod/Systems/Electrical/Distribution/Tests/PartialTest.mo index 4ffe010f..84036db9 100644 --- a/BESMod/Systems/Electrical/Distribution/Tests/PartialTest.mo +++ b/BESMod/Systems/Electrical/Distribution/Tests/PartialTest.mo @@ -56,18 +56,11 @@ equation {68,70},{68,64},{60,64}}, color={0,0,127})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false)), - experiment( - StopTime=86400, - Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Partial test model for electrical power distribution systems. +The model includes simulated electrical generation and load +profiles using sinusoidal signals with a 24-hour period (86400 seconds). +The model connects real power signals to electrical connectors and +provides monitoring of grid power flow.

+")); end PartialTest; diff --git a/BESMod/Systems/Electrical/ElectricalSystem.mo b/BESMod/Systems/Electrical/ElectricalSystem.mo index e31ba880..14745c22 100644 --- a/BESMod/Systems/Electrical/ElectricalSystem.mo +++ b/BESMod/Systems/Electrical/ElectricalSystem.mo @@ -3,5 +3,7 @@ model ElectricalSystem "Build your custom electical system" extends BESMod.Systems.Electrical.BaseClasses.PartialElectricalSystem; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Build your custom electrical system using this model as a template. +<\p>")); end ElectricalSystem; diff --git a/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo b/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo index b47d4f25..c03ed1d0 100644 --- a/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo +++ b/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo @@ -151,5 +151,16 @@ partial model PartialGeneration lineThickness=1, fillColor={0,0,0}, fillPattern=FillPattern.Solid)}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Basic model with interfaces for electrical generation package. +This partial model is a base class for electrical generation models.

+ +

Important Parameters

+
    +
  • use_openModelica - Boolean parameter to disable features not available in OpenModelica
  • +
  • numGenUnits - Number of generation units (e.g. PV modules)
  • +
  • f_design - Array of over/undersizing factors relative to maximum capacity (default: 0.8)
  • +
  • ARoo - Roof area of building in m²
  • +
+")); end PartialGeneration; diff --git a/BESMod/Systems/Electrical/Generation/Tests/PVSystemMultiSub.mo b/BESMod/Systems/Electrical/Generation/Tests/PVSystemMultiSub.mo index 1c4aa620..16b8ee3d 100644 --- a/BESMod/Systems/Electrical/Generation/Tests/PVSystemMultiSub.mo +++ b/BESMod/Systems/Electrical/Generation/Tests/PVSystemMultiSub.mo @@ -17,14 +17,8 @@ model PVSystemMultiSub experiment( StopTime=86400, Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

Test model for a photovoltaic system with multiple submodules. +

+")); end PVSystemMultiSub; diff --git a/BESMod/Systems/Electrical/Generation/Tests/PartialTest.mo b/BESMod/Systems/Electrical/Generation/Tests/PartialTest.mo index 0d0826d8..cf294d23 100644 --- a/BESMod/Systems/Electrical/Generation/Tests/PartialTest.mo +++ b/BESMod/Systems/Electrical/Generation/Tests/PartialTest.mo @@ -24,17 +24,12 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - experiment( - StopTime=86400, - Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + Documentation(info=" + +

+Partial model to test electrical generation systems. +It provides the basic structure for testing different generation models +by connecting them to weather data and electrical outputs. +

+")); end PartialTest; diff --git a/BESMod/Systems/Electrical/Generation/Tests/TestNoGeneration.mo b/BESMod/Systems/Electrical/Generation/Tests/TestNoGeneration.mo index e9f7ea18..ba06579f 100644 --- a/BESMod/Systems/Electrical/Generation/Tests/TestNoGeneration.mo +++ b/BESMod/Systems/Electrical/Generation/Tests/TestNoGeneration.mo @@ -11,14 +11,12 @@ model TestNoGeneration experiment( StopTime=86400, Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + __Dymola_Algorithm="Dassl"), Documentation(info=" + +

Information

+

Test model +using the BESMod.Systems.Electrical.Generation.NoGeneration model. +This model represents the case where no electrical generation system is present.

+ +")); end TestNoGeneration; diff --git a/BESMod/Systems/Electrical/RecordsCollection/ElectricalSystemBaseDataDefinition.mo b/BESMod/Systems/Electrical/RecordsCollection/ElectricalSystemBaseDataDefinition.mo index 6a2daa6c..fd001af9 100644 --- a/BESMod/Systems/Electrical/RecordsCollection/ElectricalSystemBaseDataDefinition.mo +++ b/BESMod/Systems/Electrical/RecordsCollection/ElectricalSystemBaseDataDefinition.mo @@ -3,5 +3,10 @@ record ElectricalSystemBaseDataDefinition extends BESMod.Systems.RecordsCollection.SupplySystemBaseDataDefinition; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

Base data definition record for electrical systems. + +

+")); end ElectricalSystemBaseDataDefinition; diff --git a/BESMod/Systems/Electrical/Tests/ElectricalSystem.mo b/BESMod/Systems/Electrical/Tests/ElectricalSystem.mo index 36200a12..57f9e556 100644 --- a/BESMod/Systems/Electrical/Tests/ElectricalSystem.mo +++ b/BESMod/Systems/Electrical/Tests/ElectricalSystem.mo @@ -78,14 +78,25 @@ equation experiment( StopTime=86400, Interval=900, - __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

Information

+

Test model for electrical system containing PV generation and battery storage without transfer. +The system consists of:

+
    +
  • PV system using Schueco SPV170SME1 modules with ground mounting
  • +
  • Tesla Powerwall 1 battery storage
  • +
  • Simple electrical distribution
  • +
  • No electrical transfer system
  • +
  • No control system
  • +
+ +

Important Parameters

+

The model uses following key components:

+ +")); end ElectricalSystem; diff --git a/BESMod/Systems/Electrical/Transfer/BaseClasses/PartialTransfer.mo b/BESMod/Systems/Electrical/Transfer/BaseClasses/PartialTransfer.mo index 4018385a..b288b82f 100644 --- a/BESMod/Systems/Electrical/Transfer/BaseClasses/PartialTransfer.mo +++ b/BESMod/Systems/Electrical/Transfer/BaseClasses/PartialTransfer.mo @@ -70,5 +70,15 @@ partial model PartialTransfer "Partial model for transfer subsystems" extent={{10,-32},{92,-80}}, lineColor={238,46,47}, textString="Q̇")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This is a partial model that serves as a base class for transfer subsystems. +It defines the basic structure and interfaces required for heat transfer between systems.

+ +

Important Parameters

+
    +
  • use_openModelica (default=false): Flag to disable features not available in OpenModelica
  • +
  • nParallelDem (min=1): Number of parallel demand systems
  • +
  • Q_flow_nominal[nParallelDem] (each min=eps): Nominal heat flow rates for each parallel system
  • +
+")); end PartialTransfer; diff --git a/BESMod/Systems/Electrical/Transfer/IdealHeater.mo b/BESMod/Systems/Electrical/Transfer/IdealHeater.mo index 40d25a12..5c16ba7e 100644 --- a/BESMod/Systems/Electrical/Transfer/IdealHeater.mo +++ b/BESMod/Systems/Electrical/Transfer/IdealHeater.mo @@ -72,5 +72,23 @@ equation 70},{6,74},{18,74}}, color={0,0,127})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" + +

+This model represents an ideal heater implementation. +It uses a PI-controlled heater from AixLib.Utilities.Sources.HeaterCooler.HeaterCoolerPI. +

+

+The model converts heating power demand to electrical power consumption using an ideal conversion. +Cooling is disabled and only heating operation is possible. +The heater uses PI control to maintain the zone temperature setpoint. +

+ +

Important Parameters

+
    +
  • KR_heater (default: 1000) - Proportional gain of the heating PI controller
  • +
  • TN_heater (default: 1 s) - Integral time constant of the heating PI controller
  • +
  • Q_flow_nominal - Nominal heating power, used to determine maximum heater capacity (1.5 times nominal power)
  • +
+")); end IdealHeater; diff --git a/BESMod/Systems/Electrical/Transfer/NoElectricalTransfer.mo b/BESMod/Systems/Electrical/Transfer/NoElectricalTransfer.mo index 0914362a..2d40c027 100644 --- a/BESMod/Systems/Electrical/Transfer/NoElectricalTransfer.mo +++ b/BESMod/Systems/Electrical/Transfer/NoElectricalTransfer.mo @@ -21,5 +21,11 @@ equation annotation (Line(points={{62,-38},{100,-38}}, color={191,0,0})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" + +

This model represents a transfer system with no electrical power transfer. +It connects a zero load to the internal electrical pin. +Additionally, it uses fixed zero heat flow sources for both convective and radiative heat ports. +

+")); end NoElectricalTransfer; diff --git a/BESMod/Systems/Electrical/Transfer/Tests/NoElectricalTransfer.mo b/BESMod/Systems/Electrical/Transfer/Tests/NoElectricalTransfer.mo index f8eb4868..31b43e0d 100644 --- a/BESMod/Systems/Electrical/Transfer/Tests/NoElectricalTransfer.mo +++ b/BESMod/Systems/Electrical/Transfer/Tests/NoElectricalTransfer.mo @@ -8,14 +8,8 @@ model NoElectricalTransfer annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=3600, __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + experiment(StopTime=3600, __Dymola_Algorithm="Dassl"), Documentation(info=" +

Test model for the BESMod.Systems.Electrical.Transfer.NoElectricalTransfer component. +<\p> +")); end NoElectricalTransfer; diff --git a/BESMod/Systems/Electrical/Transfer/Tests/PartialTest.mo b/BESMod/Systems/Electrical/Transfer/Tests/PartialTest.mo index 618ba36c..0d634098 100644 --- a/BESMod/Systems/Electrical/Transfer/Tests/PartialTest.mo +++ b/BESMod/Systems/Electrical/Transfer/Tests/PartialTest.mo @@ -19,15 +19,12 @@ equation points={{80,30},{58,30},{58,26.8},{48,26.8}}, color={191,0,0})); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=3600, __Dymola_Algorithm="Dassl"), - __Dymola_experimentSetupOutput, - __Dymola_experimentFlags( - Advanced( - EvaluateAlsoTop=true, - GenerateVariableDependencies=false, - OutputModelicaCode=false), - Evaluate=true, - OutputCPUtime=false, - OutputFlatModelica=false)); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This model represents a partial test model for electrical transfer systems. +It contains a replaceable transfer component that is constrained by +BESMod.Systems.Electrical.Transfer.BaseClasses.PartialTransfer.

+ +

The model includes fixed temperature boundary conditions for radiative and convective +heat ports connected to the transfer component.

+")); end PartialTest; From babf338a0e2bb0f31357e27619f8710503ab48be Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 20 Nov 2024 11:24:03 +0100 Subject: [PATCH 10/23] start on control --- .../Control/BaseClasses/PartialControl.mo | 18 +++++++++- .../PartialHeatPumpSystemController.mo | 15 ++++++++- .../PartialThermostaticValveControl.mo | 13 +++++++- .../BaseClasses/HeatPumpBusPassThrough.mo | 18 +++++++++- .../Components/BaseClasses/MeasuredValue.mo | 8 +++++ .../SetAndMeasuredValueSelector.mo | 20 ++++++++++- .../AlternativeBivalent.mo | 17 ++++++++++ .../BaseClasses/PartialOnOffController.mo | 22 ++++++++++++- .../Examples/OnOffControllerTest.mo | 11 ++++++- .../Examples/ParallelBivalentControl.mo | 4 +++ .../Examples/PartialOnOffController.mo | 6 +++- .../FloatingHysteresis.mo | 23 ++++++++++++- .../PartParallelBivalent.mo | 26 ++++++++++++++- .../TimeBasedElectricHeater.mo | 14 +++++++- .../Utilities/CountTimeBelowThreshold.mo | 6 +++- .../Utilities/TriggerTime.mo | 7 +++- .../Components/BoilerInHybridSystem.mo | 33 ++++++++++++++++++- .../Functions/ConstantGradientHeatCurve.mo | 10 ++++++ .../Functions/IdealHeatingCurve.mo | 7 ++++ .../BaseClasses/PartialSetpoint.mo | 8 ++++- .../Constant.mo | 6 +++- .../IdealHeatingCurve.mo | 5 +++ .../SingleZonePID.mo | 4 +++ .../BaseClasses/PartialTSet_DHW_Control.mo | 7 +++- .../Components/DHWSetControl/ConstTSet_DHW.mo | 6 ++-- .../Defrost/BaseClasses/PartialDefrost.mo | 6 +++- .../Control/Components/Defrost/NoDefrost.mo | 3 ++ .../BaseClasses/PartialControler.mo | 13 +++++++- .../RelativeSpeedController/OnOff.mo | 5 ++- .../Components/RelativeSpeedController/PID.mo | 4 +++ .../Components/SetTemperatureSGReady.mo | 15 ++++++++- 31 files changed, 336 insertions(+), 24 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialControl.mo b/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialControl.mo index 948fe4fd..921d4808 100644 --- a/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialControl.mo +++ b/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialControl.mo @@ -86,5 +86,21 @@ equation fillColor={175,175,175}, fillPattern=FillPattern.Solid)}), Diagram(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-240,-100},{240, - 100}}))); + 100}})), Documentation(info=" +

+Partial control model for a hydraulic system that serves as a base class +for implementing hydraulic control systems. +The model includes bus connectors for interfacing with generation, distribution, and +transfer subsystems, as well as connections for weather data, building measurements and user preferences. +

+ +

Important Parameters

+ +")); end PartialControl; diff --git a/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialHeatPumpSystemController.mo b/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialHeatPumpSystemController.mo index 5523a14d..5d9c8437 100644 --- a/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialHeatPumpSystemController.mo +++ b/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialHeatPumpSystemController.mo @@ -317,5 +317,18 @@ equation extent={{2,-22},{106,-42}}, lineColor={162,29,33}, lineThickness=1, - textString="Auxilliary Heater Control")})); + textString="Auxilliary Heater Control")}), Documentation(info=" +This is a partial model for controlling a heat pump system with a backup heater. +The model provides: + +
    +
  • Building heating control via PID and hysteresis
  • +
  • DHW temperature control
  • +
  • Summer mode capability
  • +
  • Optional SG-Ready functionality
  • +
  • Control for primary (heat pump) and secondary (backup) heat generators
  • +
  • Pump control based on generator operation
  • +
+ +")); end PartialHeatPumpSystemController; diff --git a/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialThermostaticValveControl.mo b/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialThermostaticValveControl.mo index 589762c4..2b3c235d 100644 --- a/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialThermostaticValveControl.mo +++ b/BESMod/Systems/Hydraulical/Control/BaseClasses/PartialThermostaticValveControl.mo @@ -65,5 +65,16 @@ equation extent={{76,-100},{180,-120}}, lineColor={162,29,33}, lineThickness=1, - textString="Thermostatic Valve")})); + textString="Thermostatic Valve")}), Documentation(info=" +

Partial model providing base functionality for thermostatic valve control.

+ +

Structure

+

The model contains:

+
    +
  • A supervisory control array for possible override of local control
  • +
  • Conditional connections for either operative or air temperature measurement from building bus
  • +
  • Temperature setpoint connection from profiles bus
  • +
  • Signal routing for valve opening to transfer bus
  • +
+")); end PartialThermostaticValveControl; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo index 2379babc..64a9f90c 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo @@ -77,5 +77,21 @@ equation lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid)}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+Model to connect the generation bus interface to the refrigerant machine bus. +It transfers all data between +BESMod.Systems.Hydraulical.Control.Components.BaseClasses.Interfaces.GenerationControlBus and +AixLib.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantMachineControlBus. +

+

+The model passes through the following signals: +

    +
  • Heat pump on/off status
  • +
  • Condenser inlet temperature
  • +
  • Condenser outlet temperature
  • +
  • Evaporator inlet temperature
  • +
+

+")); end HeatPumpBusPassThrough; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/MeasuredValue.mo b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/MeasuredValue.mo index 636285f9..dd160894 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/MeasuredValue.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/MeasuredValue.mo @@ -13,3 +13,11 @@ type MeasuredValue = enumeration( lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid)})); + annotation (Documentation(info=" +

Information

+

Enumeration type defining possible temperature measurements used for control:

+
    +
  • GenerationSupplyTemperature: Supply temperature of generation system
  • +
  • DistributionTemperature: Temperature in distribution
  • +
+")); diff --git a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/SetAndMeasuredValueSelector.mo b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/SetAndMeasuredValueSelector.mo index 4e1b5e3f..8fe24dcb 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/SetAndMeasuredValueSelector.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/SetAndMeasuredValueSelector.mo @@ -134,5 +134,23 @@ equation lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid)}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+Model to select the measured value and add to the set value accordingly based on +whether DHW loading is active or not. +The model handles switching between building heating and domestic hot water (DHW) temperatures. +It adds appropriate temperature differences between subsystems (transfer, distribution, generation) +depending on the selected measurement point. +

+ +

Important Parameters

+
    +
  • meaVal: Type of measurement to use in control (BESMod.Systems.Hydraulical.Control.Components.BaseClasses.MeasuredValue)
  • +
  • use_dhw: Enable/disable DHW functionality
  • +
  • dTTraToDis_nominal: Nominal temperature difference between transfer and distribution system
  • +
  • dTDisToGen_nominal: Nominal temperature difference between distribution and generation system
  • +
  • dTDHWToGen_nominal: Nominal temperature difference between DHW and generation system
  • +
  • dTHysDHW: DHW hysteresis to ensure control completes DHW charging quickly
  • +
+")); end SetAndMeasuredValueSelector; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/AlternativeBivalent.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/AlternativeBivalent.mo index b9ef7e1e..2771c509 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/AlternativeBivalent.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/AlternativeBivalent.mo @@ -52,4 +52,21 @@ equation annotation (Line(points={{110,-80},{88.6,-80}}, color={0,0,127})); connect(greaterEqualT_biv2.y, or3.u) annotation (Line(points={{81,-50},{82, -50},{82,-70},{74.8,-70},{74.8,-80}}, color={255,0,255})); + annotation (Documentation(info=" +

Alternative bivalent control strategy for controlling primary and secondary heat generators +based on outdoor temperature and storage temperatures. +

+ +

The primary generator is activated when:

+
    +
  • The outdoor temperature is above the bivalent temperature (T_biv)
  • +
  • AND the storage requires heating (determined by hysteresis)
  • +
+ +

The secondary generator is activated when:

+
    +
  • The outdoor temperature is below the bivalent temperature
  • +
  • AND the storage requires heating (determined by hysteresis)
  • +
+")); end AlternativeBivalent; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/BaseClasses/PartialOnOffController.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/BaseClasses/PartialOnOffController.mo index cfd9fcb8..b2568ec9 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/BaseClasses/PartialOnOffController.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/BaseClasses/PartialOnOffController.mo @@ -48,5 +48,25 @@ partial model PartialOnOffController "Partial model for an on off controller" fillPattern=FillPattern.Solid, lineThickness=0.5)}), Diagram(graphics, coordinateSystem(preserveAspectRatio= - false))); + false)), Documentation(info=" + + +

+This partial model serves as a base class for implementing on-off controllers in bivalent heating systems. +It provides the basic interface and parameters needed for controlling a primary and secondary heat generator +based on storage temperatures and setpoints. +

+ +

Important Parameters

+
    +
  • dTHys: Temperature hysteresis for the on-off control [K]
  • +
+ +
Outputs:
+
    +
  • priGenOn: Control signal for primary generator (Boolean)
  • +
  • secGenOn: Control signal for secondary/auxiliary generator (Boolean)
  • +
  • ySecGenSet: Setpoint for auxiliary generator [default=1]
  • +
+")); end PartialOnOffController; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/OnOffControllerTest.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/OnOffControllerTest.mo index 8cb2a9a0..b836510c 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/OnOffControllerTest.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/OnOffControllerTest.mo @@ -56,5 +56,14 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=86400, Interval=1)); + experiment(StopTime=86400, Interval=1), Documentation(info=" +

This is an example model that demonstrates and compares three different bivalent on/off controllers +for electric heating systems:

+ +

The model applies a sinusoidal temperature signal to test the behavior of each controller type.

+")); end OnOffControllerTest; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/ParallelBivalentControl.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/ParallelBivalentControl.mo index 34b8d922..628be61c 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/ParallelBivalentControl.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/ParallelBivalentControl.mo @@ -14,4 +14,8 @@ model ParallelBivalentControl ySecGenSet(start=0))); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

Example model for parallel bivalent operation control of two heat generators. +

+")); end ParallelBivalentControl; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/PartialOnOffController.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/PartialOnOffController.mo index 2d71efc2..992c0bc0 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/PartialOnOffController.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Examples/PartialOnOffController.mo @@ -33,5 +33,9 @@ equation experiment( StopTime=3600, Interval=1, - __Dymola_Algorithm="Dassl")); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

Partial model for testing an on/off controller with hysteresis behavior. +The controller receives a storage temperature signal that oscillates with a pulse function +around a setpoint value. Additionally, an outdoor temperature ramp signal is included.

+")); end PartialOnOffController; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/FloatingHysteresis.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/FloatingHysteresis.mo index 4fd501d7..f8b44c15 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/FloatingHysteresis.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/FloatingHysteresis.mo @@ -92,5 +92,26 @@ algorithm rotation=90), Text( extent={{-87,-84},{84,-54}}, lineColor={0,0,0}, - textString="uLow, uHigh=f(h_max, h_min, time)")})); + textString="uLow, uHigh=f(h_max, h_min, time)")}), Documentation(info=" +

This model implements a bivalent on/off controller with a floating hysteresis approach. +

+

The hysteresis value floats between a maximum and minimum value based on the operation time. +The controller manages two heat generators (primary and secondary) based on storage tank temperatures +relative to the supply temperature setpoint and the floating hysteresis band.

+ +

Important Parameters

+
    +
  • Hysteresis_max: Maximum hysteresis temperature difference (default: dTHys)
  • +
  • Hysteresis_min: Minimum hysteresis temperature difference (default: 10K)
  • +
  • time_factor: Time constant that influences how quickly the floating hysteresis reaches its average value (default: 20s)
  • +
  • dtEleHea: Time delay before activating secondary generator when conditions are met (default: 1200s)
  • +
+ +

Control Logic

+
    +
  • Primary generator activates when upper storage temperature falls below (TSupSet - Hysteresis_floating/2)
  • +
  • Both generators deactivate when lower storage temperature exceeds (TSupSet + Hysteresis_floating/2)
  • +
  • Secondary generator activates if temperature remains low for longer than dtEleHea while primary generator is running
  • +
+")); end FloatingHysteresis; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/PartParallelBivalent.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/PartParallelBivalent.mo index 2312bf32..6ca04ad2 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/PartParallelBivalent.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/PartParallelBivalent.mo @@ -108,5 +108,29 @@ equation extent={{20,-50},{94,-84}}, lineColor={28,108,200}, textString="Internal -(see equations)")})); +(see equations)")}), Documentation(info=" +

+This model implements a part-parallel bivalent control strategy for monovalent heat pump systems +with a secondary heat generator (usually an electric heater). +The control determines when to activate the heat pump and/or secondary generator based on +outdoor temperature conditions. I +

+ +

The operation modes are:

+
    +
  • T_oda < T_cutOff: Only secondary generator active
  • +
  • T_cutOff < T_oda < T_biv: Both generators active in parallel
  • +
  • T_oda > T_biv: Only heat pump active
  • +
+ +

Important Parameters

+
    +
  • TCutOff - Cut-off temperature below which only secondary generator operates
  • +
  • TBiv - Bivalence temperature marking transition between parallel/monovalent operation
  • +
  • TOda_nominal - Nominal outdoor temperature for system design
  • +
  • TRoom - Room set temperature
  • +
  • QDem_flow_nominal - Nominal heat demand
  • +
  • QHP_flow_cutOff - Heat pump capacity at cut-off temperature
  • +
+")); end PartParallelBivalent; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/TimeBasedElectricHeater.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/TimeBasedElectricHeater.mo index 7900ac21..b763ec02 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/TimeBasedElectricHeater.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/TimeBasedElectricHeater.mo @@ -112,5 +112,17 @@ equation extent={{-63,-88},{-38,-71}}, lineColor={0,0,0}, textString="uLow"),Line(points={{-69,10},{-60,10}}, color={160, - 160,164})})); + 160,164})}), Documentation(info=" +

Controller for a bivalent system with time-based auxiliary electric heater. +The controller has two hysteresis - one for the main heat generator and one for the auxiliary electric heater. +The auxiliary heater is activated when the temperature drops below the lower threshold for longer +than a specified time period.

+ +

Important Parameters

+
    +
  • dtEleHea: Time delay in seconds before activating auxiliary heater when temperature is below threshold (default: 1800s)
  • +
  • addSetDelTimEleHea: Incremental output increase of electric heater as percentage when activated (default/max: 100%)
  • +
  • dTHys: Temperature hysteresis bandwidth
  • +
+")); end TimeBasedElectricHeater; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/CountTimeBelowThreshold.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/CountTimeBelowThreshold.mo index 151a8a63..9d4d0522 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/CountTimeBelowThreshold.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/CountTimeBelowThreshold.mo @@ -11,5 +11,9 @@ algorithm end when; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Block that stores the last time instance when the boolean input signal rises +from false to true. The output y equals this time instance. This can be useful +for tracking when certain conditions last occurred in a control system.

+")); end CountTimeBelowThreshold; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/TriggerTime.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/TriggerTime.mo index 646eef01..dfe31952 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/TriggerTime.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/Utilities/TriggerTime.mo @@ -11,5 +11,10 @@ algorithm end when; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

A block to record the time when a condition becomes true. +When a rising edge is detected at the Boolean input u, +the block outputs the current simulation time to the Real output y.

+ +")); end TriggerTime; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo b/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo index 43bdcac4..15e556ed 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo @@ -73,5 +73,36 @@ equation connect(or2.y, secGenOn) annotation (Line(points={{93,0},{110,0}}, color={255,0,255})); annotation (Diagram(coordinateSystem(extent={{-100,-100},{100,100}})), Icon( - coordinateSystem(extent={{-100,-100},{80,100}}))); + coordinateSystem(extent={{-100,-100},{80,100}})), Documentation(info=" +

+Model for controlling the boiler operation in a hybrid system with primary and secondary generator. +The model decides when to operate the boiler based on outdoor temperature conditions and primary generator status. +

+ +

Important Parameters

+
    +
  • TBiv: Bivalence temperature - Temperature threshold below which secondary heating is allowed
  • +
  • TCutOff: Cut-off temperature - Temperature threshold below which boiler operation is always enabled
  • +
+ +

Control Logic

+

+The boiler is turned on if any of these conditions are met: +

    +
  • Outdoor temperature is below cut-off temperature (TCutOff)
  • +
  • All of the following conditions are true: +
      +
    • Outdoor temperature is below bivalence temperature (TBiv)
    • +
    • Secondary generator use is requested
    • +
    • Either: +
        +
      • Primary generator is blocked due to safety issues, or
      • +
      • Primary generator is running at maximum capacity (>85-90% load)
      • +
      +
    • +
    +
  • +
+

+")); end BoilerInHybridSystem; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo index 3a75ba01..d1da8020 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo @@ -6,4 +6,14 @@ protected TSup_nominal - TRet_nominal)/2) / (THeaThr - TOda_nominal); algorithm TSup := TSup_nominal - graTSupAtTOda_nominal * (TOda - TOda_nominal); + annotation (Documentation(info=" +

A simple heating curve with a constant gradient based on nominal parameters. +The gradient is calculated using nominal supply temperature TSup_nominal, nominal outdoor temperature +TOda_nominal, nominal return temperature TRet_nominal and heating threshold temperature THeaThr. +

+ +

Mathematical Description

+

The heating curve is defined by the slope graTSupAtTOda_nominal which remains +constant over the whole operating range

+")); end ConstantGradientHeatCurve; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/IdealHeatingCurve.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/IdealHeatingCurve.mo index 78ee68fd..1644726b 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/IdealHeatingCurve.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/IdealHeatingCurve.mo @@ -7,4 +7,11 @@ protected algorithm TSup := TRoom + ((TSup_nominal + TRet_nominal)/2 - TRoom) * QRel^(1/nHeaTra) + ( TSup_nominal - TRet_nominal)/2*QRel; + annotation (Documentation(info=" +

The IdealHeatingCurve function calculates a heating supply temperature setpoint +based on the outdoor temperature. +The curve represents an ideal heating curve without any linearization. +The heat transfer from the heating system to the room is modeled using a power law. +

+")); end IdealHeatingCurve; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/PartialSetpoint.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/PartialSetpoint.mo index 87dada43..07ef74e3 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/PartialSetpoint.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/PartialSetpoint.mo @@ -29,5 +29,11 @@ partial model PartialSetpoint extent={{-100,230},{100,30}}, lineColor={0,0,0}, textString="%name")}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+Partial model defining the basic structure for calculating heating supply temperature setpoints. +The model is the abstract base class for any heating temperature setpoints calculations and provides +the interfaces and parameters commonly used. +

+")); end PartialSetpoint; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/Constant.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/Constant.mo index ba31207b..f3c59ea5 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/Constant.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/Constant.mo @@ -8,5 +8,9 @@ model Constant "Constant supply temperature" equation connect(const.y, TSet) - annotation (Line(points={{81,0},{94,0},{94,0},{110,0}}, color={0,0,127})); + annotation (Line(points={{81,0},{94,0},{94,0},{110,0}}, color={0,0,127}), Documentation(info=" +

Model to generate a constant building supply temperature setpoint. +The constant supply temperature is set through a parameter input and remains +constant throughout the entire simulation time.

+")); end Constant; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/IdealHeatingCurve.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/IdealHeatingCurve.mo index 1db289a3..f8fff7b3 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/IdealHeatingCurve.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/IdealHeatingCurve.mo @@ -21,4 +21,9 @@ equation end if; connect(maxTZoneSet.u, TZoneSet) annotation (Line(points={{-60,-70},{-84,-70},{-84, -80},{-120,-80}}, color={0,0,127})); + annotation (Documentation(info=" +

Model for an ideal linear heating curve that calculates the supply temperature +setpoint based on outdoor temperature. +The heating curve is disabled when outdoor temperature exceeds the maximum zone setpoint temperature.

+")); end IdealHeatingCurve; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/SingleZonePID.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/SingleZonePID.mo index 3c1623ba..aa3da996 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/SingleZonePID.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/SingleZonePID.mo @@ -29,4 +29,8 @@ equation {-120,-80}}, color={0,0,127})); connect(PI.u_m, TZoneMea[1]) annotation (Line(points={{0,-12},{0,-32},{-70,-32}, {-70,80},{-120,80}}, color={0,0,127})); + annotation (Documentation(info=" +

Single zone PID controller that sets the building supply temperature based on +room temperature deviation. The controller is limited to exactly one zone.

+")); end SingleZonePID; diff --git a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/BaseClasses/PartialTSet_DHW_Control.mo b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/BaseClasses/PartialTSet_DHW_Control.mo index 38e1678c..0d10cd25 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/BaseClasses/PartialTSet_DHW_Control.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/BaseClasses/PartialTSet_DHW_Control.mo @@ -22,5 +22,10 @@ partial model PartialTSet_DHW_Control "Model to output the dhw set temperature" lineColor={28,108,200}, lineThickness=1, textString="%name")}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Partial model for domestic hot water (DHW) set temperature control.

+

This model provides the basic structure to output a DHW set temperature and a +boolean signal for auxiliary heating. It is meant to be extended by other models +implementing specific control strategies.

+")); end PartialTSet_DHW_Control; diff --git a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo index 35413cd8..3d18495f 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/ConstTSet_DHW.mo @@ -32,8 +32,8 @@ equation Text( extent={{70,-80},{94,-100}}, textString="time"), - Line(points={{-90,-70},{82,-70}}, color={95,95,95})}), Documentation( - info=" -

This class creates a constant DHW set temperature.

+ Line(points={{-90,-70},{82,-70}}, color={95,95,95})}), Documentation(info=" +

This model provides a constant domestic hot water (DHW) set temperature. + It uses a constant block to output the nominal DHW temperature setpoint.

")); end ConstTSet_DHW; diff --git a/BESMod/Systems/Hydraulical/Control/Components/Defrost/BaseClasses/PartialDefrost.mo b/BESMod/Systems/Hydraulical/Control/Components/Defrost/BaseClasses/PartialDefrost.mo index ad31ac07..5e90265a 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/Defrost/BaseClasses/PartialDefrost.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/Defrost/BaseClasses/PartialDefrost.mo @@ -17,5 +17,9 @@ partial model PartialDefrost "Partial model for defrost control" extent={{-76,102},{66,66}}, lineColor={28,108,200}, textString="%name%")}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Partial model that serves as a base class for defrost control implementations of heat pumps. +The model includes a signal bus containing the most relevant information +for heat pump frosting calculation and provides a boolean output for heating mode operation.

+")); end PartialDefrost; diff --git a/BESMod/Systems/Hydraulical/Control/Components/Defrost/NoDefrost.mo b/BESMod/Systems/Hydraulical/Control/Components/Defrost/NoDefrost.mo index 87fcd676..40f2db01 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/Defrost/NoDefrost.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/Defrost/NoDefrost.mo @@ -12,4 +12,7 @@ equation extent={{-68,-50},{80,48}}, lineColor={0,0,0}, textString="=1")})); + annotation (Documentation(info=" +

Simple defrost model which disables defrost by always enabling heating mode.

+")); end NoDefrost; diff --git a/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/BaseClasses/PartialControler.mo b/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/BaseClasses/PartialControler.mo index a23ad535..570ac154 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/BaseClasses/PartialControler.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/BaseClasses/PartialControler.mo @@ -64,5 +64,16 @@ equation fillColor={215,215,215}, fillPattern=FillPattern.Solid, lineThickness=0.5)}), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+This is a partial controller model that serves as a base class for relative speed controllers. +It includes basic controller functionality with temperature feedback and error calculation. +The model provides both Integral Absolute Error (IAE) and Integral Square Error (ISE) as performance metrics. +

+ +

Important Parameters

+
    +
  • yMax: Upper limit of controller output (default = 1)
  • +
+")); end PartialControler; diff --git a/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/OnOff.mo b/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/OnOff.mo index de7408c7..ca03b375 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/OnOff.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/OnOff.mo @@ -24,5 +24,8 @@ equation Ellipse(lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, - extent={{25.0,-10.0},{45.0,10.0}})})); + extent={{25.0,-10.0},{45.0,10.0}})}), Documentation(info=" +

On-off controller model that converts a boolean input signal into a real output signal. +The output is either yMax (when input is true) or 0 (when input is false).

+")); end OnOff; diff --git a/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/PID.mo b/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/PID.mo index 6ea214b7..15caccad 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/PID.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/RelativeSpeedController/PID.mo @@ -59,4 +59,8 @@ equation -54,-54}}, color={255,0,255})); connect(isOn, and1.u2) annotation (Line(points={{-60,-120},{-60,-62},{-54,-62}}, color={255,0,255})); + annotation (Documentation(info=" +

PID controller for inverter controlled devices with anti-windup compensation. +The controller can be turned on/off using a boolean input signal.

+")); end PID; diff --git a/BESMod/Systems/Hydraulical/Control/Components/SetTemperatureSGReady.mo b/BESMod/Systems/Hydraulical/Control/Components/SetTemperatureSGReady.mo index a20a2c9e..04a2454f 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/SetTemperatureSGReady.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/SetTemperatureSGReady.mo @@ -60,5 +60,18 @@ equation connect(conIntSig2.y, internalSignal.u) annotation (Line(points={{-39,-72},{-32, -72},{-32,-50},{-22,-50}}, color={255,127,0})); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Model for adjusting temperature setpoints according to SG-Ready signals. +The model takes a base temperature setpoint and modifies it based on the current SG-Ready state. +SG-Ready is a smart grid protocol with 4 operating states:

+
    +
  • State 1: Off/Blocked operation
  • +
  • State 2: Normal operation (no modification)
  • +
  • State 3: Recommended on (+TAddSta3)
  • +
  • State 4: Forced on (+TAddSta4)
  • +
+ +

Can either use external SG-Ready signals or read signals from a file. Related models:

+ +")); end SetTemperatureSGReady; From a2abbd2779dde9c3fd120afd55153ae89e38ae5e Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 20 Nov 2024 17:52:39 +0100 Subject: [PATCH 11/23] add hydraulic control --- .../BaseClasses/PartialSummerMode.mo | 5 +++++ .../BaseClasses/SummerTimeConstraint.mo | 12 +++++++++++- .../Components/SummerMode/DateBased.mo | 8 ++++++++ .../HeatingThresholdAndDateBased.mo | 9 +++++++++ .../Control/Components/SummerMode/No.mo | 4 ++++ .../PartialThermostaticValveController.mo | 10 +++++++++- .../ConstantOpening.mo | 4 ++++ .../ThermostaticValvePControlled.mo | 12 +++++++++++- .../ThermostaticValvePIControlled.mo | 9 ++++++++- .../Systems/Hydraulical/Control/GasBoiler.mo | 19 +++++++++++++++++++ .../Control/HybridHeatPumpSystem.mo | 18 ++++++++++++++++++ .../Control/MonoenergeticHeatPumpSystem.mo | 11 +++++++++++ .../RecordsCollection/BasicBoilerPI.mo | 3 +++ .../RecordsCollection/BasicHeatPumpPI.mo | 4 ++++ .../RecordsCollection/DefaultSafetyControl.mo | 5 +++++ .../HeatPumpSafetyControl.mo | 11 ++++++++++- .../RecordsCollection/SmartThermostatPI.mo | 14 ++++++++++++++ 17 files changed, 153 insertions(+), 5 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/PartialSummerMode.mo b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/PartialSummerMode.mo index d40cbd3e..1e6c2b5e 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/PartialSummerMode.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/PartialSummerMode.mo @@ -7,4 +7,9 @@ partial model PartialSummerMode "Partial summer mode model" annotation (Placement(transformation(extent={{100,-10},{120,10}}))); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Partial model defining a basic interface for summer mode determination. +The model takes outdoor air temperature as input and provides a +boolean output signal indicating if summer mode is active.

+")); end PartialSummerMode; diff --git a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/SummerTimeConstraint.mo b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/SummerTimeConstraint.mo index 3cb36577..1da913ce 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/SummerTimeConstraint.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/BaseClasses/SummerTimeConstraint.mo @@ -15,5 +15,15 @@ equation y = u > threshold; end if; annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+This model determines if summer mode is activated based on the current +simulation time and an input signal. +

+

+The output y is true for winter mode +(before summer start or after summer end) and depends on the +input comparison with threshold during summer period. +

+")); end SummerTimeConstraint; diff --git a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/DateBased.mo b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/DateBased.mo index b0782553..47be251d 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/DateBased.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/DateBased.mo @@ -14,4 +14,12 @@ equation sumMod = false; end if; + annotation (Documentation(info=" +

Model for summer/winter mode control based on calendar dates. +Summer mode is activated between the configurable start and end time +during the year. +Default values are May 1st (start) and October 1st (end). +The model uses UNIX timestamps in seconds for date comparison, +with start of the year (January 1st) as reference point.

+")); end DateBased; diff --git a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/HeatingThresholdAndDateBased.mo b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/HeatingThresholdAndDateBased.mo index 77c91969..c3f1244d 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/HeatingThresholdAndDateBased.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/HeatingThresholdAndDateBased.mo @@ -37,4 +37,13 @@ equation annotation (Line(points={{66,0},{59,0}}, color={255,0,255})); connect(not2.y, sumMod) annotation (Line(points={{89,0},{110,0}}, color={255,0,255})); + annotation (Documentation(info=" +

This model implements a summer mode control strategy based on both +outdoor temperature threshold and calendar dates. +The summer mode is activated when either:

+
    +
  • The outdoor temperature exceeds the heating threshold temperature (with hysteresis)
  • +
  • The current time falls between the defined summer start and end dates
  • +
+")); end HeatingThresholdAndDateBased; diff --git a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/No.mo b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/No.mo index c1704445..ba70c7e4 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/SummerMode/No.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/SummerMode/No.mo @@ -7,4 +7,8 @@ model No "No summer mode approach" equation connect(noSumMod.y, sumMod) annotation (Line(points={{11,0},{110,0}}, color={255,0,255})); + annotation (Documentation(info=" +

Simple model which sets summer mode to false. +

+")); end No; diff --git a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/BaseClasses/PartialThermostaticValveController.mo b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/BaseClasses/PartialThermostaticValveController.mo index e6a7d3dc..24d11225 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/BaseClasses/PartialThermostaticValveController.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/BaseClasses/PartialThermostaticValveController.mo @@ -18,5 +18,13 @@ partial model PartialThermostaticValveController fillColor={215,215,215}, fillPattern=FillPattern.Solid, lineThickness=0.5)}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+This is the base class model for thermostatic valve controllers. +It defines basic interface requirements and parameters that should +be implemented by any extending model. +The model defines inputs for measured and setpoint zone temperatures and +outputs valve opening positions. +

+")); end PartialThermostaticValveController; diff --git a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ConstantOpening.mo b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ConstantOpening.mo index 7f45b87e..cdcf4c1b 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ConstantOpening.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ConstantOpening.mo @@ -9,4 +9,8 @@ public equation connect(const.y, opening) annotation (Line(points={{13,0},{120,0},{120,0}}, color={0,0,127})); + annotation (Documentation(info=" +

Model for a constant opening of thermostatical valves. +The valve opening is set to a fixed value for all zones.

+")); end ConstantOpening; diff --git a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePControlled.mo b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePControlled.mo index 1f63601c..9bcc99cf 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePControlled.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePControlled.mo @@ -34,5 +34,15 @@ equation lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid)}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

A thermostatic valve controller implementing a P-control strategy. +The valve opening is determined based on the deviation between +the zone set temperature and measured temperature. +

+
    +
  • Kvs[nZones]: Kv value at full valve opening (=1)
  • +
  • Kv_setT[nZones]: Kv value when set temperature equals measured temperature
  • +
  • P[nZones]: Temperature deviation at which valve is fully closed
  • +
+")); end ThermostaticValvePControlled; diff --git a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePIControlled.mo b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePIControlled.mo index 1ba573a9..2194fffe 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePIControlled.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/ThermostaticValveController/ThermostaticValvePIControlled.mo @@ -37,5 +37,12 @@ equation Line(points={{-80,-80},{-80,-20},{-80,-20},{52,80}}, color={0,0,127})}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+This model implements a PI controller for thermostatic valves to +control room temperatures. +The PI control outputs are limited between a minimum leakage opening +and a maximum opening of 1. +

+")); end ThermostaticValvePIControlled; diff --git a/BESMod/Systems/Hydraulical/Control/GasBoiler.mo b/BESMod/Systems/Hydraulical/Control/GasBoiler.mo index b74f92ac..f41625ba 100644 --- a/BESMod/Systems/Hydraulical/Control/GasBoiler.mo +++ b/BESMod/Systems/Hydraulical/Control/GasBoiler.mo @@ -201,4 +201,23 @@ equation index=1, extent={{-6,3},{-6,3}}, horizontalAlignment=TextAlignment.Right)); + annotation (Documentation(info=" +

This model implements a PI control strategy for a gas boiler +system with optional domestic hot water (DHW) support. +The control includes:

+
    +
  • Weather-compensated supply temperature control via heating curve
  • +
  • On/off control for building heating with hysteresis
  • +
  • On/off control for DHW charging with hysteresis
  • +
  • PID control of boiler temperature
  • +
  • Three-way valve control for DHW priority
  • +
+ +

Important Parameters

+
    +
  • dTHysBui - Hysteresis temperature difference for building demand control
  • +
  • dTHysDHW - Hysteresis temperature difference for DHW demand control
  • +
  • parPID - Parameter record containing all PID control parameters
  • +
+")); end GasBoiler; diff --git a/BESMod/Systems/Hydraulical/Control/HybridHeatPumpSystem.mo b/BESMod/Systems/Hydraulical/Control/HybridHeatPumpSystem.mo index cbe6e015..fa82f836 100644 --- a/BESMod/Systems/Hydraulical/Control/HybridHeatPumpSystem.mo +++ b/BESMod/Systems/Hydraulical/Control/HybridHeatPumpSystem.mo @@ -111,4 +111,22 @@ equation connect(buiAndDHWCtr.priGren, priGenPIDCtrl.setOn) annotation (Line(points={{ -118,27.5},{-118,26},{74,26},{74,74},{96,74},{96,90},{100.4,90}}, color={255,0,255})); + annotation (Documentation(info=" +

+A controller for hybrid heat pump systems with a PID controlled boiler. +The model includes control logic for switching between the +heat pump (primary device) and boiler (secondary device) based on +bivalence and cutoff temperatures. +The boiler can be placed either in the generation or +distribution system. +

+ +

Important Parameters

+
    +
  • TBiv: Bivalence temperature - Temperature threshold that determines when the boiler starts operation
  • +
  • TCutOff: Cutoff temperature - Temperature at which heat pump operation is disabled
  • +
  • boiInGeneration: Boolean parameter to specify if boiler is placed in generation (true) or distribution (false) system
  • +
  • parPIDBoi: PID control parameters for the boiler
  • +
+")); end HybridHeatPumpSystem; diff --git a/BESMod/Systems/Hydraulical/Control/MonoenergeticHeatPumpSystem.mo b/BESMod/Systems/Hydraulical/Control/MonoenergeticHeatPumpSystem.mo index 485ab2ce..82e67f6d 100644 --- a/BESMod/Systems/Hydraulical/Control/MonoenergeticHeatPumpSystem.mo +++ b/BESMod/Systems/Hydraulical/Control/MonoenergeticHeatPumpSystem.mo @@ -32,4 +32,15 @@ equation connect(buiAndDHWCtr.priGren, priGenPIDCtrl.setOn) annotation (Line(points={{ -118,27.5},{-100,27.5},{-100,30},{-10,30},{-10,78},{-8,78},{-8,90},{ 100.4,90}}, color={255,0,255})); + annotation (Documentation(info=" +

This model implements a monoenergetic heat pump system controller +with an on/off electric heater as backup/second generator. +

+

The model implements the following key connections:

+
    +
  • Secondary generator control signal is switched between setpoint and zero based on demand
  • +
  • Primary generator operation is controlled via PID controller
  • +
  • Building and DHW controller provides switching signals for both generators
  • +
+")); end MonoenergeticHeatPumpSystem; diff --git a/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicBoilerPI.mo b/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicBoilerPI.mo index f7b156bf..08c0515f 100644 --- a/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicBoilerPI.mo +++ b/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicBoilerPI.mo @@ -10,4 +10,7 @@ record BasicBoilerPI "Currently used PI values for a boiler" yOff=0, yMax=1, yMin=0.3); + annotation (Documentation(info=" +

Default PI controller parameter set for boiler control.

+")); end BasicBoilerPI; diff --git a/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicHeatPumpPI.mo b/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicHeatPumpPI.mo index e13c0215..972239e3 100644 --- a/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicHeatPumpPI.mo +++ b/BESMod/Systems/Hydraulical/Control/RecordsCollection/BasicHeatPumpPI.mo @@ -8,4 +8,8 @@ record BasicHeatPumpPI "Typically good PI values for a heat pump" yOff=0, yMax=1, yMin=0.3); + annotation (Documentation(info=" +

Record containing typical PI parameter values for heat pump control. +

+")); end BasicHeatPumpPI; diff --git a/BESMod/Systems/Hydraulical/Control/RecordsCollection/DefaultSafetyControl.mo b/BESMod/Systems/Hydraulical/Control/RecordsCollection/DefaultSafetyControl.mo index 50be82bc..f8fa1bc1 100644 --- a/BESMod/Systems/Hydraulical/Control/RecordsCollection/DefaultSafetyControl.mo +++ b/BESMod/Systems/Hydraulical/Control/RecordsCollection/DefaultSafetyControl.mo @@ -1,4 +1,9 @@ within BESMod.Systems.Hydraulical.Control.RecordsCollection; record DefaultSafetyControl extends Systems.Hydraulical.Control.RecordsCollection.HeatPumpSafetyControl; + annotation (Documentation(info=" +

Record that extends from +BESMod.Systems.Hydraulical.Control.RecordsCollection.HeatPumpSafetyControl +to provide default parameters for heat pump safety control.

+")); end DefaultSafetyControl; diff --git a/BESMod/Systems/Hydraulical/Control/RecordsCollection/HeatPumpSafetyControl.mo b/BESMod/Systems/Hydraulical/Control/RecordsCollection/HeatPumpSafetyControl.mo index 0cf4125c..b521cf89 100644 --- a/BESMod/Systems/Hydraulical/Control/RecordsCollection/HeatPumpSafetyControl.mo +++ b/BESMod/Systems/Hydraulical/Control/RecordsCollection/HeatPumpSafetyControl.mo @@ -30,5 +30,14 @@ partial record HeatPumpSafetyControl annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Information

+

+This record contains control parameters for safe heat pump operation +including minimum runtime, minimum lock time, maximum cycles per hour, +and operational envelope settings. +It is implemented as a partial record, meaning it must be extended +by other records to be used. +

+")); end HeatPumpSafetyControl; diff --git a/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo b/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo index 99ab7409..860a05b7 100644 --- a/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo +++ b/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo @@ -10,4 +10,18 @@ record SmartThermostatPI final yMin=293.15, final timeDer=0, final Nd=10); + annotation (Documentation(info=" +

This record contains typical PI controller values for a +smart thermostat. +It pre-configures the parameters for stable room temperature control.

+ +

Important Parameters

+
    +
  • timeInt = 500: Integration time constant [s]
  • +
  • P = 1: Proportional gain [-]
  • +
  • yMax = 328.15: Maximum output temperature (55°C) [K]
  • +
  • yOff = 293.15: Output offset (20°C) [K]
  • +
  • yMin = 293.15: Minimum output temperature (20°C) [K]
  • +
+")); end SmartThermostatPI; From 1cb21b21df12e842a4cb214224390021faec2a9f Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Wed, 20 Nov 2024 20:10:37 +0100 Subject: [PATCH 12/23] add some distribution doc --- .../BaseClasses/PartialDHWParameters.mo | 29 ++++++++++++++++++- .../BaseClasses/PartialDistribution.mo | 7 ++++- .../PartialTwoStorageParallelWithHeaters.mo | 16 +++++++++- .../Hydraulical/Distribution/CombiStorage.mo | 17 +++++++++++ .../Valves/Tests/PressureReliefExample.mo | 11 ++++++- .../Valves/Tests/TestThreeWayValve.mo | 7 ++++- .../Valves/ThreeWayValveWithFlowReturn.mo | 9 +++++- .../BufferStorageBaseDataDefinition.mo | 8 +++++ .../BufferStorage/DefaultDetailedStorage.mo | 9 ++++++ .../BufferStorage/bufferData.mo | 4 +++ .../DistributionControlBaseDataDefinition.mo | 7 +++++ .../RecordsCollection/GetStorageInsulation.mo | 11 +++++++ .../SimpleStorage/DefaultStorage.mo | 11 +++++++ .../SimpleStorageBaseDataDefinition.mo | 7 +++++ .../Distribution/Tests/PartialTest.mo | 9 +++--- .../Distribution/Tests/TestBoilerWithDHW.mo | 11 +++++++ .../Distribution/Tests/TestCombiStorage.mo | 9 ++++++ .../Distribution/Tests/TestDirectLoading.mo | 6 ++++ .../Distribution/Tests/TestIndirectLoading.mo | 8 +++++ .../Distribution/Tests/TestOnlyBuilding.mo | 7 +++++ .../Distribution/Tests/TestOnlyDHW.mo | 4 +++ .../Distribution/Tests/TestSimpleStorages.mo | 6 ++++ .../TwoStoDetailedDirectLoading.mo | 7 +++++ .../TwoStoDetailedIndirectLoading.mo | 16 ++++++++++ .../Distribution/TwoStoragesBoilerWithDHW.mo | 7 +++++ .../Distribution/Types/EnergyLabel.mo | 6 ++++ .../Distribution/Types/HeaterType.mo | 11 +++++++ 27 files changed, 250 insertions(+), 10 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDHWParameters.mo b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDHWParameters.mo index 4cc9689a..8133243e 100644 --- a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDHWParameters.mo +++ b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDHWParameters.mo @@ -32,5 +32,32 @@ model PartialDHWParameters annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+This model defines parameters for a Domestic Hot Water (DHW) system +based on EN 15450. It serves as a partial model with three +different DHW design types: +

+
    +
  • No Storage
  • +
  • Partial Storage
  • +
  • Full Storage
  • +
+ +

Important Parameters

+
    +
  • mDHW_flow_nominal - Nominal mass flow rate
  • +
  • QDHW_flow_nominal - Nominal heat flow rate to DHW
  • +
  • QDHWBefSto_flow_nominal - Nominal heat flow rate before storage
  • +
  • TDHW_nominal - Nominal DHW temperature
  • +
  • VDHWDay - Daily volume of DHW tapping
  • +
  • VStoDHW - Volume of DHW storage (when storage is used)
  • +
  • tCrit - Critical period time based on EN 15450 (when storage is used)
  • +
+ +

References

+
    +
  • EN 15450 - Heating systems in buildings - Design of heat pump heating systems
  • +
+")); end PartialDHWParameters; diff --git a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDistribution.mo b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDistribution.mo index 60eedaeb..cca2afa5 100644 --- a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDistribution.mo +++ b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialDistribution.mo @@ -95,5 +95,10 @@ equation end if; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This is a partial model for hydraulic distribution systems in +building energy systems. +The model implements interfaces for generation, transfer and domestic hot water (DHW). +

+")); end PartialDistribution; diff --git a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallelWithHeaters.mo b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallelWithHeaters.mo index ee4afab5..abd42cef 100644 --- a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallelWithHeaters.mo +++ b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallelWithHeaters.mo @@ -143,5 +143,19 @@ equation index=1, extent={{-6,3},{-6,3}}, horizontalAlignment=TextAlignment.Right)); - annotation (Diagram(coordinateSystem(extent={{-100,-180},{100,140}}))); + annotation (Diagram(coordinateSystem(extent={{-100,-180},{100,140}})), Documentation(info=" +

This is a partial model for a two storage hydraulic distribution +system with additional heaters. +The model adds the possibility to include either an electric +heater or a boiler after the buffer storage.

+ +

Important Parameters

+
    +
  • QHeaAftBuf_flow_nominal: Nominal heat flow rate of heater after DHW storage
  • +
  • heaAftBufTyp: Type of heater after the buffer storage (No/ElectricHeater/Boiler)
  • +
  • parEleHeaAftBuf: Parameters for electric heater after buffer storage
  • +
  • etaTem: Temperature based efficiency table for boiler [Temperature (K), Efficiency]
  • +
  • parBoi: Parameter record for boiler configuration
  • +
+")); end PartialTwoStorageParallelWithHeaters; diff --git a/BESMod/Systems/Hydraulical/Distribution/CombiStorage.mo b/BESMod/Systems/Hydraulical/Distribution/CombiStorage.mo index a365a9d6..205a6589 100644 --- a/BESMod/Systems/Hydraulical/Distribution/CombiStorage.mo +++ b/BESMod/Systems/Hydraulical/Distribution/CombiStorage.mo @@ -203,4 +203,21 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

This model represents a combined storage tank for heating, +domestic hot water (DHW) and solar thermal assistance. +The storage tank contains two internal heat exchangers: +

+
    +
  • Heat exchanger 1: For DHW preparation
  • +
  • Heat exchanger 2: For space heating
  • +
+ +

Important Parameters

+
    +
  • parameters: Record containing storage configuration (volume, insulation, heat exchangers etc.)
  • +
  • n: Number of storage layers for discretization
  • +
  • use_hr: True to enable electric heating rod
  • +
+")); end CombiStorage; diff --git a/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/PressureReliefExample.mo b/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/PressureReliefExample.mo index b2ec6c36..949cb12f 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/PressureReliefExample.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/PressureReliefExample.mo @@ -91,5 +91,14 @@ equation {-70,30},{-60,30}}, color={0,127,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=3, __Dymola_Algorithm="Dassl")); + experiment(StopTime=3, __Dymola_Algorithm="Dassl"), Documentation(info=" +

+Example model showing the functionality of a pressure relief valve +in a simple hydraulic circuit. +The circuit consists of a speed-controlled pump, +a pressure relief valve, a fixed resistance, and a two-way valve. +When the two-way valve closes, the pressure relief valve +opens to protect the system from excessive pressure. +

+")); end PressureReliefExample; diff --git a/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/TestThreeWayValve.mo b/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/TestThreeWayValve.mo index 3c052795..43041450 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/TestThreeWayValve.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Components/Valves/Tests/TestThreeWayValve.mo @@ -91,5 +91,10 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=1000, __Dymola_Algorithm="Dassl")); + experiment(StopTime=1000, __Dymola_Algorithm="Dassl"), Documentation(info=" +

Test model for a three way valve with flow return paths. +The model tests the valve behavior by controlling the valve +position with a pulse signal while having a sawtooth mass +flow input for the pump.

+")); end TestThreeWayValve; diff --git a/BESMod/Systems/Hydraulical/Distribution/Components/Valves/ThreeWayValveWithFlowReturn.mo b/BESMod/Systems/Hydraulical/Distribution/Components/Valves/ThreeWayValveWithFlowReturn.mo index 4faa324c..19bbcbc7 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Components/Valves/ThreeWayValveWithFlowReturn.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Components/Valves/ThreeWayValveWithFlowReturn.mo @@ -112,5 +112,12 @@ equation lineThickness=0.5, fillColor={28,108,200}, fillPattern=FillPattern.Solid)}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

+Model for a three way valve used to control flow mixing between +space heating and domestic hot water loading branches. +The model contains two parallel return lines from both consumers +(DHW and space heating) to the generation system. +

+")); end ThreeWayValveWithFlowReturn; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/BufferStorageBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/BufferStorageBaseDataDefinition.mo index 48dcd594..29d64de1 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/BufferStorageBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/BufferStorageBaseDataDefinition.mo @@ -45,4 +45,12 @@ record BufferStorageBaseDataDefinition enable=use_HC2)); + annotation (Documentation(info=" +

+Record that defines the basic parameters for a buffer storage tank. +It includes parameters for an optional electric heater and a second +heating coil (HC2) geometry (lengthHC2), fluid velocity (vHC2_nominal), and heat +transfer coefficient (hConHC2). +

+")); end BufferStorageBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/DefaultDetailedStorage.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/DefaultDetailedStorage.mo index 6eca36c1..7b5c6452 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/DefaultDetailedStorage.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/DefaultDetailedStorage.mo @@ -3,4 +3,13 @@ record DefaultDetailedStorage extends BufferStorageBaseDataDefinition( energyLabel=BESMod.Systems.Hydraulical.Distribution.Types.EnergyLabel.B, dTLoadingHC1=5); + annotation (Documentation(info=" +

+This record extends the basic buffer storage +definition for hydraulic distribution systems. +It represents a detailed buffer storage configuration with energy +efficiency class B and a temperature difference for loading the +heating circuit 1 (dTLoadingHC1) of 5 Kelvin. +

+")); end DefaultDetailedStorage; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/bufferData.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/bufferData.mo index c778114d..7b2b9809 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/bufferData.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/BufferStorage/bufferData.mo @@ -20,4 +20,8 @@ record bufferData "Simpler design for this repo" hUpperPortDemand=hTank, hLowerPortDemand=0); + annotation (Documentation(info=" +

Record for simplified buffer storage data extending from +The model implements a standard buffer storage tank with fixed geometric parameters.

+")); end bufferData; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/DistributionControlBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/DistributionControlBaseDataDefinition.mo index d8d42c36..2a36bd0a 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/DistributionControlBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/DistributionControlBaseDataDefinition.mo @@ -6,4 +6,11 @@ record DistributionControlBaseDataDefinition "Nominal temperature difference to transfer heat to DHW" annotation (Dialog(group="DHW Demand")); + annotation (Documentation(info=" +

Record that extends base parameters for DHW system control and design. +Combines general subsystem control parameters from +BESMod.Systems.RecordsCollection.SubsystemControlBaseDataDefinition +and DHW design parameters from BESMod.Systems.Hydraulical.RecordsCollection.DHWDesignParameters. +

+")); end DistributionControlBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/GetStorageInsulation.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/GetStorageInsulation.mo index 85a3215f..54e1612d 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/GetStorageInsulation.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/GetStorageInsulation.mo @@ -17,4 +17,15 @@ function GetStorageInsulation algorithm y := 1 - dT_loss * (2*Modelica.Constants.pi*h/(1/(hConIn*d/2) + 1/lambda_ins*log((d/2 + u)/(d/2)) + 1/(hConOut*(d/2 + u))) + 2 * (Modelica.Constants.pi * d ^ 2 / 4 * lambda_ins / u)) / (QLoss_flow); + annotation (Documentation(info=" +

+Function to calculate the insulation accuracy of a storage tank. +The function calculates the percentage deviation between calculated +heat losses through specified insulation parameters and given heat losses. +

+

References

+
    +
  • DIN EN 15332: Heating boilers - Energy assessment of hot water storage systems
  • +
+")); end GetStorageInsulation; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo index d4c0df9d..8cb016ae 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo @@ -4,4 +4,15 @@ record DefaultStorage "Default storage data" energyLabel=BESMod.Systems.Hydraulical.Distribution.Types.EnergyLabel.B, kappa=0.4, beta=350e-6); + annotation (Documentation(info=" +

Default storage model that extends the +SimpleStorageBaseDataDefinition +with predefined values for: +

+
    +
  • Energy efficiency label: B
  • +
  • Heat transfer coefficient (kappa): 0.4 W/(m²K)
  • +
  • Volume expansion coefficient (beta): 350e-6 1/K
  • +
+")); end DefaultStorage; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/SimpleStorageBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/SimpleStorageBaseDataDefinition.mo index c0c427c9..4ef6bed1 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/SimpleStorageBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/SimpleStorageBaseDataDefinition.mo @@ -18,4 +18,11 @@ partial record SimpleStorageBaseDataDefinition parameter Modelica.Units.SI.RelativePressureCoefficient beta; parameter Real kappa; + annotation (Documentation(info=" +

+This is a partial record that contains the base data definition +for a simple storage model. +It extends from PartialStorageBaseDataDefinition with a fixed heat connection 1 (use_HC1=true). +

+")); end SimpleStorageBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/PartialTest.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/PartialTest.mo index bc1e9d7c..a97d60d8 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/PartialTest.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/PartialTest.mo @@ -174,8 +174,9 @@ equation {32,20.8},{32,26},{39,26},{39,24}}, color={0,127,255})); connect(res1.port_b, fanTra.port_a) annotation (Line(points={{52,24},{56,24},{ 56,18},{62,18}}, color={0,127,255})); - annotation (experiment( - StopTime=864000, - Interval=600, - __Dymola_Algorithm="Dassl")); + annotation (Documentation(info=" +This model is a test model for hydraulic distribution systems +in BES (Building Energy Systems). +It provides a partial template for testing different distribution systems. +")); end PartialTest; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestBoilerWithDHW.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestBoilerWithDHW.mo index 0cd27a12..f3de5e71 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestBoilerWithDHW.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestBoilerWithDHW.mo @@ -45,4 +45,15 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a hydraulic distribution system consisting of a +boiler connected to a buffer storage tank and a +domestic hot water (DHW) storage tank.

+ +

Test Signals

+
    +
  • Three way valve control: Pulse signal with period 100s
  • +
  • Boiler control: Daily pulse signal (period 86400s) with 10% width, starting at t=3600s
  • +
+")); end TestBoilerWithDHW; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestCombiStorage.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestCombiStorage.mo index d4b972df..8aae299f 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestCombiStorage.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestCombiStorage.mo @@ -11,4 +11,13 @@ model TestCombiStorage dTLoadingHC2=5))); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

Test model for a combined storage tank system +(BESMod.Systems.Hydraulical.Distribution.CombiStorage).

+

The model extends the partial test model and configures a +combined storage system with two heating circuits. +Both heating circuits are activated and use a temperature +difference of 5K for loading.

+ +")); end TestCombiStorage; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestDirectLoading.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestDirectLoading.mo index 5bb01ed2..d9215d6b 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestDirectLoading.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestDirectLoading.mo @@ -34,4 +34,10 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a two-storage system with direct loading +(buffer and DHW storage). The storage tanks can be loaded directly +from a heat pump and include electric backup heaters.

+

The model uses a pulse signal with period=100 to control the three-way valve position.

+")); end TestDirectLoading; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestIndirectLoading.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestIndirectLoading.mo index 919dc2f5..a9d146df 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestIndirectLoading.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestIndirectLoading.mo @@ -35,4 +35,12 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Information

+

Test model for an indirect loading distribution system with two +detailed storage tanks (buffer and DHW). +This model tests BESMod.Systems.Hydraulical.Distribution.TwoStoDetailedIndirectLoading distribution system.

+

The model includes a pulse generator with period=100 that controls the +three-way valve position through the signal bus.

+")); end TestIndirectLoading; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyBuilding.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyBuilding.mo index 9947a356..89864043 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyBuilding.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyBuilding.mo @@ -5,4 +5,11 @@ model TestOnlyBuilding distribution(nParallelDem=1)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

+Test case for a hydraulic distribution system containing only building distribution +without any storages. The test is for BuildingOnly +distribution model with a single parallel demand circuit (nParallelDem=1). +

+")); end TestOnlyBuilding; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyDHW.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyDHW.mo index 57e214c2..38c4b2df 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyDHW.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestOnlyDHW.mo @@ -5,4 +5,8 @@ model TestOnlyDHW distribution(nParallelDem=1)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

Test model for a domestic hot water only hydraulic distribution system. +The model tests DHWOnly as the distribution system.

+")); end TestOnlyDHW; diff --git a/BESMod/Systems/Hydraulical/Distribution/Tests/TestSimpleStorages.mo b/BESMod/Systems/Hydraulical/Distribution/Tests/TestSimpleStorages.mo index dadde777..47d4babd 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Tests/TestSimpleStorages.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Tests/TestSimpleStorages.mo @@ -23,4 +23,10 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a hydraulic distribution system with two parallel +storage tanks (buffer storage and DHW storage) with a +three-way-valve for flow distribution.

+

The three-way valve is controlled by a pulse signal with a period of 100s.

+")); end TestSimpleStorages; diff --git a/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedDirectLoading.mo b/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedDirectLoading.mo index d1042076..02af9df9 100644 --- a/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedDirectLoading.mo +++ b/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedDirectLoading.mo @@ -16,4 +16,11 @@ equation color={0,127,255})); connect(portBui_in[1], stoBuf.fluidportBottom2) annotation (Line(points={{100, 40},{70,40},{70,-8},{-29.4,-8},{-29.4,-0.2}}, color={0,127,255})); + annotation (Documentation(info=" +

Model for two storage system with direct loading for space +heating purposes. The buffer storage is loaded by the heat +generators and directly supplies the space heating transer +system. The DHW storage is supplied with heat from +the heat generators.

+")); end TwoStoDetailedDirectLoading; diff --git a/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedIndirectLoading.mo b/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedIndirectLoading.mo index 6aaef6e7..088f76fa 100644 --- a/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedIndirectLoading.mo +++ b/BESMod/Systems/Hydraulical/Distribution/TwoStoDetailedIndirectLoading.mo @@ -25,4 +25,20 @@ equation color={0,127,255})); connect(bouPumBuf.ports[2], portBui_in[1]) annotation (Line(points={{52,20},{52, 28},{84,28},{84,40},{100,40}}, color={0,127,255})); + annotation (Documentation(info=" +

Model of a hydraulic distribution system with two detailed +storage tanks connected in parallel with heaters. +The space heating circuit is indirectly loaded through a heating +coil in the buffer storage.

+ +

The model extends PartialTwoStorageParallelWithHeaters +and adds a pressure boundary for the transfer circuit since the generation circuit is not directly connected.

+ +

Structure

+
    +
  • Buffer storage with integrated heating coil for space heating
  • +
  • Three-way valve for distribution between buffer and DHW storage
  • +
  • Pressure boundary component for the transfer circuit
  • +
+")); end TwoStoDetailedIndirectLoading; diff --git a/BESMod/Systems/Hydraulical/Distribution/TwoStoragesBoilerWithDHW.mo b/BESMod/Systems/Hydraulical/Distribution/TwoStoragesBoilerWithDHW.mo index f848cc94..ec32cac9 100644 --- a/BESMod/Systems/Hydraulical/Distribution/TwoStoragesBoilerWithDHW.mo +++ b/BESMod/Systems/Hydraulical/Distribution/TwoStoragesBoilerWithDHW.mo @@ -253,4 +253,11 @@ equation connect(threeWayValveWithFlowReturn.portBui_a, stoBuf.fluidportBottom1) annotation (Line(points={{-60,74},{-56,74},{-56,-10},{-39.4,-10},{-39.4,-0.4}}, color={0,127,255})); + annotation (Documentation(info=" +

This model is a hydraulic distribution system with two storages +(buffer and DHW) and a boiler after the buffer storage. +The boiler can charge both storages but prioritizes DHW. +The hydraulic separator decouples the generation and consumption +circuits.

+")); end TwoStoragesBoilerWithDHW; diff --git a/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo b/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo index 5d00bcaa..2ac010cd 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo @@ -9,3 +9,9 @@ type EnergyLabel = enumeration( F "F", G "G") "Determines the quality of insualtion of the storage tank"; + annotation (Documentation(info=" +This is an enumerator type that specifies different energy +efficiency labels, commonly used to classify energy efficiency +of storage tanks or other hydraulic components. +The labels range from A+ (most efficient) to G (least efficient). TODO: Add doc with reference? +")); \ No newline at end of file diff --git a/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo b/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo index e4a76ccc..7f83c20e 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo @@ -7,3 +7,14 @@ type HeaterType = enumeration( Boiler "Use a boiler") "Select between boiler, electric heater or no additional heater"; + annotation (Documentation(info=" +

+Enumeration type to select between different types of additional +heaters in distribution systems: +

+
    +
  • No: No additional heater
  • +
  • ElectricHeater: Additional electric heater
  • +
  • Boiler: Additional boiler as backup heater
  • +
+")); From 0e1b84ff12dab930304ae6b729af5ed405e20a8e Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 07:39:10 +0100 Subject: [PATCH 13/23] all but generation in hydraulic --- .../Generation/Types/GenerationDesign.mo | 17 ++++++++++++++ BESMod/Systems/Hydraulical/HydraulicSystem.mo | 4 ++++ .../RecordsCollection/DHWDesignParameters.mo | 8 +++++++ .../HydraulicSystemBaseDataDefinition.mo | 4 ++++ .../Transfer/BaseClasses/PartialTransfer.mo | 7 +++++- .../Transfer/IdealValveRadiator.mo | 13 +++++++++++ .../Transfer/RadiatorPressureBased.mo | 22 ++++++++++++++++++ .../RecordsCollection/DefaultUFHData.mo | 5 ++++ .../RecordsCollection/RadiatorTransferData.mo | 6 +++++ .../SteelRadiatorStandardPressureLossData.mo | 15 ++++++++++++ .../TransferControlBaseDataDefinition.mo | 6 +++++ .../TransferDataBaseDefinition.mo | 23 ++++++++++++++++++- .../Transfer/RecordsCollection/UFHData.mo | 8 +++++++ .../UnderfloorHeatingTransferData.mo | 10 ++++++++ .../Hydraulical/Transfer/Tests/PartialTest.mo | 10 ++++++++ .../Tests/TestIdealValveRadiatorSystem.mo | 4 ++++ .../Transfer/Tests/TestPressureBasedSystem.mo | 6 +++++ .../TestPressureBasedSystemWithReliefValve.mo | 12 ++++++++++ .../Transfer/Tests/TestUnderfloorHeating.mo | 11 +++++++++ .../Transfer/Types/HeatTransferSystemType.mo | 16 +++++++++++++ .../Transfer/Types/HydraulicResistanceType.mo | 13 +++++++++++ .../Transfer/Types/PressureDropPerLength.mo | 3 +++ 22 files changed, 221 insertions(+), 2 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo b/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo index 6c784bf6..d094c6fa 100644 --- a/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo +++ b/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo @@ -5,3 +5,20 @@ type GenerationDesign = enumeration( BivalentParallel "Bivalent parallel", BivalentPartParallel "Bivalent partly parallel") "Choose between different design options for primary generation"; + annotation (Documentation(info=" +

Information

+

+Enumeration type for choosing the design configuration for +the primary heat generation system. +Depending on the selected design, one or two heat generators +can operate in different control schemes. +

+ +

Possible design options:

+
    +
  • Monovalent: Operation with a single heat generator only
  • +
  • BivalentAlternativ: Two heat generators operating exclusively (either one or the other)
  • +
  • BivalentParallel: Two heat generators that can run simultaneously
  • +
  • BivalentPartParallel: Two heat generators that run partly in parallel operation
  • +
+")); diff --git a/BESMod/Systems/Hydraulical/HydraulicSystem.mo b/BESMod/Systems/Hydraulical/HydraulicSystem.mo index c75cc947..e5fef49c 100644 --- a/BESMod/Systems/Hydraulical/HydraulicSystem.mo +++ b/BESMod/Systems/Hydraulical/HydraulicSystem.mo @@ -2,4 +2,8 @@ within BESMod.Systems.Hydraulical; model HydraulicSystem "Build your custom hydraulic system" extends BaseClasses.PartialHydraulicSystem; + annotation (Documentation(info=" +

Base model to build custom hydraulic system models. +Extends BESMod.Systems.Hydraulical.BaseClasses.PartialHydraulicSystem +which provides the base structure and interfaces.

")); end HydraulicSystem; diff --git a/BESMod/Systems/Hydraulical/RecordsCollection/DHWDesignParameters.mo b/BESMod/Systems/Hydraulical/RecordsCollection/DHWDesignParameters.mo index d0cbbab7..dfe07ff7 100644 --- a/BESMod/Systems/Hydraulical/RecordsCollection/DHWDesignParameters.mo +++ b/BESMod/Systems/Hydraulical/RecordsCollection/DHWDesignParameters.mo @@ -14,4 +14,12 @@ record DHWDesignParameters parameter Real QCrit "Energy demand in kWh during critical period. Based on EN 15450" annotation (Dialog(group="Design - Bottom Up: Parameters are defined by the subsystem", enable=designType == BESMod.Systems.Hydraulical.Distribution.Types.DHWDesignType.PartStorage)); + annotation (Documentation(info=" +

Record containing design parameters for domestic hot water (DHW) +systems compliant with EN 15450. Can be used for both storage and +instantaneous DHW systems.

+ +

References

+

EN 15450 - Heating systems in buildings - Design of heat pump heating systems

+")); end DHWDesignParameters; diff --git a/BESMod/Systems/Hydraulical/RecordsCollection/HydraulicSystemBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/RecordsCollection/HydraulicSystemBaseDataDefinition.mo index 76791461..17651111 100644 --- a/BESMod/Systems/Hydraulical/RecordsCollection/HydraulicSystemBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/RecordsCollection/HydraulicSystemBaseDataDefinition.mo @@ -2,4 +2,8 @@ within BESMod.Systems.Hydraulical.RecordsCollection; record HydraulicSystemBaseDataDefinition extends BESMod.Systems.RecordsCollection.SupplySystemBaseDataDefinition; extends BESMod.Systems.Hydraulical.RecordsCollection.DHWDesignParameters; + annotation (Documentation(info=" +

Base data record for hydraulic systems that combines +system-level parameters with domestic hot water parameters.

+")); end HydraulicSystemBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Transfer/BaseClasses/PartialTransfer.mo b/BESMod/Systems/Hydraulical/Transfer/BaseClasses/PartialTransfer.mo index 228e3cad..80237eea 100644 --- a/BESMod/Systems/Hydraulical/Transfer/BaseClasses/PartialTransfer.mo +++ b/BESMod/Systems/Hydraulical/Transfer/BaseClasses/PartialTransfer.mo @@ -92,5 +92,10 @@ partial model PartialTransfer "Partial transfer model for BES" annotation (Placement(transformation(extent={{62,-108},{82,-88}}))); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +This is a partial transfer module serves as a base class +for modeling heat transfer systems in buildings. +It defines fluid ports for the transfer system and +heat ports for radiative and convective heat transfer with room air. +")); end PartialTransfer; diff --git a/BESMod/Systems/Hydraulical/Transfer/IdealValveRadiator.mo b/BESMod/Systems/Hydraulical/Transfer/IdealValveRadiator.mo index 9cd8375a..7a3aa0fd 100644 --- a/BESMod/Systems/Hydraulical/Transfer/IdealValveRadiator.mo +++ b/BESMod/Systems/Hydraulical/Transfer/IdealValveRadiator.mo @@ -179,4 +179,17 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +This model represents a hydronic heating system with radiators +and ideal thermostatic valves. +It uses radiators according to the EN 442-2 standard. + +The model includes: +
    +
  • Radiators with configurable number of elements
  • +
  • Fixed hydraulic resistances for supply lines and radiators
  • +
  • Flow-controlled pumps
  • +
  • Support for multiple parallel demand zones
  • +
+")); end IdealValveRadiator; diff --git a/BESMod/Systems/Hydraulical/Transfer/RadiatorPressureBased.mo b/BESMod/Systems/Hydraulical/Transfer/RadiatorPressureBased.mo index fb3204f6..dcd99388 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RadiatorPressureBased.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RadiatorPressureBased.mo @@ -227,4 +227,26 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Information

+

+Pressure-based transfer system with radiators according to EN442-2. +The model can be used for single or multiple radiator circuits +with thermostatic radiator valves. +A pump circulates the heating water through the radiators. +Optionally, a pressure relief valve can be used to allow mass flow +when all valves are closed. +

+ +

Important Parameters

+
    +
  • use_preRelVal: Enable/disable pressure relief valve
  • +
  • perPreRelValOpens: Opening threshold of relief valve as percentage of nominal pressure
  • +
  • parTra: Transfer system parameters (pressures drops, valve characteristics)
  • +
  • parPum: Pump parameters
  • +
  • parRad: Radiator parameters according to EN442-2 (number of elements, radiative fraction)
  • +
  • use_oldRad_design: Use radiator design for non-retrofitted state
  • +
+ +")); end RadiatorPressureBased; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/DefaultUFHData.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/DefaultUFHData.mo index aca2af1e..170070fa 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/DefaultUFHData.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/DefaultUFHData.mo @@ -9,4 +9,9 @@ record DefaultUFHData "For a well insulated retrofit building" k_top=fill(4.47, nZones), is_groundFloor=fill(true, nZones), area=fill(0, nZones)); + annotation (Documentation(info=" +

Default parameters for an underfloor heating system suitable +for well-insulated retrofit buildings. +

+")); end DefaultUFHData; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/RadiatorTransferData.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/RadiatorTransferData.mo index 111d9099..791aa71f 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/RadiatorTransferData.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/RadiatorTransferData.mo @@ -6,4 +6,10 @@ record RadiatorTransferData parameter Real fraRad=0.35 "Fraction radiant heat transfer"; parameter Real n=1.24 "Exponent for heat transfer"; + annotation (Documentation(info=" +

Record that contains the basic parameters to define a +radiator's heat transfer characteristics in + BESMod.Systems.Hydraulical.Transfer. +

+")); end RadiatorTransferData; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/SteelRadiatorStandardPressureLossData.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/SteelRadiatorStandardPressureLossData.mo index d5cf5f01..84c78816 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/SteelRadiatorStandardPressureLossData.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/SteelRadiatorStandardPressureLossData.mo @@ -8,4 +8,19 @@ record SteelRadiatorStandardPressureLossData typeOfHydRes=BESMod.Systems.Hydraulical.Transfer.Types.HydraulicResistanceType.FittingAndThermostatAndCheckValve, traType=BESMod.Systems.Hydraulical.Transfer.Types.HeatTransferSystemType.SteelRadiator); + annotation (Documentation(info=" +

+Record defining parameters for a steel radiator heating system +with standard pressure losses of 100 Pa/m. +

+ +

Important Parameters

+
    +
  • valveAutho: Valve authority, set to 0.5 for all zones
  • +
  • perPreLosRad: Pressure loss coefficient for radiator set to 0.05
  • +
  • pressureDropPerLen: Pressure drop per length of pipe set to 100 Pa/m
  • +
  • typeOfHydRes: Hydraulic resistance type set to FittingAndThermostatAndCheckValve
  • +
  • traType: Heat transfer system type set to SteelRadiator
  • +
+")); end SteelRadiatorStandardPressureLossData; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferControlBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferControlBaseDataDefinition.mo index 6f240592..a8cea7fa 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferControlBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferControlBaseDataDefinition.mo @@ -20,4 +20,10 @@ record TransferControlBaseDataDefinition "Design - Top Down: Parameters are given by the parent system")); parameter Real nHeaTra "Exponent of heat transfer system"; + annotation (Documentation(info=" +

Information

+

+Record defining base data for transfer system control in building energy systems. +

+")); end TransferControlBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferDataBaseDefinition.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferDataBaseDefinition.mo index f7e33941..63fe7d52 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferDataBaseDefinition.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/TransferDataBaseDefinition.mo @@ -62,5 +62,26 @@ partial record TransferDataBaseDefinition "Data record for hydraulic heat transf annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

This record contains parameters to define a hydraulic heat +transfer system, including building properties, volume calculations, +pressure drops, radiator characteristics, valve settings +and pump specifications.

+ +

Important Parameters

+
    +
  • nZones: Number of heated zones in the building
  • +
  • Q_flow_nominal: Nominal heat flow rate per zone
  • +
  • traType: Heat transfer system type
  • +
  • pressureDropPerLen: Maximum allowed pressure drop per meter in heat distribution system
  • +
  • valveAutho: Valve authority (typical value: 0.5)
  • +
  • use_hydrBalAutom: Enable automatic hydraulic balancing
  • +
+ +

References

+
    +
  • Babusch (2009) - Referenced for surcharge factors for hydraulic resistances in piping networks
  • +
  • Taschenbuch f�r HEIZUNG + KLIMATECHNIK 2019 - Referenced for pressure drop calculations
  • +
+")); end TransferDataBaseDefinition; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UFHData.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UFHData.mo index 0f544acd..499296e5 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UFHData.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UFHData.mo @@ -16,4 +16,12 @@ partial record UFHData parameter Modelica.Units.SI.Temperature T_floor "Fixed temperature at floor (soil)"; + annotation (Documentation(info=" +

Partial record defining the core parameters of an underfloor +heating system. This record is used as base class for more +specialized underfloor heating configurations. +It is a collection of parameters that define the geometric and +thermodynamic properties of the underfloor heating system in +multiple zones.

+")); end UFHData; diff --git a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UnderfloorHeatingTransferData.mo b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UnderfloorHeatingTransferData.mo index 375c65bc..e710554b 100644 --- a/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UnderfloorHeatingTransferData.mo +++ b/BESMod/Systems/Hydraulical/Transfer/RecordsCollection/UnderfloorHeatingTransferData.mo @@ -8,4 +8,14 @@ record UnderfloorHeatingTransferData typeOfHydRes=BESMod.Systems.Hydraulical.Transfer.Types.HydraulicResistanceType.FittingAndThermostatAndCheckValve, traType=BESMod.Systems.Hydraulical.Transfer.Types.HeatTransferSystemType.FloorHeating); +annotation (Documentation(info=" +

Record for underfloor heating with the following fixed parameters:

+
    +
  • Valve authority: 0.5 for all zones
  • +
  • Relative pressure loss through radiator: 5%
  • +
  • Pressure drop per length: 100 Pa/m
  • +
  • Hydraulic resistance type: Fitting, thermostat and check valve
  • +
  • Heat transfer system type: Floor heating
  • +
+")); end UnderfloorHeatingTransferData; diff --git a/BESMod/Systems/Hydraulical/Transfer/Tests/PartialTest.mo b/BESMod/Systems/Hydraulical/Transfer/Tests/PartialTest.mo index 2265d89e..717127ee 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Tests/PartialTest.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Tests/PartialTest.mo @@ -93,4 +93,14 @@ equation connect(bou1.ports[1], vol.ports[3]) annotation (Line(points={{-60,-30},{-54, -30},{-54,-4},{-58,-4},{-58,11.3333},{-60,11.3333}}, color={0,127,255})); + annotation (Documentation(info=" +

Partial model for testing different transfer systems implementations. +The model contains a basic setup with:

+
    +
  • A replaceable transfer system extending from BESMod.Systems.Hydraulical.Transfer.BaseClasses.PartialTransfer
  • +
  • A water mixing volume connected to the transfer system
  • +
  • A prescribed temperature boundary condition simulating room temperature with sinusoidal variation
  • +
  • Control bus connection for transfer system control signals
  • +
+")); end PartialTest; diff --git a/BESMod/Systems/Hydraulical/Transfer/Tests/TestIdealValveRadiatorSystem.mo b/BESMod/Systems/Hydraulical/Transfer/Tests/TestIdealValveRadiatorSystem.mo index 397e7e7c..ad18360f 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Tests/TestIdealValveRadiatorSystem.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Tests/TestIdealValveRadiatorSystem.mo @@ -13,4 +13,8 @@ model TestIdealValveRadiatorSystem parTra)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

A test model for a radiator heating system with ideal valve control.

+

The tested system is an BESMod.Systems.Hydraulical.Transfer.IdealValveRadiator.

+")); end TestIdealValveRadiatorSystem; diff --git a/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystem.mo b/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystem.mo index 68a7f043..707bca39 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystem.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystem.mo @@ -15,4 +15,10 @@ model TestPressureBasedSystem parRad)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

+This model tests the BESMod.Systems.Hydraulical.Transfer.RadiatorPressureBased +transfer model with standard steel radiator parameters. +

+")); end TestPressureBasedSystem; diff --git a/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo b/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo index a87072f3..8e2f238b 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo @@ -16,4 +16,16 @@ model TestPressureBasedSystemWithReliefValve parRad)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

+Test model to validate a pressure-based heating system with a relief valve. +Tests BESMod.Systems.Hydraulical.Transfer.RadiatorPressureBased +transfer system with a relief valve enabled. +

+Key settings: +
    +
  • use_preRelVal = true (Relief valve enabled)
  • +
+

+")); end TestPressureBasedSystemWithReliefValve; diff --git a/BESMod/Systems/Hydraulical/Transfer/Tests/TestUnderfloorHeating.mo b/BESMod/Systems/Hydraulical/Transfer/Tests/TestUnderfloorHeating.mo index dd45c5af..722a1bd6 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Tests/TestUnderfloorHeating.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Tests/TestUnderfloorHeating.mo @@ -13,4 +13,15 @@ model TestUnderfloorHeating parTra)); extends Modelica.Icons.Example; + annotation (Documentation(info=" +

+Test model for underfloor heating system BESMod.Systems.Hydraulical.Transfer.UFHTransferSystem +model with default parameters for: +

+ +")); end TestUnderfloorHeating; diff --git a/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo b/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo index fed06657..db37c925 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo @@ -6,3 +6,19 @@ type HeatTransferSystemType = enumeration( PanelRadiators, Convectors) "Type of the heating system for calculating volume of distribution and transfer system"; + annotation (Documentation(info=" +

+Enumeration type for defining different heat transfer systems in buildings. +This type is used to calculate the volume of the distribution and +transfer system based on the selected heating system type. +

+ +

The enumeration includes the following options:

+
    +
  • FloorHeating: Floor heating system with pipes embedded in floor construction
  • +
  • SteelRadiator: Steel panel radiators
  • +
  • CastRadiator: Cast iron radiators
  • +
  • PanelRadiators: Panel type radiators
  • +
  • Convectors: Convector heating units
  • +
+")); \ No newline at end of file diff --git a/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo b/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo index f7329e3f..07ff59b6 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo @@ -1,3 +1,16 @@ + annotation (Documentation(info=" +

Enumeration defining different types of hydraulic resistances +that can be present in hydronic systems.

+ +

Important Parameters

+
    +
  • Fittings: Only considers pipe fittings resistance
  • +
  • Thermostat: Only considers thermostatic valve resistance
  • +
  • CheckValve: Only considers check valve, gravity brake or mixing valve resistance
  • +
  • FittingAndThermostat: Combines resistance of fittings and thermostatic valve
  • +
  • FittingAndThermostatAndCheckValve: Combines resistance of fittings, thermostatic valve and check valve
  • +
+")); within BESMod.Systems.Hydraulical.Transfer.Types; type HydraulicResistanceType = enumeration( Fittings "Fittings only", diff --git a/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo b/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo index c7247228..8b410e05 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo @@ -1,3 +1,6 @@ + annotation (Documentation(info=" +

Type for pressure drop per length with unit Pascal per meter (Pa/m).

+")); within BESMod.Systems.Hydraulical.Transfer.Types; type PressureDropPerLength = Real ( final quantity="Modelica.SIunits.Pressure/Modelica.SIunits.Length", From efb43401adca85bb181dcad42feca162e5a01e32 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 08:57:16 +0100 Subject: [PATCH 14/23] add remaining docs --- .../BaseClasses/PartialGeneration.mo | 13 ++++++- .../PartialHeatPumpAndGasBoiler.mo | 18 ++++++++++ .../DetailedSolarThermalWithHeatPump.mo | 35 +++++++++++++++++++ .../Generation/ElectricalHeater.mo | 14 ++++++++ .../Hydraulical/Generation/GasBoiler.mo | 15 ++++++++ .../Hydraulical/Generation/HeatPump.mo | 9 +++++ .../Generation/HeatPumpAndElectricHeater.mo | 20 +++++++++++ .../HeatPumpAndGasBoilerParallel.mo | 17 +++++++++ .../Generation/HeatPumpAndGasBoilerSerial.mo | 6 ++++ .../ElectricHeater/DefaultElectricHeater.mo | 4 +++ .../ElectricHeater/Generic.mo | 5 +++ .../RecordsCollection/HeatPumps/DefaultHP.mo | 15 ++++++++ .../RecordsCollection/HeatPumps/Generic.mo | 10 ++++-- .../SolarThermal/DefaultSolarThermal.mo | 3 ++ .../SimpleSolarThermalWithHeatPump.mo | 12 ++++++- .../Generation/Tests/ElectricalHeater.mo | 13 +++++++ .../Hydraulical/Generation/Tests/GasBoiler.mo | 8 +++++ .../Hydraulical/Generation/Tests/HeatPump.mo | 5 +++ .../Tests/HeatPumpAndElectricHeater.mo | 6 ++++ .../Tests/HeatPumpAndGasBoilerParallel.mo | 6 ++++ .../Tests/HeatPumpAndGasBoilerSeries.mo | 6 ++++ .../Generation/Tests/PartialTest.mo | 19 +++++++++- .../Tests/SolarThermalAndHeatPumpDetailed.mo | 3 ++ .../Tests/SolarThermalAndHeatPumpSimple.mo | 5 +++ 24 files changed, 261 insertions(+), 6 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialGeneration.mo b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialGeneration.mo index 359b126b..f243b883 100644 --- a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialGeneration.mo +++ b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialGeneration.mo @@ -42,5 +42,16 @@ partial model PartialGeneration "Partial generation model for HPS" annotation (Placement(transformation(extent={{62,-110},{82,-90}}))); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

Partial generation model for hydraulic generation subsystems in building energy systems. +Extends BESMod.Utilities.Icons.GenerationIcon and +BESMod.Systems.BaseClasses.PartialFluidSubsystemWithParameters.

+ +

The model provides basic parameters and interfaces for heat generation systems including:

+
    +
  • Fluid ports for supply and return
  • +
  • Weather bus connection
  • +
  • Control bus interface
  • +
  • Electrical interface
  • +
")); end PartialGeneration; diff --git a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPumpAndGasBoiler.mo b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPumpAndGasBoiler.mo index 2b4e8c0c..8e5d5e72 100644 --- a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPumpAndGasBoiler.mo +++ b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPumpAndGasBoiler.mo @@ -77,4 +77,22 @@ equation color={255,204,51}, thickness=0.5), Diagram(coordinateSystem(extent={{-180,-140},{100,100}}))); + annotation (Documentation(info=" +

Partial model for a bivalent-parallel generation system combining a heat pump +with a gas boiler. +The model extends the PartialHeatPump base class.

+ +

Important Parameters

+
    +
  • etaTem: Matrix of temperature-dependent efficiencies. First column contains temperatures [K], second column contains corresponding efficiency factors.
  • +
  • parBoi: Boiler parameters record inheriting from BoilerTwoPointBaseDataDefinition
  • +
  • Q_nom: Nominal heating power, automatically sized to at least 11 kW or secondary nominal heat flow rate
  • +
+ +

Components

+ +")); end PartialHeatPumpAndGasBoiler; diff --git a/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo b/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo index 99e1b9b3..6ce472b8 100644 --- a/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo @@ -172,4 +172,39 @@ equation extent={{94,-198},{-218,-136}}, lineColor={0,0,0}, lineThickness=1)})); + annotation (Documentation(info=" +

+This model implements a detailed solar thermal system coupled with a monoenergetic heat pump. +The solar thermal collector is modeled according to the EN12975 standard and can be connected in series configuration. +The model extends BESMod.Systems.Hydraulical.Generation.HeatPumpAndElectricHeater. +

+ +

Important Parameters

+
    +
  • solarThermalParas: Solar thermal parameters record containing collector specifications
  • +
  • parPumSolThe: Parameters for the solar thermal pump
  • +
  • Collector specifications: +
      +
    • Azimuth angle: 0° (South-facing)
    • +
    • Tilt angle: 30°
    • +
    • Ground reflectance: 0.2
    • +
    • Configuration: Series connection
    • +
    +
  • +
+ +

Key Components

+ + +

Control Features

+
    +
  • Hysteresis control for solar pump operation based on direct normal irradiance
  • +
  • ON: DNI > 100 W/m²
  • +
  • OFF: DNI < 10 W/m²
  • +
+")); end DetailedSolarThermalWithHeatPump; diff --git a/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo b/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo index 6acdf32f..84de9d3b 100644 --- a/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/ElectricalHeater.mo @@ -163,4 +163,18 @@ equation horizontalAlignment=TextAlignment.Left)); connect(hea.port_b, portGen_out[1]) annotation (Line(points={{-32,26},{-32,40}, {20,40},{20,80},{100,80}}, color={0,127,255})); + annotation (Documentation(info=" +

Model of a modulating electrical heater with pump for use in heating systems. +The heating rod provides heat based on a control signal. +A circulation pump ensures flow through the heating rod when it is active. +When the heating rod is off, the pump is deactivated and a bypass is used to maintain +flow in the rest of the system.

+ +

Key Components

+ +")); end ElectricalHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/GasBoiler.mo b/BESMod/Systems/Hydraulical/Generation/GasBoiler.mo index e598ab38..e90bc1d9 100644 --- a/BESMod/Systems/Hydraulical/Generation/GasBoiler.mo +++ b/BESMod/Systems/Hydraulical/Generation/GasBoiler.mo @@ -148,4 +148,19 @@ equation index=1, extent={{-6,3},{-6,3}}, horizontalAlignment=TextAlignment.Right)); + annotation (Documentation(info=" +

+This model represents a gas boiler with external control. +It uses the AixLib.Fluid.BoilerCHP.BoilerNoControl +as core component. +

+ +

Important Parameters

+
    +
  • etaTem: Temperature-dependent efficiency curve defined as table data [Temperature in K, Efficiency]
  • +
  • parBoi: Parameter record containing boiler specifications, must have minimum nominal power of max(11000, Q_flow_nominal[1])
  • +
  • parTemSen: Parameter record for temperature sensor configuration
  • +
  • parPum: Parameter record for pump configuration
  • +
+")); end GasBoiler; diff --git a/BESMod/Systems/Hydraulical/Generation/HeatPump.mo b/BESMod/Systems/Hydraulical/Generation/HeatPump.mo index 931c9020..2970096d 100644 --- a/BESMod/Systems/Hydraulical/Generation/HeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/HeatPump.mo @@ -14,4 +14,13 @@ equation {32,80},{32,44},{-30,44},{-30,35}}, color={0,127,255})); connect(heatPump.port_a1, pump.port_b) annotation (Line(points={{-30,0},{-30, -70},{1.77636e-15,-70}}, color={0,127,255})); + annotation (Documentation(info=" +

Information

+

Monovalent heat pump system model. +This model implements a heat pump as the sole heat generator without any backup/auxiliary heater.

+ +

Model Structure

+

This model extends BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialHeatPump

+ +")); end HeatPump; diff --git a/BESMod/Systems/Hydraulical/Generation/HeatPumpAndElectricHeater.mo b/BESMod/Systems/Hydraulical/Generation/HeatPumpAndElectricHeater.mo index 143b58de..a177350e 100644 --- a/BESMod/Systems/Hydraulical/Generation/HeatPumpAndElectricHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/HeatPumpAndElectricHeater.mo @@ -91,4 +91,24 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

This model represents a heat pump system with an electric heater connected in series. +The electric heater can be disabled by setting use_eleHea=false. +The model extends the base partial heat pump model +BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialHeatPump +and is configured for bivalent parallel design.

+ +

Important Parameters

+
    +
  • parEleHea: Parameters for electric heater (efficiency, volume, pressure drop etc.)
  • +
  • use_eleHea: Boolean to enable/disable electric heater
  • +
  • dp_nominal: Nominal pressure drops (sum of heat pump condenser and electric heater)
  • +
+ +

Key Components

+ +")); end HeatPumpAndElectricHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerParallel.mo b/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerParallel.mo index 12c74d76..3da4ae10 100644 --- a/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerParallel.mo +++ b/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerParallel.mo @@ -46,4 +46,21 @@ equation index=1, extent={{-3,-6},{-3,-6}}, horizontalAlignment=TextAlignment.Right)); + annotation (Documentation(info=" +

+This model implements a parallel connection between a heat pump and a gas boiler. +The system uses a three-way valve to switch between the heat sources based on control signals. +

+

+The model extends +PartialHeatPumpAndGasBoiler with parallel configuration functionality. +

+ +

Components

+ + +")); end HeatPumpAndGasBoilerParallel; diff --git a/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerSerial.mo b/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerSerial.mo index eb6810ce..5ad01acf 100644 --- a/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerSerial.mo +++ b/BESMod/Systems/Hydraulical/Generation/HeatPumpAndGasBoilerSerial.mo @@ -17,4 +17,10 @@ equation color={255,204,51}, thickness=0.5), Diagram(coordinateSystem(extent={{-180,-140},{100,100}}))); + annotation (Documentation(info=" +

Model for heating system with serial arrangement of heat pump and boiler. +The heat pump is the primary heat generator and can be boosted by the boiler connected in +series for higher temperatures.

+

Extends BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialHeatPumpAndGasBoiler

+")); end HeatPumpAndGasBoilerSerial; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo index ec9ca017..75145c50 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo @@ -6,4 +6,8 @@ record DefaultElectricHeater "97 % efficiency" V_hr=0.001, eta=0.97, dp_nominal(displayUnit="Pa") = 1000); + annotation (Documentation(info=" +

Record containing default parameters for an electric heating element with 97% efficiency.

+

The value is based on the assumption in: Vering, C., Maier, L., Breuer, K., Krützfeldt, H., Streblow, R., & Müller, D. (2022). Evaluating heat pump system design methods towards a sustainable heat supply in residential buildings. Applied Energy, 308, 118204.

+")); end DefaultElectricHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/Generic.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/Generic.mo index ab2b9a2e..bb484bac 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/Generic.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/Generic.mo @@ -13,4 +13,9 @@ partial record Generic annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

+Partial record defining base parameters for electric heater generation models in building energy systems. +

+")); end Generic; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/DefaultHP.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/DefaultHP.mo index 46e247c9..1a8e326a 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/DefaultHP.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/DefaultHP.mo @@ -15,4 +15,19 @@ record DefaultHP "No heat loss, standard pressure loss" tauCon=30, dpCon_nominal(displayUnit="Pa") = 125); + annotation (Documentation(info=" +

Record with default parameters for a heat pump model without heat losses and standard pressure losses.

+ +

Important Parameters

+
    +
  • GEvaIns, GEvaOut: Thermal conductance at evaporator insulation (inner/outer) set to 0
  • +
  • GConIns, GConOut: Thermal conductance at condenser insulation (inner/outer) set to 0
  • +
  • CEva, CCon: Heat capacity of evaporator/condenser set to 0
  • +
  • use_evaCap, use_conCap: Flags to enable thermal capacity for evaporator/condenser set to false
  • +
  • tauEva, tauCon: Time constant of evaporator/condenser set to 30s
  • +
  • dpEva_nominal: Nominal pressure drop at evaporator set to 0 Pa
  • +
  • dpCon_nominal: Nominal pressure drop at condenser set to 125 Pa
  • +
  • dTEva_nominal: Nominal temperature drop at evaporator set to 3 K
  • +
+")); end DefaultHP; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/Generic.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/Generic.mo index fcb75ef4..d3868324 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/Generic.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/HeatPumps/Generic.mo @@ -33,7 +33,11 @@ partial record Generic parameter Modelica.Units.SI.ThermalConductance GEvaIns=0 "Inner thermal conductance for evaporator heat loss calculations" annotation(Dialog(enable=use_evaCap)); - annotation (Icon(graphics, - coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

Information

+

Generic parameter record for heat pumps. +Contains basic parameters describing the condenser and evaporator behavior +including pressure drops, heat transfer time constants, and optional heat loss calculations +using a capacitor model approach.

+")); end Generic; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/DefaultSolarThermal.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/DefaultSolarThermal.mo index 205580bf..7f3b6605 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/DefaultSolarThermal.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/DefaultSolarThermal.mo @@ -9,4 +9,7 @@ record DefaultSolarThermal "DummyParameters" volPip=5e-3, m_flow_nominal=0.1); + annotation (Documentation(info=" +

Record containing default parameters for a basic solar thermal system model.

+")); end DefaultSolarThermal; diff --git a/BESMod/Systems/Hydraulical/Generation/SimpleSolarThermalWithHeatPump.mo b/BESMod/Systems/Hydraulical/Generation/SimpleSolarThermalWithHeatPump.mo index 7fe1546d..6db1783e 100644 --- a/BESMod/Systems/Hydraulical/Generation/SimpleSolarThermalWithHeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/SimpleSolarThermalWithHeatPump.mo @@ -163,5 +163,15 @@ equation lineThickness=1), Text( extent={{-188,-122},{-124,-140}}, textColor={0,0,0}, - textString="Solar Thermal")})); + textString="Solar Thermal")}), Documentation(info=" +This model implements a simple solar thermal collector system combined with a monoenergetic heat pump. +The system consists of: + +

Control

+The solar thermal pump runs continuously at full speed (control signal = 1). +")); end SimpleSolarThermalWithHeatPump; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/ElectricalHeater.mo b/BESMod/Systems/Hydraulical/Generation/Tests/ElectricalHeater.mo index 8cfb6497..a40df4af 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/ElectricalHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/ElectricalHeater.mo @@ -17,4 +17,17 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

+ Test model for an electrical heater system. + The model uses an electrical heater as generation system with default parameter + settings for the pump and the electrical heater itself. +

+ +

Control

+

+ The model uses a constant control signal (value = 1) connected to the generation control bus +variable uEleHea for the electrical heater operation. +

+")); end ElectricalHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/GasBoiler.mo b/BESMod/Systems/Hydraulical/Generation/Tests/GasBoiler.mo index 7e516d09..5741a646 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/GasBoiler.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/GasBoiler.mo @@ -27,4 +27,12 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a gas boiler system BESMod.Systems.Hydraulical.Generation.GasBoiler. +This tests uses the Viessmann Vitogas 200-F 11kW boiler as heat generator.

+ +

Control

+

The model uses a pulse signal with a period of 1800s to control both +the boiler setpoint temperature and pump operation through the control bus.

+")); end GasBoiler; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPump.mo b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPump.mo index bb45f7de..b8e360a5 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPump.mo @@ -43,4 +43,9 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test case model for a heat pump system. +Extends from PartialTest and uses a modular reversible heat pump model from the AixLib library + with table data according to EN14511 standard for a Vitocal 251-A08 heat pump.

+")); end HeatPump; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo index eb36b46f..6a4e17aa 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo @@ -47,4 +47,10 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a heat generation system combining a heat pump with +an electric heater as backup. The heat pump is a reversible modular +heat pump using the Vitocal 251-A 08 parametrization based on EN14511 measurement data. +The safety control parameters are taken from Wüllhorst 2021.

+")); end HeatPumpAndElectricHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerParallel.mo b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerParallel.mo index acb792f9..0b235f66 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerParallel.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerParallel.mo @@ -55,4 +55,10 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

This model represents a test case for a parallel heat pump and gas boiler system. +It extends from a partial test model and uses a heat pump model based on Vitocal 251-A +with an 8kW nominal power according to EN14511 test data. +The model includes safety controls parameterized for the Wuellhorst 2021 dataset.

+")); end HeatPumpAndGasBoilerParallel; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo index eb6dd7db..0d0ffa7f 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo @@ -43,4 +43,10 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a serial heat pump and gas boiler system. +The heat pump is a Vitocal 251-A (8 kW) modular reversible heat pump with +safety controls parametrized according to Wüllhorst (2021). +The gas boiler is a Vitogas 200-F with 11 kW nominal capacity.

+")); end HeatPumpAndGasBoilerSeries; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo b/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo index ad41c99c..e32fc6d8 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo @@ -76,5 +76,22 @@ equation annotation (experiment( StopTime=864000, Interval=600, - __Dymola_Algorithm="Dassl")); + __Dymola_Algorithm="Dassl"), Documentation(info=" +

+This partial model implements a basic test setup for hydraulic generation systems. +It provides a testing environment with weather data, control bus interface, and basic boundary conditions. +The model uses a replaceable generation model from +BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialGeneration. +

+

Structure

+

+The model contains: +

    +
  • A replaceable generation system
  • +
  • Mixing volumes as hydraulic loads
  • +
  • Fixed temperature boundary conditions
  • +
  • Weather data reader for ambient conditions
  • +
+

+")); end PartialTest; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpDetailed.mo b/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpDetailed.mo index 26564ed5..c14af82c 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpDetailed.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpDetailed.mo @@ -51,4 +51,7 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a combined solar thermal collector with a heat pump system.

+")); end SolarThermalAndHeatPumpDetailed; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpSimple.mo b/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpSimple.mo index 48facc9d..8b7c23fe 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpSimple.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/SolarThermalAndHeatPumpSimple.mo @@ -53,4 +53,9 @@ equation index=1, extent={{6,3},{6,3}}, horizontalAlignment=TextAlignment.Left)); + annotation (Documentation(info=" +

Test model for a combined solar thermal and heat pump system using a simple control strategy. +The model extends the partial test model and uses a modular heat pump from AixLib combined +with a solar thermal collector.

+")); end SolarThermalAndHeatPumpSimple; From 7f7c6565c49a2bed78664b3745bbc287457bf402 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 09:42:59 +0100 Subject: [PATCH 15/23] minor utf and line fixes --- .../PartialModelicaConferenceUseCase.mo | 2 +- BESMod/Examples/Retrofit/PartialCase.mo | 2 +- .../SolarThermalSystem/SolarThermalAixLib.mo | 6 +++--- .../BaseClasses/PartialFluidSubsystem.mo | 2 +- .../Building/BaseClasses/PartialDemand.mo | 6 +++--- .../Demand/Building/BuildingsRoomCase600FF.mo | 2 +- .../BaseClasses/HighOrderModelParameters.mo | 6 +++--- .../Demand/Building/TEASERThermalZone.mo | 2 +- .../Demand/DHW/BaseClasses/PartialDHW.mo | 2 +- .../Demand/DHW/RecordsCollection/ProfileS.mo | 2 +- .../TappingProfiles/BaseClasses/PartialDHW.mo | 4 ++-- .../BaseClasses/PartialGeneration.mo | 2 +- .../Interfaces/ExternalElectricalPin.mo | 2 +- .../Interfaces/InternalElectricalPinIn.mo | 2 +- .../Interfaces/InternalElectricalPinOut.mo | 2 +- .../DegreeMinuteController.mo | 2 +- .../DHWSetControl/AntiLegionellaControl.mo | 2 +- .../RecordsCollection/SmartThermostatPI.mo | 6 +++--- .../SimpleStorage/DefaultStorage.mo | 2 +- .../Distribution/Types/EnergyLabel.mo | 6 +++--- .../Distribution/Types/HeaterType.mo | 11 ++++------ .../BaseClasses/ModularPropagable.mo | 18 ++++++++--------- .../DetailedSolarThermalWithHeatPump.mo | 14 ++++++------- .../ElectricHeater/DefaultElectricHeater.mo | 2 +- .../Tests/HeatPumpAndElectricHeater.mo | 2 +- .../Tests/HeatPumpAndGasBoilerSeries.mo | 2 +- .../Generation/Types/GenerationDesign.mo | 2 +- .../Movers/AutomaticConfigurationData.mo | 2 +- .../BaseClasses/PartialUserProfiles.mo | 2 +- .../Systems/UserProfiles/Case600Profiles.mo | 6 +++--- .../Generation/Tests/PartialTest.mo | 4 ++-- BESMod/Utilities/Icons/VentilationIcon.mo | 20 ------------------- 32 files changed, 62 insertions(+), 85 deletions(-) diff --git a/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo b/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo index 1dc735ea..d57d7d9c 100644 --- a/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo +++ b/BESMod/Examples/ModelicaConferencePaper/PartialModelicaConferenceUseCase.mo @@ -130,7 +130,7 @@ partial model PartialModelicaConferenceUseCase

Important Parameters

    -
  • Heat pump bivalence temperature: -2°C (271.15 K)
  • +
  • Heat pump bivalence temperature: -2 degC (271.15 K)
  • DHW setpoint temperature: Defined in systemParameters.TSetDHW
  • PV array area: Half of building roof area (building.ARoo/2)
  • Ventilation air exchange rate: 0.5/h
  • diff --git a/BESMod/Examples/Retrofit/PartialCase.mo b/BESMod/Examples/Retrofit/PartialCase.mo index 68049e57..4edafd9f 100644 --- a/BESMod/Examples/Retrofit/PartialCase.mo +++ b/BESMod/Examples/Retrofit/PartialCase.mo @@ -111,7 +111,7 @@ This partial model serves as a base class for retrofit case studies in building
  • NoRetrofitHydTra: Boolean flag to use non-retrofitted heating load for transfer system sizing
  • NoRetrofitHydDis: Boolean flag to use non-retrofitted heating load for distribution system sizing
  • NoRetrofitHydGen: Boolean flag to use non-retrofitted heating load for generation system sizing
  • -
  • Heat pump bivalence temperature: 271.15 K (-2°C)
  • +
  • Heat pump bivalence temperature: 271.15 K (-2 degC)
")); end PartialCase; diff --git a/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo b/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo index ec772128..ac8cdd93 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarThermalAixLib.mo @@ -43,10 +43,10 @@ The solar thermal collector parameters can be adjusted through the parameterStud

Important Parameters

    -
  • A: Collector area [m²]
  • +
  • A: Collector area [m^2]
  • eta_zero: Zero-loss efficiency [-]
  • -
  • c1: First order heat loss coefficient [W/(m²K)]
  • -
  • c2: Second order heat loss coefficient [W/(m²K²)]
  • +
  • c1: First order heat loss coefficient [W/(m^2K)]
  • +
  • c2: Second order heat loss coefficient [W/(m^2K^2)]

Model Dependencies

diff --git a/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo b/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo index e3298c81..3c197a1a 100644 --- a/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo +++ b/BESMod/Systems/BaseClasses/PartialFluidSubsystem.mo @@ -35,7 +35,7 @@ protected
  • use_openModelica: Parameter to disable features not available in OpenModelica
  • allowFlowReversal: If false, equations are simplified by assuming (but not enforcing) no flow reversal
  • show_T: Enable computation of actual port temperatures
  • -
  • rho: Density of the heat distribution system fluid [kg/m³]
  • +
  • rho: Density of the heat distribution system fluid [kg/m^3]
  • cp: Specific heat capacity of the heat distribution system fluid [J/(kg.K)]
  • ")); diff --git a/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo b/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo index 98e5075a..fc68490f 100644 --- a/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo +++ b/BESMod/Systems/Demand/Building/BaseClasses/PartialDemand.mo @@ -96,11 +96,11 @@ It defines the basic building parameters and interfaces for thermal, ventilation
  • TSetZone_nominal: Nominal temperature setpoints for each zone [K]
  • Geometry parameters:
      -
    • AZone: Area of each zone [m²]
    • +
    • AZone: Area of each zone [m^2]
    • hZone: Height of each zone [m]
    • -
    • ABui: Ground area of building [m²]
    • +
    • ABui: Ground area of building [m^2]
    • hBui: Building height [m]
    • -
    • ARoo: Roof area [m²]
    • +
    • ARoo: Roof area [m^2]
  • use_hydraulic: Enable/disable hydraulic supply system
  • diff --git a/BESMod/Systems/Demand/Building/BuildingsRoomCase600FF.mo b/BESMod/Systems/Demand/Building/BuildingsRoomCase600FF.mo index de78c9f3..bf014ff8 100644 --- a/BESMod/Systems/Demand/Building/BuildingsRoomCase600FF.mo +++ b/BESMod/Systems/Demand/Building/BuildingsRoomCase600FF.mo @@ -9,7 +9,7 @@ model BuildingsRoomCase600FF AZone={roo.AFlo}, nZones=1); parameter Modelica.Units.SI.TemperatureDifference dTComfort=2 - "Temperature difference to room set temperature at which the comfort is still acceptable. In DIN EN 15251, all temperatures below 22 °C - 2 K count as discomfort. Hence the default value. If your room set temperature is lower, consider using smaller values."; + "Temperature difference to room set temperature at which the comfort is still acceptable. In DIN EN 15251, all temperatures below 22 degC - 2 K count as discomfort. Hence the default value. If your room set temperature is lower, consider using smaller values."; parameter Real natInf = 0.5 "Infiltration rate"; parameter Modelica.Units.SI.Angle S_=Buildings.Types.Azimuth.S diff --git a/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo b/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo index cad58a06..848ce8b7 100644 --- a/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo +++ b/BESMod/Systems/Demand/Building/Components/BaseClasses/HighOrderModelParameters.mo @@ -42,10 +42,10 @@ It includes parameters for different building thermal insulation regulations (TI
  • 6.0 1/h for WSchV_1984
  • -
  • UValOutDoors: Thermal transmission coefficient of door [W/(m²·K)] +
  • UValOutDoors: Thermal transmission coefficient of door [W/(m^2 * K)]
      -
    • 1.8 W/(m²·K) for EnEV_2009
    • -
    • 2.9 W/(m²·K) for other regulations
    • +
    • 1.8 W/(m^2 * K) for EnEV_2009
    • +
    • 2.9 W/(m^2 * K) for other regulations
  • diff --git a/BESMod/Systems/Demand/Building/TEASERThermalZone.mo b/BESMod/Systems/Demand/Building/TEASERThermalZone.mo index db5c62b5..0b2c0309 100644 --- a/BESMod/Systems/Demand/Building/TEASERThermalZone.mo +++ b/BESMod/Systems/Demand/Building/TEASERThermalZone.mo @@ -16,7 +16,7 @@ model TEASERThermalZone parameter Boolean use_verboseEnergyBalance=true "=false to disable the integration of the verbose energy balance"; parameter Modelica.Units.SI.TemperatureDifference dTComfort=2 - "Temperature difference to room set temperature at which the comfort is still acceptable. In DIN EN 15251, all temperatures below 22 °C - 2 K count as discomfort. Hence the default value. If your room set temperature is lower, consider using smaller values."; + "Temperature difference to room set temperature at which the comfort is still acceptable. In DIN EN 15251, all temperatures below 22 degC - 2 K count as discomfort. Hence the default value. If your room set temperature is lower, consider using smaller values."; parameter Boolean incElePro = false "=false to not include electrical energy consumption in the electrical connectors"; parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial diff --git a/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo b/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo index f547bccb..c1744942 100644 --- a/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo +++ b/BESMod/Systems/Demand/DHW/BaseClasses/PartialDHW.mo @@ -55,7 +55,7 @@ and interfaces for domestic hot water preparation.
  • mDHW_flow_nominal: Nominal mass flow rate [kg/s]
  • TDHW_nominal: Nominal DHW temperature [K]
  • TDHWCold_nominal: Nominal temperature of cold city water [K]
  • -
  • VDHWDay: Daily volume of DHW tapping [m³]
  • +
  • VDHWDay: Daily volume of DHW tapping [m^3]
  • tCrit: Time for critical period based on EN 15450 [s]
  • QCrit: Energy demand during critical period [kWh]
  • diff --git a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo index 33ea7578..c0d613f1 100644 --- a/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo +++ b/BESMod/Systems/Demand/DHW/RecordsCollection/ProfileS.mo @@ -28,7 +28,7 @@ Profile S implements a small daily domestic hot water draw-off pattern.
    • QCrit = 0.945: Critical heat demand [kWh]
    • tCrit = 3600: Critical time period [s]
    • -
    • VDHWDay = 43.5e-3: Daily hot water volume [m³/day]
    • +
    • VDHWDay = 43.5e-3: Daily hot water volume [m^3/day]
    ")); end ProfileS; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo index 9df4a41a..3760203b 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialDHW.mo @@ -31,8 +31,8 @@ Contains basic parameters and interfaces for DHW systems.

    Important Parameters

    • TCold (K): Cold water temperature, default 283.15 K
    • -
    • dWater (kg/m³): Density of water, default 1000 kg/m³
    • -
    • c_p_water (J/(kg·K)): Specific heat capacity of water, default 4184 J/(kg·K)
    • +
    • dWater (kg/m^3): Density of water, default 1000 kg/m^3
    • +
    • c_p_water (J/(kg * K)): Specific heat capacity of water, default 4184 J/(kg * K)
    • TSetDHW (K): Set temperature of DHW
    ")); diff --git a/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo b/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo index c03ed1d0..2967ec63 100644 --- a/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo +++ b/BESMod/Systems/Electrical/Generation/BaseClasses/PartialGeneration.mo @@ -160,7 +160,7 @@ This partial model is a base class for electrical generation models.

  • use_openModelica - Boolean parameter to disable features not available in OpenModelica
  • numGenUnits - Number of generation units (e.g. PV modules)
  • f_design - Array of over/undersizing factors relative to maximum capacity (default: 0.8)
  • -
  • ARoo - Roof area of building in m²
  • +
  • ARoo - Roof area of building in m^2
  • ")); end PartialGeneration; diff --git a/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo b/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo index b5a079c6..11a82484 100644 --- a/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo +++ b/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo @@ -1,6 +1,6 @@ within BESMod.Systems.Electrical.Interfaces; connector ExternalElectricalPin - "Simplified electrical pin for power flow to the electricity grid" + "Simplified electrical pin for power flow outputs to the electricity grid" extends BESMod.Systems.Electrical.Interfaces.BaseClasses.ElectricalPinOut; annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo index 0d651b09..1f7657ce 100644 --- a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo +++ b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo @@ -1,6 +1,6 @@ within BESMod.Systems.Electrical.Interfaces; connector InternalElectricalPinIn - "Simplified electrical pin for power flow only within the building energy system" + "Simplified electrical pin for power flow inputs only within the building energy system" extends BESMod.Systems.Electrical.Interfaces.BaseClasses.ElectricalPinIn; annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo index 5373364e..7b45e1db 100644 --- a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo +++ b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo @@ -1,6 +1,6 @@ within BESMod.Systems.Electrical.Interfaces; connector InternalElectricalPinOut - "Simplified electrical pin for power flow only within the building energy system" + "Simplified electrical pin for power flow outputs only within the building energy system" extends BESMod.Systems.Electrical.Interfaces.BaseClasses.ElectricalPinOut; annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( diff --git a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/DegreeMinuteController.mo b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/DegreeMinuteController.mo index 96fb3b24..5523d14e 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/DegreeMinuteController.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BivalentOnOffControllers/DegreeMinuteController.mo @@ -47,7 +47,7 @@ equation annotation (Icon(graphics={Text( extent={{-44,58},{40,-60}}, lineColor={0,0,0}, - textString="°C + textString=" degC _______ minute")}), Documentation(info=" diff --git a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/AntiLegionellaControl.mo b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/AntiLegionellaControl.mo index b3325945..f9e90d8d 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/AntiLegionellaControl.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/DHWSetControl/AntiLegionellaControl.mo @@ -174,7 +174,7 @@ equation extent={{-14,0},{72,-36}}, lineColor={238,46,47}, lineThickness=0.5, - textString=DynamicSelect("%TLegMin K", String(TLegMin-273.15)+ "°C")), + textString=DynamicSelect("%TLegMin K", String(TLegMin-273.15)+ " degC")), Text( extent={{-94,0},{56,-154}}, lineColor={28,108,200}, diff --git a/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo b/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo index 860a05b7..a7eaf86b 100644 --- a/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo +++ b/BESMod/Systems/Hydraulical/Control/RecordsCollection/SmartThermostatPI.mo @@ -19,9 +19,9 @@ It pre-configures the parameters for stable room temperature control.

    • timeInt = 500: Integration time constant [s]
    • P = 1: Proportional gain [-]
    • -
    • yMax = 328.15: Maximum output temperature (55°C) [K]
    • -
    • yOff = 293.15: Output offset (20°C) [K]
    • -
    • yMin = 293.15: Minimum output temperature (20°C) [K]
    • +
    • yMax = 328.15: Maximum output temperature (55 degC) [K]
    • +
    • yOff = 293.15: Output offset (20 degC) [K]
    • +
    • yMin = 293.15: Minimum output temperature (20 degC) [K]
    ")); end SmartThermostatPI; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo index 8cb016ae..9fec2455 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/SimpleStorage/DefaultStorage.mo @@ -11,7 +11,7 @@ with predefined values for:

    • Energy efficiency label: B
    • -
    • Heat transfer coefficient (kappa): 0.4 W/(m²K)
    • +
    • Heat transfer coefficient (kappa): 0.4 W/(m^2K)
    • Volume expansion coefficient (beta): 350e-6 1/K
    ")); diff --git a/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo b/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo index 2ac010cd..0a157557 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo @@ -8,10 +8,10 @@ type EnergyLabel = enumeration( E "E", F "F", G "G") - "Determines the quality of insualtion of the storage tank"; + "Determines the quality of insualtion of the storage tank" annotation (Documentation(info=" -This is an enumerator type that specifies different energy +

    This is an enumerator type that specifies different energy efficiency labels, commonly used to classify energy efficiency of storage tanks or other hydraulic components. -The labels range from A+ (most efficient) to G (least efficient). TODO: Add doc with reference? +The labels range from A+ (most efficient) to G (least efficient). TODO: Add doc with reference in record

    ")); \ No newline at end of file diff --git a/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo b/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo index 7f83c20e..e751962f 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo @@ -6,15 +6,12 @@ type HeaterType = enumeration( "Use an electric heater", Boiler "Use a boiler") - "Select between boiler, electric heater or no additional heater"; + "Select between boiler, electric heater or no additional heater" annotation (Documentation(info=" -

    -Enumeration type to select between different types of additional -heaters in distribution systems: -

    -
      +

      Enumeration type to select between different types of additional heaters in distribution systems:

      +

      • No: No additional heater
      • ElectricHeater: Additional electric heater
      • Boiler: Additional boiler as backup heater
      • -
      +

    ")); diff --git a/BESMod/Systems/Hydraulical/Generation/BaseClasses/ModularPropagable.mo b/BESMod/Systems/Hydraulical/Generation/BaseClasses/ModularPropagable.mo index 3b4b3efa..43082136 100644 --- a/BESMod/Systems/Hydraulical/Generation/BaseClasses/ModularPropagable.mo +++ b/BESMod/Systems/Hydraulical/Generation/BaseClasses/ModularPropagable.mo @@ -66,7 +66,14 @@ equation visible=not use_busConOnl and use_rev, textString="hea")}), Diagram(coordinateSystem(extent={{-140,-160},{140,160}})), - Documentation(revisions=" + Documentation(info=" +

    This model is a near exact copy of +AixLib.Fluid.HeatPumps.ModularReversible.Modular, +but enabling the propagation of the refrigerant modules with a constrainedby +clause and final modifiers. See +BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialHeatPump +for an exemplary usage.

    +"), revisions="
    • @@ -75,12 +82,5 @@ equation \"https://github.com/RWTH-EBC/BESMod/issues/82\">#82)
    -", info=" -

    This model is a near exact copy of -AixLib.Fluid.HeatPumps.ModularReversible.Modular, -but enabling the propagation of the refrigerant modules with a constrainedby -clause and final modifiers. See -BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialHeatPump -for an exemplary usage.

    -")); +"); end ModularPropagable; diff --git a/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo b/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo index 6ce472b8..69119539 100644 --- a/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/DetailedSolarThermalWithHeatPump.mo @@ -1,4 +1,4 @@ -within BESMod.Systems.Hydraulical.Generation; +within BESMod.Systems.Hydraulical.Generation; model DetailedSolarThermalWithHeatPump "Detailed solar thermal model with monoenergetic heat pump" extends HeatPumpAndElectricHeater( @@ -171,8 +171,8 @@ equation textString="Solar Thermal"), Rectangle( extent={{94,-198},{-218,-136}}, lineColor={0,0,0}, - lineThickness=1)})); - annotation (Documentation(info=" + lineThickness=1)}), + Documentation(info="

    This model implements a detailed solar thermal system coupled with a monoenergetic heat pump. The solar thermal collector is modeled according to the EN12975 standard and can be connected in series configuration. @@ -185,8 +185,8 @@ The model extends parPumSolThe: Parameters for the solar thermal pump

  • Collector specifications:
      -
    • Azimuth angle: 0° (South-facing)
    • -
    • Tilt angle: 30°
    • +
    • Azimuth angle: 0° (South-facing)
    • +
    • Tilt angle: 30°
    • Ground reflectance: 0.2
    • Configuration: Series connection
    @@ -203,8 +203,8 @@ The model extends
    Control Features
    • Hysteresis control for solar pump operation based on direct normal irradiance
    • -
    • ON: DNI > 100 W/m²
    • -
    • OFF: DNI < 10 W/m²
    • +
    • ON: DNI > 100 W/m^2
    • +
    • OFF: DNI < 10 W/m^2
    ")); end DetailedSolarThermalWithHeatPump; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo index 75145c50..950b226e 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/ElectricHeater/DefaultElectricHeater.mo @@ -8,6 +8,6 @@ record DefaultElectricHeater "97 % efficiency" dp_nominal(displayUnit="Pa") = 1000); annotation (Documentation(info="

    Record containing default parameters for an electric heating element with 97% efficiency.

    -

    The value is based on the assumption in: Vering, C., Maier, L., Breuer, K., Krützfeldt, H., Streblow, R., & Müller, D. (2022). Evaluating heat pump system design methods towards a sustainable heat supply in residential buildings. Applied Energy, 308, 118204.

    +

    The value is based on the assumption in: Vering, C., Maier, L., Breuer, K., Kruetzfeldt, H., Streblow, R., & Mueller, D. (2022). Evaluating heat pump system design methods towards a sustainable heat supply in residential buildings. Applied Energy, 308, 118204.

    ")); end DefaultElectricHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo index 6a4e17aa..8eee9276 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndElectricHeater.mo @@ -51,6 +51,6 @@ equation

    Test model for a heat generation system combining a heat pump with an electric heater as backup. The heat pump is a reversible modular heat pump using the Vitocal 251-A 08 parametrization based on EN14511 measurement data. -The safety control parameters are taken from Wüllhorst 2021.

    +The safety control parameters are taken from Wuellhorst 2021.

    ")); end HeatPumpAndElectricHeater; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo index 0d0ffa7f..b2c5e3b1 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/HeatPumpAndGasBoilerSeries.mo @@ -46,7 +46,7 @@ equation annotation (Documentation(info="

    Test model for a serial heat pump and gas boiler system. The heat pump is a Vitocal 251-A (8 kW) modular reversible heat pump with -safety controls parametrized according to Wüllhorst (2021). +safety controls parametrized according to Wuellhorst (2021). The gas boiler is a Vitogas 200-F with 11 kW nominal capacity.

    ")); end HeatPumpAndGasBoilerSeries; diff --git a/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo b/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo index d094c6fa..11659826 100644 --- a/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo +++ b/BESMod/Systems/Hydraulical/Generation/Types/GenerationDesign.mo @@ -4,7 +4,7 @@ type GenerationDesign = enumeration( BivalentAlternativ "Bivalent alternativ", BivalentParallel "Bivalent parallel", BivalentPartParallel "Bivalent partly parallel") - "Choose between different design options for primary generation"; + "Choose between different design options for primary generation" annotation (Documentation(info="

    Information

    diff --git a/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo b/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo index 3d22bbb9..40e36065 100644 --- a/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo +++ b/BESMod/Systems/RecordsCollection/Movers/AutomaticConfigurationData.mo @@ -23,7 +23,7 @@ to automatically configure a pump/fan for the BES Library based on nominal opera

    • m_flow_nominal: Nominal mass flow rate [kg/s]
    • dp_nominal: Nominal pressure difference [Pa]
    • -
    • rho: Density of fluid in use [kg/m³]
    • +
    • rho: Density of fluid in use [kg/m^3]
    • V_flowCurve: Relative volume flow curve points around nominal point [-]
    • dpCurve: Relative pressure difference curve points around nominal point [-]
    diff --git a/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo b/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo index 8e5a4d4e..a9dac173 100644 --- a/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo +++ b/BESMod/Systems/UserProfiles/BaseClasses/PartialUserProfiles.mo @@ -34,7 +34,7 @@ and comfort preferences in different thermal zones.

    Important Parameters

    • nZones (Integer): Number of thermal zones to transfer heat to
    • -
    • TSetZone_nominal (Temperature vector): Nominal temperature setpoints for each zone, defaults to 293.15 K (20°C) for all zones
    • +
    • TSetZone_nominal (Temperature vector): Nominal temperature setpoints for each zone, defaults to 293.15 K (20 degC) for all zones
    ")); end PartialUserProfiles; diff --git a/BESMod/Systems/UserProfiles/Case600Profiles.mo b/BESMod/Systems/UserProfiles/Case600Profiles.mo index 70691a03..bf7e3b3c 100644 --- a/BESMod/Systems/UserProfiles/Case600Profiles.mo +++ b/BESMod/Systems/UserProfiles/Case600Profiles.mo @@ -59,9 +59,9 @@ equation

    Important Parameters

      -
    • Convective heat gains: 80/48 W/m²
    • -
    • Radiative heat gains: 120/48 W/m²
    • -
    • Latent heat gains: 0 W/m²
    • +
    • Convective heat gains: 80/48 W/m^2
    • +
    • Radiative heat gains: 120/48 W/m^2
    • +
    • Latent heat gains: 0 W/m^2
    • Shading control: 0 (no shading)
    diff --git a/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo b/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo index 773b95df..f01e8e59 100644 --- a/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo +++ b/BESMod/Systems/Ventilation/Generation/Tests/PartialTest.mo @@ -81,11 +81,11 @@ equation

    Important Parameters

    • Medium: Replaceable medium package (defaults to IBPSA.Media.Air)
    • -
    • m_flow_nominal: Nominal mass flow rate based on room volume (150m³) and air changes
    • +
    • m_flow_nominal: Nominal mass flow rate based on room volume (150m^3) and air changes
    • Q_flow_nominal: Nominal heating/cooling power
    • TOda_nominal: Nominal outdoor temperature
    • TDem_nominal: Nominal zone temperature setpoint
    • -
    • V: Room volume (150m³ with 2.6m height)
    • +
    • V: Room volume (150m^3 with 2.6m height)
    ")); diff --git a/BESMod/Utilities/Icons/VentilationIcon.mo b/BESMod/Utilities/Icons/VentilationIcon.mo index eb41f86a..2217f4fc 100644 --- a/BESMod/Utilities/Icons/VentilationIcon.mo +++ b/BESMod/Utilities/Icons/VentilationIcon.mo @@ -39,24 +39,4 @@ partial model VentilationIcon lineColor={0,0,0}, textString="%name%")}),Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); - annotation (Documentation(info=" - - -

    Information

    -

    -This icon shows a stylized ventilation fan symbol with three blades arranged radially around a central hub. It is used as a partial model to provide a consistent visual representation for ventilation-related components in the BESMod library. -

    - -

    Important Parameters

    -

    The icon contains the following graphical elements:

    -
      -
    • Circular white background with black outline
    • -
    • Central black hub
    • -
    • Three black fan blades at 120° angles
    • -
    • Component name displayed below the icon
    • -
    - - - -")); end VentilationIcon; From 84db23ddb940d9af563f8b91249583c569d89a49 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 09:55:54 +0100 Subject: [PATCH 16/23] add missing doc --- .../Interfaces/BaseClasses/ElectricalPinIn.mo | 12 +++++++++++- .../Interfaces/BaseClasses/ElectricalPinOut.mo | 9 +++++++++ .../Interfaces/ExternalElectricalPin.mo | 7 +++++++ .../Interfaces/InternalElectricalPinIn.mo | 7 +++++++ .../Interfaces/InternalElectricalPinOut.mo | 5 +++++ .../Components/DiscretizeContSignal.mo | 17 ++++++++++++++++- .../RecordsCollection/SolarThermal/Generic.mo | 8 +++++++- .../ExampleSystemParameters.mo | 6 ++++++ .../Utilities/Electrical/RealToElecConSplit.mo | 8 +++++++- 9 files changed, 75 insertions(+), 4 deletions(-) diff --git a/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinIn.mo b/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinIn.mo index 4f3d43f5..459050ab 100644 --- a/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinIn.mo +++ b/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinIn.mo @@ -7,5 +7,15 @@ partial connector ElectricalPinIn annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

    Partial connector model used for linking power flows with unidirectional inputs +for separate representation of electrical consumption and generation.

    + +

    Important Parameters

    +

    The connector has two main variables:

    +
      +
    • PElecLoa: Power flow representing electrical loads (input). Positive values indicate power consumption, negative values indicate power generation.
    • +
    • PElecGen: Power flow representing electrical generation (input). Positive values indicate power generation, negative values indicate power consumption.
    • +
    +")); end ElectricalPinIn; diff --git a/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinOut.mo b/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinOut.mo index 35ae6e39..0b268056 100644 --- a/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinOut.mo +++ b/BESMod/Systems/Electrical/Interfaces/BaseClasses/ElectricalPinOut.mo @@ -8,4 +8,13 @@ partial connector ElectricalPinOut annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false))); + annotation (Documentation(info=" +

    This is a partial connector model for electrical power flow signals with output variables. +

    + +

    Important Parameters

    +
      +
    • PElecLoa: Electrical power flow where positive values indicate power consumption and negative values indicate power generation
    • +
    • PElecGen: Electrical power flow where positive values indicate power generation and negative values indicate power consumption
    • +
    ")); end ElectricalPinOut; diff --git a/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo b/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo index 11a82484..78d055bc 100644 --- a/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo +++ b/BESMod/Systems/Electrical/Interfaces/ExternalElectricalPin.mo @@ -16,4 +16,11 @@ connector ExternalElectricalPin Diagram(graphics, coordinateSystem( preserveAspectRatio=false))); + annotation (Documentation(info=" +

    +Simplified electrical pin connector for power flow outputs to the electricity grid. +This connector extends from +BESMod.Systems.Electrical.Interfaces.BaseClasses.ElectricalPinOut. +

    +")); end ExternalElectricalPin; diff --git a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo index 1f7657ce..a44caace 100644 --- a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo +++ b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinIn.mo @@ -16,4 +16,11 @@ connector InternalElectricalPinIn Diagram(graphics, coordinateSystem( preserveAspectRatio=false))); + annotation (Documentation(info=" +

    A simplified electrical pin connector for power flow inputs within building energy systems. +This connector extends from +BESMod.Systems.Electrical.Interfaces.BaseClasses.ElectricalPinIn.

    +

    Usage

    +

    This connector is intended for internal connections between electrical components +of building energy systems, where only power flow inputs need to be considered.

    ")); end InternalElectricalPinIn; diff --git a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo index 7b45e1db..3e047c15 100644 --- a/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo +++ b/BESMod/Systems/Electrical/Interfaces/InternalElectricalPinOut.mo @@ -16,4 +16,9 @@ connector InternalElectricalPinOut Diagram(graphics, coordinateSystem( preserveAspectRatio=false))); + annotation (Documentation(info=" +

    Simplified electrical pin connector representing power flow outputs within the building energy system. +This connector extends +BESMod.Systems.Electrical.Interfaces.BaseClasses.ElectricalPinOut.

    +")); end InternalElectricalPinOut; diff --git a/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo b/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo index 3d31b0be..1c938ab2 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo @@ -12,5 +12,20 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

    Information

    +

    Model for discretizing a continuous signal into a defined number of steps. +The model takes a continuous input signal and converts it into a discrete stepped +output signal based on the specified number of discretization steps.

    + +

    Important Parameters

    +

    discretizationSteps (Integer, min=0): Number of discretization steps. +

      +
    • 0: No discretization (modulating/continuous output)
    • +
    • 1: On-off control (binary output 0 or 1)
    • +
    • 2: Three-step output (0, 0.5, 1)
    • +
    • n: n+1 discrete output levels between 0 and 1
    • +
    +

    +")); end DiscretizeContSignal; diff --git a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/Generic.mo b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/Generic.mo index a4daf627..1d8877a4 100644 --- a/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/Generic.mo +++ b/BESMod/Systems/Hydraulical/Generation/RecordsCollection/SolarThermal/Generic.mo @@ -27,5 +27,11 @@ partial record Generic annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

    Information

    +

    +This is a partial record containing the basic parameters required for a solar thermal collector model. +The record defines the main efficiency parameters, collector geometry, and flow characteristics. +

    +")); end Generic; diff --git a/BESMod/Systems/RecordsCollection/ExampleSystemParameters.mo b/BESMod/Systems/RecordsCollection/ExampleSystemParameters.mo index 69704a84..e1dd605b 100644 --- a/BESMod/Systems/RecordsCollection/ExampleSystemParameters.mo +++ b/BESMod/Systems/RecordsCollection/ExampleSystemParameters.mo @@ -7,4 +7,10 @@ record ExampleSystemParameters use_ventilation=true, TOda_nominal=261.15); + annotation (Documentation(info=" +

    +Record that extends +SystemParametersBaseDataDefinition with specific parameter values for an example system configuration. +

    +")); end ExampleSystemParameters; diff --git a/BESMod/Utilities/Electrical/RealToElecConSplit.mo b/BESMod/Utilities/Electrical/RealToElecConSplit.mo index 7471b62b..7a16650a 100644 --- a/BESMod/Utilities/Electrical/RealToElecConSplit.mo +++ b/BESMod/Utilities/Electrical/RealToElecConSplit.mo @@ -45,5 +45,11 @@ equation extent={{-100,-100},{98,-160}}, lineColor={0,0,0}, textString="%name")}), Diagram( - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info=" +

    Information

    +

    A model to transfer signals from a real interface to an electrical connector +by automatically splitting between generation and load. +The model takes a real input signal for electrical power and splits it into generation +(positive values) and load (negative values) using limiters.

    +")); end RealToElecConSplit; From e4b86cb65fb14fb3a90d2d436eef8d9dbbd8c268 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 10:01:54 +0100 Subject: [PATCH 17/23] add doc for utf8 cases --- .../PartialSolarThermalHPS.mo | 24 +++++++++++++++++++ .../RecordsCollection/Valves/ThreeWayValve.mo | 8 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/BESMod/Examples/SolarThermalSystem/PartialSolarThermalHPS.mo b/BESMod/Examples/SolarThermalSystem/PartialSolarThermalHPS.mo index ee526135..31d519c3 100644 --- a/BESMod/Examples/SolarThermalSystem/PartialSolarThermalHPS.mo +++ b/BESMod/Examples/SolarThermalSystem/PartialSolarThermalHPS.mo @@ -63,4 +63,28 @@ partial model PartialSolarThermalHPS BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialGeneration annotation (choicesAllMatching=true); + annotation (Documentation(info=" +

    +This is a partial model for a building energy system featuring a heat pump system (HPS) +supported by a solar thermal collector. . +

    + +

    +The model includes: +

    +
      +
    • Direct grid electrical system
    • +
    • TEASER thermal zone building model
    • +
    • No control system
    • +
    • Hydraulic system with: +
        +
      • Monoenergetic heat pump control
      • +
      • Combined storage distribution
      • +
      • Pressure-based radiator transfer
      • +
      +
    • +
    • Standard DHW profiles
    • +
    • No ventilation
    • +
    +")); end PartialSolarThermalHPS; diff --git a/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo b/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo index 0617d3c9..9b0c77d2 100644 --- a/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo +++ b/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo @@ -39,5 +39,11 @@ partial record ThreeWayValve "= true, use m_flow = f(dp) else dp = f(m_flow)"; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false))); + coordinateSystem(preserveAspectRatio=false)), Documentation(info= +

    Information

    +

    This record is a partial record that contains parameters for +configuring a three-way valve model. +It automatically calculates pressure losses based on the given valve authority. +

    +); end ThreeWayValve; From 29a9ad889a7708de64aac0f30c4aef9672b9a58b Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 10:14:52 +0100 Subject: [PATCH 18/23] add remaining doc using sonnet 200k --- .../PartialBuildingEnergySystem.mo | 26 +++++++++++++++++++ .../BaseClasses/PartialHydraulicSystem.mo | 17 ++++++++++++ .../Components/BuildingAndDHWControl.mo | 13 ++++++++++ .../BaseClasses/PartialTwoStorageParallel.mo | 5 ++++ .../Generation/BaseClasses/PartialHeatPump.mo | 9 +++++++ 5 files changed, 70 insertions(+) diff --git a/BESMod/Systems/BaseClasses/PartialBuildingEnergySystem.mo b/BESMod/Systems/BaseClasses/PartialBuildingEnergySystem.mo index dff0cc20..56d80940 100644 --- a/BESMod/Systems/BaseClasses/PartialBuildingEnergySystem.mo +++ b/BESMod/Systems/BaseClasses/PartialBuildingEnergySystem.mo @@ -363,4 +363,30 @@ equation -140},{280,200}})), Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-280,-140},{280,200}}))); + annotation (Documentation(info="

    Information

    +

    This is a partial model for typical building energy systems. +It defines replaceable components for various subsystems such as the +building demand, domestic hot water (DHW), electrical system, hydraulic system, +and ventilation system. The model also includes user profiles, +control, weather data reader, and system outputs.

    + +

    Important Parameters

    +
      +
    • use_openModelica: Flag to disable features not available in OpenModelica.
    • +
    • systemParameters: Parameters relevant for the entire energy system.
    • +
    • parameterStudy: Parameters changed in the study or analysis.
    • +
    + +

    Used subsystemes

    +")); end PartialBuildingEnergySystem; diff --git a/BESMod/Systems/Hydraulical/BaseClasses/PartialHydraulicSystem.mo b/BESMod/Systems/Hydraulical/BaseClasses/PartialHydraulicSystem.mo index 7be3578e..8c7d4f1a 100644 --- a/BESMod/Systems/Hydraulical/BaseClasses/PartialHydraulicSystem.mo +++ b/BESMod/Systems/Hydraulical/BaseClasses/PartialHydraulicSystem.mo @@ -466,4 +466,21 @@ equation Diagram(graphics, coordinateSystem(preserveAspectRatio=false, extent={{-180,-140},{200,140}}))); + annotation (Documentation(info=" +This is a partial model for a complete hydraulic system. +It contains replaceable models for generation, control, distribution, and transfer components. + +

    Important Parameters

    +
      +
    • use_dhw: Boolean parameter to enable or disable domestic hot water (DHW).
    • +
    • hydraulicSystemParameters: Record containing base data definitions for the hydraulic system.
    • +
    + +

    Used Modules

    +")); end PartialHydraulicSystem; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingAndDHWControl.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingAndDHWControl.mo index 018afeca..60ba0863 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingAndDHWControl.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingAndDHWControl.mo @@ -532,4 +532,17 @@ equation extent={{42,146},{100,154}}, textColor={0,140,72}, textString="External Control")})); + annotation (Documentation(info=" +

    This control model is for both building and domestic hot water (DHW) systems. +It includes hysteresis control, supply temperature setpoints, and summer mode handling. +The model supports SG Ready functionality for adjusting setpoints based on external signals, +as well as various options to override signals using supervisory control-

    + +

    Used models

    +")); end BuildingAndDHWControl; diff --git a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallel.mo b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallel.mo index 77e15103..4df00291 100644 --- a/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallel.mo +++ b/BESMod/Systems/Hydraulical/Distribution/BaseClasses/PartialTwoStorageParallel.mo @@ -454,4 +454,9 @@ equation Line(points={{-60,-70},{-56,-70},{-56,-44},{-66,-44},{-66,42},{-56,42},{-56, 62},{-60,62},{-60,62.4}}, color={0,127,255})); annotation (Diagram(coordinateSystem(extent={{-100,-180},{100,140}}))); + annotation (Documentation(info="

    Information

    +

    This is a partial model hydraulic distribution system with two storage tanks connected in parallel. +This model includes several replaceable components and parameters for buffer storage, +domestic hot water (DHW) storage, temperature sensors, and a three-way valve.

    +")); end PartialTwoStorageParallel; diff --git a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo index cff82230..43794b10 100644 --- a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo @@ -491,4 +491,13 @@ equation color={255,204,51}, thickness=0.5), Diagram(coordinateSystem(extent={{-180,-140},{100,100}}))); + annotation (Documentation(info=" +

    This is a partial model for a heat pump generation system in the BESMod library. +It includes the modular reversible heat pump model from the AixLib library. +See AixLib.Fluid.HeatPumps.ModularReversible.UsersGuide for more information on the model. +

    +

    +Furthermore, basic KPIs and connections are provided to enable various heat pump generation modules. +

    +")); end PartialHeatPump; From b120091a38672f2fe381dbb4fd2020fa2d772fc3 Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 10:25:22 +0100 Subject: [PATCH 19/23] syntax fixes --- .../Transfer/Types/HeatTransferSystemType.mo | 2 +- .../Transfer/Types/HydraulicResistanceType.mo | 16 ++++++++-------- .../Transfer/Types/PressureDropPerLength.mo | 8 ++++---- .../RecordsCollection/Valves/ThreeWayValve.mo | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo b/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo index db37c925..fb77bc1a 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Types/HeatTransferSystemType.mo @@ -5,7 +5,7 @@ type HeatTransferSystemType = enumeration( CastRadiator, PanelRadiators, Convectors) - "Type of the heating system for calculating volume of distribution and transfer system"; + "Type of the heating system for calculating volume of distribution and transfer system" annotation (Documentation(info="

    Enumeration type for defining different heat transfer systems in buildings. diff --git a/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo b/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo index 07ff59b6..c5d6b605 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Types/HydraulicResistanceType.mo @@ -1,3 +1,10 @@ +within BESMod.Systems.Hydraulical.Transfer.Types; +type HydraulicResistanceType = enumeration( + Fittings "Fittings only", + Thermostat "Thermostatic valve", + CheckValve "Check valve / gravity brake / mixing valve", + FittingAndThermostat "Fittings + Thermostatic valve", + FittingAndThermostatAndCheckValve "Fittings + Thermostatic valve + Check valve") annotation (Documentation(info="

    Enumeration defining different types of hydraulic resistances that can be present in hydronic systems.

    @@ -10,11 +17,4 @@ that can be present in hydronic systems.

  • FittingAndThermostat: Combines resistance of fittings and thermostatic valve
  • FittingAndThermostatAndCheckValve: Combines resistance of fittings, thermostatic valve and check valve
  • -")); -within BESMod.Systems.Hydraulical.Transfer.Types; -type HydraulicResistanceType = enumeration( - Fittings "Fittings only", - Thermostat "Thermostatic valve", - CheckValve "Check valve / gravity brake / mixing valve", - FittingAndThermostat "Fittings + Thermostatic valve", - FittingAndThermostatAndCheckValve "Fittings + Thermostatic valve + Check valve"); +")); \ No newline at end of file diff --git a/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo b/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo index 8b410e05..0d4198a8 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Types/PressureDropPerLength.mo @@ -1,7 +1,7 @@ - annotation (Documentation(info=" -

    Type for pressure drop per length with unit Pascal per meter (Pa/m).

    -")); within BESMod.Systems.Hydraulical.Transfer.Types; type PressureDropPerLength = Real ( final quantity="Modelica.SIunits.Pressure/Modelica.SIunits.Length", - final unit="Pa/m") "Pressure drop per length"; + final unit="Pa/m") "Pressure drop per length" + annotation (Documentation(info=" +

    Type for pressure drop per length with unit Pascal per meter (Pa/m).

    +")); \ No newline at end of file diff --git a/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo b/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo index 9b0c77d2..7d6a92f6 100644 --- a/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo +++ b/BESMod/Systems/RecordsCollection/Valves/ThreeWayValve.mo @@ -39,11 +39,11 @@ partial record ThreeWayValve "= true, use m_flow = f(dp) else dp = f(m_flow)"; annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false)), Documentation(info= + coordinateSystem(preserveAspectRatio=false)), Documentation(info="

    Information

    This record is a partial record that contains parameters for configuring a three-way valve model. It automatically calculates pressure losses based on the given valve authority.

    -); +")); end ThreeWayValve; From 09b4db37ddd647b4b2c2d7f8d0d883fc238ad42c Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Thu, 21 Nov 2024 10:37:44 +0100 Subject: [PATCH 20/23] add missing doc for storages --- .../PartialStorageBaseDataDefinition.mo | 28 ++++++++++++++++--- .../Distribution/Types/EnergyLabel.mo | 10 +++++-- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo index 82cdf4e7..3e0b68f6 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo @@ -118,10 +118,30 @@ partial record PartialStorageBaseDataDefinition annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - Documentation(info="

    - \"1\" + Documentation(info=" +

    +Record to calculate storage parameters based on typically known parameters +or practical ones. +Using the energy label according to EU Regulation, the heat loss per day is +estimated. With this value, the insulation is iteratively calculated using the following +heat transfer equation: + +

    +

    References

    +

    +

      +
    • +DELEGATED REGULATION (EU) 812/2013 of 18 February 2013 supplementing Directive 2010/30/EU +with regard to the energy labelling of water heaters, +hot water storage tanks and packages of water heater and solar device +
    • +
    • + BESTPAR: TOWARDS MINIMAL EFFORT IN BUILDING ENERGY SYSTEM SIMULATION PARAMETERIZATION, + https://doi.org/10.26868/29761662.2022.82 +
    • +

    ")); end PartialStorageBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo b/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo index 0a157557..500c7a86 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Types/EnergyLabel.mo @@ -13,5 +13,11 @@ type EnergyLabel = enumeration(

    This is an enumerator type that specifies different energy efficiency labels, commonly used to classify energy efficiency of storage tanks or other hydraulic components. -The labels range from A+ (most efficient) to G (least efficient). TODO: Add doc with reference in record

    -")); \ No newline at end of file +The labels range from A+ (most efficient) to G (least efficient). +Based on: +

    + DELEGATED REGULATION (EU) 812/2013 of 18 February 2013 supplementing Directive 2010/30/EU + with regard to the energy labelling of water heaters, + hot water storage tanks and packages of water heater and solar device +

    +")); From 399c632e1daf7aaadf68465c2689ee3c47e766df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20W=C3=BCllhorst?= Date: Fri, 22 Nov 2024 08:34:45 +0000 Subject: [PATCH 21/23] CI message from ebc-aixlib-bot. Push new files with corrected html Syntax . --- .../HeatPumpAndBoiler/AfterBufferWithDHW.mo | 52 ++++++++++------ .../SolarThermalSystem/SolarCollector.mo | 10 ++-- .../Control/BaseClasses/PartialControl.mo | 46 ++++++++++----- .../BaseClasses/PartialcalcmFlowEqu.mo | 44 +++++++++----- .../Components/FixedInitialBatterySimple.mo | 34 +++++++---- .../BaseClasses/HeatPumpBusPassThrough.mo | 30 ++++++---- .../Components/BoilerInHybridSystem.mo | 59 ++++++++++++------- .../Functions/ConstantGradientHeatCurve.mo | 23 +++++--- .../Components/DiscretizeContSignal.mo | 37 ++++++++---- .../PartialStorageBaseDataDefinition.mo | 43 +++++++------- .../Distribution/Types/HeaterType.mo | 22 ++++--- .../Generation/BaseClasses/PartialHeatPump.mo | 13 ++-- .../Generation/Tests/PartialTest.mo | 33 +++++++---- .../TestPressureBasedSystemWithReliefValve.mo | 18 +++--- 14 files changed, 286 insertions(+), 178 deletions(-) diff --git a/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo b/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo index 43232839..9b9c233d 100644 --- a/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo +++ b/BESMod/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mo @@ -46,31 +46,45 @@ model AfterBufferWithDHW Interval=600, Tolerance=1e-06), __Dymola_Commands(file="modelica://BESMod/Resources/Scripts/Dymola/Examples/HeatPumpAndBoiler/AfterBufferWithDHW.mos" - "Simulate and plot"), Documentation(info=" -

    Information

    + "Simulate and plot"), Documentation(info="

    + Information +

    -This model represents a bivalent heat pump system with boiler integration after the buffer tank including domestic hot water (DHW) support. It extends the PartialHybridSystem base class. + This model represents a bivalent heat pump system with boiler + integration after the buffer tank including domestic hot water (DHW) + support. It extends the + PartialHybridSystem base class.

    - -

    System Description

    +

    + System Description +

    -Key components: + Key components: +

      -
    • Heat pump with vapor injection phase separator using propane refrigerant
    • -
    • Boiler integrated after buffer storage tank
    • -
    • Two storage system with buffer tank and DHW storage
    • -
    • Bivalent-parallel configuration for heat generation
    • +
    • Heat pump with vapor injection phase separator using propane + refrigerant +
    • +
    • Boiler integrated after buffer storage tank +
    • +
    • Two storage system with buffer tank and DHW storage +
    • +
    • Bivalent-parallel configuration for heat generation +
    -

    - -

    Important Parameters

    -

    +

    + Important Parameters +

      -
    • TBiv: Bivalence temperature for heat pump operation
    • -
    • VPerQFlow: Buffer storage volume per nominal heat flow rate
    • -
    • dTLoadingHC1: Temperature difference for DHW loading (10K)
    • -
    • dTBoiDHWLoa: Temperature difference for boiler DHW loading (10K)
    • +
    • TBiv: Bivalence temperature for heat pump operation +
    • +
    • VPerQFlow: Buffer storage volume per nominal heat flow rate +
    • +
    • dTLoadingHC1: Temperature difference for DHW loading (10K) +
    • +
    • dTBoiDHWLoa: Temperature difference for boiler DHW loading (10K) +
    -

    ")); end AfterBufferWithDHW; diff --git a/BESMod/Examples/SolarThermalSystem/SolarCollector.mo b/BESMod/Examples/SolarThermalSystem/SolarCollector.mo index 2c79e45d..8987d780 100644 --- a/BESMod/Examples/SolarThermalSystem/SolarCollector.mo +++ b/BESMod/Examples/SolarThermalSystem/SolarCollector.mo @@ -7,9 +7,11 @@ record SolarCollector "Custom values used for example" spacing(displayUnit="mm") = 0.02, dPipe(displayUnit="mm") = 0.012); - annotation (Documentation(info=" -

    Information

    -

    Solar collector parameter record for a example system

    - + annotation (Documentation(info="

    + Information +

    +

    + Solar collector parameter record for a example system +

    ")); end SolarCollector; diff --git a/BESMod/Systems/Control/BaseClasses/PartialControl.mo b/BESMod/Systems/Control/BaseClasses/PartialControl.mo index ed93b564..2521bc67 100644 --- a/BESMod/Systems/Control/BaseClasses/PartialControl.mo +++ b/BESMod/Systems/Control/BaseClasses/PartialControl.mo @@ -25,22 +25,40 @@ partial model PartialControl "Model for a partial HEMS control" extent={{44,88},{72,114}}))); annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false)), Documentation(info=" -

    -This is a partial model defining a Home Energy Management System (HEMS) control interface. -It serves as a base class for implementing specific control strategies. + coordinateSystem(preserveAspectRatio=false)), Documentation(info="

    + This is a partial model defining a Home Energy Management System + (HEMS) control interface. It serves as a base class for implementing + specific control strategies.

    - -

    Connectors

    -

    +

    + Connectors +

    -

    ")); end PartialControl; diff --git a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo index dd91b468..1ff6fd13 100644 --- a/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo +++ b/BESMod/Systems/Demand/DHW/TappingProfiles/BaseClasses/PartialcalcmFlowEqu.mo @@ -62,26 +62,38 @@ equation 110,80},{110,80}}, color={0,0,127})); connect(dTSet.y, multiProduct.u[4]) annotation (Line(points={{-21,-70},{28,-70}, {28,77.375},{42,77.375}}, color={0,0,127})); - annotation (Documentation(info=" -

    Base model for calculating mass flow for domestic hot water based on -set temperature and actual temperature using an equalized temperature signal. + annotation (Documentation(info="

    + Base model for calculating mass flow for domestic hot water based on + set temperature and actual temperature using an equalized temperature + signal. +

    +

    + Model Structure +

    +

    + The model calculates mass flows using:

    - -

    Model Structure

    -

    The model calculates mass flows using:

      -
    • Temperature differences between set point and cold water
    • -
    • Actual temperature differences in the system
    • -
    • A limiter to keep ratios between 0 and 1
    • -
    • Heat flow error calculation using specific heat capacity
    • +
    • Temperature differences between set point and cold water +
    • +
    • Actual temperature differences in the system +
    • +
    • A limiter to keep ratios between 0 and 1 +
    • +
    • Heat flow error calculation using specific heat capacity +
    -

    - - -

    Outputs

    +

    + Outputs +

      -
    • m_flow_out: Calculated mass flow rate considering temperature differences [kg/s]
    • -
    • Q_flowERROR: Error in heat flow rate calculation [W]
    • +
    • + m_flow_out: Calculated mass flow rate considering + temperature differences [kg/s] +
    • +
    • + Q_flowERROR: Error in heat flow rate calculation [W] +
    ")); end PartialcalcmFlowEqu; diff --git a/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo b/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo index 4a1f7810..2b48dc06 100644 --- a/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo +++ b/BESMod/Systems/Electrical/Distribution/Components/FixedInitialBatterySimple.mo @@ -13,22 +13,32 @@ initial equation E = E_nominal * SOC_start; E_charged = E_start; E_discharged = E_start; - annotation (Documentation(info=" -

    Information

    + annotation (Documentation(info="

    + Information +

    -This model extends the BuildingSystems.Technologies.ElectricalStorages.BatterySimple -model with fixed initial conditions to enable regression tests in CI. + This model extends the + BuildingSystems.Technologies.ElectricalStorages.BatterySimple + model with fixed initial conditions to enable regression tests in CI.

    -

    Initial Equations

    +

    + Initial Equations +

    -The model sets fixed initial conditions for: + The model sets fixed initial conditions for: +

      -
    • Available energy (EAva)
    • -
    • Bound energy (EBou)
    • -
    • Total energy (E)
    • -
    • Charged energy (E_charged)
    • -
    • Discharged energy (E_discharged)
    • +
    • Available energy (EAva) +
    • +
    • Bound energy (EBou) +
    • +
    • Total energy (E) +
    • +
    • Charged energy (E_charged) +
    • +
    • Discharged energy (E_discharged) +
    -

    ")); end FixedInitialBatterySimple; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo index 64a9f90c..322effa2 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BaseClasses/HeatPumpBusPassThrough.mo @@ -77,21 +77,27 @@ equation lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid)}), Diagram( - coordinateSystem(preserveAspectRatio=false)), Documentation(info=" -

    -Model to connect the generation bus interface to the refrigerant machine bus. -It transfers all data between -BESMod.Systems.Hydraulical.Control.Components.BaseClasses.Interfaces.GenerationControlBus and -AixLib.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantMachineControlBus. + coordinateSystem(preserveAspectRatio=false)), Documentation(info="

    + Model to connect the generation bus interface to the refrigerant + machine bus. It transfers all data between + BESMod.Systems.Hydraulical.Control.Components.BaseClasses.Interfaces.GenerationControlBus + and + AixLib.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantMachineControlBus.

    -The model passes through the following signals: + The model passes through the following signals: +

      -
    • Heat pump on/off status
    • -
    • Condenser inlet temperature
    • -
    • Condenser outlet temperature
    • -
    • Evaporator inlet temperature
    • +
    • Heat pump on/off status +
    • +
    • Condenser inlet temperature +
    • +
    • Condenser outlet temperature +
    • +
    • Evaporator inlet temperature +
    -

    ")); end HeatPumpBusPassThrough; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo b/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo index 15e556ed..907eafe1 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BoilerInHybridSystem.mo @@ -73,36 +73,51 @@ equation connect(or2.y, secGenOn) annotation (Line(points={{93,0},{110,0}}, color={255,0,255})); annotation (Diagram(coordinateSystem(extent={{-100,-100},{100,100}})), Icon( - coordinateSystem(extent={{-100,-100},{80,100}})), Documentation(info=" -

    -Model for controlling the boiler operation in a hybrid system with primary and secondary generator. -The model decides when to operate the boiler based on outdoor temperature conditions and primary generator status. + coordinateSystem(extent={{-100,-100},{80,100}})), Documentation(info="

    + Model for controlling the boiler operation in a hybrid system with + primary and secondary generator. The model decides when to operate + the boiler based on outdoor temperature conditions and primary + generator status.

    - -

    Important Parameters

    +

    + Important Parameters +

      -
    • TBiv: Bivalence temperature - Temperature threshold below which secondary heating is allowed
    • -
    • TCutOff: Cut-off temperature - Temperature threshold below which boiler operation is always enabled
    • +
    • + TBiv: Bivalence temperature - Temperature threshold + below which secondary heating is allowed +
    • +
    • + TCutOff: Cut-off temperature - Temperature threshold + below which boiler operation is always enabled +
    - -

    Control Logic

    +

    + Control Logic +

    -The boiler is turned on if any of these conditions are met: + The boiler is turned on if any of these conditions are met: +

      -
    • Outdoor temperature is below cut-off temperature (TCutOff)
    • -
    • All of the following conditions are true: -
        -
      • Outdoor temperature is below bivalence temperature (TBiv)
      • -
      • Secondary generator use is requested
      • -
      • Either: +
      • Outdoor temperature is below cut-off temperature (TCutOff) +
      • +
      • All of the following conditions are true:
          -
        • Primary generator is blocked due to safety issues, or
        • -
        • Primary generator is running at maximum capacity (>85-90% load)
        • +
        • Outdoor temperature is below bivalence temperature (TBiv) +
        • +
        • Secondary generator use is requested +
        • +
        • Either: +
            +
          • Primary generator is blocked due to safety issues, or +
          • +
          • Primary generator is running at maximum capacity + (>85-90% load) +
          • +
          +
      • -
      -
    -

    ")); end BoilerInHybridSystem; diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo index d1da8020..ad462454 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo @@ -6,14 +6,21 @@ protected TSup_nominal - TRet_nominal)/2) / (THeaThr - TOda_nominal); algorithm TSup := TSup_nominal - graTSupAtTOda_nominal * (TOda - TOda_nominal); - annotation (Documentation(info=" -

    A simple heating curve with a constant gradient based on nominal parameters. -The gradient is calculated using nominal supply temperature TSup_nominal, nominal outdoor temperature -TOda_nominal, nominal return temperature TRet_nominal and heating threshold temperature THeaThr. + annotation (Documentation(info="

    + A simple heating curve with a constant gradient based on nominal + parameters. The gradient is calculated using nominal supply + temperature TSup_nominal, nominal outdoor temperature + TOda_nominal, nominal return temperature + TRet_nominal and heating threshold temperature + THeaThr. +

    +

    + Mathematical Description +

    +

    + The heating curve is defined by the slope + graTSupAtTOda_nominal which remains constant over the + whole operating range

    - -

    Mathematical Description

    -

    The heating curve is defined by the slope graTSupAtTOda_nominal which remains -constant over the whole operating range

    ")); end ConstantGradientHeatCurve; diff --git a/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo b/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo index 1c938ab2..58afc529 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Components/DiscretizeContSignal.mo @@ -12,20 +12,31 @@ equation annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, - coordinateSystem(preserveAspectRatio=false)), Documentation(info=" -

    Information

    -

    Model for discretizing a continuous signal into a defined number of steps. -The model takes a continuous input signal and converts it into a discrete stepped -output signal based on the specified number of discretization steps.

    - -

    Important Parameters

    -

    discretizationSteps (Integer, min=0): Number of discretization steps. + coordinateSystem(preserveAspectRatio=false)), Documentation(info="

    + Information +

    +

    + Model for discretizing a continuous signal into a defined number of + steps. The model takes a continuous input signal and converts it into + a discrete stepped output signal based on the specified number of + discretization steps. +

    +

    + Important Parameters +

    +

    + discretizationSteps (Integer, min=0): Number of + discretization steps. +

      -
    • 0: No discretization (modulating/continuous output)
    • -
    • 1: On-off control (binary output 0 or 1)
    • -
    • 2: Three-step output (0, 0.5, 1)
    • -
    • n: n+1 discrete output levels between 0 and 1
    • +
    • 0: No discretization (modulating/continuous output) +
    • +
    • 1: On-off control (binary output 0 or 1) +
    • +
    • 2: Three-step output (0, 0.5, 1) +
    • +
    • n: n+1 discrete output levels between 0 and 1 +
    -

    ")); end DiscretizeContSignal; diff --git a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo index 3e0b68f6..cacc51b6 100644 --- a/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo +++ b/BESMod/Systems/Hydraulical/Distribution/RecordsCollection/PartialStorageBaseDataDefinition.mo @@ -118,30 +118,29 @@ partial record PartialStorageBaseDataDefinition annotation (Icon(graphics, coordinateSystem(preserveAspectRatio=false)), Diagram(graphics, coordinateSystem(preserveAspectRatio=false)), - Documentation(info=" -

    -Record to calculate storage parameters based on typically known parameters -or practical ones. -Using the energy label according to EU Regulation, the heat loss per day is -estimated. With this value, the insulation is iteratively calculated using the following -heat transfer equation: - + Documentation(info="

    + Record to calculate storage parameters based on typically known + parameters or practical ones. Using the energy label according to EU + Regulation, the heat loss per day is estimated. With this value, the + insulation is iteratively calculated using the following heat + transfer equation: \"1\"

    -

    References

    -

    +

    + References +

      -
    • -DELEGATED REGULATION (EU) 812/2013 of 18 February 2013 supplementing Directive 2010/30/EU -with regard to the energy labelling of water heaters, -hot water storage tanks and packages of water heater and solar device -
    • -
    • - BESTPAR: TOWARDS MINIMAL EFFORT IN BUILDING ENERGY SYSTEM SIMULATION PARAMETERIZATION, - https://doi.org/10.26868/29761662.2022.82 -
    • +
    • DELEGATED REGULATION (EU) 812/2013 of 18 February 2013 + supplementing Directive 2010/30/EU with regard to the energy + labelling of water heaters, hot water storage tanks and packages of + water heater and solar device +
    • +
    • BESTPAR: TOWARDS MINIMAL EFFORT IN BUILDING ENERGY SYSTEM + SIMULATION PARAMETERIZATION, + +
    -

    ")); end PartialStorageBaseDataDefinition; diff --git a/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo b/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo index e751962f..4f6992bc 100644 --- a/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo +++ b/BESMod/Systems/Hydraulical/Distribution/Types/HeaterType.mo @@ -7,11 +7,19 @@ type HeaterType = enumeration( Boiler "Use a boiler") "Select between boiler, electric heater or no additional heater" - annotation (Documentation(info=" -

    Enumeration type to select between different types of additional heaters in distribution systems:

    -

      -
    • No: No additional heater
    • -
    • ElectricHeater: Additional electric heater
    • -
    • Boiler: Additional boiler as backup heater
    • -

    + annotation (Documentation(info="

    + Enumeration type to select between different types of additional + heaters in distribution systems: +

    +
      +
    • + No: No additional heater +
    • +
    • + ElectricHeater: Additional electric heater +
    • +
    • + Boiler: Additional boiler as backup heater +
    • +
    ")); diff --git a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo index 43794b10..71ca3c37 100644 --- a/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo +++ b/BESMod/Systems/Hydraulical/Generation/BaseClasses/PartialHeatPump.mo @@ -491,13 +491,12 @@ equation color={255,204,51}, thickness=0.5), Diagram(coordinateSystem(extent={{-180,-140},{100,100}}))); - annotation (Documentation(info=" -

    This is a partial model for a heat pump generation system in the BESMod library. -It includes the modular reversible heat pump model from the AixLib library. -See AixLib.Fluid.HeatPumps.ModularReversible.UsersGuide for more information on the model. -

    -

    -Furthermore, basic KPIs and connections are provided to enable various heat pump generation modules. + annotation (Documentation(info="

    + This is a partial model for a heat pump generation system in the + BESMod library. It includes the modular reversible heat pump model + from the AixLib library. See +

    ")); end PartialHeatPump; diff --git a/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo b/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo index e32fc6d8..e20070b7 100644 --- a/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo +++ b/BESMod/Systems/Hydraulical/Generation/Tests/PartialTest.mo @@ -76,22 +76,29 @@ equation annotation (experiment( StopTime=864000, Interval=600, - __Dymola_Algorithm="Dassl"), Documentation(info=" -

    -This partial model implements a basic test setup for hydraulic generation systems. -It provides a testing environment with weather data, control bus interface, and basic boundary conditions. -The model uses a replaceable generation model from -BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialGeneration. + __Dymola_Algorithm="Dassl"), Documentation(info="

    + This partial model implements a basic test setup for hydraulic + generation systems. It provides a testing environment with weather + data, control bus interface, and basic boundary conditions. The model + uses a replaceable generation model from + BESMod.Systems.Hydraulical.Generation.BaseClasses.PartialGeneration.

    -

    Structure

    +

    + Structure +

    -The model contains: + The model contains: +

      -
    • A replaceable generation system
    • -
    • Mixing volumes as hydraulic loads
    • -
    • Fixed temperature boundary conditions
    • -
    • Weather data reader for ambient conditions
    • +
    • A replaceable generation system +
    • +
    • Mixing volumes as hydraulic loads +
    • +
    • Fixed temperature boundary conditions +
    • +
    • Weather data reader for ambient conditions +
    -

    ")); end PartialTest; diff --git a/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo b/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo index 8e2f238b..706e0bb2 100644 --- a/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo +++ b/BESMod/Systems/Hydraulical/Transfer/Tests/TestPressureBasedSystemWithReliefValve.mo @@ -16,16 +16,16 @@ model TestPressureBasedSystemWithReliefValve parRad)); extends Modelica.Icons.Example; - annotation (Documentation(info=" -

    -Test model to validate a pressure-based heating system with a relief valve. -Tests BESMod.Systems.Hydraulical.Transfer.RadiatorPressureBased -transfer system with a relief valve enabled. -

    -Key settings: + annotation (Documentation(info="

    + Test model to validate a pressure-based heating system with a relief + valve. Tests + BESMod.Systems.Hydraulical.Transfer.RadiatorPressureBased + transfer system with a relief valve enabled. +

    Key settings:
      -
    • use_preRelVal = true (Relief valve enabled)
    • +
    • use_preRelVal = true (Relief valve enabled) +
    -

    ")); end TestPressureBasedSystemWithReliefValve; From c19795884e99efad10e46fa8901c52ecd42367dd Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 22 Nov 2024 10:14:47 +0100 Subject: [PATCH 22/23] fix manually --- .../Functions/ConstantGradientHeatCurve.mo | 22 +++++++++++++------ ci-tests/whitelist/dymola_check_whitelist.txt | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 ci-tests/whitelist/dymola_check_whitelist.txt diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo index d1da8020..99bbd170 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo @@ -7,13 +7,21 @@ protected algorithm TSup := TSup_nominal - graTSupAtTOda_nominal * (TOda - TOda_nominal); annotation (Documentation(info=" -

    A simple heating curve with a constant gradient based on nominal parameters. -The gradient is calculated using nominal supply temperature TSup_nominal, nominal outdoor temperature -TOda_nominal, nominal return temperature TRet_nominal and heating threshold temperature THeaThr. +

    + A simple heating curve with a constant gradient based on nominal + parameters. The gradient is calculated using nominal supply + temperature TSup_nominal, nominal outdoor temperature + TOda_nominal, nominal return temperature + TRet_nominal and heating threshold temperature + THeaThr. +

    +

    + Mathematical Description +

    +

    + The heating curve is defined by the slope + graTSupAtTOda_nominal which remains constant over the + whole operating range

    - -

    Mathematical Description

    -

    The heating curve is defined by the slope graTSupAtTOda_nominal which remains -constant over the whole operating range

    ")); end ConstantGradientHeatCurve; diff --git a/ci-tests/whitelist/dymola_check_whitelist.txt b/ci-tests/whitelist/dymola_check_whitelist.txt new file mode 100644 index 00000000..82958bc3 --- /dev/null +++ b/ci-tests/whitelist/dymola_check_whitelist.txt @@ -0,0 +1 @@ +BESMod.Utilities.TimeConstantEstimation.BaseClasses.RadiatorEN442_2 \ No newline at end of file From 9eceec6287c4c9fae1d9f5691440a596c31a500f Mon Sep 17 00:00:00 2001 From: "fabian.wuellhorst" Date: Fri, 22 Nov 2024 10:25:57 +0100 Subject: [PATCH 23/23] fix manually --- .../BaseClasses/Functions/ConstantGradientHeatCurve.mo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo index 99bbd170..693c12f7 100644 --- a/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo +++ b/BESMod/Systems/Hydraulical/Control/Components/BuildingSupplyTemperatureSetpoints/BaseClasses/Functions/ConstantGradientHeatCurve.mo @@ -12,8 +12,8 @@ algorithm parameters. The gradient is calculated using nominal supply temperature TSup_nominal, nominal outdoor temperature TOda_nominal, nominal return temperature - TRet_nominal and heating threshold temperature - THeaThr. + TRet_nominal and heating threshold temperature + THeaThr.

    Mathematical Description