Metadata-Version: 2.1
Name: harold
Version: 1.0.0
Summary: A control systems library for Python3
Home-page: https://github.com/ilayn/harold
Author: Ilhan Polat
Author-email: harold.of.python@gmail.com
License: MIT
Keywords: control-theory PID controller design industrial automation
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Provides-Extra: dev
Provides-Extra: test
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: tabulate
Provides-Extra: dev
Requires-Dist: check-manifest; extra == 'dev'
Provides-Extra: test
Requires-Dist: coverage; extra == 'test'

|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.

