See https://www.eudoxys.com/wecc240 for online documentation.
Note that "WECC 240" is actually a misnomer because the more recent models are actually 243 busses.
The following models are available
wecc240.wecc240_2011.WECC240_2011: the original model published by Price et al. [1].
python3 -m venv .venv
. .venv/bin/activate
pip install --upgrade pip
pip install git+https://github.com/eudoxys/wecc240
The following python code loads and solve the original WECC 240 model as generated by Yuan et al. [2].
from wecc240_2011 import WECC240_2011
from pypower_sim import PPModel, PPSolver
model = WECC240_2011()
solver = PPSolver(model)
assert solver.solve_opf(), "OPF failed"
assert solver.solve_pf(), "PF failed"
- Milestone 1: WECC 240 (2011)
This model was produced by CAISO in 2011. The model does not require external
data to load or run. This model is a static model with no time-series
capabilities and can be run in pypower or pypower_sim.
The static pseudo-DC line gen/load models in the 2011 model are converted to explicit DC lines and costs.
- Milestone 2: WECC 240 (2018)
This model was produced by NREL in 2018. The model is based on the
wecc240_2011 model with the scheduling.py script run to apply
modifications to the generation fleet, line flow limits, and energy storage.
This model is a static model with no time-series capabilities and can be run
in pypower or pypower_sim.
- Milestone 3: WECC 240 (2020)
This model was commissioned by NRL in 2026. The model is based on the
wecc240_2018 model with the aggregate_load.py and aggregate_gens.py
scripts run to apply modifications to the loads and generation resources.
This model a quasi-steady time-series model designed to be run using
pypower_sim.
- Milestone 4: Energy Storage
The energy storage control strategy is scheduled based on the anticipated response to the "duck-curve" in CAISO, i.e., charging from 9am to 3pm, and discharging from 3pm to 9pm. Note that the benefits of the energy storage control strategy are not fully realized without a time-series simulation.
- Milestone 5: Load Curtailment
Load curtailment is implemented in three regimes:
- During normal operations, no load curtailment is specified.
- When node-level load is within 10% of the line import capacity plus generation of the node, "level 0" load curtailment is enabled, i.e., 10% of the load at the node is made available for curtailment.
- When area-level load is within 15% of the line import capacity plus generation of the area, "level 1" load curtailment is enabled, i.e., 15% of the load in the area is made available for curtailment.
- Milestone 6:
wecc240_2025
This model was commissioned by LLNL in 2026 and reflects the system as of Q3 2025.
The model is based on the wecc240_2020 model with updates for new
generation and new loads, including data centers.
-
J. E. Price and J. Goodin, "Reduced network modeling of WECC as a market design prototype," 2011 IEEE Power and Energy Society General Meeting, Detroit, MI, USA, 2011, pp. 1-6, doi: 10.1109/PES.2011.6039476. URL: https://ieeexplore.ieee.org/abstract/document/6039476.
-
H. Yuan, R. S. Biswas, J. Tan and Y. Zhang, "Developing a Reduced 240-Bus WECC Dynamic Model for Frequency Response Study of High Renewable Integration," 2020 IEEE/PES Transmission and Distribution Conference and Exposition (T&D), Chicago, IL, USA, 2020, pp. 1-5, doi: 10.1109/TD39804.2020.9299666. URL: https://ieeexplore.ieee.org/abstract/document/9299666.