Skip to content

Segmented cycle degradation#492

Merged
rathod-b merged 30 commits intodevelopfrom
segmented_cycle_degr
Jul 3, 2025
Merged

Segmented cycle degradation#492
rathod-b merged 30 commits intodevelopfrom
segmented_cycle_degr

Conversation

@rathod-b
Copy link
Copy Markdown
Collaborator

@rathod-b rathod-b commented Apr 2, 2025

@rathod-b rathod-b requested a review from zolanaj April 2, 2025 21:39
Copy link
Copy Markdown
Collaborator

@zolanaj zolanaj left a comment

Choose a reason for hiding this comment

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

A few comments to start our discussion - thanks @rathod-b!

Comment thread src/constraints/battery_degradation.jl Outdated
Comment thread src/constraints/battery_degradation.jl Outdated
Comment thread src/constraints/battery_degradation.jl Outdated
Comment thread src/constraints/battery_degradation.jl Outdated
@zolanaj
Copy link
Copy Markdown
Collaborator

zolanaj commented Apr 3, 2025

To do: Add a test case in which we compare (a) the new degradation model; (b) the previous one that tracks E_plus and E_minus, and (c) a case in which we double the degradation of E_minus and remove E_plus from the previous model to compare the end SOH for a unit test case.

@zolanaj
Copy link
Copy Markdown
Collaborator

zolanaj commented Apr 3, 2025

To do: Add a test case in which we compare (a) the new degradation model; (b) the previous one that tracks E_plus and E_minus, and (c) a case in which we double the degradation of E_minus and remove E_plus from the previous model to compare the end SOH for a unit test case.

also, reach out to Paul G. once we have tests up and running to get his buy-in.

Comment thread src/constraints/battery_degradation.jl
Base.@kwdef mutable struct Degradation
calendar_fade_coefficient::Real = 2.55E-03
cycle_fade_coefficient::Real = 9.83E-05
cycle_fade_coefficient::Vector{<:Real} = [9.83E-05]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@rathod-b could you add a bit more explanation of these inputs within the help text? esp. how the cycle fade fraction vector related to the cycle fade coef vector

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This might take some time, will tackle this after other changes are made.

Comment thread src/core/energy_storage/electric_storage.jl Outdated
@adfarth
Copy link
Copy Markdown
Collaborator

adfarth commented Jun 3, 2025

@rathod-b would it be possible to add kWh capacity versions of the outputs: maintenance_cost and residual_value? Conceptually these would answer the questions: How much kWh capacity was replaced over the analysis period, and how much useful/healthy kWh capacity is there available at the end of the analysis period?

@adfarth
Copy link
Copy Markdown
Collaborator

adfarth commented Jun 5, 2025

@rathod-b would it be possible to add kWh capacity versions of the outputs: maintenance_cost and residual_value? Conceptually these would answer the questions: How much kWh capacity was replaced over the analysis period, and how much useful/healthy kWh capacity is there available at the end of the analysis period?

no longer relevant

commented out test that does not work as expected on github, validated locally.
@rathod-b rathod-b marked this pull request as ready for review June 10, 2025 16:23
@rathod-b rathod-b requested a review from zolanaj June 10, 2025 19:18
rathod-b and others added 4 commits June 23, 2025 14:47
Battery residual factor is 80% + remaining healthy SOH, instead of applying the residual factor to the entire battery.
Copy link
Copy Markdown
Collaborator

@zolanaj zolanaj left a comment

Choose a reason for hiding this comment

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

Assuming the merge with develop passes, and the new edited comments work locally for you, this is now good to merge. Thank you @rathod-b and @adfarth!

@rathod-b
Copy link
Copy Markdown
Collaborator Author

rathod-b commented Jul 1, 2025

@zolanaj I made a few final adjustments to account for recent changes to electric storage O&M costs and not to double count degradation related costs. Please take a look.

Copy link
Copy Markdown
Collaborator

@zolanaj zolanaj left a comment

Choose a reason for hiding this comment

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

Thanks for the heads up on this @rathod-b! I have a couple suggested edits. The only other thing not covered here is we might want to warn the user any time we zero out a value that is inappropriately entered with the degradation model, since the field names make it not obvious (unless the warning in the docs is read carefully). Let me know if you have questions - thanks!

Comment thread src/core/reopt.jl Outdated
Comment thread src/core/reopt.jl Outdated
Comment thread src/core/reopt.jl
Comment thread src/results/electric_storage.jl Outdated
- `state_of_health`
- `maintenance_cost`
- `replacement_month`
- `residual_value` # only applies is maintenance_strategy = "replacement"
Copy link
Copy Markdown
Collaborator

@adfarth adfarth Jul 2, 2025

Choose a reason for hiding this comment

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

This should be "total_residual_kwh" right? Could you also add a short explanation of what it is here?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This list should include "total_residual_kwh" as well. Added in 3c50f50

Comment thread CHANGELOG.md
## segmented_cycle_degr
### Added
- Added constraints in `src/constraints/battery_degradation.jl` to allow use of segmented cycle fade coefficients in the model.
- Added **cycle_fade_fraction** as an input for portion of BESS that is tied to each cycle fade coefficient.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Could you add the "total_residual_kwh" ElectricStorage output here too?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Added in 3c50f50

@rathod-b rathod-b merged commit d50dd5c into develop Jul 3, 2025
3 checks passed
@rathod-b rathod-b deleted the segmented_cycle_degr branch July 7, 2025 15:46
@adfarth adfarth mentioned this pull request Sep 10, 2025
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.

4 participants