In the sequel, we use \(f(\cdot )\) to denote a function irrespective of the number of its arguments. \(\mathcal {B}(x,c)\) denotes \(\{z ~:~ |z-x| \le c\}\). For any two integers \(i,j,\,\mathbb {I}_{i{:}j}\) denotes \(\{i,i+1,i+2,\ldots ,j-1,j\}\).
The system to be controlled is described by
$$\begin{aligned} x^+ = f(x,u)\quad y=h(x) \end{aligned}$$
(1)
Given a reference \(r^{*} \in \mathcal {R},\,\mathcal {R}\) a compact subset of \(\mathbb {R}^p\), the control objective is to stabilize the equilibrium state \(x_{r^*}\). For each \(r \in \mathcal {R}\), the corresponding equilibrium pair \((x_r,u_r)\) is defined as the solution, if it exists, of
$$\begin{aligned} x_r =f(x_r, u_r), \quad y=h(x_r) =r \end{aligned}$$
(2)
For simplicity, we assume that y and u have the same dimension and that Eq. (2) has a unique solution \(u_r=\phi _u(r),\,x_r=\phi _x(r)\) for all \(r \in \mathcal {R}\); in the linear case (i.e. \(x^+=Ax+Bu,\,y=Cx\)), \(\phi _u(\cdot )\) and \(\phi _x(\cdot )\) are linear (\(\phi _u(r)=M_ur,\,\phi _x(r)=M_xr\)) and our assumption is equivalent to the assumption that the zero frequency gain \(G(0)=C(I-A)^{-1}B\) is non-singular. If a solution to (2) does not exist, there does not exist a constant u such that \(y(t)=r\) for all t. The analysis can be extended to the case when there are more outputs than inputs [20, §1.5.1]. The system is subject to state and control constraints \(x \in \mathbb {X}\) and \(u \in \mathbb {U}\). It is assumed that \(\mathcal {R}\) satisfies \((x_r,u_r) \in \mathbb {X} \times \mathbb {U}\) for all \(r \in \mathcal {R}\) and that \(\mathbb {X}\) is polyhedral and that \(\mathbf {U}\) is a polytope. For each (x, r), the optimal control problem \(\mathbb {P}_N(x,r)\) solved on line is
$$\begin{aligned} V_N^0(x,r) =\min _{\mathbf {u}}\left\{ V_N(x,r,\mathbf {u}) : \mathbf {u} \in \mathcal {U}_N(x,r)\right\} \end{aligned}$$
(3)
in which
$$\begin{aligned} V_N(x,r,\mathbf {u}) :=\sum _{i=0}^{N-1} \ell \left( x^\mathbf {u}(i;x),r,u(i)\right) + V_f\left( x^\mathbf {u}(N;x),r\right) \end{aligned}$$
(4)
and, for \(i=0,1,\ldots ,N,\,x^\mathbf {u}(i;x)\) denotes the solution of \(x^+=f(x,u)\) at time i with \(x(0)=x\) and input \(\mathbf {u} :=\{u(0),u(1), \ldots , u(N-1)\}\); the corresponding state sequence is \(\mathbf {x}^\mathbf {u} :=\{x^\mathbf {u}(0;x),x^\mathbf {u}(1;x),\ldots ,x^\mathbf {u}(N;x)\}\) with \(x^\mathbf {u}(0;x)=x\). The stage cost \(\ell (x,r,u) :=(1/2)|x-x_r|_Q^2 +(1/2)|u-u_r|_R^2\) where Q and R are positive definite. Also, \(\mathcal {U}_N(x,r)\) is the set of control sequences \(\mathbf {u}\) that, given (x, r), satisfy the state and control constraints and the terminal constraint \(x^{\mathbf {u}}(N;x) \in X_f(r) :=\{x \in \mathbb {R}^n ~:~ V_f(x,r) \le c_r\}\) for some \(c_r>0\):
$$\begin{aligned} \mathcal {U}_N(x,r) :=\left\{ \mathbf {u} ~:~ u(i) \in \mathbb {U}, x^\mathbf {u}(i;x) \in \mathbb {X}, i\in \mathbb {I}_{0:N-1}, x^\mathbf {u}(N;x) \in X_f (r)\right\} \end{aligned}$$
(5)
The control applied to the system is \(u^0(0;x,r)\), the first element of \(\mathbf {u}^0(x,r)\); the implicit model predictive control law is, therefore, \(\kappa _N(\cdot )\) defined by \(\kappa _N(x,r):=u^0(0;x,r)\). Let \(x^{\kappa _N}(i;x,r)\) denote the solution at time i of the closed loop system \(x^+=f^{\kappa _N}(x,r) :=f(x,\kappa _N(x,r))\) if the initial state at time 0 is x. The equilibrium state is asymptotically stable with a region of attraction \(X_N(r) :=\{x ~:~ \mathcal {U}_N(x,r) \ne \emptyset \}\) for the closed loop system if the terminal ‘ingredients’ \(X_f\) and \(V_f(\cdot )\) satisfy the usual stability condition:
Stability Condition
\(V_f(\cdot )\) is continuous and satisfies \(V_f(x_r,r)=0\) and \(V_f(x,r) > 0\) if \(x \ne x_r\). For all \(r \in \mathcal {R}\), all \(x \in X_f(r)\), there exists a \(u \in \mathbb {U}\) such that (i) \(x^+=f(x,u) \in X_f(r)\), and (ii) \(V_f(x^+,r) \le V_f(x,r) - \ell (x,r,u)\).
Condition (i) implies, for each \(r \in \mathcal {R}\), that \(X_f(r)\) is control invariant and condition (ii) implies, again for each \(r \in \mathcal {R}\), that \(V_f(\,\cdot \,,r)\) is a local control Lyapunov function for \(\mathbb {P}_N(x,r)\). Under mild conditions, there exists a local control law \(\kappa _f(\cdot )\) such that \(u=\kappa _f(x,r)\) satisfies (i) and (ii) above.
The stability conditions are satisfied if \(V_f(\cdot )\) is the value function for the unconstrained infinite horizon problem or if \(V_f(\cdot )\) is the infinite horizon cost for the unconstrained system with any locally stabilizing controller \(u=\kappa _f(x,r)\). Such a \(V_f(\cdot )\) is easily determined if \(f(\cdot )\) is linear in which case we assume that (A, B) is stabilizable. The local control law \(\kappa _f(\cdot )\) is then affine (\(\kappa _f(x,r) :=u_r+K_r(x-x_r)\)). We choose \(\mathcal {R}\) and \(c>0\) such that the terminal constraint set \(X_f(r)\) satisfies \(X_f(r) \subset \mathbb {X}' :=\{x \in \mathbb {R}^n ~:~ x \in \mathbb {X},\ \kappa _f(x,r) \in \mathbb {U}\}\) for all \(r \in \mathcal {R}\) so that \(x^0(N;x,r) \subset \mathbb {X}\) for all \((x,r) \in X_N(r) \times \mathcal {R}\) with \(X_N(r) :=\{x ~:~ \mathcal {U}_N(x,r) \ne \emptyset \}\). The control invariance of \(X_f(r)\) follows from the fact that \(V_f(\,\cdot \,,r)\) is a local Lyapunov function for \(x^+=f^{\kappa _f}(x):=f(x,\kappa _f(x,r))\). If \(f(\cdot )\) is nonlinear, it is possible, under mild conditions, to determine a terminal cost function \(V_f(\cdot )\) and associated constraint set \(X_f(r)\) satisfying the stability conditions.
We show below that, for any \(r^*\in \mathcal {R}\), it is possible to design a model predictive controller such that \(x_{r^*}\) is asymptotically stable with a region of attraction \(X_N(\mathcal {R}) :=\cup _{r \in \mathcal {R}}X_N(r)\) [rather than \(X_N(r^*)\)].
Model Predictive Controller with Extended Region of Attraction: Linear Systems
Some simplifications can be made if the system being controlled is linear (\(f(x,u):=Ax+Bu,\,y=Cx\)). We consider first the simple case when the terminal constraint sets are ellipsoidal and differ only by translation since, for each \(r,\,X_f(r) :=\{x ~:~ V_f(x,r) \le c\}\) and \(V_f(x,r) :=(1/2) (x-x_r)'P(x-x_r)\); P and c do not vary with r (\(P_r=P\) and \(c_r=c\) for all r). A consequence is that, for all \(r \in \mathcal {R}\), the local stabilizing control law is affine (\(\kappa _f(x,r) = u_r+K(x-x_r)\)); P is a symmetric positive definite matrix satisfying \(P=A_K'PA_K +Q^*\) with \(A_K :=A+BK\) a stability matrix; \(Q^*:=Q+K'RK\) is symmetric and positive definite. Moreover, the successor state \(x^+=f(x,\kappa _f(x,r))\) satisfies \(x^+-x_r=A_K(x-x_r)\) so that \(V_f(x^+,r) =(1/2)(x^+-x_r)'P(x^+-x_r) = (1/2)(A_K(x-x_r))'P(A_K(x-x_r)) =(1/2)(x-x_r)'(P-Q^*)(x-x_r)\) for all \(x \in X_f(r)\), all \(r \in \mathcal {R}\).
In conventional model predictive control, the value function of the online optimal control problem decreases monotonically with time. In the modified version described below, the value function, as in phase 1–phase 2 optimization, may increase until feasibility of the terminal inequality constraint with \(r=r^*\) is achieved; thereafter, the value function decreases monotonically. The control algorithm can be simply stated:
Linear Control Algorithm 1:
Step 0: (Initialization:) Determine, at the initial state x, a \(r \in \mathcal {R}\) such that \(x \in X_N(r)\) (i.e. such that \(\mathbb {P}_N(x,r)\) is feasible).
Step 1: At each (x, r), solve \(\mathbb {P}_N(x,r)\) to obtain \(\mathbf {u}^0(x,r)\) and, hence, \(x^+=Ax + B \kappa _N(x,r)\).
Step 2: If \(x_N :=x^0(N;x,r) \not \in X_f(r^*)\), set \(r^+ = r + \lambda ^0(r^*-r)\), \(\lambda ^0 :=\max \{ \lambda \in [0,1] ~:~ x_N^+ \in X_f(r+\lambda (r^*-r))\}\) with \(x_N^+:=Ax_N+B\kappa _f(x_N,r)\). If \(x_N \in X_f(r^*)\), set \(r^+=r^*\).
Step 3: Set \((x,r) = (x^+,r^+)\) and go to Step 1.
To establish properties of the algorithm, two preliminary results are required.
Proposition 2.1
There exists a \(d \in ]0,c[\) such that for all \(x \in X_f(r) =\{x ~:~ V_f(x,r) \le c\}\), all \(r \in \mathcal {R}\), the successor state \(x^+=f(x,\kappa _f(x,r))\) under the control law \(\kappa _f(\cdot )\) satisfies \(x^+\in \{x ~:~ V_f(x,r) \le d\}\).
Proof
Because the state and control constraints for \(x^+=f(x,\kappa _f(x,r))\) are inactive for \(x \in X_f(r)\), it follows that
$$\begin{aligned} V_f(x^+,r) =V_f(x,r) -(1/2)(x-x_r)'Q^*(x-x_r) = (1/2) (x-x_r)'(P-Q^*)(x-x_r) \end{aligned}$$
for all \(x \in X_f(r)\), all \(r \in \mathcal {R}\). Let \(|x|_P :=(x'Px)^{1/2} = |P^{1/2}x|\) so that \(X_f(r) = \{x ~:~ |x-x_r|_P \le \sqrt{2c}\}\). For any \(c_1 \in ]0,c[\) let \(e :=\min _x\{(1/2)x'Q^*x ~:~ |x|_P \in [c_1,c]\}\). Since \(e \rightarrow 0\) as \(c \rightarrow 0\), there exists a \(c_1 \in ]0,c[\), sufficiently small, such that \(d:=c-e \in [c_1,c]\). It follows that \(V_f(x^+,r) \le V_f(x,r) - e,\,x^+:=f(x,\kappa _f(x,r))\), for all x such that \(V_f(x,r) \in [c_1,c]\). Since \(c_1 \le d\), it follows that \(x^+ \in \{x ~:~ V_f(x,r) \le d\}=\{x ~:~ |x|_P\le \sqrt{2d}\}\), for all \(x \in X_f(r)\). \(\square \)
Proposition 2.2
For all \(r \in \mathcal {R},\,x \in X_N(r)\) implies \(x^+ \in X_N(r^+),\,x^+ :=f(x,\kappa _N(x,r)),\,r^+:=r+\lambda ^0(r^*-r)\) so that \(x^+\) is feasible for \(\mathbb {P}_N(x^+,r^+)\). There exists a \(\delta >0\) such that, if \(|x_{r^*}-x_r|_P \ge \delta ,\,|x_{r^+} - x_r|_P \ge \delta \).
Proof
Let \(x\in X_N(r)\) so that \(x_N :=x^0(N;x,r) \in X_f(r) = \{x ~:~ |x-x_r|_P \le \sqrt{2c}\}\). From Proposition 2.1, \(x_N^+ :=f(x_N,\kappa _f(x_N,r))\in \{x ~:~ |x-x_r|_P \le \sqrt{2d}\}\). It follows from the triangle inequality that, if \(|x-x_r|_P \le \delta :=\sqrt{2c}-\sqrt{2d}\), then \(|z-x|_P \le |z-x_r|_P+|x_r-x|_P \le \sqrt{2c}\) for all \(z \in \{x ~:~ |x-x_r|_P \le \sqrt{2d}\}\), all x such that \(|x-x_r|_P \le \delta \). In particular, \(|x_N^+ -x|_P \le \sqrt{2c}\) for all x such that \(|x-x_r|_P\le \delta \). Let \((r,s) \in \mathcal {R}\) be such that \(|x_s-x_r| = \delta = \sqrt{2c}-\sqrt{2d}\); it then follows from the inequality above that \(x_N^+ \in X_f(r) \cap X_f(s)\) so that the initial state \(x^+=f(x,\kappa _N(x,r))\) lies in \(X_N(r)\cap X_N(r^+)\). It further follows from the algorithm that \(|x_{r^+ }- x_r|_P \ge |x_s-x_r|_P=\delta \) and \(|x_{r^*}- x_{r^+}|_P \le |x_{r^*}- x_{r}|_P-\delta \) if \(|x_{r^*}-x_r|_P \ge \delta \). \(\square \)
Our main result follows.
Theorem 2.1
Suppose Q and R are positive definite, (A, B) is stabilizable, and the stability condition is satisfied with \(X_f(r) \subset \mathbb {X}\) and \(\kappa _f(X_f(r),r) \subset \mathbb {U}\) for all \(r \in \mathcal {R}\). Then, for all \(r^*\in \mathcal {R},\,x_{r^*}\) is exponentially stable with a region of attraction \(X_N(\mathcal {R})\).
Proof
Let \((x_i,r_i,\lambda _i)\) denote the value of \((x,r,\lambda )\) at the \(i{\text {th}}\) iteration of the algorithm. The sequence \(\{x_{r_i} ~:~ i \in \mathbb {I}_{\ge 0}\}\) satisfies \(x_{r _i} \in [x_{r_0},x_{r^*}]\). Suppose \(\mathbb {P}_N(x_i,r_i)\) is feasible so that \(x^0(N;x_i,r_i) \in X_f(r_i)\). If \(x^0(N;x_i,r_i) \not \in X_f(r^*)\), it follows from Step 2 of the algorithm and Proposition 2.2 that \(\mathbb {P}_N(x_{i+1},r_{i+1})\) is feasible and \(|x_{r^*}-x_{r_{i+1}}|_P\le |x_{r^*}-x_{r_i}|_P-\delta \). Hence, there exists a finite time j such that \(x_{r_j} \in X_f(r^*)\); using the definition of \(\lambda ^0,\,x_{r_{j+1}} =x_{r^*}\). For all \(i \ge j+1\), the algorithm is conventional MPC so that, from known results, \(x_{r^*}\) is exponentially stable with a region of attraction \(X_N(\mathcal {R})\). \(\square \)
To compare the results above with those of [19], we note that [19] defines (using our notation) the terminal cost function \(V_f(\cdot )\) as we do but defines the terminal constraint set by \(X_f(r):=\{x ~:~ E(x-x_r) \le \alpha _r\}\) (since r in our analysis replaces time t in [19]), whereas our terminal constraint set is defined in Sect. 2.1 by \(X_f(r):=\{x ~:~ V_f(x,r) \le c\}\) (c independent of r). Lemma 1 in [19] then shows how to choose the virtual reference \(x_{r^+}\) and \(\alpha _{r^+}\) so that, for all \(x \in X_f(r),\,x^+:=f(x,\kappa _f(x,r))\) satisfies \(x^+ \in X_f(r^+)\); crucially (Assumption 2(ii) in [19]) \(X_f(r)\) has the contraction property \(E(x^+-x_r) \le E(x-x_r)-(x-x_r)'Q(x-x_r)\) with Q positive definite. Using this, [19, Theorem 1] shows \(x_{r_i}\) converges to \(x_{r^*}\) as time \(i \rightarrow \infty \). In Linear Control Algorithm 1, \(X_f(r)\) has a different property; Proposition 2.1 shows that if \(x \in X_f(r) :=\{x ~:~ V_f(x,r) \le c\}\), then \(x^+ \in \{x ~:~ V_f(x,r) \le d\}\) where \(0<d<c\). This enables us to show that \(x_{r_i}\) enters \(X_f(x_{r^*})\) in finite time. In [19], the terminal constraint set \(X_f(r_i)\) decreases in size (\(\alpha _{r_i}\) decreases) as i increases, whereas in Linear Control Algorithm 1, the terminal constraint set has constant size.
The fact that \(X_f(r)\) in Linear Control Algorithm 1 has constant size (since c is constant) constrains each \(X_f(r)\) to be small if, for some \(r \in \mathcal {R},\,x_r\) is close to the boundary of \(\mathbb {X}\) and/or \(\kappa _f(x,r)\) is close to the boundary of \(\mathbb {U}\). To overcome this disadvantage, we replace Step 2 in Control Algorithm 1 by an optimization algorithm that provides a terminal set \(X_f(r)\) that increases in size (\(c_r\) larger) where it is possible to do so without transgressing the state or control constraints. The terminal set is now defined by \(X_f(r):=\{x ~:~ V_f(x,r) \le c_r\}\) in which \(c_r\) varies with r. The optimization algorithm, \(\bar{\mathbb {P}}_N(x,r),\,x \in X_f(r)\), employed in Step 2, is defined for all x by
$$\begin{aligned} \min _{\lambda ,c} \left\{ |r^*-s|^2 ~:~ \lambda \in [0,1], c > 0, x \in X_f(s), X_f(s) \subset \mathbb {X}'\right\} \end{aligned}$$
(6)
in which \(\mathbb {X}' :=\{x ~:~ x \in \mathbb {X}, \kappa _f(x,s) \in \mathbb {U}\}\) and \(s :=r+\lambda (r^*-r)\). Let \((\lambda ^0(x,r),c^0(x,r))\) denote the solution of \(\bar{\mathbb {P}}_N(x,r)\). It is shown in the ‘Appendix’ that \(\bar{\mathbb {P}}_N(x,r)\) may be reformulated as an LMI problem for which standard algorithms are available [21]. The modified control algorithm is:
Linear Control Algorithm 2:
Data:
\(r^*\) and \(c_{r^*}\).
Step 0: (Initialization:) Determine, at the initial state x, a \(r \in \mathcal {R}\) and a \(c =c_r>0\) such that \(x \in X_N(r)\) (i.e such that \(\mathbb {P}_N(x,r)\) is feasible).
Step 1: At each (x, r), solve \(\mathbb {P}_N(x,r)\), to obtain \(\mathbf {u}^0(x,r)\) and, hence, \(x^+= f(x,\kappa _N(x,r)) = Ax + B \kappa _N(x,r)\).
Step 2: If \(x_N :=x^0(N;x,r) \not \in X_f(r^*)\), solve \(\bar{\mathbb {P}}_N(x_N^+,r),\,x_N^+:=f(x_N,\kappa _f(x_N,r))\), to obtain \((\lambda ^0(x_N^+,r),c^0(x_N^+,r))\). Set \(r^+=s^0(x_N^+,r) :=r+\lambda ^0(x_N^+,r)(r^*-r)\) and \(c_{r^+}=c^0(x_N^+,r)\). If \(x_N \in X_f(r^*)\), set \(r^+=r^*\) and \(c_{r^+}= c_{r^*}\).
Step 3: Set \((x,r) = (x^+,r^+)\) and go to Step 1.
Because \(c_r\) varies with r, we have to modify the analysis given for the Linear Control Algorithm 1. We assume that \(\mathcal {R}\) is chosen so that there exists a \(c>0\) such that \(c_r \ge c\) for all \(r \in \mathcal {R}\). Next, let e be computed as in the proof of Proposition 2.1, and, for all \(r \in \mathcal {R}\), let \(d_r :=c_r-e\). It can be shown that Proposition 2.1 still holds for all \(r \in \mathcal {R}\) with c replaced by \(c_r\) and d replaced by \(d_r\), i.e. e is independent of r. However, because the size of \(X_f(r)\) now varies with r, modification of Proposition 2.2 is required; we need to know how \(c_s\) varies with \(s=s(\lambda ) :=r+\lambda (r^*-r) \in \mathcal {R}\).
Consider the function \(\lambda \mapsto \phi (\lambda )\) that maps \(\lambda \) to the minimum of \(|x_{s(\lambda )}-z|_P\) with respect to z lying in a hyperplane \(\mathcal {H}\); this minimum is the distance, in norm \(|\cdot |_P\), of \(x_{s(\lambda )}\) from the hyperplane \(\mathcal {H}\). Since \(x_s=M_xs\) is linear, the function \(\phi (\cdot )\) is affine. Hence, the function that maps \(\lambda \) to the distance (in norm \(|\,\cdot \,|_P\)) of \(x_{s(\lambda )}\) from the boundary of the polyhedron \(\mathbb {X}'\), which has a finite number of faces, is continuous and piecewise affine with a Lipschitz constant \(L<\infty \). For each \(x \in \mathbb {R}^n\), let \(c(\lambda )\) denote the largest value of \(c>0\) such that the set \(\{x ~:~ V_f(x,s(\lambda )) \le c\} =\{x ~:~ |x-x_{s(\lambda )}|_P \le \sqrt{2c}\}\) is a subset of \(\mathbb {X}'\). From the discussion above, the function \(\lambda \mapsto \sqrt{2c(\lambda )}\) is identical to the function \(\lambda \mapsto \phi (\lambda )\) and is, therefore, piecewise affine with Lipschitz constant L so that \(\sqrt{2c(\lambda )} \ge \sqrt{2c(0}) -L \lambda \) = \(\sqrt{2c_r} - L \lambda \). From the triangle inequality
$$\begin{aligned} |x_N^+-x_{s(\lambda )}|_P \le |x_N^+-x_r|_P+|x_r-x_{s(\lambda )}|_P \le q \sqrt{2d_r}+\lambda a \end{aligned}$$
for some \(a>0\). Then, \(x_N^+ \in X_f(s(\lambda ))\) if \(|x_N^+-x_{s(\lambda )}|_P \le \sqrt{2c(\lambda )}\). But \(\sqrt{2c(\lambda )} \ge \sqrt{2c_r}-L \lambda \) so that \(x_N^+ \in X_f(s(\lambda ))\) if \(\sqrt{2d_r}+\lambda a \le \sqrt{2c_r}-L \lambda \) which is the case if \(\lambda \le [\sqrt{2c_r} -\sqrt{2d_r}]/[L+a]\).
Thus, there exists \(\delta ' \in ]0,\delta ]\) such that, if \(|x_{r^*}-x_r|_P >\delta ',\,|x_{r^+} - x_r|_P \ge \delta '\). Theorem 2.2 then holds for the modified algorithm.
The fact that the terminal constraint set \(X_f(r)\) can increase in size (see Fig. 1) when this is possible means that the region of attraction \(X_N(\mathcal {R})\) is larger than that for Linear Control Algorithm 1 (size fixed) and for [19, Algorithm 1] in which the size of \(X_f(r)\) decreases (in order to attain a more complex objective) as a consequence of the different contraction property for \(X_f(r)\).
Model Predictive Controller with Extended Region of Attraction: Nonlinear Systems
With some further assumptions, the above procedure may be modified to be applicable to nonlinear systems. The control problem is described, as above, by Eqs. (1)–(5). Because of the nonlinearity, the control algorithm has to be significantly altered.
To see this, consider the obvious extension of the above procedure. For each \(r \in \mathcal {R}\), the terminal constraint set \(X_f(r)\) is defined by \(X_f(r) :=\{x ~:~ V_f(x,r) \le c_r\}\) in which \(V_f(x,r) :=(1/2)(x-x_r)'P_r(x-x_r)\). The function \(V_f(\,\cdot \,,r)\) and the set \(X_f(r)\) can be determined, for each \(r \in \mathcal {R}\), as in [22] using linearization of \(f(\cdot )\) at each \((x_r,u_r)\) provided that the linearization of \(f(\cdot )\) is stabilizable at each \(x_r\). Unlike the linear case, \(P_r\) and \(c_r\) now vary with \(x_r\) making simple extensions of Propositions 2.1 and 2.2 impossible. Because of the difficulty in determining \(X_f(r)\) for each \(r \in \mathcal {R}\) and devising a suitable algorithm for adjustment of the virtual reference, we do not pursue this approach.
The impasse can be resolved by using a simpler stabilizing condition, namely a terminal equality constraint that is satisfied for each \(r \in \mathcal {R}\) admittedly at some cost since a terminal equality constraint has a smaller region of attraction than a terminal constraint set; \(X_N(r)\), the region of attraction, is now the set of states that can be steered to \(x_r\) in time N along a trajectory that satisfies the state and control constraints. It is desirable that \(X_N(r)\) is a large subset of \(\mathbb {R}^n\); this is a strong assumption.
The optimal control problem \(\mathbb {P}_N^1(x,r)\) solved at each state (x, r) now has the form:
$$\begin{aligned} V_N^0(x,r) =\min _\mathbf {u} \left\{ V_N(x,r,\mathbf {u}) ~:~ \mathbf {u} \in \mathcal {U}_N(x,r)\right\} \end{aligned}$$
(7)
where \(V_N(\cdot )\) is defined by
$$\begin{aligned} V_N(x,r,\mathbf {u}):= & {} \sum _{i=0}^{N-1} \ell (x^\mathbf {u}(i;x),r,u(i)) \end{aligned}$$
(8)
$$\begin{aligned} \mathcal {U}_N(x,r):= & {} \left\{ \mathbf {u} ~:~ u(i) \in \mathbb {U}, x^\mathbf {u}(i;x) \in \mathbb {X}, i \in \mathbb {I}_{0:N-1}, x^\mathbf {u}(N;x) =x_r\right\} \end{aligned}$$
(9)
$$\begin{aligned} \ell (x,r,u)= & {} (1/2)(x-x_r)'Q(x-x_r) +(1/2)(u-u_r)'R(u-u_r) \end{aligned}$$
(10)
As before, the set of feasible points for \(\mathbb {P}_N^1(x,r)\) is \(X_N(r) :=\{x ~:~ \mathcal {U}_N(x,r) \ne \emptyset \}\). The solution of \(\mathbb {P}_N^1(x,r)\) is \(\mathbf {u}^0(x,r)\), and the model predictive control that is applied to the system is \(\kappa _N(x,r) :=u^0(0;x,r)\). The implicit control law is, therefore, \(\kappa _N(\,\cdot \,,r)\), and the successor state is \(x^+=f(x,\kappa _N(x,r))\).
The control algorithm requires, in addition, the solution of another optimization problem \({\mathbb {P}}_N^2(x,r)\) that yields \(\hat{s}=\hat{s}(x,r) \in \mathcal {R}\) and, hence, \((x_{\hat{s}},u_{\hat{s}})\), a potentially improved equilibrium pair; x is not altered. The optimal control problem \({\mathbb {P}}_N^2(x,r)\) is defined by
$$\begin{aligned} \theta (x,r)=\min _{\mathbf {u},s}\left\{ |x_{r^*}-x_s|-|x_{r^*}-x_r| ~:~ \mathbf {u} \in \mathcal {U}_N(x,s), s \in \mathcal {R}\right\} \end{aligned}$$
The solution to problem \({\mathbb {P}}_N^2(x,r)\) is \((\hat{\mathbf {u}}(x,r),\hat{s}(x,r))\); \(\theta (\cdot )\) is an optimality function [16, §1.1] in that \(\theta (x,r)<0\) implies \(|x_{r^*}-x_r|\) can be reduced and \(\theta (x,r)=0\) implies \(|x_{r^*}-x_r|\) cannot be reduced. We assume:
Assumption 1
There exist an \(\varepsilon ^\dag >0\) and a \(c_1 \in ]0,1/2[\) such that (i): for all \(r \in \mathcal {R}\), the ball \(\mathcal {B}(x_r,\varepsilon ^\dag ) \subset X_N(r)\) and (ii): If \(|x_{r^*} -x_r| > 0,\,\theta (x,r)<0\); if \(|x_{r^*} -x_r| \ge \varepsilon ^\dag /2,\,\theta (x,r) \le -c_1\varepsilon ^\dag \).
Assumption 1(i) excludes the degenerate case in which the feasible set \(X_N(r)\) tends to a set with an empty interior as r tends to some \(r' \in \mathcal {R}\).
Assumption 1(ii) ensures \(|x_{r^*}-x_r|\) can be reduced for all \(r \in \mathcal {R},\,r\ne r^*\), and by a finite amount for all r such that \(|x_{r^*} -x_r| \ge \varepsilon ^\dag /2\) provided \(|x-x_r| \le \varepsilon ^\dag /2\). It is easily shown to be satisfied with \(c_1=1/2\) if \(f(\cdot )\) is linear in which case the set \(\{x_r ~:~ r \in \mathcal {R}\}\) is convex. Assumption 1(ii) ensures that Step 3 is executed only a finite number of times and permits the use of standard descent algorithms for solving \(\mathbb {P}_N^2(x,r)\); this is a strong assumption since it excludes the case when the problem \(\mathbb {P}_N^2(x,r)\) has local minima. Let \(\mathcal {B}(z,\varepsilon ) :=\{x ~:~ |x-z|\le \varepsilon \}\).
The control algorithm for the nonlinear case may now be defined:
Nonlinear Control Algorithm:
Data:
\(x,r^*,c_1 \in ]0,1/2[\).
Step 0: Determine, at the initial state \(x \in X_N(\mathcal {R})\), a \(r \in \mathcal {R}\) such that \(x \in X_N(r)\).
Step 1: Solve \(\mathbb {P}_N^1(x,r)\) to obtain \(\kappa _N(x,r)\) and \(x^+=f(x,\kappa _N(x,r))\). If \(r=r^*\), set \((x,r)=(x^+,r^*)\) and go to Step 1. Else go to Step 2.
Step 2: Set \(\varepsilon =|x^+-x_r|\). Solve \(\mathbb {P}_N^2(x^+,r)\). If \(\theta (x^+,r) > -c_1\varepsilon \), set \((x,r)=(x^+,r)\) and go to Step 1. Else go to Step 3.
Step 3: If \(\theta (x^+,r) \le -c_1\varepsilon \), set \((x,r)=(x^+,r^+),\,r^+=\hat{s}(x^+,r)\) and go to Step 1.
We show below that the algorithm repeatedly executes Steps 2 and 3, reducing \(|x_{r^*} -x_r|\) each time until the reference r remains constant with value \(r^*\). Execution of Step 1 then causes the state \(x_i\), where \(x_i\) is the value of x at the \(i{\text {th}}\) iteration of the algorithm, to converge to \(x_{r^*}\).
Proposition 2.3
Suppose Assumption 1 is satisfied. (i) If \(x^+ \in \mathcal {B}(x_r,\varepsilon ^\dag /2)\) for some \(r \in \mathcal {R}\) and \(|x_{r^*} - x_r| \ge \varepsilon ^\dag /2\), then the solution \(r^+=\hat{s}(x^+,r)\) of \(\mathbb {P}_N^2(x^+,r)\) satisfies \(\theta (x^+,r) \le -c_1\varepsilon ^\dag \). (ii) If \(x^+ \in \mathcal {B}(x_r,\varepsilon ^\dag /2)\) and \(|x_r^{*}-x_r| \le \varepsilon ^\dag /2\), then the solution \(r^+=\hat{s}(x^+,r)\) of \(\mathbb {P}_N^2(x^+,r)\) satisfies \(r^+=r^*\).
Proof
(i) \(x^+ \in \mathcal {B}(x_r,\varepsilon ^\dag /2)\) and \(|x_r-x_s|\le \varepsilon ^\dag /2\) imply \(x^+ \in \mathcal {B}(x_s,\varepsilon ^\dag )\); by Assumption 1(i), \(\mathcal {B}(x_s,\varepsilon ^\dag ) \subset X_N(s)\) so that \(x^+ \in X_N(s)\). Hence, \(\mathbb {P}_N(x^+,s)\) has a solution \(r^+ = \hat{s}(x^+,r)\) satisfying, by Assumption 1(ii), \(\theta (x^+,r) \le -c_1\varepsilon ^\dag \), i.e. \(|x_{r^*} - x_{r^+}| -|x_{r^*}-x_r|\le -c_1\varepsilon ^\dag \). (ii) \(x^+ \in \mathcal {B}(x_r,\varepsilon ^\dag /2)\) and \(|x_r^{*}-x_r| \le \varepsilon ^\dag /2\) implies \(x_r \in X_N(r^*)\). Since \(x_{r^*}\) also lies in \(X_N(r^*),\,r^+ =\hat{s}(x_r,r) = r^*\). \(\square \)
We can now state our main result.
Theorem 2.2
Suppose that Assumption 1 is satisfied, \(f(\cdot )\) is continuous, that the parameters Q and R of the stage cost \(\ell (\cdot )\) are positive definite, that (2) has a unique solution for each \(r \in \mathcal {R}\), that \((x_r,u_r) \in \mathbb {X} \times \mathbb {U}\) for all \(r \in \mathcal {R}\), that there exists a \(\mathcal {K}_\infty \) function \(\alpha (\cdot )\) such that, for all \(r \in \mathcal {R}\), all \(x \in X_N(r),\,V_N^0(x,r) \le \alpha (|x-x_r|)\) and that the stability condition is satisfied. Then, for all \(r^*\in \mathcal {R},\,x_{r^*}\) is asymptotically stable with a region of attraction \(X_N(\mathcal {R}) :=\cup _{r \in \mathcal {R}}X_N(r)\).
Proof
Let \(x_i,\,r_i\) and \(\varepsilon _i\) denote the values of the state x, the virtual reference r and \(\varepsilon \) at the \(i{\text {th}}\) iteration of the algorithm so that their initial values are \(x_0=x\) and \(r_0=r\). The reference \(r_i\) remains constant while the condition in Step 2 is satisfied. During these iterations, the solution of \(\mathbb {P}_N^1(x_i,r_i)\), with \(r_i\) constant, is standard model predictive control so that \(x_i\) converges to \(x_{r_i}\). After a finite number of iterations, the state \(x_{i+1}=x_i^+\) is sufficiently close to \(x_{r_i}\) (\(x_i^+ \in B(x_{r_i},\varepsilon ^\dag /2)\)) for Proposition 2.3 to hold so that \(\theta (x_i^+,r_i) \le -c_1\varepsilon ^\dag \le -c_1\varepsilon _i\). The condition in Step 3 is therefore satisfied. It follows that \(r_i\) is updated to \(r_{i+1} = r_i^+= \hat{s}(x_i^+,r_i)\) and \(|x_{r^*}-x_{r_{i+1}}| \le |x_{r^*}-x_{r_i}|-c_1\varepsilon ^\dag \). Steps 2 and 3 are then entered iteratively reducing \(|x_i - x_{r_i}|,\,|x_{r^*}-x_{r_i}|\), and \(\varepsilon _i\) until \(x_i^+ =x_{i+1} \in \mathcal {B}(x_{r^*},\varepsilon ^\dag )\) so that \(x_i^+ \in X_N(r^*)\). Since both \(x_i^+ \) and \(x_{r^*}\) lie in \(X_N(r^*),\,r_i^+=\hat{s}(x_i^+,r_i) =r^*\). Thereafter, the algorithm iteratively solves \(\mathbb {P}_N^1(x_i,r^*)\). This is a standard MPC algorithm with a constant reference \(r^*\). Asymptotic stability of \(x_{r^{*}}\) with a region of attraction \(X_N(\mathcal {R})\) follows. \(\square \)
As formulated, problem \(\mathbb {P}_N^2(x,r)\) is complex largely because \(x_s\) is a nonlinear function \(\phi _x(s)\) of the reference \(s \in \mathcal {R}\). The algorithm can be simplified by merely requiring an approximate solution of \(\mathbb {P}_N^1\) and \(\mathbb {P}_N^2\); techniques for doing this are given in [16]. A possible alternative is to restrict the choice of s by minimizing with respect to \(\lambda \in [0,1]\) and setting \(s=s_\lambda = r+ \lambda (r^*-r)\).