Skip to main content
Erschienen in:

Open Access 2025 | OriginalPaper | Buchkapitel

4. Between Time and Frequency Domains

verfasst von : Gernot Herbst, Rafal Madonski

Erschienen in: Active Disturbance Rejection Control

Verlag: Springer Nature Switzerland

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

In this chapter, we will contextualize ADRC to deliver interpretations from the established field of linear control systems. This will, firstly, involve an interpretation of ADRC in terms of existing state-space control approaches. Secondly, a transition to the frequency domain is being made, as a major part of practical control engineering is performed in this domain. Analyzing and understanding ADRC from a frequency-domain perspective allows for a much easier migration from the PID world of controllers.

4.1 ADRC as a State-Space Controller

We have seen in Chap. 3 that the ADRC variant forming the core of all controllers in this book only consists of tools well known from linear systems theory: observer, state feedback, and disturbance compensation. In this section, we therefore want to precisely reveal the connection to “classical” state-space control.
State-Feedback Control with Disturbance Compensation
To introduce the “textbook” approach of observer-based state-feedback control with disturbance compensation, consider a state-space description of a plant with output y, input u, and an input disturbance d, all being scalar values:
$$\displaystyle \begin{aligned} \begin{aligned} \boldsymbol{\dot{x}}(t) &= \boldsymbol{A} \cdot \boldsymbol{x}(t) + \boldsymbol{b} \cdot u(t) + \boldsymbol{e} \cdot d(t) ,\\ y(t) &= \boldsymbol{c}^{\mathrm{T}} \cdot \boldsymbol{x}(t) . \end{aligned} {} \end{aligned} $$
(4.1)
Let us assume that the dynamics behind the nonmeasurable disturbance d(t) can be described by the following equation 1:
$$\displaystyle \begin{aligned} \begin{aligned} \boldsymbol{\dot{x}}_{\mathrm{d}}(t) &= \boldsymbol{A}_{\mathrm{d}} \cdot \boldsymbol{x}_{\mathrm{d}}(t) ,\\ d(t) &= \boldsymbol{c}^{\mathrm{T}}_{\mathrm{d}} \cdot \boldsymbol{x}_{\mathrm{d}}(t) . \end{aligned} {} \end{aligned} $$
(4.2)
These two equations can be combined to an extended process description:
$$\displaystyle \begin{aligned} \begin{aligned} \begin{pmatrix} \boldsymbol{\dot{x}}(t) \\ \boldsymbol{\dot{x}}_{\mathrm{d}}(t) \end{pmatrix} &= \begin{pmatrix} \boldsymbol{A} \ & \ \boldsymbol{e} \cdot \boldsymbol{c}^{\mathrm{T}}_{\mathrm{d}} \\ \boldsymbol{0} \ & \ \boldsymbol{A}_{\mathrm{d}} \end{pmatrix} \cdot \begin{pmatrix} \boldsymbol{x}(t) \\ \boldsymbol{x}_{\mathrm{d}}(t) \end{pmatrix} + \begin{pmatrix} \boldsymbol{b} \\ \boldsymbol{0} \end{pmatrix} \cdot u(t) ,\\ y(t) &= \begin{pmatrix} \boldsymbol{c}^{\mathrm{T}} & \boldsymbol{0} \end{pmatrix} \cdot \begin{pmatrix} \boldsymbol{x}(t) \\ \boldsymbol{x}_{\mathrm{d}}(t) \end{pmatrix} . \end{aligned} {} \end{aligned} $$
(4.3)
Assuming that only the plant output y(t) is measurable, a full-order Luenberger observer for the process model augmented by the disturbance model is now being set up, in order to serve as the basis for state-feedback control:
https://static-content.springer.com/image/chp%3A10.1007%2F978-3-031-72687-3_4/MediaObjects/617308_1_En_4_Equ4_HTML.png
StartBinomialOrMatrix ModifyingAbove Above ModifyingAbove bold italic x With bold caret With bold dot left parenthesis t right parenthesis Choose ModifyingAbove Above ModifyingAbove bold italic x With bold caret With bold dot Subscript normal d Baseline left parenthesis t right parenthesis EndBinomialOrMatrix equals ModifyingBelow Start 2 By 2 Matrix 1st Row 1st Column bold italic upper A 2nd Column bold italic e dot bold italic c Subscript normal d Superscript normal upper T Baseline 2nd Row 1st Column bold 0 2nd Column bold italic upper A Subscript normal d Baseline EndMatrix With bottom brace Underscript bold italic upper A Subscript normal o Baseline Endscripts dot StartBinomialOrMatrix ModifyingAbove bold italic x With bold caret left parenthesis t right parenthesis Choose ModifyingAbove bold italic x With bold caret Subscript normal d Baseline left parenthesis t right parenthesis EndBinomialOrMatrix plus ModifyingBelow StartBinomialOrMatrix bold italic b Choose bold 0 EndBinomialOrMatrix With bottom brace Underscript bold italic b Subscript normal o Baseline Endscripts dot u left parenthesis t right parenthesis plus bold italic k Subscript normal o Baseline dot left parenthesis y left parenthesis t right parenthesis minus ModifyingBelow Start 1 By 2 Matrix 1st Row 1st Column bold italic c Superscript normal upper T Baseline 2nd Column 0 EndMatrix With bottom brace Underscript bold italic c Subscript normal o Superscript normal upper T Baseline Endscripts dot StartBinomialOrMatrix ModifyingAbove bold italic x With bold caret left parenthesis t right parenthesis Choose ModifyingAbove bold italic x With bold caret Subscript normal d Baseline left parenthesis t right parenthesis EndBinomialOrMatrix right parenthesis period
(4.4)
The feedback gain inside the observer (4.4) is ko. Using the estimated states of the plant \(\hat {\boldsymbol {x}}(t)\) and the estimated states of the disturbance generator model \(\hat {\boldsymbol {x}}_{\mathrm {d}}(t)\), a state-feedback control law can now be implemented as follows:
$$\displaystyle \begin{aligned} u(t) = k_{\mathrm{s}} \cdot r(t) - \boldsymbol{k}_{\mathrm{c}}^{\mathrm{T}} \cdot \hat{\boldsymbol{x}}(t) - \boldsymbol{k}_{\mathrm{d}}^{\mathrm{T}} \cdot \hat{\boldsymbol{x}}_{\mathrm{d}}(t) . {} \end{aligned} $$
(4.5)
The overall control loop is shown in Fig. 4.1, with the controller (4.5) comprising the following elements:
  • State feedback: Feeding back the estimated states \(\hat {\boldsymbol {x}}(t)\) with the gain vector \(\boldsymbol {k}_{\mathrm {c}}^{\mathrm {T}}\) moves the poles of the plant as desired for the closed-loop dynamics, which are determined by the eigenvalues of \(\left (\boldsymbol {A} - \boldsymbol {b} \boldsymbol {k}_{\mathrm {c}}^{\mathrm {T}} \right )\).
  • Static gain compensation: To ensure r = y in steady state, the gain ks must be set to the inverse of the loop gain using (4.6):
    $$\displaystyle \begin{aligned} k_{\mathrm{s}} = -\left[ \boldsymbol{c}^{\mathrm{T}} \cdot \left( \boldsymbol{A} - \boldsymbol{b} \boldsymbol{k}_{\mathrm{c}}^{\mathrm{T}} \right)^{-1} \cdot \boldsymbol{b} \right]^{-1} . {} \end{aligned} $$
    (4.6)
  • Disturbance compensation: Feedback of \(\hat {\boldsymbol {x}}_{\mathrm {d}}(t)\) via \(\boldsymbol {k}_{\mathrm {d}}^{\mathrm {T}}\) to compensate the influence of the disturbance d(t) on the plant. Inserting (4.5) in (4.1) reveals that the disturbance may be fully rejected if accurately estimated and if \(\boldsymbol {b} \cdot \boldsymbol {k}_{\mathrm {d}}^{\mathrm {T}} = \boldsymbol {e} \cdot \boldsymbol {c}^{\mathrm {T}}_{\mathrm {d}}\) can be achieved.
Comparison with Linear ADRC
We have now gathered all the facts required to perform a detailed comparison of ADRC with the generic approach of observer-based state-feedback control with disturbance compensation.
  • Disturbance generator model: The disturbance model of ADRC in (3.​9) is an unknown constant value for the total disturbance f(t); therefore \(\hat {\boldsymbol {x}}_{\mathrm {d}}(t)\) only consists of one scalar value. If we consequently set d(t) = f(t) and \(\hat {\boldsymbol {x}}_{\mathrm {d}}(t) = \hat {x}_{\mathrm {d}}(t) = \hat {f}(t)\), we obtain for the disturbance generator model (4.2)
    $$\displaystyle \begin{gathered} \boldsymbol{A}_{\mathrm{d}} = \begin{pmatrix} \,0\, \end{pmatrix} ,\quad \boldsymbol{c}^{\mathrm{T}}_{\mathrm{d}} = \begin{pmatrix} \,1\, \end{pmatrix} . {} \end{gathered} $$
    (4.7)
  • Plant model: Comparing (4.4) with the corresponding elements in (3.​9) gives the values for A, b, cT of the plant (4.1):
    $$\displaystyle \begin{gathered} \boldsymbol{A} = \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} & \boldsymbol{I}^{(N-1) \times (N-1)} \\ 0 & \boldsymbol{0}^{1 \times (N-1)} \end{pmatrix} ,\quad \boldsymbol{b} = \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} \\ b_0 \end{pmatrix} ,\quad \boldsymbol{c}^{\mathrm{T}} = \begin{pmatrix} 1 & \boldsymbol{0}^{1 \times (N-1)} \end{pmatrix} . {} \end{gathered} $$
    (4.8)
    Additionally, using the values from (4.7), we can read off e from (4.4):
    $$\displaystyle \begin{gathered} \boldsymbol{e} = \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} \\ 1 \end{pmatrix} . {} \end{gathered} $$
    (4.9)
  • Control law: Comparing the control law of ADRC from (3.​15) with (4.5) gives
    $$\displaystyle \begin{gathered} k_{\mathrm{s}} = \frac{k_1}{b_0} ,\quad \boldsymbol{k}_{\mathrm{c}}^{\mathrm{T}} = \frac{1}{b_0} \cdot \boldsymbol{k}^{\mathrm{T}} = \frac{1}{b_0} \cdot \begin{pmatrix} k_1 & \cdots & k_N \end{pmatrix}^{\mathrm{T}} ,\quad \boldsymbol{k}_{\mathrm{d}}^{\mathrm{T}} = k_{\mathrm{d}} = \frac{1}{b_0} . {} \end{gathered} $$
    (4.10)
So far we could determine the values of the plant and disturbance generator model and have seen that control laws perfectly match structurally. Let us now confirm that tuning the gains in generic control law (4.5) delivers the results gathered in (4.10).
  • State-feedback gain: The controller gains \(\boldsymbol {k}_{\mathrm {c}}^{\mathrm {T}}\) must be chosen to achieve the desired eigenvalues of \(\left (\boldsymbol {A} - \boldsymbol {b} \boldsymbol {k}_{\mathrm {c}}^{\mathrm {T}} \right )\). Equation (4.8) is identical to (3.​17), apart from the input gain b0. Ignoring b0, tuning \(\boldsymbol {k}_{\mathrm {c}}^{\mathrm {T}}\) exactly corresponds to the procedure described in Sect. 3.​2.​1. Aiming at the same eigenvalues (e.g., using bandwidth parameterization) will hence deliver the same gains. Now compensating the neglected input gain b0 has the same effect as ADRC’s plant gain inversion factor \(\frac {1}{b_0}\). We can therefore confirm the result:
    $$\displaystyle \begin{aligned} \boldsymbol{k}_{\mathrm{c}}^{\mathrm{T}} = \frac{1}{b_0} \cdot \boldsymbol{k}^{\mathrm{T}} = \frac{1}{b_0} \cdot \begin{pmatrix} k_1 & \cdots & k_N \end{pmatrix} . {} \end{aligned} $$
    (4.11)
  • Static gain compensation: Putting (4.8) and (4.11) into (4.6) gives the necessary gain ks to compensate the inner loop gain:
    $$\displaystyle \begin{aligned} \begin{array}{rl} k_{\mathrm{s}} = -\Bigg[ \begin{pmatrix} 1 & \boldsymbol{0}^{1 \times (N-1)} \end{pmatrix} \cdot \Bigg( &\begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} & \boldsymbol{I}^{(N-1) \times (N-1)} \\ 0 & \boldsymbol{0}^{1 \times (N-1)} \end{pmatrix} \\ &- \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} \\ b_0 \end{pmatrix} \cdot \frac{1}{b_0} \cdot \begin{pmatrix} k_1 & \cdots & k_N \end{pmatrix}^{\mathrm{T}} \Bigg)^{-1} \!\!\cdot \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} \\ b_0 \end{pmatrix} \Bigg]^{-1} . \end{array} \end{aligned}$$
    Simplifying this equation leads to the confirmation of the result from (4.10):
    $$\displaystyle \begin{aligned} k_{\mathrm{s}} = \frac{k_1}{b_0} . {} \end{aligned} $$
    (4.12)
  • Disturbance compensation gain: As mentioned above, if an accurate estimation of the states \(\hat {\boldsymbol {x}}_{\mathrm {d}}(t)\) is provided by the observer, the disturbance d(t) can be fully compensated if the following condition is satisfied:
    $$\displaystyle \begin{aligned} \boldsymbol{b} \cdot \boldsymbol{k}_{\mathrm{d}}^{\mathrm{T}} &= \boldsymbol{e} \cdot \boldsymbol{c}^{\mathrm{T}}_{\mathrm{d}} ,\\ \text{i.e.,} \quad \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} \\ b_0 \end{pmatrix} \cdot k_{\mathrm{d}} &= \begin{pmatrix} \boldsymbol{0}^{(N-1) \times 1} \\ 1 \end{pmatrix} \cdot 1 . \end{aligned} $$
    We can therefore confirm the value obtained by comparison in (4.10):
    $$\displaystyle \begin{aligned} k_{\mathrm{d}} = \frac{1}{b_0} . {} \end{aligned} $$
    (4.13)
As we have, using (4.7) and (4.8), established full equivalence also for the augmented plant model in the observer (4.4), it is clear that tuning the observer gains ko with the same approach (e.g., bandwidth parameterization) will yield the same results as ADRC’s observer tuning described in Sect. 3.​2.​2, i.e., ko = l will hold.
Discussion
We have now traced linear ADRC back to “classical” observer-based state-feedback control with disturbance compensation and established full structural equivalence. What does that mean? Is ADRC nothing new and just constituted by a certain parameter choice?
Yes and no. Being structurally equivalent to well-known approaches from linear control systems means that all methods to analyze stability and performance can be applied to LADRC, as well, which is good news. Pointing out that LADRC boils down to a parameter choice, however, misses its point. This would correspond to claiming that PID controllers are just a parameter choice of transfer functions (in Laplace domain). While technically true, the major philosophical difference of ADRC is how these parameters are obtained. In classical state-feedback control, the observer is equipped with a plant model as accurately as possible. For ADRC, however, one deliberately makes the (erroneous) assumption of an integrator chain model, regardless of the actual plant behavior. This greatly simplifies plant modeling and represents a departure from the established model-based control school. 2
As a final note we also want to mention that, for ADRC, the disturbance generator model does not always have to be as simple as a constant disturbance. However, this is a very reasonable default choice, which structurally corresponds to the disturbance rejection abilities of any classical controller with an integral component (such as PI, PID, or pure I controllers). More sophisticated disturbance models are possible, and some examples will be discussed in Chap. 7. This could, for instance, be needed when trying to fully reject a sinusoidal disturbance. The insights provided by this chapter should serve as a starting point to customize ADRC with an application-tailored disturbance generator model.

4.2 Transfer Function Representation

Previously in Sect. 4.1 we have seen how linear ADRC is rooted in the established world of state-space control systems. As we have positioned ADRC as a practical tool aiming at sprawling in the territory of PI and PID controllers, we want to provide a means of understanding ADRC from a classical control engineering point of view, which usually involves treatment in the frequency domain. To this end, a transfer function representation will be derived here. And, as will be shown in Sect. 4.2.2, ADRC can—with a little extra effort—even be represented using realizable transfer functions. A comparison of these transfer functions to existing controllers enables deeper insights and understanding of ADRC, especially for control engineers native to the frequency domain world. And, not least, a transfer function representation will pave the way for efficiently implementing ADRC—something we will later discuss in detail for the discrete-time case in Chap. 8.
Deriving the transfer functions begins with the closed-loop observer dynamics. The Laplace transform of the control law (3.​15) is put in the observer (3.​16):
https://static-content.springer.com/image/chp%3A10.1007%2F978-3-031-72687-3_4/MediaObjects/617308_1_En_4_Equ14_HTML.png
ModifyingAbove bold italic x With bold caret left parenthesis s right parenthesis equals left parenthesis s bold italic upper I minus ModifyingBelow left parenthesis bold italic upper A minus bold italic l bold italic c Superscript normal upper T Baseline minus StartFraction 1 Over b 0 EndFraction bold italic b Start 1 By 2 Matrix 1st Row 1st Column bold italic k Superscript normal upper T Baseline 2nd Column 1 EndMatrix right parenthesis With bottom brace Underscript bold italic upper A Subscript upper C upper L Baseline Endscripts right parenthesis Superscript negative 1 Baseline dot left parenthesis StartFraction k 1 Over b 0 EndFraction bold italic b r left parenthesis s right parenthesis plus bold italic l y left parenthesis s right parenthesis right parenthesis period
(4.14)
To shorten further equations, we will use the abbreviated system matrix ACL of the closed-loop controller/observer dynamics as introduced in (4.14):
$$\displaystyle \begin{aligned} \boldsymbol{A}_{\mathrm{CL}} = \boldsymbol{A} - \boldsymbol{l}\boldsymbol{c}^{\mathrm{T}} - \frac{1}{b_0} \boldsymbol{b} \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} = \begin{pmatrix} \boldsymbol{0}^{N \times 1} & \boldsymbol{I}^{N \times N} \\ 0 & \boldsymbol{0}^{1 \times N} \end{pmatrix} - \begin{pmatrix} \boldsymbol{l} & \boldsymbol{0}^{(N+1) \times N} \end{pmatrix} - \begin{pmatrix} \boldsymbol{0}^{(N-1) \times N} & 0 \\ \boldsymbol{k}^{\mathrm{T}} & 1 \\ \boldsymbol{0}^{1 \times N} & 0 \end{pmatrix} . {} \end{aligned} $$
(4.15)
Presenting (4.15) in full detail reveals that, while being an (N + 1) × (N + 1) matrix, the rank of ACL cannot exceed N, as its rightmost column is always zero:
$$\displaystyle \begin{aligned} \boldsymbol{A}_{\mathrm{CL}} = \begin{pmatrix} -l_1 & 1 & 0 & \cdots & 0 & 0 & 0 \\ -l_2 & 0 & 1 & \cdots & 0 & 0 & 0 \\ -l_3 & 0 & 0 & \cdots & 0 & 0 & 0 \\ \vdots & \vdots & \ddots & \ddots & \ddots & \ddots & \vdots \\ -l_{N-1} & 0 & 0 & \cdots & 0 & 1 & 0 \\ -l_N - k_1 \ & -k_2 & -k_3 & \cdots & -k_{N-1} & -k_N & 0 \\ -l_{N+1} & 0 & 0 & \cdots & 0 & 0 & 0 \end{pmatrix} . {} \end{aligned} $$
(4.16)
A transfer function of the controller can now be obtained by putting (4.14) back in the Laplace transform of (3.​15), eliminating \(\hat {\boldsymbol {x}}(s)\) from the equations:
$$\displaystyle \begin{aligned} u(s) = \frac{k_1}{b_0} r(s) - \frac{1}{b_0} \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \left(s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}}\right)^{-1} \cdot \left( \frac{k_1}{b_0} \boldsymbol{b} r(s) + \boldsymbol{l} y(s) \right) . \end{aligned} $$
(4.17)
This can be reformulated with a common denominator polynomial:
$$\displaystyle \begin{aligned} u(s) =&\ \big( b_0 \cdot \det\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \big)^{-1} \cdot \notag\\ &\ \Bigg[ \left( k_1 \cdot \det\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) - \frac{k_1}{b_0} \cdot \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{b} \right) \cdot r(s) \notag\\ &\ \ - \left(\begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{l} \right) \cdot y(s) \Bigg] . {} \end{aligned} $$
(4.18)
Equation (4.18), which relates the two inputs (r and y) of ADRC’s control law to its output (u) in Laplace domain, can now serve as the common starting point for the two transfer function representations introduced next.

4.2.1 Non-realizable Representation with Two Transfer Functions

To account for the two different paths of r(s) and y(s) to u(s) in (4.18), we can put forth a control law for ADRC using two transfer functions as follows, which is visualized in Fig. 4.2:
$$\displaystyle \begin{aligned} u(s) = C_{\mathrm{FB}}(s) \cdot \left[ C_{\mathrm{PF}}^{\mathrm{NR}}(s) \cdot r(s) - y(s) \right]. {} \end{aligned} $$
(4.19)
In (4.19), CFB(s) denotes a feedback controller transfer function, which can directly be read off (4.18):
$$\displaystyle \begin{aligned} C_{\mathrm{FB}}(s) = \frac{ \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{l} }{ b_0 \cdot \det\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) } . {} \end{aligned} $$
(4.20)
The term CFB(s) is a strictly proper transfer function depending on the resolvent of ACL. In (4.16), it was made clear that ACL has rank N, as its rightmost column is zero—assuming that both the controller and the observer gains are nonzero, of course. This implicates that the denominator polynomial \(\det \left ( s \boldsymbol {I} - \boldsymbol {A}_{\mathrm {CL}} \right )\) brings an integrator pole to CFB(s).
The second transfer function that we can extract from (4.18) describes a prefilter acting on the reference signal input r(s):
$$\displaystyle \begin{aligned} C_{\mathrm{PF}}^{\mathrm{NR}}(s) = \frac{ k_1 \cdot \det\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) - \frac{k_1}{b_0} \cdot \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{b} }{ \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{l} } . {} \end{aligned} $$
(4.21)
The order of the numerator in (4.21) is greater than the order of its denominator. Being improper—or not realizable—is the reason we attached a superscript “NR” to \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\) in (4.19), (4.21), and Fig. 4.2.
The two transfer functions in (4.19), CFB(s) and \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\), can be given in the following form, and we can clearly see that the denominator of \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\) will cancel the zeros of CFB(s):
$$\displaystyle \begin{aligned} C_{\mathrm{FB}}(s) = \frac{K_{\mathrm{I}}}{s} \cdot \frac { 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i } { 1 + \displaystyle\sum_{i = 1}^N \alpha_i \cdot s^i } \quad \text{and}\quad C_{\mathrm{PF}}^{\mathrm{NR}}(s) = \frac { 1 + \displaystyle\sum_{i = 1}^{N+1} \gamma_i \cdot s^i } { 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i } . {} \end{aligned} $$
(4.22)
For the cases most relevant to practice (N = 1 and N = 2), all α, β, γ coefficients mentioned in (4.22) and KI are given in full detail in Appendix A.​2.
Discussion
The core loop of LADRC, which is responsible for its disturbance rejection behavior, is formed by a feedback controller CFB(s), consisting of an integrator in series with an Nth-order lead-lag filter. For orders N = 1 and N = 2, CFB(s) is structurally equivalent to the so-called Type 2 or Type 3 controllers used in power electronics. These are equivalent to PI or PID controllers equipped with an additional first- or second-order low-pass filter, which is, in turn, a recommended practice in “classical” control engineering. A more detailed frequency-domain analysis of CFB(s) will be performed in Sect. 5.​3.​3 of this book.
While this structure of ADRC’s transfer function representation is well known from classical control engineering—a feedback controller combined with a prefilter to shape the loop response—a downside remains with \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\) being a non-realizable transfer function. This representation is therefore mainly suitable for mathematical analysis of a control loop. For this reason, we do not give a “cooking recipe” here—this form of ADRC cannot be “prepared” in the real world. Fortunately, a solution to that problem can be found and will be presented next.

4.2.2 A Realizable Transfer Function Representation

It is obvious from (4.22) that the problem consists of the sN+1 term in the numerator of \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\). The prefilter would, however, be realizable if the order of its numerator polynomial could be reduced from N + 1 to N. Let us assume that this is possible, and we could represent the prefilter with the following transfer function, which differs from (4.22) only in the omission of the γN+1 ⋅ sN+1 term:
$$\displaystyle \begin{aligned} C_{\mathrm{PF}}(s) = \frac{ 1 + \displaystyle\sum_{i = 1}^N \gamma_i \cdot s^i }{ 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i } . {} \end{aligned} $$
(4.23)
Exactly that is possible. The non-realizable part of \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\) can be implemented using a third transfer function bypassing the feedback controller CFB(s), as shown in Fig. 4.3—we split the realization of \(C_{\mathrm {PF}}^{\mathrm {NR}}(s)\) up into two transfer functions CPF(s) and CFF(s). This new feedforward transfer function CFF(s) is now chosen to achieve the same transfer behavior from r(s) to u(s):
$$\displaystyle \begin{aligned} C_{\mathrm{PF}}^{\mathrm{NR}}(s) \cdot C_{\mathrm{FB}}(s) \stackrel{!}{=} C_{\mathrm{PF}}(s) \cdot C_{\mathrm{FB}}(s) + C_{\mathrm{FF}}(s) . \end{aligned}$$
Using (4.23) and (4.22), this gives
$$\displaystyle \begin{aligned} C_{\mathrm{FF}}(s) = \left( C_{\mathrm{PF}}^{\mathrm{NR}}(s) - C_{\mathrm{PF}}(s) \right) \cdot C_{\mathrm{FB}}(s) = \frac{ \gamma_{N+1} \cdot s^{N+1} }{ 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i } \cdot \frac{K_{\mathrm{I}}}{s} \cdot \frac{ 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i }{ 1 + \displaystyle\sum_{i = 1}^N \alpha_i \cdot s^i } . \end{aligned}$$
After canceling matching terms, we obtain CFF(s) in form of a realizable Nth-order high-pass filter:
$$\displaystyle \begin{aligned} C_{\mathrm{FF}}(s) = \frac{ K_{\mathrm{I}} \cdot \gamma_{N+1} \cdot s^N }{ 1 + \displaystyle\sum_{i = 1}^N \alpha_i \cdot s^i } . \end{aligned} $$
(4.24)
The two transfer functions CFF(s) and CPF(s) can also be derived from (4.18) with the same goal, yielding
$$\displaystyle \begin{gathered} C_{\mathrm{PF}}(s) = \frac{ k_1 \cdot \left( \det\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) - s^{N+1} - \frac{1}{b_0} \cdot \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{b} \right) }{ \begin{pmatrix} \boldsymbol{k}^{\mathrm{T}} & 1 \end{pmatrix} \cdot \operatorname{adj}\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) \cdot \boldsymbol{l} } \\ \text{and}\quad C_{\mathrm{FF}}(s) = \frac{ k_1 \cdot s^{N+1} }{ b_0 \cdot \det\left( s \boldsymbol{I} - \boldsymbol{A}_{\mathrm{CL}} \right) } . \end{gathered} $$
In summary, we can conclude that a realizable transfer function representation of continuous-time ADRC can be given with the following control law:
$$\displaystyle \begin{gathered} u(s) = C_{\mathrm{FB}}(s) \cdot \left[ C_{\mathrm{PF}}(s) \cdot r(s) - y(s) \right] + C_{\mathrm{FF}}(s) \cdot r(s) {} \\ \text{with}\quad C_{\mathrm{FB}}(s) = \frac{K_{\mathrm{I}}}{s} \cdot \frac { 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i } { 1 + \displaystyle\sum_{i = 1}^N \alpha_i \cdot s^i } ,\notag\\ C_{\mathrm{PF}}(s) = \frac { 1 + \displaystyle\sum_{i = 1}^N \gamma_i \cdot s^i } { 1 + \displaystyle\sum_{i = 1}^N \beta_i \cdot s^i } ,\quad \text{and}\quad C_{\mathrm{FF}}(s) = \frac { K_{\mathrm{I}} \cdot \gamma_{N+1} \cdot s^N } { 1 + \displaystyle\sum_{i = 1}^N \alpha_i \cdot s^i } \notag . \end{gathered} $$
(4.25)
It is important to note that the same α, β, γ coefficients and KI used in (4.22) of Sect. 4.2.1 are reused here for CFB(s), CPF(s), and CFF(s)—they are only assigned to three instead of two transfer functions. Equations for obtaining these coefficients from an existing state-space tuning or from bandwidth parameterization are given in full detail in Appendix A.​3.
Cooking Recipe (ADRC, Transfer Function Form)
To implement and tune the realizable transfer function form of ADRC derived in this section, the following steps have to be carried out:
1.
Plant modeling: Identify the order N and the gain parameter b0 of the plant model.
 
2.
Controller and observer tuning: When using bandwidth parameterization, the tuning parameters are ωCL and kESO. For first- and second-order ADRCs, these values can simply be put in the design equations for the KI and α, β, γ coefficients tabulated in Table A.​2.​2 and Table A.​2.​3 on page 194, respectively. It is also possible to compute these coefficients from the otherwise obtained state-space controller and observer gains kT and l.
 
3.
Implementation: The structure of the control law (4.25) is shown in Fig. 4.3, consisting of a feedback controller CFB(s), a prefilter CPF(s), and a feedforward term CFF(s). The feedback controller CFB(s) contains an integrator, which, to avoid windup issues, should be implemented with output limits.
 
All relevant equations and details are once more compiled in the Appendix, for the non-realizable and this realizable transfer function representations in Appendices A.​2 and A.​3, respectively.
Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://​creativecommons.​org/​licenses/​by/​4.​0/​), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.
The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Fußnoten
1
The subscript “d” in (4.2) refers to the disturbance d in this section. Later in this book, in Sect. 8.​1, this subscript will be reused for discrete-time values; please do not mistake them.
 
2
In the historical and literature overview on ADRC delivered in Chap. 7, we will point out that this very fact is considered a true “paradigm shift” and of ADRC’s key selling points.
 
Metadaten
Titel
Between Time and Frequency Domains
verfasst von
Gernot Herbst
Rafal Madonski
Copyright-Jahr
2025
DOI
https://doi.org/10.1007/978-3-031-72687-3_4