Skip to content

Conversation

@Bill-Becker
Copy link
Collaborator

This pull request refactors the handling of Combined Heat and Power (CHP) technologies to support multiple, tech-specific CHP units rather than assuming a single, global CHP configuration. The changes consistently replace single-CHP parameter usage with per-CHP dictionaries and iterables, improving flexibility and accuracy when modeling multiple CHP units with different characteristics. The update touches all relevant constraints, cost calculations, and scenario structures.

The most important changes are:

CHP Constraint Refactoring and Tech-Specific Parameters

  • All CHP-related constraints in chp_constraints.jl now loop through each CHP unit, using p.chp_params[t] and p.max_sizes[t] for tech-specific parameters (e.g., efficiencies, supplementary firing, O&M costs, max sizes), instead of assuming a single p.s.chp object. This ensures constraints and costs are accurately applied per CHP unit. [1] [2] [3] [4]
  • Supplementary firing constraints and fixes are now applied per-CHP, and only to those with supplementary_firing_max_steam_ratio > 1.0.
  • Hourly O&M charges and per-unit production O&M costs are calculated per CHP, using each unit's specific cost parameters. [1] [2]

Cost Curve and Capital Cost Updates

  • The initial capital expense calculation in cost_curve_constraints.jl is updated to loop over all CHP units, applying each unit's specific cost curves and supplementary firing capital costs. [1] [2]

Demand Charge and Outage Constraint Updates

  • Demand charge constraints in electric_utility_constraints.jl now select only those CHP units that do not reduce demand charges, using each CHP's reduces_demand_charges property.
  • Outage constraints reference the first CHP in the array for efficiency parameters, maintaining compatibility with the new structure.

Scenario and Input Structure Changes

  • Scenario and input structures (BAUScenario, REoptInputs) now include an array of CHP objects and a chp_params dictionary, even for BAU scenarios (where these are empty), ensuring consistent interface for all workflows. [1] [2] [3] [4]

These changes collectively enable accurate modeling of multiple, distinct CHP units throughout the optimization workflow.

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