The OptimalControl.jl package is part of the control-toolbox ecosystem.
Let us model and solve a simple optimal control problem, then plot the solution:
using OptimalControl
using NLPModelsIpopt
using Plots
ocp = @def begin
t ∈ [0, 1], time
x ∈ R², state
u ∈ R, control
x(0) == [-1, 0]
x(1) == [0, 0]
ẋ(t) == [x₂(t), u(t)]
0.5∫( u(t)^2 ) → min
end
sol = solve(ocp)
plot(sol)For more details about this problem, please check the basic example presented in the documentation.
If you use OptimalControl.jl in your work, please cite us:
Caillau, J.-B., Cots, O., Gergaud, J., Martinon, P., & Sed, S. OptimalControl.jl: a Julia package to model and solve optimal control problems with ODE's [Computer software]. https://doi.org/10.5281/zenodo.13336563
or in BibTeX format:
@software{OptimalControl_jl,
author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre and Sed, Sophia},
doi = {10.5281/zenodo.16753152},
license = {["MIT"]},
title = {{OptimalControl.jl: a Julia package to model and solve optimal control problems with ODE's}},
url = {https://control-toolbox.org/OptimalControl.jl}
}