Skip to content

Conversation

@paulf81
Copy link
Collaborator

@paulf81 paulf81 commented Dec 15, 2025

The controller BatteryPriceSOCController uses high_soc and low_soc to determine if charging/discharging should happen or if should wait for higher/lower prices. Experience with demonstrations shows while the low_soc being used (set for example to 0.2) adds value, effectively disabling high_soc by setting to 1.0 is the better setting. This makes some sense in that RT LMPs can feature very high price spikes, but on the low end their is often a pretty clear floor in-between 0 and $-26. Waiting to charge for very low prices does not seem to pay off given this asymmetric skew in prices.

This PR sets the default values accordingly and updates the docstring.

@paulf81 paulf81 requested review from Copilot and misi9170 December 15, 2025 18:24
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the default high_soc parameter from 0.8 to 1.0 in the BatteryPriceSOCController, effectively disabling the high SOC threshold by default. This change is based on empirical evidence showing that waiting for very low prices to charge is not cost-effective, while waiting for high prices to discharge (controlled by low_soc) remains valuable due to asymmetric price distributions in real-time LMPs.

Key changes:

  • Changed default high_soc parameter from 0.8 to 1.0
  • Updated docstring to reflect corrected behavior description and new defaults
  • Added explanatory note about the rationale for these default values

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

below the lowest (hourly) DA price of the day.
above the highest (hourly) DA price of the day. Defaults to 0.2.
Note high_soc defaults to 1.0 (effictively disabled) since experience suggests waiting for
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

Corrected spelling of 'effictively' to 'effectively'.

Suggested change
Note high_soc defaults to 1.0 (effictively disabled) since experience suggests waiting for
Note high_soc defaults to 1.0 (effectively disabled) since experience suggests waiting for

Copilot uses AI. Check for mistakes.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

Copy link
Collaborator

@misi9170 misi9170 left a comment

Choose a reason for hiding this comment

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

Thanks @paulf81 . I made a very minor formatting change to the docstring and will merge once checks clear.

@misi9170 misi9170 merged commit de543c2 into NREL:develop Dec 19, 2025
5 checks passed
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.

2 participants