Minimalist’s Approach

Paired only with your Matlab license, DIDO requires no other 3rd party software and is the ONLY software of its kind to include a robust Guess –Free algorithm that can automatically initiate an optimization run.  No user supplied guess required!  All that is needed is the input of the problem formulation – nothing more – and the results are literally at your fingertips!

Code Example

[cost, primal] = dido(Problem)

Problem is a structure array with fields cost, dynamics, events and path that point to the input files,

Problem.cost = `MyCostFile’; Problem.dynamics = ‘MyDynamicsFile’; = ‘MyEventsFile’; Problem.path = ‘MyPathFile’; 

The variable, primal, is used in nearly all DIDO files to pass the states, controls, parameters and other useful quantities; thus, for example,

primal.states primal.controls

carry with them the state- and control-trajectory.

Besides being easy to use, this unique software structure is general and allows many complex situations to be explored, including:

  • Complex interior point constraints
  • Pre-defined segments
  • Differentially-flat segments
  • Transition conditions
  • Mid-maneuver changes in dynamics
  • Multi-dynamical systems
  • Mid- maneuver changes in the cost function
  • Switches
  • Discrete events


Pseudospectral Theory Powers DIDO

DIDO is built on the foundation of pseudospectral theory, with mathematically proven convergence properties.   But no knowledge of pseudospectral theory is required to run DIDO!  Only an understanding of how to write down optimal control problems.  DIDO’s performance comes with two unique features:

  • The GuessELM guess-free algorithm that allows DIDO to gnerate solutions without any user supplied guess.  If a guess is provided, DIDO utilizes it to initiate the spectral algorithm.c
  • Spectral convergence that gives exponential convergence rates greatlly reducing problem solve time.

 DIDO automatically outputs:

  • Spectral Algorithm
  • State/control trajectories
  • Hamiltonian
  • Costates
  • Path covectors
  • Endpoint covectors

The dual outputs can be used alongside classic tools like Pontryagin’s Principle to instantly validate numerical results.  No other optimal control method has this capability.


DIDO is the FIRST Optimal Control Package

  • Flight-Tested
  • Hardware-in-the-loop capable
  • Object Oriented
  • Generate results without user supplied guess
  • Implement the Covector Mapping Principle (CMP)
  • Requires no knowledge of the underlying algorithms

System Requirements: Windows or Mac and MATLAB