Active Disturbance Rejection Control-implementation examples

Active Disturbance Rejection Control (ADRC) simulator for SISO and MIMO systems. Implementation examples.


Updated 10 Dec 2020

View License

Active Disturbance Rejection Control (ADRC) is considered as a new control paradigm. It is mainly characterized by:
i. It does not require a detailed mathematical model of the process to be controlled. The system order and its critical gain need to be known.
ii. Non-modelled dynamics as well as other uncertainties and external perturbations are combined in an extended state which is estimated by an extended state observer.
iii. The information in the extended state (called "total perturbation") is used to transform the real process into a nominal disturbance-free plant controlled by a simpler state feedback law.

These files are the implementation of linear ADRC for two nonlinear application examples: a Peltier thermoelectric module (SISO example) and a Continuous Stirred Tank Reactor (MIMO example).

These implementation examples are addressed in the tutorial: "Control por rechazo activo de perturbaciones: guía de diseño y aplicación" (Active disturbance rejection control: a guide for design and application) DOI:
Available at:

Please, before starting to use it, read the file "readme.txt"
Author: Blanca Viviana Martínez Carvajal
Research Group: Predictive Control and Heuristic Optimization (CPOH).
University: Universitat Politècnica de València.

Cite As

Blanca Viviana Martinez Carvajal (2023). Active Disturbance Rejection Control-implementation examples (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2020a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!





Version Published Release Notes

The description was updated to include the paper related with these implementation examples.