Metadata-Version: 2.1
Name: harold
Version: 1.0.1
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 :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Requires-Python: >=3.6
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| |Gitter| |Coveralls| |ReadTheDocs| |Downloads|

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

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- You can also use the tools available in SciPy ``signal`` module for basics
of LTI system manipulations.

3- Instead, if 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 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!

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
.. |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
.. |Downloads| image:: http://pepy.tech/badge/harold
    :target: http://pepy.tech/count/harold
    :alt: Download Counts

﻿
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

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.

