-
Notifications
You must be signed in to change notification settings - Fork 63
Issue1389 detailed house #1404
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
Merged
annadellisola
merged 120 commits into
open-ideas:master
from
LoneMeertens:issue1389_DetailedHouse
Jul 8, 2025
Merged
Issue1389 detailed house #1404
Changes from all commits
Commits
Show all changes
120 commits
Select commit
Hold shift + click to select a range
5c189a7
Create DetailedHouse package and move example models 1-10 into this p…
LoneMeertens eafe84d
Rename Example 1-10 to DetailedHouse
LoneMeertens bb83413
Add documentation to new DetailedHouse package
LoneMeertens d1f32cb
Add image that is a representation of final model
LoneMeertens 821d676
Fix icon sizes
LoneMeertens 8b1630c
Added required models for each DetailedHouse step
LoneMeertens a98260a
Add more detailed information to the models
LoneMeertens 235aa1b
update naming in reference results (scripts + results)
lucasverleyen 18247d4
test {} for tutorial unit tests
lucasverleyen 2d0e130
revert commit partially
lucasverleyen a587fcf
restore commit
lucasverleyen 79109b7
remove old file name
lucasverleyen d6ad814
Change order of Tutorial packages (alphabetical)
jelgerjansen faff981
For order of Examples package
jelgerjansen 8cca500
Correct reference to mos file in __Dymola_Commands
jelgerjansen e8f49c5
Fix typo mos file DetailedHouse3
jelgerjansen 7a73f8a
Change diagram coordinate system for DetailedHouse6 to capture the he…
jelgerjansen 65fab4c
put dimensions in italic
LoneMeertens 1e37f37
fixing documentation and syntax suggestions
LoneMeertens 08a2250
Add result plot for DetailedHous1-5
LoneMeertens 16fde4a
Include connection instructions and reference result section in detai…
LoneMeertens bee17d3
Adding plots of reference results detailed house 6-10
LoneMeertens 9407eb5
Adding reference results and connecting instruction complete for Deta…
LoneMeertens 9d4c306
default zone height of 2.8m used in DetailedHouse1 instead of equalli…
LoneMeertens 8795021
Resolve open comments related to documentation
LoneMeertens c730f09
Change InternalWall to SlabOnGround and update reference results acco…
LoneMeertens ca1fe2e
adapt documentation for SlabOnGround
LoneMeertens 75cce6b
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse9.mo
LoneMeertens 420362c
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse9.mo
LoneMeertens 4c4f171
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
LoneMeertens 4101be1
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
LoneMeertens 90e44ac
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
LoneMeertens ce42a51
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
LoneMeertens 2a8a81d
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
LoneMeertens 39bbd37
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
LoneMeertens 397ea8f
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse10.mo
LoneMeertens 9cd4cf9
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse2.mo
LoneMeertens 0012560
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse4.mo
LoneMeertens 48c224c
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse4.mo
LoneMeertens 64ce4ba
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse2.mo
LoneMeertens 4fd6e16
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse6.mo
LoneMeertens 00bab02
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse6.mo
LoneMeertens 6cab9a1
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse8.mo
LoneMeertens cad5213
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse8.mo
LoneMeertens 48c830e
update results
LoneMeertens b1d8bae
Merge branch 'issue1389_DetailedHouse' of https://github.com/LoneMeer…
LoneMeertens bfffc37
Update DetailedHouse1.mo
LoneMeertens af328c6
update revision history
LoneMeertens 5931251
Update DetailedHouse1-10
LoneMeertens 294bed9
update detailedHouse documentation
LoneMeertens 4eadcce
update DetailtedHouse reference result plots
LoneMeertens d000a33
change ceiling to cei
lucasverleyen ac6ce02
minor improvements to documentation
lucasverleyen 5a01daf
change slabOnGround to slaOnGro (naming convention)
lucasverleyen 6d14f3a
improve graphics
lucasverleyen b93abd1
add documentation
lucasverleyen cf79aff
improve graphics and add documentation
lucasverleyen 3994201
improve documentation
lucasverleyen 53df56f
improve graphics
lucasverleyen 1249ad2
improve documentation
lucasverleyen 73cdf02
improve graphics and documentation in ex 5
lucasverleyen 3eaa9b3
improve graphics and documentation in ex 6
lucasverleyen 3a50761
improve graphics and documentation in ex 7
lucasverleyen 014ef45
improve graphics and documentation in ex 8
lucasverleyen 8d71530
improve graphics and documentation in ex 9
lucasverleyen 04ca90e
add original tolerance again to fix unit tests
lucasverleyen 636f79f
update figure names
LoneMeertens f04ef2a
Merge branch 'issue1389_DetailedHouse' of https://github.com/LoneMeer…
LoneMeertens b4cb413
Update figure reference names
LoneMeertens ab11740
Use correct window glazing types in DetailedHouse1/5 and use BESTEST …
jelgerjansen 0fb9ece
Remove obsolete whitespace
jelgerjansen c22da4b
Change Medium to MediumAir
jelgerjansen 171ddcd
Remove redeclaration to idealized heavy wall (no thin layers) for flo…
jelgerjansen f935e1c
Fix tolerance again
lucasverleyen 2ac8b29
Set allowFlowReversal to false for all components in DetailedHouse10 …
jelgerjansen 6ba3a3a
Update naming mos files
jelgerjansen 457732e
Synchronize experiment sections in annotation of all models
jelgerjansen 0381939
Set tolerance DetailedHouse9 to 1e-6 (similar to other models)
jelgerjansen 4caccee
Add tolerance to DetailedHouse10 even though not used since Euler int…
jelgerjansen 0269c44
Merge branch 'issue1389_DetailedHouse' of https://github.com/LoneMeer…
jelgerjansen ed1069a
Correct window size in DetailedHouse5 and clarify connection instruct…
jelgerjansen 2b0a610
Focus on Eel instead of COP in documentation DetailedHouse7 and updat…
jelgerjansen 404cd41
Update documentation to align references to figures in the different …
jelgerjansen 3177291
Merge branch 'issue1389_DetailedHouse' of https://github.com/LoneMeer…
LoneMeertens ae739da
new floor constructionType
annadellisola 66f4403
decouple prod and emission
annadellisola e0ec69d
removed T fixed in bou1
annadellisola fad5d69
update result with new configuration
annadellisola b26bab1
Merge branch 'master_Anna' into issue1389_DetailedHouse
annadellisola 80fa2f9
Removed obsolete Example9.mos file
annadellisola 038917e
changed solver
annadellisola 744cfe1
updated mos file
annadellisola f797b8c
Merge branch 'issue1389_DetailedHouse' of https://github.com/LoneMeer…
LoneMeertens e09223a
update floor construction type in DetailedHouse5 reczon1
annadellisola d8d32b5
update scheme DetailHouse6
annadellisola b9b126b
higher T values in hysteresis control of DetailedHouse7 to have limit…
annadellisola bef761e
Merge branch 'master' of https://github.com/open-ideas/IDEAS into iss…
annadellisola 6ad5d9c
Updated png and results in DetailedHouse 1 to 9
annadellisola 0f599fc
Update DetailedHouse10:
annadellisola ad2e25b
update Euler solver DetailedHouse10:
annadellisola 1322ce4
updated documentation, entire IDEAS model path
annadellisola 1d89d67
updated tank connection
annadellisola 8c5ea51
Remove schematic 7 png as it is not used
jelgerjansen fd42ade
Change width of schematic in package documentation
jelgerjansen cf59389
Merge remote-tracking branch 'origin/issue1389_DetailedHouse' into is…
annadellisola b6274ce
record name change
annadellisola c1acd2a
Update reference results
annadellisola 4f23e4b
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
annadellisola 23d1d34
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
annadellisola f7337dc
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse10.mo
annadellisola 842de43
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse10.mo
annadellisola b3fee03
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse10.mo
annadellisola 042e871
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse9.mo
annadellisola 014fb52
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse9.mo
annadellisola 7738463
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse9.mo
annadellisola 5210e47
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse6.mo
annadellisola b530f43
Update IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse9.mo
annadellisola b44a603
Merge branch 'issue1389_DetailedHouse' of https://github.com/LoneMeer…
annadellisola cd5e467
energyDynamic to FixedInitial
annadellisola f7b3ec2
updated translation statistics for initialization in ref results
annadellisola File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
208 changes: 208 additions & 0 deletions
208
IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse1.mo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,208 @@ | ||
| within IDEAS.Examples.Tutorial.DetailedHouse; | ||
| model DetailedHouse1 "First example model of a one-zone building" | ||
| extends Modelica.Icons.Example; | ||
| package MediumAir = IDEAS.Media.Air "Air medium"; | ||
|
|
||
| parameter Modelica.Units.SI.Length l=8 "Zone length"; | ||
| parameter Modelica.Units.SI.Length w=4 "Zone width"; | ||
| parameter Modelica.Units.SI.Length h=zon.hZone "Zone height (Default)"; | ||
|
|
||
| // SimInfoManager must be 'inner' at the top level | ||
| inner IDEAS.BoundaryConditions.SimInfoManager sim | ||
| annotation (Placement(transformation(extent={{-100,80},{-80,100}}))); | ||
| IDEAS.Buildings.Components.Zone zon( | ||
| redeclare package Medium = MediumAir, | ||
| nSurf=7, | ||
| V=l*h*w) | ||
| "Zone model" annotation (Placement(transformation(extent={{-20,0},{0,20}}))); | ||
| IDEAS.Buildings.Components.OuterWall outWalWes( | ||
| redeclare IDEAS.Buildings.Validation.Data.Constructions.HeavyWall | ||
| constructionType, | ||
| inc=IDEAS.Types.Tilt.Wall, | ||
| azi=IDEAS.Types.Azimuth.W, | ||
| A=l*h) "Western outer wall model" | ||
| annotation (Placement(transformation(extent={{-60,10},{-48,30}}))); | ||
| IDEAS.Buildings.Components.OuterWall outWalEas( | ||
| redeclare IDEAS.Buildings.Validation.Data.Constructions.HeavyWall | ||
| constructionType, | ||
| inc=IDEAS.Types.Tilt.Wall, | ||
| azi=IDEAS.Types.Azimuth.E, | ||
| A=l*h) "Eastern outer wall model" | ||
| annotation (Placement(transformation(extent={{40,0},{28,20}}))); | ||
| IDEAS.Buildings.Components.OuterWall outWalNor( | ||
| redeclare IDEAS.Buildings.Validation.Data.Constructions.HeavyWall | ||
| constructionType, | ||
| inc=IDEAS.Types.Tilt.Wall, | ||
| azi=IDEAS.Types.Azimuth.N, | ||
| A=w*h) "Northern outer wall model" | ||
| annotation (Placement(transformation( | ||
| extent={{6,-10},{-6,10}}, | ||
| rotation=90, | ||
| origin={-10,54}))); | ||
| IDEAS.Buildings.Components.OuterWall outWalSou( | ||
| redeclare IDEAS.Buildings.Validation.Data.Constructions.HeavyWall | ||
| constructionType, | ||
| inc=IDEAS.Types.Tilt.Wall, | ||
| azi=IDEAS.Types.Azimuth.S, | ||
| A=w*h - win.A) "Southern outer wall model" | ||
| annotation (Placement(transformation( | ||
| extent={{-6,-10},{6,10}}, | ||
| rotation=90, | ||
| origin={-10,-34}))); | ||
| IDEAS.Buildings.Components.Window win( | ||
| inc=IDEAS.Types.Tilt.Wall, | ||
| A=3*1.4, | ||
| azi=IDEAS.Types.Azimuth.S, | ||
| redeclare IDEAS.Buildings.Data.Glazing.Ins2Ar2020 glazing) | ||
| "Window model" annotation (Placement(transformation(extent={{-6,-10},{6,10}}, | ||
| rotation=0, | ||
| origin={-54,-10}))); | ||
|
|
||
| IDEAS.Buildings.Components.SlabOnGround slaOnGro( | ||
| redeclare IDEAS.Buildings.Data.Constructions.FloorOnGround constructionType, | ||
| inc=IDEAS.Types.Tilt.Floor, | ||
| azi=IDEAS.Types.Azimuth.S, | ||
| A=l*w) "Floor model" annotation (Placement(transformation( | ||
| extent={{-6,-11},{6,11}}, | ||
| rotation=90, | ||
| origin={30,-35}))); | ||
| IDEAS.Buildings.Components.OuterWall cei( | ||
| redeclare IDEAS.Buildings.Validation.Data.Constructions.LightRoof | ||
| constructionType, | ||
| inc=IDEAS.Types.Tilt.Ceiling, | ||
| A=w*l) "Ceiling model" annotation (Placement(transformation( | ||
| extent={{6,-10},{-6,10}}, | ||
| rotation=90, | ||
| origin={30,54}))); | ||
| equation | ||
| connect(outWalWes.propsBus_a, zon.propsBus[1]) annotation (Line( | ||
| points={{-49,22},{-30,22},{-30,14},{-20,14},{-20,13.1429}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| connect(zon.propsBus[2], outWalNor.propsBus_a) annotation (Line( | ||
| points={{-20,13.4286},{-22,13.4286},{-22,30},{-12,30},{-12,49}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| connect(zon.propsBus[3], outWalEas.propsBus_a) annotation (Line( | ||
| points={{-20,13.7143},{-20,14},{-22,14},{-22,30},{20,30},{20,12},{29,12}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| connect(outWalSou.propsBus_a, zon.propsBus[4]) annotation (Line( | ||
| points={{-12,-29},{-12,-10},{-20,-10},{-20,14}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| connect(win.propsBus_a, zon.propsBus[5]) annotation (Line( | ||
| points={{-49,-8},{-30,-8},{-30,14},{-20,14},{-20,14.2857}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| connect(slaOnGro.propsBus_a, zon.propsBus[6]) annotation (Line( | ||
| points={{27.8,-30},{28,-30},{28,-10},{-20,-10},{-20,14.5714}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| connect(cei.propsBus_a, zon.propsBus[7]) annotation (Line( | ||
| points={{28,49},{28,30},{-22,30},{-22,14.8571},{-20,14.8571}}, | ||
| color={255,204,51}, | ||
| thickness=0.5)); | ||
| annotation ( | ||
| Icon(coordinateSystem(preserveAspectRatio=false)), | ||
| Diagram(coordinateSystem(preserveAspectRatio=false)), | ||
| experiment( | ||
| StartTime=10000000, | ||
| StopTime=11000000, | ||
| __Dymola_NumberOfIntervals=5000, | ||
| Tolerance=1e-06, | ||
| __Dymola_Algorithm="Dassl"), | ||
| __Dymola_Commands(file= | ||
| "Resources/Scripts/Dymola/Examples/Tutorial/DetailedHouse/DetailedHouse1.mos" | ||
| "Simulate and plot"), | ||
| Documentation(info="<html> | ||
| <p> | ||
| This first example instantiates a simple building model that consists of one zone, four walls, | ||
| a window, a floor and a ceiling. The zone dimensions are <i>8 m</i> (with walls oriented | ||
| north and south) by <i>4 m</i>, and the window measures <i>3 m</i> by <i>1.4 m</i>. Use the default | ||
| zone height of <i>2.8 m</i>. Apply double glazing and a heavy wall, which provide high thermal mass. | ||
| </p> | ||
| <h4>Required models</h4> | ||
| <ul> | ||
| <li> | ||
| <a href=\"modelica://IDEAS.BoundaryConditions.SimInfoManager\"> | ||
| IDEAS.BoundaryConditions.SimInfoManager</a> | ||
| </li> | ||
| <li> | ||
| <a href=\"modelica://IDEAS.Buildings.Components.Zone\"> | ||
| IDEAS.Buildings.Components.Zone</a> | ||
| </li> | ||
| <li> | ||
| <a href=\"modelica://IDEAS.Buildings.Components.OuterWall\"> | ||
| IDEAS.Buildings.Components.OuterWall</a> | ||
| </li> | ||
| <li> | ||
| <a href=\"modelica://IDEAS.Buildings.Components.Window\"> | ||
| IDEAS.Buildings.Components.Window</a> | ||
| </li> | ||
| <li> | ||
| <a href=\"modelica://IDEAS.Buildings.Components.SlabOnGround\"> | ||
| IDEAS.Buildings.Components.SlabOnGround</a> | ||
| </li> | ||
| </ul> | ||
| <h4>Connection instructions</h4> | ||
| <p> | ||
| Each yellow bus connector of a surface (<code>Window</code>, <code>OuterWall</code> | ||
| or <code>SlabOnGround</code>) has to be connected to exactly one zone bus connector. | ||
| To support multiple connections, the zone has an array of bus connectors with size | ||
| <code>nSurf</code>, where <code>nSurf</code> is a parameter of <code>Zone</code>, | ||
| which has to be set by the user. It is the user’s responsibility to ensure that each | ||
| element of this array is connected to exactly one surface and that there is a total | ||
| of <code>nSurf</code> connections to the zone. | ||
| </p> | ||
| <p> | ||
| In addition to connecting each surface, the parameters of each component have to be set. Components typically | ||
| have many default values that are appropriate for many purposes. When a parameter does not have a default | ||
| value, it must be set by the user. Notable examples are the dimensions and orientation of the zone, walls | ||
| and windows. The surface orientation can be set using the parameters <code>incOpt</code>, which automatically sets the | ||
| inclination depending on the type of outer wall (wall, floor, ceiling), and <code>aziOpt</code>, which automatically sets the | ||
| azimuth (north, east, south, west). Furthermore, the zone Medium must be set to <a href=\"modelica://IDEAS.Media.Air\"> | ||
| IDEAS.Media.Air</a>. Glazing and wall types must also be specified. This example uses the <i>BESTEST Heavy Wall</i> for the | ||
| walls, the <i>FloorOnGround</i> construction type for the floor, the <i>BESTEST light roof</i> for the roof and the double glazing | ||
| type <i>Saint Gobain Planitherm</i> and a south orientation for the window. | ||
| </p> | ||
| <p> | ||
| The <code>SimInfoManager</code> by default has the modifier <code>inner</code> in its declaration. All IDEAS building components | ||
| have the modifier <code>outer</code> in their respective declarations of the <code>SimInfoManager</code>. This causes the component | ||
| declarations to point towards the higher level <code>SimInfoManager</code> declaration. This way all model equations for | ||
| the weather data have to be generated only once, instead of for each surface. | ||
| </p> | ||
| <h4>Reference result</h4> | ||
| <p> | ||
| This model is simulated with the following settings: | ||
| </p> | ||
| <ol> | ||
| <li>Dassl as the solver with tolerance = 1e-06 </li> | ||
| <li>Start time = 1e7,</li> | ||
| <li>Stop time = 1.1e7,</li> | ||
| <li>Number of intervals = 5000.</li> | ||
| </ol> | ||
| <p> | ||
| The simulation starts 10<sup>7</sup> seconds after New Year and ends 10<sup>6</sup> seconds later, covering a period of 11.6 days. | ||
| The figure below shows the operative zone temperature, <code>zon.TSensor</code>, | ||
| which represents the mean of the air temperature and the mean radiative temperature of all surfaces. | ||
| </p> | ||
| <p align=\"center\"> | ||
| <img alt=\"Zone temperature as function of time.\" | ||
| src=\"modelica://IDEAS/Resources/Images/Examples/Tutorial/DetailedHouse/DetailedHouse1.png\" width=\"700\"/> | ||
| </p> | ||
| </html>", revisions="<html> | ||
LoneMeertens marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <ul> | ||
| <li> | ||
| April 14, 2025, by Anna Dell'Isola and Lone Meertens:<br/> | ||
| Update and restructure IDEAS tutorial models. | ||
| See <a href=\"https://github.com/open-ideas/IDEAS/issues/1374\">#1374</a> | ||
| and <a href=\"https://github.com/open-ideas/IDEAS/issues/1389\">#1389</a>. | ||
| </li> | ||
| <li> | ||
| September 18, 2019 by Filip Jorissen:<br/> | ||
| First implementation for the IDEAS crash course. | ||
| </li> | ||
| </ul> | ||
| </html>")); | ||
| end DetailedHouse1; | ||
141 changes: 141 additions & 0 deletions
141
IDEAS/Examples/Tutorial/DetailedHouse/DetailedHouse10.mo
annadellisola marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,141 @@ | ||||||||
| within IDEAS.Examples.Tutorial.DetailedHouse; | ||||||||
| model DetailedHouse10 "Speeding up the code" | ||||||||
| extends DetailedHouse9( | ||||||||
| pumSec( | ||||||||
| energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, | ||||||||
| allowFlowReversal=false, | ||||||||
| use_riseTime=false), | ||||||||
| pumPri( | ||||||||
| energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, | ||||||||
| allowFlowReversal=false, | ||||||||
| use_riseTime=false), | ||||||||
| pumEmi( | ||||||||
| energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, | ||||||||
| allowFlowReversal=false, | ||||||||
| use_riseTime=false), | ||||||||
| recZon1( | ||||||||
| redeclare IDEAS.Buildings.Components.InterzonalAirFlow.n50FixedPressure interzonalAirFlow, | ||||||||
| redeclare HeavyWallNoWood conTypA, | ||||||||
| redeclare HeavyWallNoWood conTypB, | ||||||||
| redeclare HeavyWallNoWood conTypC, | ||||||||
| redeclare HeavyWallNoWood conTypD), | ||||||||
| recZon( | ||||||||
| redeclare IDEAS.Buildings.Components.InterzonalAirFlow.n50FixedPressure interzonalAirFlow, | ||||||||
| redeclare HeavyWallNoWood conTypA, | ||||||||
| redeclare HeavyWallNoWood conTypB, | ||||||||
| redeclare HeavyWallNoWood conTypC, | ||||||||
| redeclare HeavyWallNoWood conTypD), | ||||||||
| fanRet( | ||||||||
| allowFlowReversal=false, | ||||||||
| energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, | ||||||||
| use_riseTime=false), | ||||||||
| fanSup( | ||||||||
| allowFlowReversal=false, | ||||||||
| energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, | ||||||||
| use_riseTime=false), | ||||||||
| val(allowFlowReversal=false, from_dp=true), | ||||||||
| val1(allowFlowReversal=false, from_dp=true), | ||||||||
| rad(allowFlowReversal=false, nEle=2), | ||||||||
| rad1(allowFlowReversal=false, nEle=2), | ||||||||
| heaPum( | ||||||||
| allowFlowReversal1=false, | ||||||||
| allowFlowReversal2=false, | ||||||||
| from_dp1=true, | ||||||||
| from_dp2=true), | ||||||||
| senTemSup(tau=0), | ||||||||
| tan(allowFlowReversal=false, tau=60), | ||||||||
| vavSup(allowFlowReversal=false, use_strokeTime=false), | ||||||||
| vavRet(allowFlowReversal=false, use_strokeTime=false), | ||||||||
| vavSup1(allowFlowReversal=false, use_strokeTime=false), | ||||||||
| vavRet1(allowFlowReversal=false, use_strokeTime=false), | ||||||||
| hex(allowFlowReversal1=false, allowFlowReversal2=false)); | ||||||||
| protected | ||||||||
| record HeavyWallNoWood "BESTEST heavy wall with idealized wood layer" | ||||||||
| extends IDEAS.Buildings.Data.Interfaces.Construction( | ||||||||
| final mats={ | ||||||||
| IDEAS.Buildings.Validation.Data.Materials.WoodSiding(d=0), | ||||||||
| IDEAS.Buildings.Validation.Data.Insulation.FoamInsulation(d=0.0615), | ||||||||
| IDEAS.Buildings.Validation.Data.Materials.ConcreteBlock(d=0.10)}); | ||||||||
|
|
||||||||
| end HeavyWallNoWood; | ||||||||
| annotation ( | ||||||||
| __Dymola_Commands(file= | ||||||||
| "Resources/Scripts/Dymola/Examples/Tutorial/DetailedHouse/DetailedHouse10.mos" | ||||||||
| "Simulate and plot"), | ||||||||
| experiment( | ||||||||
| StartTime=10000000, | ||||||||
| StopTime=11000000, | ||||||||
| __Dymola_NumberOfIntervals=5000, | ||||||||
LoneMeertens marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
| Tolerance=1e-06, | ||||||||
| __Dymola_fixedstepsize=20, | ||||||||
| __Dymola_Algorithm="Euler"), | ||||||||
| __Dymola_experimentFlags( | ||||||||
| Advanced( | ||||||||
| EvaluateAlsoTop=true, | ||||||||
| GenerateVariableDependencies=false, | ||||||||
| OutputModelicaCode=false), | ||||||||
| Evaluate=true, | ||||||||
| OutputCPUtime=true, | ||||||||
| OutputFlatModelica=false), | ||||||||
| Documentation(info="<html> | ||||||||
| <p> | ||||||||
| The previous examples present a rather good computational performance. However, the computation time | ||||||||
| can significantly increase for larger simulation time due to frequent on/off switching | ||||||||
| of the heat pump. This effect causes a lot of fast transients that force the solver | ||||||||
| to take small steps, which takes a lot of time. | ||||||||
| </p> | ||||||||
| <p> | ||||||||
annadellisola marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
| Fortunately, many tricks can be used to speed up the solver. The fundamental principle is to | ||||||||
| remove small time constants from the problem. | ||||||||
| The example in <a href=\"modelica://IDEAS.Examples.Tutorial.DetailedHouse.DetailedHouse10\"> | ||||||||
| IDEAS.Examples.Tutorial.DetailedHouse.DetailedHouse10</a> implements changes | ||||||||
|
Comment on lines
+90
to
+91
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
| that cause the simulation to become almost 3 times faster. By systematically removing fast time constants, the solver can be | ||||||||
annadellisola marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
| switched to a simpler method, such as Euler integration, with a fixed time step of 20 seconds. | ||||||||
| <p> | ||||||||
| It is important to note the trade-off between computation time and simulation | ||||||||
| accuracy when choosing an integration method. While the Euler method is generally | ||||||||
| much faster than implicit solvers such as Dassl, it is also less accurate, | ||||||||
| especially for stiff or highly dynamic systems. Using smaller Euler time steps | ||||||||
| increases simulation accuracy but also increases computation time, whereas larger | ||||||||
| time steps decrease computation time at the expense of accuracy. Therefore, careful | ||||||||
| consideration is needed when selecting the solver and time step size, balancing | ||||||||
| the need for speed and the desired level of accuracy in the simulation results. | ||||||||
| </p> | ||||||||
| <p> | ||||||||
| These are modest improvements since this small example model behaves rather well. | ||||||||
| However, for large models, the difference in computation time when using Euler integration | ||||||||
| can become a factor 1000. The modifications however require a bit of knowledge about solvers and the models | ||||||||
| that you are using, including some of the more advanced parameters. To learn more about this, we refer to | ||||||||
| [1, 2, 3]. | ||||||||
| </p> | ||||||||
| <h4>References</h4> | ||||||||
| <ol> | ||||||||
| [1] F. Jorissen, M. Wetter, and L. Helsen. <i>Simulation Speed Analysis and Improvements of Modelica Models for Building Energy Simulation</i>. In 11th International Modelica Conference, Paris, 2015. doi: 10.3384/ecp1511859 | ||||||||
| </ol> | ||||||||
| <ol> | ||||||||
| [2] F. Jorissen, M. Wetter, and L. Helsen. <i>Simplifications for hydronic system models in Modelica</i>. Journal of Building Performance Simulation, 11:6, 639-654, 2018. doi: 10.1080/19401493.2017.1421263 | ||||||||
| </ol> | ||||||||
| <ol> | ||||||||
| [3] F. Jorissen. <i>Toolchain for Optimal Control and Design of Energy Systems in Buildings</i>. PhD Thesis, KU Leuven, 2018. | ||||||||
| </ol> | ||||||||
| </html>", revisions="<html> | ||||||||
| <ul> | ||||||||
| <li> | ||||||||
| April 14, 2025, by Anna Dell'Isola and Lone Meertens:<br/> | ||||||||
| Update and restructure IDEAS tutorial models. | ||||||||
| See <a href=\"https://github.com/open-ideas/IDEAS/issues/1374\">#1374</a> | ||||||||
| and <a href=\"https://github.com/open-ideas/IDEAS/issues/1389\">#1389</a>. | ||||||||
| </li> | ||||||||
| <li> | ||||||||
| October 30, 2024, by Lucas Verleyen:<br/> | ||||||||
| Updates according to <a href=\"https://github.com/ibpsa/modelica-ibpsa/tree/8ed71caee72b911a1d9b5a76e6cb7ed809875e1e\">IBPSA</a>.<br/> | ||||||||
| See <a href=\"https://github.com/open-ideas/IDEAS/pull/1383\">#1383</a> | ||||||||
| (and <a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/1926\">IBPSA, #1926</a>). | ||||||||
| </li> | ||||||||
| <li> | ||||||||
| September 18, 2019 by Filip Jorissen:<br/> | ||||||||
| First implementation for the IDEAS crash course. | ||||||||
| </li> | ||||||||
| </ul> | ||||||||
| </html>")); | ||||||||
| end DetailedHouse10; | ||||||||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.