Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/python-control/python-control
The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems.
https://github.com/python-control/python-control
Last synced: 10 days ago
JSON representation
The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems.
- Host: GitHub
- URL: https://github.com/python-control/python-control
- Owner: python-control
- License: bsd-3-clause
- Created: 2014-08-09T17:48:36.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T18:22:36.000Z (6 months ago)
- Last Synced: 2024-05-23T06:36:58.595Z (6 months ago)
- Language: Python
- Homepage: http://python-control.org
- Size: 17.5 MB
- Stars: 1,587
- Watchers: 64
- Forks: 411
- Open Issues: 79
-
Metadata Files:
- Readme: README.rst
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
- awesome-sciml - python-control/python-control: The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems.
README
.. image:: https://anaconda.org/conda-forge/control/badges/version.svg
:target: https://anaconda.org/conda-forge/control.. image:: https://img.shields.io/pypi/v/control.svg
:target: https://pypi.org/project/control/.. image:: https://github.com/python-control/python-control/actions/workflows/python-package-conda.yml/badge.svg
:target: https://github.com/python-control/python-control/actions/workflows/python-package-conda.yml.. image:: https://github.com/python-control/python-control/actions/workflows/install_examples.yml/badge.svg
:target: https://github.com/python-control/python-control/actions/workflows/install_examples.yml.. image:: https://github.com/python-control/python-control/actions/workflows/control-slycot-src.yml/badge.svg
:target: https://github.com/python-control/python-control/actions/workflows/control-slycot-src.yml.. image:: https://coveralls.io/repos/python-control/python-control/badge.svg
:target: https://coveralls.io/r/python-control/python-controlPython 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... image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/python-control/python-control/HEADThe package can also be installed on Google Colab using the commands::
!pip install control
import control as ctFeatures
--------- 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 flatnessLinks
------ Project home page: http://python-control.org
- Source code repository: https://github.com/python-control/python-control
- Documentation: http://python-control.readthedocs.org/
- Issue tracker: https://github.com/python-control/python-control/issues
- Mailing list: http://sourceforge.net/p/python-control/mailman/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 packages available using 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
Mixing packages from conda-forge and the default conda channel can
sometimes cause problems with dependencies, so it is usually best to
instally NumPy, SciPy, and Matplotlib from conda-forge as well.Pip
---To install using pip::
pip install slycot # optional; see below
pip install controlIf you install Slycot using pip you'll need a development environment
(e.g., Python development files, C and Fortran compilers). Pip
installation can be particularly complicated for Windows.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
.. _pytest: https://docs.pytest.org/
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`_... _pull request: https://github.com/python-control/python-control/pulls
Please see the `Developer's Wiki`_ for detailed instructions.
.. _Developer's Wiki: https://github.com/python-control/python-control/wiki