control-toolbox / CTBenchmarks.jl

Control-toolbox benchmarks
9 stars 2 forks source link

Control-toolbox benchmarks

Description

This project is a tool to compare the performance of OptimalControl and other existing tools such as JuMP and InfiniteOpt in solving optimal control problems from the package OptimalControlProblems.jl. The goal is to evaluate the performance of OptimalControl in terms of speed and accuracy. It also aims to identify the limitations of OptimalControl and to propose some improvements.

Getting Started

For this project, you need to have the following packages installed:

  1. Models
  2. Solvers
  3. Tools

Unit tests

The directory test contains the execution of the different problems from OptimalControlProblems. The goal is to compare the performance of JuMP and OptimalControl in terms of accuracy:

=> The table below summarizes the status of the each problem with JuMP and OptimalControl:

Problem With JuMP With OptimalControl Comparaison Remarks
The Hanging Chain βœ… βœ… πŸ†—
The Hang Glider βœ… βœ… πŸ†—
The Robot Arm βœ… βœ… solution πŸ†— + costate differences
The Goddard Rocket βœ… βœ… πŸ†—
The Particle Steering βœ… βœ… πŸ†—
The Space Shuttle Reentry βœ… ❌ ❌ not same solution found
The Cart Pendulum βœ… βœ… πŸ†—
The Moonlander βœ… βœ… πŸ†—
The Truck Trailer βœ… ❌ ❌
The Quadrotor βœ… βœ… ❌ not same solution found
The Dielectrophoretic Particle βœ… βœ… πŸ†—
The Ducted Fan βœ… βœ… πŸ†—
The Double Oscillator βœ… βœ… solution πŸ†— + costate differences
The Electrical Vehicle βœ… βœ… solution πŸ†— + costate differences

Benchmark

The directory benchmark contains the benchmark of the different problems from OptimalControlProblems.
The main three files are :

The results of the benchmark are generated in the benchmark/outputs directory. They are saved in Latex files that contains the following columns:

Other folders

License

Acknowledgments