Skip to content

Novel units pseudodispatch#174

Merged
biegelk merged 2 commits intomainfrom
novel_units_pseudodispatch
Dec 26, 2025
Merged

Novel units pseudodispatch#174
biegelk merged 2 commits intomainfrom
novel_units_pseudodispatch

Conversation

@biegelk
Copy link
Copy Markdown
Collaborator

@biegelk biegelk commented Dec 24, 2025

This PR reimplements the dispatch forecasting logic for "novel units" (units which are allowed to be built, but which don't currently exist in the system). Previously, novel unit dispatch forecasting was done by inserting fictitious units into the dispatch stack prior to dispatch simulation; this had the benefit of explicitly forecasting unit participation in ancillary services and operational limitations such as ramp rate. However, the distortion to the total system capacity introduced by doing this had more negative side effects than it was worth.

Previous PR #173 removed the faulty original logic, removing all revenue forecasting for novel units (as a temporary fix to allow other logic to also be fixed). This PR re-adds dispatch forecasting capability for novel units using a price-duration-curve-like approach. Fictitious units are no longer inserted into the system mix before the dispatch simulation. Instead, dispatch forecasting is performed with the agent's current knowledge of existing and announced capacity, plus autoexpansion subject to the adjustment for competitiveness factor. Once all dispatch results are known, the agent assumes that novel unit types behave as pure price-takers without disturbing the market equilibrium, and dispatch whenever they would screen in to the market clearing price during each hour.

These dispatch results are added in to the dataframes used to house "real" dispatch results for non-novel unit types, and from then on all dispatch forecasts are treated identically in calculating pro forma results and NPVs.

…d save them to grc; add 1 fictitious unit of each novel type to the system_portfolios
@biegelk biegelk added the enhancement New feature or request label Dec 24, 2025
@biegelk biegelk merged commit 559b16c into main Dec 26, 2025
1 check passed
@biegelk biegelk deleted the novel_units_pseudodispatch branch December 26, 2025 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant