ControlSystems.jl icon indicating copy to clipboard operation
ControlSystems.jl copied to clipboard

Roadmap

Open ufechner7 opened this issue 9 years ago • 4 comments

What is the problem, that this package shall solve? Which functionality shall be implemented? a) linear system design b) PID controller design c) optimal control design d) non-linear control system design Shall it be used for a specific type of control system course (teaching)? If yes, which level of courses? Shall all the functions of Scilab be implemented? See: https://help.scilab.org/docs/5.5.2/en_US/section_64a8529216e858b335b0e6c058385350.html

Any comments welcome.

ufechner7 avatar Mar 29 '16 17:03 ufechner7

The current developement strategy followed by me, and at least to some extent by @mfalt , is to have the toolbox solve all problems we encounter in a gruduate course on control system synthesis by KJ Åström and Bo Bernhardsson we are following, http://control.lth.se/Education/DoctorateProgram/control-system-synthesis.html

I do not think we should limit ourselves to some particular label. Anything that fits reasonably well under the label Control is suitable for this package. Maybe extremely specialized stuff belongs in its own package, but this package should serve as a wide base for control systems design and analysis. Since none of us, as far as I know ;), is employed to develop this toolbox, I think a reasonable strategy is to let interested people contribute when they have solved a problem not yet solvable by the toolbox. A wide base of contributers help providing wide coverage. As long as some general guidlines are maintained, I can see only positive sides to have a large community contributing.

baggepinnen avatar Mar 29 '16 18:03 baggepinnen

I agree with what @baggepinnen wrote, I would like this to be an alternative to the MATLAB Control System Toolbox as far as that is possible to achieve. I think that a,b,c definitely fit within my goals. d) is currently not covered, and I do not know if it will (but I'm definitely open to it), what kind of functionality were you considering here? I could see this package being an alternative in the Bachelor/Masters courses that we are offering at the department, in particular the basic Control Course, Control Theory, Multi-variable Control and some more (maybe eventually Real Time Systems). Also for several of the PhD courses like Linear Systems, Control Synthesis and Stochastic Control.

I haven't looked at Scilab before, but after a quick look it seems like most of that functionality would fit nicely in this package. But, as @baggepinnen said, our work on this package will be mostly limited to solving the daily problems that we encounter in our research and courses we take/teach.

As it is now I would say that the package is in a quite usable condition, but there are still a couple of issues that needs to be handled before I would consider it user-friendly.

Unfortunately, there also a lot of functionality that is not covered in the "Examples" or "Manual" section of the documentation, which might confuse users, for example to believe that it is mostly suitable for PID design.

mfalt avatar Mar 29 '16 20:03 mfalt

I think there will be a few nice LQG examples available within a few weeks. Examples serve as great demonstrators as to what the toolbox is capable of, besides being of great help when one is starting out using the toolbox.

I think the toolbox should handle everything we use in the basic control course at our department, except maybe for the simulink related stuff, which is harder to replace. Communication with processes and lab equipment is another thing I think is outside the scope of this toolbox, but nice interfaces to eventual hardware packages would of course be interesting. If anyone know of suitable such hardware packages, it might be a good idea to have a look at them early on and at least keep their functionality in mind.

I also have some loose plans on implementing some adaptive control related tools in the toolbox. The design of controllers using simple adaptive schemes like self-tuning regulators, RLS/kalman parameter estimators, MIT-rule and other gradient based methods would be nice to have support for, not only for synthesis, but also during simple simulations with user selectable reference trajectories and noise.

baggepinnen avatar Mar 29 '16 20:03 baggepinnen

@baggepinnen:

Communication with processes and lab equipment is another thing I think is outside the scope of this toolbox, but nice interfaces to eventual hardware packages would of course be interesting. If anyone know of suitable such hardware packages, it might be a good idea to have a look at them early on and at least keep their functionality in mind.

Assuming your field uses HPIB/GPIB/LXI equipment as well,

  1. I have used the PyVISA module in the past: https://pyvisa.readthedocs.io/en/stable/

but that will require a wrapper module for Julia.

  1. There is the "Instruments.jl" module registered with METADATA. It appears to be developed by Raytheon BBN Technologies. I myself have not used this module.

  2. There is also "NIDAQ.jl" module: "National Instruments' driver for their data acquisition boards." This one appears to be developed by the Howard Hughes Medical Institute. I have never required/used anything like this - so I cannot comment here either.

Hope this helps.

ma-laforge avatar Dec 27 '16 20:12 ma-laforge