pyadrc's Documentation
Active Disturbance Rejection Control for Python
A simple, yet powerful control method for when a PID controller just doesn't cut it.
Features
- Discrete linear time invariant active disturbance rejection controller for digital control systems.
- First- and second-order ADRC in state-space, transfer function and minimum-footprint (FeedbackTF) form.
- For practical application - half-gain tuning, magnitude and rate limiter for actuator limitations
- User guide and/or theoretical background (for when you don't have anything else to read).
- A first/second-order LTI model generator and a quadcopter altitude model for experimentation, testing and verification.
Installation
Installing pyadrc is really simple, just run this command in your terminal:
pip install pyadrc
or you can clone the repository and install it manually:
git clone https://github.com/onguntoglu/pyadrc
cd pyadrc
pip install .
Licence
pyadrc is licenced under the MIT Licence
Acknowledgements
None of this work would be possible without Gernot Herbst and his papers:
- Practical Active Disturbance Rejection Control: Bumpless Transfer, Rate Limitation and Incremental Algorithm
- A Simulative Study on Active Disturbance Rejection Control (ADRC) as a Control Tool for Practitioners
- Transfer Function Analysis and Implementation of Active Disturbance Rejection Control
- Half-Gain Tuning for Active Disturbance Rejection Control
- A Minimum-Footprint Implementation of Discrete-Time ADRC
Metadata
Release files for pyadrc 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyadrc-0.5.1.tar.gz | 103.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyadrc-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 114.4 kB
Release files / pyadrc-0.5.1.tar.gz
| Download URL | pyadrc-0.5.1.tar.gz |
|---|---|
| Size | 103.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8861f5324afd75b3d2d8789d378a80e9a2e6058a218734c651f7433aac17b14
|
|
BLAKE2b-256 checksum How to use checksums |
4e850ee6016be595add93a9d34279a6186edadfba766bce8ccb409fb05c9cfbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency logRelease files / pyadrc-0.5.1-py3-none-any.whl
| Download URL | pyadrc-0.5.1-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
58691e01130c4633eb3f18f4202a5fcc76b036e1034ba4a93f5e18c886f3dadb
|
|
BLAKE2b-256 checksum How to use checksums |
3a70c3b6c9f4ba54bfae7c82b88af1753569a521a35a11f4321cbefce3539847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency log