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