Package: control
Python Control Systems LibraryThe 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.The package can also be installed on Google Colab using the commands:!pip install control
import control as ctFeaturesLinear input/output systems in state-space and frequency domainBlock diagram algebra: serial, parallel, feedback, and other interconnectionsTime response: initial, step, impulseFrequency response: Bode, Nyquist, and Nichols plotsControl analysis: stability, reachability, observability, stability margins, root locusControl design: eigenvalue placement, linear quadratic regulator, sisotool, hinfsyn, rootlocus_pid_designerEstimator design: linear quadratic estimator (Kalman filter)Nonlinear systems: optimization-based control, describing functions, differential flatnessLinksProject home page:http://python-control.orgSource code repository:https://github.com/python-control/python-controlDocumentation:http://python-control.readthedocs.org/Issue tracker:https://github.com/python-control/python-control/issuesMailing list:http://sourceforge.net/p/python-control/mailman/DependenciesThe 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/SlycotInstallationConda and conda-forgeThe easiest way to get started with the Control Systems library is
usingConda.The Control Systems library has packages available using theconda-forgeConda 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 slycotMixing 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.PipTo 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 sourceTo 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
toplevelpython-controldirectory:pip install .Article and Citation InformationAnarticleabout
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-controlDevelopmentCodeYou can check out the latest version of the source code with the command:git clone https://github.com/python-control/python-control.gitTestingYou can run the unit tests withpytestto make sure that everything is
working correctly.  Inside the source directory, run:pytest -vor to test the installed package:pytest --pyargs control -vLicenseThis is free software released under the terms ofthe 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.ContributingYour contributions are welcome!  Simply fork the GitHub repository and send apull request.Please see theDeveloper’s Wikifor detailed instructions.