1Summary of important user-visible changes for older releases of the control package
2
3===============================================================================
4control-2.8.5   Release Date: 2015-10-01   Release Manager: Lukas Reichlin
5===============================================================================
6
7** nyquist, nichols
8   Specifying a frequency range no longer errors out,
9   i.e. nyquist (sys, {wmin, wmax})
10
11** pid, pidstd
12   New functions for improved Matlab compatibility.
13
14** ss
15   Support  ss (a, b, c, 0)  for Matlab compatibility.
16   (Thanks to Thomas Vasileiou)
17
18** tf
19   Fixed a problem which caused the expression below to fail.
20
21     tf (Boeing707) \ tf (Boeing707)
22
23
24===============================================================================
25control-2.8.4   Release Date: 2015-09-02   Release Manager: Lukas Reichlin
26===============================================================================
27
28** tf
29   Fixed a bug which affected interconnections of MIMO transfer functions.
30   (Reported by Piet Wertelaers)
31
32** VLFamp
33   Included new demo created by Thomas D. Dean.
34
35
36===============================================================================
37control-2.8.3   Release Date: 2015-07-01   Release Manager: Lukas Reichlin
38===============================================================================
39
40** LTI models & iddata datasets
41   Support partial matching of property names.
42
43** mpower
44   Fixed bug #45336.  <http://savannah.gnu.org/bugs/?45336>
45   Improved reliability for the power computation of MIMO transfer functions.
46   (Reported by Nick Jankowski)
47
48** set
49   Fixed bug #45371.  <http://savannah.gnu.org/bugs/?45371>
50   The iddata properties 'name', 'notes' and 'userdata' are now stored as
51   expected.  (Thanks to Petr Ledvina)
52
53
54===============================================================================
55control-2.8.2   Release Date: 2015-06-15   Release Manager: Lukas Reichlin
56===============================================================================
57
58** tf
59   Fixed a problem when converting certain MIMO descriptor state-space systems
60   to transfer function models.
61
62** minreal
63   Fixed bug #43263.  <http://savannah.gnu.org/bugs/?43263>
64   Affected were transfer function models.  (Thanks to Endre Kozma)
65
66** n4sid, moesp, moen4
67   Fixed bug #41716.  <http://savannah.gnu.org/bugs/?41716>
68   Display a meaningful error message when the iddata dataset contains not
69   enough samples per experiment.  (Reported by John W. Eaton)
70
71** rlocus
72   Fixed bug #44949.  <http://savannah.gnu.org/bugs/?44949>
73   Fixed a problem with discontinuous plots for systems like the one below.
74   (Thanks to Doug Stewart)
75
76     sys = tf ([1 0 0 0 0 0 1], [1 0 0 0 1 0 0 0 0 1])
77     rlocus (sys)
78
79
80===============================================================================
81control-2.8.1   Release Date: 2015-05-03   Release Manager: Lukas Reichlin
82===============================================================================
83
84** tf
85   -- Revamped the modifications of TB01ZD from control version 2.8.0.
86      The function now uses LAPACK routines to find the maximum norm element.
87      (Thanks to Thomas Vasileiou)
88   -- Improved error handling when converting state-space models.
89
90
91===============================================================================
92control-2.8.0   Release Date: 2015-03-22   Release Manager: Lukas Reichlin
93===============================================================================
94
95** zero
96   Compatibility fix in the C++ oct-file to support the upcoming Octave 4.0.
97   (Thanks to Andreas Weber)
98
99** isminimumphase
100   Reverted changes from control-2.6.6.  According to the definition of
101   Byrnes/Isidori, the function tests whether the system has asymptotically
102   stable zero dynamics.  The poles are not tested.
103   Note that the definition from Wikipedia is mixed up.
104   For details, see the help text of the function (help @lti/isminimumphase)
105   and the papers referenced therein.  (Thanks to Ulf Schaper)
106
107** series
108   Fixed a bug which gave unnecessary error messages when the function is
109   called with 4 arguments.  (Thanks to Ulf Schaper)
110
111** tf
112   Resolved issues in MIMO state-space to transfer function conversion
113   by implementing a more robust algorithm in SLICOT routine TB01ZD.
114   The same algorithm is used in Octave's krylov function.
115   (Thanks to Thomas Vasileiou)
116
117** It is now possible to cross-compile the control package.
118   (Thanks to John Donoghue)
119
120** Support for 64bit indexing, i.e. Octave versions built with the --enable-64
121   option.  (Thanks to Mike Miller)
122
123** The control package now depends on Octave version 3.8.0 or beyond.
124
125** In order to comply with modified Octave Forge rules, the package no longer
126   auto-loads by default.  See "help pkg" for details on auto-loading.
127
128
129===============================================================================
130control-2.6.6   Release Date: 2014-10-11   Release Manager: Lukas Reichlin
131===============================================================================
132
133** isminimumphase
134   According to <http://en.wikipedia.org/wiki/Minimum_phase>, both the zeros
135   and the poles of a minimum-phase system must be strictly inside the left
136   complex half-plane (continuous-time case) or inside the unit circle
137   (discrete-time case).  Previously, the poles were not tested.
138   (Thanks to Endre Kozma)
139
140
141===============================================================================
142control-2.6.5   Release Date: 2014-06-16   Release Manager: Lukas Reichlin
143===============================================================================
144
145** LTI models
146   -- The operator "times" (.*) no longer errors out when it is called with one
147      SISO and one MIMO LTI system.  The operator behaves now the same way as
148      Octave's built-in "times" for one scalar and one matrix.
149   -- The function "repmat" is now overloaded for LTI systems.
150   -- Added function "repsys" as an alias for "repmat" for the sake of Matlab
151      compatibility.
152
153** zero
154   Fix crash in case of empty state-space models, e.g.
155
156     zero (ss)
157
158
159===============================================================================
160control-2.6.4   Release Date: 2014-05-05   Release Manager: Lukas Reichlin
161===============================================================================
162
163** LTI models
164   -- Fixed bug #42082.  <https://savannah.gnu.org/bugs/?42082>
165      The operators mtimes (*), mldivide (\) and mrdivide (/) no longer error
166      out when they are called with one SISO and one MIMO LTI system.  They now
167      behave the same way as they do with one scalar and one matrix.
168   -- Refuse struct arrays as input and output groups.
169   -- Display non-empty properties of type 'name'.
170
171** TF models
172   -- Added TF-specific horzcat ([tf1, tf2]) and vertcat ([tf1; tf2]) operators
173      which override the general LTI operators.  Their introduction avoids the
174      conversion to state-space and back when MIMO transfer functions are
175      concatenated horizontally and/or vertically.
176   -- Added operator times (.*) to compute Hadamard/Schur product of two
177      transfer function matrices.  This operator is useful to compute the
178      Relative-Gain Array (RGA), e.g.
179
180        G = tf (Boeing707)
181        RGA = G .* inv (G).'
182        RGA(0)
183
184
185===============================================================================
186control-2.6.3   Release Date: 2014-04-22   Release Manager: Lukas Reichlin
187===============================================================================
188
189** SS models
190   For interconnections, support special case where the internal matrix
191   (I - D*M) is singular, e.g.
192
193     feedback (ss (-1, 1, 4, 1), '+')
194
195** FRD models
196   Fixed bug which let frequency response plots fail, e.g.
197
198     bode (frd (tf (1, [1, 1])))
199
200** tf
201   Refuse denominators which are zero.
202
203** c2d
204   For zero-order hold approximation, use SLICOT MB05ND instead of Octave's
205   "expm" to compute the matrix exponential.  Better accuracy is to be expected.
206
207** connect
208   -- Improved argument checking for legacy connection matrix.
209   -- Document usage of index-based interconnections.
210
211** inv
212   -- Handle i/o names and groups correctly.
213   -- Conserve the meaning of states by using the Matlab-compatible formula
214      instead of the SLICOT-compatible one.
215   -- Always use conversion to state-space and back for the inversion of
216      MIMO transfer functions, even for 2x2 systems.
217
218** pole
219   Compute poles of descriptor state-space models with SLICOT AG08BD instead
220   of Octave's built-in "eig" function.
221
222** zero
223   The gain of descriptor state-space models is now computed correctly.
224
225   (Special thanks to Thomas Vasileiou for all the fixes above)
226
227** rlocus
228   -- Function "rlocus" now supports the fltk graphics toolkit.
229      (Thanks to Doug Stewart)
230   -- Fixed bug #41820.  <https://savannah.gnu.org/bugs/?41820>
231      Function "rlocus" no longer errors out for certain systems like
232
233        rlocus (tf ([1, 4, 4], [1, 8, 1, 8, 0]))
234
235** transpose, ctranspose
236   Delete i/o groups of transposed (sys.') or conjugate transposed (sys')
237   LTI models.
238
239** IDDATA identification datasets
240   Raise an error if non-real-valued input or output matrices are assigned to
241   time-domain datasets via the "set" function or subscripted assignment.
242
243
244===============================================================================
245control-2.6.2   Release Date: 2014-02-02   Release Manager: Lukas Reichlin
246===============================================================================
247
248** hinfsyn, mixsyn
249   By default, hinfsyn and mixsyn compute now an optimal instead of a
250   suboptimal controller.  Furthermore, Matlab compatibility is improved if
251   hinfsyn/mixsyn is called with more than three/four input arguments.
252   (Thanks to Thomas Vasileiou for the gamma iteration)
253   The old behavior (sub-optimal controller) can be restored by the expressions
254
255     hinfsyn (P, nmeas, ncont, 'method', 'sub')
256     mixsyn (G, W1, W2, W3, 'method', 'sub')
257
258** h2syn, hinfsyn, mixsyn, ncfsyn
259   For Matlab compatibility, the third return argument is now norm "gamma".
260   The info struct is now returned as fourth argument.
261
262     [K, N, gamma, info] = *syn (G, …)
263
264** mktito
265   New function to partition plant for robust control.  "mktito" is also used
266   by function "augw".  If a plant is partitioned that way, one can omit the
267   inputs "nmeas" and "ncon" when calling the functions "hinfsyn" and "h2syn".
268
269** ss
270   The conversion of realizable descriptor systems to regular state-space form
271   is now possible, even when the descriptor matrix "E" is singular.
272   (Thanks to Thomas Vasileiou and Bruce Minaker)
273
274
275===============================================================================
276control-2.6.1   Release Date: 2013-12-10   Release Manager: Lukas Reichlin
277===============================================================================
278
279** LTI models
280   Raise an error if the user tries to create an ingroup or outgroup with
281   indices larger than the number of inputs m or outputs p.
282
283** thiran
284   New function to approximate a continuous-time delay by a discrete-time
285   allpass Thiran filter.  (Thanks to Thomas Vasileiou and Spencer Jackson)
286
287** end
288   "end" indexing for LTI and IDDATA objects works now as expected.
289
290
291===============================================================================
292control-2.6.0   Release Date: 2013-10-24   Release Manager: Lukas Reichlin
293===============================================================================
294
295** LTI models
296   -- Support for name-based channel selection in various commands.
297      Example:  sys = Boeing707, sys('pitch', {'rudder', 'thrust'})
298      instead of  sys(2, [2, 1]).
299   -- New properties "ingroup" and "outgroup" to pool several channels:
300      sys.ingroup.controls = [3, 1], sys.outgroup.measurements = [1, 2]
301      sys('measurements', 'controls')  instead of  sys([1, 2], [3, 1]).
302   -- Support names instead of indices in commands like "feedback" and "xperm".
303
304** connect
305   Support name-based interconnections.  This means that the LTI models passed
306   to "connect" will be interconnected automatically if they have their inputs
307   and outputs named accordingly.
308
309** sumblk
310   New function to build summing junctions for name-based interconnections
311   by "connect".  Example: Sum = sumblk ('e = r - y + n')
312
313** tf
314   State-space to transfer function conversions of static gains,
315   e.g. "tf (ss (5))", no longer error out.  (Thanks to Thomas Vasileiou)
316
317** IDDATA identification datasets
318   Support for name-based output, input and experiment selection similar to
319   LTI models.
320
321
322===============================================================================
323control-2.4.5   Release Date: 2013-10-07   Release Manager: Lukas Reichlin
324===============================================================================
325
326** Compatibility to GNU Octave 3.8
327   Replaced line continuation marker "\" by "..." to avoid deprecated syntax
328   warning.  (Thanks to John W. Eaton)
329
330** db2mag, mag2db
331   New functions to convert Decibels to Magnitude and vice versa.
332
333** d2d
334   New function for resampling of discrete-time models.
335
336
337===============================================================================
338control-2.4.4   Release Date: 2013-08-11   Release Manager: Lukas Reichlin
339===============================================================================
340
341** zero
342   -- Fix documentation.  Function "zero" computes the invariant zeros, not the
343      transmission zeros when it is called with one input argument.
344   -- Added new options to compute the system, transmission, input decoupling
345      and output decoupling zeros besides the already existing invariant zeros.
346      Examples: z = zero (sys, 'system'), z = zero (sys, 'transmission')
347   -- Return an "info" struct as third output argument.  It contains additional
348      rank information as well as Kronecker indices and the numbers of infinite
349      elementary divisors.  Example: [z, k, info] = zero (sys)
350   (Special thanks to Ferdinand Svaricek)
351
352** resample
353   The "resample" function for "iddata" identification datasets now handles
354   unspecified sampling times (tsam = -1) correctly.
355
356** Time response functions (impulse, initial, lsim, ramp, step)
357   Fix a thinko introduced with control-2.4.3.  In some cases, several
358   responses were mistakingly plotted on the same subplot.
359   (Thanks to Thomas Vasileiou)
360
361** Various documentation enhancements and fixes.
362
363
364===============================================================================
365control-2.4.3   Release Date: 2013-07-12   Release Manager: Lukas Reichlin
366===============================================================================
367
368** resample
369   The resample function for iddata sets now adjusts the sampling time
370   correctly after resampling.
371
372** Time response functions (impulse, initial, lsim, ramp, step)
373   Don't use subplot for SISO models.  This allows the user to plot different
374   responses on a single figure by calling subplot.  (Thanks to Matthias Meier)
375
376** h2syn, hinfsyn, mixsyn, ncfsyn
377   Third return argument is now an info struct.
378   [K, N, info] = *syn (G, …)
379
380** optiPID
381   Beef up documentation.
382
383
384===============================================================================
385control-2.4.2   Release Date: 2013-02-16   Release Manager: Lukas Reichlin
386===============================================================================
387
388** Transfer function to state-space conversion (Thanks to Thomas Vasileiou):
389   -- Fix crash.
390   -- Fix bug if denominators are zero.
391
392** minreal
393   Fix crash in minreal for state-space systems.  (Thanks to Thomas Vasileiou)
394
395** sigma
396   The plot types 1, 2, 3 were no longer supported since the introduction of
397   multi-system plots in control-2.3.54.  The help text is now updated
398   accordingly and cruft is removed from the codebase.
399
400** mixsyn, ncfsyn, Madievski
401   Beef up help text.
402
403
404===============================================================================
405control-2.4.1   Release Date: 2012-11-01   Release Manager: Lukas Reichlin
406===============================================================================
407
408** impulse, initial, lsim, step
409   These time response functions now error out correctly when the user tries to
410   plot multiple systems in one window with mismatching numbers of inputs and
411   outputs.  The problem was caused by Octave's built-in function "size_equal"
412   which gave false positives for LTI objects.  The problem is solved by
413   overloading the built-in function with a new LTI method "size_equal".
414
415** ramp
416   Added a new time domain analysis function "ramp" which plots/computes the
417   system's response to a ramp signal.
418
419** c2d, d2c
420   Added matched pole/zero discretization method "matched".
421   Usage:  Gd = c2d (Gc, Ts, 'matched'),  Gc = d2c (Gd, 'matched')
422
423** doc/control.pdf
424   Revised PDF manual.  There is now a function index at the end of the manual.
425   Improved docstrings in several functions.
426
427
428===============================================================================
429control-2.4.0   Release Date: 2012-09-26   Release Manager: Lukas Reichlin
430===============================================================================
431
432** Multiplot feature for time-domain plotting:
433
434     impulse    lsim
435     initial    step
436
437   Supported are now function calls like
438   impulse (sys1, sys2, ...), step (sys1, 'b', sys2, 'r', ...)
439   lsim (sys1, '-k', sys2, '--k', u), initial (sys, sys2, x0)
440   The multiplot feature for frequency-domain plotting has already been
441   introduced with control-2.3.54.
442
443** Anderson, Madievski, MDSSystem, optiPID
444   Updated example scripts to use new multiplot feature.
445
446** sensitivity
447   Fixed a problem with plotting, introduced with control-2.3.54.
448
449** doc/control.pdf
450   Updated PDF manual.
451
452
453===============================================================================
454control-2.3.54   Release Date: 2012-09-15   Release Manager: Lukas Reichlin
455===============================================================================
456
457** Multiplot feature for frequency-domain plotting:
458
459     bode       nichols     pzmap
460     bodemag    nyquist     sigma
461
462   The functions above support calls like
463   sigma (sys1, sys2, ...), nyquist (sys1, 'b', sys2, 'r', ...),
464   bode (sys1, '-k', sys2, '-.k', sys3, ':k', {wmin, wmax}).
465   Time domain functions are not yet multiplot ready, but they will follow in
466   control-2.4.0.
467
468** plot
469   A selection of experiments from iddata identification datasets can be
470   plotted by  plot (dat, exp)  instead of  plot (dat(:,:,:,exp)).
471
472** sensitivity
473   Fixed a problem where an error was raised about an undefined function
474   "issiso".
475
476** All SLICOT function names have now leading and trailing underscores to
477   emphasize their private nature.
478
479
480===============================================================================
481control-2.3.53   Release Date: 2012-08-27   Release Manager: Lukas Reichlin
482===============================================================================
483
484** Added new functions for system identification, including:
485
486     arx        iddata       ifft
487     moen4      detrend      nkshift
488     moesp      fft          plot
489     n4sid      filter       resample
490
491** sensitivity
492   Added new function to compute and plot the sensitivity margin Ms.
493
494** feedback
495   Fixed an argument check which caused false positive error messages.
496   It was a copy-paste mistake affecting non-square systems.
497   (Thanks to Tony Olivo)
498
499
500===============================================================================
501control-2.3.52   Release Date: 2012-06-25   Release Manager: Lukas Reichlin
502===============================================================================
503
504** Fixed a silly mistake in MIMO transfer function to state-space conversion.
505   The bug has been introduced with control-2.3.51.
506   (Thanks to Jim Rawlings for providing the test case)
507
508** dlqe, lqe
509   Added new functions for linear quadratic estimators.
510   (Thanks to Megan Zagrobelny)
511
512** Upon request of the Debian maintainers, the tex-files  control.tex  and
513   functions.texi  for generating  control.pdf  are included in the doc folder,
514   next to  control.pdf.  Note that  functions.texi  is generated automatically
515   by the scripts in the control/devel folder and the package generate_html.
516   They are not included in the control package and can be found on the
517   OctaveForge SVN server.
518
519** Minor improvements in various help texts.
520
521
522===============================================================================
523control-2.3.51   Release Date: 2012-06-03   Release Manager: Lukas Reichlin
524===============================================================================
525
526** filt, filtdata, tf
527   -- Added function "filt" to specify disrete-time transfer functions in DSP
528      format, i.e. z^-1.
529   -- Added function "filtdata" to return any type of discrete-time LTI model
530      in DSP format.
531   -- tf models have a new property "inv".  To display a discrete-time TF sys
532      in z^-1, set  sys.inv=true.  In order to switch to z, set  sys.inv=false.
533      "filt" sets property "inv" to true (z^-1) by default, while "tf" uses
534      false (z) as default value.
535
536** ctranspose
537   Conjugate transpose or pertransposition of LTI objects.
538   Used by Octave for "sys'".  For a transfer-function matrix G, G' denotes the
539   conjugate of G given by G.'(-s) for a continuous-time system or G.'(1/z) for
540   a discrete-time system.  The frequency response of the pertransposition of G
541   is the Hermitian (conjugate) transpose of G(jw),
542   i.e. freqresp (G', w) = freqresp (G, w)'.
543   WARNING: Do NOT use this for dual problems, use the transpose "sys.'"
544   (note the dot) instead.
545
546** test_control
547   Add a few remarks to the help text regarding the severity of failing tests.
548
549** Makefile fixed to work with non-standard linker options e.g on
550   Apple.
551
552** The conversion to state-space of multi-input transfer functions with common
553   row denominators is now handled more efficiently.
554
555
556===============================================================================
557control-2.3.50   Release Date: 2012-03-06   Release Manager: Lukas Reichlin
558===============================================================================
559
560** Added new functions for frequency-weighted model and controller order
561   reduction:
562
563     bstmodred      btaconred
564     btamodred      cfconred
565     hnamodred      fwcfconred
566     spamodred      spaconred
567
568** Anderson, Madievski
569   -- Added two examples for controller reduction.  The m-files are named after
570      the authors of the corresponding papers.
571
572** fitfrd
573   -- Added function to fit frequency response data with a state-space model.
574
575** set
576   -- The set command doesn't need a return argument anymore in order to save
577      the modified values.  set (sys, "key", value)  is now equivalent to
578      sys = set (sys, "key", value).
579
580** Require Octave version 3.6.0 or better.  (The frequency response plotting
581   commands have been simplified.  They now use the fixed "axis tight" command.
582   This is a first step towards multiple systems in one plot,
583   e.g. bode (sys1, sys2, sys3).  Furthermore, the code takes advantage of the
584   new "arrayfun" function which became a faster oct-file instead of an m-file)
585
586** Revised package installation and cleanup efforts under the hood.
587   The new solution compiles the SLICOT library in a less barbaric way and
588   creates only a single oct-file containing all the SLICOT routines.
589   This also brings along faster compile times.
590   (Special thanks to Hans Buchmann, Carlo De Falco and Michael Goffioul for
591   their advice)
592
593** doc/control.pdf
594   -- Extended PDF manual.
595
596
597===============================================================================
598control-2.2.5   Release Date: 2012-02-09   Release Manager: Lukas Reichlin
599===============================================================================
600
601** Improved Matlab compatibility for frequency response commands.  It is now
602   possible to specify a frequency range.  Example: bode (sys, {wmin, wmax})
603   where wmin and wmax denote frequencies in rad/s.
604
605** margin
606   -- Fixed a variable name such that discrete-time models are plotted
607      without an error. (Thanks to Renato Caldas)
608
609
610===============================================================================
611control-2.2.4   Release Date: 2012-01-07   Release Manager: Lukas Reichlin
612===============================================================================
613
614** Compatibility with Octave 3.6.0.  (The makefile must specify the libraries
615   that mkoctfile needs to link.  Thanks to Marco Atzeri and Carlo De Falco)
616
617** ctrbf, obsvf
618   -- Added new functions to compute controllable and observable block
619      Hessenberg realizations based on SLICOT TB01UD.
620      (Thanks to Benjamin Fernandez and Alexandre Felipe)
621
622
623===============================================================================
624control-2.2.3   Release Date: 2011-12-07   Release Manager: Lukas Reichlin
625===============================================================================
626
627** Improved performance when computing the frequency response of transfer
628   function models by orders of magnitude.  (I realized that "polyval" can
629   evaluate a polynomial at several values at once in a vectorized manner.)
630
631** bode, bodemag, nichols, sigma
632   -- Fixed a hang when plotting pairs of purely imaginary poles or zeros.
633      The hang was caused by nonsensical (Inf, NaN) axis values.
634      (Reported by Laurent Tissier)
635
636** Use single instead of double quotes when displaying names of TF and FRD
637   models.
638
639
640===============================================================================
641control-2.2.2   Release Date: 2011-12-04   Release Manager: Lukas Reichlin
642===============================================================================
643
644** Improved error messages for place, ARE solvers and robust control commands.
645
646** minreal, ss
647   -- Fixed a crash for descriptor models.  minreal for dss models as well as
648      conversion from non-proper transfer functions to descriptor state-space
649      models should work now as expected.
650
651** ss
652   -- Revised default tolerance for transfer function to state-space conversion
653      by SLICOT TD04AD.
654
655** Better performance when computing the frequency response of SISO transfer
656   function models.
657
658** Reorganized tests.  Most tests have been moved from "ltimodels" to the files
659   of the LTI methods being tested.  All available tests can be executed by
660   "test_control".
661
662** The NEWS file is handled correctly when using Octave version 3.6.
663   Type "news("control")" or "news control" to display the news (3.6 only).
664
665
666===============================================================================
667control-2.2.1   Release Date: 2011-10-24   Release Manager: Lukas Reichlin
668===============================================================================
669
670** tf
671   -- Fixed a nasty bug that prevented shortening of numerator and denominator
672      polynomials consisting solely of zeros.
673   -- MIMO support for descriptor state-space to transfer function conversion.
674      Usage: tf_sys = tf (dss_sys)
675   -- MIMO support for interconnections of non-proper transfer functions via
676      internal conversion to state-space.
677
678** ss
679   -- Support conversion from non-proper transfer function to descriptor state-
680      space.  Usage: dss_sys = ss (tf_sys)
681
682** c2d, d2c
683   -- Support bilinear transformation of descriptor state-space models.
684
685** inv
686   -- Support the inversion of MIMO transfer functions.  Inverses of 2x2 TFs are
687      computed directly, larger models are computed internally in state-space.
688
689** place
690   -- Return the number of fixed, assigned and uncontrollable poles in a single
691      "info" struct instead of three individual output arguments.
692
693** rlocus
694   -- Clarify usage statement in help string.
695   -- Check whether system is SISO.
696
697** MDSSystem
698   -- Display bode plots of controllers instead of singular value plots of the
699      closed loops.
700
701** hsvd
702   -- Added option "alpha" to specify the alpha-stability boundary for the
703      eigenvalues of the state dynamics matrix A.
704
705** isctrb, isobsv
706   -- Return number of controllable/observable states as a second output
707      argument.
708
709** doc/control.pdf
710   -- Added preface to PDF manual.
711
712
713===============================================================================
714control-2.2.0   Release Date: 2011-09-26   Release Manager: Lukas Reichlin
715===============================================================================
716
717** ss
718   -- Transfer function to state-space conversion uses now SLICOT TD04AD.
719      Conversion of MIMO models is now supported.  Usage: ss_sys = ss (tf_sys)
720
721** tf
722   -- Support for interconnections of MIMO transfer functions.  This is done by
723      an internal conversion to a minimal state-space representation.  With the
724      current tf2ss and ss2tf conversions, only proper transfer function are
725      supported.  This limitation does not exist for SISO transfer functions.
726   -- Fixed a cellfun statement that caused problems on MinGW32 builds and
727      possibly some others.  (Reported by Bernhard Weller)
728
729** pole, zero
730   -- Computation of poles and zeros of MIMO transfer functions is now possible
731      via conversion to state-space.  Please note that the state-space
732      realization of SLICOT TD04AD is a minimal one.  Therefore certain poles
733      and zeros might be missing.
734
735** zpk, zpkdata
736   -- Included wrappers that create transfer function models from zero-pole-gain
737      data (zpk) and zero-pole-gain data from lti models (zpkdata).  They are
738      stop-gap measures for compatibility until ZPK models are implemented.
739
740** tfdata
741   -- "vector" option added.  For SISO models, it returns numerator and
742      denominator directly as column vectors instead of cells containing a
743      single column vector.
744
745** doc/control.pdf
746   -- Revised PDF manual.
747
748
749===============================================================================
750control-2.1.55   Release Date: 2011-09-07   Release Manager: Lukas Reichlin
751===============================================================================
752
753** c2d
754   -- Support for "tustin" and "prewarp" method added.
755   -- Transfer functions are now supported via the state-space methods.
756   -- Improved Texinfo string.
757
758** d2c
759   -- Discrete to continuous-time conversion added.  However, support is
760      limited to the zero-order hold, tustin and pre-warping methods.
761
762** Conversion from descriptor to regular state-space is now performed by SLICOT
763   routine SB10JD.  Better numerical results are to be expected over the
764   previous naive inversion formula.  This conversion is used internally for
765   ssdata and some other functions.
766
767
768===============================================================================
769control-2.1.54   Release Date: 2011-08-22   Release Manager: Lukas Reichlin
770===============================================================================
771
772** tf
773   -- State-space to transfer function conversion uses now SLICOT TB04BD.
774      Conversion of MIMO models is now supported.  Usage: tf_sys = tf (ss_sys)
775   -- Display an empty line between title and numerator for better readability.
776   -- Display whether model is static, continuous- or discrete-time.
777
778** A PDF manual is included for the first time.  It is located inside the "doc"
779   folder.  It has been generated automatically from the Texinfo help strings
780   and is not yet completely sorted out.
781
782
783===============================================================================
784control-2.1.53   Release Date: 2011-08-08   Release Manager: Lukas Reichlin
785===============================================================================
786
787** ncfsyn
788   -- Added support for McFarlane/Glover loop shaping design procedure.
789      "ncfsyn" stands for Normalized Coprime Factor Synthesis.
790
791** MDSSystem
792   -- Added example script which demonstrates the usage of the robust control
793      commands "mixsyn" and "ncfsyn".
794
795** Texinfo help strings of several functions have been extended, although
796   documentation still leaves a lot to be desired.
797
798
799===============================================================================
800control-2.1.52   Release Date: 2011-07-27   Release Manager: Lukas Reichlin
801===============================================================================
802
803** hsvd
804   -- Use scaling unless state-space model property "scaled" is set to true.
805
806** norm
807   -- Use scaling for computation of L-infinity norm unless state-space model
808      property "scaled" is set to true.
809
810** minreal
811   -- Use scaling for state-space and descriptor state-space models unless
812      property "scaled" is set to true.
813   -- More accurate results are to be expected for descriptor state-space
814      models by performing only those reduction phases where effective order
815      reduction occurs. This is achieved by saving the system matrices before
816      each phase and restoring them if no order reduction took place.
817
818** zero
819   -- Use scaling for state-space and descriptor state-space models unless
820      property "scaled" is set to true.
821
822** frdata
823   -- The frequency response is now returned correctly as an array and not as a
824      vector, unless the "vector" option is set and the system is single-input
825      single-output.
826   -- Added help text.
827
828
829===============================================================================
830control-2.1.51   Release Date: 2011-07-21   Release Manager: Lukas Reichlin
831===============================================================================
832
833** frd
834   -- Support for Frequency Response Data (frd) measurement "models".
835
836
837===============================================================================
838control-2.1.50   Release Date: 2011-07-06   Release Manager: Lukas Reichlin
839===============================================================================
840
841** ss
842   -- Support for property "scaled".  By default, it is set to "false".
843
844** prescale
845   -- Scaling for state-space models (SLICOT TB01ID) and descriptor models
846      (SLICOT TG01AD).
847
848** freqresp
849   -- Scale state-space models using @lti/prescale.m if property "scaled" is
850      set to "false".  Frequency response commands now perform automatic
851      scaling unless model property "scaled" is set to "true".
852
853
854===============================================================================
855control-2.0.2   Release Date: 2011-03-18   Release Manager: Lukas Reichlin
856===============================================================================
857
858** lsim
859   -- Fixed a logical error that refused valid initial state vectors.  It was
860      due to a thinko introduced with the changes in control-2.0.1.
861      (Thanks to Rob Frohne)
862
863
864===============================================================================
865control-2.0.1   Release Date: 2011-03-06   Release Manager: Lukas Reichlin
866===============================================================================
867
868** lsim
869   -- Support time vectors not starting at zero. (Thanks to Rob Frohne)
870   -- Improved help text.
871
872** zero
873   -- The gain of descriptor state-space models is now computed correctly.
874      (fingers crossed)
875
876
877===============================================================================
878control-2.0.0   Release Date: 2011-02-08   Release Manager: Lukas Reichlin
879===============================================================================
880
881** First official release.
882
883
884===============================================================================
885