Active Disturbance Rejection Control
R2026bLibraries:
Simulink Control Design /
Adaptive Control
Description
The Active Disturbance Rejection Control block lets you design active disturbance rejection control (ADRC) for a plant with unknown dynamics and internal and external disturbances. ADRC is a model-free control technique that requires only an approximation of the plant dynamics to design controllers that provide robust disturbance rejection.
The block uses a first-order or second-order model approximation of the known system dynamics along with the unknown dynamics and disturbances modeled as an extended state of the plant. Typically, you determine this order from the open-loop step response of your plant in the operating range.
First-order approximation —
Second-order approximation —
Here:
y(t) is the plant output.
u(t) is the input signal.
b0 is the critical gain, which is the estimated gain that describes the plant response to an input u(t).
f(t) is the total disturbance, which includes unknown dynamics and other disturbances.
The block uses an extended state observer (ESO) to estimate f(t) and implements disturbance rejection control by reducing the effect of estimated disturbances on the known part of model approximation. To tune ADRC, set appropriate time domain, model type and critical gain, controller and observer bandwidths, and initial conditions.
For more information, see Active Disturbance Rejection Control.
Examples
Ports
Input
Output
Parameters
Programmatic Use: Add Block
To add the block programmatically, use the add_block function with one of these library block paths as the source.
"slctrl_adaptive/Active Disturbance Rejection Control"
Example: add_block("slctrl_adaptive/Active Disturbance Rejection Control","myModel/myBlock",MakeNameUnique="on")
For information about programmatic access to individual block parameters, see the Programmatic Use section of parameter descriptions on this page.




