Linear ADRC Blockset

A collection of different implementation forms of linear active disturbance rejection control (ADRC).


Updated 18 Sep 2023

View License

This blockset includes continuous- and discrete-time, output- and error-based, state-space and transfer function forms of linear active disturbance rejection control (ADRC):
  • The continuous-time state-space form of output-based ADRC is the "classic" linear form (cf. Gao, "Scaling and bandwidth-parameterization based controller tuning", DOI: 10.1109/ACC.2003.1242516).
  • Discrete-time state-space forms are based on zero-order hold discretization using the current observer approach (cf. Miklosovic, "Discrete implementation and generalization of the extended state observer", DOI: 10.1109/ACC.2006.1656547).
  • Discrete-time transfer function forms exactly replicate the dynamics of the discrete-time state-space form (cf. Herbst/Madonski, "Tuning and implementation variants of discrete-time ADRC", DOI: 10.1007/s11768-023-00127-0).
  • The inner loops of error-based forms (and hence stability properties) are identical to their output-based equivalents (cf. Madonski, "ADRC in output and error form: connection, equivalence, performance", DOI: 10.1007/s11768-023-00129-y).
  • All blocks can be tuned using bandwidth parameterization (cf. Gao, "Scaling and bandwidth-parameterization based controller tuning", DOI: 10.1109/ACC.2003.1242516), either from time-domain or frequency-domain target values.
  • Some blocks additionally allow using half-gain tuning (cf. Herbst, "Half-gain tuning for active disturbance rejection control", DOI: 10.1016/j.ifacol.2020.12.1864), which reduces the impact of measurement noise on the controller output (may require the Control System Toolbox).
  • Continuous-time variants feature controller output limitation with built-in windup protection, discrete-time variants additionally have a rate limitation option for the controller output.

Cite As

Gernot Herbst (2023). Linear ADRC Blockset (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016b
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes