Skip to main content

A Python package for Control Systems Analysis

Project description

PySysControl

PySysControl Logo

A python package to analyse control systems down from the governing differential equation. The classes allow for the equations to be entered easily and intuitively.

Guidelines for entering a differential equation: Use double quotes, Lagrange notation uses single quotes for derivatives For multiplication use an asterisk For subtraction use +-, as in 5+-3. (There is a mathematical reason why this is more correct than 5-3, but that's beside the point) The above guidelines are also listed in the documentation.

The laplace_handler transforms the given equation from whatever domain it is defined on, which it is assumed to be the time-domain, to the complex valued s-domain.

The transfer_function class converts the given differential equations to a transfer function in the s-domain, which can be switched to the w-domain.

The functions in plotting generate plots based on the given system. The available plots are the Bode plot, the Pole Zero Map, the Step response and the Nyquist plot. Dark mode is also available for the plots.

The changelog of this package can be found in the github repository: https://github.com/Shagedoorn1/PySysControl

Changelog

[1.1.3] - 2025-03-20

  • First correctly functioning release

[1.2.0] - 2025-03-26

Added

  • Step response
  • Nyquist diagram

Changed

  • Added a dark_mode option for the plots

[1.2.5] - 2025-03-26

Fixed

  • Corrected a typo in pyproject.toml

[1.3.0] - 2025-04-04

Added

  • Solver class including:
    • Euler
    • Runge Kutta 2
    • Runge Kutta 4

Changed

  • Diffeq now supports exponents. Also, PySysControl now officially has requirements

[1.3.1] - 2025-04-06

Fixed

  • Fixed error in DiffEq.find_factors() that incorrectly turned "t" into "t**2"

[1.4.0] - 2025-04-10

Added

  • PDiffEq. DiffEqs brother for PDEs

[1.5.0] - 2025-04-16

Added

  • TransferFunction can now compute the closed loop transfer function. Which is used for the nyquist plot

[2.0.0] - 2025-05-23

Added

  • PDE:
    • TEM: Model Transverse Electro Magnetic Gaussian-Hermite modes
    • WaveFunc: Turn a desired function into a solution of the wave equation and animate it's propagation
    • OneD_WaveFunction: Solve the one dimensional Schrödinger equation for a given potential
  • Quantum:
    • GRAPE: Visualize the GRadient Ascend Pulse Engineering algorithm
    • Grover: Use Grovers algorithm to find desired values in a given array or list. (Warning, based on probability, could be wrong). Also can search for maximum and minimum values.

Changed

  • Overhauled the file structure into subpackages:
    • ODE
    • PDE
    • Control
    • Quantum
  • The step response in Control/Plotting is now animated to resemble an actual readout from an oscilloscope

How to update

Run the folowing command to update:

  • pip install --upgrade pysyscontrol

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysyscontrol-2.0.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysyscontrol-2.0.0-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file pysyscontrol-2.0.0.tar.gz.

File metadata

  • Download URL: pysyscontrol-2.0.0.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for pysyscontrol-2.0.0.tar.gz
Algorithm Hash digest
SHA256 987c8155b7be16f702bb0260022f839af67551b1546e689cbb596bdd96d35e4c
MD5 b98c084ad16d76883842a5aba3fa7be0
BLAKE2b-256 0a940a1f8a84fefea1563af18ef734694ea82aa60e433770002fb16e52088e5f

See more details on using hashes here.

File details

Details for the file pysyscontrol-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: pysyscontrol-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for pysyscontrol-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3f041c774763f8f3222924fec676c6f9f0e40b2cf4dc2e9ab8d64675212307f
MD5 7df9bb56822b6767e7476308fdd8b128
BLAKE2b-256 16488aa867cbd5bcdb16a0b7f9ef1f35bdf3a5b5014abe208a214c2a3d20b508

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page