major changes such as a substantial reorganization of the
documentation into a User Guide and Reference Manual, more
consistent and complete docstrings, and support for referencing
signals and subsystems by name as well as by index. Phase plane
plots now use matplotlib’s streamplot for better visuals. New
functions include combine_tf and split_tf for MIMO/SISO
conversion and disk_margins for stability analysis. Additional
improvements include consistent keyword usage, expanded LTI
system methods for plotting and responses, better error
messages, and legacy aliases to maintain backward
compatibility.
* This version of python-control requires Python 3.10 or higher,
NumPy 1.23 or higher (2.x recommended), and SciPy 1.8 or
higher.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=67
* This release includes numerous bug fixes and improvements, with major changes such as a substantial reorganization of the documentation into a User Guide and Reference Manual, more consistent and complete docstrings, and support for referencing signals and subsystems by name as well as by index. Phase plane plots now use matplotlib’s streamplot for better visuals. New functions include combine_tf and split_tf for MIMO/SISO conversion and disk_margins for stability analysis. Additional improvements include consistent keyword usage, expanded LTI system methods for plotting and responses, better error messages, and legacy aliases to maintain backward compatibility.
* This version of python-control requires Python 3.10 or higher, NumPy 1.23 or higher (2.x recommended), and SciPy 1.8 or higher.
## New classes, functions, and methods
* find_operating_point: this function replaces (with a legacy
alias) the find_eqpt function and now returns an
OperatingPoint object containing the information about the
operating point.
* combine_tf and split_tf: these two new functions allow you to
create an MIMO transfer function from SISO transfer functions
and vice versa.
* create_statefbk_iosystem now allows the creation of state
feedback controllers using a “reference gain” pattern (u =
k_\text{f}\, r - K x) in addition to the default “trajectory
generation” pattern (u = u_\text{d} - K(x - x_\text{d})).
* disk_margins: compute disk-based stability margins for SISO
and MIMO systems.
* model_reduction: allow specific states, inputs, or outputs to
be either eliminated or retained.
* place_acker: renamed version of acker (which is still
accessible via an alias).
## Bug fixes
* phase_plane_plot: fixed a bug in which the return value was
returning a sublist of lines rather than just a list of lines
in cplt.lines.
* Processing of the timebase parameter (dt) for I/O systems is
now handled uniformly across all I/O system factory functions.
This affected the zpk function, which was defaulting to a
discrete time system to have timebase None instead of 0.
* Multiplying (*), adding (+), or subtracting (-) a constant
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=66
* Fix docstring for root_locus_map by @bnavigator in #988
* Update documentation, processing of root_locus kvect keyword by
@murrayrm in #989
* Fix typo in ICSystem updfcn, outfcn: update_params ->
_update_params by @murrayrm in #990
* Support NumPy 2 by @bnavigator in #994
* Set response I/O labels from system for frequency response by
@murrayrm in #1000
* Change klist to gains kwarg for matlab.wrappers.rlocus by
@gdmcbain in #999
* Fix typo in xferfcn.py by @ansrandrieu in #1005
* Add place_varga in API doc by @pierre-haessig in #1004
* Process legacy rlocus keyword k->gains by @gdmcbain in #1003
* Fix numpydoc for place_varga by @bnavigator in #1007
* Improve acker pole placement doc by @pierre-haessig in #1006
* Fix nyquist plotting from FrequencyResponseData by @wueestry in
#996
* Better I/O systems support for phase plots by @murrayrm in
#1001
* Updates for NumPy 2.0 compatibility in CI tests by @murrayrm in
#1013
* Add slicing access for state-space models with tests by
@guptavaibhav0 in #1012
* Frequency plot improvements by @murrayrm in #1011
* Add extra information to nyquist plots by @wueestry in #997
* Fix bug in root_locus_plot identified by @NikolaiVChr in issue
#1016 by @murrayrm in #1021
* Fix parallel input or output interconnect bug (issue #1015) by
@murrayrm in #1017
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=58
* Small docstring fixes for release by @murrayrm in #832
- Update to version 0.9.1
- Update to version 0.8.4
* Improved default time vector for time response
* New use_legacy_defaults function to allow compatibility
* Allow creation of non-proper transfer functions
(bnavigator, rlegnain)
* Added ability to set arrow head length and width option
* Added ability to 'prewarp' the conversion of continuous to
* Added rlocus capability for discrete-time systems
* Updated pzmap grid to be compatible with matplotlib updates
* Implement loadable string representation (repr) for tf, ss,
* Fixed margin computation for discrete time systems
* Fixed InterconnectedSystem naming bugs, improved
* Fixed LinearIOSystem output bug in output function
* Fixed bug in forced_response that overrode squeeze
* Use rad/sec for Bode plot in MATLAB bode (was erroneously
* Removed deprecated scipy calls and updated to latest numpy
* Updated unit tests + switch to pytest (bnavigator,
* Return type for eigenvalues in lqe changed to 1D array
- Skip a test family on Leap because of segfaults in numpy
- moved Pillow requirement to matplotlib package
- add pr430-numpy119delete.patch to fix test failures with new numpy
- remove ppc workaround
and matrix type during tests gh#python-control/python-control#423
- skip mixsyn test on PowerPC boo#1172555
duplicated array test
- remove python-devel from BuildRequires
- add slycot to BuildRequires for tests
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=56
- Update to 0.10.0
* Multivariable interconnect functionality by @murrayrm in #881
* Remove NumPy matrix class by @murrayrm in #913
* I/O system class restructuring by @murrayrm in #916
* Documentation fixes by @KybernetikJo in #919, #921, #922, #923
* Add two MRAC siso examples by @KybernetikJo in #914
* Time response plots by @murrayrm in #920
* Print a connection table for interconnected systems by
@sawyerbfuller in #925
* Update frequency response plots to use _response/_plot pattern
by @murrayrm in #924
* create_statefbk_iosystem and optimal control enhancements by
@murrayrm in #930
* Add unit test illustrating issue #935 + add method keyword for
tf2ss by @murrayrm in #937
* Vectorize optimal control cost calculation by @urpok23 in #940
* Improved speed of ctrb and obsv functions by @Jpickard1 in #941
* Fix sphinx bug (erroneous use of class template) by @murrayrm
in #943
* Fix bug in matched transformation + address other issues in
#950 by @murrayrm in #951
* Fix typo in header of Hinf example by @jrforbes in #946
* Fix typo in stochresp.py by @alex-damjanovic in #945
* Fix TimeResponseData.to_pandas() to handle zero state case by
@murrayrm in #958
* Update pole/zero and root locus plots to use _map/_plot pattern
by @murrayrm in #953
* Fix CI warnings by @murrayrm in #955
* Support Python 3.12, bump minimum support according to SPEC 0
by @bnavigator in #961
OBS-URL: https://build.opensuse.org/request/show/1165670
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=49
* Sisotool: Fix Matplotlib deprecation of axis share handling by
@bnavigator in #834
* Fix Interconnect name clobbering by @henklaak in #857
* Solve #862 and #864: bode_plot phase wrapping incorrect for
multiple systems by @henklaak in #863
* Fix root_locus() handling of ax parameter by @henklaak in #871
* Small fixes based on Caltech CDS 112 course by @murrayrm in
#849
* Feature print zpk by @henklaak in #869
* Feature enable doctest by @henklaak in #868
* Optimization-based and moving horizon estimation by @murrayrm
in #877
* new examples for Simulink-like interconnection of digital and
nonlinear systems by @sawyerbfuller in #882
* fix blank bode plot in rootlocus_pid_designer by @sawyerbfuller
in #883
* bandwidth feature by @SCLiao47 in #889
* update nyquist_plot for DT transfer functions with poles at 0
and 1 by @sawyerbfuller in #885
* Add missing labels when returning TimeResponseData by
@joaoantoniocardoso in #892
* fix damp command natural frequency printout for discrete poles
on real axis by @sawyerbfuller in #894
* Add H2 and Hinf synthesis examples by @jrforbes in #895
* warn if prewarp-frequency is not used by @sawyerbfuller in #900
* make _convert_to_statespace properly pass signal and system
names by @sawyerbfuller in #884
* Change name of converted LinearIOSystems by @murrayrm in #903
* add/cleanup documentation on simulation functions by @murrayrm
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=42
- Update to 0.9.3.post2
* Improvements in optimal and flatsys modules, updated passivity
module, gain scheduling support, bug fixes
* Handle t_eval for static systems in input_output_response by
@murrayrm in #743
* add GitHub URL for PyPi by @andriyor in #708
* Remove Deprecated API calls to Pytest, SciPy <1.3, Python 2 by
@bnavigator in #745
* Add passivity module, ispassive function, and passivity_test.
Introduces optional dependency cvxopt. by @Mark-Yeatman in #739
* Slycot source uses setuptools_scm now by @bnavigator in #751
* Passivity indices and support for discrete time systems. by
@Mark-Yeatman in #750
* Switch CI to mambaforge and conda-forge channel by @bnavigator
in #757
* Fix timebase bug in InterconnectedSystem (issue #754) by
@murrayrm in #755
* fix issue with slycot balred change in state by @bnavigator in
#762
* Build system and test suite update by @bnavigator in #759
* fix control.matlab.lsim bug for discrete time system by
@murrayrm in #765
* Add B-splines and solve_flat_ocp to flatsys by @murrayrm in
#763
* CI: switch slycot and cvxopt installation order by @murrayrm in
#769
* Fixed a couple of typos in documentation by @fredrhen in #775
* Allow new matplotlib 3.6 error message in kwargs tests by
@bnavigator in #777
* Move sys._update_params(params) before TimeResponseData return
OBS-URL: https://build.opensuse.org/request/show/1045948
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=38
- Update to 0.9.2
* Improvements in I/O systems, stochastic systems,
optimization-based control, Nyquist plots
* Round to nearest integer decade for default omega vector by
@bnavigator in #688
* Fix in documentation of ss2tf by @miroslavfikar in #695
* Interpret str-type args to interconnect as non-sequence by
@roryyorke in #698
* Fixes to various optimization-based control functions by
@murrayrm in #709
* I/O system enhancements by @murrayrm in #710
* Optimal control enhancements by @murrayrm in #712
* Keyword argument checking by @murrayrm in #713
* Stochastic systems additions by @murrayrm in #714
* Updated system class functionality by @murrayrm in #721
* Bug fix and improvements to Nyquist plots by @murrayrm in #722
* Add linform to compute linear system L-infinity norm by
@roryyorke in #729
* Improvements to Nichols chart plotting by @roryyorke in #723
* Add envs to gitignore by @s35t in #731
* Fix README.rst for twine by @murrayrm in #738
- Drop 688.patch fixed upstream
OBS-URL: https://build.opensuse.org/request/show/979680
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=34
* Version 0.9.1 is a minor release that includes new
functionality for discrete time systems (dlqr, dlqe, drss),
flat systems (optimization and constraints), a new time
response data class, and many individual improvements and bug
fixes.
**New features:**
* Add optimization to flat systems trajectory generation (#569 by
murrayrm)
* Return a discrete time system with drss() (#589 by bnavigator)
* A first implementation of the singular value plot (#593 by
forgi86)
* Include InfValue into settling min/max calculation for
step_info (#600 by bnavigator)
* New time response data class (#649 by murrayrm)
* Check for unused subsystem signals in InterconnectedSystem
(#652 by roryyorke)
* New PID design function built on sisotool (#662 by
sawyerbfuller)
* Modify discrete-time contour for Nyquist plots to indent around
poles (#668 by sawyerbfuller)
* Additional I/O system type conversions (#672 by murrayrm)
* Remove Python 2.7 support and leverage @ operator (#679 by
bnavigator)
* Discrete time LQR and LQE (#670 by sawyerbfuller, murrayrm)
**Improvements, bug fixes:**
* Change step_info undershoot percentage calculation (#590 by
juanodecc)
* IPython LaTeX output only generated for small systems (#607 by
roryyorke)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=30
* Version 0.9.0 of the Python Control Toolbox
(python-control) contains a number of enhanced features
and changes to functions. Some of these changes may
require modifications to existing user code and, in
addition, some default settings have changed that may
affect the appearance of plots or operation of certain
functions.
* Significant new additions including improvements in the
I/O systems modules that allow automatic interconnection
of signals having the same name (via the interconnect
function), generation and plotting of describing functions
for closed loop systems with static nonlinearities, and a
new optimal control module that allows basic computation
of optimal controls (including model predictive
controllers). Some of the changes that may break use code
include the deprecation of the NumPy matrix type (2D NumPy
arrays are used instead), changes in the return value for
Nyquist plots (now returns number of encirclements rather
than the frequency response), switching the default
timebase of systems to be 0 rather than None (no
timebase), and changes in the processing of return values
for time and frequency responses (to make them more
consistent). In many cases, the earlier behavior can be
restored by calling use_legacy_defaults('0.8.4').
New Features:
* Optimal control module, including rudimentary MPC
control (#549 by murrayrm)
* Describing functions plots (#521 by murrayrm)
* MIMO impulse and step response (#514 by murrayrm)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=28
- Update to version 0.8.4
* Improved default time vector for time response
functions (bnavigator, sawyerbfuller)
* New use_legacy_defaults function to allow compatibility
with previous versions (sawyerbfuller)
* Allow creation of non-proper transfer functions
(bnavigator, rlegnain)
* Added ability to set arrow head length and width option
in nyquist_plot (geekonloose)
* Added ability to 'prewarp' the conversion of continuous to
discrete-time systems (sawyerbfuller)
* Added rlocus capability for discrete-time systems
(sawyerbfuller)
* Updated pzmap grid to be compatible with matplotlib updates
(bnavigator)
* Implement loadable string representation (repr) for tf, ss,
and frd (repagh)
* Fixed margin computation for discrete time systems
(bnavigator)
* Fixed indexing bug in bdalg.connect (sawyerbfuller)
* Fixed InterconnectedSystem naming bugs, improved
conventions (samlaf)
* Fixed LinearIOSystem output bug in output function
(francescoseccamonte)
* Fixed bug in forced_response that overrode squeeze
parameter (bnavigator)
* Use rad/sec for Bode plot in MATLAB bode (was erroneously
defaulting to Hertz) (paulvicioso)
* Removed deprecated scipy calls and updated to latest numpy
(bnavigator)
* Multiple documentation updates (bnavigator, laurensvalk)
* New and improved examples for sisotool, pvtol (repagh, samlaf)
* The rlocus function no longer automatically creates a new
figure
* Updated unit tests + switch to pytest (bnavigator,
sawyerbfuller)
* Return type for eigenvalues in lqe changed to 1D array
(matches lqr)
* Small fixes + documentation updates to markov
- Remove forbidden arch macros in noarch package
- Drop patches merged upstream
* pr365-copy-PR-320-for-robust_array_test.patch
* pr366-ease-precision-tolerance.patch
* pr380-fix-pytest-discovery.patch
* pr430-numpy119delete.patch
OBS-URL: https://build.opensuse.org/request/show/859108
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=23
- update to version 0.8.3
- remove patches that were merged upstream:
python-control-fixtestaugw.patch
python-control-pr317.patch
python-control-pr345.patch
- pr365-copy-PR-320-for-robust_array_test.patch
upstream PR#365 the former fixtestaugw patch for the new
duplicated array test
- pr366-ease-precision-tolerenace.patch
upstream PR#366 to pass the checks on more architectures
- remove Python 2 package
- run all tests in xvfb env and prealloc differently for i586
architecture
OBS-URL: https://build.opensuse.org/request/show/765397
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-control?expand=0&rev=8