A library for commonly used controls algorithms (e.g. creating LQR controllers). An alternative to Richard Murray's "control" package -- however, here we do not require Slycot.
- System analysis:
- Test whether a system is stable, controllable, stabilisable, observable, or stabilisable.
- Get the uncontrollable/unobservable modes
- Compute a system's controllability Gramian (finite horizon, and infinite horizon)
- Compute a system's H2 and Hinfinity norm
- Create continuous and discrete time LQR controllers
- Full-information H2 optimal controller
- H2 optimal observer
- Full-information Hinf controller
How to install
Install using pypi, or direct from the Github repository:
- Clone this repository somewhere convenient:
git clone https://github.com/markwmuller/controlpy.git
- Install the package (we'll do a "develop" install, so any changes are immediately available):
pip install -e .(you'll probably need to be administrator)
- You're ready to go: try running the examples in the
If you want to run the unit tests, you'll need to install cvxpy.
(c) Mark W. Mueller 2016
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.