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