Version 0.9.4 Release Notes
Released: date of release
This release adds functions for optimization-based estimation and moving horizon estimation, better handling of system and signal names, as well a number of bug fixes, small enhancements, and updated documentation.
New classes, functions, and methods
The following new classes, functions, and methods have been added in this release:
Added the
optimal.OptimalEstimationProblemclass, theoptimal.compute_oepfunction, and theoptimal.create_mhe_iosystemfunction, which compute the optimal estimate for a (nonlinear) I/O system using an explicit cost function of a fixed window of applied inputs and measured outputs.Added
gaussian_likelyhood_costto create cost function corresponding to Gaussian likelihoods for use in optimal estimation.Added
disturbance_range_constraintto create a range constraint on disturbances.Added
LTI.bandwidthto compute the bandwidth of a linear system.
Bug fixes
The following bugs have been fixed in this release:
Fixed a bug in
interconnectin which the system name was being clobbered internally.Fixed a bug in
bode_plotwhere phase wrapping was not working when there were multiple systems.Fixed a bug in
root_locus_plotin which theaxparameter was not being handled correctly.Fixed a bug in
create_statefbk_iosystemthat didn’t proper handle 1D gain schedules.Fixed a bug in
rootlocus_pid_designerwhere the Bode plot was sometimes blank.Fixed a bug in which signal labels for a
StateSpacesystem were lost when computingforced_response.Fixed a bug in which the
dampcommand was assuming a continuous-time system when printing out pole locations (but the return value was correct).Fixed a bug in which signal names could be lost for state transfer functions when using the
interconnectfunction.Fixed a bug in the block-diagonal schur matrix computation used in
bdschur.
Improvements
The following additional improvements and changes in functionality were implemented in this release:
Added an
add_unusedkeyword parameter tointerconnectthat allows unused inputs or outputs to be added as inputs or outputs of the interconnected system (useful for doing a “partial” interconnection).Added
control_indicesandstate_indicestocreate_statefbk_iosystemto allow partial interconnection (e.g., for inner/outer loop construction).create_mpc_iosystemnow allows system and signal names to be specified via appropriate keywords.TransferFunctionobjects can now be displayed either in polynomial form or in zpk form using thedisplay_formatparameter when creating the system.Allow discrete-time Nyquist plots for discrete-time systems with poles at 0 and 1.
Generate a warning if
prewarp_frequencyis used insample_systemfor a discretization type that doesn’t support it.Converting a system from state space form to transfer function form (and vice versa) now updates the system name to append “$converted”, removing an issue where two systems might have the same name.
Deprecations
The following functions have been newly deprecated in this release and generate a warning message when used:
Changed
typekeyword forcreate_statefbk_iosystemtocontroller_type(‘linear’ or ‘nonlinear’).issys: useisinstance(sys, ct.LTI).
The listed items are slated to be removed in future releases (usually the next major or minor version update).
Removals
The following functions and capabilities have been removed in this release:
function: function that was removed.Other functionality that has been removed.
Code that makes use of the functionality listed above will have to be rewritten to work with this release of the python-control package.
Additional notes
Anything else that doesn’t fit above.