E4ST.jl
Engineering, Economic, and Environmental Electricity Simulation Tool (E4ST)
Install / Use
/learn @e4st-dev/E4ST.jlREADME
E4ST.jl
This is the Julia rewrite of the Engineering, Economic, and Environmental Electricity Simulation Tool (E4ST), originally written in MATLAB, based on top of MATPOWER. The idea for E4ST was developed in a joint effort at Cornell University and Resources for the Future by Daniel Shawhan and Ray Zimmerman, with major contributions from Biao Mao, Paul Picciano, Christoph Funke, Steven Witkin, Ethan Russell, and Sally Robson.
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.
E4ST.jl was written 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.
Warning As with most models, quality of analysis using E4ST.jl is heavily dependent on the inputs and assumptions. For this reason, the E4ST team at RFF does not implicitly endorse all analysis done using E4ST.jl. If you have questions about the model inputs and assumptions used for our work at RFF, please contact us.
Citation
If you use E4ST.jl in your work, we request that you cite the following paper:
@article{Shawhan2014,
author = {Daniel Shawhan, John T. Taber, Di Shi, Ray D. Zimmerman, Jubo Yan, Charles M. Marquet, Yingying Qi, Biao Mao, Richard E. Schuler, William Schulze, D.J. Tylavsky},
title = {{D}oes a {D}etailed {M}odel of the {E}lectricity {G}rid {M}atter? {E}stimating the {I}mpacts of the {R}egional {G}reenhouse {G}as {I}nitiative},
journal = {Resource and Energy Economics},
year = {2014},
doi = {10.1016/j.reseneeco.2013.11.015}}
Alternatively, you can cite the following paper:
@article{Shawhan2014,
author = {Daniel Shawhan, Paul D. Picciano},
title = {{C}osts and benefits of saving unprofitable generators: {A} simulation case study for {US} coal and nuclear power plants},
journal = {Energy Policy},
year = {2019},
doi = {https://doi.org/10.1016/j.enpol.2018.07.040}}
Installation
In the Julia REPL, run the following command:
using Pkg
Pkg.add("E4ST") # Or Pkg.develop("E4ST")
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
