A control systems library for Python3
Project description
|Travis-CI| |License| |Join the chat at Gitter| |Coveralls| |ReadTheDocs|
harold
======
A control systems package for Python3 (>=v3.6 required).
Introduction
============
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.
Usage
=====
A brief tutorial about the basics can be found under the notebooks folder.
Documentation
=============
See the `Sphinx documentation`_ . (currently under significant reconstruction)
Useful Links
============
1- There is already an almost-matured control toolbox which is led by
Richard Murray et al. (`click for the Github page`_ ) and it can perform
already most of the essential tasks. Hence, if you want to have
something that resembles the basics of matlab control toolbox, you should give
it a try. However, it is somewhat limited to SISO tools and also relies on
SLICOT library which can lead to installation hassle and/or licensing
problems for nontrivial tasks.
2- Instead, you are interested in robust control you probably would appreciate
the `Skogestad-Python`_ project.
Help Wanted!
============
``harold`` is built on rainy days and boring evenings. If you are missing out
a feature, don't be shy and contact. User-feedback has higher priority over
the general development.
Bug reports and PR submissions are more than welcome!
Contact
--------
If you have questions/comments feel free to shoot one to
``harold.of.python@gmail.com`` or join the Gitter chatroom.
.. _click for the Github page: https://github.com/python-control/python-control
.. _Sphinx documentation: http://harold.readthedocs.org/en/latest/
.. _Skogestad-Python: https://github.com/alchemyst/Skogestad-Python
.. |License| image:: https://img.shields.io/github/license/mashape/apistatus.svg
:target: https://github.com/ilayn/harold/blob/master/LICENSE
.. |Join the chat at Gitter| image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/ilayn/harold?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
.. |Travis-CI| image:: https://travis-ci.org/ilayn/harold.svg?branch=master
:target: https://travis-ci.org/ilayn/harold
.. |Coveralls| image:: https://coveralls.io/repos/github/ilayn/harold/badge.svg?branch=master
:target: https://coveralls.io/github/ilayn/harold?branch=master
.. |ReadTheDocs| image:: https://readthedocs.org/projects/harold/badge/?version=latest
:target: http://harold.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
ChangeLog
============
v.1.0.0
-------
+ 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
v.0.1.1rc1
----------
+ 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.
v0.1.1b5
--------
+ 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.
v0.1.1b4
--------
+ 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)
v0.1.1b3
--------
+ 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
v0.1.1b2
--------
+ Added Riccati solvers
+ More documentation
+ Added safety net for lyapunov solvers in case there is no solution
v0.1.1b1
--------
+ Added Lyapunov solvers
+ Fixed many bugs
- Removed block diag and switched to scipy version
v0.1.1a
-------
+ Initial versioning and packaging.
+ Adding documentation and Sphinx integration.
+ Basically everything there is.
harold
======
A control systems package for Python3 (>=v3.6 required).
Introduction
============
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.
Usage
=====
A brief tutorial about the basics can be found under the notebooks folder.
Documentation
=============
See the `Sphinx documentation`_ . (currently under significant reconstruction)
Useful Links
============
1- There is already an almost-matured control toolbox which is led by
Richard Murray et al. (`click for the Github page`_ ) and it can perform
already most of the essential tasks. Hence, if you want to have
something that resembles the basics of matlab control toolbox, you should give
it a try. However, it is somewhat limited to SISO tools and also relies on
SLICOT library which can lead to installation hassle and/or licensing
problems for nontrivial tasks.
2- Instead, you are interested in robust control you probably would appreciate
the `Skogestad-Python`_ project.
Help Wanted!
============
``harold`` is built on rainy days and boring evenings. If you are missing out
a feature, don't be shy and contact. User-feedback has higher priority over
the general development.
Bug reports and PR submissions are more than welcome!
Contact
--------
If you have questions/comments feel free to shoot one to
``harold.of.python@gmail.com`` or join the Gitter chatroom.
.. _click for the Github page: https://github.com/python-control/python-control
.. _Sphinx documentation: http://harold.readthedocs.org/en/latest/
.. _Skogestad-Python: https://github.com/alchemyst/Skogestad-Python
.. |License| image:: https://img.shields.io/github/license/mashape/apistatus.svg
:target: https://github.com/ilayn/harold/blob/master/LICENSE
.. |Join the chat at Gitter| image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/ilayn/harold?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
.. |Travis-CI| image:: https://travis-ci.org/ilayn/harold.svg?branch=master
:target: https://travis-ci.org/ilayn/harold
.. |Coveralls| image:: https://coveralls.io/repos/github/ilayn/harold/badge.svg?branch=master
:target: https://coveralls.io/github/ilayn/harold?branch=master
.. |ReadTheDocs| image:: https://readthedocs.org/projects/harold/badge/?version=latest
:target: http://harold.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
ChangeLog
============
v.1.0.0
-------
+ 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
v.0.1.1rc1
----------
+ 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.
v0.1.1b5
--------
+ 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.
v0.1.1b4
--------
+ 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)
v0.1.1b3
--------
+ 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
v0.1.1b2
--------
+ Added Riccati solvers
+ More documentation
+ Added safety net for lyapunov solvers in case there is no solution
v0.1.1b1
--------
+ Added Lyapunov solvers
+ Fixed many bugs
- Removed block diag and switched to scipy version
v0.1.1a
-------
+ Initial versioning and packaging.
+ Adding documentation and Sphinx integration.
+ Basically everything there is.
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
harold-1.0.0.zip
(98.6 kB
view hashes)
Built Distribution
harold-1.0.0-py3-none-any.whl
(91.8 kB
view hashes)