1 Introduction

Consider a class of nonlinear dynamical systems described by (all the variables are given in time domain unless stated differently)

$$\begin{aligned} \dot{x}= & {} \left( {-\bar{{f}}+\Delta f} \right) x+\left( {\bar{{g}}+\Delta g} \right) u+n\nonumber \\= & {} -\bar{{f}}x+\bar{{g}}\left( {u+d} \right) , \end{aligned}$$
(1)

where xu and n represent the state, control input and external non-measurable disturbance, respectively. Moreover, \( \bar{{f}} \ge 0, \bar{{g}} >0\) denote nominal (known) constant part of the system, while \(\Delta f, \Delta g\) represent corresponding (possibly time-varying, state-dependent and control-dependent) uncertainties. Scalar notations are utilized for simplicity; yet the obtained results may be extended to vector-matrix cases as well. The uncertainty- and disturbance-related terms are lumped into single variable d as

$$\begin{aligned} d=\bar{{g}}^{-1}\left( {\Delta fx+\Delta gu+n} \right) . \end{aligned}$$
(2)

Applying the feedback linearizing control law,

$$\begin{aligned} u=\bar{{g}}^{-1}\left( {\bar{{f}}x-Ax+Br} \right) -d \end{aligned}$$
(3)

with r denoting the reference command to the system and \(A>0, B>0\) determining the desired stable closed-loop dynamics, would bring the closed-loop system to the form of (\(A=B\) is a typical case)

$$\begin{aligned} \dot{x}=-Ax+Br. \end{aligned}$$
(4)

Nevertheless, (3) cannot be applied as is since the lumped uncertainty and disturbance d is unknown. Note that according to (1),

$$\begin{aligned} d=\bar{{g}}^{-1}\left( {\dot{x}+\bar{{f}}x} \right) -u. \end{aligned}$$
(5)

Obviously, (5) cannot be used in (3) as is. UDE-based approach proposes to estimate d as

$$\begin{aligned} \tilde{d}=d\,{*}\,h=\left( {\bar{{g}}^{-1}\left( {\dot{x} +\bar{{f}}x} \right) -u} \right) \,{*}\,h, \end{aligned}$$
(6)

where h(t) is an impulse response of a frequency-selective filter and ‘\({}^{*}\)’ denotes the convolution operator. Then, \( {\tilde{d}} \) is used in (3) instead of d. The modified control law is therefore

$$\begin{aligned} u= & {} \bar{{g}}^{-1}\left( {\bar{{f}}x-Ax+Br} \right) -\tilde{d}=\bar{{g}}^{-1}\left( {\bar{{f}}x-Ax+Br} \right) \nonumber \\&-\left( {\bar{{g}}^{-1}\left( {\dot{x}+\bar{{f}}x} \right) -u} \right) \,{*}\,h. \end{aligned}$$
(7)

Rearranging (7), the UDE-based control law is given by

$$\begin{aligned} u= & {} \bar{{g}}^{-1}\left( \bar{{f}}x-L^{-1}\left\{ {\frac{sH(s)}{1-H(s)}} \right\} \,{*}\,x \right. \nonumber \\&\left. \,+\,L^{-1}\left\{ {\frac{1}{1-H(s)}} \right\} \,{*}\,\left( {-Ax+Br} \right) \right) , \end{aligned}$$
(8)

where \(L\{\cdot \}\) is the Laplace transform operator and \(H(s)=L\{h(t)\}\). Substituting (7) into (1) and rearranging results in the following closed-loop dynamics,

$$\begin{aligned} \dot{x}=-Ax+Br+d-d\,{*}\,h, \end{aligned}$$
(9)

Taking Laplace transform and rearranging, there is

$$\begin{aligned} X(s)=T_R (s)R(s)+T_D (s)D(s), \end{aligned}$$
(10)

where

$$\begin{aligned} T_R (s)=BT_A (s), \, {T_D (s)=T_A (s)T_H (s)}, \end{aligned}$$
(11a)

with

$$\begin{aligned} T_A (s)=(s+A)^{-1}, \, {T_H (s)=1-H(s),} \end{aligned}$$
(11b)

and \(X(s)=L\{x(t)\}, R(s)=L\{r(t)\}, D(s)=L\{d(t)\}\) and \(H(s)=L\{h(t)\}\). According to (10), bringing \(T_{D}(s)\) as close to zero as possible allows nearly perfect tracking. Since A is designed according to desired transient performance and \({\bar{f}} \) denotes the nominal part of the system, \({{T}_{D}}(s)\) can be shaped by proper selection of H(s).

2 Selection of \(H(\varvec{s})\)

Consider a first-order \(\alpha \)-filter given by [2]

$$\begin{aligned} H(s)=\frac{(1-\alpha )s+\omega _{T}}{s+{\omega _{T}}}, \end{aligned}$$
(12)

with \(0<\alpha < 1\). Then,

$$\begin{aligned} T_{H} (s)=\frac{\alpha s}{s+\omega _{T}}, \end{aligned}$$
(13)

and

$$\begin{aligned} T_{D} (s)=\alpha \frac{s}{\left( {s+\omega _{T} } \right) \left( {s+A} \right) }. \end{aligned}$$
(14)

It should be emphasized that classical UDE-filter-based case obeys (12)–(14) for \(\alpha = 1\). Note that (14) represents a band-pass filter, i.e. \(T_{D}(0) = T_{D}(\infty ) = 0\). In order to determine peaking frequency and corresponding magnitude of \(T_{D}\), letting

$$\begin{aligned} \left( {\frac{d}{d\omega }\left| {T_{D} (\omega )} \right| } \right) _{\omega =\omega _{DM}} =0, \end{aligned}$$
(15)

results in

$$\begin{aligned} {\omega _{DM}} =\sqrt{\omega _{T} A},\, \left| {T_{D} (\omega _{DM} )} \right| =\frac{\alpha }{\omega _T +A}, \end{aligned}$$
(16)

indicating that in order to improve the uncertainty/disturbance rejection capability, either \(\omega _{T}\) should be increased (cf. Fig. 1) or \(\alpha \) should be decreased (cf. Fig. 2). In practical cases, where available control bandwidth is always limited (by e.g. sampling frequency, switching frequency, actuator bandwidth etc.), neither \({\omega _{T}}\) can be increased to infinity nor \(\alpha \) can be decreased to zero. The following section demonstrates that in any practical case (i.e. for a finite control bandwidth), increasing \(\omega _{T}\) should be preferred over decreasing \(\alpha \) since the former leads to better disturbance rejection.

Fig. 1
figure 1

Influence of \(\omega _{T}\) on \({\vert }T_{D}(\omega ){\vert }\) for \(A= 100\) and \(\alpha = 1\)

Fig. 2
figure 2

Influence of \(\alpha \) on \({\vert }T_{D}(\omega ){\vert }\) for \(A = 100\) and \(\omega _{T} = 100\)

Fig. 3
figure 3

The overall system in Laplace domain

3 Performance analysis

Substituting (12) in (8) and rearranging, the UDE-based control law is given in Laplace domain by

$$\begin{aligned} U(s)= & {} -\bar{{g}}^{-1}\frac{(1-\alpha )s^{2}+\left( {-\bar{{f}}\alpha +\omega _T +A} \right) s+A\omega _T }{\alpha s}X(s)\nonumber \\&\,+\,\bar{{g}}^{-1}\frac{B\left( {s+\omega _T } \right) }{\alpha s}R(s) \nonumber \\= & {} -H_{FB} (s)X(s)+H_{FF} (s)R(s). \end{aligned}$$
(17)

On the other hand, the Laplace transform of the plant (1) is expressed as

$$\begin{aligned} X(s)=T_{f} (s)\left( {U(s)+D(s)} \right) , \end{aligned}$$
(18)

with

$$\begin{aligned} T_{f} (s)=\bar{{g}}{\left( {s+\bar{{f}}} \right) }^{-1}. \end{aligned}$$
(19)

The overall system is shown in Fig. 3, demonstrating its two-degrees-of-freedom nature [3].

Tracking and disturbance rejection capabilities of the system, given by (10), are then linked to Fig. 3 as

$$\begin{aligned} T_{R} (s)=H_{FF} (s)\frac{T_{f} (s)}{1+T_{f} (s)H_{FB} (s)}, \end{aligned}$$
(20)

and

$$\begin{aligned} T_{D} (s)=\frac{T_{f} (s)}{1+T_{f} (s)H_{FB} (s)}, \end{aligned}$$
(21)

respectively.

Fig. 4
figure 4

\(\alpha -{\omega _{T}}\) trade-off for \({\bar{f}}=0\), \(A=200\) and \(\omega _{C} = 1000\)

Fig. 5
figure 5

Influence of A on the loop gain Bode diagram for \(\omega _{T} = 1000\) and \({\bar{f}}= 200\)

Fig. 6
figure 6

Influence of A on the loop gain magnitude for \(\omega _{T} = 1000\) and \({\bar{f}}= 200\)

Fig. 7
figure 7

Influence of \(\alpha \) on the loop gain Bode diagram for \(\omega _{T} = 1000, {\bar{f}}= 200\) and \(A = 100\)

Denote the available control bandwidth as \(\omega _{C}\). Then, \(A\le {\omega _{C}}\) must be satisfied in order to achieve the desired tracking performance. On the other hand, in order to assure decent disturbance rejection, the loop gain \(L(s)=T_{f} (s)H_{FB} (s)\) should be higher than unity within the control bandwidth while satisfying \(\left| {L(j\omega _{C} } \right| \le 1/{\sqrt{2}}\) in order to respect the available control bandwidth. Moreover, the loop gain determines system stability as well. Taking into account (17) and (19), the loop gain is given by

$$\begin{aligned} L(s)=\frac{(1-\alpha )s^{2}+\left( {-\bar{{f}}\alpha +\omega _{T} +A} \right) s+A\omega _{T} }{\alpha s\left( {s+\bar{{f}}} \right) }. \end{aligned}$$
(22)

Hence, it should satisfy the following inequality,

$$\begin{aligned}&\left| {\frac{A \omega _{T} -(1-\alpha ){\omega _{C}^{2}} +j\left( {-\bar{{f}}\alpha +\omega _{T} +A} \right) \omega _{C} }{j\alpha \omega _{C} \left( {j\omega _{C} +\bar{{f}}} \right) }} \right| \nonumber \\&\quad \le \frac{1}{\sqrt{2}}\Rightarrow \left( {A^{2}+\omega _{C}^{2} } \right) \omega _{T}^{2} +2\omega _{C}^{2} \alpha \left( {A-\bar{{f}}} \right) \omega _{T}\nonumber \\&\qquad +\left( {(1-\alpha )^{2}-\frac{\alpha ^{2}}{2}} \right) \omega _{C}^{4}\nonumber \\&\qquad +\,\omega _{C}^{2} \left( {\left( {A-\bar{{f}}\alpha } \right) ^{2}-\frac{\alpha ^{2}}{2}\bar{{f}}^{2}} \right) \le 0. \end{aligned}$$
(23)

The solution of (23) would reveal the connection between \(\alpha \) and \(\omega _{T}\) for a given set of \(A, {\bar{f}}\) and \(\omega _{C}\). The solution is cumbersome and is not listed for brevity. It is only noted that increasing \(\alpha \) leads to decreasing \(\omega _{T}\) and vice versa. Fig. 4 demonstrates the \(\alpha \) - \(\omega _{T}\) trade-off for \({\bar{f}}=0\), \(A=200\) and \(\omega _{C} = 1000\). On the other hand, considering the classical UDE filter case, i.e.

$$\begin{aligned} \left. {L(s)} \right| _{\alpha =1}= & {} \frac{\left( {\omega _T +A-\bar{{f}}} \right) s+A\omega _T }{s\left( {s+\bar{{f}}} \right) }\nonumber \\= & {} \frac{A\omega _T \bar{{f}}^{-1}}{s}\cdot \frac{\frac{s}{A\omega _T \left( {\omega _T +A-\bar{{f}}} \right) ^{-1}}+1}{\frac{s}{\bar{{f}}}+1}, \end{aligned}$$
(24)

allows to obtain an elegant solution of (23), given by

$$\begin{aligned} \omega _T \le \omega _C \sqrt{\frac{\left( {\frac{1}{2}} \right) \omega _C^2 -\left( {\left( {A-\bar{{f}}} \right) ^{2}-\frac{1}{2}\bar{{f}}^{2}} \right) }{A^{2}+\omega _C^2 }}. \end{aligned}$$
(25)
Fig. 8
figure 8

Influence of \(\alpha \) on the loop gain Bode diagram for \(\omega _{T} = 1000, {\bar{f}}= 200\) and \(A = 200\)

It is interesting to note that if \(A={\bar{f}}\), then

$$\begin{aligned} \left. {L(s)} \right| _{\alpha =1,A=\bar{{f}}} =\frac{\omega _T }{s}, \end{aligned}$$
(26)

with

$$\begin{aligned} \omega _{T} \le \frac{\omega _{C}}{\sqrt{2}}, \end{aligned}$$
(27)

i.e., the system bandwidth is \(\omega _{T}\), the phase margin is \(90^{\circ }\) and gain margin is infinite. In case \(A\,{>}\,{\bar{f}}\), the crossover frequency increases, while phase margin decreases. Alternatively, if \(A\,{<}\,{\bar{f}}\), the crossover frequency reduces while phase margin increases. The three cases are shown in Figs. 5 and 6. Next, consider the general case of (22) with \(\alpha \,{<}\,1\). Figs. 7, 8, 9 demonstrate corresponding Bode diagrams for different values of \(\alpha \). It may be concluded that decreasing \(\alpha \) improves both disturbance rejection (by increasing the loop gain magnitude) and stability (by increasing the phase margin).

Fig. 9
figure 9

Influence of \(\alpha \) on the loop gain Bode diagram for \(\omega _{T} = 1000, {\bar{f}}= 200\) and \(A = 300\)

Fig. 10
figure 10

Comparison of \(\alpha \)-filter and UDE-filter-based loop gains

Fig. 11
figure 11

Time-domain simulation results

Nevertheless, performance enhancement is achieved at the expense of increased control bandwidth. Note that if control bandwidth increase is possible, \(\omega _{T}\) could be increased instead of decreasing \(\alpha \). As an example, consider for simplicity the \(A={\bar{f}}\) case with \(\omega _{T} = 1000\) and \(\alpha = 0.75\), leading to the crossover frequency of 1414.2 rad/s and phase margin of \(109.5^{\circ }\). Selecting a classical UDE filter \((\alpha = 1)\) with \(\omega _{T} = 1414.2\) leads to a similar crossover frequency with phase margin of \(90^{\circ }\). The magnitude of the UDE-filter-based loop gain remains circa 0.5 dB above the magnitude of the \(\alpha \)-filter-based loop gain throughout the available bandwidth, as shown in Fig. 10. Consequently, for the same control bandwidth, the \(\alpha \)-filter outperforms the UDE filter in terms of stability but is inferior to the UDE filter in terms of disturbance rejection. In addition, while the roll-off of the UDE filter remains -20dB/dec beyond the crossover frequency, the roll-off of the \(\alpha \)-filter increases, indicating worse high-frequency noise rejection capabilities. Similar behavior is shown by arbitrary varying \(A,{\bar{f}}\) and \(\omega _{T}\) (not shown for brevity).

Time-domain simulation results corresponding to Fig. 10 are shown in Fig. 11 for \(r(t)=u(t)\) and \(d(t) = \hbox {sin}(100t)\). While the tracking of both systems is identical, steady-state disturbance rejection of the system based on the UDE filter is slightly better than the one based on the \(\alpha \)-filter.