spock.jl is an efficient Julia implementation of the Spock algorithm for multistage risk-averse optimal control problems. It largely benefits from warm-starts and is amenable to massive parallelization.
This solver handles risk-averse optimal control problems with:
- Linear dynamics
- Quadratic stage and terminal costs
- Conic risk measures
- Convex input-state constraints
Documentation can be found here.
Make sure to install the dependencies in the Project.toml and in your script import
include("src/spock.jl")
The examples/server_heat folder contains example code for a test system, modeling the heat of servers in a data center. The figures in the IFAC 2023 submission can be reproduced by running the scripts residuals.jl, scaling.jl and mpc_simulation.jl.