This repo contains Julia/JuMP re-implementations of the code examples from the textbook
Soroudi, Alireza. Power system optimization modeling in GAMS. Vol. 78. Switzerland: Springer, 2017. https://doi.org/10.1007/978-3-319-62350-4.
This is a personal exercise to get into power systems modeling and become more comfortable with using Julia and JuMP. I am not implementing all code samples in the book but instead have chosen a path of topics that interest me. Depending on where you read this, also have a look at the repo or the website.
Here is a list of planned/finished topics and how they map to the book sections. The links each lead to a rendered web version of the respective notebook.
Thermal unit economic dispatch (ED): Section 3.1
Thermal unit environmental dispatch & Pareto optimal front approach: Section 3.2
Cost-based dynamic ED (DED) & ramp rate sensitivity analysis: Section 4.1 introduction and 4.1.1
Multi-objective cost-emission minimization: Section 4.1.2
Wind-integrated DED: Section 4.1.3
Energy storage system (ESS) operation in DED: Section 7.2.1
ESS operation in wind-integrated DED: Section 7.2.2
This is mostly a note to myself, so I don't forget my workflow in the future. All Pluto notebooks are developed locally and then converted to HTML using the following pipeline:
Build and launch the dev container so you don't need to install Julia locally. From the repo root:
docker build -t s17jmp .
docker run -d -v .:/workspace -p 1234:1234 --name s17jmp s17jmp:latest
and open the browser at http://localhost:1234 to access Pluto's UI and work with the notebooks.
After you are happy with the changes, you simply push to main
and then, if any of the *.jl
or README.md
were changed, a GitHub action should be triggered automatically. This will export this readme file and all notebooks as HTML pages and publish them to GitHub pages.