Metadata-Version: 2.4
Name: pysyscontrol
Version: 2.0.1
Summary: A Python package for Control Systems Analysis
Home-page: https://github.com/Shagedoorn1/PySysControl
Author: Shagedoorn1
Author-email: svenhagedoorn@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.26
Requires-Dist: matplotlib>=3.7
Requires-Dist: sympy>=1.12
Requires-Dist: scipy>=1.11
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# PySysControl
![PySysControl Logo](https://raw.githubusercontent.com/Shagedoorn1/PySysControl/main/Logo_svg.svg)

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
