Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
260 commits
Select commit Hold shift + click to select a range
81ab309
dummyfix
danielfeismann Aug 8, 2024
6ad7f53
more changes to include DomesticHotWaterStorage
danielfeismann Aug 9, 2024
3615ec4
adapt to psdm changes for thermal house and DomesticHotWaterStorageInput
danielfeismann Aug 12, 2024
93ae513
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 12, 2024
e00d19f
include logic for considering domestic hot water demand and further a…
danielfeismann Aug 13, 2024
97758da
fmt
danielfeismann Aug 13, 2024
9fb2bc2
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 13, 2024
8213012
fix WaterHeatingSystemSpec
danielfeismann Aug 14, 2024
927e856
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 14, 2024
343cdbd
adapt handleConsumption to domestic hot water storage
danielfeismann Aug 14, 2024
a05fe51
fix handleInfeedStorage
danielfeismann Aug 14, 2024
257d1ef
fix some test data
danielfeismann Aug 14, 2024
3de1f26
introduce domestic hot water storage into HpModelSpec
danielfeismann Aug 14, 2024
0c20c2b
fmt
danielfeismann Aug 14, 2024
18356c3
adapt tests of ThermalGridWith...
danielfeismann Aug 14, 2024
fc93131
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 14, 2024
30adf0f
one more adapt tests of ThermalGridWith
danielfeismann Aug 14, 2024
321c1d6
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 15, 2024
54a64d4
set storedEnergy at startingState of DomesticHotWaterStorage to full
danielfeismann Aug 15, 2024
df13f75
adapt tests to full DomesticHotWaterStorage in startingState
danielfeismann Aug 15, 2024
757683f
fix tests after full DomesticHotWaterStorage in startingState
danielfeismann Aug 15, 2024
c6e79c7
rollback unnecessary change in HpModelSpec
danielfeismann Aug 16, 2024
fd31d9c
Revert "rollback unnecessary change in HpModelSpec"
danielfeismann Aug 16, 2024
532f00d
adapt energyDemand calculation of domestic hot water storage
danielfeismann Aug 16, 2024
7b63ecb
removal of unused method
danielfeismann Aug 16, 2024
efb73b4
adapt tests to domestic hot water storage
danielfeismann Aug 16, 2024
15e8f63
fmt
danielfeismann Aug 16, 2024
cdfc915
fmt
danielfeismann Aug 16, 2024
907a063
Revert "fmt"
danielfeismann Aug 16, 2024
7d1e400
fmt
danielfeismann Aug 16, 2024
3f51f34
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 16, 2024
0e5ab19
fix tests of ThermalGridWithHouseOnlySpec
danielfeismann Aug 16, 2024
3103427
harmonise variables
danielfeismann Aug 16, 2024
82fda3d
fmt
danielfeismann Aug 19, 2024
26b3c74
fix edge case of energyDemandWater
danielfeismann Aug 19, 2024
bf7560d
concise version of enrgyDemandDomesticHotWater
danielfeismann Aug 19, 2024
b48e805
fix test solely heat up the house for ThermalGridWithHouseOnlySpec
danielfeismann Aug 19, 2024
10a78b1
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 19, 2024
9860856
enhancing tests of thermalGridWith... to check as well the tick after…
danielfeismann Aug 19, 2024
a11f4a3
correct name of variable
danielfeismann Aug 19, 2024
62df4db
Merge branch 'dev' into df/#856-tap-water
danielfeismann Aug 19, 2024
bd2d3f8
fix HpAgentModelCalculationSpec
danielfeismann Aug 20, 2024
e770997
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 20, 2024
c584f84
Merge branch 'refs/heads/df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Aug 20, 2024
be1b45a
fix conflicts after merging
danielfeismann Aug 20, 2024
feefb09
Merge remote-tracking branch 'refs/remotes/origin/df/#729-additional-…
danielfeismann Aug 21, 2024
49bb285
cherrypick EmAgentIT from ThermalGridIT pull request
danielfeismann Aug 21, 2024
a6b5031
start fixing determineFlexOptions
danielfeismann Aug 21, 2024
bd92823
start adapting HpModelSpec
danielfeismann Aug 21, 2024
6dd24a7
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 22, 2024
7455b80
Merge branch 'refs/heads/df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Aug 22, 2024
38f84e4
adaptions after merging thermal storage refill PR
danielfeismann Aug 22, 2024
d03ad49
adapt HpModel and HpModelSpec to domestic hot water storage
danielfeismann Aug 22, 2024
606893f
format and code quality
danielfeismann Aug 22, 2024
8466c48
fmt
danielfeismann Aug 23, 2024
744154c
add domesticHotWaterStorageInput to HpInputTestData
danielfeismann Aug 23, 2024
80b88af
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 26, 2024
bcc486e
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 26, 2024
4ba4dff
remove type specs for testCases table
danielfeismann Aug 26, 2024
395ce15
refactor handleInfeed
danielfeismann Aug 26, 2024
748d8f3
scalaDoc, fmt, renamings etc
danielfeismann Aug 26, 2024
d467581
refactor determineMostRecentThreshold
danielfeismann Aug 26, 2024
52f4342
fix handleInfeedStorage
danielfeismann Aug 26, 2024
f120f54
fmt
danielfeismann Aug 26, 2024
a9c267e
remove redundant headOption
danielfeismann Aug 26, 2024
2f35b84
fix tests ThermalGridWith..
danielfeismann Aug 26, 2024
4d35214
adapt test since the conditions doesnt realy make sense
danielfeismann Aug 26, 2024
d6b2b3a
harmonise InputTestData
danielfeismann Aug 26, 2024
9d69563
enrich thermalResults by results of domestic hot water storage
danielfeismann Aug 26, 2024
6e72130
fmt
danielfeismann Aug 26, 2024
9a287f6
change to thermalDemands in tests
danielfeismann Aug 27, 2024
9538580
change to thermalDemands in HpModel and coresponting refactoring in T…
danielfeismann Aug 27, 2024
88a7b8e
format and coding styles
danielfeismann Aug 27, 2024
a14178e
updating ThermalGridIT to include domestic hot water storage first part
danielfeismann Aug 27, 2024
0062712
typo
danielfeismann Aug 28, 2024
a38f814
refactor discharging power of domestic hot water storage to match pre…
danielfeismann Aug 28, 2024
91873b9
fmt
danielfeismann Aug 28, 2024
6ae74f2
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 29, 2024
994b7cc
fmt
danielfeismann Aug 29, 2024
18ff9b2
fixing some tests
danielfeismann Aug 29, 2024
a329610
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Aug 29, 2024
6559093
fixing more tests
danielfeismann Aug 29, 2024
10f9fba
fix calcuation of energy demand for hot water for the hours between t…
danielfeismann Aug 30, 2024
e2e2b9b
fix threshold calculation of domestic hot water storage
danielfeismann Aug 30, 2024
9aba960
use wildcard for unneccessary vals
danielfeismann Aug 30, 2024
d1e50c9
fixing tests
danielfeismann Aug 30, 2024
c0c2042
updating parts of ThermalGridIT
danielfeismann Aug 30, 2024
547534c
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Sep 13, 2024
7f46a28
update ThermalGridIT till tick 45000
danielfeismann Sep 13, 2024
5ab69b6
update rtd
danielfeismann Sep 15, 2024
7f2945c
declare demand for recharing domestic hot water storage below 20 perc…
danielfeismann Sep 16, 2024
e33796b
fix qDot for domestic hot water storage
danielfeismann Sep 16, 2024
221e389
fix ThermalGridIT
danielfeismann Sep 16, 2024
abd820d
adapt comments
danielfeismann Sep 16, 2024
f8ac1ff
comments for remaining ticks in ThermalGridIT
danielfeismann Sep 17, 2024
199f7b9
fmt
danielfeismann Sep 17, 2024
eca2902
fix some tests
danielfeismann Sep 17, 2024
f915164
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Sep 17, 2024
e2b7cd1
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Sep 17, 2024
6b30a5d
fmt
danielfeismann Sep 17, 2024
77fba08
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Sep 17, 2024
df2153a
adapt EmAgentIT
danielfeismann Sep 17, 2024
9c1334a
rollback change to fallback to latest weatherData
danielfeismann Sep 19, 2024
a45a7b1
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Sep 19, 2024
1d1355e
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Sep 26, 2024
fe470ca
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Oct 1, 2024
611b701
override def getTimeKeysAfter in WeatherSourceWrapperSpec
danielfeismann Oct 30, 2024
ce64339
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Oct 30, 2024
9c742de
resolve merge conflicts in ThermalGrid
danielfeismann Oct 30, 2024
509b6db
fmt
danielfeismann Oct 30, 2024
c892eea
pick changes from pr 1009 to fix filter ThermalGridResults
danielfeismann Oct 30, 2024
a4e6fd4
fix for psdm changes on thermal storages
danielfeismann Oct 30, 2024
cfac4cc
fix after merging ThermalGrid
danielfeismann Oct 30, 2024
cc2f566
adapting ThermalGridIT to changes in thermal grid result calculation
danielfeismann Oct 30, 2024
e03d0ad
adapt scala doc of DomesticHotWaterStorage
danielfeismann Oct 30, 2024
f522c82
fix initial stored energy of DomesticHotWaterStorage
danielfeismann Oct 30, 2024
de52f6e
Merge branch 'dev' into df/#856-tap-water
danielfeismann Nov 1, 2024
d3357f6
Merge branch 'dev' into df/#856-tap-water
danielfeismann Nov 14, 2024
378f2f6
Merge branch 'df/#1023-zeroKW-and-kWh-in-test' into df/#856-tap-water
danielfeismann Nov 15, 2024
29dedaa
Merge branch 'df/#1023-zeroKW-and-kWh-in-test' into df/#856-tap-water
danielfeismann Nov 15, 2024
e5702c1
resolving merge conflict
danielfeismann Nov 15, 2024
ab42b3c
Merge branch 'dev' into df/#856-tap-water
danielfeismann Nov 15, 2024
15f2f59
Merge branch 'dev' into df/#856-tap-water
danielfeismann Nov 15, 2024
85c0fc1
Merge branch 'dev' into df/#856-tap-water
danielfeismann Nov 19, 2024
e6b831c
Merge branch 'df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Nov 23, 2024
1d3eaa4
solving some merge conflicts
danielfeismann Nov 23, 2024
31e6c21
fix some tests after merge conflicts
danielfeismann Nov 23, 2024
ad18a71
fix ChpModelSpec and CylindricalThermalStorageSpec due to new storage…
danielfeismann Nov 24, 2024
d5a24c4
correct tests after merge conflict
danielfeismann Nov 24, 2024
f575af1
adapt tests to input requirements
danielfeismann Nov 24, 2024
921c18d
fmt
danielfeismann Nov 24, 2024
c765a82
add case to handleInfeed
danielfeismann Nov 24, 2024
4d2213b
Merge branch 'df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Nov 26, 2024
11e00dd
resolve conflicts after merge
danielfeismann Nov 26, 2024
577bd3a
split handleInfeed and introduce logic table as scalaDoc
danielfeismann Nov 26, 2024
5688a65
Merge branch 'df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Nov 26, 2024
3b2ddc7
make more use of HpRelevantData
danielfeismann Nov 26, 2024
13cf1e3
fix test after merging dev
danielfeismann Dec 12, 2024
54acddc
add case of thermal storage when handleInfeedStorage when there is no…
danielfeismann Dec 12, 2024
621ae78
Merge branch 'dev' into df/#856-tap-water
danielfeismann Dec 30, 2024
8864732
add DomesticHotWaterStorage to NotifierIdentifier for entityMapping
danielfeismann Dec 30, 2024
fc7af9f
change order of pattern matching cases
danielfeismann Jan 10, 2025
ddf982f
fmt
danielfeismann Jan 10, 2025
dc4fe02
Merge branch 'df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Jan 14, 2025
168e5ae
resolving merge conflicts after merging thermalGridIT branch
danielfeismann Jan 14, 2025
3f8e054
fix double entry in changelog
danielfeismann Jan 14, 2025
fb2ca0c
fix column name of time_series_mapping resources
danielfeismann Jan 15, 2025
29dd35e
fmt
danielfeismann Jan 15, 2025
fcb9db4
Merge branch 'dev' into df/#856-tap-water
danielfeismann Jan 16, 2025
bef411e
Merge branch 'df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Jan 16, 2025
0f54efd
Merge branch 'dev' into df/#856-tap-water
danielfeismann Jan 28, 2025
3677163
Merge branch 'dev' into df/#856-tap-water
danielfeismann Jan 30, 2025
5b07a0d
Merge branch 'dev' into df/#856-tap-water
danielfeismann Feb 3, 2025
54ae582
Merge branch 'df/#878-thermalGridIT' into df/#856-tap-water
danielfeismann Feb 3, 2025
b6311c0
Merge remote-tracking branch 'origin/df/#878-thermalGridIT' into df/#…
danielfeismann Feb 5, 2025
f53eae7
fix EmAgentIT after PvModel update
danielfeismann Feb 5, 2025
fb7a49e
handle merge conflicts
danielfeismann Feb 5, 2025
40f3cf8
add comments and fmt
danielfeismann Feb 5, 2025
2b92fe3
init ThermalGridIT with em
danielfeismann Feb 6, 2025
52b3582
fix changelog
danielfeismann Feb 6, 2025
a68e126
fix simulationStartDate and inputData
danielfeismann Feb 6, 2025
37bffc1
refactor messages
danielfeismann Feb 6, 2025
85c8c7b
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 7, 2025
0d9ed7c
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 7, 2025
bbfa620
create unapply methods for EmResult and HpResult
danielfeismann Feb 7, 2025
6c38e52
update ThermalGridIt case with Em
danielfeismann Feb 7, 2025
2e6c69b
Merge remote-tracking branch 'origin/df/#1146-thermalGridIT-with-EM' …
danielfeismann Feb 10, 2025
84c93e2
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 10, 2025
20bef9a
refactoring after merging dev
danielfeismann Feb 10, 2025
295be25
Merge branch 'dev' into df/#856-tap-water
danielfeismann Feb 11, 2025
da3ca42
renaming additionalDemand to possibleDemand
danielfeismann Feb 11, 2025
99dba9c
fix ThermalGridIT after merging dev
danielfeismann Feb 11, 2025
4f9b1f2
fix calcState
danielfeismann Feb 11, 2025
1528e9c
update ThermalGridIT with em a tiny bit
danielfeismann Feb 11, 2025
9d0a649
edge case continue heating till target temperature when surplus energ…
danielfeismann Feb 12, 2025
c942771
enhance thermal house doc
danielfeismann Feb 13, 2025
2cba091
add links to thermal house doc
danielfeismann Feb 13, 2025
0d156ed
update thermal house doc
danielfeismann Feb 13, 2025
80218af
introduce boolean whether the upper temp boundary should be used, use…
danielfeismann Feb 16, 2025
e7ee7f3
refactor upper ThermalHouseThreshold
danielfeismann Feb 16, 2025
3af85b8
fix tests for thermal houses regarding change to reqDemand till targe…
danielfeismann Feb 16, 2025
a6bfbf9
fix ThermalGridIT with Em
danielfeismann Feb 16, 2025
fdb48e0
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 16, 2025
4b7912f
Merge branch 'df/#1176-heat-pump-targetTemp' into df/#1146-thermalGri…
danielfeismann Feb 16, 2025
48ab311
Updating some scalaDocs
danielfeismann Feb 17, 2025
e17101f
renaming ThermalHouse.determineState to ThermalHouse.updateState
danielfeismann Feb 17, 2025
f2bdc8f
renaming actualTargetTemperature to actualTemperatureTarget
danielfeismann Feb 17, 2025
1779ecd
remove fixme regarding some issue to em reactive power
danielfeismann Feb 17, 2025
4a70c3f
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 17, 2025
f54def2
fix EmAgentIT by adding the additional activation when thermal house …
danielfeismann Feb 17, 2025
4a72b0b
remove workaround of testdata for pvInput
danielfeismann Feb 17, 2025
3b101e6
fix thermalGriIT without Em
danielfeismann Feb 17, 2025
c559368
update comments, fmt
danielfeismann Feb 17, 2025
db99720
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 17, 2025
f36d6a9
more simplification
danielfeismann Feb 17, 2025
9dbc73c
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 18, 2025
f774b9f
remove calculation of innerHouseTemperature and directly take it from…
danielfeismann Feb 18, 2025
f0dc7d8
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 18, 2025
c611a43
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Feb 18, 2025
1b86a97
update EmAgentIT to recent change to PvModel in InputTestData
danielfeismann Feb 18, 2025
6af7859
update ScalaDoc of handleFinalInfeedCases
danielfeismann Feb 18, 2025
ef29406
remove unused imports
danielfeismann Feb 18, 2025
dde69cf
remove no longer used InputTestData
danielfeismann Feb 18, 2025
9c9d972
fmt
danielfeismann Feb 18, 2025
aee2678
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 19, 2025
70b2832
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 20, 2025
035d4ca
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Feb 26, 2025
1b0c8e6
adapt ThermalGrid to new requirements
danielfeismann Feb 26, 2025
bad24af
include also edge case
danielfeismann Feb 26, 2025
a7276d6
more refactoring
danielfeismann Feb 26, 2025
9e8d914
fmt
danielfeismann Feb 26, 2025
8c4741a
adapt EmAgentIT to change of heating house always just till target te…
danielfeismann Feb 27, 2025
d630084
Merge branch 'refs/heads/dev' into df/#856-tap-water
danielfeismann Feb 27, 2025
61ea13d
Merge branch 'refs/heads/df/#1107-prepare-changes-for-next-psdm-relea…
danielfeismann Feb 27, 2025
b96d81d
removed unused inputTestData
danielfeismann Feb 27, 2025
284f78c
fix after merge
danielfeismann Feb 27, 2025
a3e87d7
rename thermal house temperature boundary
danielfeismann Feb 27, 2025
479ea32
adapt config for testInputData
danielfeismann Feb 27, 2025
a754a40
correctly name ThermalHouse temperature boundary
danielfeismann Feb 27, 2025
d8586f8
correctly name ThermalHouse temperature boundary part 2
danielfeismann Feb 27, 2025
5bb965a
Merge branch 'df/#1176-heat-pump-targetTemp' into df/#1146-thermalGri…
danielfeismann Mar 4, 2025
5ac52f7
adapt test to new pThermalMax value of storage
danielfeismann Mar 4, 2025
42d5806
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Mar 13, 2025
eee046e
introduced temperature tolerance for ThermalGridIT
danielfeismann Mar 13, 2025
753d39d
adapt ticks to changes caused by usage of math.floor for calc next tick
danielfeismann Mar 13, 2025
81888bf
fmt
danielfeismann Mar 13, 2025
dd71625
Merge branch 'dev' into df/#856-tap-water
danielfeismann Mar 14, 2025
44805ef
Merge branch 'refs/heads/df/#1176-heat-pump-targetTemp' into df/#856-…
danielfeismann Mar 14, 2025
70f7dd1
some fixes after merging dev
danielfeismann Mar 14, 2025
688ea81
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Mar 14, 2025
15dd082
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Mar 14, 2025
20c611e
fix tests
danielfeismann Mar 14, 2025
4ae3f5f
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Mar 15, 2025
ec2b83d
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Mar 16, 2025
bb3612e
Merge branch 'dev' into df/#856-tap-water
danielfeismann Mar 16, 2025
2baa8cd
introduce schedule lock to ThermalGridIT
danielfeismann Mar 16, 2025
fcb6f46
fmt
danielfeismann Mar 16, 2025
ed21a29
add changelog entry
danielfeismann Mar 16, 2025
4e62724
Merge branch 'df/#1146-thermalGridIT-with-EM' into df/#856-tap-water
danielfeismann Mar 16, 2025
f5595c2
fix emInput
danielfeismann Mar 16, 2025
9a2a1fe
fix implicit startDateTime
danielfeismann Mar 16, 2025
adac335
fmt
danielfeismann Mar 16, 2025
b18212c
reintroduce implicit val temperatureTolerance
danielfeismann Mar 16, 2025
fd8a0e6
remove double inputTestData
danielfeismann Mar 16, 2025
60ec35e
fix ExtEvDataServiceSpec
danielfeismann Mar 16, 2025
9c6f22d
Merge branch 'dev' into df/#1146-thermalGridIT-with-EM
danielfeismann Mar 21, 2025
36809ab
fix ExtEvDataServiceSpec
danielfeismann Mar 21, 2025
4d09c41
fix ThermalGridIT after merging dev
danielfeismann Mar 21, 2025
00a1d74
fix comment in ThermalGridIT
danielfeismann Mar 21, 2025
36330f2
Merge branch 'df/#1146-thermalGridIT-with-EM' into df/#856-tap-water
danielfeismann Mar 21, 2025
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Replace `BmModel` with its new implementation [#1157](https://github.com/ie3-institute/simona/issues/1157)
- Integration test for thermal grids without Em [#1145](https://github.com/ie3-institute/simona/issues/1145)
- Change thermal house behaviour to heat till targetTemperature [#1176](https://github.com/ie3-institute/simona/issues/1176)
- Integration test for thermal grids with Em [#1146](https://github.com/ie3-institute/simona/issues/1146)
- Introducing warm water heating to `ThermalHouse` [#856](https://github.com/ie3-institute/simona/issues/856)

### Changed
- Adapted to changed data source in PSDM [#435](https://github.com/ie3-institute/simona/issues/435)
Expand Down
1 change: 1 addition & 0 deletions docs/readthedocs/models.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ maxdepth: 1
models/bm_model
models/chp_model
models/cts_model
models/dhws_model
models/evcs_model
models/hp_model
models/load_model
Expand Down
2 changes: 1 addition & 1 deletion docs/readthedocs/models/cts_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This page documents the functionality of the cylindrical thermal storage available in SIMONA.

## Behaviour
This storage model operates on volumes, although the functions it provides for other models all operate with energy. Internally the storage model converts energy to volume and vice versa with formulas specified below. Furthermore, it is assumed that the storage medium is water. Also, the model holds a variable for the current storage level.
This storage model operates on volumes, although the functions it provides for other models all operate with energy. Internally the storage model converts energy to volume and vice versa with formulas specified below. Furthermore, it is assumed that the storage medium is water. Also, the model holds a variable for the current storage level. At initialisation the storage will be empty.

## Attributes, Units and Remarks

Expand Down
56 changes: 56 additions & 0 deletions docs/readthedocs/models/dhws_model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
(dhws_model)=
# Domestic Hot Water Storage
This page documents the functionality of the domestic hot water storage available in SIMONA.

## Behaviour
This storage model operates on volumes, although the functions it provides for other models all operate with energy. Internally the storage model converts energy to volume and vice versa with formulas specified below. Furthermore it is assumed that the storage medium is water. Also the model holds a variable for the current storage level. At initialisation the storage will be full. Domestic hot water storage will be refilled when the state of charge will be below 20 % or when the required water demand can not be covered by the stored energy in the storage itself.

## Attributes, Units and Remarks

Please refer to {doc}`PowerSystemDataModel - CTS Model <psdm:models/input/thermal/domestichotwaterstorage>` for Attributes and Units used in this Model.

## Calculations
### Maximal storage capacity
As the name suggests this storage has a cylindric form, hence its maximum storage capacity $V_{st, max}$ can be given by:

$$
V_{st, max} = \pi \cdot r^2 \cdot h
$$

### Conversions of energy and volume

In this model the change of stored energy (heat) is represented by the change of the volume of the storage medium. This relation between stored heat and volume change is given by:

$$
V = (\frac{W}{c \cdot (tE - tA)})
$$

with
W = energy to be converted to volume
V = resulting volume
tE = return temperature
tA = inlet temperature
c = $1,15 \frac{kWh}{m^3 \cdot K}$

The original equation is given by:

$$
\Delta V_{st} = (\frac{\dot{Q_{th}} \cdot \Delta t}{c \cdot (tA - tE)})
$$

Reference:

* {cite:cts}`Quaschning.2013`


That is the mathematical description of loading and unloading processes concerning the buffer storage. Whenever heat is stored within the storage or removed from the storage this equation is used. This includes the case that the whole heat demand is satisfied by the storage.

The same relationship is used to determine the quantity of heat which is stored in the storage by converting the equation to:

$$
W = V \cdot c \cdot (tE - tA)
$$

## Store/Take energy

This calculation is performed as follows: An amount of energy is specified for storing or taking. The model then changes the storage level and returns if it exceeded the maximum (when storing energy) or the minimum (when taking energy).
8 changes: 5 additions & 3 deletions docs/readthedocs/models/thermal_house_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

This page documents the functionality of the thermal house available in SIMONA.


## Behaviour

This house model represents the thermal behaviour of a building. It represents a simple shoebox with thermal capacity and transmission losses.
The house can optionally be equipped with a {ref}`cts_model` as thermal storage. Both are connected by the {ref}`thermal_grid_model`.
This house model represents the thermal behaviour of a building. It represents a simple shoebox with thermal capacity and transmission losses for its heating demand. As well the hot water demand (tap water) based on the number of inhabitants and the housing type on hourly basis is considered. The house can optionally be equipped with a {ref}`cts_model` as thermal storage. Both are connected by the {ref}`thermal_grid_model`.

The thermal house provides two different energy demands. The required demand indicates that the inner temperature of the house is below the lower temperature boundary and thus, requires mandatory heating. An additional demand indicates the amount of energy necessary to reach the target temperature. Additional demand not necessarily requires to be covered but could, e.g. for flexibility purposes.

Expand All @@ -21,7 +21,9 @@ As the storage is initialised as empty, the heat source will start charging the

### Behaviour under EM control

Currently, not fully supported. Will be fixed by [PR #1159](https://github.com/ie3-institute/simona/pull/1159)
When {ref}`em` is applied to the heat source of this building, the thermal behaviour should be basically the same as without EM control, so internal temperature of the house should remain between the target temperature and the lower temperature limit.

However, for flexibility usage, the energy management system can turn on the heat source whenever the thermal house has additional demand. Same for the thermal storage. When the heat source is EM controlled, the thermal storage will only be recharged when the flexibility strategy allows. E.g. when there is surplus energy from PV plant.

## Attributes, Units and Remarks

Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ import edu.ie3.simona.event.ResultEvent
import edu.ie3.simona.event.ResultEvent.{
FlexOptionsResultEvent,
ParticipantResultEvent,
ThermalResultEvent,
}
import edu.ie3.simona.event.notifier.NotifierConfig
import edu.ie3.simona.exceptions.CriticalFailureException
Expand Down Expand Up @@ -1946,8 +1945,7 @@ protected trait ParticipantAgentFundamentals[
result: R
): Option[ResultEvent] = result match {
case thermalUnitResult: ThermalUnitResult =>
Some(ThermalResultEvent(thermalUnitResult))

Some(ResultEvent.ThermalResultEvent(thermalUnitResult))
case unsupported =>
log.debug(
s"Results of class '${unsupported.getClass.getSimpleName}' are currently not supported."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,12 @@ trait HpAgentFundamentals
HpRelevantData(
tick,
weatherData.temp.inKelvin,
baseStateData.startDate,
baseStateData.model.thermalGrid.house.map(_.houseInhabitants).getOrElse {
throw new InconsistentStateException(
s"The model ${baseStateData.model.thermalGrid.house} was not provided with the needed number of inhabitants."
)
},
)
}

Expand Down
60 changes: 60 additions & 0 deletions src/main/scala/edu/ie3/simona/event/ResultEvent.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ import edu.ie3.datamodel.models.result.system.{
}
import edu.ie3.datamodel.models.result.thermal.{
CylindricalStorageResult,
DomesticHotWaterStorageResult,
ThermalHouseResult,
ThermalUnitResult,
}
import edu.ie3.datamodel.models.result.system.{EmResult, HpResult}
import edu.ie3.simona.agent.grid.GridResultsSupport.PartialTransformer3wResult
import edu.ie3.simona.event.listener.ResultEventListener
import tech.units.indriya.ComparableQuantity
Expand All @@ -45,6 +47,44 @@ object ResultEvent {
systemParticipantResult: SystemParticipantResult
) extends ResultEvent

object HpResult {
def unapply(result: HpResult): Option[
(
ZonedDateTime,
UUID,
ComparableQuantity[Power],
ComparableQuantity[Power],
)
] =
Option(result).map { result =>
(
result.getTime,
result.getInputModel,
result.getP,
result.getQ,
)
}
}

object EmResult {
def unapply(result: EmResult): Option[
(
ZonedDateTime,
UUID,
ComparableQuantity[Power],
ComparableQuantity[Power],
)
] =
Option(result).map { result =>
(
result.getTime,
result.getInputModel,
result.getP,
result.getQ,
)
}
}

/** Event, that is triggered every time a thermal model has a new result
* @param thermalResult
* Result of the thermal calculation
Expand Down Expand Up @@ -92,6 +132,26 @@ object ResultEvent {
}
}

object DomesticHotWaterStorageResult {
def unapply(result: DomesticHotWaterStorageResult): Option[
(
ZonedDateTime,
UUID,
ComparableQuantity[Power],
ComparableQuantity[Energy],
)
] = {
Option(result).map { result =>
(
result.getTime,
result.getInputModel,
result.getqDot,
result.getEnergy,
)
}
}
}

/** Event that holds all grid calculation results of a power flow calculation.
* The usage of a type is necessary here, to avoid passing in other instances
* of [[edu.ie3.datamodel.models.result.ResultEntity]] except of the wanted
Expand Down
38 changes: 26 additions & 12 deletions src/main/scala/edu/ie3/simona/model/participant/HpModel.scala
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,8 @@ final case class HpModel(
* ThermalEnergyDemand of the house and the thermal storage
* @return
* boolean defining if heat pump runs in next time step, if it can be in
* operation and can be out of operation
* operation and out of operation plus the [[ThermalEnergyDemand]] of
* house, heat storage, domestic hot water storage
*/
private def operatesInNextState(
lastState: HpState,
Expand All @@ -186,20 +187,26 @@ final case class HpModel(

val demandHouse = thermalDemands.houseDemand
val demandThermalStorage = thermalDemands.heatStorageDemand
val demandDomesticHotWaterStorage =
thermalDemands.domesticHotWaterStorageDemand

val noThermalStorageOrThermalStorageIsEmpty =
currentThermalGridState.isThermalStorageEmpty

val turnHpOn =
(demandHouse.hasRequiredDemand && noThermalStorageOrThermalStorageIsEmpty) ||
(demandHouse.hasAdditionalDemand && lastState.isRunning) ||
demandThermalStorage.hasRequiredDemand ||
(demandThermalStorage.hasAdditionalDemand && lastState.isRunning)
(demandThermalStorage.hasAdditionalDemand && lastState.isRunning) ||
demandDomesticHotWaterStorage.hasRequiredDemand ||
(demandDomesticHotWaterStorage.hasAdditionalDemand && lastState.isRunning)

val canOperate =
demandHouse.hasRequiredDemand || demandHouse.hasAdditionalDemand ||
demandThermalStorage.hasRequiredDemand || demandThermalStorage.hasAdditionalDemand
demandThermalStorage.hasRequiredDemand || demandThermalStorage.hasAdditionalDemand ||
demandDomesticHotWaterStorage.hasRequiredDemand || demandDomesticHotWaterStorage.hasAdditionalDemand
val canBeOutOfOperation =
!(demandHouse.hasRequiredDemand && noThermalStorageOrThermalStorageIsEmpty)
!(demandHouse.hasRequiredDemand && noThermalStorageOrThermalStorageIsEmpty) && !demandDomesticHotWaterStorage.hasRequiredDemand

(
turnHpOn,
Expand All @@ -218,8 +225,9 @@ final case class HpModel(
* data of heat pump including state of the heat pump
* @param isRunning
* determines whether the heat pump is running or not
* @param demandWrapper
* holds the thermal demands of the thermal units (house, storage)
* @param thermalDemands
* holds the thermal demands of the thermal units (house, heatStorage,
* hotDomesticWaterStorage)
* @param currentThermalGridState
* Current state of the thermalGrid
* @return
Expand All @@ -229,7 +237,7 @@ final case class HpModel(
lastState: HpState,
relevantData: HpRelevantData,
isRunning: Boolean,
demandWrapper: ThermalDemandWrapper,
thermalDemands: ThermalDemandWrapper,
currentThermalGridState: ThermalGridState,
): HpState = {
val lastHouseQDot = lastState.thermalGridState.houseState
Expand All @@ -245,12 +253,12 @@ final case class HpModel(
if (isRunning)
(pRated, pThermal, pThermal)
else if (
currentStorageEnergy > zeroKWh && demandWrapper.houseDemand.hasRequiredDemand
currentStorageEnergy > zeroKWh && thermalDemands.houseDemand.hasRequiredDemand
) {
// If the house has req. demand and storage isn't empty, we can heat the house from storage.
(zeroKW, zeroKW, currentStoragePThermal)
} else if (
currentStorageEnergy > zeroKWh && demandWrapper.houseDemand.hasAdditionalDemand && lastHouseQDot > zeroKW
currentStorageEnergy > zeroKWh && thermalDemands.houseDemand.hasAdditionalDemand && lastHouseQDot > zeroKW
)
// Edge case when em controlled: If the house was heated last state by Hp and setPower is below turnOn condition now,
// but house didn't reach target or boundary temperature yet. House can be heated from storage, if this one is not empty.
Expand All @@ -266,7 +274,7 @@ final case class HpModel(
lastState.ambientTemperature.getOrElse(relevantData.ambientTemperature),
isRunning,
qDotIntoGrid,
demandWrapper,
thermalDemands,
)

HpState(
Expand Down Expand Up @@ -333,7 +341,7 @@ final case class HpModel(
val turnOn = setPower > (sRated.toActivePower(cosPhiRated) * 0.5)

val (
thermalDemandWrapper,
thermalDemands,
updatedThermalGridState,
) =
thermalGrid.energyDemandAndUpdatedState(
Expand All @@ -345,7 +353,7 @@ final case class HpModel(
lastState,
relevantData,
turnOn,
thermalDemandWrapper,
thermalDemands,
updatedThermalGridState,
)

Expand Down Expand Up @@ -445,10 +453,16 @@ object HpModel {
* contains current time tick
* @param ambientTemperature
* Ambient temperature at current tick
* @param simulationStart
* simulationStartDate as ZonedDateTime
* @param houseInhabitants
* number of people living in the building
*/
final case class HpRelevantData(
currentTick: Long,
ambientTemperature: Temperature,
simulationStart: ZonedDateTime,
houseInhabitants: Double,
) extends CalcRelevantData

/** Internal method to construct a new [[HpModel]] based on a provided
Expand Down
Loading
Loading