|
1 | | -Python Control System Library |
2 | | -============================= |
3 | | - |
4 | 1 | .. image:: https://travis-ci.org/python-control/python-control.svg?branch=master |
5 | | - :target: https://travis-ci.org/python-control/python-control |
| 2 | + :target: https://travis-ci.org/python-control/python-control |
6 | 3 | .. image:: https://coveralls.io/repos/python-control/python-control/badge.png |
7 | | - :target: https://coveralls.io/r/python-control/python-control |
| 4 | + :target: https://coveralls.io/r/python-control/python-control |
| 5 | + |
| 6 | +Python Control Systems Library |
| 7 | +============================== |
| 8 | + |
| 9 | +The Python Control Systems Library is a Python module that implements basic |
| 10 | +operations for analysis and design of feedback control systems. |
| 11 | + |
| 12 | +Features |
| 13 | +-------- |
| 14 | + |
| 15 | +- Linear input/output systems in state-space and frequency domain |
| 16 | +- Block diagram algebra: serial, parallel, and feedback interconnections |
| 17 | +- Time response: initial, step, impulse |
| 18 | +- Frequency response: Bode and Nyquist plots |
| 19 | +- Control analysis: stability, reachability, observability, stability margins |
| 20 | +- Control design: eigenvalue placement, linear quadratic regulator |
| 21 | +- Estimator design: linear quadratic estimator (Kalman filter) |
| 22 | + |
| 23 | + |
| 24 | +Links |
| 25 | +===== |
| 26 | + |
| 27 | +- Project home page: http://python-control.sourceforge.net |
| 28 | +- Source code repository: https://github.com/python-control/python-control |
| 29 | +- Documentation: http://python-control.readthedocs.org/ |
| 30 | +- Issue tracker: https://github.com/python-control/python-control/issues |
| 31 | +- Mailing list: http://sourceforge.net/p/python-control/mailman/ |
| 32 | + |
| 33 | + |
| 34 | +Dependencies |
| 35 | +============ |
8 | 36 |
|
9 | | -RMM, 23 May 09 |
| 37 | +The package requires numpy, scipy, and matplotlib. In addition, some routines |
| 38 | +use a module called slycot, that is a Python wrapper around some FORTRAN |
| 39 | +routines. Many parts of python-control will work without slycot, but some |
| 40 | +functionality is limited or absent, and installation of slycot is recommended |
| 41 | +(see below). Note that in order to install slycot, you will need a FORTRAN |
| 42 | +compiler on your machine. The Slycot wrapper can be found at: |
10 | 43 |
|
11 | | -This directory contains the source code for the Python Control Systems |
12 | | -Library (python-control). This package provides a library of standard |
13 | | -control system algorithms in the python programming environment. |
| 44 | +https://github.com/jgoppert/Slycot |
14 | 45 |
|
15 | 46 | Installation |
16 | | ------------- |
| 47 | +============ |
| 48 | + |
| 49 | +The package may be installed using pip or distutils. |
| 50 | + |
| 51 | +Pip |
| 52 | +--- |
| 53 | + |
| 54 | +To install using pip:: |
17 | 55 |
|
18 | | -Using pip |
19 | | -~~~~~~~~~~~ |
| 56 | + pip install slycot # optional |
| 57 | + pip install control |
20 | 58 |
|
21 | | -Pip is a python packaging system. It can be installed on debian based |
22 | | -linux distros with the command:: |
| 59 | +Distutils |
| 60 | +--------- |
23 | 61 |
|
24 | | - sudo apt-get install pip |
| 62 | +To install in your home directory, use:: |
25 | 63 |
|
26 | | -Pip can then be used to install python-control:: |
| 64 | + python setup.py install --user |
27 | 65 |
|
28 | | - sudo pip install control |
| 66 | +To install for all users (on Linux or Mac OS):: |
29 | 67 |
|
| 68 | + python setup.py build |
| 69 | + sudo python setup.py install |
30 | 70 |
|
31 | | -From Source |
32 | | -~~~~~~~~~~~ |
33 | 71 |
|
34 | | -Standard python package installation:: |
| 72 | +Development |
| 73 | +=========== |
35 | 74 |
|
36 | | - python setup.py install |
| 75 | +Code |
| 76 | +---- |
37 | 77 |
|
38 | | -To see if things are working, you can run the script |
39 | | -examples/secord-matlab.py (using ipython -pylab). It should generate a step |
40 | | -response, Bode plot and Nyquist plot for a simple second order linear |
41 | | -system. |
| 78 | +You can check out the latest version of the source code with the command:: |
| 79 | + |
| 80 | + git clone https://github.com/python-control/python-control.git |
42 | 81 |
|
43 | 82 | Testing |
44 | 83 | ------- |
45 | 84 |
|
46 | | -You can also run a set of unit tests to make sure that everything is working |
| 85 | +You can run a set of unit tests to make sure that everything is working |
47 | 86 | correctly. After installation, run:: |
48 | 87 |
|
49 | | - python runtests.py |
50 | | - |
51 | | -Slycot |
52 | | ------- |
53 | | - |
54 | | -Routines from the Slycot wrapper are used for providing the |
55 | | -functionality of several routines for state-space, transfer functions |
56 | | -and robust control. Many parts of python-control will still work |
57 | | -without slycot, but some functionality is limited or absent, and |
58 | | -installation of Slycot is definitely recommended. The Slycot wrapper |
59 | | -can be found at: |
| 88 | + python setup.py test |
60 | 89 |
|
61 | | -https://github.com/jgoppert/Slycot |
| 90 | +Contributing |
| 91 | +------------ |
62 | 92 |
|
63 | | -and can be installed with:: |
| 93 | +Your contributions are welcome! Simply fork the GitHub repository and send a |
| 94 | +`pull request`_. |
64 | 95 |
|
65 | | - sudo pip install slycot |
| 96 | +.. _pull request: https://github.com/python-control/python-control/pulls |
0 commit comments