[5785bb]: devel / PROJECTS  Maximize  Restore  History

Download this file

118 lines (81 with data), 3.8 kB

<html>
<pre>
Control PROJECTS                                          -*- text -*-
================

grep FIXME and/or TODO for more information


-------
General:
-------

  * Improve @lti/subsasgn.m

  * Improve @lti/parallel.m by implementing "complicated" case
    sys = parallel (sys1, sys2, in1, in2, out1, out2)

  * n-th order approximation of time delay  exp (tau*s)
    sys = pade (tau, n)

  * Add delays  exp (-T*s)  indelay, outdelay, stdelay, ...
    -- Support time and frequency responses.
    -- Support interconnections.

  * Implement zpk models and @zpset similar to @tfpoly.

  * SLICOT non-linear system identification.
    idnlmodel class and simulation of Wiener models with SLICOT.

  * Descriptor support for pole placement command "place".
  
  * Implement mu-Synthesis command "dksyn" using  muHopt.f.

  * Implement d2d.  In general, d2c followed by c2d could be used, maybe one derives
    direct formulae for the bilinear case.

  * Matched pole/zero method for c2d and d2c.

  * Implement balreal.  Based on SLICOT AB09HY?

  * Add input and output groups to LTI models.
    -- sys.ingroup.controls = [1, 3] (stored as a struct)
    -- sys(:, "controls") (instead of sys(:, [1, 3]))
    -- Handle __sys_group__ case when indices of the second lti need to be increased
       by the size of the first lti.
    -- Handle __sys_prune__ case when indices need to be deleted from all struct fields
       and channels numbers after the deleted ones need to be decreased.
    -- Handle conflicting names for __sys_group__.
    -- Beware of indices not in ascending order.

  * Fix PDF manual.
    -- Use TEX for formulas (iftex)

  * "horzcat" and "vertcat" are trivial operations for TF, FRD and ZPK models.
    Therefore model-specific commands (@tf/horzcat, @tf/vertcat, @frd/...)
    which override the generic commands (@lti/horzcat, @lti/vertcat) could
    make practical sense.

  * Support more than two arguments in __sys_group__.

  * Display individual warnings/errors for iwarn/info in oct-files.
  
  * Airtight argument checking for oct-files.  Currently there are no checks
    because LTI methods are "nice" to the oct-files.  But oct-files are by no
    means private and privateness is no protection because one could easily
    create an @lti folder in an user directory and fool octave.  This can
    become a problem if - for example - someone sets up a public web interface
    where people can try out octave through their web browsers.

  * Use "axis tight" and multiplot for margin.m.

-----------------------
Frequency Response Data:
-----------------------

  * Tolerances for intersection of frequency vectors in @frd/__sys_group__.m

------------------
State-Space Models:
------------------

  * Balancing: TB01TD ?

  * Support descriptor models for bilin and prewarp methods in c2d and d2c
    if beta*E - A or alpha*E + A are singular.

------------------------
Transfer Function Models:
------------------------

  * Find a transfer function to state-space conversion routine which
    supports individual denominators for each input-output channel
    (@tf/__sys2ss__.m).  Support for non-proper descriptor state-space
    systems would be nice, but otherwise Andras' trick that is already
    used for the current solution is not bad either.

------
Always:
------

  * Squash bugs.

  * Write/improve documentation.  If you implement a feature without documentation,
    nobody besides you will ever use it!  Don't waste your time :-)
 
  * Add description of each input and output argument to texinfo strings of
    functions on the INDEX list.

  * Add tests.

  * Test the control package on different platforms.

  * Compare results to those from other free and non-free implementations of an
    Octave-like language.

</pre>
</html>