1
2Summary of important user-visible changes for releases of the control package
3
4===============================================================================
5control-3.3.1      Release Date: 2021-07-05
6===============================================================================
7
8 ** Fixed time response for first order systems
9
10===============================================================================
11control-3.3.0      Release Date: 2021-06-19
12===============================================================================
13
14 ** new function rlocusx providing gain, damping and frequency for
15    selected poles together with the possibility to generate open
16    loop bode plots and simulations of the closed loop for selected
17    closed loop poles
18
19 ** Fixed several issues in bode, c2d, lsim and step
20
21 ** Fixed issues in legends of time and frequency responses
22    when requested for multiple systems
23
24 ** Fixed usage of deprecated LAPACK routines
25
26 ** Added discretization method 'foh' to c2d
27
28 ** Added tests for c2d with 'foh' and to dlyapchol
29
30 ** Fixed transposing a tfploy
31
32===============================================================================
33control-3.2.0      Release Date: 2019-04-01
34===============================================================================
35
36 ** new function sgrid
37
38 ** New function: ss2ss
39
40 ** Fixed many warnings
41
42 ** added demos to rlocus, pzmap, bode, nichols, nyquist,
43    impulse, lsim, ramp and step
44
45 ** improved pzmap to plot with only zeros
46
47===============================================================================
48control-3.1.0      Release Date: 2018-03-11
49===============================================================================
50
51 ** New function: damp
52
53 ** Changed nelem to numel and length to numel to remove the warnings
54    during installation.
55
56 ** The Impulse section has been rewritten, and a new file -- imp_invar.m --
57    added. The old system tried to use the "zoh" to get an impulse response
58    but that is impossible.
59
60 ** The new function "imp_invar.m" converts a Laplace tranfer function
61    to a discrete tranfer function.
62
63 ** New functions: acker, dsort, esort.
64
65 ** Function lsim now plots inputs as well.
66
67 ** Class 'ss' should now work with complex inputs.
68
69 ** Extend nyquist plots.
70
71 ** Fixed warnings with newer Octave versions.
72
73===============================================================================
74control-3.0.0   Release Date: 2015-10-30   Release Manager: Lukas Reichlin
75===============================================================================
76
77 ** Substantial parts of the most vital internals have been rewritten
78    and streamlined in order to improve compatibility and reliability.
79    These changes to the codebase also result in better error handling
80    in many situations and facilitate the integration of new features
81    in upcoming releases.
82
83 ** While many issues and pitfalls existing in previous releases of the
84    control package have been fixed, the author isn't aware (at release date)
85    of any regressions one might expect from a x.0.0 release.
86    Note that the absence of regressions doesn't mean the absence of bugs.
87    Especially it doesn't mean that *all* bugs from control-2.8.5 have been
88    fixed.  Also note that to err is human, and software is written by humans.
89    Therefore, any larger piece of software is likely to contain bugs.
90    But the author is confident that he squashed considerably more bugs
91    than he introduced in this release.  So if you waver between updating now
92    and waiting for control-3.0.x, the author's suggestion is definitely
93    to update now.
94
95 ** As always, your feedback is highly appreciated!  Even if you think that
96    the control package is "fubar".  If you just follow the German saying
97    "gesehen, gelacht, geloescht" - which roughly translates into
98    "seen it, laughed at it, deleted it" - there's only little chance for
99    improvement!  So if you think you've found a bug, please take the time
100    to report your findings on Octave's bugtracker:
101
102      <http://savannah.gnu.org/bugs/?group=octave>
103
104    See the link below for more information about how to report problems:
105
106      <http://octave.org/bugs.html>
107
108 ** Your help is welcome!  There are many ways you can help the project
109    fix the remaining problems, complete the documentation, and improve
110    the overall user experience for both novices and experts alike.
111    The author is aware of the fact that the documentation still leaves
112    a lot to be desired.  As it is often the case with developers, writing
113    documentation and tutorials is neither his key skill nor his favorite
114    occupation.  After all, the author wrote the control package due to his
115    personal interest in the field of control systems and not to make a
116    living out of it.  The developer's profits are the insights and experience
117    he obtained from his work.  Consequently, the control project doesn't ask
118    you for money.  In case you like the control package and should feel like
119    donating, then consider donating to GNU Octave or the Free Software
120    Foundation according to the information on their websites.  Thank you!
121
122 ** LTI models in general
123
124    Improved handling of key-value pairs in all constructors for LTI models:
125
126      tf (matrix, 'key1', val1, ...),  ss (a, b, 'key1', val1, ...)
127
128    Support inheritance of LTI properties in many variations:
129
130      tf (num, den, ltisys),  ss (a, b, ltisys, 'key1', val1, ...)
131      sys.lti = ltisys,  zpk (z, p, k, Ts, 'var', 'q', 'lti', ltisys, ...)
132
133    Accept [] as an alias for unspecified sampling time (Ts = -1):
134
135      filt ('q^-1', []),  ss (a, b, c, d, []),  sys.Ts = []
136
137    Automatic vector expansion for input and output names:
138
139      sys.inname = 'str',  sys.outname = ''  (for MIMO systems)
140
141
142 ** dss
143
144    Fixed a long-standing but undiscovered bug where 'dss (sys)' overwrites
145    sys.e with an identity matrix even if sys.e was not empty.  D'oh!
146
147 ** ss
148
149    Support for the following special cases has been added:
150
151      ss (sys, 'explicit')   % convert descriptor system to regular one
152      ss (sys, 'minimal')    % equivalent to  minreal (ss (sys))
153
154 ** tf, zpk, filt
155
156    Restrict transfer function variable to the candidates 's', 'p' for
157    continuous-time and 'z', 'q', 'z^-1', 'q^-1' for discrete-time models.
158
159      s = tf ('s'),  z = tf ('z^-1', Ts),  tf (num, den, Ts, 'var', 'q')
160
161    Previous control versions supported any string, which could be quite
162    misleading, see bug #45371.  <http://savannah.gnu.org/bugs/?43586>
163
164 ** bode, bodemag, nichols, nyquist, sigma
165
166    Fixed bug #42495.  <http://savannah.gnu.org/bugs/?42495>
167    It is now possible to specify a frequency vector of length 1, e.g.
168
169      [mag, phase] = bode (sys, 1)
170
171    Furthermore, the functions raise an error or warning if invalid arguments
172    are passed to them.  Previously, invalid arguments were simply ignored,
173    which could be confusing.
174
175 ** step, impulse, initial, ramp
176
177    The time response functions now raise an error or warning if invalid
178    arguments are passed to them.  As it was the case for frequency response
179    functions, they used to simply ignore invalid arguments.
180
181 ** lsim
182
183    Fixed bug #46247.  <http://savannah.gnu.org/bugs/?46247>
184    (Reported by Lutz Mager and Piet Wertelaers)
185
186    Support logical arrays as input signal.  Before, logical arrays were
187    simply ignored without notice, which could lead to unexpected results.
188    Additionally, lsim received the same improvements as the other time and
189    frequency response functions regarding invalid arguments.
190
191 ** pzmap
192
193    Improved argument checks.
194
195 ** augstate
196
197    New function for state-space models.  Adds the state vector to the output
198    vector.
199
200 ** connect
201
202    The function no longer raises an error for name-based interconnections
203    if some systems have common input names and one of these inputs are to
204    be kept.
205
206 ** estim
207
208    Add input/output/state names to the returned system.  Support name-based
209    selection of inputs (arguments 'sensors' and 'known').
210
211 ** sumblk
212
213    Add signal names as input/output groups if argument  n > 1.
214
215 ** minreal
216
217    If state-space models already have a minimal realization, then no state
218    transformations are applied to the returned model.  In other words, if the
219    number of states cannot be reduced (with the chosen tolerance), the model
220    is returned unchanged.  Note that if the user sets the tolerance to the
221    maximum value of 1, every state-space model will be reduced to zero states.
222    There's nothing wrong with that, it's just how numerical computation works.
223
224
225
226A Summary of important user-visible changes for older releases of the control
227package can be found in the file ONEWS.
228