control-toolbox / control-toolbox/OptimalControl.jl
[Roadmap] New problem types: hybrid, impulsional, and ensemble control
- Dominant language
- Julia
- Stars
- 135
- Forks
- 11
- Avg merge
- 6h 54m
- Merged PRs (30d)
- 56
Description
## Objective
Support non-conventional optimal control problems in the control-toolbox ecosystem:
- **Hybrid systems** — mixed continuous/discrete dynamics, switching, mode transitions
- **Impulsional control** — measure-driven control, state jumps
- **Ensemble control** — control of populations of systems
## Context
These problem classes are important for real-world applications but are not yet supported. Handling them requires extensions at the model, discretization, and solver levels. This is a long-term goal that will build on the architectural consolidation work (CTParser IR, CTDirect transcription recipes).
## Related work
Several Julia packages address related problem classes and could serve as references or integration targets:
- **[NOSNOC](https://github.com/nosnoc/nosnoc)** — Numerical optimal control for hybrid and nonsmooth dynamical systems. Key features: FESD (Finite Elements with Switch Detection) discretization with accurate event handling and sensitivities, time-freezing reformulations for systems with state jumps (contact, impacts), Filippov / piecewise smooth / complementarity-based models, real-time MPC algorithms for hybrid systems. Extensive MATLAB example library. Relevant to both hybrid and impulsional problem types.
- **[CCOpt.jl](https://github.com/MadNLP/CCOpt.jl)** — High-performance solver for Mathematical Programs with Complementarity Constraints (MPCCs), by the MadNLP team. Relaxation and penalty methods. Relevant to hybrid systems formulated with complementarity constraints.
- **[MPCCbenchmark.jl](https://github.com/MadNLP/MPCCbenchmark.jl)** — Benchmark set for large-scale MPCCs, implemented in JuMP with [ComplementOpt](https://github.com/blegat/ComplementOpt.jl). Includes nonsmooth optimal control problem instances from NOSNOC, power-flow problems with PV/PQ switches, and SCOPF problems with nonsmooth recourse. Useful as a source of benchmark problems for non-conventional OCPs.
## Why
- Hybrid systems appear in power systems, aerospace mode switching, contact dynamics
- Impulsional control is needed for problems with instantaneous control actions (e.g., thruster burns, medication dosing)
- Ensemble control is relevant for quantum control, epidemiology, and control of particle populations
- These extensions will leverage the architectural work in CTParser (IR-level transformations) and CTDirect (recipe extensions for state jumps, as noted in CTDirect roadmap §12)
## References
- [NOSNOC](https://github.com/nosnoc/nosnoc) — [paper](https://arxiv.org/html/2312.11022v2)
- [CCOpt.jl](https://github.com/MadNLP/CCOpt.jl) — [implementation paper](https://arxiv.org/abs/2604.18726)
- [MPCCbenchmark.jl](https://github.com/MadNLP/MPCCbenchmark.jl)
- [CTDirect roadmap](https://github.com/control-toolbox/CTDirect.jl/discussions/609) (§12: impulsive case)
- [Roadmap comment](https://github.com/orgs/control-toolbox/discussions/68#discussioncomment-17584843)
Contributor guide
Assessment
This issue has not been assessed yet.