Skip to content

Commit aa5bba7

Browse files
committed
making v0.4b new trunk
2 parents 78ca1e9 + 55df572 commit aa5bba7

45 files changed

Lines changed: 5234 additions & 1170 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ChangeLog

Lines changed: 84 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,91 @@
1-
2011-02-12 Richard Murray <murray@sumatra.local>
1+
2011-04-02 Richard Murray <murray@malabar.local>
2+
3+
* src/__init__.py: removed import of tests module (moved to tests/)
4+
5+
* src/matlab.py: Added hsvd, balred, modred to list of functions
6+
that are imported for use as is. Updated documentation string to
7+
indicate that these are implemented, along with a few other
8+
functions (zero, lqr) that weren't properly listed.
9+
10+
* src/modelsimp.py (balred): Removed extraneous print statements
11+
(modred): Set method to be 'matchdc' by default (to match MATLAB)
12+
13+
* src/__init__.py: added missing import of modelsimp functions
14+
15+
* tests/slycot_convert_test.py (TestSlycot.testTF): turned off print
16+
statements in unit test to make it easier to see results. Use
17+
verbose=True to turn back on.
18+
19+
* tests/convert_test.py (TestConvert.testConvert): got rid of print
20+
statements in unittest; clutters the output so that you can't see
21+
the errors clearly. Use verbose=True to turn back on.
22+
23+
* src/statesp.py (_convertToStateSpace): removed "buggy" print
24+
statements
25+
26+
* src/xferfcn.py (_convertToTransferFunction): removed "buggy" print
27+
statements
28+
29+
* tests/nichols_test.py (TestStateSpace.testNgrid): updated testcode
30+
to turn off grid in initial Nichols chart plot.
31+
32+
* src/freqplot.py: updated comments at top of file to reflect
33+
nichols chart move
34+
35+
* src/nichols.py: transferred over changes from v0.3d
36+
37+
* src/matlab.py (ngrid): moved import to function
38+
39+
2011-03-31 Richard Murray <murray@malabar.local>
240

3-
* setup.py: Updated version number to 0.3d, in preparation for release
41+
* examples/pvtol-nested.py: updated stability margin plot to use
42+
proper calling format for bode().
443

5-
* src/statefbk.py (lqr): Updated sb02md calling signature to match
6-
latest slycot version (Lauren Padilla)
44+
* src/statesp.py (_convertToStateSpace): moved slycot import
45+
to the location where it is actually needed (allows running some
46+
commands without slycot installed)
747

8-
* src/freqplot.py (nichols_grid): new function from Allan McInnes
9-
<allan.mcinnes@canterbury.ac.nz> to generate a Nichols chart for a
10-
given plot (equivalent to ngrid in MATLAB).
48+
* src/xferfcn.py (_convertToTransferFunction): moved slycot import
49+
to the location where it is actually needed (allows running some
50+
commands without slycot installed)
51+
52+
* src/nichols.py: new file for Nichols plot routines; move
53+
nichols(), nichols_grid(), closed_loop_contours(), m_circles(),
54+
n_circles()
55+
56+
* src/__init__.py, src/freqresp.py, src/matlab.py: updated to match
57+
new file structure for Nichols charts
58+
59+
* src/nichols.py (nichols): updated processing of freqresp to take
60+
into account the fact that return arguments are now a matrix of
61+
results (even for a SISO system)
62+
63+
2011-03-30 Richard Murray <murray@malabar.local>
64+
65+
* tests/: added top level subdirectory, to be used for unit tests.
66+
The idea in putting the code here is that you can do 'setup.py test'
67+
during installation to make sure everything is working correctly.
68+
The test code would normally *not* be callable from the installed
69+
module.
70+
71+
* tests/*_test.py: moved from src/Test*.py
72+
73+
* setup.py: updated version number.
74+
75+
2011-02-13 Richard Murray <murray@sumatra.local>
76+
77+
* src/*.py: added svn:keywords Id properly
78+
79+
* src/matlab.py (ngrid): added ngrid() from v0.3d
80+
81+
* src/freqplot.py (nichols_grid, closed_loop_contours, m_circles,
82+
n_circles): copied over changes from Allan McInnes in v0.3d; ngrid()
83+
functiality + split out some of the nichols chart code into separate
84+
functions
85+
86+
2011-02-12 Richard Murray <murray@sumatra.local>
1187

12-
* src/matlab.py (ngrid): MATLAB compatible ngrid() command
88+
* setup.py: updated version number to 0.4a
1389

1490
2010-11-05 Richard Murray <murray@sumatra.local>
1591

MANIFEST.in

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

Pending

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ picture" things that need to be done.
99
to be implemented.
1010

1111
OPEN BUGS
12-
* step() doesn't handle systems with a pole at the origin (use lsim2)
12+
* matlab.step() doesn't handle systems with a pole at the origin (use lsim2)
13+
* TF <-> SS transformations are buggy; see tests/convert_test.py
14+
* hsvd returns different value than MATLAB (2010a); see modelsimp_test.py
15+
* MIMO common denominator fails unit test; see convert_test.py
1316

1417
Transfer code from Roberto Bucher's yottalab to python-control
1518
acker - pole placement using Ackermann method
@@ -37,6 +40,9 @@ Examples and test cases
3740
* Put together unit tests for all functions (after deciding on framework)
3841
* Figure out how to import 'figure' command properly (version issue?)
3942
* Figure out source of BadCoefficients warning messages (pvtol-lqr and others)
43+
* tests/test_all.py should report on failed tests
44+
* tests/freqresp.py needs to be converted to unit test
45+
* Convert examples/test-{response,statefbk}.py to unit tests
4046

4147
TransferFunction class fixes
4248
* evalfr is not working (num, den stored as ndarrays, not poly1ds)

doc/Makefile

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# Makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = /Applications/Sphinx-1.0.6/sphinx-build.py
7+
PAPER =
8+
BUILDDIR = _build
9+
10+
# Internal variables.
11+
PAPEROPT_a4 = -D latex_paper_size=a4
12+
PAPEROPT_letter = -D latex_paper_size=letter
13+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14+
15+
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
16+
17+
help:
18+
@echo "Please use \`make <target>' where <target> is one of"
19+
@echo " html to make standalone HTML files"
20+
@echo " dirhtml to make HTML files named index.html in directories"
21+
@echo " singlehtml to make a single large HTML file"
22+
@echo " pickle to make pickle files"
23+
@echo " json to make JSON files"
24+
@echo " htmlhelp to make HTML files and a HTML help project"
25+
@echo " qthelp to make HTML files and a qthelp project"
26+
@echo " devhelp to make HTML files and a Devhelp project"
27+
@echo " epub to make an epub"
28+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
29+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
30+
@echo " text to make text files"
31+
@echo " man to make manual pages"
32+
@echo " changes to make an overview of all changed/added/deprecated items"
33+
@echo " linkcheck to check all external links for integrity"
34+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
35+
36+
clean:
37+
-rm -rf $(BUILDDIR)/*
38+
39+
html:
40+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
41+
@echo
42+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
43+
44+
dirhtml:
45+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
46+
@echo
47+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
48+
49+
singlehtml:
50+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
51+
@echo
52+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
53+
54+
pickle:
55+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
56+
@echo
57+
@echo "Build finished; now you can process the pickle files."
58+
59+
json:
60+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
61+
@echo
62+
@echo "Build finished; now you can process the JSON files."
63+
64+
htmlhelp:
65+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
66+
@echo
67+
@echo "Build finished; now you can run HTML Help Workshop with the" \
68+
".hhp project file in $(BUILDDIR)/htmlhelp."
69+
70+
qthelp:
71+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
72+
@echo
73+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
74+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
75+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PythonControl.qhcp"
76+
@echo "To view the help file:"
77+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PythonControl.qhc"
78+
79+
devhelp:
80+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
81+
@echo
82+
@echo "Build finished."
83+
@echo "To view the help file:"
84+
@echo "# mkdir -p $$HOME/.local/share/devhelp/PythonControl"
85+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/PythonControl"
86+
@echo "# devhelp"
87+
88+
epub:
89+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
90+
@echo
91+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
92+
93+
latex:
94+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
95+
@echo
96+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
97+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
98+
"(use \`make latexpdf' here to do that automatically)."
99+
100+
latexpdf:
101+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
102+
@echo "Running LaTeX files through pdflatex..."
103+
make -C $(BUILDDIR)/latex all-pdf
104+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
105+
106+
text:
107+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
108+
@echo
109+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
110+
111+
man:
112+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
113+
@echo
114+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
115+
116+
changes:
117+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
118+
@echo
119+
@echo "The overview file is in $(BUILDDIR)/changes."
120+
121+
linkcheck:
122+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
123+
@echo
124+
@echo "Link check complete; look for any errors in the above output " \
125+
"or in $(BUILDDIR)/linkcheck/output.txt."
126+
127+
doctest:
128+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
129+
@echo "Testing of doctests in the sources finished, look at the " \
130+
"results in $(BUILDDIR)/doctest/output.txt."

doc/README

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Sphinx Documentation
2+
--------------------
3+
4+
Note: Sphinx actually runs and imports python code, so broken code, or code not in conf.py sys.path, cannot be documented!
5+
6+
1. Get Sphinx [http://sphinx.pocoo.org/]
7+
[python setup.py build/install]
8+
9+
2. Install numpydoc [http://pypi.python.org/pypi/numpydoc]
10+
11+
3. In Makefile point to your own copy of sphinx-build, e.g.
12+
[SPHINXBUILD = /Users/steve/CODES/Sphinx-1.0.6/sphinx-build.py]
13+
14+
4. >> touch *.rst
15+
>> make html [or make latex]

doc/bdalg_strings.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Block Diagram Algebra Routines
2+
******************************
3+
4+
The Block Diagram Algebra Module
5+
================================
6+
.. automodule:: bdalg
7+
:members:

doc/class_strings.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Python-Control Classes
2+
**********************
3+
4+
The State Space Module
5+
======================
6+
.. automodule:: statesp
7+
:members:
8+
9+
The Transfer Function Module
10+
============================
11+
.. automodule:: xferfcn
12+
:members:

0 commit comments

Comments
 (0)