The parameters of a process may be unknown or may change slowly over time. How can one control a process with unknown parameters?

Earlier chapters discussed robust methods. Those methods provide good response to a broad set of alternative process dynamics.

This chapter presents adaptive control, in which the control system adjusts itself by using measurements of the system’s response. I follow the example from Sect. 6.2.4 of Ioannou and Sun (2012).

In adaptive control, the system repeatedly updates the controller parameters to reduce the error between the system’s actual output and the output of an ideal target response model. Figure 11.1 shows the structure of a common approach known as model reference adaptive control.

Suppose the process dynamics are given by the affine form in Eq. 10.3 as

$$\begin{aligned} {\dot{y}}=af(y)+bg(y)u, \end{aligned}$$
(11.1)

which describes linear systems and also a wide variety of nonlinear systems. In this example, we know the functions f and g, but do not know the parameter values for a and b. The goal is to design a control input, u, that causes the system output, y, to match the output of a specified model.

1 General Model

Typically, one chooses a simple linear model for the design target. In this example, we use

$$\begin{aligned} {\dot{y}}_m=-a_my_m+b_mr. \end{aligned}$$
(11.2)

Here, the parameters \(a_m\) and \(b_m\) are known aspects of the target model specification, and r is the reference or external environmental input. For a constant reference input, this model converges to the reference exponentially at rate \(a_m\), with amplitude of the response relative to the input of \(b_m/a_m\). Figure 11.2 illustrates the design target response for a sinusoidal input, r.

Fig. 11.1
figure 1

Redrawn from Fig. 5.1 of Åström and Wittenmark (2008), \(\copyright \) Karl J. Åström and Björn Wittenmark

Model reference adaptive control. The goal is to construct a controller so that the system output, y, matches the output of a specified model, \(y_m\). To achieve that goal, the lower feedback loop with controller and process must together form a system that has the same dynamics as the model. If parameters of the process are unknown, one can use measurement of the error, \(e=y-y_m\), to adaptively adjust the parameters of the controller in response to the error. Ideally, the system learns controller parameters such that the output, y, converges to match the target model output, \(y_m\).

For given values of a and b, the control input

$$\begin{aligned} u=&\frac{1}{g(y)}{\big [}k_1^*f(y)+k_2^*y+w^*r{\big ]} \nonumber \\ k_1^*=-&\frac{a}{b} k_2^*=-\frac{a_m}{b} w^*=\frac{b_m}{b} \end{aligned}$$
(11.3)

transforms the process model in Eq. 11.1 into the target model in Eq. 11.2.

If the parameters a and b are unknown, then the input, u, must be based on the estimates for \(k_1(t)\), \(k_2(t)\), and w(t). The estimates are updated by an adaptive process in response to the error difference between system and model output, \(e=y-y_m\). The dynamics of the error are \(\dot{e}=\dot{y}-\dot{y}_m\).

Fig. 11.2
figure 2

Illustrations of the model response (gold curve) in Eq. 11.2 for reference input (blue curve) given by \(r(t)=\sin (t/10)+\sin (t)\). The speed of the tracking response increases with the parameter \(a_m\), and the amplitude of the response increases with \(b_m/a_m\). a A slow, lagging response with \(a_m=0.3\) and a twofold amplitude enhancement with \(b_m/a_m=2\). b A fast tracking response with \(a_m=3\) and a twofold amplitude enhancement with \(b_m/a_m=2\). c A fast tracking response with \(a_m=3\) and a twofold amplitude reduction with \(b_m/a_m=1/2\)

To obtain an expression for \(\dot{e}\), we need a modified form of \(\dot{y}\) that contains only the known parameters \(a_m\) and \(b_m\) and the estimates \(k_1\), \(k_2\), and w. The first step expresses the process dynamics in Eq. 11.1 by adding and subtracting \(b{\big [}k_1^*f(y)+k_2^*y+w^*r{\big ]}\) and using the identities \(bk_1^*=-a\) and \(bk_2^*=-a_m\) and \(bw^*=b_m\), yielding

$$\begin{aligned} {\dot{y}}=-a_my&+b_mr\\&+b{\big [}-k_1^*f(y)-k_2^*y-w^*r+ug(y){\big ]}. \end{aligned}$$

Write the tracking errors as \(\tilde{k}_1=k_1-k_1^*\) and \(\tilde{k}_2=k_2-k_2^*\) and \(\tilde{w}=w-w^*\). The error dynamics can then be written as

$$\begin{aligned} \dot{e}=-a_me+b{\big [}\tilde{k}_1f(y)+\tilde{k}_2y+\tilde{w}r{\big ]}. \end{aligned}$$

To analyze the error dynamics, we need expressions for the processes used to update the parameter estimates. A common choice is

$$\begin{aligned} {\dot{k}}_1&=-\gamma _1ef(y)\\ {\dot{k}}_2&=-\gamma _2ey\\ {\dot{w}}&=-\gamma _3er, \end{aligned}$$

in which I have assumed that \(b>0\).

Fig. 11.3
figure 3

Rate of adaptation for the parameters that set u, the control input into the system process, as given in Eq. 11.3. The controller parameters adapt so that the system output tracks the output of a reference model that expresses the design goal. The equations in the text describe the system and adaptation dynamics. The top row shows the system’s output in blue and the target model’s output in gold. The middle row is the system’s error, which is the difference between the system and model responses in the upper row. The bottom row shows the adaptation of the control parameters \(k_1\), \(k_2\), and w, in blue, gold, and green, respectively. This figure uses the reference model parameters \(a_m=3\), \(b_m=6\), and the true underlying system process parameters, \(a=4\), and \(b=2\). The controller parameters that adapt are \(k_1\), \(k_2\), and w, which are the system’s estimates for the underlying process parameters in relation to the model parameters. The rate of adaptation is set by \(\gamma _1=\gamma _2=\gamma _3\), which are, for the columns from left to right, 0.01, 0.1, 1, respectively. The faster the rate of adaptation, the more quickly the system converges to the reference model

2 Example of Nonlinear Process Dynamics

The general results of the prior section can be applied to any linear process or to any nonlinear process that can be approximated by the affine form of Eq. 11.1. For this nonlinear example, let

$$\begin{aligned} \dot{y}=ay^2+bu, \end{aligned}$$
(11.4)

with \(f(y)=y^2\) and \(g(y)=1\).

Figure 11.3 illustrates the rate of adaptation for various parameters. As the adaptation parameters, \(\gamma \), increase, the system output converges increasingly rapidly to the target model output.

3 Unknown Process Dynamics

The previous section assumed a particular form for the process dynamics in Eq. 11.4, with unknown parameters a and b. How could we handle a process with unknown dynamics?

One simple approach is to assume a very general form for the process dynamics, such as a polynomial

$$\begin{aligned} \dot{y}=a_0+a_1y+a_2y^2+\dots +a_ny^n+bu, \end{aligned}$$

and then run the adaptation process on the parameters \((a_0,a_1,\ldots ,a_n, b)\). One could use other generic forms for the dynamics and estimate the parameters accordingly. This approach provides a way for the system output to mimic the model output, without the system necessarily converging to use the same mathematical description of dynamics as in the model.