Skip to main content
https://anaconda.org/conda-forge/control/badges/version.svg https://img.shields.io/pypi/v/control.svg https://github.com/python-control/python-control/actions/workflows/python-package-conda.yml/badge.svg https://github.com/python-control/python-control/actions/workflows/install_examples.yml/badge.svg https://github.com/python-control/python-control/actions/workflows/control-slycot-src.yml/badge.svg https://coveralls.io/repos/python-control/python-control/badge.svg

Python Control Systems Library

The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems.

Have a go now!

Try out the examples in the examples folder using the binder service.

https://mybinder.org/badge_logo.svg

Features

  • Linear input/output systems in state-space and frequency domain

  • Block diagram algebra: serial, parallel, feedback, and other interconnections

  • Time response: initial, step, impulse

  • Frequency response: Bode, Nyquist, and Nichols plots

  • Control analysis: stability, reachability, observability, stability margins, root locus

  • Control design: eigenvalue placement, linear quadratic regulator, sisotool, hinfsyn, rootlocus_pid_designer

  • Estimator design: linear quadratic estimator (Kalman filter)

  • Nonlinear systems: optimization-based control, describing functions, differential flatness

Dependencies

The package requires numpy, scipy, and matplotlib. In addition, some routines use a module called slycot, that is a Python wrapper around some FORTRAN routines. Many parts of python-control will work without slycot, but some functionality is limited or absent, and installation of slycot is recommended (see below). The Slycot wrapper can be found at:

https://github.com/python-control/Slycot

Installation

Conda and conda-forge

The easiest way to get started with the Control Systems library is using Conda.

The Control Systems library has been packages for the conda-forge Conda channel, and as of Slycot version 0.3.4, binaries for that package are available for 64-bit Windows, OSX, and Linux.

To install both the Control Systems library and Slycot in an existing conda environment, run:

conda install -c conda-forge control slycot

Pip

To install using pip:

pip install slycot   # optional; see below
pip install control

If you install Slycot using pip you’ll need a development environment (e.g., Python development files, C and Fortran compilers).

Installing from source

To install from source, get the source code of the desired branch or release from the github repository or archive, unpack, and run from within the toplevel python-control directory:

pip install .

Article and Citation Information

An article about the library is available on IEEE Explore. If the Python Control Systems Library helped you in your research, please cite:

@inproceedings{python-control2021,
  title={The Python Control Systems Library (python-control)},
  author={Fuller, Sawyer and Greiner, Ben and Moore, Jason and Murray, Richard and van Paassen, Ren{\'e} and Yorke, Rory},
  booktitle={60th IEEE Conference on Decision and Control (CDC)},
  pages={4875--4881},
  year={2021},
  organization={IEEE}
}

or the GitHub site: https://github.com/python-control/python-control

Development

Code

You can check out the latest version of the source code with the command:

git clone https://github.com/python-control/python-control.git

Testing

You can run the unit tests with pytest to make sure that everything is working correctly. Inside the source directory, run:

pytest -v

or to test the installed package:

pytest --pyargs control -v

License

This is free software released under the terms of the BSD 3-Clause License. There is no warranty; not even for merchantability or fitness for a particular purpose. Consult LICENSE for copying conditions.

When code is modified or re-distributed, the LICENSE file should accompany the code or any subset of it, however small. As an alternative, the LICENSE text can be copied within files, if so desired.

Contributing

Your contributions are welcome! Simply fork the GitHub repository and send a pull request.

Please see the Developer’s Wiki for detailed instructions.

Metadata

Release files for control 0.9.3.post2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for control 0.9.3.post2
File Size Uploaded
control-0.9.3.post2.tar.gz 3.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for control 0.9.3.post2
File Interpreter ABI Platform
control-0.9.3.post2-py3-none-any.whl Python 3 none any Details

Total release size: 4.3 MB

Release files / control-0.9.3.post2.tar.gz

Download URL control-0.9.3.post2.tar.gz
Size 3.9 MB
Tags Source
SHA-256 checksum
How to use checksums
7ced64f2faa5e0baa2184074ac8239f638218dccfa00c89165e0466d9ef8f161
BLAKE2b-256 checksum
How to use checksums
41c0fdfa7059b59619f1b51a6483c1e1cecf2383b95d9e3cf989f2ead3a96eab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / control-0.9.3.post2-py3-none-any.whl

Download URL control-0.9.3.post2-py3-none-any.whl
Size 432.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
64b5d89ad1df9385e4ac1adeea1427051582064f5309d0807298e93e076eb562
BLAKE2b-256 checksum
How to use checksums
cc930e8473d0a2a30514526fe82114b61b96f4267805c08e51f99ebbf5ff9e58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

0.10.1

2 release files

0.10.0

2 release files

0.9.4

2 release files

This release

0.9.3.post2 This release

2 release files

0.9.3

2 release files

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.0

2 release files

0.6.6

1 release file

0.6.5

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page