A control systems library for Python3
A control systems package for Python3 (>=v3.6 required).
This package is written with the ambition of becoming a daily work-horse of a control engineer/student/researcher with complete access to the source code with full rights (see LICENSE file) while still working inside a full-fledged programming language. This allows for working in any medium that supports Python and its scientific packages NumPy and SciPy.
harold fully supports the mantra of reproducible research and thus aims to provide the means of accessible and transparent computational development tools.
A brief tutorial about the basics can be found under the notebooks folder.
See the Sphinx documentation .
harold is built on rainy days and boring evenings unless you hire me directly for a specific tool. If you are missing out a feature, don’t be shy and contact me. User-feedback has higher priority over the general development.
Bug reports and PR submissions are more than welcome!
If you have questions/comments feel free to shoot one to firstname.lastname@example.org or join the Gitter chatroom.
ChangeLog ============ v.1.0.1 ——- + Restructured documentation, now has a function reference template. + State and Transfer conversion with static cols/rows bugs fixed. + minimal_realization and staircase bugs fixed + random model creation in continuous and discrete time is possible. + pole placement via ackermann
- First public release
- Time domain plots and auto time sequence generation.
- Unit tests are significantly improved(>80%)
- Lots and lots of bug fixes.
- Change the documentation theme to guzzle
- Added first order hold discretization method
- Removed FAQ from docs
- Unified State, Transfer checks via arg_utils
- Fixed transfer_to_state argument signature
- Added discretization and undiscretization funcs
- Separated the frequency domain computations and plotting
- Rewritten the frequency grid generation
- Fixed some of the unwrapping bugs
- Added lqr, dlqr, lqry and dlqry with a single signature
- Refactored minimal_realization related funcs.
- Fixed hinf-norm bugs
- Started time domain plots.
- Requirement of NumPy is changed to 1.13 and above. Among others, we need __array_ufunc__ override mechanism for representation algebra. This should not be an issue since noone seems to use this.
- The representations can now be sliced with G[:,1:3] etc.
- Sanitized the circular dependencies a bit more
- minimal_realization is changed to accept models instead of A,B,C triplet
- minimal_realization for Transfer uses the pole zero cancellation check
- more housekeeping and bug fixes
- added damping, natural frequency properties of poles
- state_to_transfer does not return minimal realizations (per request)
- More tests
- bode, nyquist plots with matplotlib
- Rewritten the transmission_zeros to improve accuracy
- Removed the single file and replaced it with modular files.
- Refactored Riccati solvers to SciPy official repo
- Lyapunov solver safety net is moot. Created PR #6775 in SciPy
- Added Riccati solvers
- More documentation
- Added safety net for lyapunov solvers in case there is no solution
- Added Lyapunov solvers
- Fixed many bugs
- Removed block diag and switched to scipy version
- Initial versioning and packaging.
- Adding documentation and Sphinx integration.
- Basically everything there is.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|harold-1.0.1-py3-none-any.whl (90.5 kB) Copy SHA256 hash SHA256||Wheel||py3||Jun 18, 2018|
|harold-1.0.1.tar.gz (78.6 kB) Copy SHA256 hash SHA256||Source||None||Jun 18, 2018|