{"id":6576,"library":"control","title":"Python Control Systems Library","description":"The Python Control Systems Library (python-control) is an open-source Python package that implements basic operations for the analysis and design of feedback control systems. It provides functionalities for linear and nonlinear input/output systems, block diagram algebra, time and frequency response, control analysis, and design. The library is actively maintained, with version 0.10.2 being the current stable release, and follows a regular release cadence with ongoing improvements and bug fixes.","status":"active","version":"0.10.2","language":"python","source_language":"en","source_url":"https://github.com/python-control/python-control","tags":["control systems","engineering","robotics","simulation","mathematics"],"install":[{"cmd":"pip install python-control","lang":"bash","label":"PyPI (basic)"},{"cmd":"pip install python-control slycot","lang":"bash","label":"PyPI (with Slycot for full functionality)"},{"cmd":"conda install -c conda-forge python-control slycot","lang":"bash","label":"Conda (with Slycot)"}],"dependencies":[{"reason":"Fundamental package for numerical computing, array operations are core to control systems.","package":"numpy","optional":false},{"reason":"Provides scientific computing tools, including signal processing and linear algebra routines used by the library.","package":"scipy","optional":false},{"reason":"Required for all plotting functionalities, such as Bode, Nyquist, and step response plots.","package":"matplotlib","optional":false},{"reason":"Optional but highly recommended. Provides wrapper for FORTRAN routines from the SLICOT library, enabling more efficient and advanced control system algorithms. Some functionality may be limited or absent without it.","package":"slycot","optional":true}],"imports":[{"note":"The convention 'import control as ct' is widely used in documentation and examples.","symbol":"control","correct":"import control as ct"},{"note":"For users preferring a MATLAB-like environment and function naming conventions.","symbol":"matlab","correct":"from control.matlab import *"}],"quickstart":{"code":"import control as ct\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Define a simple state-space system\nA = np.array([[-0.5, -1], [1, 0]])\nB = np.array([[1], [0]])\nC = np.array([[0, 1]])\nD = np.array([[0]])\nsys = ct.ss(A, B, C, D)\n\n# Simulate a step response\ntime, response = ct.step_response(sys)\n\n# Plot the step response\nplt.plot(time, response.outputs[0])\nplt.xlabel('Time (s)')\nplt.ylabel('Output')\nplt.title('Step Response')\nplt.grid()\nplt.show()","lang":"python","description":"This quickstart defines a simple continuous-time state-space system, calculates its step response, and plots the output using Matplotlib. It demonstrates the basic workflow of defining a system and analyzing its time-domain behavior."},"warnings":[{"fix":"Replace `np.matrix` objects with `np.array` objects for all matrix representations and operations.","message":"Support for the NumPy `matrix` class has been removed in version 0.10.0. All matrix operations should now use standard NumPy arrays.","severity":"breaking","affected_versions":">=0.10.0"},{"fix":"After computing a response (e.g., `time, response = ct.step_response(sys)`), explicitly call `response.plot()` to generate the plot.","message":"The interface for plotting has changed to a `_response/_plot` calling pattern starting from version 0.10.0. Functions like `step_response` now return a `TimeResponseData` object which has a `.plot()` method, rather than directly generating a plot.","severity":"breaking","affected_versions":">=0.10.0"},{"fix":"Use `ct.interconnect()` for connecting systems. The direct conversion functions `ss2io` and `tf2io` are no longer needed as the base classes now handle I/O system representation directly.","message":"Functions `connect`, `ss2io`, and `tf2io` have been deprecated in version 0.10.0. Use `interconnect` for system interconnections and note that `StateSpace` and `TransferFunction` classes are now subclasses of `NonlinearIOSystem` (rendering `ss2io` and `tf2io` obsolete).","severity":"deprecated","affected_versions":">=0.10.0"},{"fix":"Ensure your Python environment meets the minimum version requirements by upgrading Python, NumPy, and SciPy to the specified versions or newer.","message":"The `python-control` library requires Python 3.10 or higher, NumPy 1.23 or higher (2.x recommended), and SciPy 1.8 or higher. Using older versions may lead to compatibility issues or unexpected behavior.","severity":"gotcha","affected_versions":"<0.10.0 to 0.10.2"},{"fix":"Install `slycot` (e.g., `pip install slycot` or `conda install -c conda-forge slycot`) to unlock full library capabilities. Note that `slycot` may have its own compilation requirements (like a Fortran compiler).","message":"Without the optional `slycot` library installed, some advanced functionalities and more efficient algorithms will be unavailable or operate with reduced performance. This can impact state-space conversions, robust control computations, and other routines.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"search_vec":"'0.10.2':60 'activ':56 'algebra':44 'analysi':26,50 'basic':22 'block':42 'bug':76 'cadenc':71 'control':2,7,12,31,49,78 'current':63 'design':28,52 'diagram':43 'engin':80 'feedback':30 'fix':77 'follow':67 'frequenc':47 'function':35 'implement':21 'improv':74 'input/output':40 'librari':4,9,54 'linear':37 'maintain':57 'mathemat':83 'nonlinear':39 'ongo':73 'open':16 'open-sourc':15 'oper':23 'packag':19 'provid':34 'python':1,6,11,18 'python-control':10 'regular':69 'releas':65,70 'respons':48 'robot':81 'simul':82 'sourc':17 'stabl':64 'system':3,8,32,41,79 'time':45 'version':59","created_at":"2026-04-15T18:33:50.062010+00:00","updated_at":"2026-04-16T03:45:16.878925+00:00","problems":{"verify_error":"× No solution found when resolving dependencies:\n  ╰─▶ Because python-control was not found in the package registry and you\n      require python-control, we can conclude that your requirements are\n      unsatisfiable."},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.10.2","cli_name":"","cli_version":null,"type":"library","homepage":"https://python-control.org","github":"https://github.com/python-control/python-control","docs":null,"changelog":null,"pypi":"https://pypi.org/project/control/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"install_fail","verified_at":"2026-06-28","last_verified":"2026-06-28","next_check":"2026-07-05","install_tag":null}}