Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue1080 ROM soil temperature and interzonal heat exchange #1546

Open
wants to merge 55 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
9481b7d
added FiveElements and mentioned zone borders in User's Guide for RC
PGorzalka Apr 20, 2023
14fc5e3
additional work on implementation of neighboured zone borders as a fi…
PGorzalka Apr 20, 2023
24ca93c
added a ground temperature option selector and neighboured zone borde…
PGorzalka Apr 21, 2023
2f9f9dd
included options for temperature of surfaces in contact to soil into …
PGorzalka Apr 26, 2023
5eb669f
typo in FiveElements.mo
PGorzalka Apr 28, 2023
29b2a78
bugs removed and standard values included and documentation updated i…
PGorzalka May 2, 2023
1183b29
add new zone parameters to all ZoneParam examples.
PGorzalka May 5, 2023
21c0dd7
bug fixes and minor corrections
PGorzalka Jun 23, 2023
e399b67
bug fixes equivalent to bug fixes for IBPSA contribution
PGorzalka Jul 10, 2023
1b7b514
newline package order
PGorzalka Jul 10, 2023
d5806bb
Merge remote-tracking branch 'remotes/upstream/main' of 'https://gith…
PGorzalka Jul 26, 2024
777c405
minor bugfix
PGorzalka Nov 3, 2024
53e0df8
OpenModelica support: 2/5 steps
PGorzalka Nov 3, 2024
a03419b
re-included pairwise connection modelling radiative heat exchange bet…
PGorzalka Nov 3, 2024
2ee7410
working version of all features of adjacent zone connection in OpenMo…
PGorzalka Nov 3, 2024
60726e4
removed obsolete heatFlowSensor from FiveElements
PGorzalka Nov 3, 2024
e4e6c16
removed obsolete nzSplitVal
PGorzalka Nov 3, 2024
6007961
fix to PartialMultizone to make models without interzonals work properly
PGorzalka Nov 17, 2024
d2c1529
Merge remote-tracking branch 'remotes/origin/main' into issue1080_ROM…
PGorzalka Nov 17, 2024
986728f
Merge pull request #1547 from PGorzalka/issue1080_ROM-soil-and-zone-b…
FWuellhorst Nov 18, 2024
fcec85b
CI message from ebc-aixlib-bot. Push new files with corrected html Sy…
DaJansenGit Nov 18, 2024
1d2e2ea
Merge pull request #1549 from RWTH-EBC/correct_HTML_PGorzalka_issue10…
FWuellhorst Nov 18, 2024
1c6a333
removed duplicate aExt in OfficePassiveHouse records
PGorzalka Nov 18, 2024
d68761a
Merge remote-tracking branch 'upstream/PGorzalka_issue1080_ROM-soil-a…
PGorzalka Nov 18, 2024
acc7713
Fixed namespace violations
PGorzalka Nov 18, 2024
4f2f4ce
Merge pull request #1550 from PGorzalka/issue1080_ROM-soil-and-zone-b…
FWuellhorst Nov 19, 2024
4ab51c8
add default to avoid model check error
FWuellhorst Nov 19, 2024
748897f
added interzonal element parameters to all ZoneBaseRecord instances
PGorzalka Nov 19, 2024
23fcdd8
Merge pull request #1551 from PGorzalka/issue1080_ROM-soil-and-zone-b…
FWuellhorst Nov 19, 2024
2b98a1f
Resolved additional namespace violations
PGorzalka Nov 19, 2024
5ad39ba
rearange package order
DaJansenGit Nov 25, 2024
15c4eab
rearange package order
DaJansenGit Nov 25, 2024
791aea5
rearange package order
DaJansenGit Nov 25, 2024
afc0f09
adjust baserecord to hold interzonal parameters and remove from other…
DaJansenGit Nov 28, 2024
7d13135
Merge branch 'main' into PGorzalka_issue1080_ROM-soil-and-zone-borders
DaJansenGit Nov 28, 2024
a38336a
Merge branch 'main' into PGorzalka_issue1080_ROM-soil-and-zone-borders
DaJansenGit Nov 30, 2024
4e68a2c
renaming AixLib.BoundaryConditions.GroundTemperature.DataSource to Da…
PGorzalka Dec 8, 2024
8b2540c
Merge remote-tracking branch 'upstream/PGorzalka_issue1080_ROM-soil-a…
PGorzalka Dec 8, 2024
5b5cd4e
Merge branch 'main' into issue1080_ROM-soil-and-zone-borders
PGorzalka Dec 8, 2024
db447cf
fixed graphical representation of FiveElements
PGorzalka Dec 8, 2024
711810a
added MultizoneInterzonalsFixedHeater as example for FiveElements
PGorzalka Dec 8, 2024
f0d577a
Merge pull request #1559 from PGorzalka/issue1080_ROM-soil-and-zone-b…
FWuellhorst Dec 9, 2024
25dac96
add missing Tolerance=1e-6
FWuellhorst Dec 9, 2024
b420169
changed encoding of interzonal example weather file
PGorzalka Dec 10, 2024
d80c354
moved interzonal example supporting files to resources
PGorzalka Dec 11, 2024
6f3692e
Merge pull request #1560 from PGorzalka/issue1080_ROM-soil-and-zone-b…
FWuellhorst Dec 11, 2024
c7e1548
make simulate in one line
FWuellhorst Dec 11, 2024
8ee4100
Merge branch 'PGorzalka_issue1080_ROM-soil-and-zone-borders' of https…
FWuellhorst Dec 11, 2024
1ae047a
use CVode
FWuellhorst Dec 11, 2024
f7c9c5c
CI message from ebc-aixlib-bot. Automatic push of CI with new regress…
DaJansenGit Dec 11, 2024
7cb1586
update translation statistics
FWuellhorst Dec 11, 2024
d815a13
Merge branch 'PGorzalka_issue1080_ROM-soil-and-zone-borders' of https…
FWuellhorst Dec 11, 2024
3d9a06e
Merge branch 'main' into PGorzalka_issue1080_ROM-soil-and-zone-borders
FWuellhorst Dec 11, 2024
4430847
Merge branch 'main' into issue1080_ROM-soil-and-zone-borders
PGorzalka Dec 12, 2024
027e139
Merge pull request #1 from RWTH-EBC/PGorzalka_issue1080_ROM-soil-and-…
PGorzalka Dec 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions AixLib/BoundaryConditions/GroundTemperature/DataSource.mo
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that there is already a DataSource Types package under AixLib.BoundaryConditions.Types but this is from IBPSA library. This might be confusing. Could you please rename it to DataSourceGroTem?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
within AixLib.BoundaryConditions.GroundTemperature;
type DataSource = enumeration(
Constant "Use constant value",
File "Use data from file with tabular data",
Kusuda "Use Kusuda model for undisturbed ground temperature with selectable parameters",
Sine "Use a sine model with selectable parameters")
"Enumeration to define data source for the ground temperature"
annotation(Documentation(info="<html>
<p>
Enumeration to define the data source used in AixLib.BoundaryConditions.GroundTemperature.Options.
</p>
</html>",
revisions="<html>
<ul>
<li>
April 21, 2023, by Philip Groesdonk:<br/>
First implementation.
</li>
</ul>
</html>"));
155 changes: 155 additions & 0 deletions AixLib/BoundaryConditions/GroundTemperature/Options.mo
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Icons for TGroConSou and sin are overlaying in the graphical representation, could you please adjust this?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems to work now, could you please check again?

Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
within AixLib.BoundaryConditions.GroundTemperature;
model Options
"A model that provides different options for ground temperature output"
import Modelica.Constants.pi;

parameter AixLib.BoundaryConditions.GroundTemperature.DataSource datSou=AixLib.BoundaryConditions.GroundTemperature.DataSource.Constant
"Choice by which option for ground temperature is to be provided"
annotation (Dialog(group="General"));
parameter Modelica.Units.SI.Temperature TMea "constant or mean ground temperature (for sine) or average air temperature over the year (for Kusuda)"
annotation (Dialog(group="General", enable=not datSou==AixLib.BoundaryConditions.GroundTemperature.DataSource.File));
parameter Real offTime=0
"Offset time from simulation time 0 until minimum ground temperature in s (for sine and Kusuda)"
annotation (Dialog(group="General", enable=datSou==AixLib.BoundaryConditions.GroundTemperature.DataSource.Kusuda or datSou==AixLib.BoundaryConditions.GroundTemperature.DataSource.Sine));
parameter Modelica.Units.SI.TemperatureDifference ampTGro=0
"amplitude of ground temperature (for sine option) or of surface temperature [(maximum air temperature - minimum air temperature)/2] (for Kusuda)"
annotation (Dialog(group="General", enable=datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.Kusuda
or datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.Sine));
parameter String filDatSou="NoName"
"path to a (.mos) file that has the temperature stored in a table called TGround"
annotation (Dialog(group="General", enable=datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.File));
parameter Modelica.Units.SI.ThermalDiffusivity theDifKusPerDay=0.04
"Thermal diffusivity of the ground for Kusuda. Declare in m2/day!"
annotation (Dialog(group="Special Kusuda parameters", enable=datSou ==
AixLib.BoundaryConditions.GroundTemperature.DataSource.Kusuda));
parameter Modelica.Units.SI.Distance depTGroKus=0
"Depth of ground temperature for Kusuda"
annotation (Dialog(group="Special Kusuda parameters", enable=datSou ==
AixLib.BoundaryConditions.GroundTemperature.DataSource.Kusuda));

// add conditions
AixLib.BoundaryConditions.GroundTemperature.GroundTemperatureKusuda kusUnd(
T_mean=TMea,
T_amp=ampTGro,
D=depTGroKus,
alpha=theDifKusPerDay,
t_shift=offTime/86400.0)
if datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.Kusuda
annotation (Placement(transformation(extent={{-10,50},{10,70}})));
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor TSenKus
if datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.Kusuda
"Sensor to show Kusuda ground temperature"
annotation (Placement(transformation(extent={{22,50},{42,70}})));
Modelica.Blocks.Interfaces.RealOutput TGroOut(
final quantity="ThermodynamicTemperature",
final unit="K",
displayUnit="degC") "Ground temperature"
annotation (Placement(transformation(extent={{100,-10},{120,10}})));
Modelica.Blocks.Sources.Sine sin(
amplitude=ampTGro,
f=1.0/31536000.0,
phase=-offTime/31536000.0*2*pi - pi/2,
offset=TMea,
startTime=-31536000.0)
if datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.Sine
"Source for sine function for temperature"
annotation (Placement(transformation(extent={{-10,-26},{10,-6}})));
Modelica.Blocks.Sources.Constant TGroConSou(final k=TMea) if datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.Constant
"Constant ground temperature"
annotation (Placement(transformation(extent={{10,-10},{-10,10}}, rotation=180)));
Modelica.Blocks.Sources.CombiTimeTable tabTGro(
tableOnFile=true,
tableName="TGround",
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic,
fileName=filDatSou)
if datSou == AixLib.BoundaryConditions.GroundTemperature.DataSource.File
"Ground temperatures from table"
annotation (Placement(transformation(extent={{-10,-66},{10,-46}})));

equation
connect(kusUnd.port, TSenKus.port) annotation (Line(points={{9.4,55},{15.7,55},
{15.7,60},{22,60}}, color={191,0,0}));
connect(TSenKus.T, TGroOut) annotation (Line(points={{43,60},{56,60},{56,0},{110,
0}}, color={0,0,127}));
connect(TGroConSou.y, TGroOut)
annotation (Line(points={{11,0},{56,0},{56,0},{110,0}}, color={0,0,127}));
connect(sin.y, TGroOut) annotation (Line(points={{11,-16},{56,-16},{56,0},{110,
0}}, color={0,0,127}));
connect(tabTGro.y[1], TGroOut) annotation (Line(points={{11,-56},{56,-56},{56,
0},{110,0}}, color={0,0,127}));
annotation (Icon(coordinateSystem(preserveAspectRatio=false), graphics={
Polygon(
points={{-100,20},{-46,14},{-10,20},{24,16},{60,18},{78,12},{100,20},{
100,-100},{-100,-100},{-100,20}},
lineColor={0,0,0},
fillColor={127,66,38},
fillPattern=FillPattern.Solid),
Polygon(
points={{-100,20},{-100,32},{-42,22},{-4,30},{32,22},{66,24},{82,20},{
100,28},{100,20},{78,12},{60,18},{24,16},{-10,20},{-46,14},{-100,20}},
lineColor={0,0,0},
fillColor={0,140,72},
fillPattern=FillPattern.Solid),
Polygon(
points={{-100,100},{100,100},{100,28},{82,20},{66,24},{32,22},{-4,30},
{-42,22},{-100,32},{-100,100}},
lineColor={0,0,0},
fillColor={0,157,255},
fillPattern=FillPattern.Solid),
Ellipse(
extent={{-70,84},{-40,54}},
lineColor={0,0,0},
fillColor={255,255,85},
fillPattern=FillPattern.Solid),
Text(
extent={{-139,-104},{161,-144}},
lineColor={0,0,255},
textString="%name")}), Diagram(
coordinateSystem(preserveAspectRatio=false)),
Documentation(revisions="<html><ul>
<li>April 23, 2023, by Philip Groesdonk:<br/>
First implementation (see <a href=
\"https://github.com/RWTH-EBC/AixLib/issues/1080\">issue 1080</a>).
</li>
</ul>
</html>", info="<html>
This model provides a block to choose from different options to model ground temperature:
<ul>
<li>
a constant value
</li>
<li>
a sine curve (yearly)
</li>
<li>
a table stored in a file
</li>
<li>a simple model (called Kusuda here) that was originally created for use with district heating grids or LTN in order to model
thermal pipe losses
</li>
</ul>
<h4>
Assumption and limitations
</h4>
<p>
The model does not model any influence on the ground temperature.
The ground temperature is only dependent on the set parameters.
</p>
<h4>
Typical use and important parameters
</h4>
<p>
The model is used as a boundary condition for ROM model floors outside surfaces.
</p>
<p>
<b>Differently then stated in the parameter description below for Kusuda,
α needs to be declared in m2/day! (The Modelica SI unit diffusivity does not
support m2/day as a display unit.)</b>
</p>
<p>
A typical value for α is bewteen 0.03 and 0.05 m2/day.
</p>

</html>
"));
end Options;
2 changes: 2 additions & 0 deletions AixLib/BoundaryConditions/GroundTemperature/package.order
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
GroundTemperatureKusuda
Options
Examples
DataSource
24 changes: 21 additions & 3 deletions AixLib/DataBase/ThermalZones/OfficePassiveHouse/OPH_1_Office.mo
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,28 @@ record OPH_1_Office "Office zone of office building"
wfRoof={1},
aRoof=0.7,
aExt=0.7,
nIze=1,
AIze={0.0},
hConIze={0.0},
nIzeRC=1,
RIze={{0.00001}},
RIzeRem={0.00001},
CIze={{0.00001}},
othZoneInd={1},
zoneInd=1,
TSoil=283.15,
TSoiDatSou=AixLib.BoundaryConditions.GroundTemperature.DataSource.Constant,

TSoiOffTim=0,
TSoiAmp=0.0,
TSoiFil="NoName",
hConWallOut=20.0,
hRadWall=5,
hConWinOut=20.0,
hConRoofOut=20,
hRadRoof=5,
tiltExtWalls={1.5707963267949,1.5707963267949,1.5707963267949,1.5707963267949,0},
tiltExtWalls={1.5707963267949,1.5707963267949,1.5707963267949,
1.5707963267949,0},
aziExtWalls={0,1.5707963267949,3.1415926535898,4.7123889803847,0},
wfWall={0.2,0.2,0.2,0.2,0.1},
wfWin={0.25,0.25,0.25,0.25,0},
Expand All @@ -72,8 +87,8 @@ record OPH_1_Office "Office zone of office building"
withAHU=true,
minAHU=0,
maxAHU=12,
maxIrr = {100,100,100,100,0},
shadingFactor = {0.7,0.7,0.7,0.7,0},
maxIrr={100,100,100,100,0},
shadingFactor={0.7,0.7,0.7,0.7,0},
hHeat=167500,
lHeat=0,
KRHeat=1000,
Expand All @@ -91,6 +106,9 @@ record OPH_1_Office "Office zone of office building"
withIdealThresholds=false);

annotation (Documentation(revisions="<html><ul>
<li>May 5, 2023, by Philip Groesdonk:<br/>
Additional soil temperature and neighboured zone border parameters.
</li>
<li>November 27, 2019, by David Jansen:<br/>
Integrate threshold for heater and cooler.
</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,28 @@ record OPH_1_OfficeNoHeaterCooler "Office zone of office building without ideal
wfRoof={1},
aRoof=0.7,
aExt=0.7,
nIze=1,
AIze={0.0},
hConIze={0.0},
nIzeRC=1,
RIze={{0.00001}},
RIzeRem={0.00001},
CIze={{0.00001}},
othZoneInd={1},
zoneInd=1,
TSoil=283.15,
TSoiDatSou=AixLib.BoundaryConditions.GroundTemperature.DataSource.Constant,

TSoiOffTim=0,
TSoiAmp=0.0,
TSoiFil="NoName",
hConWallOut=20.0,
hRadWall=5,
hConWinOut=20.0,
hConRoofOut=20,
hRadRoof=5,
tiltExtWalls={1.5707963267949,1.5707963267949,1.5707963267949,1.5707963267949,0},
tiltExtWalls={1.5707963267949,1.5707963267949,1.5707963267949,
1.5707963267949,0},
aziExtWalls={0,1.5707963267949,3.1415926535898,4.7123889803847,0},
wfWall={0.2,0.2,0.2,0.2,0.1},
wfWin={0.25,0.25,0.25,0.25,0},
Expand All @@ -72,8 +87,8 @@ record OPH_1_OfficeNoHeaterCooler "Office zone of office building without ideal
withAHU=true,
minAHU=0,
maxAHU=12,
maxIrr = {100,100,100,100,0},
shadingFactor = {0.7,0.7,0.7,0.7,0},
maxIrr={100,100,100,100,0},
shadingFactor={0.7,0.7,0.7,0.7,0},
hHeat=167500,
lHeat=0,
KRHeat=1000,
Expand All @@ -90,6 +105,9 @@ record OPH_1_OfficeNoHeaterCooler "Office zone of office building without ideal
TThresholdCooler=273.15 + 22,
withIdealThresholds=false);
annotation (Documentation(revisions="<html><ul>
<li>May 5, 2023, by Philip Groesdonk:<br/>
Additional soil temperature and neighboured zone border parameters.
</li>
<li>November 27, 2019, by David Jansen:<br/>
Integrate threshold for heater and cooler.
</li>
Expand Down
Loading