control-toolbox / control-toolbox/OptimalControl.jl

[Roadmap] New problem types: hybrid, impulsional, and ensemble control

Open
#807 0 comments 0 reactions 1 assignee Claimed by @ocots View on GitHub
roadmap
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.