Skip to content
Ilhan Polat edited this page Jun 21, 2018 · 3 revisions

Next to harold regular development, below are the major milestones that is required for being a truly generic control toolbox

Long term goals

  • The LMI based analysis and synthesis (mainly for Hinf problems) require a convenient SDP solver and a parser. Both seem to not exist at the level control users can utilize. Either inhouse or some combination of CVX and Yalmip-like tool needed.
  • I have already contacted the authors of HIFOO and they don't wish to change the license. Hence a code translation or a code lookup will not be possible. Instead I can commit to this type of work myself but that would cost a lot of time. A helping hand is surely needed.
  • The Bokeh-based interactive plots are needed but the required technical debt looks a bit too much per plot. Maybe a submodule is a better idea. Especially panels that show many plots at once to reduce the design effort seems necessary.

Medium term goals

  • Make a proper real-time controller using Arduino-based hardware.
  • Complete the function list to that of matlab, scilab etc. for a proper 1-1 code translation ability.
  • Decide on whether root locus is still relevant.
  • Find a way to write, or implement functions to write [G, H] or [[G], [H]] to augment models.

Short term goals

  • Finish Riccati-based control synthesis parts (hinf, h2, mixedsyn with proper names).
  • Finish implementing a generic class to represent all filters to be used in the weighting. These have to be purely IIR filters (mostly low pass and inverse low pass) to be used as for performance, input, disturbance channel weights. They inherit both State and Transfer classes but don't initiate them. Signal processing terminology is not needed per se but might be helpful. The priority is on the usability instead of elegance e.g., notch_filter(freq, depth, shoulder width) should be sufficient to create. These are all scattered to many domains in any software.
    • Low pass filters
    • High pass filters
    • Band pass filters
    • Notch filters
    • Inverse notch filters
    • PID (series, interacting, noninteracting, probably following Åstrom & Hägglund)
    • Lead/Lag filters
  • Run through the whole docstrings for typos, mistakes and add doctests to TravisCI
  • I have also contacted Amit Pandey and he generously gave the matlab code for the full Pole Placement solution. But translation needs a bit of work. It has to be finished at some point. Maybe I can push it to SciPy or python-control instead for a more general audience.
Clone this wiki locally