JuliaCon 2023

E4ST.jl: Policy & Investment Analysis for the Electric Sector
07-26, 10:30–11:00 (US/Eastern), Online talks and posters

The Engineering, Economic, and Environmental Simulation Tool (E4ST) is a detailed power sector model from Resources for the Future for comprehensive cost-benefit analysis of policies and investments in the electricity sector. Originally written in MATLAB on top of MATPOWER, E4ST.jl is the Julia rewrite of the model, using JuMP, and Julia’s multiple dispatch programming paradigm to allow users to specify novel climate policies, introduce new technologies, and change spatial/temporal resolution.


At the heart of E4ST is a detailed engineering representation of the power grid, and an optimization problem that represents the decisions of the system operators, electricity end-users, generators, and generation developers. The model represents these operation, consumption, investment, and retirement decisions by minimizing the sum of generator variable costs, fixed costs, investment costs, and end-user consumer surplus losses. E4ST provides detailed analysis to better inform policymakers, investors, and stakeholders.
The power sector is increasingly complex, with challenging emission reduction aspirations, new energy technologies, an ever-changing policy backdrop, growing demand, and much uncertainty. Some of the challenges of representing the sector include:
* Regional and national markets for clean electricity credits
* Diverse generation mixes with temporal variations
* Markets for various fuel types and captured CO2
* increasing energy storage requirements

To provide relevant analysis for such a complex and dynamic sector, models must to be fast to adapt and use. The previous version of E4ST was written as a wrapper for MATPOWER, a powerful Matlab-language package for solving steady-state power system simulation and optimization problems. However, as powerful as MATPOWER is, we desired the additional flexibility and speed that Julia can provide.

Our team is in the process of writing E4ST.jl with maximum flexibility and speed in mind. E4ST.jl is a bring-your-own-solver JuMP-based package. We leverage clever interfaces to inject custom modifications into the data loading, model setup, and results processing steps to allow for extreme configurability and extensibility. We allow for flexible time representations and time-varying inputs with space-and-time-efficient data retrieval.

E4ST.jl uses the speed and extensibility of Julia to enable faster deployment of detailed and adaptable models to inform policy decision-makers and technology developers.