This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).

As an alternative to both classical PID-type and modern model-based approaches to solving control problems, active disturbance rejection control (ADRC) has gained significant traction in recent years. With its simple tuning method and robustness against process parameter variations, it puts itself forward as a valuable addition to the toolbox of control engineering practitioners. This article aims at providing a single-source introduction and reference to linear ADRC with this audience in mind. A simulative study is carried out using generic first- and second-order plants to enable a quick visual assessment of the abilities of ADRC. Finally, a modified form of the discrete-time case is introduced to speed up real-time implementations as necessary in applications with high dynamic requirements.

Active disturbance rejection control (ADRC) [

While it can be shown (

The remainder of this article is organized as follows: After providing a step-by-step introduction to the linear case of ADRC in the following section, a series of simulative experiments is carried out to demonstrate the abilities of ADRC when being faced with varying process parameters or structural uncertainties and to visually provide insights into the effect of its tuning parameters. For the discrete-time case, which is introduced afterwards, an optimized formulation is presented, which enables a controller implementation with very low input-output delay.

The aim of this section is to repeat and present the linear case of ADRC in a self-contained manner, following [

Consider a simple first-order process,

We add an input disturbance,

As our last modeling step, we substitute

By combining

In order to derive the estimator, a state space description of the disturbed process in Equation (

Since the “virtual” input,

One can now use the estimated variables,

The according structure of the control loop is presented in

Control loop structure with ADRC for a first-order process.

If

If the state estimator and disturbance rejection work properly, one has to design a proportional controller only one single time to obtain the same closed loop behavior, regardless of the parameters of the actual process. For example, one can calculate

In order to work properly, observer parameters,

Placing all observer poles at one location is also known as “bandwidth parameterization” [

From this equation, the solutions for

To summarize, in order to implement a linear ADRC for a first-order system, four steps are necessary:

It should be noted that the same control structure can be applied to a first-order integrating process:

With an input disturbance,

Therefore, the design of the ADRC for a first-order integrating process can follow the same four design steps given above, with the only distinction that

Following the previous section, we now consider a second-order process,

As for the first-order case, we add an input disturbance,

With everything else combined into the generalized disturbance,

Control loop structure with active disturbance rejection control (ADRC) for a second-order process.

In order to employ a control law similar to the first-order case, an extended state observer is needed to provide an estimation,

Using the estimated variables, one can implement the disturbance rejection and a linear controller for the remaining double integrator behavior, as shown in

Provided the estimator delivers good estimates,

Under ideal conditions, this leads to:

While any second-order dynamics can be set using

Similar to the first order case, the placement of the observer poles can follow a common rule of thumb:

Once the pole locations are chosen in this manner, the observer gains are computed from the characteristic polynomial of

The respective solutions for

To summarize, ADRC for a second-order system is designed and implemented as follows:

Given that linear ADRC only employs tools known from classical linear state space control, how can it be compared to existing approaches? In this section, we will demonstrate that linear ADRC can be related to state space control with disturbance estimation and compensation based on the internal model principle [

Further, we assume to possess a model for the generation of the disturbance,

Note that

Accordingly, the standard state space control law can now be enhanced by the estimated state variables of the disturbance generator in order to compensate or minimize the impact of the disturbance on the process, if a suitable feedback matrix,

After inserting Equation (

We will now compare the combined state and disturbance observer based on the augmented process model, as well as the control law to linear ADRC presented before. The first- and second-order case will be distinguished by (a) and (b):

gives:

gives:

One can see that the observer and control law are equivalent in structure for both linear ADRC and a state space approach based on the internal model principle, and the model of the disturbance generator in ADRC could be made more visible by this comparison. If the standard design procedure of a state space observer and controller with disturbance compensation will lead to the same parameter values as ADRC will be verified subsequently by following the necessary steps to design

Obviously, both designs deliver the same parameters. Based on this comparison, one may view linear ADRC and its controller design as a special case of classical state space control with an observer using a system model augmented by a certain disturbance generator model (following the internal model principle) and disturbance compensation. However, a subtle, but important, distinction has to be made: while the latter relies on a model of the plant (like all modern model-based control approaches), ADRC does always deliberately assume an integrator model for the plant and leaves all modeling errors to be handled by the disturbance estimation. Therefore, ADRC can be applied without accurately modeling the process, which presents a departure from the model-based control school [

In the ideal case—with noise-free measurements and unlimited, ideal actuators in the control loop—ADRC would be able to suppress basically all effects of disturbances and parameter variations of the process. In practice, however, we have to live with constraints, such as limited observer dynamics or saturated controller outputs, leading to a compromise when choosing the parameters of the controller.

This section is meant to provide insights into the abilities and limitations of continuous-time ADRC in a visual manner. To that end, the controller—designed once and then left unchanged—will be confronted with a heavily varying process. The influence of the ESO pole placement (relative to the closed loop poles) will also be examined, as well as limitations of the actuator. The experiments are carried out by means of Matlab/Simulink-based simulations.

In

In a first series of experiments, a continuous-time ADRC (as introduced in

The ADRC is designed following the four steps described in

Throughout

Given the explicit feature of ADRC to cope with modeling errors, our first goal will be to provide visual insights into the control loop behavior under (heavy) variations of process parameters. A series of simulations was run with fixed ADRC parameters as given above and a first-order process with varying parameters,

The results are quite impressive. One can see that the closed loop step response remains similar or nearly identical to the desired behavior (settling time of one second) for most process parameter settings in

In the previous

The results in

Experiment 3.1.1: fixed first-order ADRC controlling first-order process with varying parameters. Nominal process parameters:

In practice, the abilities of any controller are tied to limitations of the actuator,

If parameters of our example process change, the control loop behavior may be influenced or limited by actuator saturation in different ways: If the process becomes slower (

Experiment 3.1.2: effect of pole locations for the extended state observer (ESO) on a fixed first-order ADRC controlling first-order process with varying parameter,

Control loop structure of first-order ADRC considering actuator saturation.

Experiment 3.1.3: effect of actuator saturation,

In classical PID-type control, some sort of anti-windup strategy would be required to prevent the side-effects of actuator saturation. We will see in the experiments of this section that for ADRC, those effects can be overcome very simply by feeding the state observer with the limited actuating variable,

Experiment 3.1.4: effect of dead time,

To demonstrate the behavior of ADRC under actuator saturation, the experiments of

For slower process dynamics,

Experiment 3.1.5: effect of structural uncertainties on a first-order ADRC controlling a process with dominating first-order behavior (

Many practical processes with dominating first-order behavior do exhibit a dead time. While there are many specialized model-based approaches to control such processes, we are interested in how ADRC will handle an unknown—albeit small—amount of dead time in the control loop.

In

In the experiments carried out so far in this section, it was assumed that our process could be reasonably well described by a first-order model. In practice, such a first-order model almost always results from neglecting higher-order dynamics, e.g. of the actuator. While it could already be seen that ADRC can handle variations of parameters very well, how does it behave if higher-order dynamics become unexpectedly visible in the process?

To demonstrate this behavior, a second pole was added to the process in the simulations from

Experiment 3.1.6: comparison of first-order ADRC and PI controller faced with varying process parameters,

Given the ubiquity of PID-type controllers in industrial practice, how does the standard approach keep up against ADRC? To that end, we will repeat the experiment regarding sensitivity towards process parameter variations and compare the ADRC results to a PI controller.

For the first-order process, a PI controller is sufficient to achieve any desired first-order closed loop behavior. In order to obtain comparable results, the PI controller is designed for nearly identical closed loop dynamics as the ADRC by aiming for the same settling time and placing a zero on the pole of the first-order process:

Experiment 3.1.7: comparison of disturbance rejection behavior (first-order ADRC

The simulation results in

As a final experiment for the continuous-time first-order ADRC, we want to examine the disturbance rejection abilities by injecting an input disturbance into the process for both ADRC and the PI controller from

On the left-hand side of

The second-order ADRC will be examined using a second-order process with the following nominal parameters:

Again, perfect knowledge of the process is assumed,

For the second-order ADRC, sensitivity to variations of the process parameters will be examined firstly. Deviations from the original DC gain (

From the results in

In order to fully appreciate the robustness towards parameter changes of the process, one has to compare these results against standard controllers, such as PID, as will be done in

In the previous section, we saw that changes in the process time constant,

In the previous experiments, the observer poles were set ten times to the left of the closed loop poles in the

As visible in the simulation results in

Analogously to

Experiment 3.2.1: a fixed second-order ADRC controlling second-order process with varying parameters. Nominal process parameters:

Experiment 3.2.2: effect of observer pole locations for a second-order ADRC controlling second-order processes with varying parameter,

Experiment 3.2.3: effect of actuator saturation,

Experiment 3.2.4: effect of dead time,

When decelerating the process (increased damping

Similar to

Experiment 3.2.5: effect of structural uncertainties on a second-order ADRC controlling a process with dominating second-order behavior (

Besides unknown dead times, the controller may be faced with higher-order dynamics in the process. Therefore, the effect of an unknown third pole in the process was examined in

To view and assess the abilities of the second-order ADRC from a perspective of classical control, we will now employ standard PI and PID controllers and—after fixing their parameters—expose them to the same process parameter variations, as done in

The PI controller is given and parameterized as follows:

Experiment 3.2.6: comparison of second-order ADRC, PI and PID controllers faced with varying process parameters,

For the PID controller, we will employ a

The simulation results are compiled in

Experiment 3.2.7: comparison of disturbance rejection behavior (second-order ADRC

As our final experiment for the second-order case, we will evaluate the disturbance rejection capabilities of ADRC, PI and PID control using the controller settings from the previous section. All of them are tuned for the same closed loop response.

For each control loop, an input disturbance,

Practical implementations of a controller with a state observer, such as the ADRC approach, will most likely be done in discrete time form, e.g. employing a microcontroller. Since the actual control law for linear ADRC is based on proportional state feedback, a discrete time version can already be obtained by only discretizing the extended state observer, which will be done in

In

For a system without a feed-through term, the standard approach for a discrete-time observer is:

If we look at the equation for the estimation error of Equation (

Since the observer gains in

Here,

In order to reduce unnecessary time delays (which may even destabilize the control loop), it is advisable [

If we put the prediction into the correction equation and abbreviate

From the estimation error, we can see that, in contrast to the prediction observer, the error dynamics are determined by the matrix

When computing the observer gains in

The discrete time versions of the matrices

For the first-order process in Equation (

This can be computed via Equation (

Now, one can compute the observer gain,

By comparing the coefficients, one obtains for

As in the continuous time case in

For a process with dominating first-order behavior,

For a second-order process,

Implement a discrete-time observer with two state variables,

Using the estimated state variables, implement a proportional state feedback controller:

Choose the controller parameters, e.g. via pole placement according to a desired settling time:

Place the desired observer poles far enough left of the closed loop poles in the

As in the continuous-time experiments in

Unless otherwise noted in individual experiments, the ADRC will be designed assuming perfect knowledge,

When choosing the sampling time for a discrete-time implementation of a controller with an observer, one has to consider not only the process dynamics, but also the dynamics of the observer. If, on the other hand, restrictions to sample times are present, the dynamics of the observer will be limited. In the case of ADRC, this would mean that the desired behavior of the process may not be achieved under all circumstances.

In

Experiment 4.2.1: influence of different sample time settings on discrete-time ADRC. Measurement noise variance:

Experiment 4.2.2: influence of different levels of measurement noise on discrete-time ADRC. Sample time:

While state feedback controllers based on observers rather than direct measurements are less susceptible to measurement noise, oscillations in the controller output will still occur with higher noise levels. In the simulations presented in

Experiment 4.2.3: influence of observer pole placement via

In the simulations with varying observer dynamics presented in

In a practical discrete-time implementation with tight timing constraints, the lag between sensor input and controller output should be as small as possible, which means that one should try to reduce the computational effort for a controller. Due to the observer-based approach, ADRC has a bigger computational footprint than a classical PID-type controller. In this section, we will try to reduce the number of computations, on the one hand, and present an implementation focused on low input-output delay, on the other hand.

We start with the discrete-time observer from Equation (

Control loop with modified ADRC structure and transformed state variables,

One can simplify the controller structure by scaling the outputs of the observer, such that the multiplications by

The ADRC structure can then be modified as given in

Using this matrix

In this manner, multiplications of the state variables by

In an application with fixed sampling frequency, the controller performance can be improved by minimizing the latency between acquisition of input signals and output of the updated controller action within a sampling period. This input-output lag is not necessarily dependent on the overall number of computations of a control law, but rather on the computations necessary to deliver the controller output, with the computations left being performed after that during the remaining time of the sampling period.

We will optimize the discrete-time implementation of ADRC in this regard and, subsequently, derive further equations in detail for the second-order case. Following the ideas of the previous section, the estimated state variables must be updated according to Equation (

When inserting Equation (

In Equation (

Note that the actual observer states,

Acquire the current measurement of the process output,

Calculate and output

Update the internal observer states by Equation (

Precompute the controller output for

By means of simulative experiments using generic first-order and second-order plants, it could be demonstrated that ADRC can be a powerful control tool. In this article, the linear case was examined. It can adapt even to heavily varying process parameters, and—in contrast to “classical” adaptive controllers—do so without having to maintain an explicit model of the process. Since only little knowledge about a process has to be provided along with the desired closed loop dynamics, the parameterization is easy for both continuous time and discrete time cases and, therefore, appealing to practitioners.

For control problems with high dynamic requirements, an optimized formulation of the discrete time linear ADRC equations can be found, which enables the controller output to be computed with only one addition and one multiplication after the sensor input becomes available.

If ADRC can show its full potential in a specific application does, however, depend on the relation of process dynamics, observer dynamics, sampling time and measurement noise. In order to provide the adaptability, the observer has to be fast enough compared to the process and closed loop dynamics, on the one hand. On the other hand, the placement of the observer poles will be limited by sampling frequency and the increasing effects of noise on the control action. As long as a good compromise can be found in this regard, ADRC has to be considered as a strong and welcome alternative to solving practical control problems.

The author would like to thank the reviewers for their helpful suggestions and comments.

The author declares no conflicts of interest.