Equipment-Specific Formulations
Purpose
Section titled “Purpose”This spec details the LP constraints for each equipment type in Cobre. While system elements describes what each element is and its decision variables, this spec contains the detailed mathematical constraints governing each equipment type’s behavior within the LP. The reading order is: system elements → LP formulation → this spec (per-equipment deep dives).
For variable definitions and index sets, see notation conventions. For hydro production constraints specifically, see hydro production models.
1. Thermal Plants
Section titled “1. Thermal Plants”1.1 Standard Thermals
Section titled “1.1 Standard Thermals”Thermal generation cost is modeled as a piecewise-linear convex function of dispatched power. Each cost segment represents a generation tranche with its own marginal cost — for example, a 200 MW plant might have its first 50 MW at $100/MWh, the next 50 MW at $150/MWh, and the final 100 MW at $200/MWh. Because the segment costs are non-decreasing (convex), the LP solver naturally fills cheaper segments first.
Decision Variables:
- = generation at thermal , block , cost segment
Constraints:
Total generation:
Segment bounds:
Total generation bounds:
Both bounds are hard constraints with no slack variables — thermal dispatch is directly controllable (unlike hydro, which depends on exogenous inflows).
Objective Contribution:
2. Transmission Lines
Section titled “2. Transmission Lines”Decision Variables:
- = direct flow (source → target)
- = reverse flow (target → source)
Bounds:
Load Balance Contribution:
At source bus:
At target bus:
where accounts for transmission losses.
Objective Contribution:
3. Import/Export Contracts
Section titled “3. Import/Export Contracts”Each contract is unidirectional — either an import or an export contract, identified by a type field.
Decision Variables:
- = dispatched power for contract , block
Bounds:
Load Balance Contribution:
At connected bus:
- Import contracts (): (power entering the system)
- Export contracts (): (power leaving the system)
Objective Contribution:
Because import prices () are positive and export prices are negative, this single summation naturally adds import costs and subtracts export revenue. The price sign is independent of the load-balance sign: an import column injects and carries a positive (cost) price; an export column withdraws and carries a negative (revenue) price.
Take-or-pay floor and lifecycle. A non-zero lower bound is a hard take-or-pay obligation: the LP must dispatch at least at the contract price, even when cheaper supply exists. Bounds and the price may both vary by stage. Contracts honor the generic commissioning window (system elements §1) — outside [entry_stage_id, exit_stage_id) the column is pinned to zero. A contract is stateless: it carries no state variable and contributes nothing to the Benders cuts.
4. Pumping Stations
Section titled “4. Pumping Stations”Pumping stations transfer water from a source reservoir to a destination reservoir, consuming electrical power in the process. The source-to-destination direction is a modeling choice (typically uphill / against the cascade); the formulation does not require any particular elevation relationship.
Decision Variables:
- = pumped water flow at station , block (m³/s)
Bounds:
Both bounds are hard constraints. Pumping stations honor the generic commissioning window (system elements §1): outside [entry_stage_id, exit_stage_id) the flow column is pinned to zero, so the station moves no water and draws no power.
Power Consumption:
where is the power consumption rate (MW per m³/s).
Water Balance Impact:
- Source hydro: (water removed)
- Destination hydro: (water added)
Load Balance Impact:
At connected bus: (power consumed)
Objective Contribution: None
5. Hydro Plants
Section titled “5. Hydro Plants”Hydro constraints are the most complex in the system. Rather than duplicating them here, the hydro formulation is split across two specs:
- Water balance, outflow, storage bounds, and soft constraints: See LP formulation §4 (water balance), §6 (generation constraints), §7 (outflow constraints), §8 (variable bounds), §9 (constraint violation penalties).
- Production function models (constant productivity, FPHA, linearized head): See hydro production models.
For hydro decision variables and physical meaning, see system elements §5.
6. Non-Controllable Generation Sources
Section titled “6. Non-Controllable Generation Sources”Non-controllable sources (wind farms, solar plants, small run-of-river hydros) have stochastic availability determined by the scenario pipeline. The solver can only curtail generation below the available amount — it cannot dispatch upward beyond what nature provides.
Decision Variables:
- = generation at non-controllable source , block
Bounds (hard):
where is the stochastic available generation for the current (stage, scenario), bounded by (installed capacity).
Load Balance Contribution:
At connected bus: (generation injected)
Objective Contribution:
The curtailment cost is a regularization penalty (Category 3 in the Penalty System), analogous to spillage_cost for hydros — curtailment discards available “free” energy.
Cross-References
Section titled “Cross-References”- Notation conventions — variable and set definitions (, , , , )
- System elements — element descriptions, decision variables, and connections
- LP formulation — how equipment constraints integrate into the assembled LP; hydro water balance (§4), generation constraints (§6), variable bounds (§8)
- Hydro production models — hydro-specific production function constraints (constant, FPHA, linearized head)
- Penalty System — penalty taxonomy, regularization vs. violation costs
- Block formulations — block structure within which equipment constraints operate
- SDDP Algorithm — iterative algorithm that solves stage subproblems containing these equipment constraints