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.2.tar.gz (26.8 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.2-py3-none-any.whl (35.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pysyscontrol-2.0.2.tar.gz
  • Upload date:
  • Size: 26.8 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.2.tar.gz
Algorithm Hash digest
SHA256 718a6dba52b1f3937643e0fc3c5b33529d26beec5f6b27233ef014e730514ae9
MD5 633363ce5dd67c5bfa2742cd6f9e1c32
BLAKE2b-256 8b52bfead7f0af2b35353ae79cc6e2abf5245afebeb767900eb23254fa126664

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pysyscontrol-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 35.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 25c751ca5b955574ace53af19a4da0d8df239fd6c45a4d3a8cf0852f3173134f
MD5 a40c5e5c7a1213bb382ccd95c0388fe1
BLAKE2b-256 faff8fd1d8c4aa11aa0c88a37ffb6222bb9c652c5effb143e375461c29ec0dfe

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