Skip to content

Comments

Fixed opex cost attribute accepts yr time unit#168

Open
jarsarasty wants to merge 417 commits intoProject-OMOTES:masterfrom
Multi-Energy-Systems-Optimization:fixed-opex-time-unit
Open

Fixed opex cost attribute accepts yr time unit#168
jarsarasty wants to merge 417 commits intoProject-OMOTES:masterfrom
Multi-Energy-Systems-Optimization:fixed-opex-time-unit

Conversation

@jarsarasty
Copy link
Contributor

Fixed OPEX represents annual fixed operation and maintenance costs that scale with asset capacity (independent of operation), and in MESIDO's TCO calculation, the coefficient is multiplied by number_of_years (line 162 in minimize_tco_goal.py).

The current implementation implicitly treats EURO/MW as an annual rate (EURO/MW/yr).

#307 requests accepting both formats (implicit and explicit yearly units). This implementation now allows fixed OPEX to accept both perTimeUnit=NONE (implicit annual, backward compatible) and perTimeUnit=YEAR (explicit annual).

Variable OPEX correctly remains unchanged, as it's energy-based (EURO/Wh) and gets summed over timesteps rather than multiplied by years, making the /yr suffix physically incorrect for that cost type.

KobusVanRooyen and others added 30 commits June 17, 2024 11:32
- database name now output esdl id
- simulationRun now unique id of optimization run
- can now update pipe info if return pipe is not "_ret"
- updated test case
…t case & input ESDL

- Updated kpi names for yearly costs
* creating battery test case

* fixed discharging efficiency calculation battery

* created esdl, timeseries and problem setup to test battery
…dl-when-supply-and-return-pipes-not-linked-with-_ret-in-name
…dl-when-supply-and-return-pipes-not-linked-with-_ret-in-name
FJanssen-TNO and others added 28 commits August 29, 2025 09:17
Checks if timelimit reached in priority 1 for all stages and terminates the optimization if it is reached.
Clean up and speedup of test varying temperature test_hex_temperature_variation.
* Pipe costs are updated if an asset template with costs are provided 

Co-authored-by: gopalanjayashankarg <gopalan.gopalanjayashankar@tno.nl>
* Created an AssetStateEnum to have an option of IntEnum for asset states and changed all instaces of hard-coded occurence when checking to the IntEnums that were created 

---------

Co-authored-by: kobus.vanrooyen@tno.nl <kobus.vanrooyen@tno.nl>
…fix failing tests; update tests to include error type check
- Introduced `_error_type_check` attribute to manage cost validation behavior.
- Updated `EndScenarioSizing` and related classes to utilize the error type check.
- Enhanced validation logic to bypass checks when error checking is disabled.
- Modified tests to include error type check parameter for consistency.
… and indicate how renable electrolyzer tests
Add tolerances in util test functions input.
Fix pipe parameter bug in test_end_scenario_sizing_head_loss
Update python version to minimum of 3.10, but preferably 3.11.
Allowing for speed up and support of python versions that still receive security updates.
Update to python 3.12 and further not yet possible due required rtctools and highs update
If the database profile name or field indicated in esdl are not available in the database, new type of possible error (MesidoAssetIssueType.ASSET_PROFILE_AVAILABILITY) will be called.
…d ates (#346)

* Additional constraint for buffer tank, ates and geo to ensure the aggregation count is 0 (not placed) when usage = 0.0
* Additional functionality of heat sources (Geothermal and Residual heat source) to have profile constraints and some tests to go with
- Before we create the optimized esdl after optimization, we check the current input esdl if it already has profile with ProfileType attribute "OUTPUT". If the input esdl already has sOUTPUT profiles we do not add them to the new esdl that we create after optimization.
-The new output profiles of the resulting optimization is added to the the esdl that we generate and we add ProfileType attribute as OUTPUT to those profiles
Emission coefficient from esdl based on an additional emission port and port relations when the emission is not related to the carrier.
Fix git pipeline hanging issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants