OptimalControl

Model and solve optimal control problems in Julia, both on CPU and GPU.

https://github.com/control-toolbox/optimalcontrol.jl

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 12 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

control-systems differentiable-programming differential-geometry geometry julia nonlinear-equations numerical-methods optimal-control optimization optimization-algorithms ordinary-differential-equations quantum-optimal-control

Keywords from Contributors

numeric mesh interpretability interactive simulations matrix-exponential pde projection lasers neural-sde
Last synced: 4 months ago · JSON representation ·

Repository

Model and solve optimal control problems in Julia, both on CPU and GPU.

Basic Info
Statistics
  • Stars: 111
  • Watchers: 2
  • Forks: 9
  • Open Issues: 24
  • Releases: 38
Topics
control-systems differentiable-programming differential-geometry geometry julia nonlinear-equations numerical-methods optimal-control optimization optimization-algorithms ordinary-differential-equations quantum-optimal-control
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Zenodo

README.md

OptimalControl.jl

The OptimalControl.jl package is the root package of the control-toolbox ecosystem. The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU.

| Name | Badge | :-------------------|:------------------| | Documentation | Documentation Documentation | | Code Status | Build Status Covering Status pkgeval Code Style: Blue | | Licence | License: MIT | | Release | Release | | Citation | DOI | | Downloads | Month Total |

Installation

To install OptimalControl.jl please open Julia's interactive session (known as REPL) and press ] key in the REPL to use the package mode, then add the package:

julia julia> ] pkg> add OptimalControl

[!TIP] If you are new to Julia, please follow this guidelines.

Basic usage

Let us model and solve a simple optimal control problem, then plot the solution:

```julia 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.

Citing us

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:

bibtex @software{OptimalControl_jl, author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre and Sed, Sophia}, doi = {10.5281/zenodo.13336563}, 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} }

Contributing

If you think you found a bug or if you have a feature request / suggestion, feel free to open an issue. Before opening a pull request, please start an issue or a discussion on the topic.

Contributions are welcomed, check out how to contribute to a Github project. If it is your first contribution, you can also check this first contribution tutorial. You can find first good issues (if any 🙂) here. You may find other packages to contribute to at the control-toolbox organization.

If you want to ask a question, feel free to start a discussion here. This forum is for general discussion about this repository and the control-toolbox organization.

[!NOTE] If you want to add an application or a package to the control-toolbox ecosystem, please follow this set up tutorial.

See also

We acknowledge support of colleagues from ADNLPModels @Julia Smooth Optimizers and MadNLP.

Owner

  • Name: control-toolbox
  • Login: control-toolbox
  • Kind: organization
  • Email: ct@inria.fr
  • Location: France

Toolbox for optimal control

Citation (CITATION.bib)

@software{OptimalControl_jl,
author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre and Sed, Sophia},
doi = {10.5281/zenodo.13336563},
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}
}

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 974
  • Total Committers: 12
  • Avg Commits per committer: 81.167
  • Development Distribution Score (DDS): 0.425
Past Year
  • Commits: 564
  • Committers: 8
  • Avg Commits per committer: 70.5
  • Development Distribution Score (DDS): 0.39
Top Committers
Name Email Commits
Olivier Cots o****s@i****r 560
Jean-Baptiste Caillau j****u@u****r 211
Pierre Martinon p****n@g****m 75
jcaillau j****u@i****r 73
gergaud j****d@t****r 29
ct: control-toolbox 1****x 13
CompatHelper Julia c****y@j****g 4
dependabot[bot] 4****] 3
Orjan Ameye o****e@h****m 3
abavoil 1****l 1
Marcel Jacobse 4****e 1
Baptiste Combelles b****s@p****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 84
  • Total pull requests: 304
  • Average time to close issues: 3 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 11
  • Total pull request authors: 6
  • Average comments per issue: 3.13
  • Average comments per pull request: 0.37
  • Merged pull requests: 120
  • Bot issues: 0
  • Bot pull requests: 199
Past Year
  • Issues: 66
  • Pull requests: 304
  • Average time to close issues: 23 days
  • Average time to close pull requests: 12 days
  • Issue authors: 9
  • Pull request authors: 6
  • Average comments per issue: 1.2
  • Average comments per pull request: 0.37
  • Merged pull requests: 120
  • Bot issues: 0
  • Bot pull requests: 199
Top Authors
Issue Authors
  • ocots (97)
  • jbcaillau (55)
  • alesiagr (2)
  • horasio (2)
  • oameye (2)
  • remydutto (1)
  • TomRottier (1)
  • github-actions[bot] (1)
  • Dtinas10 (1)
  • AnasXbouali (1)
  • JuliaTagBot (1)
  • Bobingstern (1)
Pull Request Authors
  • github-actions[bot] (215)
  • ocots (108)
  • jbcaillau (62)
  • PierreMartinon (12)
  • dependabot[bot] (9)
  • oameye (3)
  • abavoil (2)
  • mjacobse (1)
Top Labels
Issue Labels
documentation (44) internal dev (16) bug (13) enhancement (5) good first issue (5) help wanted (3) march2023 (2) unit tests (1)
Pull Request Labels
formatting (28) automated pr (28) no changelog (28) run breakage applications (14) dependencies (9)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 37 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 18
juliahub.com: OptimalControl

Model and solve optimal control problems in Julia, both on CPU and GPU.

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 37 Total
Rankings
Downloads: 2.9%
Dependent repos count: 3.2%
Average: 7.5%
Dependent packages count: 16.3%
Last synced: 4 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v1 composite
  • julia-actions/add-julia-registry v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/julia-uploadcodecov latest composite
  • julia-actions/setup-julia latest composite
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/add-julia-registry v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/setup-julia latest composite
.github/workflows/auto-assign.yml actions
  • pozil/auto-assign-issue v1 composite