8000 add (user-oriented) release notes to Reference Manual · python-control/python-control@7270f63 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7270f63

Browse files
committed
add (user-oriented) release notes to Reference Manual
1 parent 370e95b commit 7270f63

15 files changed

+1133
-10
lines changed

doc/conf.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
# -- Project information -----------------------------------------------------
3030

3131
project = u'Python Control Systems Library'
32-
copyright = u'2024, python-control.org'
32+
copyright = u'2025, python-control.org'
3333
author = u'Python Control Developers'
3434

3535
# Version information - read from the source code
@@ -92,8 +92,9 @@
9292
# List of patterns, relative to source directory, that match files and
9393
# directories to ignore when looking for source files.
9494
# This pattern also affects html_static_path and html_extra_path .
95-
exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store',
96-
'*.ipynb_checkpoints']
95+
exclude_patterns = [
96+
u'_build', 'Thumbs.db', '.DS_Store', '*.ipynb_checkpoints',
97+
'releases/template.rst']
9798

9899
# The name of the Pygments (syntax highlighting) style to use.
99100
pygments_style = 'sphinx'

doc/develop.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -239,13 +239,13 @@ Time and frequency responses:
239239
ioresp = ct.input_output_response(sys, timepts, U)
240240
cplt = ct.bode_plot(sys, omega)
241241

242-
* Use `inputs`, `outputs`, `states`, `time` for time response data
243-
attributes. These should be used as parameter names when creating
244-
`TimeResponseData` objects and also as attributes when retrieving
245-
response data (with dimensions dependent on `squeeze` processing).
246-
These are stored internally in non-squeezed form using `u`, `y`,
247-
`x`, and `t`, but the internal data should generally not be accessed
248-
directly. For example::
242+
* Use `inputs`, `outputs`, `states`, :code:`time` for time response
243+
data attributes. These should be used as parameter names when
244+
creating `TimeResponseData` objects and also as attributes when
245+
retrieving response data (with dimensions dependent on `squeeze`
246+
processing). These are stored internally in non-squeezed form using
247+
`u`, `y`, `x`, and `t`, but the internal data should generally not
248+
be accessed directly. For example::
249249

250250
plt.plot(ioresp.time, ioresp.outputs[0])
251251
tresp = ct.TimeResponseData(time, outputs, states, ...) # (internal call)

doc/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ or the GitHub site: https://github.com/python-control/python-control.
6868
config
6969
matlab
7070
develop
71+
releases
7172

7273
***********
7374
Development

doc/iosys.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,10 @@ closed loop systems `clsys`, both as I/O systems. The input to the
668668
controller is the vector of desired states :math:`x_\text{d}`, desired
669669
inputs :math:`u_\text{d}`, and system states :math:`x`.
670670

671+
If an `InputOutputSystem` is passed instead of the gain `K`, the error
672+
e = x - xd is passed to the system and the output is used as the
673+
feedback compensation term.
674+
671675
The above design pattern is referred to as the "trajectory generation"
672676
('trajgen') pattern, since it assumes that the input to the controller is a
673677
feasible trajectory :math:`(x_\text{d}, u_\text{d})`. Alternatively, a

doc/releases.rst

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
*************
2+
Release Notes
3+
*************
4+
5+
This chapter contains a listing of the major releases of the Python
6+
Control Systems Library (python-control) along with a brief summary of
7+
the significant changes in each release.
8+
9+
The information listed here is primarily intended for users. More
10+
detailed notes on each release, including links to individual pull
11+
requests and issues, are available on the `python-control GitHub
12+
release page
13+
<https://github.com/python-control/python-control/releases>`_.
14+
15+
16+
Version 0.10
17+
============
18+
19+
Version 0.10 of the python-control package introduced the
20+
``_response/_plot`` pattern, described in more detail in
21+
:ref:`response-chapter`, in which input/output system responses
22+
generate an object representing the response that can then be used for
23+
plotting (via the ``.plot()`` method) or other uses. Significant
24+
changes were also made to input/output system functionality, including
25+
the ability to index systems and signal using signal labels.
26+
27+
.. toctree::
28+
:maxdepth: 1
29+
30+
releases/0.10.1-notes
31+
releases/0.10.0-notes
32+
33+
34+
Version 0.9
35+
===========
36+
37+
Version 0.9 of the python-control package included significant
38+
upgrades the the `interconnect` functionality to allow automatic
39+
signal interconnetion and the introduction of an :ref:`optimal control
40+
module <optimal-module>` for optimal trajectory generation. In
41+
addition, the default timebase for I/O systems was set to 0 in Version
42+
0.9 (versus None in previous versions).
43+
44+
.. toctree::
45+
:maxdepth: 1
46+
47+
releases/0.9.4-notes
48+
releases/0.9.3-notes
49+
releases/0.9.2-notes
50+
releases/0.9.1-notes
51+
releases/0.9.0-notes
52+
53+
54+
Earlier Versions
55+
================
56+
57+
Summary release notes are included for these collections of early
58+
releases of the python-control package.
59+
60+
.. toctree::
61+
:maxdepth: 1
62+
63+
releases/0.8.x-notes
64+
releases/0.3-7.x-notes

doc/releases/0.10.0-notes.rst

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
.. currentmodule:: control
2+
3+
.. _version-0.10.0:
4+
5+
Version 0.10.0 Release Notes
6+
----------------------------
7+
8+
* Released: 31 March 2024
9+
* `GitHub release page
10+
<https://github.com/python-control/python-control/releases/tag/0.10.0>`_
11+
12+
This release changes the interface for plotting to use a
13+
``_response/_plot`` calling pattern, adds multivariable interconnect
14+
functionality, restructures I/O system classes, and adds the `norm`
15+
(now `system_norm`) function to compute input/output system norms.
16+
Support for the NumPy `~numpy.matrix` class has been removed.
17+
18+
This version of `python-control` requires Python 3.10 and higher.
19+
20+
21+
New classes, functions, and methods
22+
...................................
23+
24+
The following new classes, functions, and methods have been added in
25+
this release:
26+
27+
* `time_response_plot`, `TimeResponseData.plot`: Plot simulation
28+
results for time response functions.
29+
30+
* `InterconnectedSystem.connection_table`: Print out a table of each
31+
signal name, where it comes from (source), and where it goes
32+
(destination), primarily intended for systems that have been
33+
connected implicitly.
34+
35+
* `nyquist_response`, `NyquistResponseData`: Compute the Nyquist curve
36+
and store in an object that can be used to retrieve information
37+
(e.g., `~NyquistResponseData.count`) or for plotting (via
38+
the `~NyquistResponseData.plot` method).
39+
40+
* `describing_function_response`, `DescribingFunctionResponse`: Compute
41+
describing functions and store in a form that can be used for
42+
analysis (e.g., `~DescribingFunctionResponse.intersections`) or plotting
43+
(via `describing_function_plot` or the
44+
`~DescribingFunctionResponse.plot` method).
45+
46+
* `gangof4_response`, `gangof4_plot`: Compute the Gang of Four
47+
response and store in a `FrequencyResponseData` object for plotting.
48+
49+
* `singular_values_response`: Compute the Gang of Four response and store in a
50+
`FrequencyResponseData` object for plotting.
51+
52+
* `FrequencyResponseData.plot`: Plot a frequency response using a Bode,
53+
Nichols, or singular values plot.
54+
55+
* `pole_zero_map`, `PoleZeroData`: New "response" (map) functions for
56+
pole/zero diagrams. The output of `pole_zero_map` can be plotted
57+
using `pole_zero_plot` or the `~PoleZeroData.plot` method.
58+
59+
* `root_locus_map`: New "response" (map) functions for root locus
60+
diagrams. The output of `root_locus_map` can be plotted using
61+
`root_locus_plot` or the `~PoleZeroData.plot` method.
62+
63+
* `norm` (now `system_norm`): Compute H2 and H-infinity system norms.
64+
65+
* `phase_plane_plot`: New implementation of phase
66+
plane plots. See :ref:`phase-plane-plots` for more information.
67+
68+
69+
Bug fixes
70+
.........
71+
72+
The following bugs have been fixed in this release:
73+
74+
* `sample_system`: Fixed a bug in which the zero frequency (DC) gain
75+
for the 'matched' transformation was being computed incorrectly.
76+
77+
* `TimeResponseData.to_pandas`: Fixed a bug when the response did not
78+
have state data.
79+
80+
81+
Improvements
82+
............
83+
84+
The following additional improvements and changes in functionality
85+
were implemented in this release:
86+
87+
* `interconnect`: Allows a variety of "multivariable" specifications
88+
for connections, inputs, and outputs when systems have variables
89+
with names of the form 'sig[i]'.
90+
91+
* `nlsys`: Factory function for `NonlinearIOSystem`.
92+
93+
* Block diagram functions (`series`, `parallel`, `feedback`, `append`,
94+
`negate`) now work on all I/O system classes, including nonlinear
95+
systems.
96+
97+
* Simulation functions (`initial_response`, `step_response`,
98+
`forced_response`) will now work for nonlinear functions (via an
99+
internal call to `input_output_response`).
100+
101+
* Bode and Nyquist plots have been significantly enhanced in terms of
102+
functionality for display multiple tracing and other visual
103+
properties. See `bode_plot` and `nyquist_plot` for details, along
104+
with the :ref:`response-chapter` chapter.
105+
106+
* Properties of frequecy plots can now be set using the
107+
`config.defaults['freqplot.rcParams']` (see
108+
:ref:`package-configuration-parameters` for details).
109+
110+
* `create_statefbk_iosystem`: Allows passing an I/O system instead of
111+
the a gain (or gain schedule) for the controller.
112+
113+
* `root_locus_plot`: Interactive mode is now enabled, so clicking on a
114+
location on the root locus curve will generate markers at the
115+
locations on the loci corresponding to that gain and add a message
116+
above the plot giving the frequency and damping ratio for the point
117+
that was clicked.
118+
119+
* `gram`: Computation of Gramians now supports discrete-time systems.
120+
121+
* All time response functions now allow the `params` keyword to be
122+
specified (for nonlinear I/O systems) and the parameter values used
123+
for generating a time response are stored in the `TimeResponseData`
124+
object..
125+
126+
127+
Deprecations
128+
............
129+
130+
The following functions have been newly deprecated in this release and
131+
generate a warning message when used:
132+
133+
* `connect`: Use `interconnect`.
134+
135+
* `ss2io`, `tf2io`: These functions are no longer required since the
136+
`StateSpace` and `TransferFunction` classes are now subclasses of
137+
`NonlinearIOSystem`.
138+
139+
* `root_locus_plot`, `sisotool`: the `print_gain` keyword has been
140+
replaced `interactive`.
141+
142+
* In various plotting routines, the (already deprecated) `Plot`
143+
keyword is now the (still deprecated) `plot` keyword. This can be
144+
used to obtain legacy return values from ``_plot`` functions.
145+
146+
* `phase_plot`: Use `phase_plane_plot` instead.
147+
148+
The listed items are slated to be removed in future releases (usually
149+
the next major or minor version update.
150+
151+
152+
Removals
153+
........
154+
155+
The following functions and capabilities have been removed in this release:
156+
157+
* `use_numpy_matrix`: The `numpy.matrix` class is no longer supported.
158+
159+
* `NamedIOSystem`: renamed to `InputOutputSystem`
160+
161+
* `LinearIOSystem`: merged into the `StateSpace` class
162+
163+
* `pole`: use `poles`. The `matlab.pole` function is still available.
164+
165+
* `zero`: use `zeros`. The `matlab.zero` function is still available.
166+
167+
* `timebaseEqual`: use `common_timebase`.
168+
169+
* The `impulse_response` function no longer accepts the `X0` keyword.
170+
171+
* The `initial_response` function no longer accepts the :code:`input`
172+
keyword.
173+
174+
* The deprecated default parameters 'bode.dB', 'bode.deg',
175+
'bode.grid', and 'bode.wrap_phase' have been removed. They should
176+
be accessed as 'freqplot.dB', 'freqplot.deg', 'freqplot.grid', and
177+
'freqplot.wrap_phase'.
178+
179+
* Recalculation of the root locus plot when zooming no longer works
180+
(you can still zoom in and out, you just don't get a recalculated
181+
curve).
182+
183+
Code that makes use of the functionality listed above will have to be
184+
rewritten to work with this release of the python-control package.

0 commit comments

Comments
 (0)
0