8000 tagging 0.5a · rubencabrera/python-control@c5c999b · GitHub
[go: up one dir, main page]

Skip to content

Commit c5c999b

Browse files
committed
tagging 0.5a
1 parent c63dee8 commit c5c999b

39 files changed

+2223
-701
lines changed

ChangeLog

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,178 @@
1+
---- control-0.5a released -----
2+
3+
2011-08-07 Richard Murray <murray@malabar.local>
4+
5+
* setup.py: updated version number; next release will be 0.5a since
6+
the changes in function names and argument/return value order (for
7+
time reponses) require small updates in code
8+
9+
* examples/secord-matlab.py, examples/pvtol-nested-ss.py,
10+
examples/test-response.py, examples/pvtol-nested.py: fixed small bug
11+
in order of output arguments for step command
12+
13+
2011-08-06 Richard Murray <murray@malabar.local>
14+
15+
* src/matlab.py (ngrid): copy documentation from nichols_grid
16+
17+
* src/__init__.py: changed import commands to import specific
18+
functions rather than '*' (better modularity)
19+
20+
* src/freqplot.py: default function names are now bode_plot,
21+
nyquist_plot and gangof4_plot (still with aliases to non-"_plot"
22+
versions)
23+
24+
* src/nichols.py (nichols_plot): updated nichols to nichols_plot for
25+
consistency with other python-control plotting functions. Set up
26+
alias for original name
27+
28+
* src/margins.py: StabilityMargins, PhaseCrossoverFrequencies ->
29+
stability_margins, phase_crossover_frequencies
30+
31+
* src/phaseplot.py: changed PhasePlot and boxgrid to phase_plot,
32+
box_grid
33+
34+
* src/timeresp.py: changed ForcedReponse, InitialReponse,
35+
ImpulseReponse and StepResponse to forced_response,
36+
initial_response, impulse_response and step_response.
37+
38+
* src/rlocus.py: changed RootLocus to root_locus for better
39+
compatability with PEP 8. Also updated unit tests and examples.
40+
41+
2011-07-25 Richard Murray <murray@malabar.local>
42+
43+
* tests/phaseplot_test.py: updated unit tests to use new call
44+
signatures
45+
46+
* examples/phaseplots.py: updated calls to PhasePlot to use new
47+
argument structure
48+
49+
* src/phaseplot.py (PhasePlot): Updated call signature to be
50+
more pythonic and fixed up documentation.
51+
52+
* examples/genswitch.py (genswitch): added new example showing
53+
PhasePlot functionality
54+
55+
* src/phaseplot.py (boxgrid): added function to compute initial
56+
conditions around the edges of a box
57+
58+
2011-07-24 Richard Murray <murray@malabar.local>
59+
60+
* tests/margin_test.py: added simple unit tests for margin functions
61+
(initial versions just call functions; some comparisons missing)
62+
63+
* examples/README: added missing README file
64+
65+
* examples/phaseplots.py: FBS examples for phaseplot
66+
67+
* tests/phaseplot_test.py: unit tests for phaseplot
68+
69+
* src/phaseplot.py: initial cut at phase portrait function, built
70+
from amphaseplot (Feeback Systems [FBS], Astrom and Murray, 2008)
71+
72+
2011-07-15 Richard Murray <murray@malabar.local>
73+
74+
* tests/matlab_test.py (TestMatlab): added unittest for margin()
75+
commands (calling format only)
76+
77+
* src/statesp.py (StateSpace): updated comments
78+
79+
* tests/margin_test.py: set up unit tests for StabilityMargins() and
80+
PhaseCrossoverFrequencies()
81+
82+
* src/__init__.py: added margins.py to __init__
83+
84+
2011-07-14 Richard Murray <murray@malabar.local>
85+
86+
* src/margins.py (GainPhaseMargin): moved freqplot.MarginPlot to
87+
margin.StabilityMargins (MarginPlot didn't actually plot anything)
88+
89+
* src/margins.py (PhaseCrossoverFrequencies): added new function to
90+
compute frequencies that we cross real axis. Contributed by Steffen
91+
Waldherr <waldherr@ist.uni-stuttgart.de>
92+
93+
2011-07-11 Richard Murray <murray@malabar.local>
94+
95+
* src/rlocus.py: added real() and imag() to list of functions
96+
imported from numpy
97+
98+
* src/freqplot.py: renamed plotting functions to BodePlot,
99+
NyquistPlot, GangOf4Plot and MarginPlot. Set up aliases to the more
100+
common names (bode, nyquest, gangof4, margin). Mainly playing
101+
around with idea for the eventual interface to use.
102+
103+
* tests/matlab_test.py: updated timeresp outputs to match MATLAB
104+
105+
* src/matlab.py (impulse, initial, lsim, step): switched outputs
106+
from step, impulse, initial, lsim to match MATLAB standard
107+
108+
2011-07-01 Richard Murray <murray@malabar.local>
109+
110+
* src/rlocus.py: modified scipy import to only import those
111+
functions that we actually use. This fixes a problem pointed out by
112+
Carsten Knoll (TU Dresden) where control.place could be overwritten
113+
by numpy.place (because of an "from scipy import *" in rlocus.py
114+
115+
* doc/intro.rst: Added link to scipy web page talking about the
116+
differences between numpy and MATLAB (contributed by Shuo Han).
117+
118+
2011-06-25 Richard Murray <murray@malabar.local>
119+
120+
* src/xferfcn.py (TransferFunction._common_den): changed tolerance
121+
for detecting complex valued poles to a user-settable parameter,
122+
with default value 1e-8. This was an attempt to fix errors in the
123+
convert_test.py unittest script (conversion routine was
124+
misclassifying some poles as imaginary when they weren't).
125+
126+
* src/xferfcn.py (_convertToTransferFunction): converted arguments
127+
to tb04ad to numpy arrays; fixes a unit test error in convert_test.py.
128+
129+
* src/statefbk.py (gram): convert system matrix passed to sb03md to
130+
numpy array; this fixes a unit test error in modelsimp_test.py.
131+
132+
* src/matlab.py (impulse): got rid of X0 argument for impulse
133+
response (not implemented in MATLAB).
134+
135+
* doc/intro.rst: added some quick start information
136+
137+
* src/matlab.py: added documentation for step, impulse, initial, lsim
138+
139+
* src/timeresp.py: fixed some MATLAB specific function names in
140+
function doc strings
141+
142+
2011-06-22 Richard Murray <murray@malabar.local>
143+
144+
* doc/intro.rst: fixed some small types
145+
146+
* doc/control.tex: removed (no longer needed)
147+
148+
2011-06-22 Richard Murray <murray@malabar.local>
149+
150+
* doc/intro.rst: Added a slightly more general introduction, with a
151+
pointer to the python-control wiki (on sf.net)
152+
153+
* doc/Makefile: Changed path to sphinx-build to assume it is in the
154+
users path (as opposed to an explicit path)
155+
156+
* doc/conf.py: Added release information into documentation file
157+
158+
2011-06-21 Richard Murray <murray@malabar.local>
159+
160+
* src/statesp.py (_mimo2siso): Moved function from matlab.py.
161+
162+
* src/timeresp.py: added file documentation + split out and updated
163+
copyright info. Small corrections to documentation.
164+
(InitialResponse): Added missing transpose argument in call to
165+
ForcedResponse
166+
167+
* src/matlab.py: minor changes to documentation to avoid line wraps
168+
on standard (80 col) terminal window
169+
170+
* src/matlab.py: removed time-series convention documentation from
171+
matlab.py since current MATLAB version uses standard conventions.
172+
This documentation is currently in timeresp.py.
173+
174+
* src/*, doc/*: added Eike Welk's documentation modifications
175+
1176
2011-06-18 Richard Murray <murray@malabar.local>
2177

3178
* src/timeresp.py, src/matlab.py: moved documentation about time

doc/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# You can set these variables from the command line.
55
SPHINXOPTS =
6-
SPHINXBUILD = /Applications/Sphinx-1.0.6/sphinx-build.py
6+
SPHINXBUILD = sphinx-build
77
PAPER =
88
BUILDDIR = _build
99

doc/README

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,8 @@ Note: Sphinx actually runs and imports python code, so broken code, or code not
1313

1414
4. >> touch *.rst
1515
>> make html [or make latex]
16+
17+
Creating/updating manual on sourceforge:
18+
19+
5. >> rsync -rav _build/html/ user@shell.sourceforge.net:/home/project-web/python-control/htdocs/manual-N.mx/
20+

doc/conf.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,22 @@
1919
sys.path.insert(0, os.path.abspath('.'))
2020
sys.path.append(os.path.abspath('../src'))
2121

22+
2223
# -- General configuration -----------------------------------------------------
2324

2425
# If your documentation needs a minimal Sphinx version, state it here.
2526
#needs_sphinx = '1.0'
2627

2728
# Add any Sphinx extension module names here, as strings. They can be extensions
2829
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
30+
# Additional interesting extensions:
31+
# ``sphinx.ext.autosummary`` : Generate function/method/attribute summary
32+
# lists
33+
# ``sphinx.ext.extlinks`` : Shorten external links
34+
# ``sphinx.ext.viewcode`` : Include highlighted source code in the
35+
# documentation
2936
extensions = ['sphinx.ext.autodoc', 'numpydoc', 'sphinx.ext.pngmath',
30-
'sphinx.ext.intersphinx']
37+
'sphinx.ext.intersphinx', 'sphinx.ext.todo']
3138

3239
# Add any paths that contain templates here, relative to this directory.
3340
templates_path = ['_templates']
@@ -50,9 +57,9 @@
5057
# built documents.
5158
#
5259
# The short X.Y version.
53-
version = '0.0'
60+
version = '0.4d'
5461
# The full version, including alpha/beta/rc tags.
55-
release = '0.0'
62+
release = '0.4d'
5663

5764
# The language for content autogenerated by Sphinx. Refer to documentation
5865
# for a list of supported languages.
@@ -90,7 +97,13 @@
9097

9198
#This config value contains the locations and names of other projects that
9299
#should be linked to in this documentation.
93-
intersphinx_mapping = {'scipy':('http://docs.scipy.org/doc/scipy/reference/', None)}
100+
intersphinx_mapping = \
101+
{'scipy':('http://docs.scipy.org/doc/scipy/reference/', None),
102+
'numpy':('http://docs.scipy.org/doc/numpy/reference/', None)}
103+
104+
#If this is True, tod 10000 o and todolist produce output, else they produce nothing.
105+
#The default is False.
106+
todo_include_todos = True
94107

95108

96109
# -- Options for HTML output ---------------------------------------------------

doc/control.tex

Lines changed: 0 additions & 21 deletions
This file was deleted.

doc/index.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,6 @@ Indices and tables
2323
* :ref:`modindex`
2424
* :ref:`search`
2525

26+
----------------------------------
27+
28+
.. todolist::

doc/intro.rst

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,51 @@ Introduction
33
============
44

55
Welcome to the Python-Control project.
6-
This is sample documentation and will include our Princeton University APC524 contribution.
76

8-
We can incorporate any existing documentation as well. For example from R.Murray's earlier tex document:
7+
The python-control package is a set of python classes and functions
8+
that implement common operations for the analysis and design of
9+
feedback control systems. The initial goal is to implement all of the
10+
functionality required to work through the examples in the textbook
11+
Feedback Systems by Astrom and Murray. A MATLAB compatibility package
12+
(control.matlab) is available that provides many of the common
13+
functions corresponding to commands available in the MATLAB Control
14+
Systems Toolbox.
915

10-
Differences from MATLAB
11-
-----------------------
12-
* You must include commas in vectors. So [1 2 3] must be [1, 2, 3].
13-
* Functions that return multiple arguments use tuples
14-
* Can't use braces for collections; use tuples instead
15-
* Transfer functions are only implemented for SISO systems (due to limitations in the underlying signals.lti class); use state space representations for MIMO systems.
16+
In addition to the documentation here, there is a project wiki that
17+
contains some additional information about how to use the package
18+
(including some detailed worked examples):
1619

20+
http://python-control.sourceforge.net
1721

22+
Some Differences from MATLAB
23+
----------------------------
24+
The python-control package makes use of NumPy and SciPy. A list of
25+
general differences between NumPy and MATLAB can be found here:
26+
27+
http://www.scipy.org/NumPy_for_Matlab_Users
28+
29+
In terms of the python-control package more specifically, here are
30+
some thing to keep in mind:
31+
32+
* You must include commas in vectors. So [1 2 3] must be [1, 2, 3].
33+
* Functions that return multiple arguments use tuples
34+
* Can't use braces for collections; use tuples instead
35+
* Transfer functions are only implemented for SISO systems (due to
36+
limitations in the underlying signals.lti class); use state space
37+
representations for MIMO systems.
38+
39+
Getting Started
40+
---------------
41+
1. Download latest release from http://sf.net/projects/python-control/files.
42+
2. Untar the source code in a temporary directory and run 'python setup.py
43+
install' to build and install the code
44+
3. To see if things are working correctly, run ipython -pylab and run the
45+
script 'examples/secord-matlab.py'. This should generate a set response,
46+
Bode plot and Nyquist plot for a simple second order system.
47+
4. To see the commands that are available, run the following commands in
48+
ipython::
49+
>>> import control
50+
>>> ?control.matlab
51+
5. If you want to have a MATLAB-like environment for running the control
52+
toolbox, use::
53+
>>> from control.matlab import *

doc/matlab_strings.rst

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,24 @@ Matlab-like Routines
44
The Matlab Module
55
=================
66
.. automodule:: matlab
7-
:members:
7+
:members:
8+
9+
.. todo::
10+
The following functions should be documented in their own modules!
11+
This is only a temporary solution.
12+
13+
.. autofunction:: pzmap.pzmap
14+
.. autofunction:: freqplot.nyquist
15+
.. autofunction:: nichols.nichols
16+
.. autofunction:: statefbk.place
17+
.. autofunction:: statefbk.lqr
18+
.. autofunction:: statefbk.ctrb
19+
.. autofunction:: statefbk.obsv
20+
.. autofunction:: statefbk.gram
21+
.. autofunction:: delay.pade
22+
.. autofunction:: freqplot.gangof4
23+
.. autofunction:: ctrlutil.unwrap
24+
.. autofunction:: mateqn.lyap
25+
.. autofunction:: mateqn.dlyap
26+
.. autofunction:: mateqn.care
27+
.. autofunction:: mateqn.dare

examples/README

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
This directory contains worked examples using the python-control
2+
library. Each example should work by running 'ipython -pylab' and
3+
then running the given file (make sure to have the python-control
4+
module in your path).

0 commit comments

Comments
 (0)
0