File python-control.changes of Package python-control
-------------------------------------------------------------------
Wed Jul 23 09:41:44 UTC 2025 - Ben Greiner <code@bnavigator.de>
- Update to 0.10.2
* 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
from any (MIMO) LTI object now acts element-wise (same as
ndarray’s). This fixes a bug where multiplying a MIMO LTI
system by a constant was multiplying by a matrix filled with
the constant rather than a diagonal matrix (scaled identity).
* Fixed a bug where specifying an FRD system with fewer than 4
frequency points was generating an error because the default
settings try to set up a smooth (interpolating) response and
the default degree of the fit was 3.
* Fixed some bugs where computing poles and zeros of transfer
functions could generate spurious error messages about unsafe
casting of complex numbers to real numbers.
* TimeResponseData.to_pandas: multi-trace data (e.g., the output
from a MIMO step response) was not being processed correctly.
A new column ‘trace’ is now generated for multi-trace
responses.
* Fixed a bug where where some arguments to nyquist_plot were
not being processed correctly and generated errors about
unrecognized keywords.
* Updated ctrb and obsv to handle 1D B or C matrix correctly.
* bode_plot: Fixed missing plot title when display_margin
keyword was used.
* singular_values_plot: color cycling was not working correctly
when a list of systems or responses was provided.
* nyquist_plot: The lines parameter of the ControlPlot object
now matches the documentation. A 2D array is returned with the
first index corresponding to the response (system) index and
the second index corresponding to the segment type (primary,
mirror x unscaled, scaled).
* Fix some internal bugs that cropped up when using NumPy 2.3.1
but were latent prior to that.
## Improvements
* User documentation is now divided into a User Guide that
provides a description of the main functionality of the
python-control package, along with a Reference Manual
describing classes, functions, and parameters in more detail.
* Signal responses and I/O subsystem specifications can now use
signal names in addition to indices to get the desired inputs,
outputs, and states (e.g., response.outputs['y0', 'y1']). This
is implemented via a new NamedSignal object, which generalizes
numpy.ndarray.
* find_operating_point (legacy find_eqpt): accepts new
parameters root_method and root_kwargs to set the root finding
algorithm that is used.
* root_locus_map now correctly handles the degenerate case of
being passed a single gain.
* The PoleZeroData object now takes a sort_loci parameter when
it is created, with a default value of True. This is useful if
you create a PoleZeroData object by hand (e.g., for producing
stability diagrams).
* Factory functions for I/O system creation are now consistent
in terms of copying signal/system names, overriding
system/signal names, and converting between classes.
* The tf factory function to allow a 2D list of SISO transfer
functions to be given as a means of creating a MIMO transfer
function (use the new combine_tf function).
* The nlsys factory function can now create a NonlinearIOSystem
representation of a StateSpace system (passed as the first
argument to nlsys).
* LTI systems now have member functions for computing the
various time responses and generating frequency domain plots.
See LTI.to_ss, LTI.to_tf, LTI.bode_plot, LTI.nyquist_plot,
LTI.nichols_plot and LTI.forced_response,
LTI.impulse_response, LTI.initial_response, LTI.step_response.
* String representations of I/O systems (accessed via repr,
print, and str) have been updated to create a more consistent
form and provide more useful information. See Displaying LTI
System Information for more information.
* Binary operations between MIMO and SISO functions are now
supported, with the SISO system being converted to a MIMO
system as if it were a scalar.
* nyquist_response: generates an error if you force the system
to evaluate the dynamics at a pole.
* phase_crossover_frequencies: turned off spurious warning
messages.
* ss2tf: added new method=scipy capability, allowing ss2tf to
work on MIMO systems even if Slycot is not present.
* flatsys.solve_flat_optimal (legacy flatsys.solve_flat_ocp):
allows scalar time vector.
* Improved checking of matrix shapes and better error messages
in state space factory functions and other operations where
matrices are passed as arguments.
* FrequencyResponseData: use complex to access the (squeeze
processed) complex frequency response (instead of the legacy
response property) and ~FrequencyResponseData.frdata to access
the 3D frequency response data array (instead of the legacy
fresp attribute).
* Time response and optimization function keywords have been
regularized to allow consistent use of keywords across related
functions:
- Parameters specifying the inputs, outputs, and states are
referred to as inputs, outputs, and states consistently
throughout the functions.
- Variables associated with inputs, outputs, states and time
use those words plus an appropriate modifier: initial_state,
final_output, input_indices, etc.
- Aliases are used both to maintain backward compatibility and
to allow shorthand descriptions: e.g., U, Y, X0. Short form
aliases are documented in docstrings by listing the
parameter as long_form (or sf) : type.
- Existing legacy keywords are allowed and generate a
PendingDeprecationWarning. Specifying a parameter value in
two different ways (e.g., via long form and an alias)
generates a TypeError.
* phase_plane_plot: makes use of the matplotlib streamplot
function to provide better default phase plane diagrams.
* root_locus_plot: added by the ability to recompute the root
locus when zooming in on portions of the root locus diagram.
* nyquist_plot: updated the rescaling algorithm to use a more
gradual change in the magnitude of the Nyquist curve. The
blend_fraction parameter can be used to start the rescaling
prior to reaching max_curve_magnitude, giving less confusing
plots. Some default parameter values have been adjusted to
improve Nyquist plots.
## Deprecations
* The following functions have been newly deprecated in this
release and generate a warning message when used:
* FrequencyResponseData.response: use
FrequencyResponseData.complex to return the complex value of
the frequency response.
* FrequencyResponseData.fresp: use FrequencyResponseData.frdata
to access the raw 3D frequency response data array.
* The listed items are slated to be removed in future releases
(usually the next major or minor version update).
-------------------------------------------------------------------
Sun Sep 29 13:27:46 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Skip two more flaky precision tests
-------------------------------------------------------------------
Wed Aug 28 15:30:32 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Update to 0.10.1
* 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
* Time response plot improvements by @murrayrm in #1018
* Fix impuse response, input data only contains one input[0]==1
in each trace by @KybernetikJo in #1023
* Small improvements to nlsys, bdalg by @murrayrm in #1019
* Fix step_info settling time calculation by @murrayrm in #1029
* Update timeplot.py by @murrayrm in #1030
* Move ctrlplot code prior to upcoming PR by @murrayrm in #1033
* Add pyqt dependency for QtAgg testing by @murrayrm in #1035
* Improve markov function, add mimo support, change api to
TimeResponseData by @KybernetikJo in #1022
* Implement ERA, change api to TimeResponseData by @KybernetikJo
in #1024
* Change function names in modelsimp, add aliases by
@KybernetikJo in #1028
* Update OS/BLAS test matrix workflow by @murrayrm in #1036
* Control plot refactoring for consistent functionality by
@murrayrm in #1034
* CDS 110 and CDS 112 Jupyter notebooks by @murrayrm in #1037
* Documentation updates and testing by @murrayrm in #1038
* Update shared axes processing in plot_time_response by
@murrayrm in #1040
* Update macos gfortran version by @murrayrm in #1041
* Small user documentation fixes by @murrayrm in #1042
- Drop control-pr994-numpy2.patch
-------------------------------------------------------------------
Wed Aug 14 15:13:55 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to modern python on sle15
-------------------------------------------------------------------
Mon Apr 29 06:41:41 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Skip a flaky plot test
-------------------------------------------------------------------
Sat Apr 20 15:20:30 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Add control-pr994-numpy2.patch
gh#python-control/python-control#994
-------------------------------------------------------------------
Fri Apr 5 14:22:32 UTC 2024 - Ben Greiner <code@bnavigator.de>
- 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
* Fix typos in pzmap.py by @matejkarasek in #962
* Fix examples to work with SciPy 1.12 by @bnavigator in #965
* Fix config test for missing old key warning by @bnavigator in
#972
* Implementation of system norms by @henriks76 in #971, #976
* Updated gram() to support discrete-time systems by @billtubbs
in #969
* Update unit test infrastructure by @murrayrm in #981, #986
* Remove external/ directory by @murrayrm in #983
* Reimplementation of 2D phase plots by @murrayrm in #980
* Update readthedocs to Python 3.12 by @murrayrm in #985
* Fix warning messages in tests; update rlocus/pzmap limits by
@murrayrm in #984
* Allow passing and saving of params in time responses by
@murrayrm in #982
- Drop python-control-pr961-py312.patch
-------------------------------------------------------------------
Sun Feb 4 10:46:16 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Add python-control-pr961-py312.patch for python 312 support
gh#python-control/python-control#961
- Use python-xdist: The tests grew over time and we have 4 flavors
at the moment
-------------------------------------------------------------------
Mon Jan 29 08:42:53 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Use PyQt5 for tests with matplotlib-qt5 (Avoid choice with
unsupported pyside6)
-------------------------------------------------------------------
Sun Jun 11 15:06:25 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 0.9.4
* 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
in #905
* fix up some warning messages due to converted systems by
@murrayrm in #907
* fix bdschur (see issue #911) by @murrayrm in #912
-------------------------------------------------------------------
Thu Jan 26 09:40:27 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Avoid i586 segfaults with Qt5/Matplotlib:
* Remove i586 malloc workarounds for memory allocation
* Don't test balanced model reduction on 32-bit
-------------------------------------------------------------------
Sat Dec 31 19:48:37 UTC 2022 - Ben Greiner <code@bnavigator.de>
- 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
when nstate == 0 by @hyumo in #774
* Update MANIFEST.in by @bnavigator in #779
* Improve compatibility of state space representation using LaTeX
by @gonmolina in #780
* Fix interconnect type conversion bug for StateSpace systems by
@murrayrm in #788
* fix _isstatic() to use nstates==0 by @murrayrm in #790
* fix error when an IOSystem is combined with a TransferFunction
system by @sawyerbfuller in #793
* check for and fix mutable keyword defaults by @murrayrm in #794
* Fixes for bugs found by pylint by @roryyorke in #795
* Support Python 3.11 and drop Python 3.7 by @bnavigator in #796
* Fix find_eqpt when y0 is None by @adswid in #798
* Preserve signal names upon conversion to discrete-time by
@sawyerbfuller in #797
* Update benchmarks to help with optimal control tuning by
@murrayrm in #800
* Update optimal.rst by @htadashi in #802
* Add collocation method for optimal control problems by
@murrayrm in #799
* Update README.rst by @sawyerbfuller in #810
* Update docstring for impulse for discrete sys by @sawyerbfuller
in #812
* Enable scalar division of state-space objects by @roryyorke in
#811
* fix gain handling in rlocus and sisotool by @sawyerbfuller in
#809
* Removed epsilon perturbation value in solve_passivity_LMI. Fix
associated unit test. by @Mark-Yeatman in #814
* docstring improvements by @sawyerbfuller in #804
* add zpk() function by @murrayrm in #816
* Fix readthedocs to use pip-based install by @murrayrm in #817
* Relax comparison of floats in tests by @bnavigator in #818
* Add test matrix against operating environments by @murrayrm in
#821
* Update find_eqpts to handle discrete time systems by @murrayrm
in #824
* Small fixes and tweaks by @murrayrm in #826
* update docs to use use numpydoc + linkcode by @murrayrm in #828
* Add gain scheduling to create_statefbk_iosystem() by @murrayrm
in #827
* continuous time system support for create_estimator_iosystem by
@murrayrm in #829
* Small docstring fixes for release by @murrayrm in #832
- Drop control-pr777-mpl36.patch, upstreamed
-------------------------------------------------------------------
Fri Dec 23 20:09:25 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Add control-pr777-mpl36.patch
gh#python-control/python-control#777
-------------------------------------------------------------------
Sun May 29 10:07:56 UTC 2022 - Ben Greiner <code@bnavigator.de>
- 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
-------------------------------------------------------------------
Sat Feb 12 18:42:24 UTC 2022 - Ben Greiner <code@bnavigator.de>
- skip segfaulting test on i586
-------------------------------------------------------------------
Thu Feb 10 10:27:34 UTC 2022 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Backport patch to fix build on aarch64:
* 688.patch
-------------------------------------------------------------------
Fri Dec 31 19:31:35 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Require Python >= 3.7: Disable Leap backport build. It keeps
failing due to unresolvable PyVirtualDisplay. We officially do
not support Python 3.6 in upstream anymore.
-------------------------------------------------------------------
Fri Dec 31 18:27:11 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to version 0.9.1
* 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)
* Fix warnings generated by sisotool (#608 by roryyorke)
* Discrete time LaTeX repr of StateSpace systems (#609 by
bnavigator)
* Updated rlocus.py to remove warning by sisotool() with
rlocus_grid=True (#616 by nirjhar-das)
* Refine automatic contour determination in Nyquist plot (#620 by
bnavigator)
* Fix damp method for discrete time systems with a negative
real-valued pole (#647 by vincentchoqueuse)
* Plot Nyquist frequency correctly in Bode plot in Hz (#651 by
murrayrm)
* Return frequency response for 0 and 1-state systems directly
(#663 by bnavigator)
* Fixed prewarp not working in c2d and sample_system, margin
docstring improvements (#669 by sawyerbfuller)
* Improved lqe calling functionality (#673 by murrayrm)
* Vectorize FRD feedback function (#680 by bnavigator)
* BUG: extrapolation in ufun throwing errors (#682 by
miroslavfikar)
* Allow use of SciPy for LQR, LQE (#683 by murrayrm)
* Improve forced_response and its documentation (#588 by
bnavigator)
* Add documentation about use of axis('equal') in pzmap, rlocus
(#685 by murrayrm)
**Additional changes:**
* Replace Travis badge with GHA workflows, add PyPI and conda
badges (#584 by bnavigator)
* Don't install toplevel benchmarks package (#585 by bnavigator)
* LTI squeeze: ndarray.ndim == 0 is also a scalar (#595 by
bnavigator)
* xfail testmarkovResults until #588 is merged (#601 by
bnavigator)
* Remove from readme.rst that you need a fortran compiler (#602
by sawyerbfuller)
* Remove statement that slycot only on linux (#603 by
sawyerbfuller)
* Allow float precision in result assertions (#615 by bnavigator)
* Improved unit test coverage for root_locus: dtime and sisotool
(#617 by bnavigator)
* Add DefaultDict for deprecation handling (#619 by bnavigator)
* Documentation updates (#633 by murrayrm)
* Various docstring edits + fixed plot legends on cruise control
example (#643 by billtubbs)
* Ease test tolerance on timeseries (#659 by bnavigator)
* Use conda-forge for numpy (CI fix) (#667 by bnavigator)
* Fix doc escape (#674 by bnavigator)
* Remove duplicate Slycot error handling, require Slycot >=0.4
(#678 by bnavigator)
-------------------------------------------------------------------
Sun Mar 21 10:13:42 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to version 0.9.0
* 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)
* I/O system improvements:
* linearize() retains signal names plus new interconnect()
function (#497 by murrayrm)
* Add summing junction + implicit signal interconnection (#517
by murrayrm)
* Implementation of initial_phase, wrap_phase keywords for
bode_plot (#494 by murrayrm)
* Added IPython LaTeX representation method for StateSpace
objects (#450 by roryyorke)
* New dynamics() and output() methods in StateSpace (#566 by
sawyerbfuller)
* FRD systems can now be created from a discrete time LTI system
(#568 by bnavigator)
* Cost and constraints are now allowed for
flatsys.point_to_point() (#569 by murrayrm)
------------------------------------------------------------------
Thu Jan 21 23:09:04 UTC 2021 - Benjamin Greiner <code@bnavigator.de>
- Skip python36 because of scipy 1.6.0
-------------------------------------------------------------------
Mon Dec 28 20:31:00 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- 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
-------------------------------------------------------------------
Sun Oct 11 18:39:38 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Skip a test family on Leap because of segfaults in numpy
-------------------------------------------------------------------
Thu Jul 23 09:56:18 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- moved Pillow requirement to matplotlib package
-------------------------------------------------------------------
Mon Jul 20 17:48:34 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- explicitely require Pillow for tests because of matplotlib
-------------------------------------------------------------------
Thu Jul 9 18:56:06 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- add pr430-numpy119delete.patch to fix test failures with new numpy
-------------------------------------------------------------------
Tue Jun 30 12:21:40 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- remove ppc workaround
- remove _service file
-------------------------------------------------------------------
Fri Jun 26 15:29:50 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- move to pytest, ignore deprecation warnings for scipy functions
and matrix type during tests gh#python-control/python-control#423
- fix invalid test discovery by pr380-fix-pytest-discovery.patch
gh#python-control/python-control#380
- skip mixsyn test on PowerPC boo#1172555
-------------------------------------------------------------------
Sat Jan 18 01:18:39 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- 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-tolerance.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
-------------------------------------------------------------------
Wed Nov 27 18:13:20 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
- python-control-pr345.patch: PR#345 to fix fails on some
architectures because of machine precision
-------------------------------------------------------------------
Mon Nov 4 13:25:48 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
- fix segfault: run only those tests that require xvfb with xvfb-run
- fix i586 build fail: add upstream PR#317 to replace float128
-------------------------------------------------------------------
Thu Jun 27 13:12:31 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
- remove python-devel from BuildRequires
-------------------------------------------------------------------
Tue Jun 25 15:41:59 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
- add slycot to BuildRequires for tests
-------------------------------------------------------------------
Wed Jun 19 12:48:24 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
- switch to xvfb-run
-------------------------------------------------------------------
Wed Jun 19 11:05:31 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
make v0.8.2 spec test suite compliant
- specify Qt5Agg as Matplotlib backend
- add X11 to build system so that Qt5 tests pass
- reorganize spec file
-------------------------------------------------------------------
Mon May 13 19:16:19 UTC 2019 - Benjamin Greiner <code@bnavigator.de>
update to version 0.8.2
-