We strive to make the initial encounter with ADRC a smooth and pleasant experience for novices. Therefore, in this chapter, we will rely heavily on illustrative examples inspired by real plants. With such a “show, don’t tell” narration, we want to introduce the fundamental aspects of ADRC for some easily recognizable systems from engineering practice. We purposefully avoid complicated jargon and derivations here to give readers the gist of how the ADRC approach can be used to look at and solve various control problems. We deliberately focus on showing ad hoc solutions for first- and second-order plants as they are the most prevalent. Through the shown illuminative examples, we hope that you will not only start seeing a pattern in the design process of the ADRC methodology but also be intrigued enough about its simplicity and effectiveness to want to explore it further with this book.
2.1 Control of First-Order Plants
2.1.1 It All Starts with a Model—Or Does It?
For many control methods, especially the more modern and powerful ones, a (more or less) detailed model of the plant is necessary. Even the ubiquitous members of the PID controller family, who continue to persist in industrial practice despite decades of academic efforts, require some knowledge about the process. The character of such knowledge may vary as vastly as its sources, however, and range from theoretical considerations, leading to differential equations, to empirical or experimental data, gathered in time or frequency domain, or, maybe at the very low end, at least a rough idea of where to start experimenting in the search space of controller parameters.
Our goal for this section is to learn about the role of a plant model when using ADRC and how it is positioned in this landscape outlined so far. To make this more tangible, we will start by considering concrete examples.
Anzeige
Level Control of a Water Tank
Imagine your task is to design a controller for the plant sketched in Fig. 2.1, e.g., as part of a production process. The control objective is to keep the level (h) of the liquid in the tank at a desired level (hr) by adjusting the inlet valve position (v).
×
As the underlying physics is relatively simple to understand, we can develop a mathematical model of this process from first principles. Using a volume balance equation known from fluid mechanics, one can write
With a simplifying assumption that the inlet flow is proportional to its valve position, we can substitute qin = c ⋅ v, with c being the gain value. If the outlet flow depends only on hydrostatic pressure, we can intuitively express it as a function of level h and some parameters p, yielding qout = Q(h, p). And thirdly, volume V is related to h by the level-dependent cross-section area, i.e., \(\dot {V}(t) = A(h) \cdot \dot {h}(t)\). Putting this together allows us to rewrite (2.1) alternatively as
In control jargon, h is the controlled variable (often denoted as y), hr the set point or reference value (denoted as r), and v the manipulated variable (denoted as u), and qd(t) acts as an input disturbance (denoted as d) to the system. Rearranging (2.2) and replacing the variable names according to their role in a control loop, we obtain
To make the derived theoretical model (2.3) useful for controller design, we need to know not only its structure but also its ingredients. This is easier said than done, and there are several sources of modeling uncertainties. For example, we linearly approximated the inlet flow behavior. Even more importantly, A(y(t)) and Q(y(t), p) are both unknown functions that change nonlinearly with the operating point. The derived analytical description (2.3) is therefore not complete. Enhancing this model to be close to reality will require much more time and expert knowledge.
Let us therefore have an alternative take at rearranging (2.2), now grouping all unknown elements as a new, “virtual” disturbance input f(t). This includes the nonlinear terms Q and A, the actual disturbance qd, and an inevitable modeling error regarding the input gain, which we denote as Δb ⋅ v(t). You might be worried that this convenience comes at a price, but we will soon provide a solution that allows to get rid of these unknowns altogether. Our final plant model now reads
ModifyingBelow ModifyingAbove h With dot left parenthesis t right parenthesis With bottom brace Underscript ModifyingAbove y With dot left parenthesis t right parenthesis Endscripts equals ModifyingBelow minus StartFraction upper Q left parenthesis h left parenthesis t right parenthesis comma bold italic p right parenthesis Over upper A left parenthesis h left parenthesis t right parenthesis right parenthesis EndFraction plus normal upper Delta b dot v left parenthesis t right parenthesis minus StartFraction 1 Over upper A left parenthesis h left parenthesis t right parenthesis right parenthesis EndFraction dot q Subscript normal d Baseline left parenthesis t right parenthesis With bottom brace Underscript f left parenthesis t right parenthesis Endscripts plus ModifyingBelow StartFraction c Over upper A left parenthesis h left parenthesis t right parenthesis right parenthesis EndFraction With bottom brace Underscript b 0 Endscripts dot ModifyingBelow v left parenthesis t right parenthesis With bottom brace Underscript u left parenthesis t right parenthesis Endscripts period
(2.4)
Structurally, we obtained a very simple disturbed first-order model of our plant: \(\dot {y}(t) = f(t) + b_0 \cdot u(t)\). Before we continue to learn how this helps to create a control system, let us have a look at a second concrete example.
Temperature Control of a Heater
Temperature control is a task often not only found in process industries but also encountered in everybody’s daily life. To become acquainted with the underlying physics, we will first consider control of the temperature 𝜗 of an object with mass m in a generic fashion. A heating source shall apply thermal power Q to this object. Assume that heat transfer mechanisms with the environment can fully be described using convection and radiation. The Stefan-Boltzmann law states that the total power radiated from an object with a surface area A is \(A \varepsilon \sigma \cdot \left (\vartheta ^4 - \vartheta _{\mathrm {a}}^4\right )\), where ε is emissivity, σ is the Stefan-Boltzmann constant, and 𝜗a is the ambient temperature. The convective heat transfer rate is \(A U \cdot \left (\vartheta - \vartheta _{\mathrm {a}}\right )\), where U is the overall heat transfer coefficient. Putting this together for our generic heated object, having a specific heat capacity cp, we obtain for the rate of change of the object’s thermal energy:
$$\displaystyle \begin{aligned} m c_{\mathrm{p}} \cdot \dot{\vartheta}(t) = A U \cdot \left(\vartheta_{\mathrm{a}} - \vartheta(t)\right) + A \varepsilon \sigma \cdot \left(\vartheta_{\mathrm{a}}^4 - \vartheta(t)^4 \right) + Q(t) . {} \end{aligned} $$
(2.5)
Using control system language and symbols, 𝜗 acts as the controlled variable (y), and Q is the manipulated variable (u). The ambient temperature is a disturbance to the system, which could, with additional effort and costs, be measured using a second sensor. Accurately obtaining the physical parameters could turn out to be very difficult. Given that (2.5) is only a lumped-parameter model of a real-world plant, its accuracy will, however, always be limited. Its overall structure is similar to (2.2). Both are processes that can be modeled with first-order differential equations. An imbalance in inflows and outflows defines the rate of change in their quantities. Similar to the water-tank system, let us, therefore, rearrange (2.5) such that unknowns and uncertainties, such as errors in the input gain (Δb), are combined in a virtual disturbance f(t). This will also contain the ambient temperature, so that we do not have to measure it in addition to our actual controlled variable y(t) = 𝜗(t). We then obtain for the plant model
ModifyingBelow ModifyingAbove theta With dot left parenthesis t right parenthesis With bottom brace Underscript ModifyingAbove y With dot left parenthesis t right parenthesis Endscripts equals ModifyingBelow StartFraction upper A upper U Over m c Subscript normal p Baseline EndFraction dot left parenthesis theta Subscript normal a Baseline minus theta left parenthesis t right parenthesis right parenthesis plus StartFraction upper A epsilon sigma Over m c Subscript normal p Baseline EndFraction dot left parenthesis theta Subscript normal a Superscript 4 Baseline minus theta left parenthesis t right parenthesis Superscript 4 Baseline right parenthesis plus normal upper Delta b dot upper Q left parenthesis t right parenthesis With bottom brace Underscript f left parenthesis t right parenthesis Endscripts plus ModifyingBelow StartFraction 1 Over m c Subscript normal p Baseline EndFraction With bottom brace Underscript b 0 Endscripts dot ModifyingBelow upper Q left parenthesis t right parenthesis With bottom brace Underscript u left parenthesis t right parenthesis Endscripts period
Being in the form \(\dot {y}(t) = f(t) + b_0 \cdot u(t)\), the structure of this model is now very similar to (2.4). Let us get more practical and consider the example of heating a room. Even if we declared most of the model details to be part of a disturbance f(t), we still have to obtain the physical parameters needed for our remaining input gain b0. An alternative solution is resorting to a simple experiment: the well-known step response.
Figure 2.2 shows an example of a possible response. As can be seen, a simple first-order model captures the relevant dynamics of this plant very well. In this case, its transfer function is
But how can we obtain the value of b0? We find out by rearranging the differential equation for a generic first-order system to a now already familiar form:
upper T dot ModifyingAbove y With dot left parenthesis t right parenthesis plus y left parenthesis t right parenthesis equals upper K dot u left parenthesis t right parenthesis right arrow ModifyingAbove y With dot left parenthesis t right parenthesis equals ModifyingBelow minus StartFraction 1 Over upper T EndFraction dot y left parenthesis t right parenthesis With bottom brace Underscript f left parenthesis t right parenthesis Endscripts plus ModifyingBelow StartFraction upper K Over upper T EndFraction With bottom brace Underscript b 0 Endscripts dot u left parenthesis t right parenthesis period
This result reveals that we can apply our approach of simplifying the plant model to \(\dot {y}(t) = f(t) + b_0 \cdot u(t)\) to other first-order plants, with b0 often being trivial to obtain, e.g., from gain and time constant parameters.
×
Bottom Line
Taking a detour from our initial example brought us the following insight: Not only did we find a suitable simplified model for a whole class of problems, namely processes with a balance equation \(\frac {\mathrm {d}}{\mathrm {d}t} ( \mathrm {quantity} ) = \left ( \sum \mathrm {intake} - \sum \mathrm {expenditure} \right )\) at their heart, but also for any process that can reasonably well be described as a first-order plant \(P(s) = \frac {K}{T s + 1}\). Our model has the structure of an integrator with an input disturbance:
The only remaining parameter is b0, and we can obtain it from either theoretical analyses or experimental data, building on established methods of system identification—the choice of which depends on access to expert knowledge, capability of conducting experiments, and availability of resources. If we now create a control solution for this simplified model, we will be able to control all of these plants with the same small modeling effort. Time to move on!
2.1.2 Getting Rid of the Disturbance
In Sect. 2.1.1 we substantially simplified the modeling of first-order plants by aggregating elements that are mostly unknown or characterized by high levels of uncertainty into a new, virtual disturbance input f(t) to a first-order integrator (we will later say order N = 1). This leaves only one parameter b0 to be determined.
As might be more apparent from the graphical representation in Fig. 2.3, simplifying the model comes at the price of introducing a second input to an integrator. This appears to complicate things, as it is a bit harder to control y(t) using u(t) if the effects of an unknown and unmeasurable input f(t) must be compensated. Yet this can be achieved in multiple ways, as, after all, the rejection of disturbances belongs to the core competencies of automatic control.
×
A technique that allows us to separate the tasks of rejecting f(t) and designing the actual controller for y(t) is to let an observer create an estimate \(\hat {f}(t)\) of f(t) that allows us to cancel out its effects. With a thoughtful choice of u(t), this will enable a drastic simplification of our actual control task for y(t):
ModifyingBelow ModifyingAbove y With dot left parenthesis t right parenthesis equals f left parenthesis t right parenthesis plus b 0 dot u left parenthesis t right parenthesis With bottom brace Underscript d i s t u r b e d i n t e g r a t o r left parenthesis question mark question mark question mark right parenthesis Endscripts right squiggle arrow Overscript u question mark Endscripts ModifyingBelow ModifyingAbove y With dot left parenthesis t right parenthesis equals u 0 left parenthesis t right parenthesis With bottom brace Underscript p u r e i n t e g r a t o r Endscripts period
(2.8)
Controlling an undisturbed, pure integrator with a dedicated control action u0(t) is an easy task, which we will solve in Sect. 2.1.3. It becomes evident from (2.8) that, to achieve the desired transformation, the following overall control action has to be taken, which combines disturbance rejection and control of the integrator:
Constructing this disturbance rejection loop is the crucial step of the entire ADRC approach. Making modeling and controller design easier is only possible if rejecting f(t) is done in real time—or, more accurately, faster than the outer, actual control loop. But do not be scared, we can rely on the well-established tool of a linear Luenberger observer to create a sufficiently accurate estimation \(\hat {f}(t)\). To do so, we need to create a state-space representation of our model. Even though (2.7) is a first-order system, we make a conscious decision to extend our system description in state space by a second state variable. We select the following state variables:
Since \(\dot {f}(t)\) is not a measurable input, the observer for the system (2.10) will have to account for its effects by comparing the estimated system output \(\hat {y}(t)\) with the measured output y(t). The observer is governed by the following equations:
StartLayout 1st Row 1st Column StartBinomialOrMatrix ModifyingAbove Above ModifyingAbove x With caret With dot Subscript 1 Baseline left parenthesis t right parenthesis Choose ModifyingAbove Above ModifyingAbove x With caret With dot Subscript 2 Baseline left parenthesis t right parenthesis EndBinomialOrMatrix 2nd Column equals Start 2 By 2 Matrix 1st Row 1st Column 0 2nd Column 1 2nd Row 1st Column 0 2nd Column 0 EndMatrix dot StartBinomialOrMatrix ModifyingAbove x With caret Subscript 1 Baseline left parenthesis t right parenthesis Choose ModifyingAbove x With caret Subscript 2 Baseline left parenthesis t right parenthesis EndBinomialOrMatrix plus StartBinomialOrMatrix b 0 Choose 0 EndBinomialOrMatrix dot u left parenthesis t right parenthesis plus ModifyingBelow StartBinomialOrMatrix l 1 Choose l 2 EndBinomialOrMatrix dot left parenthesis y left parenthesis t right parenthesis minus ModifyingAbove y With caret left parenthesis t right parenthesis right parenthesis With bottom brace Underscript c o r r e c t i o n t e r m Endscripts comma 2nd Row 1st Column ModifyingAbove y With caret left parenthesis t right parenthesis 2nd Column equals Start 1 By 2 Matrix 1st Row 1st Column 1 2nd Column 0 EndMatrix dot StartBinomialOrMatrix ModifyingAbove x With caret Subscript 1 Baseline left parenthesis t right parenthesis Choose ModifyingAbove x With caret Subscript 2 Baseline left parenthesis t right parenthesis EndBinomialOrMatrix period EndLayout
(2.11)
In (2.11), l1 and l2 are observer gains that must be designed together with the outer control loop. For now, let us only sketch the general idea, which is based on pole placement. Combining the equations in (2.11), we obtain
from which we immediately obtain the system matrix of the closed-loop observer. Its pole locations, i.e., eigenvalues λ1 and λ2, will determine the observer dynamics—a pragmatic choice will be introduced in Chap. 3. From the characteristic polynomial, we can easily read off equations for l1 and l2 in order to achieve the desired dynamics:
det left parenthesis lamda bold italic upper I minus Start 2 By 2 Matrix 1st Row 1st Column minus l 1 2nd Column 1 2nd Row 1st Column minus l 2 2nd Column 0 EndMatrix right parenthesis equals lamda squared plus l 1 dot lamda plus l 2 ModifyingAbove equals With factorial left parenthesis lamda minus lamda 1 right parenthesis dot left parenthesis lamda minus lamda 2 right parenthesis equals lamda squared ModifyingBelow minus left parenthesis lamda 1 plus lamda 2 right parenthesis With bottom brace Underscript l 1 Endscripts dot lamda plus ModifyingBelow lamda 1 lamda 2 With bottom brace Underscript l 2 Endscripts period
Bottom Line
Using an observer is nothing special, but the plant model (2.10) set up for the observer departs from usual practice: Regardless of actual system characteristics, it is always being modeled as a disturbed integrator! The benefit of this particular model is that with \(\hat {x}_2(t) = \hat {f}(t)\) we now have the most important ingredient of (2.9) and are able to reject f(t)—i.e., both actual disturbances and modeling errors we made.
2.1.3 Control Loop
Once we have successfully set up the disturbance rejection as described in Sect. 2.1.2, designing the outer control loop for the controlled variable y(t) becomes substantially easier. Assuming accurate estimation \(\hat {f}(t) = f(t)\), applying the control action (2.9) to (2.7) will lead to a first-order integrator:
Our remaining task is then to design the control input u0 for the integrator dynamics (2.12). A simple proportional (P) controller with a gain value k1 suffices to follow a reference signal r(t):
The system (2.14) having a pole at \(-\frac {1}{k_1}\) means we can directly set k1 to a closed-loop bandwidth (which is the reciprocal value of the closed-loop time constant) straight from design goals and are done with tuning!
Bottom Line
The added slight complexity in the disturbance estimation and rejection phase paid off big time as the outer control loop design was made significantly easier. The required gain value of a simple P controller can be set directly from design goals such as bandwidth or time constant of the closed-loop dynamics. After designing the outer loop, the observer gains in (2.11) can be computed, e.g., by pole placement such that the observer bandwidth is fast enough compared to the closed loop to deliver estimates of the disturbance in a timely manner. We will provide full details on that later in Chap. 3.
Note that we can—and subsequently will—also make use of the output value \(\hat {x}_1(t) = \hat {y}(t)\) estimated by the observer, instead of using measurement y(t) in (2.13). This will add some (usually beneficial) low-pass filtering, reducing measurement noise. Putting this all together, we obtain the final control law for the ADRC approach, which employs values estimated by the observer (2.11):
Let us apply what we learned by designing a controller for the room temperature example, as we already have concrete model parameters available from Fig. 2.2. 1
From (2.6), we know that our only required plant model parameter is
Assuming that there is some headroom left in the heating power, we try to achieve the desired room temperature faster than in the open-loop mode, reducing the time constant from 7 min to 4 min, and accordingly design the controller:
The observer poles are placed five times farther to the left (we will provide all equations later in Chap. 3—it will be equally easy, promised!).
The results presented in Fig. 2.4 do, on the one hand, confirm that we achieved our design goals—quite impressive regarding the little effort we had to put into this. On the other hand, there is clearly room for improvement. Could the response still be sped up? And what about those visible oscillations? Spoiler: In Chap. 11, we will implement a real-world controller for a temperature control task. It turns out that even for such a seemingly simple example, and independent of using ADRC or PI control, there are a lot of details to get right, especially when putting things into practice: Respect the limits of actuators. Take care of higher-order dynamics or dead times to prevent oscillations. Turn on closed-loop control gracefully. And, oh, what about measurement noise?
×
Well, it is good that not everything is finished yet at the beginning of this book. We are just starting out, with a lot of interesting material to be discovered in the upcoming chapters.
2.2 Towards Control of Higher-Order Systems
The world is not made up only of first-order problems. Let us broaden our horizon and, once more starting from a concrete example, extend our portfolio to second-order systems. Before introducing ADRC for the general case in Chap. 3, this will allow us to develop an intuition on how the approach outlined so far can be gradually extended when being applied to systems with higher-order dynamics.
2.2.1 Plant Modeling of a DC-DC Converter
Departing from the world of rather slow systems, we will consider an example from the power electronics domain here: a synchronous step-down (buck) DC-DC converter. From the simplified schematic given in Fig. 2.5, a plant model shall be derived. Let iL(t) be the time-dependent inductor current and vC(t) the capacitor voltage, which equals the output voltage vout(t) = vC(t) in this simplified scenario. During the on-time of the high-side switch, the following set of equations holds:
In each cycle of the switching converter, the relative on-time of the high-side switch—also called duty cycle—shall be denoted as δ(t). Using the method of state-space averaging, a single set of equations describing the averaged behavior of the converter can be obtained by computing a weighted average of the on- and off-time equations (2.16) and (2.17) (with weights δ(t) and 1 − δ(t), respectively):
Clearly (2.19) has the structure of a plant with second-order low-pass behavior. Let us therefore continue in a generalized manner for a second-order plant with input u(t), output y(t), and system parameters K (DC gain), D (damping coefficient), and T (time constant). Its transfer function and differential equation are
det left parenthesis lamda bold italic upper I minus Start 2 By 2 Matrix 1st Row 1st Column minus l 1 2nd Column 1 2nd Row 1st Column minus l 2 2nd Column 0 EndMatrix right parenthesis equals lamda squared plus l 1 dot lamda plus l 2 ModifyingAbove equals With factorial left parenthesis lamda minus lamda 1 right parenthesis dot left parenthesis lamda minus lamda 2 right parenthesis equals lamda squared ModifyingBelow minus left parenthesis lamda 1 plus lamda 2 right parenthesis With bottom brace Underscript l 1 Endscripts dot lamda plus ModifyingBelow lamda 1 lamda 2 With bottom brace Underscript l 2 Endscripts period
(2.20)
In the spirit of our first-order examples, we rearrange the differential equation for the highest derivative and group the right-hand side as in (2.7), i.e., introducing a “virtual” disturbance f(t) (which may, of course, also contain actual disturbances):
y With two dots left parenthesis t right parenthesis equals ModifyingBelow minus StartFraction 2 upper D Over upper T squared EndFraction dot ModifyingAbove y With dot left parenthesis t right parenthesis minus StartFraction 1 Over upper T squared EndFraction dot y left parenthesis t right parenthesis With bottom brace Underscript f left parenthesis t right parenthesis Endscripts plus ModifyingBelow StartFraction upper K Over upper T squared EndFraction With bottom brace Underscript b 0 Endscripts dot u left parenthesis t right parenthesis period
(2.21)
For our DC-DC converter example, the value of the model parameter would be \(b_0 = \frac {V_{\mathrm {in}}}{LC}\). It is a welcome by-product of our derivations that now we already know how to model a widespread class of second-order systems based on system parameters that can be obtained either from analytical modeling or experimentally using established tools of system identification. Comparing (2.21) to (2.7), we can recognize that for the second-order case, only the order of the derivative of y(t) has increased, and the simplified second-order plant model for ADRC is
2.2.2 Inner Loop: Disturbance Rejection and Plant Gain Inversion
Since the simplified plant model (2.22) is so similar to (2.7), which is also visible from its block diagram representation in Fig. 2.6, we can effortlessly apply the same ideas from Sect. 2.1.2—constructing the control action u(t) as a combination of rejecting the disturbance f(t) and compensating the plant gain b0:
Putting this in plant model (2.22), i.e., disturbed second-order integrator \(\ddot {y}(t) = f(t) + b_0 \cdot u(t)\), will—with a sufficiently accurate estimation \(\hat {f}(t)\) of f(t)—turn it into an undisturbed, unity-gain second-order integrator. This can then be controlled much more easily by a dedicated control action u0(t) in the outer control loop:
A linear Luenberger observer can once again provide the necessary estimation \(\hat {f}(t)\). Compared to Sect. 2.1.2, we will have to increase the order of the underlying plant model by one and choose the following state variables:
While our first target is \(\hat {f}(t)\), having an estimate of \(\dot {y}(t)\) will soon prove very beneficial for controlling (2.23). The system model of our second-order integrator disturbed by f(t), i.e., the state-space representation of (2.22), is
As the disturbance is unknown, it can (for constant or slowly changing disturbances) be reconstructed by the observer from the known input u(t) and output y(t) values. The closed-loop equations of the observer for our system (2.24) are
StartLayout 1st Row 1st Column Start 3 By 1 Matrix 1st Row ModifyingAbove Above ModifyingAbove x With caret With dot Subscript 1 Baseline left parenthesis t right parenthesis 2nd Row ModifyingAbove Above ModifyingAbove x With caret With dot Subscript 2 Baseline left parenthesis t right parenthesis 3rd Row ModifyingAbove Above ModifyingAbove x With caret With dot Subscript 3 Baseline left parenthesis t right parenthesis EndMatrix 2nd Column equals Start 3 By 3 Matrix 1st Row 1st Column 0 2nd Column 1 3rd Column 0 2nd Row 1st Column 0 2nd Column 0 3rd Column 1 3rd Row 1st Column 0 2nd Column 0 3rd Column 0 EndMatrix dot Start 3 By 1 Matrix 1st Row ModifyingAbove x With caret Subscript 1 Baseline left parenthesis t right parenthesis 2nd Row ModifyingAbove x With caret Subscript 2 Baseline left parenthesis t right parenthesis 3rd Row ModifyingAbove x With caret Subscript 3 Baseline left parenthesis t right parenthesis EndMatrix plus Start 3 By 1 Matrix 1st Row 0 2nd Row b 0 3rd Row 0 EndMatrix dot u left parenthesis t right parenthesis plus ModifyingBelow Start 3 By 1 Matrix 1st Row l 1 2nd Row l 2 3rd Row l 3 EndMatrix dot left parenthesis y left parenthesis t right parenthesis minus ModifyingAbove y With caret left parenthesis t right parenthesis right parenthesis With bottom brace Underscript c o r r e c t i o n t e r m Endscripts comma 2nd Row 1st Column ModifyingAbove y With caret left parenthesis t right parenthesis 2nd Column equals Start 1 By 3 Matrix 1st Row 1st Column 1 2nd Column 0 3rd Column 0 EndMatrix dot Start 3 By 1 Matrix 1st Row ModifyingAbove x With caret Subscript 1 Baseline left parenthesis t right parenthesis 2nd Row ModifyingAbove x With caret Subscript 2 Baseline left parenthesis t right parenthesis 3rd Row ModifyingAbove x With caret Subscript 3 Baseline left parenthesis t right parenthesis EndMatrix period EndLayout
(2.25)
Compared to the observer (2.11) for the first-order case, we can recognize that (and how) vectors and matrices in (2.25) grew. The pattern of constructing these for the general case will be revealed in Chap. 3. The tuning procedure for the (now three) observer gains l1, l2, and l3 continues to be based on pole placement. The characteristic polynomial of the closed-loop system matrix of our observer (2.25) is
As in the first-order case, its structure allows to trivially read l1∕2∕3 off a characteristic polynomial constructed using three desired eigenvalues (observer pole locations).
2.2.3 Outer Loop: Control of an Integrator Chain
Once the inner disturbance compensation loop is set up, our controller design task is reduced to finding (and tuning) a suitable control law for the pure, undisturbed second-order integrator (2.23). From classical control engineering, it is known that a proportional-derivative (PD) controller can be employed to stabilize a double integrator system. This means that the P controller approach of the first-order case is now extended by additional feedback of the derivative.
Computing the true derivative of a real-time signal y(t) is impossible. In PD and PID controllers, there are workarounds to tackle this task. Luckily (but not accidentally), we already have an estimate of \(\dot {y}(t)\) available, provided by the observer. If we, just for the first step, assume this estimate to be ideal, a PD-like control law (not applying the derivative to the reference signal r(t)) for u0(t) would be
Comparing (2.27) to the equation of a generic second-order system as in (2.20), we can see that not only did we achieve steady-state accuracy (unity DC gain from reference to system output), but we can arbitrarily shape the dynamic response of the closed control loop using the controller gains k1 and k2, as well.
In practice, there will of course be limitations to what can be achieved—firstly, we only have an estimate of \(\dot {y}(t)\) available. Secondly, the controller may be faced with dynamics diverging from the double integrator, as there are speed limits to the disturbance rejection required to maintain that behavior, as well. This emphasizes the role of the observer within ADRC: It does the “heavy lifting” for us, simplifying both plant modeling and selecting controller parameters, but we need to take care of properly tuning it.
While we started from PD-like control, after putting disturbance rejection and outer loop control based on the estimated values together in one combined control law, we recognize that, with ADRC, we built an observer-based state-space controller:
Using tools from what is often called “modern” control engineering but for a deliberately “wrong” model, and thus creating a general-purpose controller that will be easy to tune—this dichotomy is what may summarize the philosophy of ADRC best.
Finally coming back to our introductory example for second-order systems: What about the control of a DC-DC converter using ADRC? Let us save another simulation example here. Toward the end of this book, in Sect. 11.2, we will tackle voltage control using ADRC in a real-world example, taking care of various practical aspects discussed in the upcoming chapters, and using our own optimized software implementation that we will have developed by then. We hope to see you there!
2.2.4 A Pattern Emerges: What Constitutes ADRC?
Starting from concrete examples, we have become acquainted with ADRC for first- and second-order systems. Before extending that to the general case in Chap. 3, let us extract the most important concepts and ingredients that constitute ADRC.
Simplified Plant Modeling
British statistician George Box wrote the famous line “All models are wrong, some are useful.” His point was that one should focus more on whether something can be applied to everyday life in a useful manner rather than debating endlessly if an answer is correct in all cases. From a control point of view, this calls for a control design that is not overly dependent on the mathematical model of the plant, is robust to modeling uncertainties, and at the same time does not require performing tedious experiments identifying details of the plant model. And this is when ADRC comes to play. Let us compare the models for the first- and second-order cases:
The plant in ADRC is modeled as an integrator of a certain order, perturbed by an external signal (f): a combination of usually unknown or uncertain terms, which can include actual disturbances and modeling errors. Whether theoretical analysis or an empirical approach led to this simple mathematical input-output representation, this model is the core of ADRC—and the one we build a controller around. Furthermore, apart from the number of integrator stages, it has just one parameter (b0), which makes modeling—and later, tuning the controller—generally easier.
Normalizing the Plant: Disturbance Rejection and Gain Inversion
An inner loop within the ADRC concept is set up to reject the influence of the disturbance (f). In addition, effects of the plant gain (b0) are being counteracted by applying its inverted value 1∕b0 at the output of our control signal u(t):
Provided that b0 is known and an estimation \(\hat {f} \approx f\) is available, both ideas create an inner loop with (approximately) the dynamics of an undisturbed integrator (chain), with an input u0(t). This becomes visible when putting (2.30) into (2.29):
To enable rejection of the disturbance, its value must be estimated in real time (as \(\hat {f}\)), since it usually cannot be measured. This task is assigned to an observer, which, at the same time, also estimates state variables that are being used in the final building block of ADRC: the outer state-feedback controller. Let us compare the condensed observer equations for the first and second cases:
One can clearly recognize a pattern emerging in the matrices and vectors. The first estimated state is \(\hat {x}_1 = \hat {y}\), the final one is the disturbance estimation \(\hat {f}\), and the ones in between are estimated derivatives of y.
Accurate and timely estimation is crucial to the success of the ADRC approach. A well-tuned observer is the cornerstone to some of its main selling points: easier plant modeling and easier controller design.
Controlling an Integrator Chain
Enabled by the inner disturbance rejection and plant gain inversion loop, the outer state-feedback controller can now always be designed for a unity-gain integrator chain—which is easy when the internal states are made available by the observer. State-feedback equations for the first- and second-order cases are
Apart from b0, which is part of the control law (2.30) and must be obtained during plant modeling, the following controller and observer parameters must be tuned:
First-order case: k1 (controller), and l1, l2 (observer)
Second-order case: k1, k2 (controller), and l1, l2, l3 (observer)
One additional controller and one additional observer gain value must be tuned when increasing the plant order. How ADRC’s inner loop eases controller tuning becomes obvious when looking at the approximation of the closed loop for the first- and second-order cases (approximate since the inner loop will not be perfect in practice):
Clearly (2.34) has first- and second-order low-pass behavior, respectively, which allows to derive equations for the controller gains based on desired dynamics of the closed loop.
Although we introduce a concrete tuning approach only in Chap. 3, one can already feel confident that computing observer gains will also be simple, as their characteristic polynomials are λ2 + l1 ⋅ λ + l2 (first-order case) and λ3 + l1 ⋅ λ2 + l2 ⋅ λ + l3 (second-order case), allowing to directly read off equations for the gains once a desired polynomial is given through pole placement design.
Bottom Line
Bringing all the pieces of ADRC together, we can visualize it through a block diagram shown in Fig. 2.7. Note that we added an optional feedback path of the plant output, indicating that this measured value could be used by the outer controller instead of an estimated version delivered by the observer (in this book, however, we will not).
×
With the benefits mentioned above, there come challenges as well. We do not try to hide complexity. It is clear that a certain workload is needed for designing ADRC, but it is meant to simplify things in the end. In this book, we argue that concerning some of the popular classical and modern control approaches, ADRC is simpler without sacrificing performance. Looking back at how the ADRC has been applied to the first- and second-order plant examples, we started to see a pattern. In the next chapter, we will generalize the observations made here and present the blocks necessary to build ADRC from the ground up.
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.
For readers who would like to try to “get their feet wet” with water-tank control instead, a ready-made simulation environment is described in Appendix B.1.