Return to the 'control' package
Summary of important user-visible changes for releases of the control package =============================================================================== control-3.5.0 Release date 2023-02-04 =============================================================================== ** c2d: allow mimo systems for impulse invariant discretization ** impulse: allow systems with feedthrough ** acker: Checking length of vector with desired poles (bug #62053), compacter and faster code, fix bug resulting from Octave 8 zeros() function (bug #63744) ** fix freq. vector for bode etc. for systems with very small zeros or poles (bug #62186) ** isdt: treat static gain as ct due to missing sampling time ** tf: improve detection of static gain systems (bug #63661) =============================================================================== control-3.4.0 Release Date: 2022-01-16 =============================================================================== ** Fix lyapunov equ. in dlyap if B is non-symmetric (bug #49801) ** Declare tf([1],[1]) as static gain ** Returned num and den of tfdate have same length (bug #43947) ** Fixes for Octave 7.1.0: removed deprecated .+ operator and unsupported plot style =============================================================================== control-3.3.1 Release Date: 2021-07-05 =============================================================================== ** Fixed time response for first order systems =============================================================================== control-3.3.0 Release Date: 2021-06-19 =============================================================================== ** new function rlocusx providing gain, damping and frequency for selected poles together with the possibility to generate open loop bode plots and simulations of the closed loop for selected closed loop poles ** Fixed several issues in bode, c2d, lsim and step ** Fixed issues in legends of time and frequency responses when requested for multiple systems ** Fixed usage of deprecated LAPACK routines ** Added discretization method 'foh' to c2d ** Added tests for c2d with 'foh' and to dlyapchol ** Fixed transposing a tfploy =============================================================================== control-3.2.0 Release Date: 2019-04-01 =============================================================================== ** new function sgrid ** New function: ss2ss ** Fixed many warnings ** added demos to rlocus, pzmap, bode, nichols, nyquist, impulse, lsim, ramp and step ** improved pzmap to plot with only zeros =============================================================================== control-3.1.0 Release Date: 2018-03-11 =============================================================================== ** New function: damp ** Changed nelem to numel and length to numel to remove the warnings during installation. ** The Impulse section has been rewritten, and a new file -- imp_invar.m -- added. The old system tried to use the "zoh" to get an impulse response but that is impossible. ** The new function "imp_invar.m" converts a Laplace tranfer function to a discrete tranfer function. ** New functions: acker, dsort, esort. ** Function lsim now plots inputs as well. ** Class 'ss' should now work with complex inputs. ** Extend nyquist plots. ** Fixed warnings with newer Octave versions. =============================================================================== control-3.0.0 Release Date: 2015-10-30 Release Manager: Lukas Reichlin =============================================================================== ** Substantial parts of the most vital internals have been rewritten and streamlined in order to improve compatibility and reliability. These changes to the codebase also result in better error handling in many situations and facilitate the integration of new features in upcoming releases. ** While many issues and pitfalls existing in previous releases of the control package have been fixed, the author isn't aware (at release date) of any regressions one might expect from a x.0.0 release. Note that the absence of regressions doesn't mean the absence of bugs. Especially it doesn't mean that *all* bugs from control-2.8.5 have been fixed. Also note that to err is human, and software is written by humans. Therefore, any larger piece of software is likely to contain bugs. But the author is confident that he squashed considerably more bugs than he introduced in this release. So if you waver between updating now and waiting for control-3.0.x, the author's suggestion is definitely to update now. ** As always, your feedback is highly appreciated! Even if you think that the control package is "fubar". If you just follow the German saying "gesehen, gelacht, geloescht" - which roughly translates into "seen it, laughed at it, deleted it" - there's only little chance for improvement! So if you think you've found a bug, please take the time to report your findings on Octave's bugtracker: <http://savannah.gnu.org/bugs/?group=octave> See the link below for more information about how to report problems: <http://octave.org/bugs.html> ** Your help is welcome! There are many ways you can help the project fix the remaining problems, complete the documentation, and improve the overall user experience for both novices and experts alike. The author is aware of the fact that the documentation still leaves a lot to be desired. As it is often the case with developers, writing documentation and tutorials is neither his key skill nor his favorite occupation. After all, the author wrote the control package due to his personal interest in the field of control systems and not to make a living out of it. The developer's profits are the insights and experience he obtained from his work. Consequently, the control project doesn't ask you for money. In case you like the control package and should feel like donating, then consider donating to GNU Octave or the Free Software Foundation according to the information on their websites. Thank you! ** LTI models in general Improved handling of key-value pairs in all constructors for LTI models: tf (matrix, 'key1', val1, ...), ss (a, b, 'key1', val1, ...) Support inheritance of LTI properties in many variations: tf (num, den, ltisys), ss (a, b, ltisys, 'key1', val1, ...) sys.lti = ltisys, zpk (z, p, k, Ts, 'var', 'q', 'lti', ltisys, ...) Accept [] as an alias for unspecified sampling time (Ts = -1): filt ('q^-1', []), ss (a, b, c, d, []), sys.Ts = [] Automatic vector expansion for input and output names: sys.inname = 'str', sys.outname = '' (for MIMO systems) ** dss Fixed a long-standing but undiscovered bug where 'dss (sys)' overwrites sys.e with an identity matrix even if sys.e was not empty. D'oh! ** ss Support for the following special cases has been added: ss (sys, 'explicit') % convert descriptor system to regular one ss (sys, 'minimal') % equivalent to minreal (ss (sys)) ** tf, zpk, filt Restrict transfer function variable to the candidates 's', 'p' for continuous-time and 'z', 'q', 'z^-1', 'q^-1' for discrete-time models. s = tf ('s'), z = tf ('z^-1', Ts), tf (num, den, Ts, 'var', 'q') Previous control versions supported any string, which could be quite misleading, see bug #45371. <http://savannah.gnu.org/bugs/?43586> ** bode, bodemag, nichols, nyquist, sigma Fixed bug #42495. <http://savannah.gnu.org/bugs/?42495> It is now possible to specify a frequency vector of length 1, e.g. [mag, phase] = bode (sys, 1) Furthermore, the functions raise an error or warning if invalid arguments are passed to them. Previously, invalid arguments were simply ignored, which could be confusing. ** step, impulse, initial, ramp The time response functions now raise an error or warning if invalid arguments are passed to them. As it was the case for frequency response functions, they used to simply ignore invalid arguments. ** lsim Fixed bug #46247. <http://savannah.gnu.org/bugs/?46247> (Reported by Lutz Mager and Piet Wertelaers) Support logical arrays as input signal. Before, logical arrays were simply ignored without notice, which could lead to unexpected results. Additionally, lsim received the same improvements as the other time and frequency response functions regarding invalid arguments. ** pzmap Improved argument checks. ** augstate New function for state-space models. Adds the state vector to the output vector. ** connect The function no longer raises an error for name-based interconnections if some systems have common input names and one of these inputs are to be kept. ** estim Add input/output/state names to the returned system. Support name-based selection of inputs (arguments 'sensors' and 'known'). ** sumblk Add signal names as input/output groups if argument n > 1. ** minreal If state-space models already have a minimal realization, then no state transformations are applied to the returned model. In other words, if the number of states cannot be reduced (with the chosen tolerance), the model is returned unchanged. Note that if the user sets the tolerance to the maximum value of 1, every state-space model will be reduced to zero states. There's nothing wrong with that, it's just how numerical computation works. A Summary of important user-visible changes for older releases of the control package can be found in the file ONEWS.
Package: control