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

Bug Fix: Ensure system downtime starts appropriately #111

Merged
merged 28 commits into from
Sep 20, 2023

Conversation

RHammond2
Copy link
Contributor

This PR addresses a series of logic holes:

  • Servicing equipment can no longer travel when their expected finish time is in the following shift, but after the original shift's end time
  • Repairs with delays that are incomplete at the end of the original forecast window now consistently register as having a shift delay instead of being complete
  • Systems wait until a servicing equipment has arrived and is going to transfer the crew to interrupt it and shut it down, rather than at the onset of traveling to the system.

See the changelog for complete details. All changes result in a small net positive increase in availability due to better resolved timing of shut downs and repairs.

@RHammond2 RHammond2 added bug Something isn't working enhancement New feature or request labels Sep 15, 2023
@codecov
Copy link

codecov bot commented Sep 15, 2023

Codecov Report

Patch coverage: 49.57% and project coverage change: +0.32% 🎉

Comparison is base (c2f530a) 54.69% compared to head (403eef1) 55.02%.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #111      +/-   ##
===========================================
+ Coverage    54.69%   55.02%   +0.32%     
===========================================
  Files           21       21              
  Lines         3607     3669      +62     
  Branches       730      745      +15     
===========================================
+ Hits          1973     2019      +46     
- Misses        1512     1528      +16     
  Partials       122      122              
Files Changed Coverage Δ
wombat/core/port.py 14.75% <0.00%> (-0.33%) ⬇️
wombat/core/repair_management.py 63.01% <30.23%> (-5.79%) ⬇️
wombat/core/service_equipment.py 65.25% <80.85%> (+3.23%) ⬆️
wombat/core/environment.py 77.15% <100.00%> (+0.25%) ⬆️
wombat/windfarm/system/cable.py 76.22% <100.00%> (+0.33%) ⬆️
wombat/windfarm/system/system.py 92.00% <100.00%> (+0.21%) ⬆️

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@RHammond2 RHammond2 merged commit 6cb56e8 into develop Sep 20, 2023
5 of 6 checks passed
@RHammond2 RHammond2 deleted the enhancement/port-repair-resets branch September 20, 2023 19:57
RHammond2 added a commit that referenced this pull request Sep 20, 2023
* Update Test PyPI action settings (#108)

* Bug Fix: Process recreation and equipment cost breakdowns (#109)

* update equipment labor breakdown to include equipment and duration

* add missing process recreation for in situ replacements

* update docstring

* update changelog

* fix bad reference (#110)

* Bug Fix: Ensure system downtime starts appropriately (#111)

* only reset subassemblies that are worked on directly

* allow invalid to happen before servicing and properly control

* update the operating level logging in in_situ_repairs

* ensure repairs actually go into the next shift if incomplete from weather delays

* ensure travel can't occur when it goes past one shift and into another

* fix repair manager checks for updated logic

* ignore third party's deprecation warnings

* fix the unscheduled timing for better logic control

* ensure a delayed start to the repair still counts as the initial processing

* slight timing update for handling of 24 hour shifts

* ensure 24 hour shifts don't travel back when new window needed

* remove print

* put system invalidation back in place

* update changelog

* ensure requests can't collide

* move wait period to the request getter

* fix combined yield and return

* fix tests

* add invalidation to timing collision avoidance

* make system invalidation more flexible

* move random wait to environment

* remove timeout from service equipment

* ensure port repairs always trigger before the next at site repair

* ensure ttp are not dispatched multiple times for the same turbine

* fix hlv dispatch timing

* add list of systems waiting for ttp to reduce chances of overlapping dispatches

* update changelog

* Deprecate old library (#114)

* remove old library warnings and fully deprecate the usage

* update the changelog

* update the how to guide for the library changes

* remove pysam

* remove pysam references from the docs
github-actions bot pushed a commit that referenced this pull request Sep 20, 2023
* Update Test PyPI action settings (#108)

* Bug Fix: Process recreation and equipment cost breakdowns (#109)

* update equipment labor breakdown to include equipment and duration

* add missing process recreation for in situ replacements

* update docstring

* update changelog

* fix bad reference (#110)

* Bug Fix: Ensure system downtime starts appropriately (#111)

* only reset subassemblies that are worked on directly

* allow invalid to happen before servicing and properly control

* update the operating level logging in in_situ_repairs

* ensure repairs actually go into the next shift if incomplete from weather delays

* ensure travel can't occur when it goes past one shift and into another

* fix repair manager checks for updated logic

* ignore third party's deprecation warnings

* fix the unscheduled timing for better logic control

* ensure a delayed start to the repair still counts as the initial processing

* slight timing update for handling of 24 hour shifts

* ensure 24 hour shifts don't travel back when new window needed

* remove print

* put system invalidation back in place

* update changelog

* ensure requests can't collide

* move wait period to the request getter

* fix combined yield and return

* fix tests

* add invalidation to timing collision avoidance

* make system invalidation more flexible

* move random wait to environment

* remove timeout from service equipment

* ensure port repairs always trigger before the next at site repair

* ensure ttp are not dispatched multiple times for the same turbine

* fix hlv dispatch timing

* add list of systems waiting for ttp to reduce chances of overlapping dispatches

* update changelog

* Deprecate old library (#114)

* remove old library warnings and fully deprecate the usage

* update the changelog

* update the how to guide for the library changes

* remove pysam

* remove pysam references from the docs
RHammond2 added a commit that referenced this pull request Oct 27, 2023
* Update Test PyPI action settings (#108)

* Bug Fix: Process recreation and equipment cost breakdowns (#109)

* update equipment labor breakdown to include equipment and duration

* add missing process recreation for in situ replacements

* update docstring

* update changelog

* fix bad reference (#110)

* Bug Fix: Ensure system downtime starts appropriately (#111)

* only reset subassemblies that are worked on directly

* allow invalid to happen before servicing and properly control

* update the operating level logging in in_situ_repairs

* ensure repairs actually go into the next shift if incomplete from weather delays

* ensure travel can't occur when it goes past one shift and into another

* fix repair manager checks for updated logic

* ignore third party's deprecation warnings

* fix the unscheduled timing for better logic control

* ensure a delayed start to the repair still counts as the initial processing

* slight timing update for handling of 24 hour shifts

* ensure 24 hour shifts don't travel back when new window needed

* remove print

* put system invalidation back in place

* update changelog

* ensure requests can't collide

* move wait period to the request getter

* fix combined yield and return

* fix tests

* add invalidation to timing collision avoidance

* make system invalidation more flexible

* move random wait to environment

* remove timeout from service equipment

* ensure port repairs always trigger before the next at site repair

* ensure ttp are not dispatched multiple times for the same turbine

* fix hlv dispatch timing

* add list of systems waiting for ttp to reduce chances of overlapping dispatches

* update changelog

* Deprecate old library (#114)

* remove old library warnings and fully deprecate the usage

* update the changelog

* update the how to guide for the library changes

* Deprecate PySAM Usage (#117)

* remove pysam

* remove pysam references from the docs

* Bug fix: Task completion rate clarity (#118)

* add potential fix for low task completion due to replacements

* log which request type is canceled in 'action'

* update metric for change in canceled phrasing

* fix cable getter to allow for multiple cable naming conventions

* update changelog

* Bug Fix: Keep logged events within the timing bounds (#120)

* ensure events attempting to be logged after the end of simulation are cancelled

* update changelog

* add NAWEA 2023 documentation

* add working COREWIND D4.2 data

* Feature: Add basic plotting routines (#121)

* add basic plotting functionality

* allow for time or enery avail and fix memory carryover bug

* update changelog

* add windfarm operations calculation at the front end and fix windfarm productino bug

* update changelog

* update changelog

* add example and update workshop guidance

* fix end of file lines

* update data for labor costs and update workshop listings

* Deprecate `Configuration.library_path` (#122)

* depreacte configuration library requirement

* update documentation

* update workshop guide

* add ORBIT port costs

* update the presentation and notebook

* OpEx Breakdown Function  (#119)

* Update post_processor.py

OpEx breakdown function

* eliminate extra year

* delete nan years line

* make existing opex() method make the breakdown

* Opex breakdown in Metrics.opex()

* add CHANGELOG

---------

Co-authored-by: dmulash <[email protected]>

* remove presentation from gh

* Enhancement: Switch to `pyproject.toml` for all configurations (#123)

* update wombat urls

* remove old config and update python version

* rerun pre-commit hooks

* fully upgrade to pyproject.toml

* update pyprpoject to install actual package and data

* Update documentation ahead of v0.9 release (#124)

* udpate documentation examples

* update outdated explanation

* update outputs

* fix bad hyperlink

* udpate changelog

* split up the api documentation and utilities

* add plotting methods

* fix typos and enable utilities docs'

* fix redundant docs

* remove extra params'

* udpate changelog

* fix example bugs

* update example results

* minor fixes

* update examples listing

* ignore examples in auto running

* update user guide and opex with breakdown

* update the example notebooks

* fix bad vessel naming convention

* fix issues with config compatibility

* rerun validation notebooks and update timing

* remove results from repository to save space

* update licensing per NREL-Apache guidance

* update the license notice on the docs

* update copyright date in docs

* update examples notebook pages

* rerun examples to get output to show

* remove links to the presentation until approved

---------

Co-authored-by: Daniel Mulas Hernando <[email protected]>
Co-authored-by: dmulash <[email protected]>
github-actions bot pushed a commit that referenced this pull request Oct 27, 2023
* Update Test PyPI action settings (#108)

* Bug Fix: Process recreation and equipment cost breakdowns (#109)

* update equipment labor breakdown to include equipment and duration

* add missing process recreation for in situ replacements

* update docstring

* update changelog

* fix bad reference (#110)

* Bug Fix: Ensure system downtime starts appropriately (#111)

* only reset subassemblies that are worked on directly

* allow invalid to happen before servicing and properly control

* update the operating level logging in in_situ_repairs

* ensure repairs actually go into the next shift if incomplete from weather delays

* ensure travel can't occur when it goes past one shift and into another

* fix repair manager checks for updated logic

* ignore third party's deprecation warnings

* fix the unscheduled timing for better logic control

* ensure a delayed start to the repair still counts as the initial processing

* slight timing update for handling of 24 hour shifts

* ensure 24 hour shifts don't travel back when new window needed

* remove print

* put system invalidation back in place

* update changelog

* ensure requests can't collide

* move wait period to the request getter

* fix combined yield and return

* fix tests

* add invalidation to timing collision avoidance

* make system invalidation more flexible

* move random wait to environment

* remove timeout from service equipment

* ensure port repairs always trigger before the next at site repair

* ensure ttp are not dispatched multiple times for the same turbine

* fix hlv dispatch timing

* add list of systems waiting for ttp to reduce chances of overlapping dispatches

* update changelog

* Deprecate old library (#114)

* remove old library warnings and fully deprecate the usage

* update the changelog

* update the how to guide for the library changes

* Deprecate PySAM Usage (#117)

* remove pysam

* remove pysam references from the docs

* Bug fix: Task completion rate clarity (#118)

* add potential fix for low task completion due to replacements

* log which request type is canceled in 'action'

* update metric for change in canceled phrasing

* fix cable getter to allow for multiple cable naming conventions

* update changelog

* Bug Fix: Keep logged events within the timing bounds (#120)

* ensure events attempting to be logged after the end of simulation are cancelled

* update changelog

* add NAWEA 2023 documentation

* add working COREWIND D4.2 data

* Feature: Add basic plotting routines (#121)

* add basic plotting functionality

* allow for time or enery avail and fix memory carryover bug

* update changelog

* add windfarm operations calculation at the front end and fix windfarm productino bug

* update changelog

* update changelog

* add example and update workshop guidance

* fix end of file lines

* update data for labor costs and update workshop listings

* Deprecate `Configuration.library_path` (#122)

* depreacte configuration library requirement

* update documentation

* update workshop guide

* add ORBIT port costs

* update the presentation and notebook

* OpEx Breakdown Function  (#119)

* Update post_processor.py

OpEx breakdown function

* eliminate extra year

* delete nan years line

* make existing opex() method make the breakdown

* Opex breakdown in Metrics.opex()

* add CHANGELOG

---------

Co-authored-by: dmulash <[email protected]>

* remove presentation from gh

* Enhancement: Switch to `pyproject.toml` for all configurations (#123)

* update wombat urls

* remove old config and update python version

* rerun pre-commit hooks

* fully upgrade to pyproject.toml

* update pyprpoject to install actual package and data

* Update documentation ahead of v0.9 release (#124)

* udpate documentation examples

* update outdated explanation

* update outputs

* fix bad hyperlink

* udpate changelog

* split up the api documentation and utilities

* add plotting methods

* fix typos and enable utilities docs'

* fix redundant docs

* remove extra params'

* udpate changelog

* fix example bugs

* update example results

* minor fixes

* update examples listing

* ignore examples in auto running

* update user guide and opex with breakdown

* update the example notebooks

* fix bad vessel naming convention

* fix issues with config compatibility

* rerun validation notebooks and update timing

* remove results from repository to save space

* update licensing per NREL-Apache guidance

* update the license notice on the docs

* update copyright date in docs

* update examples notebook pages

* rerun examples to get output to show

* remove links to the presentation until approved

---------

Co-authored-by: Daniel Mulas Hernando <[email protected]>
Co-authored-by: dmulash <[email protected]>
RHammond2 added a commit that referenced this pull request Oct 27, 2023
* Deprecate PySAM Usage (#115)

* Update Test PyPI action settings (#108)

* Bug Fix: Process recreation and equipment cost breakdowns (#109)

* update equipment labor breakdown to include equipment and duration

* add missing process recreation for in situ replacements

* update docstring

* update changelog

* fix bad reference (#110)

* Bug Fix: Ensure system downtime starts appropriately (#111)

* only reset subassemblies that are worked on directly

* allow invalid to happen before servicing and properly control

* update the operating level logging in in_situ_repairs

* ensure repairs actually go into the next shift if incomplete from weather delays

* ensure travel can't occur when it goes past one shift and into another

* fix repair manager checks for updated logic

* ignore third party's deprecation warnings

* fix the unscheduled timing for better logic control

* ensure a delayed start to the repair still counts as the initial processing

* slight timing update for handling of 24 hour shifts

* ensure 24 hour shifts don't travel back when new window needed

* remove print

* put system invalidation back in place

* update changelog

* ensure requests can't collide

* move wait period to the request getter

* fix combined yield and return

* fix tests

* add invalidation to timing collision avoidance

* make system invalidation more flexible

* move random wait to environment

* remove timeout from service equipment

* ensure port repairs always trigger before the next at site repair

* ensure ttp are not dispatched multiple times for the same turbine

* fix hlv dispatch timing

* add list of systems waiting for ttp to reduce chances of overlapping dispatches

* update changelog

* Deprecate old library (#114)

* remove old library warnings and fully deprecate the usage

* update the changelog

* update the how to guide for the library changes

* remove pysam

* remove pysam references from the docs

* Revert "Deprecate PySAM Usage (#115)" (#116)

This reverts commit 8a31676.

* add NAWEA 2023 documentation

* add working COREWIND D4.2 data

* add example and update workshop guidance

* fix end of file lines

* update data for labor costs and update workshop listings

* update workshop guide

* add ORBIT port costs

* update the presentation and notebook

* remove presentation from gh

* remove links to the presentation until approved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant