A Feedback Linearized Model Predictive Control Strategy for Input-Constrained Self-Driving Cars

Cristian Tiriolo and Walter Lucia This work was supported by the Natural Sciences and Engineering Research Council of Canada (NSERC).Cristian Tiriolo and Walter Lucia are with the Concordia Institute for Information Systems Engineering (CIISE), Concordia University, Montreal, QC, H3G 1M8, CANADA, [email protected], [email protected]
Abstract

This paper proposes a novel real-time affordable solution to the trajectory tracking control problem for self-driving cars subject to longitudinal and steering angular velocity constraints. To this end, we develop a dual-mode Model Predictive Control (MPC) solution starting from an input-output feedback linearized description of the vehicle kinematics. First, we derive the state-dependent input constraints acting on the linearized model and characterize their worst-case time-invariant inner approximation. Then, a dual-mode MPC is derived to be real-time affordable and ensuring, by design, constraints fulfillment, recursive feasibility, and uniformly ultimate boundedness of the tracking error in an ad-hoc built robust control invariant region. The approach’s effectiveness and performance are experimentally validated via laboratory experiments on a Quanser Qcar. The obtained results show that the proposed solution is computationally affordable and with tracking capabilities that outperform two alternative control schemes.

I INTRODUCTION

The advent of self-driving cars marks a significant step forward in automotive technology, heralding a new era of road safety, traffic efficiency, and environmental sustainability. Central to the autonomous vehicle’s operational integrity is trajectory tracking control, a critical aspect for ensuring the safety, reliability, and comfort of these vehicles [1, 2]. The term reference trajectory refers to a sequence of consecutive waypoints, with associated spatial and temporal information, that the vehicle is required to accurately track [3]. Achieving reliable trajectory tracking enables autonomous vehicles to navigate complex environments with precision, adaptability, and safety, thus accelerating the integration of autonomous technology into everyday transportation systems [4].

Extensive research has been conducted to develop control strategies to solve the trajectory tracking problem for autonomous cars [5], ranging from simple non-model based solutions like the well-established PID controllers [6, 7], to more sophisticated nonlinear control solutions like sliding-mode controllers [8, 9], and adaptive backstep** control [10]. In the last decade, deep learning-based approaches have been applied to the control of autonomous vehicles due to their ability to self-optimize their behavior from data and adapt to complex and dynamic environments. [11, 12] offer an exhaustive review of the most recent developments in the application of machine learning techniques to autonomous vehicle control. Despite their relatively high tracking performance, the biggest challenge pertaining to this class of algorithms remains their dependence on large, annotated datasets for training, which can be expensive and time-consuming to collect and maintain. Additionally, machine learning models often act as “black boxes,” offering limited interpretability regarding how decisions are made, which raises concerns about accountability and safety in critical applications like autonomous driving. One common drawback of the above-discussed tracking strategies is their incapability to address input constraints, i.e., physical limitations of the computed control signal, which may lead to a lack of close-loop stability guarantees [13].

On the other hand, Model Predictive Control (MPC) has emerged as a premier control strategy in this domain, owing to its ability to anticipate the future behavior of the vehicle and handle multiple constraints simultaneously [14, 2]. In recent years, the application of MPC in autonomous vehicles has been extensively studied, highlighting its potential in managing the complex dynamics and uncertainties inherent to vehicular control [2]. Notable works [15, 16] have underscored the efficacy of MPC in navigating autonomous vehicles through dynamic environments. Despite these advancements, the deployment of MPC in real-world scenarios faces significant difficulties. Nonlinear MPC approaches [17, 18], while robust, are computationally demanding, posing challenges to their real-time implementation [19, 20]. Moreover, given the nonconvex nature of the MPC optimization, the solver algorithms may be characterized by uncertain convergence and suboptimality [19, 21]. Conversely, linear MPC techniques [22, 23, 20] offer computational efficiency but at the expense of model fidelity. As a matter of fact, solutions that exploit error dynamics linearized around the reference trajectory have been found to be suboptimal [24].

The proposed literature review highlights the need for an MPC framework that combines the real-time operational feasibility of linear formulations with the precision of nonlinear methods. Existing linear MPC strategies often resort to simplified models, sacrificing accuracy for computational speed. Meanwhile, the precision of nonlinear MPC comes at the cost of computational feasibility, limiting its practical application in autonomous vehicles. A possible way to mitigate the computational burdens of nonlinear approaches while preserving the accuracy of their model prediction is to resort to Feedback Linearization, a well-established technique to recast a nonlinear system into an equivalent linear one. One of the first attempts to feedback-linearize the car-bicycle kinematics can be found in [25], where both input-output FL and dynamic FL have been proposed. However, it can be shown that if such a linearized model is exploited for predictions, even simple box-like input constraints recast into state-dependent constraints leading to nonconvex MPC formulations [26, 27, 28]. Although the combination of MPC and FL is not a new approach, the literature lacks FL-based MPC solutions for constrained systems. Recently, in [29], such an idea has been used to solve a tracking problem for differential-drive robots. However, to the best of the authors knowledge, there are no existing FL-based MPC solutions for input-constrained autonomous cars.

I-A Paper’s Contribution and Organization

In this paper, we address the above-identified gap by designing a novel dual-mode FL-based MPC strategy for self-driving cars subject to longitudinal and steering angular velocity constraints. The contributions of the paper can be summarized as follows:

  • it formally characterizes the car input-output linearized tracking error dynamics and its time-varying and state-dependent input constraint set. Moreover, a worst-case time-invariant approximation of the input constraints is analytically defined;

  • it provides a design procedure to compute a stabilizing controller and associated control invariant region for the feedback linearized vehicle model; such a solution generalizes the approach presented in [28].

  • it proposes a dual-mode linearized MPC scheme ensuring stable full-state tracking and input constraints fulfillment. Differently from existing nonlinear MPC formulations for car-like vehicles, the proposed approach requires the solution of a Quadratic Programming (QP) problem. On the other hand, contrary to linear MPC formulations, the proposed strategy does not introduce approximated model predictions along the used prediction horizon.

  • it experimentally validates the proposed dual-mode MPC using laboratory experiments with a Quanser QCar and performance comparisons with other two competitor schemes. The developed code is available at the following GitHub repository https://github.com/PreCyseGroup/Feedback-Linearized-MPC-for-self-driving-cars.

The remainder of the paper is organized as follows. Section II collects some preliminary definitions from control invariance theory and car’s kinematic modeling. Moreover, it formally states the considered trajectory tracking problem. Section III describes the proposed dual-mode MPC strategies, with a formal proof of the obtained theoretical results. Section IV describes the experimental testbed, the performed experiments, and the obtained results. Finally, Section V concludes the paper with some final remarks.

II Preliminaries and Problem Formulation

Given a matrix M𝑀Mitalic_M and a vector v,𝑣v,italic_v , M[i,:]𝑀𝑖:M{[i,:]}italic_M [ italic_i , : ] denotes the ith𝑖𝑡i-thitalic_i - italic_t italic_h row of M,𝑀M,italic_M , M[i,j]𝑀𝑖𝑗M{[i,j]}italic_M [ italic_i , italic_j ] the (i,j)𝑖𝑗(i,j)( italic_i , italic_j ) entry of M,𝑀M,italic_M , and v[i]𝑣delimited-[]𝑖v{[i]}italic_v [ italic_i ] the ith𝑖𝑡i-thitalic_i - italic_t italic_h element of v.𝑣v.italic_v . A continuous-time function f(t)𝑓𝑡f(t)italic_f ( italic_t ) is said of class 𝒞3superscript𝒞3\mathcal{C}^{3}caligraphic_C start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT if f(t)𝑓𝑡f(t)italic_f ( italic_t ) admits three continuous derivatives in its domain. Given n>𝑛absentn>italic_n > scalars miIRsubscript𝑚𝑖IRm_{i}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimitsitalic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP, i=1,,n,𝑖1𝑛i=1,\dots,n,italic_i = 1 , … , italic_n , M=diag([m1,,mn])IRn×n𝑀𝑑𝑖𝑎𝑔subscript𝑚1subscript𝑚𝑛superscriptIR𝑛𝑛M=diag(\left[m_{1},\dots,m_{n}\right])\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}% \nolimits^{n\times n}italic_M = italic_d italic_i italic_a italic_g ( [ italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_m start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ] ) ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_n × italic_n end_POSTSUPERSCRIPT defines a diagonal matrix with elements misubscript𝑚𝑖m_{i}italic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT on the main diagonal. Given a variable v,𝑣v,italic_v , v(k)𝑣𝑘v(k)italic_v ( italic_k ) denotes the values of v𝑣vitalic_v at the discrete sampling time instant kZZ+:={0,1,}.𝑘subscriptZZassign01k\in\mathop{{\rm Z}\mskip-7.0mu{\rm Z}}\nolimits_{+}:=\{0,1,\ldots\}.italic_k ∈ start_BIGOP roman_Z roman_Z end_BIGOP start_POSTSUBSCRIPT + end_POSTSUBSCRIPT := { 0 , 1 , … } . Given a discrete-time index iZZ+𝑖subscriptZZi\in\mathop{{\rm Z}\mskip-7.0mu{\rm Z}}\nolimits_{+}italic_i ∈ start_BIGOP roman_Z roman_Z end_BIGOP start_POSTSUBSCRIPT + end_POSTSUBSCRIPT and the signal v(k),𝑣𝑘v(k),italic_v ( italic_k ) , v(k+i|k)𝑣𝑘conditional𝑖𝑘v(k+i|k)italic_v ( italic_k + italic_i | italic_k ) denotes the i𝑖iitalic_i-steps ahead prediction of v𝑣vitalic_v from the time instant k.𝑘k.italic_k .

Definition 1.

Consider a dynamical system z(k+1)=f(z(k),u(k))𝑧𝑘1𝑓𝑧𝑘𝑢𝑘z(k+1)=f(z(k),u(k))italic_z ( italic_k + 1 ) = italic_f ( italic_z ( italic_k ) , italic_u ( italic_k ) ) subject to the input constraints u(k)𝒰,k0.formulae-sequence𝑢𝑘𝒰for-all𝑘0u(k)\in\mathcal{U},\,\forall k\geq 0.italic_u ( italic_k ) ∈ caligraphic_U , ∀ italic_k ≥ 0 . A set ΣΣ\Sigmaroman_Σ is said to be control invariant if [30]:

z(t)Σ,u(k)𝒰:f(z(k),u(k))Σ,k0:formulae-sequencefor-all𝑧𝑡Σ𝑢𝑘𝒰formulae-sequence𝑓𝑧𝑘𝑢𝑘Σfor-all𝑘0\forall z(t)\in\Sigma,\,\exists u(k)\in\mathcal{U}\,:\,f(z(k),u(k))\in\Sigma,% \,\forall k\geq 0∀ italic_z ( italic_t ) ∈ roman_Σ , ∃ italic_u ( italic_k ) ∈ caligraphic_U : italic_f ( italic_z ( italic_k ) , italic_u ( italic_k ) ) ∈ roman_Σ , ∀ italic_k ≥ 0
Definition 2.

Consider a dynamical system z(k+1)=fa(z(k),w(k))𝑧𝑘1subscript𝑓𝑎𝑧𝑘𝑤𝑘z(k+1)=f_{a}(z(k),w(k))italic_z ( italic_k + 1 ) = italic_f start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_z ( italic_k ) , italic_w ( italic_k ) ) subject to bounded disturbance w(k)𝒲,k0.formulae-sequence𝑤𝑘𝒲for-all𝑘0w(k)\in\mathcal{W},\,\forall\,k\geq 0.italic_w ( italic_k ) ∈ caligraphic_W , ∀ italic_k ≥ 0 . A set ΣΣ\Sigmaroman_Σ is said Robust Positive Invariant (RPI) if [30]:

z(0)Σ,z(k)Σ,w𝒲,k>0formulae-sequencefor-all𝑧0Σformulae-sequence𝑧𝑘Σformulae-sequencefor-all𝑤𝒲for-all𝑘0\forall z(0)\in\Sigma,\,z(k)\in\Sigma,\,\forall w\in\mathcal{W},\,\forall k>0∀ italic_z ( 0 ) ∈ roman_Σ , italic_z ( italic_k ) ∈ roman_Σ , ∀ italic_w ∈ caligraphic_W , ∀ italic_k > 0
Definition 3.

Consider a set 𝒬𝒬\mathcal{Q}caligraphic_Q neighborhood of the origin. The dynamical system z(k+1)=fa(z(k),w(k))𝑧𝑘1subscript𝑓𝑎𝑧𝑘𝑤𝑘z(k+1)=f_{a}(z(k),w(k))italic_z ( italic_k + 1 ) = italic_f start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_z ( italic_k ) , italic_w ( italic_k ) ) is said to be Uniformly Ultimately Bounded (UUB) in 𝒬𝒬\mathcal{Q}caligraphic_Q if [31] μ>0,T(μ)>0formulae-sequencefor-all𝜇0𝑇𝜇0\forall\mu>0,\,\exists T(\mu)>0∀ italic_μ > 0 , ∃ italic_T ( italic_μ ) > 0, such that z(0)μ,z(k)𝒬,w𝒲,kT(μ)formulae-sequencefor-allnorm𝑧0𝜇formulae-sequence𝑧𝑘𝒬formulae-sequencefor-all𝑤𝒲for-all𝑘𝑇𝜇\forall\|z(0)\|\leq\mu,\,z(k)\in\mathcal{Q},\,\forall w\in\mathcal{W},\,% \forall k\geq T(\mu)∀ ∥ italic_z ( 0 ) ∥ ≤ italic_μ , italic_z ( italic_k ) ∈ caligraphic_Q , ∀ italic_w ∈ caligraphic_W , ∀ italic_k ≥ italic_T ( italic_μ ).

II-A Car-like vehicle modeling

Let’s consider a rear-driven car-like vehicle whose continuous-time kinematics is described by [25]:

Refer to caption
Figure 1: Car-like vehicle
q˙(t)=[x˙(t)y˙(t)θ˙(t)φ˙(t)]=[cosθ(t)sinθ(t)1ltan(φ(t))0]v(t)+[0001]ω(t)˙𝑞𝑡delimited-[]˙𝑥𝑡˙𝑦𝑡˙𝜃𝑡˙𝜑𝑡delimited-[]𝜃𝑡𝜃𝑡1𝑙𝜑𝑡0𝑣𝑡delimited-[]0001𝜔𝑡\dot{q}(t)\!=\!\left[\begin{array}[]{c}\dot{x}(t)\\ \dot{y}(t)\\ \dot{\theta}(t)\\ \dot{\varphi}(t)\end{array}\right]\!=\!\left[\begin{array}[]{c}\cos\theta(t)\\ \sin\theta(t)\\ \frac{1}{l}\tan(\varphi(t))\\ 0\end{array}\right]\!\!v(t)\!+\!\left[\begin{array}[]{c}0\\ 0\\ 0\\ 1\end{array}\right]\omega(t)over˙ start_ARG italic_q end_ARG ( italic_t ) = [ start_ARRAY start_ROW start_CELL over˙ start_ARG italic_x end_ARG ( italic_t ) end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_y end_ARG ( italic_t ) end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_θ end_ARG ( italic_t ) end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_φ end_ARG ( italic_t ) end_CELL end_ROW end_ARRAY ] = [ start_ARRAY start_ROW start_CELL roman_cos italic_θ ( italic_t ) end_CELL end_ROW start_ROW start_CELL roman_sin italic_θ ( italic_t ) end_CELL end_ROW start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG italic_l end_ARG roman_tan ( italic_φ ( italic_t ) ) end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARRAY ] italic_v ( italic_t ) + [ start_ARRAY start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW end_ARRAY ] italic_ω ( italic_t ) (1)

where q=[x,y,θ,φ]T𝑞superscript𝑥𝑦𝜃𝜑𝑇q=\left[x,y,\theta,\varphi\right]^{T}italic_q = [ italic_x , italic_y , italic_θ , italic_φ ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the car’s state, i.e., the x𝑥xitalic_x and y𝑦yitalic_y are the Cartesian coordinates of the rear axis’ midpoint, the heading angle θ𝜃\thetaitalic_θ of the vehicle, and the steering angle φ[φ¯,φ¯], 0<φ¯<π2formulae-sequence𝜑¯𝜑¯𝜑 0¯𝜑𝜋2\varphi\in\left[-\overline{\varphi},\overline{\varphi}\right],\,0<\overline{% \varphi}<\frac{\pi}{2}italic_φ ∈ [ - over¯ start_ARG italic_φ end_ARG , over¯ start_ARG italic_φ end_ARG ] , 0 < over¯ start_ARG italic_φ end_ARG < divide start_ARG italic_π end_ARG start_ARG 2 end_ARG, respectively. On the other hand, u=[v,ω]T𝑢superscript𝑣𝜔𝑇u=\left[v,\omega\right]^{T}italic_u = [ italic_v , italic_ω ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT are the control inputs, i.e., the longitudinal velocity of the vehicle and the steering angular velocity respectively. Moreover, l𝑙litalic_l represents the car’s wheelbase, i.e, the distance in meters between the front and rear wheels, and

xf=x+lcosθyf=y+lsinθformulae-sequencesubscript𝑥𝑓𝑥𝑙𝜃subscript𝑦𝑓𝑦𝑙𝜃x_{f}=x+l\cos\theta\quad y_{f}=y+l\sin\thetaitalic_x start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = italic_x + italic_l roman_cos italic_θ italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = italic_y + italic_l roman_sin italic_θ

are the Cartesian coordinates of the front axis’ midpoint. We assume the car’s model to be subject to symmetrical box-like constraints representing the admissible longitudinal and steering angular velocities that the car can perform, i.e,

u(t)𝒰car:={uIR2:Tug}𝑢𝑡subscript𝒰𝑐𝑎𝑟assignconditional-set𝑢superscriptIR2𝑇𝑢𝑔\begin{array}[]{c}u(t)\in\mathcal{U}_{car}:=\{u\in\mathop{{\rm I}\mskip-4.0mu{% \rm R}}\nolimits^{2}:\,Tu\leq g\}\end{array}start_ARRAY start_ROW start_CELL italic_u ( italic_t ) ∈ caligraphic_U start_POSTSUBSCRIPT italic_c italic_a italic_r end_POSTSUBSCRIPT := { italic_u ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT : italic_T italic_u ≤ italic_g } end_CELL end_ROW end_ARRAY (2)

where

T=[10011001],g=[v¯ω¯v¯ω¯]formulae-sequence𝑇delimited-[]10011001𝑔delimited-[]¯𝑣¯𝜔¯𝑣¯𝜔T=\left[\begin{array}[]{rr}-1&0\\ 0&-1\\ 1&0\\ 0&1\\ \end{array}\right],\quad g=\left[\begin{array}[]{c}\overline{v}\\ \overline{\omega}\\ \overline{v}\\ \overline{\omega}\end{array}\right]italic_T = [ start_ARRAY start_ROW start_CELL - 1 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - 1 end_CELL end_ROW start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL end_ROW end_ARRAY ] , italic_g = [ start_ARRAY start_ROW start_CELL over¯ start_ARG italic_v end_ARG end_CELL end_ROW start_ROW start_CELL over¯ start_ARG italic_ω end_ARG end_CELL end_ROW start_ROW start_CELL over¯ start_ARG italic_v end_ARG end_CELL end_ROW start_ROW start_CELL over¯ start_ARG italic_ω end_ARG end_CELL end_ROW end_ARRAY ]

and v¯,ω¯>0¯𝑣¯𝜔0\overline{v},\overline{\omega}>0over¯ start_ARG italic_v end_ARG , over¯ start_ARG italic_ω end_ARG > 0 are given upper bounds.

By defining a sampling time Ts>0subscript𝑇𝑠0T_{s}>0italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT > 0, and resorting to forward Euler discretization method, the following discrete-time kinematics is obtained:

{x(k+1)=x(k)+Tsv(k)cos(θ(k))y(k+1)=y(k)+Tsv(k)sin(θ(k))θ(k+1)=θ(k)+Tsv(k)ltan(φ(k))φ(k+1)=φ(k)+Tsω(k)cases𝑥𝑘1absent𝑥𝑘subscript𝑇𝑠𝑣𝑘𝜃𝑘𝑦𝑘1absent𝑦𝑘subscript𝑇𝑠𝑣𝑘𝜃𝑘𝜃𝑘1absent𝜃𝑘subscript𝑇𝑠𝑣𝑘𝑙𝜑𝑘𝜑𝑘1absent𝜑𝑘subscript𝑇𝑠𝜔𝑘\begin{cases}x(k+1)&=x(k)+T_{s}v(k)\cos(\theta(k))\\ y(k+1)&=y(k)+T_{s}v(k)\sin(\theta(k))\\ \theta(k+1)&=\theta(k)+T_{s}\frac{v(k)}{l}\tan(\varphi(k))\\ \varphi(k+1)&=\varphi(k)+T_{s}\omega(k)\end{cases}{ start_ROW start_CELL italic_x ( italic_k + 1 ) end_CELL start_CELL = italic_x ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_v ( italic_k ) roman_cos ( italic_θ ( italic_k ) ) end_CELL end_ROW start_ROW start_CELL italic_y ( italic_k + 1 ) end_CELL start_CELL = italic_y ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_v ( italic_k ) roman_sin ( italic_θ ( italic_k ) ) end_CELL end_ROW start_ROW start_CELL italic_θ ( italic_k + 1 ) end_CELL start_CELL = italic_θ ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT divide start_ARG italic_v ( italic_k ) end_ARG start_ARG italic_l end_ARG roman_tan ( italic_φ ( italic_k ) ) end_CELL end_ROW start_ROW start_CELL italic_φ ( italic_k + 1 ) end_CELL start_CELL = italic_φ ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_ω ( italic_k ) end_CELL end_ROW (3)

In what follows, for the sake of simplicity, we refer to (3) using the following compact representation:

q(k+1)=fcar(q(k),u(k))𝑞𝑘1subscript𝑓𝑐𝑎𝑟𝑞𝑘𝑢𝑘q(k+1)=f_{car}(q(k),u(k))italic_q ( italic_k + 1 ) = italic_f start_POSTSUBSCRIPT italic_c italic_a italic_r end_POSTSUBSCRIPT ( italic_q ( italic_k ) , italic_u ( italic_k ) )

II-B Problem’s statement

Let’s consider a smooth reference trajectory described in terms of Cartesian positions xr(t)subscript𝑥𝑟𝑡x_{r}(t)italic_x start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ), yr(t)subscript𝑦𝑟𝑡y_{r}(t)italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ), velocities x˙r(t)subscript˙𝑥𝑟𝑡\dot{x}_{r}(t)over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ), y˙r(t)subscript˙𝑦𝑟𝑡\dot{y}_{r}(t)over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) and accelerations x¨r(t)subscript¨𝑥𝑟𝑡\ddot{x}_{r}(t)over¨ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ), y¨r(t)subscript¨𝑦𝑟𝑡\ddot{y}_{r}(t)over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) and jerks x˙˙˙r(t)subscript˙˙˙𝑥𝑟𝑡\dddot{x}_{r}(t)over˙˙˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ), y˙˙˙r(t)subscript˙˙˙𝑦𝑟𝑡\dddot{y}_{r}(t)over˙˙˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) of the rear axis center of the car. The corresponding reference car’s state is denoted as qr(t)=[xr(t),yr(t),θr(t),φr(t)]Tsubscript𝑞𝑟𝑡superscriptsubscript𝑥𝑟𝑡subscript𝑦𝑟𝑡subscript𝜃𝑟𝑡subscript𝜑𝑟𝑡𝑇q_{r}(t)=\left[x_{r}(t),y_{r}(t),\theta_{r}(t),\varphi_{r}(t)\right]^{T}italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = [ italic_x start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, where θr(t)subscript𝜃𝑟𝑡\theta_{r}(t)italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) and φr(t)subscript𝜑𝑟𝑡\varphi_{r}(t)italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) are the heading and steering angles associated to the given trajectory which can be computed as [25]:

θr(t)=ATAN2(y˙r(t)vr(t),x˙r(t)vr(t))φr(t)=arctan(l(y¨r(t)x˙r(t)x¨r(t)y˙r(t))vr(t)3)subscript𝜃𝑟𝑡absentsubscriptATAN2subscript˙𝑦𝑟𝑡subscript𝑣𝑟𝑡subscript˙𝑥𝑟𝑡subscript𝑣𝑟𝑡missing-subexpressionsubscript𝜑𝑟𝑡absent𝑙subscript¨𝑦𝑟𝑡subscript˙𝑥𝑟𝑡subscript¨𝑥𝑟𝑡subscript˙𝑦𝑟𝑡subscript𝑣𝑟superscript𝑡3missing-subexpression\begin{array}[]{rcl}\theta_{r}(t)=&\text{ATAN}_{2}\left(\frac{\dot{y}_{r}(t)}{% v_{r}(t)},\frac{\dot{x}_{r}(t)}{v_{r}(t)}\right)\\ \varphi_{r}(t)=&\arctan\left(\frac{l(\ddot{y}_{r}(t)\dot{x}_{r}(t)-\ddot{x}_{r% }(t)\dot{y}_{r}(t))}{v_{r}(t)^{3}}\right)\end{array}start_ARRAY start_ROW start_CELL italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = end_CELL start_CELL ATAN start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( divide start_ARG over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) end_ARG start_ARG italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) end_ARG , divide start_ARG over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) end_ARG start_ARG italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) end_ARG ) end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = end_CELL start_CELL roman_arctan ( divide start_ARG italic_l ( over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) - over¨ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ) end_ARG start_ARG italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT end_ARG ) end_CELL start_CELL end_CELL end_ROW end_ARRAY (4)

On the other hand, the reference inputs associated with the trajectory are given by ur(t)=[vr(t),ωr(t)]Tsubscript𝑢𝑟𝑡superscriptsubscript𝑣𝑟𝑡subscript𝜔𝑟𝑡𝑇u_{r}(t)=\left[v_{r}(t),\,\omega_{r}(t)\right]^{T}italic_u start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = [ italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_ω start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, where

vr(t)=x˙r(t)2+yr˙(t)2ωr(t)=lvr(y˙˙˙rx˙rx˙˙˙ry˙r)vr23(y¨rx˙rx¨ry˙r)(x˙rx¨r+y˙ry¨r)vr6+l2(y¨rx˙rx¨ry˙r)2subscript𝑣𝑟𝑡absentsubscript˙𝑥𝑟superscript𝑡2˙subscript𝑦𝑟superscript𝑡2missing-subexpressionsubscript𝜔𝑟𝑡absent𝑙subscript𝑣𝑟subscript˙˙˙𝑦𝑟subscript˙𝑥𝑟subscript˙˙˙𝑥𝑟subscript˙𝑦𝑟superscriptsubscript𝑣𝑟23subscript¨𝑦𝑟subscript˙𝑥𝑟subscript¨𝑥𝑟subscript˙𝑦𝑟subscript˙𝑥𝑟subscript¨𝑥𝑟subscript˙𝑦𝑟subscript¨𝑦𝑟superscriptsubscript𝑣𝑟6superscript𝑙2superscriptsubscript¨𝑦𝑟subscript˙𝑥𝑟subscript¨𝑥𝑟subscript˙𝑦𝑟2missing-subexpression\begin{array}[]{rcl}v_{r}(t)=&\sqrt{\dot{x}_{r}(t)^{2}+\dot{y_{r}}(t)^{2}}\\ \omega_{r}(t)=&lv_{r}\frac{\left(\dddot{y}_{r}\dot{x}_{r}-\dddot{x}_{r}\dot{y}% _{r}\right)v_{r}^{2}-3\left(\ddot{y}_{r}\dot{x}_{r}-\ddot{x}_{r}\dot{y}_{r}% \right)\left(\dot{x}_{r}\ddot{x}_{r}+\dot{y}_{r}\ddot{y}_{r}\right)}{v_{r}^{6}% +l^{2}\left(\ddot{y}_{r}\dot{x}_{r}-\ddot{x}_{r}\dot{y}_{r}\right)^{2}}\\ \end{array}start_ARRAY start_ROW start_CELL italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = end_CELL start_CELL square-root start_ARG over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + over˙ start_ARG italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT end_ARG ( italic_t ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_ω start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = end_CELL start_CELL italic_l italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT divide start_ARG ( over˙˙˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT - over˙˙˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 3 ( over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT - over¨ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) ( over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over¨ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT + over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) end_ARG start_ARG italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 6 end_POSTSUPERSCRIPT + italic_l start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT - over¨ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_CELL start_CELL end_CELL end_ROW end_ARRAY (5)

Notice that the time dependency has been omitted on the right-hand side for compactness.

Assumption 1.

The reference trajectory qr(t)=[xr(t),yr(t),θr(t),φr(t)]Tsubscript𝑞𝑟𝑡superscriptsubscript𝑥𝑟𝑡subscript𝑦𝑟𝑡subscript𝜃𝑟𝑡subscript𝜑𝑟𝑡𝑇q_{r}(t)=\left[x_{r}(t),y_{r}(t),\theta_{r}(t),\varphi_{r}(t)\right]^{T}italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = [ italic_x start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT for (1) is uniformly bounded and smooth, i.e., Γ>0:qr(t)<Γ,t0,qr(t)𝒞3.:Γ0formulae-sequencenormsubscript𝑞𝑟𝑡Γformulae-sequencefor-all𝑡0subscript𝑞𝑟𝑡superscript𝒞3\exists\varGamma>0:\,\|q_{r}(t)\|<\varGamma,\,\forall t\geq 0,\,\,q_{r}(t)\in% \mathcal{C}^{3}.∃ roman_Γ > 0 : ∥ italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ∥ < roman_Γ , ∀ italic_t ≥ 0 , italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ∈ caligraphic_C start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT . \Box

Problem 1.

Design a constrained state feedback controller

u(t)=ϕ(t,q(t),qr(t),ur(t))𝑢𝑡italic-ϕ𝑡𝑞𝑡subscript𝑞𝑟𝑡subscript𝑢𝑟𝑡u(t)=\phi(t,q(t),q_{r}(t),u_{r}(t))italic_u ( italic_t ) = italic_ϕ ( italic_t , italic_q ( italic_t ) , italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_u start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ) (6)

such that u(t)𝒰car,t0formulae-sequence𝑢𝑡subscript𝒰𝑐𝑎𝑟for-all𝑡0u(t)\in\mathcal{U}_{car},\forall\,t\geq 0italic_u ( italic_t ) ∈ caligraphic_U start_POSTSUBSCRIPT italic_c italic_a italic_r end_POSTSUBSCRIPT , ∀ italic_t ≥ 0 and stable full-state tracking is achieved, i.e.,

δ>0,t00 s.t. q~(t0)<δq~(t)<ε,tt0formulae-sequenceformulae-sequence𝛿0subscript𝑡00 s.t. norm~𝑞subscript𝑡0𝛿norm~𝑞𝑡𝜀for-all𝑡subscript𝑡0\exists\delta>0,\,t_{0}\geq 0\,\text{ s.t. }\|\tilde{q}(t_{0})\|<\delta% \implies\|\tilde{q}(t)\|<\varepsilon,\,\forall t\geq t_{0}∃ italic_δ > 0 , italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ≥ 0 s.t. ∥ over~ start_ARG italic_q end_ARG ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ∥ < italic_δ ⟹ ∥ over~ start_ARG italic_q end_ARG ( italic_t ) ∥ < italic_ε , ∀ italic_t ≥ italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT

where q~(t)=q(t)qr(t)~𝑞𝑡𝑞𝑡subscript𝑞𝑟𝑡\tilde{q}(t)=q(t)-q_{r}(t)over~ start_ARG italic_q end_ARG ( italic_t ) = italic_q ( italic_t ) - italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) is the tracking error.

III Proposed Solution

In this section, the considered problem is addressed by combining feedback-linearization and MPC arguments. First, the control problem is described as a standard nonlinear MPC over a finite prediction horizon. Then, the nonconvex nature of the underlying MPC optimization is analyzed, and a novel predictive framework based on feedback linearization is proposed to recover a convex optimization problem that fulfills constraints while guaranteeing a bounded tracking error.

III-A Nonlinear MPC

Let’s define u~=uur~𝑢𝑢subscript𝑢𝑟\tilde{u}=u-u_{r}over~ start_ARG italic_u end_ARG = italic_u - italic_u start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT and a Linear-Quadratic (LQ) cost

JN(k,q~(k),u~(k))=i=0N1q~(k+i+1|k)TQq~(k+i+1|k)++u~(k+i|k)TRu~(k+i|k)subscript𝐽𝑁𝑘~𝑞𝑘~𝑢𝑘superscriptsubscript𝑖0𝑁1limit-from~𝑞superscript𝑘𝑖conditional1𝑘𝑇𝑄~𝑞𝑘𝑖conditional1𝑘missing-subexpressionmissing-subexpression~𝑢superscript𝑘conditional𝑖𝑘𝑇𝑅~𝑢𝑘conditional𝑖𝑘missing-subexpression\begin{array}[]{lcr}J_{N}(k,\tilde{q}(k),\tilde{u}(k))=\displaystyle\sum_{i=0}% ^{N-1}&\!\!\!\!\!\!\tilde{q}(k+i+1|k)^{T}Q\tilde{q}(k+i+1|k)+\\ &+\tilde{u}(k+i|k)^{T}R\tilde{u}(k+i|k)\end{array}start_ARRAY start_ROW start_CELL italic_J start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k , over~ start_ARG italic_q end_ARG ( italic_k ) , over~ start_ARG italic_u end_ARG ( italic_k ) ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over~ start_ARG italic_q end_ARG ( italic_k + italic_i + 1 | italic_k ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_Q over~ start_ARG italic_q end_ARG ( italic_k + italic_i + 1 | italic_k ) + end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + over~ start_ARG italic_u end_ARG ( italic_k + italic_i | italic_k ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_R over~ start_ARG italic_u end_ARG ( italic_k + italic_i | italic_k ) end_CELL start_CELL end_CELL end_ROW end_ARRAY

where N>0𝑁0N>0italic_N > 0 is the prediction horizon, and Q=QT0,QIRnformulae-sequence𝑄superscript𝑄𝑇0𝑄superscriptIR𝑛Q=Q^{T}\geq 0,\,Q\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{n}italic_Q = italic_Q start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ≥ 0 , italic_Q ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, R=RT>0,RIRmformulae-sequence𝑅superscript𝑅𝑇0𝑅superscriptIR𝑚R=R^{T}>0,\,R\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{m}italic_R = italic_R start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT > 0 , italic_R ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT are weighting matrices for the state and control input tracking errors, respectively. Then, the optimal control law that minimizes the defined cost function over the prediction horizon N𝑁Nitalic_N can be computed as:

u(k)=argminu(k),,u(k+N1)JN(k,q~(k),u~(k))s.t.formulae-sequence𝑢𝑘subscriptargmin𝑢𝑘𝑢𝑘𝑁1subscript𝐽𝑁𝑘~𝑞𝑘~𝑢𝑘𝑠𝑡\displaystyle u(k)=\displaystyle\operatorname*{arg\,min}_{u(k),\dots,u(k+N-1)}% J_{N}(k,\tilde{q}(k),\tilde{u}(k))\,\,s.t.italic_u ( italic_k ) = start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT italic_u ( italic_k ) , … , italic_u ( italic_k + italic_N - 1 ) end_POSTSUBSCRIPT italic_J start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k , over~ start_ARG italic_q end_ARG ( italic_k ) , over~ start_ARG italic_u end_ARG ( italic_k ) ) italic_s . italic_t . (7a)
q(k+i+1|k)=fcar(q(k+i|k),u(k+i))𝑞𝑘𝑖conditional1𝑘subscript𝑓𝑐𝑎𝑟𝑞𝑘conditional𝑖𝑘𝑢𝑘𝑖\displaystyle q(k+i+1|k)=f_{car}(q(k+i|k),u(k+i))italic_q ( italic_k + italic_i + 1 | italic_k ) = italic_f start_POSTSUBSCRIPT italic_c italic_a italic_r end_POSTSUBSCRIPT ( italic_q ( italic_k + italic_i | italic_k ) , italic_u ( italic_k + italic_i ) ) (7b)
u(k+i)𝒰car𝑢𝑘𝑖subscript𝒰𝑐𝑎𝑟\displaystyle u(k+i)\in\mathcal{U}_{car}italic_u ( italic_k + italic_i ) ∈ caligraphic_U start_POSTSUBSCRIPT italic_c italic_a italic_r end_POSTSUBSCRIPT (7c)
q~(k+N|k)𝒬N~𝑞𝑘conditional𝑁𝑘subscript𝒬𝑁\displaystyle\tilde{q}(k+N|k)\in\mathcal{Q}_{N}over~ start_ARG italic_q end_ARG ( italic_k + italic_N | italic_k ) ∈ caligraphic_Q start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT (7d)
i=0,1N1𝑖01𝑁1\displaystyle\quad i=0,1\dots N-1italic_i = 0 , 1 … italic_N - 1

where 𝒬Nsubscript𝒬𝑁\mathcal{Q}_{N}caligraphic_Q start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is a predefined set, PI with respect to an offline-designed feedback terminal control law uN(k)=ϕN(k,q(k),qr(k),ur(k))𝒰car,kNformulae-sequencesubscript𝑢𝑁𝑘subscriptitalic-ϕ𝑁𝑘𝑞𝑘subscript𝑞𝑟𝑘subscript𝑢𝑟𝑘subscript𝒰𝑐𝑎𝑟for-all𝑘𝑁u_{N}(k)=\phi_{N}(k,q(k),q_{r}(k),u_{r}(k))\in\mathcal{U}_{car},\,\forall k\geq Nitalic_u start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k ) = italic_ϕ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k , italic_q ( italic_k ) , italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , italic_u start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ) ∈ caligraphic_U start_POSTSUBSCRIPT italic_c italic_a italic_r end_POSTSUBSCRIPT , ∀ italic_k ≥ italic_N. The above is known as dual-mode MPC, i.e., for the first N𝑁Nitalic_N steps, the control law is obtained by solving the above optimization and applying the optimal solution in a receding horizon fashion, i.e., only the first sample u(k)𝑢𝑘u(k)italic_u ( italic_k ) is applied to the system (1) and the optimization is solved at any sampling time. Then, once the error trajectory q~(k)~𝑞𝑘\tilde{q}(k)over~ start_ARG italic_q end_ARG ( italic_k ) reaches 𝒬Nsubscript𝒬𝑁\mathcal{Q}_{N}caligraphic_Q start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, the control law uN(k)subscript𝑢𝑁𝑘u_{N}(k)italic_u start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k ) associated to 𝒬Nsubscript𝒬𝑁\mathcal{Q}_{N}caligraphic_Q start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is used.

Remark 1.

The above dual-mode MPC strategy guarantees stability and input constraint fulfillment, for any initial condition q~(0)~𝑞0\tilde{q}(0)over~ start_ARG italic_q end_ARG ( 0 ) such that the optimization problem (7) is feasible [32]. Consequently, under the effect of the dual-mode MPC control law, the tracking error is bounded with respect to any trajectory complying with Assumption 1.

Remark 2.

Although appealing, optimization (7) suffers from the following drawbacks:

  • The optimization problem is highly nonconvex due to the presence of the constraints (7b) and (7d). Moreover, the obtained solutions may suffer from local minima problems [21];

  • The computational burden associate to (7), especially for large prediction horizon N𝑁Nitalic_N, may not allow the real-time implementation of the control scheme;

  • The computation of 𝒬Nsubscript𝒬𝑁\mathcal{Q}_{N}caligraphic_Q start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT and associated state-feedback controller uNsubscript𝑢𝑁u_{N}italic_u start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is not trivial for the nonlinear vehicle kinematic model (1).

Motivated by the above drawbacks, in what follows a novel MPC formulation based on feedback linearization arguments is proposed. In particular, first, the input-output linearization proposed in [25] is exploited to obtain a linear description of the car’s kinematics. Then, inspired by the idea introduced in [28], the time-varying input constraints acting on the linearized model and their worst-case realization are analytically characterized. Finally, the obtained constrained model and worst-case arguments are used to design a tracking control strategy that ensures stability, recursive feasibility, and input constraint fulfillment.

III-B Input-Output Feedback Linearization

Here, the input-output feedback-linearization introduced in [25] is used to obtain a linearized description of the car’s kinematic model.

Let’s define two new outputs

z=[z1z2]=[x+lcos(θ)+Δcos(θ+φ)y+lsin(θ)+Δsin(θ+φ)]𝑧delimited-[]subscript𝑧1subscript𝑧2delimited-[]𝑥𝑙𝜃Δ𝜃𝜑𝑦𝑙𝜃Δ𝜃𝜑z=\left[\begin{array}[]{c}z_{1}\\ z_{2}\end{array}\right]=\left[\begin{array}[]{c}x+l\cos(\theta)+\Delta\cos(% \theta+\varphi)\\ y+l\sin(\theta)+\Delta\sin(\theta+\varphi)\end{array}\right]italic_z = [ start_ARRAY start_ROW start_CELL italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ] = [ start_ARRAY start_ROW start_CELL italic_x + italic_l roman_cos ( italic_θ ) + roman_Δ roman_cos ( italic_θ + italic_φ ) end_CELL end_ROW start_ROW start_CELL italic_y + italic_l roman_sin ( italic_θ ) + roman_Δ roman_sin ( italic_θ + italic_φ ) end_CELL end_ROW end_ARRAY ] (8)

representing the Cartesian position of a point P𝑃Pitalic_P at a distance Δ>0Δ0\Delta>0roman_Δ > 0 from the center of front wheels’ axis, and a new state vector η=[η1,η2]T=[θ,φ]T𝜂superscriptsubscript𝜂1subscript𝜂2𝑇superscript𝜃𝜑𝑇\eta=\left[\eta_{1},\,\eta_{2}\right]^{T}=\left[\theta,\,\varphi\right]^{T}italic_η = [ italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT = [ italic_θ , italic_φ ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT. Then, by resorting to the following input transformation depending on η𝜂\etaitalic_η:

w=M(η)u,M(η)=[cos(η1)tan(η2)(sin(η1)+Δls1)Δs1sin(η1)+tan(η2)(cos(η1)+Δlc1)Δc1]𝑤𝑀𝜂𝑢𝑀𝜂delimited-[]subscript𝜂1subscript𝜂2subscript𝜂1Δ𝑙subscript𝑠1Δsubscript𝑠1subscript𝜂1subscript𝜂2subscript𝜂1Δ𝑙subscript𝑐1Δsubscript𝑐1\begin{array}[]{c}w=M(\eta)u,\\ M(\eta)=\left[\!\!\begin{array}[]{cc}\cos(\eta_{1})-\tan(\eta_{2})(\sin(\eta_{% 1})+\frac{\Delta}{l}s_{1})&-\Delta s_{1}\\ \sin(\eta_{1})+\tan(\eta_{2})(\cos(\eta_{1})+\frac{\Delta}{l}c_{1})&\Delta c_{% 1}\end{array}\!\!\right]\end{array}start_ARRAY start_ROW start_CELL italic_w = italic_M ( italic_η ) italic_u , end_CELL end_ROW start_ROW start_CELL italic_M ( italic_η ) = [ start_ARRAY start_ROW start_CELL roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - roman_tan ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ( roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + divide start_ARG roman_Δ end_ARG start_ARG italic_l end_ARG italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_CELL start_CELL - roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + roman_tan ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ( roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + divide start_ARG roman_Δ end_ARG start_ARG italic_l end_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_CELL start_CELL roman_Δ italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ] end_CELL end_ROW end_ARRAY (9)

where s1=sin(η1+η2)c1=cos(η1+η2),formulae-sequencesubscript𝑠1subscript𝜂1subscript𝜂2subscript𝑐1subscript𝜂1subscript𝜂2s_{1}=\sin(\eta_{1}+\eta_{2})\quad c_{1}=\cos(\eta_{1}+\eta_{2}),italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , the kinematic model (1) is recast into

z˙=w˙𝑧𝑤\displaystyle\dot{z}=wover˙ start_ARG italic_z end_ARG = italic_w (10a)
η˙=O(η)w˙𝜂𝑂𝜂𝑤\displaystyle\dot{\eta}=O(\eta)wover˙ start_ARG italic_η end_ARG = italic_O ( italic_η ) italic_w (10b)

where

O(η)=[sin(η2)c1lsin(η2)s1lsin(η2)c1ls1Δsin(η2)s1l+c1Δ]𝑂𝜂delimited-[]subscript𝜂2subscript𝑐1𝑙subscript𝜂2subscript𝑠1𝑙subscript𝜂2subscript𝑐1𝑙subscript𝑠1Δsubscript𝜂2subscript𝑠1𝑙subscript𝑐1ΔO(\eta)=\left[\begin{array}[]{cc}\frac{\sin(\eta_{2})c_{1}}{l}&\frac{\sin(\eta% _{2})s_{1}}{l}\\ \frac{-\sin(\eta_{2})c_{1}}{l}-\frac{s_{1}}{\Delta}&\frac{-\sin(\eta_{2})s_{1}% }{l}+\frac{c_{1}}{\Delta}\end{array}\right]italic_O ( italic_η ) = [ start_ARRAY start_ROW start_CELL divide start_ARG roman_sin ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_l end_ARG end_CELL start_CELL divide start_ARG roman_sin ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_l end_ARG end_CELL end_ROW start_ROW start_CELL divide start_ARG - roman_sin ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_l end_ARG - divide start_ARG italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG roman_Δ end_ARG end_CELL start_CELL divide start_ARG - roman_sin ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_l end_ARG + divide start_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG roman_Δ end_ARG end_CELL end_ROW end_ARRAY ]

Notice that (10a) defines a two-single-integrator model subject to a decoupled nonlinear internal dynamics (10b). The above decoupled system can be discretized via forward Euler discretization method, obtaining:

z(k+1)=Az(k)+Bw(k),A=I2×2,B=TsI2×2formulae-sequence𝑧𝑘1𝐴𝑧𝑘𝐵𝑤𝑘formulae-sequence𝐴subscript𝐼22𝐵subscript𝑇𝑠subscript𝐼22\displaystyle z(k+1)=Az(k)+Bw(k),\quad A=I_{2\times 2},\quad B=T_{s}I_{2\times 2}italic_z ( italic_k + 1 ) = italic_A italic_z ( italic_k ) + italic_B italic_w ( italic_k ) , italic_A = italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT , italic_B = italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT (11a)
η(k+1)=η(k)+TsO(η(k))w(k)𝜂𝑘1𝜂𝑘subscript𝑇𝑠𝑂𝜂𝑘𝑤𝑘\displaystyle\eta(k+1)=\eta(k)+T_{s}O(\eta(k))w(k)italic_η ( italic_k + 1 ) = italic_η ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_O ( italic_η ( italic_k ) ) italic_w ( italic_k ) (11b)
Property 1.

The input output feedback-linearization (8)-(10) and forward Euler discretization method commute for the car’s kinematic model (1).

Proof.

Let’s consider the output transformation (8) and its first-order derivative

z˙1=x˙lsin(θ)θ˙Δsin(θ+φ)(θ˙+φ˙)z˙2=y˙+lcos(θ)θ˙+Δcos(θ+φ)(θ˙+φ˙)subscript˙𝑧1˙𝑥𝑙𝜃˙𝜃Δ𝜃𝜑˙𝜃˙𝜑subscript˙𝑧2˙𝑦𝑙𝜃˙𝜃Δ𝜃𝜑˙𝜃˙𝜑\begin{array}[]{rcl}\dot{z}_{1}&=&\dot{x}-l\sin(\theta)\dot{\theta}-\Delta\sin% (\theta+\varphi)(\dot{\theta}+\dot{\varphi})\\ \dot{z}_{2}&=&\dot{y}+l\cos(\theta)\dot{\theta}+\Delta\cos(\theta+\varphi)(% \dot{\theta}+\dot{\varphi})\end{array}start_ARRAY start_ROW start_CELL over˙ start_ARG italic_z end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL = end_CELL start_CELL over˙ start_ARG italic_x end_ARG - italic_l roman_sin ( italic_θ ) over˙ start_ARG italic_θ end_ARG - roman_Δ roman_sin ( italic_θ + italic_φ ) ( over˙ start_ARG italic_θ end_ARG + over˙ start_ARG italic_φ end_ARG ) end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_z end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL = end_CELL start_CELL over˙ start_ARG italic_y end_ARG + italic_l roman_cos ( italic_θ ) over˙ start_ARG italic_θ end_ARG + roman_Δ roman_cos ( italic_θ + italic_φ ) ( over˙ start_ARG italic_θ end_ARG + over˙ start_ARG italic_φ end_ARG ) end_CELL end_ROW end_ARRAY

Then, under forward Euler discretization arguments one obtains

z1(k+1)z1(k)Ts=x(k+1)x(k)Tslsin(θ)θ(k+1)θ(k)TsΔsin(θ+φ)[θ(k+1)θ(k)Ts+φ(k+1)φ(k)Ts]z2(k+1)z2(k)Ts=y(k+1)y(k)Ts+lcos(θ)θ(k+1)θ(k)Ts++Δcos(θ+φ)[θ(k+1)θ(k)Ts+φ(k+1)φ(k)Ts]subscript𝑧1𝑘1subscript𝑧1𝑘subscript𝑇𝑠𝑥𝑘1𝑥𝑘subscript𝑇𝑠𝑙𝜃𝜃𝑘1𝜃𝑘subscript𝑇𝑠Δ𝜃𝜑delimited-[]𝜃𝑘1𝜃𝑘subscript𝑇𝑠𝜑𝑘1𝜑𝑘subscript𝑇𝑠subscript𝑧2𝑘1subscript𝑧2𝑘subscript𝑇𝑠𝑦𝑘1𝑦𝑘subscript𝑇𝑠𝑙𝜃𝜃𝑘1𝜃𝑘subscript𝑇𝑠Δ𝜃𝜑delimited-[]𝜃𝑘1𝜃𝑘subscript𝑇𝑠𝜑𝑘1𝜑𝑘subscript𝑇𝑠{\scriptsize\begin{split}\frac{z_{1}(k+1)-z_{1}(k)}{T_{s}}&=\frac{x(k+1)-x(k)}% {T_{s}}-l\sin(\theta)\frac{\theta(k+1)-\theta(k)}{T_{s}}-\\ &-\Delta\sin(\theta+\varphi)\left[\frac{\theta(k+1)-\theta(k)}{T_{s}}+\frac{% \varphi(k+1)-\varphi(k)}{T_{s}}\right]\\ \frac{z_{2}(k+1)-z_{2}(k)}{T_{s}}&=\frac{y(k+1)-y(k)}{T_{s}}+l\cos(\theta)% \frac{\theta(k+1)-\theta(k)}{T_{s}}+\\ &+\Delta\cos(\theta+\varphi)\left[\frac{\theta(k+1)-\theta(k)}{T_{s}}+\frac{% \varphi(k+1)-\varphi(k)}{T_{s}}\right]\end{split}}start_ROW start_CELL divide start_ARG italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_k + 1 ) - italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG end_CELL start_CELL = divide start_ARG italic_x ( italic_k + 1 ) - italic_x ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG - italic_l roman_sin ( italic_θ ) divide start_ARG italic_θ ( italic_k + 1 ) - italic_θ ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG - end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL - roman_Δ roman_sin ( italic_θ + italic_φ ) [ divide start_ARG italic_θ ( italic_k + 1 ) - italic_θ ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG + divide start_ARG italic_φ ( italic_k + 1 ) - italic_φ ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG ] end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_k + 1 ) - italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG end_CELL start_CELL = divide start_ARG italic_y ( italic_k + 1 ) - italic_y ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG + italic_l roman_cos ( italic_θ ) divide start_ARG italic_θ ( italic_k + 1 ) - italic_θ ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG + end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + roman_Δ roman_cos ( italic_θ + italic_φ ) [ divide start_ARG italic_θ ( italic_k + 1 ) - italic_θ ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG + divide start_ARG italic_φ ( italic_k + 1 ) - italic_φ ( italic_k ) end_ARG start_ARG italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT end_ARG ] end_CELL end_ROW (12)

By substituting x(k+1)𝑥𝑘1x(k+1)italic_x ( italic_k + 1 ), y(k+1)𝑦𝑘1y(k+1)italic_y ( italic_k + 1 ), θ(k+1).𝜃𝑘1\theta(k+1).italic_θ ( italic_k + 1 ) . φ(k+1)𝜑𝑘1\varphi(k+1)italic_φ ( italic_k + 1 ) with the right-hand sides of (3) and rewriting the equation in a compact form, the resulting discrete-time evolution of z1subscript𝑧1z_{1}italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and z2subscript𝑧2z_{2}italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is:

z(k+1)=z(k)+TsM(η(k))u(k)𝑧𝑘1𝑧𝑘subscript𝑇𝑠𝑀𝜂𝑘𝑢𝑘z(k+1)=z(k)+T_{s}M(\eta(k))u(k)italic_z ( italic_k + 1 ) = italic_z ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_M ( italic_η ( italic_k ) ) italic_u ( italic_k ) (13)

Finally, by using the input transformation (9), the discrete-time feedback linearized system (11) is obtained, which is equal to the discrete-time system obtained by discretization of (10a). Similarly, the nonlinear internal dynamics (10b) can be discretized obtaining (11b). Hence, input-output linearization and discretization commute. ∎

III-C Tracking Error Model and Input Constraint Characterization

Here, the feedback-linearized tracking error model is formally derived. By applying the output transformation (8), the reference output for the input-output linearized system (10) is given by

zr=[xr+lcos(θr)+Δcos(θr+φr)yr+lsin(θr)+Δsin(θr+φr)]subscript𝑧𝑟delimited-[]subscript𝑥𝑟𝑙𝑐𝑜𝑠subscript𝜃𝑟Δsubscript𝜃𝑟subscript𝜑𝑟subscript𝑦𝑟𝑙𝑠𝑖𝑛subscript𝜃𝑟Δsubscript𝜃𝑟subscript𝜑𝑟z_{r}=\left[\begin{array}[]{c}x_{r}+lcos(\theta_{r})+\Delta\cos(\theta_{r}+% \varphi_{r})\\ y_{r}+lsin(\theta_{r})+\Delta\sin(\theta_{r}+\varphi_{r})\end{array}\right]italic_z start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL italic_x start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT + italic_l italic_c italic_o italic_s ( italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) + roman_Δ roman_cos ( italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT + italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT + italic_l italic_s italic_i italic_n ( italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) + roman_Δ roman_sin ( italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT + italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARRAY ] (14)

Similarly, reference inputs for (10) can be computed via (9), obtaining

wr(t)=M(θr(t),φr(t))ur(t)subscript𝑤𝑟𝑡𝑀subscript𝜃𝑟𝑡subscript𝜑𝑟𝑡subscript𝑢𝑟𝑡w_{r}(t)=M(\theta_{r}(t),\varphi_{r}(t))u_{r}(t)italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) = italic_M ( italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) , italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ) italic_u start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) (15)

By defining the error vectors z~=zzr~𝑧𝑧subscript𝑧𝑟\tilde{z}=z-z_{r}over~ start_ARG italic_z end_ARG = italic_z - italic_z start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT and w~=wwr~𝑤𝑤subscript𝑤𝑟\tilde{w}=w-w_{r}over~ start_ARG italic_w end_ARG = italic_w - italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, η~=ηηr,ηr=[θr,ϕr]Tformulae-sequence~𝜂𝜂subscript𝜂𝑟subscript𝜂𝑟superscriptsubscript𝜃𝑟subscriptitalic-ϕ𝑟𝑇\tilde{\eta}=\eta-\eta_{r},\,\eta_{r}=\left[\theta_{r},\phi_{r}\right]^{T}over~ start_ARG italic_η end_ARG = italic_η - italic_η start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT = [ italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_ϕ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, the input-output linearized and internal tracking error dynamics are given by:

z~˙(t)=w~(t)˙~𝑧𝑡~𝑤𝑡\displaystyle\dot{\tilde{z}}(t)=\tilde{w}(t)over˙ start_ARG over~ start_ARG italic_z end_ARG end_ARG ( italic_t ) = over~ start_ARG italic_w end_ARG ( italic_t ) (16a)
η~˙(t)=κ(η~,w~,ηr,wr,t)=O(η(t))w(t)O(ηr(t))wr(t)˙~𝜂𝑡𝜅~𝜂~𝑤subscript𝜂𝑟subscript𝑤𝑟𝑡𝑂𝜂𝑡𝑤𝑡𝑂subscript𝜂𝑟𝑡subscript𝑤𝑟𝑡\displaystyle\dot{\tilde{\eta}}(t)=\kappa(\tilde{\eta},\tilde{w},\eta_{r},w_{r% },t)=O(\eta(t))w(t)-O(\eta_{r}(t))w_{r}(t)over˙ start_ARG over~ start_ARG italic_η end_ARG end_ARG ( italic_t ) = italic_κ ( over~ start_ARG italic_η end_ARG , over~ start_ARG italic_w end_ARG , italic_η start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_t ) = italic_O ( italic_η ( italic_t ) ) italic_w ( italic_t ) - italic_O ( italic_η start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ) italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) (16b)

which can be discretized by resorting to the Euler forward method and re-written as

z~(k+1)=Az~(k)+Bw(k)Bwr(k),~𝑧𝑘1𝐴~𝑧𝑘𝐵𝑤𝑘𝐵subscript𝑤𝑟𝑘\displaystyle\tilde{z}(k+1)=A\tilde{z}(k)+Bw(k)-Bw_{r}(k),over~ start_ARG italic_z end_ARG ( italic_k + 1 ) = italic_A over~ start_ARG italic_z end_ARG ( italic_k ) + italic_B italic_w ( italic_k ) - italic_B italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , (17a)
A=I2×2,B=TsI2×2formulae-sequence𝐴subscript𝐼22𝐵subscript𝑇𝑠subscript𝐼22\displaystyle A=I_{2\times 2},\quad B=T_{s}I_{2\times 2}italic_A = italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT , italic_B = italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT (17b)
η~(k+1)=η~(k)+Tsκ(η~(k),w~(k),ηr(k),wr(k),k)~𝜂𝑘1~𝜂𝑘subscript𝑇𝑠𝜅~𝜂𝑘~𝑤𝑘subscript𝜂𝑟𝑘subscript𝑤𝑟𝑘𝑘\displaystyle\tilde{\eta}(k+1)=\tilde{\eta}(k)+T_{s}\kappa(\tilde{\eta}(k),% \tilde{w}(k),\eta_{r}(k),w_{r}(k),k)over~ start_ARG italic_η end_ARG ( italic_k + 1 ) = over~ start_ARG italic_η end_ARG ( italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_κ ( over~ start_ARG italic_η end_ARG ( italic_k ) , over~ start_ARG italic_w end_ARG ( italic_k ) , italic_η start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , italic_k ) (17c)
Remark 3.

Since the reference trajectory is assumed to be bounded, then also wr(k)subscript𝑤𝑟𝑘w_{r}(k)italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) is bounded and the set of admissible wr(k)subscript𝑤𝑟𝑘w_{r}(k)italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) can be over-approximated by a ball 𝒲rIR2subscript𝒲𝑟superscriptIR2\mathcal{W}_{r}\subset\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{2}caligraphic_W start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ⊂ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT of radius rd,subscript𝑟𝑑r_{d},italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT , i.e.,

wr𝒲r={wrIR2:wrTWr1wr1},Wr=rd2I2×2formulae-sequencesubscript𝑤𝑟subscript𝒲𝑟conditional-setsubscript𝑤𝑟superscriptIR2superscriptsubscript𝑤𝑟𝑇superscriptsubscript𝑊𝑟1subscript𝑤𝑟1subscript𝑊𝑟superscriptsubscript𝑟𝑑2subscript𝐼22w_{r}\in\mathcal{W}_{r}=\{w_{r}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits% ^{2}:w_{r}^{T}W_{r}^{-1}w_{r}\leq 1\},\,\,W_{r}=r_{d}^{2}I_{2\times 2}italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ∈ caligraphic_W start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT = { italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT : italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_W start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ≤ 1 } , italic_W start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT (18)

Given the feedback linearized tracking error dynamics, the following lemma establishes sufficient conditions for bounded internal dynamics.

Lemma 1.

If the reference trajectory qr(t)subscript𝑞𝑟𝑡q_{r}(t)italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) complies with Assumption 1, vr(t)subscript𝑣𝑟𝑡v_{r}(t)italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) and ωr(t)subscript𝜔𝑟𝑡\omega_{r}(t)italic_ω start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) satisfies (5) and 0<vr(t)V>0,tformulae-sequence0subscript𝑣𝑟𝑡𝑉0for-all𝑡0<v_{r}(t)\leq V>0,\forall t0 < italic_v start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) ≤ italic_V > 0 , ∀ italic_t and |φr(t)|π2,t,for-allsubscript𝜑𝑟𝑡𝜋2for-all𝑡\forall|\varphi_{r}(t)|\leq\frac{\pi}{2},\,\forall t,∀ | italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_t ) | ≤ divide start_ARG italic_π end_ARG start_ARG 2 end_ARG , ∀ italic_t , then the tracking-error zero dynamics η~˙=κ(η,0,ηr,wr,t)˙~𝜂𝜅𝜂0subscript𝜂𝑟subscript𝑤𝑟𝑡\dot{\tilde{\eta}}=\kappa(\eta,0,\eta_{r},w_{r},t)over˙ start_ARG over~ start_ARG italic_η end_ARG end_ARG = italic_κ ( italic_η , 0 , italic_η start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_t ) are asymptotically stable [33, Theorems 1-3]. Consequently, if (16a) is stable, stable full-state tracking is achieved [33]. \Box

By applying the transformation (9) to the input constraints (2), the tracking-error dynamics (17) are subject to the following time-varying polyhedral input constraints, depending on the internal dynamics state η𝜂\etaitalic_η i.e.,

w𝒰(η)={wIR2:L(η)wg},L(η)=TM1(η)formulae-sequence𝑤𝒰𝜂conditional-set𝑤superscriptIR2𝐿𝜂𝑤𝑔𝐿𝜂𝑇superscript𝑀1𝜂w\!\in\!\mathcal{U}(\eta)\!=\!\{w\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}% \nolimits^{2}\!:L(\eta)w\leq g\},\,L(\eta)=TM^{-1}(\eta)italic_w ∈ caligraphic_U ( italic_η ) = { italic_w ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT : italic_L ( italic_η ) italic_w ≤ italic_g } , italic_L ( italic_η ) = italic_T italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_η ) (19)

The following lemma analytically characterizes the polyhedral set 𝒰(η),𝒰𝜂\mathcal{U}(\eta),caligraphic_U ( italic_η ) , which rotates and resizes in function of η.𝜂\eta.italic_η .

Refer to caption
Figure 2: Time-varying input constraint set and its worst-case approximation
Lemma 2.

The polyhedral input constraint set (19) is a time-varying parallelogram that admits the following worst-case circular inner approximation (see Fig. 2):

𝒰^=η𝒰(η)={wIR2|wTwr^2},r^=min(Δlω¯Δ2+l2,v¯)^𝒰subscriptfor-all𝜂𝒰𝜂conditional-set𝑤superscriptIR2superscript𝑤𝑇𝑤superscript^𝑟2missing-subexpressionmissing-subexpression^𝑟Δ𝑙¯𝜔superscriptΔ2superscript𝑙2¯𝑣missing-subexpressionmissing-subexpression\begin{array}[]{lcr}\hat{\mathcal{U}}=\displaystyle\bigcap_{\forall\eta}% \mathcal{U}(\eta)=\{w\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{2}|w^{T}% w\leq\hat{r}^{2}\},\\ \hat{r}=\min\left(\frac{\Delta l\overline{\omega}}{\sqrt{\Delta^{2}+l^{2}}},% \overline{v}\right)\end{array}start_ARRAY start_ROW start_CELL over^ start_ARG caligraphic_U end_ARG = ⋂ start_POSTSUBSCRIPT ∀ italic_η end_POSTSUBSCRIPT caligraphic_U ( italic_η ) = { italic_w ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT | italic_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_w ≤ over^ start_ARG italic_r end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT } , end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_r end_ARG = roman_min ( divide start_ARG roman_Δ italic_l over¯ start_ARG italic_ω end_ARG end_ARG start_ARG square-root start_ARG roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_l start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG , over¯ start_ARG italic_v end_ARG ) end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW end_ARRAY (20)
Refer to caption
Figure 3: Possible side length configurations for 𝒰(η)𝒰𝜂\mathcal{U}(\eta)caligraphic_U ( italic_η )
Proof.

By defining s2=sin(η1+2η2)subscript𝑠2subscript𝜂12subscript𝜂2s_{2}=\sin(\eta_{1}+2\eta_{2})italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 2 italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) and c2=cos(η1+2η2),subscript𝑐2subscript𝜂12subscript𝜂2c_{2}=\cos(\eta_{1}+2\eta_{2}),italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 2 italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , the sha** matrix of the polyhedral set 𝒰(η)𝒰𝜂\mathcal{U}(\eta)caligraphic_U ( italic_η ) can be re-written as:

L(η)=[cos(η1)+c22sin(η1)+s12Δs1Δsin(η1)+2ls22ΔlΔc2+Δcos(η1)2lc12Δlcos(η1)+c22sin(η1)+s12Δs1Δsin(η1)+2ls22ΔlΔc2+Δcos(η1)2lc12Δl]𝐿𝜂delimited-[]subscript𝜂1subscript𝑐22subscript𝜂1subscript𝑠12Δsubscript𝑠1Δsubscript𝜂12𝑙subscript𝑠22Δ𝑙Δsubscript𝑐2Δsubscript𝜂12𝑙subscript𝑐12Δ𝑙subscript𝜂1subscript𝑐22subscript𝜂1subscript𝑠12Δsubscript𝑠1Δsubscript𝜂12𝑙subscript𝑠22Δ𝑙Δsubscript𝑐2Δsubscript𝜂12𝑙subscript𝑐12Δ𝑙\begin{array}[]{c}L(\eta)\!=\!\!\left[\!\!\begin{array}[]{cc}-\frac{\cos(\eta_% {1})+c_{2}}{2}&-\frac{\sin(\eta_{1})+s_{1}}{2}\\ \frac{\Delta s_{1}-\Delta\sin(\eta_{1})+2ls_{2}}{2\Delta l}&\frac{-\Delta c_{2% }+\Delta\cos(\eta_{1})-2lc_{1}}{2\Delta l}\\ \frac{\cos(\eta_{1})+c_{2}}{2}&\scriptstyle\frac{\sin(\eta_{1})+s_{1}}{2}\\ -\frac{\Delta s_{1}-\Delta\sin(\eta_{1})+2ls_{2}}{2\Delta l}&-\frac{-\Delta c_% {2}+\Delta\cos(\eta_{1})-2lc_{1}}{2\Delta l}\end{array}\!\!\right]\end{array}start_ARRAY start_ROW start_CELL italic_L ( italic_η ) = [ start_ARRAY start_ROW start_CELL - divide start_ARG roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG end_CELL start_CELL - divide start_ARG roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG end_CELL end_ROW start_ROW start_CELL divide start_ARG roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - roman_Δ roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + 2 italic_l italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 2 roman_Δ italic_l end_ARG end_CELL start_CELL divide start_ARG - roman_Δ italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + roman_Δ roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - 2 italic_l italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 roman_Δ italic_l end_ARG end_CELL end_ROW start_ROW start_CELL divide start_ARG roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG end_CELL start_CELL divide start_ARG roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG end_CELL end_ROW start_ROW start_CELL - divide start_ARG roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - roman_Δ roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + 2 italic_l italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 2 roman_Δ italic_l end_ARG end_CELL start_CELL - divide start_ARG - roman_Δ italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + roman_Δ roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - 2 italic_l italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 roman_Δ italic_l end_ARG end_CELL end_ROW end_ARRAY ] end_CELL end_ROW end_ARRAY

By intersecting the four hyperplanes, the four vertices have the following analytical expression:

V1(η)=[Δs1lω¯+Δsin(η1)lω¯+Δv¯cos(η1)Δv¯c22c1lv¯(2lcos(η2))ω¯Δlcos(η1)ω¯Δlc2Δs1v¯+Δsin(η1)v¯2s2lv¯2lcos(η2)]subscript𝑉1𝜂delimited-[]Δsubscript𝑠1𝑙¯𝜔Δsubscript𝜂1𝑙¯𝜔Δ¯𝑣subscript𝜂1Δ¯𝑣subscript𝑐22subscript𝑐1𝑙¯𝑣2𝑙subscript𝜂2¯𝜔Δ𝑙subscript𝜂1¯𝜔Δ𝑙subscript𝑐2Δsubscript𝑠1¯𝑣Δsubscript𝜂1¯𝑣2subscript𝑠2𝑙¯𝑣2𝑙subscript𝜂2\displaystyle V_{1}(\eta)=\left[\begin{array}[]{c}\frac{\Delta s_{1}l\overline% {\omega}+\Delta\sin(\eta_{1})l\overline{\omega}+\Delta\overline{v}\cos(\eta_{1% })-\Delta\overline{v}c_{2}-2c_{1}l\overline{v}}{(2l\cos(\eta_{2}))}\\ \frac{-\overline{\omega}\Delta l\cos(\eta_{1})-\overline{\omega}\Delta lc_{2}-% \Delta s_{1}\overline{v}+\Delta\sin(\eta_{1})\overline{v}-2s_{2}l\overline{v}}% {2l\cos(\eta_{2})}\end{array}\right]italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η ) = [ start_ARRAY start_ROW start_CELL divide start_ARG roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_l over¯ start_ARG italic_ω end_ARG + roman_Δ roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) italic_l over¯ start_ARG italic_ω end_ARG + roman_Δ over¯ start_ARG italic_v end_ARG roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - roman_Δ over¯ start_ARG italic_v end_ARG italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - 2 italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_l over¯ start_ARG italic_v end_ARG end_ARG start_ARG ( 2 italic_l roman_cos ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ) end_ARG end_CELL end_ROW start_ROW start_CELL divide start_ARG - over¯ start_ARG italic_ω end_ARG roman_Δ italic_l roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - over¯ start_ARG italic_ω end_ARG roman_Δ italic_l italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over¯ start_ARG italic_v end_ARG + roman_Δ roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) over¯ start_ARG italic_v end_ARG - 2 italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_l over¯ start_ARG italic_v end_ARG end_ARG start_ARG 2 italic_l roman_cos ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG end_CELL end_ROW end_ARRAY ] (21c)
V2(η)=[Δs1lω¯Δsin(η1)lω¯+Δv¯cos(η1)Δv¯c22c1lv¯2lcos(η2)ω¯Δlcos(η1)+ω¯Δlc2Δs1v¯+Δsin(η1)v¯2s2lv¯2lcos(η2)]subscript𝑉2𝜂delimited-[]Δsubscript𝑠1𝑙¯𝜔Δsubscript𝜂1𝑙¯𝜔Δ¯𝑣subscript𝜂1Δ¯𝑣subscript𝑐22subscript𝑐1𝑙¯𝑣2𝑙subscript𝜂2¯𝜔Δ𝑙subscript𝜂1¯𝜔Δ𝑙subscript𝑐2Δsubscript𝑠1¯𝑣Δsubscript𝜂1¯𝑣2subscript𝑠2𝑙¯𝑣2𝑙subscript𝜂2\displaystyle V_{2}(\eta)=\left[\begin{array}[]{c}\frac{-\Delta s_{1}l% \overline{\omega}-\Delta\sin(\eta_{1})l\overline{\omega}+\Delta\overline{v}% \cos(\eta_{1})-\Delta\overline{v}c_{2}-2c_{1}l\overline{v}}{2l\cos(\eta_{2})}% \\ \frac{\overline{\omega}\Delta l\cos(\eta_{1})+\overline{\omega}\Delta lc_{2}-% \Delta s_{1}\overline{v}+\Delta\sin(\eta_{1})\overline{v}-2s_{2}l\overline{v}}% {2l\cos(\eta_{2})}\end{array}\right]italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η ) = [ start_ARRAY start_ROW start_CELL divide start_ARG - roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_l over¯ start_ARG italic_ω end_ARG - roman_Δ roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) italic_l over¯ start_ARG italic_ω end_ARG + roman_Δ over¯ start_ARG italic_v end_ARG roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - roman_Δ over¯ start_ARG italic_v end_ARG italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - 2 italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_l over¯ start_ARG italic_v end_ARG end_ARG start_ARG 2 italic_l roman_cos ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG end_CELL end_ROW start_ROW start_CELL divide start_ARG over¯ start_ARG italic_ω end_ARG roman_Δ italic_l roman_cos ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + over¯ start_ARG italic_ω end_ARG roman_Δ italic_l italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - roman_Δ italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over¯ start_ARG italic_v end_ARG + roman_Δ roman_sin ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) over¯ start_ARG italic_v end_ARG - 2 italic_s start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_l over¯ start_ARG italic_v end_ARG end_ARG start_ARG 2 italic_l roman_cos ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG end_CELL end_ROW end_ARRAY ] (21f)
V1(η)=V3(η),V2(η)=V4(η)formulae-sequencesubscript𝑉1𝜂subscript𝑉3𝜂subscript𝑉2𝜂subscript𝑉4𝜂\displaystyle V_{1}(\eta)=-V_{3}(\eta),\quad V_{2}(\eta)=-V_{4}(\eta)italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η ) = - italic_V start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η ) , italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η ) = - italic_V start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ( italic_η ) (21g)

By computing the Cartesian distances between the vertices, each side of the parallelogram has the following length:

l1=l3=2Δ2ω¯2l2(η2)=l4(η2)=2v12(Δ2cos(2η2)+Δ2+2l2)l2(cos(2η2)+1)subscript𝑙1subscript𝑙32superscriptΔ2superscript¯𝜔2subscript𝑙2subscript𝜂2subscript𝑙4subscript𝜂22superscriptsubscript𝑣12superscriptΔ22subscript𝜂2superscriptΔ22superscript𝑙2superscript𝑙22subscript𝜂21\begin{array}[]{c}l_{1}=l_{3}=2\sqrt{\Delta^{2}\overline{\omega}^{2}}\\ l_{2}(\eta_{2})=l_{4}(\eta_{2})=2\sqrt{\frac{v_{1}^{2}(-\Delta^{2}\cos(2\eta_{% 2})+\Delta^{2}+2l^{2})}{l^{2}(\cos(2\eta_{2})+1)}}\end{array}start_ARRAY start_ROW start_CELL italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_l start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 2 square-root start_ARG roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG italic_ω end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL italic_l start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = italic_l start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = 2 square-root start_ARG divide start_ARG italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( - roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT roman_cos ( 2 italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) + roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_l start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) end_ARG start_ARG italic_l start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( roman_cos ( 2 italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) + 1 ) end_ARG end_ARG end_CELL end_ROW end_ARRAY (22)

It can also be noted that the angular coefficients of the four lines L1,L2,L3,L4subscript𝐿1subscript𝐿2subscript𝐿3subscript𝐿4L_{1},\,L_{2},\,L_{3},\,L_{4}italic_L start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_L start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_L start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_L start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT defining the polyhedron, namely m1(η1,η2),m2(η1,η2),m3(η1,η2),m4(η1,η2),subscript𝑚1subscript𝜂1subscript𝜂2subscript𝑚2subscript𝜂1subscript𝜂2subscript𝑚3subscript𝜂1subscript𝜂2subscript𝑚4subscript𝜂1subscript𝜂2m_{1}(\eta_{1},\eta_{2}),\,m_{2}(\eta_{1},\eta_{2}),m_{3}(\eta_{1},\eta_{2}),% \,m_{4}(\eta_{1},\eta_{2}),italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , italic_m start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , are such that m1(η1,η2)=m3(η1,η2)subscript𝑚1subscript𝜂1subscript𝜂2subscript𝑚3subscript𝜂1subscript𝜂2m_{1}(\eta_{1},\eta_{2})=m_{3}(\eta_{1},\eta_{2})italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ), and m2(η1,η2)=m4(η1,η2)subscript𝑚2subscript𝜂1subscript𝜂2subscript𝑚4subscript𝜂1subscript𝜂2m_{2}(\eta_{1},\eta_{2})=m_{4}(\eta_{1},\eta_{2})italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = italic_m start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ), η1IR,η2[φ¯,φ¯]formulae-sequencefor-allsubscript𝜂1IRsubscript𝜂2¯𝜑¯𝜑\forall\eta_{1}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits,\eta_{2}\in% \left[-\overline{\varphi},\overline{\varphi}\right]∀ italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ [ - over¯ start_ARG italic_φ end_ARG , over¯ start_ARG italic_φ end_ARG ]. Consequently, 𝒰(θ)𝒰𝜃\mathcal{U}(\theta)caligraphic_U ( italic_θ ) is a time-varying parallelogram whose side lengths depend on the state variable η2subscript𝜂2\eta_{2}italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, and on the car’s parameters Δ,l,v¯,ω¯Δ𝑙¯𝑣¯𝜔\Delta,\,l,\,\overline{v},\,\overline{\omega}roman_Δ , italic_l , over¯ start_ARG italic_v end_ARG , over¯ start_ARG italic_ω end_ARG.

In order to find the radius of the smallest circle inscribed in the polyhedral set, we resort to geometric arguments. By referring to Fig. 3, two different cases must be considered (a) l1,l3<l2,l4formulae-sequencesubscript𝑙1subscript𝑙3subscript𝑙2subscript𝑙4l_{1},l_{3}<l_{2},l_{4}italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT < italic_l start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT and (b) l1,l3>l2,l4formulae-sequencesubscript𝑙1subscript𝑙3subscript𝑙2subscript𝑙4l_{1},l_{3}>l_{2},l_{4}italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT > italic_l start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT. Depending on the specific case, the diameter of the inscribed circular set can be found either as the distance of vertex V2subscript𝑉2V_{2}italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT from the point I1subscript𝐼1I_{1}italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, or the distance of vertex V1subscript𝑉1V_{1}italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT from the point I2subscript𝐼2I_{2}italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. Note that I1subscript𝐼1I_{1}italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is the intersection of the line L2subscript𝐿2L_{2}italic_L start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and the orthogonal to L2subscript𝐿2L_{2}italic_L start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT crossing V2subscript𝑉2V_{2}italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT (case (a)), whereas I2subscript𝐼2I_{2}italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is the intersection of the line L3subscript𝐿3L_{3}italic_L start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT and the orthogonal to L3subscript𝐿3L_{3}italic_L start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT crossing V1subscript𝑉1V_{1}italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT (case (b)).

Formally, the lines L2subscript𝐿2L_{2}italic_L start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and L3subscript𝐿3L_{3}italic_L start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT crossing (V1,V4)subscript𝑉1subscript𝑉4(V_{1},\,V_{4})( italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_V start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ) and (V4,V3)subscript𝑉4subscript𝑉3(V_{4},\,V_{3})( italic_V start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT , italic_V start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ), respectively are

L2:w2=m2(η1,η2)w1+h2(η1,η2)m2(η1,η2)=L[2,1]L[2,2],h2(η1,η2)=g[2]L[2,2]\begin{array}[]{c}L_{2}:\quad w_{2}=m_{2}(\eta_{1},\eta_{2})w_{1}+h_{2}(\eta_{% 1},\eta_{2})\\ m_{2}(\eta_{1},\eta_{2})=-\frac{L\left[2,1\right]}{L\left[2,2\right]},\quad h_% {2}(\eta_{1},\eta_{2})=\frac{g\left[2\right]}{L\left[2,2\right]}\end{array}start_ARRAY start_ROW start_CELL italic_L start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT : italic_w start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_w start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = - divide start_ARG italic_L [ 2 , 1 ] end_ARG start_ARG italic_L [ 2 , 2 ] end_ARG , italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = divide start_ARG italic_g [ 2 ] end_ARG start_ARG italic_L [ 2 , 2 ] end_ARG end_CELL end_ROW end_ARRAY (23)
L3:w2=m3(η1,η2)w1+h3(η1,η2)m3(η1,η2)=L[3,1]L[3,2],h3(η1,η2)=g[3]L[3,2]\begin{array}[]{c}L_{3}:\quad w_{2}=m_{3}(\eta_{1},\eta_{2})w_{1}+h_{3}(\eta_{% 1},\eta_{2})\\ m_{3}(\eta_{1},\eta_{2})=-\frac{L\left[3,1\right]}{L\left[3,2\right]},\quad h_% {3}(\eta_{1},\eta_{2})=\frac{g\left[3\right]}{L\left[3,2\right]}\end{array}start_ARRAY start_ROW start_CELL italic_L start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT : italic_w start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_w start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_h start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = - divide start_ARG italic_L [ 3 , 1 ] end_ARG start_ARG italic_L [ 3 , 2 ] end_ARG , italic_h start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = divide start_ARG italic_g [ 3 ] end_ARG start_ARG italic_L [ 3 , 2 ] end_ARG end_CELL end_ROW end_ARRAY (24)

Moreover, by resorting to simple geometric arguments, the equations of the lines Lh1subscript𝐿1L_{h1}italic_L start_POSTSUBSCRIPT italic_h 1 end_POSTSUBSCRIPT and Lh2subscript𝐿2L_{h2}italic_L start_POSTSUBSCRIPT italic_h 2 end_POSTSUBSCRIPT are:

Lh1:w2V2[2]=1m2(η1,η2)(w1V2[1])L_{h1}:\quad w_{2}-V_{2}\left[2\right]=-\frac{1}{m_{2}(\eta_{1},\eta_{2})}(w_{% 1}-V_{2}\left[1\right])italic_L start_POSTSUBSCRIPT italic_h 1 end_POSTSUBSCRIPT : italic_w start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ 2 ] = - divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG ( italic_w start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ 1 ] ) (25)
Lh2:w2V1[2]=1m3(η1,η2)(w1V1[1])L_{h2}:\quad w_{2}-V_{1}\left[2\right]=-\frac{1}{m_{3}(\eta_{1},\eta_{2})}(w_{% 1}-V_{1}\left[1\right])italic_L start_POSTSUBSCRIPT italic_h 2 end_POSTSUBSCRIPT : italic_w start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ 2 ] = - divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG ( italic_w start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ 1 ] ) (26)

Then, the points I1subscript𝐼1I_{1}italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and I2subscript𝐼2I_{2}italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT can be computed intersecting L2subscript𝐿2L_{2}italic_L start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT with Lh1subscript𝐿1L_{h1}italic_L start_POSTSUBSCRIPT italic_h 1 end_POSTSUBSCRIPT and L3subscript𝐿3L_{3}italic_L start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT with Lh2subscript𝐿2L_{h2}italic_L start_POSTSUBSCRIPT italic_h 2 end_POSTSUBSCRIPT, obtaining

I1=[m2(η1,η2)11m2(η1,η2)1]1[h2(η1,η2)V2[1]m2(η1,η2)+V2[2]]subscript𝐼1superscriptdelimited-[]subscript𝑚2subscript𝜂1subscript𝜂211subscript𝑚2subscript𝜂1subscript𝜂211delimited-[]subscript2subscript𝜂1subscript𝜂2subscript𝑉2delimited-[]1subscript𝑚2subscript𝜂1subscript𝜂2subscript𝑉2delimited-[]2I_{1}=\left[\begin{array}[]{cc}-m_{2}(\eta_{1},\eta_{2})&1\\ \frac{1}{m_{2}(\eta_{1},\eta_{2})}&1\end{array}\right]^{-1}\left[\begin{array}% []{c}h_{2}(\eta_{1},\eta_{2})\\ \frac{V_{2}\left[1\right]}{m_{2}(\eta_{1},\eta_{2})}+V_{2}\left[2\right]\end{% array}\right]italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL - italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG end_CELL start_CELL 1 end_CELL end_ROW end_ARRAY ] start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ start_ARRAY start_ROW start_CELL italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ 1 ] end_ARG start_ARG italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG + italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ 2 ] end_CELL end_ROW end_ARRAY ] (27)
I2=[m3(η1,η2)11m3(η1,η2)1]1[h3(η1,η2)V1[1]m3(η1,η2)+V1[2]]subscript𝐼2superscriptdelimited-[]subscript𝑚3subscript𝜂1subscript𝜂211subscript𝑚3subscript𝜂1subscript𝜂211delimited-[]subscript3subscript𝜂1subscript𝜂2subscript𝑉1delimited-[]1subscript𝑚3subscript𝜂1subscript𝜂2subscript𝑉1delimited-[]2I_{2}=\left[\begin{array}[]{cc}-m_{3}(\eta_{1},\eta_{2})&1\\ \frac{1}{m_{3}(\eta_{1},\eta_{2})}&1\end{array}\right]^{-1}\left[\begin{array}% []{c}h_{3}(\eta_{1},\eta_{2})\\ \frac{V_{1}\left[1\right]}{m_{3}(\eta_{1},\eta_{2})}+V_{1}\left[2\right]\end{% array}\right]italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL - italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG end_CELL start_CELL 1 end_CELL end_ROW end_ARRAY ] start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ start_ARRAY start_ROW start_CELL italic_h start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL divide start_ARG italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ 1 ] end_ARG start_ARG italic_m start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG + italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ 2 ] end_CELL end_ROW end_ARRAY ] (28)

By noticing that the inscribed circles have diameters equal to d1=V2I1¯subscript𝑑1¯subscript𝑉2subscript𝐼1d_{1}=\overline{V_{2}I_{1}}italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = over¯ start_ARG italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG (case (a)) and d2=V1I2¯subscript𝑑2¯subscript𝑉1subscript𝐼2d_{2}=\overline{V_{1}I_{2}}italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = over¯ start_ARG italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG (case (b)), the radii, namely r1(η2)subscript𝑟1subscript𝜂2r_{1}(\eta_{2})italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) and r2(η2),subscript𝑟2subscript𝜂2r_{2}(\eta_{2}),italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , are

r1(η2)=12d=12(I1V2)T(I1V2)==Δlω¯Δ2Δ2cos(η2)2+l2\begin{array}[]{c}r_{1}(\eta_{2})=\frac{1}{2}d=\frac{1}{2}\sqrt{(I_{1}-V_{2})^% {T}(I_{1}-V_{2})}=\\ \vspace{-0.3cm}\hfil\\ =\frac{\Delta l\overline{\omega}}{\sqrt{\Delta^{2}-\Delta^{2}\cos(\eta_{2})^{2% }+l^{2}}}\end{array}start_ARRAY start_ROW start_CELL italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_d = divide start_ARG 1 end_ARG start_ARG 2 end_ARG square-root start_ARG ( italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_ARG = end_CELL end_ROW start_ROW start_CELL end_CELL end_ROW start_ROW start_CELL = divide start_ARG roman_Δ italic_l over¯ start_ARG italic_ω end_ARG end_ARG start_ARG square-root start_ARG roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT roman_cos ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_l start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG end_CELL end_ROW end_ARRAY (29)
r2(η2)=12d=12(I2V1)T(I2V1)==v¯2cos(η2)2\begin{array}[]{c}r_{2}(\eta_{2})=\frac{1}{2}d=\frac{1}{2}\sqrt{(I_{2}-V_{1})^% {T}(I_{2}-V_{1})}=\\ \vspace{-0.3cm}\hfil\\ =\sqrt{\frac{\overline{v}^{2}}{\cos(\eta_{2})^{2}}}\end{array}start_ARRAY start_ROW start_CELL italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_d = divide start_ARG 1 end_ARG start_ARG 2 end_ARG square-root start_ARG ( italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_ARG = end_CELL end_ROW start_ROW start_CELL end_CELL end_ROW start_ROW start_CELL = square-root start_ARG divide start_ARG over¯ start_ARG italic_v end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG roman_cos ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG end_CELL end_ROW end_ARRAY (30)

Furthermore, since η2[η2¯,η2¯],η2¯<π2,formulae-sequencesubscript𝜂2¯subscript𝜂2¯subscript𝜂2¯subscript𝜂2𝜋2\eta_{2}\in\left[-\overline{\eta_{2}},\overline{\eta_{2}}\right],\overline{% \eta_{2}}<\frac{\pi}{2},italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ [ - over¯ start_ARG italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG , over¯ start_ARG italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG ] , over¯ start_ARG italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG < divide start_ARG italic_π end_ARG start_ARG 2 end_ARG , the minimum value of r1(η2)subscript𝑟1subscript𝜂2r_{1}(\eta_{2})italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) and r2(η2)subscript𝑟2subscript𝜂2r_{2}(\eta_{2})italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) is obtained for η2=0,subscript𝜂20\eta_{2}=0,italic_η start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0 , that it is equals to

r1=r1(0)=Δlω¯Δ2+l2,r2=r2(0)=v¯formulae-sequencesubscript𝑟1subscript𝑟10Δ𝑙¯𝜔superscriptΔ2superscript𝑙2subscript𝑟2subscript𝑟20¯𝑣r_{1}=r_{1}(0)=\frac{\Delta l\overline{\omega}}{\sqrt{\Delta^{2}+l^{2}}},\quad r% _{2}=r_{2}(0)=\overline{v}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( 0 ) = divide start_ARG roman_Δ italic_l over¯ start_ARG italic_ω end_ARG end_ARG start_ARG square-root start_ARG roman_Δ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_l start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG , italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( 0 ) = over¯ start_ARG italic_v end_ARG

Consequently, (20) defines the worst-case circle inscribed in 𝒰(η),η,𝒰𝜂for-all𝜂\mathcal{U}(\eta),\forall\eta,caligraphic_U ( italic_η ) , ∀ italic_η , concluding the proof.

III-D Robust Invariant Control Design

By using similar arguments to the ones exploited in [28], the linearized tracking error dynamics can be exploited to design a state feedback controller that fulfills the prescribed time-varying and state-dependent input constraints in a properly defined robust invariant region.

Proposition 1.

The circular set

ΣN={z~IR2|z~TSz~1},S=1r^2KTKformulae-sequencesubscriptΣ𝑁conditional-set~𝑧superscriptIR2superscript~𝑧𝑇𝑆~𝑧1𝑆1superscript^𝑟2superscript𝐾𝑇𝐾\Sigma_{N}=\{\tilde{z}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{2}|% \tilde{z}^{T}S\tilde{z}\leq 1\},\quad S=\frac{1}{\hat{r}^{2}}K^{T}Kroman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = { over~ start_ARG italic_z end_ARG ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT | over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S over~ start_ARG italic_z end_ARG ≤ 1 } , italic_S = divide start_ARG 1 end_ARG start_ARG over^ start_ARG italic_r end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG italic_K start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_K (31)

is RPI for (17a) under the state-feedback controller

w(k)=Kz~(k)+w^r(k)𝑤𝑘𝐾~𝑧𝑘subscript^𝑤𝑟𝑘w(k)=K\tilde{z}(k)+\hat{w}_{r}(k)italic_w ( italic_k ) = italic_K over~ start_ARG italic_z end_ARG ( italic_k ) + over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) (32)

where w^r(k)subscript^𝑤𝑟𝑘\hat{w}_{r}(k)over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) is the optimal solution of the following Quadratic Programming (QP) problem:

w^r(k)=argminw^rw^rwr(k)22s.t.formulae-sequencesubscript^𝑤𝑟𝑘subscriptsubscript^𝑤𝑟superscriptsubscriptnormsubscript^𝑤𝑟subscript𝑤𝑟𝑘22𝑠𝑡\displaystyle\hat{w}_{r}(k)=\displaystyle\arg\min_{\hat{w}_{r}}\|\hat{w}_{r}-w% _{r}(k)\|_{2}^{2}\quad s.t.over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) = roman_arg roman_min start_POSTSUBSCRIPT over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∥ over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT - italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_s . italic_t . (33a)
Kz~(k)+w^r𝒰(η)𝐾~𝑧𝑘subscript^𝑤𝑟𝒰𝜂\displaystyle K\tilde{z}(k)+\hat{w}_{r}\in\mathcal{U}(\eta)italic_K over~ start_ARG italic_z end_ARG ( italic_k ) + over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ∈ caligraphic_U ( italic_η ) (33b)

and K𝐾Kitalic_K is such that

λ1AclTS1Acl+(1λ)1BTWrd1BS1.superscript𝜆1superscriptsubscript𝐴𝑐𝑙𝑇superscript𝑆1subscript𝐴𝑐𝑙superscript1𝜆1superscript𝐵𝑇superscriptsubscript𝑊subscript𝑟𝑑1𝐵superscript𝑆1\lambda^{-1}A_{cl}^{T}S^{-1}A_{cl}+(1-\lambda)^{-1}B^{T}W_{r_{d}}^{-1}B\leq S^% {-1}.italic_λ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_A start_POSTSUBSCRIPT italic_c italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_A start_POSTSUBSCRIPT italic_c italic_l end_POSTSUBSCRIPT + ( 1 - italic_λ ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_W start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B ≤ italic_S start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT . (34)

where Acl=ABKsubscript𝐴𝑐𝑙𝐴𝐵𝐾A_{cl}=A-BKitalic_A start_POSTSUBSCRIPT italic_c italic_l end_POSTSUBSCRIPT = italic_A - italic_B italic_K, λ=1ξ𝜆1𝜉\lambda=1-\sqrt{\xi}italic_λ = 1 - square-root start_ARG italic_ξ end_ARG and ξ𝜉\xiitalic_ξ is the only repeated eigenvalue of the matrix GTBTWrd1BGsuperscript𝐺𝑇superscript𝐵𝑇superscriptsubscript𝑊subscript𝑟𝑑1𝐵𝐺G^{T}B^{T}W_{r_{d}}^{-1}BGitalic_G start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_B start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_W start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B italic_G, with G𝐺Gitalic_G such that GTS1G=I2×2.superscript𝐺𝑇superscript𝑆1𝐺subscript𝐼22G^{T}S^{-1}G=I_{2\times 2}.italic_G start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_G = italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT .

Proof.

For the disturbance-free model (i.e. obtained from (17a) when wr(k)=0,ksubscript𝑤𝑟𝑘0for-all𝑘w_{r}(k)=0,\forall\,kitalic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) = 0 , ∀ italic_k), any stabilizing controller w(k)=Kz~(k)𝑤𝑘𝐾~𝑧𝑘w(k)=K\tilde{z}(k)italic_w ( italic_k ) = italic_K over~ start_ARG italic_z end_ARG ( italic_k ) fulfills the input constraint for any z~ΣN~𝑧subscriptΣ𝑁\tilde{z}\in\Sigma_{N}over~ start_ARG italic_z end_ARG ∈ roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT where ΣNsubscriptΣ𝑁\Sigma_{N}roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is as in (31). Specifically, the set ΣNsubscriptΣ𝑁\Sigma_{N}roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is obtained by plugging the state-feedback controller w(k)=Kz~(k)𝑤𝑘𝐾~𝑧𝑘w(k)=K\tilde{z}(k)italic_w ( italic_k ) = italic_K over~ start_ARG italic_z end_ARG ( italic_k ) into the circular region (20), representing the worst-case set of admissible input for (17). Moreover, since in the disturbance-free case, (34) reduces to a standard Lyapunov inequality (ABK)TS1(ABK)S10,superscript𝐴𝐵𝐾𝑇superscript𝑆1𝐴𝐵𝐾superscript𝑆10(A-BK)^{T}S^{-1}(A-BK)-S^{-1}\leq 0,( italic_A - italic_B italic_K ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_A - italic_B italic_K ) - italic_S start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ≤ 0 , then if K𝐾Kitalic_K fulfills (34) then ΣNsubscriptΣ𝑁\Sigma_{N}roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is also a positively invariant region.

On the other hand, in the presence of wr(k)0subscript𝑤𝑟𝑘0w_{r}(k)\neq 0italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ≠ 0 and under the control law w(k)=Kz~(k)+w^r(k),𝑤𝑘𝐾~𝑧𝑘subscript^𝑤𝑟𝑘w(k)=K\tilde{z}(k)+\hat{w}_{r}(k),italic_w ( italic_k ) = italic_K over~ start_ARG italic_z end_ARG ( italic_k ) + over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , the closed-loop system is

z~(k+1)=(ABK)z~(k)+B(w^r(k)wr(k))=Aclz~(k)+Bwd(k)~𝑧𝑘1𝐴𝐵𝐾~𝑧𝑘𝐵subscript^𝑤𝑟𝑘subscript𝑤𝑟𝑘missing-subexpressionsubscript𝐴𝑐𝑙~𝑧𝑘𝐵subscript𝑤𝑑𝑘\begin{array}[]{rcl}\tilde{z}(k+1)&=&(A-BK)\tilde{z}(k)+B(\hat{w}_{r}(k)-w_{r}% (k))\\ &=&A_{cl}\tilde{z}(k)+Bw_{d}(k)\end{array}start_ARRAY start_ROW start_CELL over~ start_ARG italic_z end_ARG ( italic_k + 1 ) end_CELL start_CELL = end_CELL start_CELL ( italic_A - italic_B italic_K ) over~ start_ARG italic_z end_ARG ( italic_k ) + italic_B ( over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) - italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ) end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL = end_CELL start_CELL italic_A start_POSTSUBSCRIPT italic_c italic_l end_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG ( italic_k ) + italic_B italic_w start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_k ) end_CELL end_ROW end_ARRAY (35)

with wd=w^r(k)wr(k).subscript𝑤𝑑subscript^𝑤𝑟𝑘subscript𝑤𝑟𝑘w_{d}=\hat{w}_{r}(k)-w_{r}(k).italic_w start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) - italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) . If w^r(k)subscript^𝑤𝑟𝑘\hat{w}_{r}(k)over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) is given by the solution of (33), then the control law w(k)=Kz~(k)+w^r(k)𝑤𝑘𝐾~𝑧𝑘subscript^𝑤𝑟𝑘w(k)=K\tilde{z}(k)+\hat{w}_{r}(k)italic_w ( italic_k ) = italic_K over~ start_ARG italic_z end_ARG ( italic_k ) + over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) fulfils the input constraints for any z~ΣN~𝑧subscriptΣ𝑁\tilde{z}\in\Sigma_{N}over~ start_ARG italic_z end_ARG ∈ roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. Moreover, wdsubscript𝑤𝑑w_{d}italic_w start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT is bounded inside the set 𝒲rsubscript𝒲𝑟\mathcal{W}_{r}caligraphic_W start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT (with the worst-case happening when w^r(k)=0subscript^𝑤𝑟𝑘0\hat{w}_{r}(k)=0over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) = 0). Finally, as proven in [34, Section 3], if K𝐾Kitalic_K fulfils (34), then ΣNsubscriptΣ𝑁\Sigma_{N}roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is RPI for (35), concluding the proof.

Remark 4.

In [28], the authors have proposed an analytical design of the state feedback controller such that it is optimal for a given linear quadratic cost. Also, it is worth mentioning that (34) represents a sufficient condition to ensure RPI. For a more exhaustive discussion on necessary and sufficient conditions, the interested reader may refer to [34].

III-E Feedback Linearized Model Predictive Control

Under input-output linearization arguments, optimization (7) can be equivalently rewritten as follows:

minw(k),,w(k+N1)JN(k,z~(k),w~(k))subscript𝑤𝑘𝑤𝑘𝑁1subscript𝐽𝑁𝑘~𝑧𝑘~𝑤𝑘\displaystyle\displaystyle\min_{w(k),\dots,w(k+N-1)}\displaystyle J_{N}(k,% \tilde{z}(k),\tilde{w}(k))roman_min start_POSTSUBSCRIPT italic_w ( italic_k ) , … , italic_w ( italic_k + italic_N - 1 ) end_POSTSUBSCRIPT italic_J start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k , over~ start_ARG italic_z end_ARG ( italic_k ) , over~ start_ARG italic_w end_ARG ( italic_k ) ) (36a)
z~(k+i+1|k)=Az~(k+i|k)+Bw(i)Bwr(i)~𝑧𝑘𝑖conditional1𝑘𝐴~𝑧𝑘conditional𝑖𝑘𝐵𝑤𝑖𝐵subscript𝑤𝑟𝑖\displaystyle\tilde{z}(k+i+1|k)=A\tilde{z}(k+i|k)+Bw(i)-Bw_{r}(i)over~ start_ARG italic_z end_ARG ( italic_k + italic_i + 1 | italic_k ) = italic_A over~ start_ARG italic_z end_ARG ( italic_k + italic_i | italic_k ) + italic_B italic_w ( italic_i ) - italic_B italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_i ) (36b)
η(k+i+1|k)=η(k+i|k)+TsO(η(k+i|k))w(k+i)𝜂𝑘𝑖conditional1𝑘𝜂𝑘conditional𝑖𝑘subscript𝑇𝑠𝑂𝜂𝑘conditional𝑖𝑘𝑤𝑘𝑖\displaystyle\eta(k+i+1|k)=\eta(k+i|k)+T_{s}O(\eta(k+i|k))w(k+i)italic_η ( italic_k + italic_i + 1 | italic_k ) = italic_η ( italic_k + italic_i | italic_k ) + italic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_O ( italic_η ( italic_k + italic_i | italic_k ) ) italic_w ( italic_k + italic_i ) (36c)
L(η(k+i|k))w(k+i)g𝐿𝜂𝑘conditional𝑖𝑘𝑤𝑘𝑖𝑔\displaystyle L(\eta(k+i|k))w(k+i)\leq gitalic_L ( italic_η ( italic_k + italic_i | italic_k ) ) italic_w ( italic_k + italic_i ) ≤ italic_g (36d)
i=0,1,N1for-all𝑖01𝑁1\displaystyle\forall i=0,1,\dots N-1∀ italic_i = 0 , 1 , … italic_N - 1
z~T(k+N|k)Sz~(K+N|k)1superscript~𝑧𝑇𝑘conditional𝑁𝑘𝑆~𝑧𝐾conditional𝑁𝑘1\displaystyle\tilde{z}^{T}(k+N|k)S\tilde{z}(K+N|k)\leq 1over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_k + italic_N | italic_k ) italic_S over~ start_ARG italic_z end_ARG ( italic_K + italic_N | italic_k ) ≤ 1 (36e)

Optimization (36) is still nonconvex due to constraints (36c)-(36d). Indeed, i1,for-all𝑖1\forall i\geq 1,∀ italic_i ≥ 1 , the input constraints depend on the predicted state of the internal dynamics which is a nonlinear and nonconvex function of the control inputs. One possible way to convexify the optimization problem is to substitute the polyhedral constraint (36d) with its quadratic worst-case approximation (20) i1for-all𝑖1\forall i\geq 1∀ italic_i ≥ 1, which is independent of the nonlinear dynamics state η𝜂\etaitalic_η. On the other hand, to mitigate the conservativeness of the MPC controller, for i=0𝑖0i=0italic_i = 0, since η(k)𝜂𝑘\eta(k)italic_η ( italic_k ) can be measured, the actual polyhedral constraint can be used. Consequently, optimization (36) can be rewritten as:

minw(k),,w(k+N1)JN(k,z~(k),w~(k))subscript𝑤𝑘𝑤𝑘𝑁1subscript𝐽𝑁𝑘~𝑧𝑘~𝑤𝑘\displaystyle\displaystyle\min_{w(k),\dots,w(k+N-1)}\displaystyle J_{N}(k,% \tilde{z}(k),\tilde{w}(k))roman_min start_POSTSUBSCRIPT italic_w ( italic_k ) , … , italic_w ( italic_k + italic_N - 1 ) end_POSTSUBSCRIPT italic_J start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k , over~ start_ARG italic_z end_ARG ( italic_k ) , over~ start_ARG italic_w end_ARG ( italic_k ) ) (37a)
z~(k+i+1|k)=Az~(k+i|k)+Bw(i)Bwr(i)~𝑧𝑘𝑖conditional1𝑘𝐴~𝑧𝑘conditional𝑖𝑘𝐵𝑤𝑖𝐵subscript𝑤𝑟𝑖\displaystyle\tilde{z}(k+i+1|k)=A\tilde{z}(k+i|k)+Bw(i)-Bw_{r}(i)over~ start_ARG italic_z end_ARG ( italic_k + italic_i + 1 | italic_k ) = italic_A over~ start_ARG italic_z end_ARG ( italic_k + italic_i | italic_k ) + italic_B italic_w ( italic_i ) - italic_B italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_i ) (37b)
i=0,1,N1for-all𝑖01𝑁1\displaystyle\forall i=0,1,\dots N-1∀ italic_i = 0 , 1 , … italic_N - 1
L(η(k))w(k)g𝐿𝜂𝑘𝑤𝑘𝑔\displaystyle L(\eta(k))w(k)\leq gitalic_L ( italic_η ( italic_k ) ) italic_w ( italic_k ) ≤ italic_g (37c)
w(k+i)Tw(k+i)r^2,i=1,N1formulae-sequence𝑤superscript𝑘𝑖𝑇𝑤𝑘𝑖superscript^𝑟2𝑖1𝑁1\displaystyle w(k+i)^{T}w(k+i)\leq\hat{r}^{2},\,i=1,\dots N-1italic_w ( italic_k + italic_i ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_w ( italic_k + italic_i ) ≤ over^ start_ARG italic_r end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_i = 1 , … italic_N - 1 (37d)
z~T(k+N|k)Sz~(K+N|k)1superscript~𝑧𝑇𝑘conditional𝑁𝑘𝑆~𝑧𝐾conditional𝑁𝑘1\displaystyle\tilde{z}^{T}(k+N|k)S\tilde{z}(K+N|k)\leq 1over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_k + italic_N | italic_k ) italic_S over~ start_ARG italic_z end_ARG ( italic_K + italic_N | italic_k ) ≤ 1 (37e)

which is a Quadratically Constrained Quadratic Programming (QCQP) problem.

Proposition 2.

The QCQP problem (37) can be rewritten in the following standard form:

𝐰=argmin𝐰12𝐰TH𝐰+pT𝐰s.t.formulae-sequencesuperscript𝐰subscript𝐰12superscript𝐰𝑇𝐻𝐰superscript𝑝𝑇𝐰𝑠𝑡\displaystyle\mathbf{w^{*}}=\displaystyle\arg\min_{\mathbf{w}}\displaystyle% \frac{1}{2}\mathbf{w}^{T}H\mathbf{w}+p^{T}\mathbf{w}\,s.t.bold_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = roman_arg roman_min start_POSTSUBSCRIPT bold_w end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_H bold_w + italic_p start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_w italic_s . italic_t . (38a)
L^(η(k))𝐰g^𝐿𝜂𝑘𝐰𝑔\displaystyle\hat{L}(\eta(k))\mathbf{w}\leq gover^ start_ARG italic_L end_ARG ( italic_η ( italic_k ) ) bold_w ≤ italic_g (38b)
𝐰TQ^u𝐰1superscript𝐰𝑇subscript^𝑄𝑢𝐰1\displaystyle\mathbf{w}^{T}\hat{Q}_{u}\mathbf{w}\leq 1bold_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_Q end_ARG start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT bold_w ≤ 1 (38c)
𝐰TΘNTSΘN𝐰+2z~T(k)ΨNTSΘN𝐰1z~T(k)ΨNTSΨNz~(k)superscript𝐰𝑇subscriptsuperscriptΘ𝑇𝑁𝑆subscriptΘ𝑁𝐰2superscript~𝑧𝑇𝑘subscriptsuperscriptΨ𝑇𝑁𝑆subscriptΘ𝑁𝐰1superscript~𝑧𝑇𝑘superscriptsubscriptΨ𝑁𝑇𝑆subscriptΨ𝑁~𝑧𝑘\displaystyle\mathbf{w}^{T}\Theta^{T}_{N}S\Theta_{N}\mathbf{w}\!+\!2\tilde{z}^% {T}(k)\Psi^{T}_{N}S\Theta_{N}\mathbf{w}\leq 1\!-\!\tilde{z}^{T}(k)\Psi_{N}^{T}% S\Psi_{N}\tilde{z}(k)bold_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Θ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_S roman_Θ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT bold_w + 2 over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_k ) roman_Ψ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_S roman_Θ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT bold_w ≤ 1 - over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_k ) roman_Ψ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S roman_Ψ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG ( italic_k ) (38d)

where

H=ΘTQ^Θ+R^𝐻superscriptΘ𝑇^𝑄Θ^𝑅H=\Theta^{T}\hat{Q}\Theta+\hat{R}italic_H = roman_Θ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_Q end_ARG roman_Θ + over^ start_ARG italic_R end_ARG

and

p=ΘTQ^Ψz~(k)ΘTQ^Θ𝐰𝐫R^𝐰𝐫𝑝superscriptΘ𝑇^𝑄Ψ~𝑧𝑘superscriptΘ𝑇^𝑄Θsubscript𝐰𝐫^𝑅subscript𝐰𝐫p=\Theta^{T}\hat{Q}\Psi\tilde{z}(k)-\Theta^{T}\hat{Q}\Theta\mathbf{w_{r}}-\hat% {R}\mathbf{w_{r}}italic_p = roman_Θ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_Q end_ARG roman_Ψ over~ start_ARG italic_z end_ARG ( italic_k ) - roman_Θ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_Q end_ARG roman_Θ bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT - over^ start_ARG italic_R end_ARG bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT

with

Ψ=[AA2AN],Θ=[B00ABB0AN1BAN2BB]Ψdelimited-[]𝐴superscript𝐴2superscript𝐴𝑁Θdelimited-[]𝐵00𝐴𝐵𝐵0superscript𝐴𝑁1𝐵superscript𝐴𝑁2𝐵𝐵missing-subexpressionmissing-subexpression\Psi=\left[\begin{array}[]{c}A\\ A^{2}\\ \vdots\\ A^{N}\end{array}\right],\quad\displaystyle\begin{array}[]{lcr}\Theta=\left[% \begin{array}[]{cccc}B&0&\dots&0\\ AB&B&\dots&0\\ \vdots&\vdots&\ddots&\vdots\\ A^{N-1}B&A^{N-2}B&\dots&B\end{array}\right]\end{array}roman_Ψ = [ start_ARRAY start_ROW start_CELL italic_A end_CELL end_ROW start_ROW start_CELL italic_A start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_A start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT end_CELL end_ROW end_ARRAY ] , start_ARRAY start_ROW start_CELL roman_Θ = [ start_ARRAY start_ROW start_CELL italic_B end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL italic_A italic_B end_CELL start_CELL italic_B end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_A start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT italic_B end_CELL start_CELL italic_A start_POSTSUPERSCRIPT italic_N - 2 end_POSTSUPERSCRIPT italic_B end_CELL start_CELL … end_CELL start_CELL italic_B end_CELL end_ROW end_ARRAY ] end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW end_ARRAY
ΨN=AN,ΘN=[AN1B,AN2B,,AB,B]formulae-sequencesubscriptΨ𝑁superscript𝐴𝑁subscriptΘ𝑁superscript𝐴𝑁1𝐵superscript𝐴𝑁2𝐵𝐴𝐵𝐵\Psi_{N}=A^{N},\quad\Theta_{N}=\left[A^{N-1}B,\,A^{N-2}B,\dots,AB,\,B\right]roman_Ψ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = italic_A start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT , roman_Θ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = [ italic_A start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT italic_B , italic_A start_POSTSUPERSCRIPT italic_N - 2 end_POSTSUPERSCRIPT italic_B , … , italic_A italic_B , italic_B ]
Q^=[Q000Q000Q],R^=[R000R000R]formulae-sequence^𝑄delimited-[]𝑄000𝑄000𝑄^𝑅delimited-[]𝑅000𝑅000𝑅\hat{Q}=\left[\begin{array}[]{cccc}Q&0&\dots&0\\ 0&Q&\dots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\dots&Q\end{array}\right],\quad\hat{R}=\left[\begin{array}[]{cccc}R&0&% \dots&0\\ 0&R&\dots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\dots&R\end{array}\right]over^ start_ARG italic_Q end_ARG = [ start_ARRAY start_ROW start_CELL italic_Q end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_Q end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL italic_Q end_CELL end_ROW end_ARRAY ] , over^ start_ARG italic_R end_ARG = [ start_ARRAY start_ROW start_CELL italic_R end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_R end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL italic_R end_CELL end_ROW end_ARRAY ]
Q^u=[00001r^2I2×20001r^2I2×2]subscript^𝑄𝑢delimited-[]00001superscript^𝑟2subscript𝐼220001superscript^𝑟2subscript𝐼22\hat{Q}_{u}=\left[\begin{array}[]{cccc}0&0&\dots&0\\ 0&\frac{1}{\hat{r}^{2}}I_{2\times 2}&\dots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\dots&\frac{1}{\hat{r}^{2}}I_{2\times 2}\end{array}\right]over^ start_ARG italic_Q end_ARG start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG over^ start_ARG italic_r end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG over^ start_ARG italic_r end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ]
L^(η(k))=[L(η(k)), 0,0]^𝐿𝜂𝑘𝐿𝜂𝑘 00\hat{L}(\eta(k))=\left[L(\eta(k)),\,0,\dots 0\right]over^ start_ARG italic_L end_ARG ( italic_η ( italic_k ) ) = [ italic_L ( italic_η ( italic_k ) ) , 0 , … 0 ]
Proof.

Let’s define the decision variables vector 𝐰=[w(k),w(k+1),w(k+N1)]T𝐰superscript𝑤𝑘𝑤𝑘1𝑤𝑘𝑁1𝑇\mathbf{w}=\left[w(k),\,w(k+1),\dots w(k+N-1)\right]^{T}bold_w = [ italic_w ( italic_k ) , italic_w ( italic_k + 1 ) , … italic_w ( italic_k + italic_N - 1 ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, and the predicted reference input vector 𝐰𝐫=[wr(k),wr(k+1),wr(k+N1]T\mathbf{w_{r}}=\left[w_{r}(k),\,w_{r}(k+1),\dots w_{r}(k+N-1\right]^{T}bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT = [ italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k + 1 ) , … italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k + italic_N - 1 ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT. Then, using (37b), the model predictions 𝐳~=[z~(k+1|k),,z~(k+N|k)]T~𝐳superscript~𝑧𝑘conditional1𝑘~𝑧𝑘conditional𝑁𝑘𝑇\mathbf{\tilde{z}}=\left[\tilde{z}(k+1|k),\dots,\tilde{z}(k+N|k)\right]^{T}over~ start_ARG bold_z end_ARG = [ over~ start_ARG italic_z end_ARG ( italic_k + 1 | italic_k ) , … , over~ start_ARG italic_z end_ARG ( italic_k + italic_N | italic_k ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT can be rewritten in a compact form as 𝐳~=Ψz~(k)+Θ(𝐰𝐰r)~𝐳Ψ~𝑧𝑘Θ𝐰subscript𝐰𝑟\mathbf{\tilde{z}}=\Psi\tilde{z}(k)+\Theta(\mathbf{w}-\mathbf{w}_{r})over~ start_ARG bold_z end_ARG = roman_Ψ over~ start_ARG italic_z end_ARG ( italic_k ) + roman_Θ ( bold_w - bold_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ). As a consequence the cost function

JN(k,z~(k),w~(k))=12i=0N1z~(k+i+1|k)TQz~(k+i+1|k)+w~(k+i|k)TRw~(k+i|k)subscript𝐽𝑁𝑘~𝑧𝑘~𝑤𝑘12superscriptsubscript𝑖0𝑁1~𝑧superscript𝑘𝑖conditional1𝑘𝑇𝑄~𝑧𝑘𝑖conditional1𝑘missing-subexpressionmissing-subexpression~𝑤superscript𝑘conditional𝑖𝑘𝑇𝑅~𝑤𝑘conditional𝑖𝑘missing-subexpressionmissing-subexpression\begin{array}[]{lcr}J_{N}(k,\tilde{z}(k),\tilde{w}(k))=\frac{1}{2}% \displaystyle\sum_{i=0}^{N-1}\tilde{z}(k+i+1|k)^{T}Q\tilde{z}(k+i+1|k)\\ +\tilde{w}(k+i|k)^{T}R\tilde{w}(k+i|k)\end{array}start_ARRAY start_ROW start_CELL italic_J start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_k , over~ start_ARG italic_z end_ARG ( italic_k ) , over~ start_ARG italic_w end_ARG ( italic_k ) ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT over~ start_ARG italic_z end_ARG ( italic_k + italic_i + 1 | italic_k ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_Q over~ start_ARG italic_z end_ARG ( italic_k + italic_i + 1 | italic_k ) end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL + over~ start_ARG italic_w end_ARG ( italic_k + italic_i | italic_k ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_R over~ start_ARG italic_w end_ARG ( italic_k + italic_i | italic_k ) end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW end_ARRAY

can be rewritten as J(𝐰)=12[(Φz~(k)+Θ(𝐰𝐰𝐫))TQ^(Φz~(k)+Θ(𝐰𝐰𝐫))+(𝐰𝐰𝐫)TR^(𝐰𝐰𝐫)]=12𝐰TH𝐰+pT𝐰+c𝐽𝐰12delimited-[]superscriptΦ~𝑧𝑘Θ𝐰subscript𝐰𝐫𝑇^𝑄Φ~𝑧𝑘Θ𝐰subscript𝐰𝐫superscript𝐰subscript𝐰𝐫𝑇^𝑅𝐰subscript𝐰𝐫12superscript𝐰𝑇𝐻𝐰superscript𝑝𝑇𝐰𝑐J(\mathbf{w})=\frac{1}{2}[\left(\Phi\tilde{z}(k)+\Theta(\mathbf{w}-\mathbf{w_{% r}})\right)^{T}\hat{Q}\left(\Phi\tilde{z}(k)+\Theta(\mathbf{w}-\mathbf{w_{r}})% \right)+(\mathbf{w}-\mathbf{w_{r}})^{T}\hat{R}(\mathbf{w}-\mathbf{w_{r}})]=% \frac{1}{2}\mathbf{w}^{T}H\mathbf{w}+p^{T}\mathbf{w}+citalic_J ( bold_w ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG [ ( roman_Φ over~ start_ARG italic_z end_ARG ( italic_k ) + roman_Θ ( bold_w - bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT ) ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_Q end_ARG ( roman_Φ over~ start_ARG italic_z end_ARG ( italic_k ) + roman_Θ ( bold_w - bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT ) ) + ( bold_w - bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_R end_ARG ( bold_w - bold_w start_POSTSUBSCRIPT bold_r end_POSTSUBSCRIPT ) ] = divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_H bold_w + italic_p start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_w + italic_c. Notice that in optimization (38) the term c𝑐citalic_c has been dropped since it does not affect the optimal solution of the optimization. By applying the same arguments, it is easy to show that L(η(k+i|k))w(k+i)g,i=0,1,N1L^(η(k))𝐰giffformulae-sequence𝐿𝜂𝑘conditional𝑖𝑘𝑤𝑘𝑖𝑔𝑖01𝑁1^𝐿𝜂𝑘𝐰𝑔L(\eta(k+i|k))w(k+i)\leq g,\,i=0,1,\dots N-1\iff\hat{L}(\eta(k))\mathbf{w}\leq gitalic_L ( italic_η ( italic_k + italic_i | italic_k ) ) italic_w ( italic_k + italic_i ) ≤ italic_g , italic_i = 0 , 1 , … italic_N - 1 ⇔ over^ start_ARG italic_L end_ARG ( italic_η ( italic_k ) ) bold_w ≤ italic_g, w(k+i)Tw(k+i)r^2,i=1,N1𝐰TQ^u𝐰1iffformulae-sequence𝑤superscript𝑘𝑖𝑇𝑤𝑘𝑖superscript^𝑟2𝑖1𝑁1superscript𝐰𝑇subscript^𝑄𝑢𝐰1w(k+i)^{T}w(k+i)\leq\hat{r}^{2},\,i=1,\dots N-1\iff\mathbf{w}^{T}\hat{Q}_{u}% \mathbf{w}\leq 1italic_w ( italic_k + italic_i ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_w ( italic_k + italic_i ) ≤ over^ start_ARG italic_r end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_i = 1 , … italic_N - 1 ⇔ bold_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over^ start_ARG italic_Q end_ARG start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT bold_w ≤ 1, and z~T(k+N|k)Sz~(k+N|k)1𝐰TΘNTSΘN𝐰+2z~(k)ΨNTSΘN𝐰1z~T(k)ΨNTSΨNz~(k)iffsuperscript~𝑧𝑇𝑘conditional𝑁𝑘𝑆~𝑧𝑘conditional𝑁𝑘1superscript𝐰𝑇subscriptsuperscriptΘ𝑇𝑁𝑆subscriptΘ𝑁𝐰2~𝑧𝑘subscriptsuperscriptΨ𝑇𝑁𝑆subscriptΘ𝑁𝐰1superscript~𝑧𝑇𝑘superscriptsubscriptΨ𝑁𝑇𝑆subscriptΨ𝑁~𝑧𝑘\tilde{z}^{T}(k+N|k)S\tilde{z}(k+N|k)\leq 1\iff\mathbf{w}^{T}\Theta^{T}_{N}S% \Theta_{N}\mathbf{w}+2\tilde{z}(k)\Psi^{T}_{N}S\Theta_{N}\mathbf{w}\leq 1-% \tilde{z}^{T}(k)\Psi_{N}^{T}S\Psi_{N}\tilde{z}(k)over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_k + italic_N | italic_k ) italic_S over~ start_ARG italic_z end_ARG ( italic_k + italic_N | italic_k ) ≤ 1 ⇔ bold_w start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Θ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_S roman_Θ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT bold_w + 2 over~ start_ARG italic_z end_ARG ( italic_k ) roman_Ψ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_S roman_Θ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT bold_w ≤ 1 - over~ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_k ) roman_Ψ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_S roman_Ψ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG ( italic_k )

Remark 5.

The QCQP problem can be recast into a computationally more affordable QP problem. Specifically, the quadratic constraints (38c) and (38d) can be replaced with polyhedral inner approximations. In particular, by defining two polyhedral sets 𝒫w={wIR2:Pwwpw}𝒰^,PwIRnw×2,pwIRnwformulae-sequencesubscript𝒫𝑤conditional-set𝑤superscriptIR2subscript𝑃𝑤𝑤subscript𝑝𝑤^𝒰formulae-sequencesubscript𝑃𝑤superscriptIRsubscript𝑛𝑤2subscript𝑝𝑤superscriptIRsubscript𝑛𝑤\mathcal{P}_{w}=\{w\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{2}:P_{w}w% \leq p_{w}\}\subset\hat{\mathcal{U}},\,P_{w}\in\mathop{{\rm I}\mskip-4.0mu{\rm R% }}\nolimits^{n_{w}\times 2},\,p_{w}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}% \nolimits^{n_{w}}caligraphic_P start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT = { italic_w ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT : italic_P start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT italic_w ≤ italic_p start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT } ⊂ over^ start_ARG caligraphic_U end_ARG , italic_P start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT × 2 end_POSTSUPERSCRIPT , italic_p start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_POSTSUPERSCRIPT and 𝒫N={z~IR2:Pz~Nz~pz~N}ΣN,Pz~NIRnN×2,pz~NIRnz~Nformulae-sequencesubscript𝒫𝑁conditional-set~𝑧superscriptIR2subscript𝑃subscript~𝑧𝑁~𝑧subscript𝑝subscript~𝑧𝑁subscriptΣ𝑁formulae-sequencesubscript𝑃subscript~𝑧𝑁superscriptIRsubscript𝑛𝑁2subscript𝑝subscript~𝑧𝑁superscriptIRsubscript𝑛subscript~𝑧𝑁\mathcal{P}_{N}=\{\tilde{z}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{2}% :P_{\tilde{z}_{N}}\tilde{z}\leq p_{\tilde{z}_{N}}\}\subset\Sigma_{N},\,P_{% \tilde{z}_{N}}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{n_{N}\times 2},% \,p_{\tilde{z}_{N}}\in\mathop{{\rm I}\mskip-4.0mu{\rm R}}\nolimits^{n_{\tilde{% z}_{N}}}caligraphic_P start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = { over~ start_ARG italic_z end_ARG ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT : italic_P start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG ≤ italic_p start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT } ⊂ roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT , italic_P start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT × 2 end_POSTSUPERSCRIPT , italic_p start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∈ start_BIGOP roman_I roman_R end_BIGOP start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, where nwsubscript𝑛𝑤n_{w}italic_n start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT and nz~Nsubscript𝑛subscript~𝑧𝑁n_{\tilde{z}_{N}}italic_n start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT are the number of sides of the polyhedral approximations 𝒫wsubscript𝒫𝑤\mathcal{P}_{w}caligraphic_P start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT and 𝒫z~Nsubscript𝒫subscript~𝑧𝑁\mathcal{P}_{\tilde{z}_{N}}caligraphic_P start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT, respectively. Then, constraint (38c) can be replaced with

P^w𝐰p^wsubscript^𝑃𝑤𝐰subscript^𝑝𝑤\hat{P}_{w}\mathbf{w}\leq\hat{p}_{w}over^ start_ARG italic_P end_ARG start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT bold_w ≤ over^ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT (39)

where

P^w=[0000Pw000Pw],p^u=[0pwpw]formulae-sequencesubscript^𝑃𝑤delimited-[]0000subscript𝑃𝑤000subscript𝑃𝑤subscript^𝑝𝑢delimited-[]0subscript𝑝𝑤subscript𝑝𝑤\hat{P}_{w}=\left[\begin{array}[]{cccc}0&0&\dots&0\\ 0&P_{w}&\dots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\dots&P_{w}\end{array}\right],\quad\hat{p}_{u}=\left[\begin{array}[]{c}0\\ p_{w}\\ \vdots\\ p_{w}\end{array}\right]over^ start_ARG italic_P end_ARG start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_P start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL italic_P start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ] , over^ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL italic_p start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_p start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ]

Similarly, the quadratic constraint (37e) can be replaced with its polyhedral approximation Pz~Nz~(k+N)pz~Nsubscript𝑃subscript~𝑧𝑁~𝑧𝑘𝑁subscript𝑝subscript~𝑧𝑁P_{\tilde{z}_{N}}\tilde{z}(k+N)\leq p_{\tilde{z}_{N}}italic_P start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG ( italic_k + italic_N ) ≤ italic_p start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT which can be rewritten as a function of the decision variable 𝐰𝐰\mathbf{w}bold_w, i.e.,

Pz~NΘN𝐰pz~NPz~NΨNz~(k)subscript𝑃subscript~𝑧𝑁subscriptΘ𝑁𝐰subscript𝑝subscript~𝑧𝑁subscript𝑃subscript~𝑧𝑁subscriptΨ𝑁~𝑧𝑘P_{\tilde{z}_{N}}\Theta_{N}\mathbf{w}\leq p_{\tilde{z}_{N}}-P_{\tilde{z}_{N}}% \Psi_{N}\tilde{z}(k)italic_P start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT roman_Θ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT bold_w ≤ italic_p start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT - italic_P start_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_POSTSUBSCRIPT roman_Ψ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT over~ start_ARG italic_z end_ARG ( italic_k ) (40)

Therefore, replacing (38c)-(38d) with (39)-(40), a QP optimization is obtained. Notice that the conservativeness and computational complexity of the derived QP problem depends on the number of sides of the polyhedra approximations, i.e. nwsubscript𝑛𝑤n_{w}italic_n start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT and nNsubscript𝑛𝑁n_{N}italic_n start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, which are additional design parameters.

All the above developments can be collected into the computable Algorithm 1, which, as proved in the following theorem, provides a solution to Problem 1.

Algorithm 1 Dual-Mode Feedback-Linearized Tracking MPC (Dual-Mode FL-MPC) algorithm

Offline:

1:Find K𝐾Kitalic_K solving (34) and set S𝑆Sitalic_S as in (31)
2:Set the prediction horizon N𝑁Nitalic_N such that (38) is feasible with the initial condition z~(0)=z(0)zr(0)~𝑧0𝑧0subscript𝑧𝑟0\tilde{z}(0)=z(0)-z_{r}(0)over~ start_ARG italic_z end_ARG ( 0 ) = italic_z ( 0 ) - italic_z start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( 0 )

Online:

1:Estimate x(k),y(k),θ(k),φ(k)𝑥𝑘𝑦𝑘𝜃𝑘𝜑𝑘x(k),\,y(k),\,\theta(k),\,\varphi(k)italic_x ( italic_k ) , italic_y ( italic_k ) , italic_θ ( italic_k ) , italic_φ ( italic_k ) and compute z~(k)=z(k)zr(k)~𝑧𝑘𝑧𝑘subscript𝑧𝑟𝑘\tilde{z}(k)=z(k)-z_{r}(k)over~ start_ARG italic_z end_ARG ( italic_k ) = italic_z ( italic_k ) - italic_z start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ), and η(k)=[θ(k),φ(k)]T𝜂𝑘superscript𝜃𝑘𝜑𝑘𝑇\eta(k)=\left[\theta(k),\varphi(k)\right]^{T}italic_η ( italic_k ) = [ italic_θ ( italic_k ) , italic_φ ( italic_k ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT.
2:Compute L(η(k))𝐿𝜂𝑘L(\eta(k))italic_L ( italic_η ( italic_k ) ) as in (19) and wr(k)subscript𝑤𝑟𝑘w_{r}(k)italic_w start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) as in (15);
3:if z~(k)ΣN~𝑧𝑘subscriptΣ𝑁\tilde{z}(k)\notin\Sigma_{N}over~ start_ARG italic_z end_ARG ( italic_k ) ∉ roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT then
4:     Find 𝐰superscript𝐰\mathbf{w}^{*}bold_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT solving (38) and set w(k)=w(k)𝑤𝑘superscript𝑤𝑘w(k)={w}^{*}(k)italic_w ( italic_k ) = italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k )
5:else
w(k)=Kz~(k)+w^r(k)𝑤𝑘𝐾~𝑧𝑘subscript^𝑤𝑟𝑘w(k)=K\tilde{z}(k)+\hat{w}_{r}(k)italic_w ( italic_k ) = italic_K over~ start_ARG italic_z end_ARG ( italic_k ) + over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) (41)
where w^r(k)subscript^𝑤𝑟𝑘\hat{w}_{r}(k)over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) is the optimal solution of (33)
6:end if
7:Compute
[v(k),ω(k)]T=M1(η(k))w(k)superscript𝑣𝑘𝜔𝑘𝑇superscript𝑀1𝜂𝑘𝑤𝑘\left[v(k),\omega(k)\right]^{T}=M^{-1}(\eta(k)){w}(k)[ italic_v ( italic_k ) , italic_ω ( italic_k ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT = italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_η ( italic_k ) ) italic_w ( italic_k ) (42)
and apply it to the car; kk+1𝑘𝑘1k\leftarrow k+1italic_k ← italic_k + 1, go to 1;
Theorem 1.

For any z~(0)~𝑧0\tilde{z}(0)over~ start_ARG italic_z end_ARG ( 0 ) such that (38) is feasible, the tracking FL-MPC strategy described in Algorithm 1 provides a solution to Problem 1.

Proof.

The proof can be divided into two parts:

(I) Stability and input constraint fulfillment of the linearized tracking error dynamics: First, let’s consider the input-output linearized model (11). If at the generic time k𝑘kitalic_k, (38) admits a solution for a given initial condition z~(k)~𝑧𝑘\tilde{z}(k)over~ start_ARG italic_z end_ARG ( italic_k ) and for some N>0𝑁0N>0italic_N > 0, then the optimal control sequence {w(k),w(k+1),,w(k+N1)}superscript𝑤𝑘superscript𝑤𝑘1superscript𝑤𝑘𝑁1\{w^{*}(k),\,w^{*}(k+1),\dots,\,w^{*}(k+N-1)\}{ italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k ) , italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k + 1 ) , … , italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k + italic_N - 1 ) } with w(k+i)𝒰(η(k)),η(k),i=0,1,N1formulae-sequencesuperscript𝑤𝑘𝑖𝒰𝜂𝑘for-all𝜂𝑘for-all𝑖01𝑁1w^{*}(k+i)\in\mathcal{U}(\eta(k)),\forall\eta(k),\,\forall i=0,1,\dots N-1italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k + italic_i ) ∈ caligraphic_U ( italic_η ( italic_k ) ) , ∀ italic_η ( italic_k ) , ∀ italic_i = 0 , 1 , … italic_N - 1, is such that z~(k+N)ΣN~𝑧𝑘𝑁subscriptΣ𝑁\tilde{z}(k+N)\in\Sigma_{N}over~ start_ARG italic_z end_ARG ( italic_k + italic_N ) ∈ roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. At time k+1𝑘1k+1italic_k + 1, a feasible solution to optimization (38) can be constructed from the optimal solution at time k𝑘kitalic_k, i.e., {w(k+1),w(k+2),w(k+N1),Kz~(k+N)}superscript𝑤𝑘1superscript𝑤𝑘2superscript𝑤𝑘𝑁1𝐾~𝑧𝑘𝑁\{w^{*}(k+1),w^{*}(k+2)\dots,\,w^{*}(k+N-1),\,K\tilde{z}(k+N)\}{ italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k + 1 ) , italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k + 2 ) … , italic_w start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_k + italic_N - 1 ) , italic_K over~ start_ARG italic_z end_ARG ( italic_k + italic_N ) }.

Indeed, the last control move Kz~(k+N)𝐾~𝑧𝑘𝑁K\tilde{z}(k+N)italic_K over~ start_ARG italic_z end_ARG ( italic_k + italic_N ) is, by construction, always constraint-admissible inside the RPI region ΣN.subscriptΣ𝑁\Sigma_{N}.roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT . As a consequence, the optimization (38) is recursively feasible ensuring that, in at most N𝑁Nitalic_N steps, z~(k)~𝑧𝑘\tilde{z}(k)over~ start_ARG italic_z end_ARG ( italic_k ) is steered into ΣN.subscriptΣ𝑁\Sigma_{N}.roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT . Then, given the RPI nature of ΣN,subscriptΣ𝑁\Sigma_{N},roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT , we can also conclude that z~(k)~𝑧𝑘\tilde{z}(k)over~ start_ARG italic_z end_ARG ( italic_k ) is UUB in ΣN.subscriptΣ𝑁\Sigma_{N}.roman_Σ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT . Furthermore, since the used input-output linearization and discretization commutes (see property (1)), the linearized tracking error dynamics (16) is stable under the effect of the proposed dual-mode MPC.

(II) Bounded Tracking Error for (1): As proven in part (I), w(k)𝑤𝑘w(k)italic_w ( italic_k ) computed by Algorithm 1 stabilizes the feedback linearized error dynamics (17a). Therefore, given the result of Lemma 1 and by applying the input transformation (9), the control law (42) solves the considered reference tracking problem with a bounded tracking error q~(k).~𝑞𝑘\tilde{q}(k).over~ start_ARG italic_q end_ARG ( italic_k ) .

IV Experimental Results

In this section, the experimental results, obtained using a Quanser Qcar111https://www.quanser.com/products/qcar/, are presented to show the effectiveness of the proposed FL-MPC tracking controller and compare it with alternative solutions. In particular, the chosen competitors are the nonlinear MPC tracking strategy described in Section III-A (namely “Nonlinear MPC”), and the the constrained adaptive backstep** controller developed in [10] (namely “Backstep**”). Two different versions of the proposed FL-MPC scheme have been tested. The first one exactly follows Algorithm 1 (hereafter referred to as “Dual-mode FL-MPC”). On the other hand, the second one (namely “FL-MPC”) executes Algorithm 1 but it never activates the terminal control law, i.e., it solves (38) for any k0.𝑘0k\geq 0.italic_k ≥ 0 .

Refer to caption
Figure 4: Proposed experimental setup

IV-A Experimental Setup

The considered experimental setup is depicted in Fig. 4, and it consists of:

  1. a)

    a Quanser Qcar;

  2. b)

    a camera-based Indoor Positioning System (IPS);

  3. c)

    a ground workstation;

  4. d)

    a Wifi communication channel between the ground workstation and the car.

The autonomous car-like vehicle is the Quanser Qcar open-architecture prototype, which is designed for academic research experiments. The car has a size of 0.39× 0.19× 0.20m0.390.190.20𝑚0.39\,\times\,0.19\,\times\,0.20\,m0.39 × 0.19 × 0.20 italic_m, weights 2.7kg2.7𝑘𝑔2.7\,kg2.7 italic_k italic_g, and its wheelbase measures l=0.256m𝑙0.256𝑚l=0.256mitalic_l = 0.256 italic_m. Onboard, the car is equipped with different sensors (encoders gyroscope, accelerometer, magnetometer, lidar, and depth and RGB cameras) an NVIDIA® Jetson™ TX2 with 2 GHz quad-core ARM Cortex-A57 64-bit + 2 GHz Dual-Core NVIDIA Denver2 64-bit CPU and 8GB memory. The considered maximum longitudinal speed is v¯=1m/s¯𝑣1𝑚𝑠\overline{v}=1\,m/sover¯ start_ARG italic_v end_ARG = 1 italic_m / italic_s, while the maximum steering angular velocity is ω¯=10rad/s¯𝜔10𝑟𝑎𝑑𝑠\overline{\omega}=10\,rad/sover¯ start_ARG italic_ω end_ARG = 10 italic_r italic_a italic_d / italic_s. In addition, due to the vehicle’s mechanical construction, the front wheel’s steering angle cannot exceed φ¯=0.6rad¯𝜑0.6𝑟𝑎𝑑\overline{\varphi}=0.6\,radover¯ start_ARG italic_φ end_ARG = 0.6 italic_r italic_a italic_d. The developed tracking algorithms have been implemented and cross-compiled in C language and run onboard on the Nvidia Jetson CPU. A sampling time Ts=0.01ssubscript𝑇𝑠0.01𝑠T_{s}=0.01\,sitalic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT = 0.01 italic_s has been used for all the performed tests.

The IPS consists of a set of 12 Vicon Vero cameras connected via a wired connection to the ground workstation. The camera system is used to localize the car in the workspace, similar to a standard GPS system. In particular, the cameras detect and track a set of reflective markers placed on the Qcar. The positions of the markers are real-time collected and processed on the ground workstation by the Vicon Tracker software, which accurately reconstructs, via a triangulation algorithm, the position and orientation of car.

The ground workstation is a desktop computer consisting of a 13th Gen Intel(R) Core(TM) i9-13900KF CPU, a NVIDIA GeForce RTX 4070 GPU, and 64GB of RAM. The workstation is used to estimate the pose of the car and broadcast it via a TCP/IP communication channel.

IV-A1 Configuration of the proposed controller

To implement the proposed tracking controller strategy the following parameters have been considered: Δ=0.35Δ0.35\Delta=0.35roman_Δ = 0.35, Q=I2×2𝑄subscript𝐼22Q=I_{2\times 2}italic_Q = italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT, R=0.01I2×2𝑅0.01subscript𝐼22R=0.01\cdot I_{2\times 2}italic_R = 0.01 ⋅ italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT, K=4I2×2𝐾4subscript𝐼22K=4I_{2\times 2}italic_K = 4 italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT. The radius of the worst-case circular input constraint set has been computed as in (20), obtaining r^=1^𝑟1\hat{r}=1over^ start_ARG italic_r end_ARG = 1. The reference trajectory is built to comply with (18), with rd=11.54subscript𝑟𝑑11.54r_{d}=11.54italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = 11.54. As a consequence, the feedback control gain K=4I2×2𝐾4subscript𝐼22K=4I_{2\times 2}italic_K = 4 italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT has been chosen such that RPI condition (34) is satisfied, with Acl=0.96I2×2subscript𝐴𝑐𝑙0.96subscript𝐼22A_{cl}=0.96I_{2\times 2}italic_A start_POSTSUBSCRIPT italic_c italic_l end_POSTSUBSCRIPT = 0.96 italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT, S=16I2×2𝑆16subscript𝐼22S=16I_{2\times 2}italic_S = 16 italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT, G=0.25I2×2𝐺0.25subscript𝐼22G=0.25I_{2\times 2}italic_G = 0.25 italic_I start_POSTSUBSCRIPT 2 × 2 end_POSTSUBSCRIPT, ξ=4.69108𝜉4.69superscript108\xi=4.69\cdot 10^{-8}italic_ξ = 4.69 ⋅ 10 start_POSTSUPERSCRIPT - 8 end_POSTSUPERSCRIPT, λ=0.9998𝜆0.9998\lambda=0.9998italic_λ = 0.9998, computed as outlined in in Proposition 1. The idea described in Remark 5 has been used to obtain a QP formulation of the derived QCQP optimization (38). In particular, the quadratic constraints (38c)-(38d) have been inner approximated using two decahedra, i.e., two polyhedral sets defined as in (39)-(40), with nw=nN=10subscript𝑛𝑤subscript𝑛𝑁10n_{w}=n_{N}=10italic_n start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT = italic_n start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = 10. The control optimization problem has been solved on the car’s processing unit considering a prediction horizon N=10𝑁10N=10italic_N = 10 using an Active Set solver algorithm. The Active Set algorithm makes use of a Cholesky decomposition of the hessian matrix H𝐻Hitalic_H, which, being constant for the proposed optimization, has been precomputed to reduce the online computational load. The computational times obtained for the used solver are reported in Section IV-A5.

IV-A2 Car’s state estimation

The state of the car q(k)𝑞𝑘q(k)italic_q ( italic_k ) is onboard estimated by means of an Unscented Kalman Filter (UFK). In particular, the implemented UKF is outlined in [35] and it exploits the nonlinear kinematic model (3) and different collected sensor information: (i) the estimated position and orientation of the Car provided by the Vicon Camera System, (ii) encoder and (iii) IMU (gyroscope and accelerometer) measurements. The UKF has been configured with the following parameters: process and measurement covariance matrices QUKF=diag([103, 103, 101, 10])subscript𝑄𝑈𝐾𝐹𝑑𝑖𝑎𝑔superscript103superscript103superscript10110Q_{UKF}=diag([10^{-3},\,10^{-3},\,10^{-1},\,10])italic_Q start_POSTSUBSCRIPT italic_U italic_K italic_F end_POSTSUBSCRIPT = italic_d italic_i italic_a italic_g ( [ 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT , 10 ] ), RUKF=diag([2105, 2105, 104, 105])subscript𝑅𝑈𝐾𝐹𝑑𝑖𝑎𝑔2superscript1052superscript105superscript104superscript105R_{UKF}=diag([2\cdot 10^{-5},\,2\cdot 10^{-5},\,10^{-4},\,10^{-5}])italic_R start_POSTSUBSCRIPT italic_U italic_K italic_F end_POSTSUBSCRIPT = italic_d italic_i italic_a italic_g ( [ 2 ⋅ 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT , 2 ⋅ 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT ] ), initial state estimation covariance matrix PUKF0=diag([105, 105, 106, 106])subscriptsuperscript𝑃0𝑈𝐾𝐹𝑑𝑖𝑎𝑔superscript105superscript105superscript106superscript106P^{0}_{UKF}=diag([10^{-5},\,10^{-5},\,10^{-6},\,10^{-6}])italic_P start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_U italic_K italic_F end_POSTSUBSCRIPT = italic_d italic_i italic_a italic_g ( [ 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT ] ), sigma-points parameters α=0.9𝛼0.9\alpha=0.9italic_α = 0.9, β=2𝛽2\beta=2italic_β = 2, κ=0𝜅0\kappa=0italic_κ = 0 (the interested reader shall refer to [35] for further details about the used parameters).

IV-A3 Reference trajectory generation

A reference trajectory complying with assumption 1 has been generated using a cubic spline interpolation method. The interpolation algorithm receives in input a sequence of waypoints describing the desired path and, in output, it assigns a crossing time based on path curvature and desired average speed. Then, each waypoint is interpolated using quintic splines, obtaining the position xr,yrsubscript𝑥𝑟subscript𝑦𝑟x_{r},\,y_{r}italic_x start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, velocity x˙r,y˙rsubscript˙𝑥𝑟subscript˙𝑦𝑟\dot{x}_{r},\,\dot{y}_{r}over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, acceleration x¨r,y¨rsubscript¨𝑥𝑟subscript¨𝑦𝑟\ddot{x}_{r},\,\ddot{y}_{r}over¨ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , over¨ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, and jerk x˙˙˙r,y˙˙˙rsubscript˙˙˙𝑥𝑟subscript˙˙˙𝑦𝑟\dddot{x}_{r},\,\dddot{y}_{r}over˙˙˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , over˙˙˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, needed to compute the reference car’s state qrsubscript𝑞𝑟q_{r}italic_q start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, and inputs ursubscript𝑢𝑟u_{r}italic_u start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, as in (4)-(5).

IV-A4 Configuration of the competitor schemes

Each competitor scheme has been configured to obtain the best tracking performance in the performed experiments. Specifically, the nonlinear MPC optimization (7) has been solved considering the following LQ cost matrices, Q=diag([135, 135, 65, 65])𝑄𝑑𝑖𝑎𝑔1351356565Q=diag(\left[135,\,135,\,65,\,65\right])italic_Q = italic_d italic_i italic_a italic_g ( [ 135 , 135 , 65 , 65 ] ), R=diag([0.3, 0.1])𝑅𝑑𝑖𝑎𝑔0.30.1R=diag(\left[0.3,\,0.1\right])italic_R = italic_d italic_i italic_a italic_g ( [ 0.3 , 0.1 ] ), and a prediction horizon N=5𝑁5N=5italic_N = 5. The nonlinear optimization has been solved using Sequential Quadratic Programming (SQP) method. On the other hand, the backstep** algorithm developed in [10] has been tuned using: dx=0.3subscript𝑑𝑥0.3d_{x}=0.3italic_d start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 0.3, σ=0.3𝜎0.3\sigma=0.3italic_σ = 0.3, αc=0.3subscript𝛼𝑐0.3\alpha_{c}=0.3italic_α start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = 0.3, k3=3.5subscript𝑘33.5k_{3}=3.5italic_k start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 3.5. The interested reader shall refer to [10] for a detailed explanation of the used parameters. It is worth mentioning that the steering command generated by the algorithm is subject to undesired chattering effects, typical of backstep** control algorithms [36]. In order to mitigate such an undesired effect, the control signal has been prefiltered using a low-pass filter with cut-off frequency ωc=100radssubscript𝜔𝑐100𝑟𝑎𝑑𝑠\omega_{c}=100\frac{rad}{s}italic_ω start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = 100 divide start_ARG italic_r italic_a italic_d end_ARG start_ARG italic_s end_ARG.

IV-A5 Evaluation of the tracking performance

To evaluate the tracking performance of the proposed controller and alternative schemes, the Integral Square Error (ISE) (0Tfe(t)2𝑑tsuperscriptsubscript0subscript𝑇𝑓𝑒superscript𝑡2differential-d𝑡\int_{0}^{T_{f}}e(t)^{2}dt∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_e ( italic_t ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_d italic_t) and Integral Time Squared Error (ITSE) (0Tfte(t)2𝑑t)superscriptsubscript0subscript𝑇𝑓𝑡𝑒superscript𝑡2differential-d𝑡(\int_{0}^{T_{f}}te(t)^{2}dt)( ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_t italic_e ( italic_t ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_d italic_t ) indexes have been used. In particular, for each performed experiment, three different error signals are measured: path distance error exy(k)=[x(k),y(k)][xr(k),yr(k)]2subscript𝑒𝑥𝑦𝑘subscriptnorm𝑥𝑘𝑦𝑘subscript𝑥𝑟𝑘subscript𝑦𝑟𝑘2e_{xy}(k)=\|\left[x(k),\,y(k)\right]-\left[x_{r}(k),\,y_{r}(k)\right]\|_{2}italic_e start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( italic_k ) = ∥ [ italic_x ( italic_k ) , italic_y ( italic_k ) ] - [ italic_x start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) , italic_y start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ] ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, heading angle error eθ(k)=θ(k)θr(k))e_{\theta}(k)=\theta(k)-\theta_{r}(k))italic_e start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_k ) = italic_θ ( italic_k ) - italic_θ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ), and steering angle error eφ(k)=φ(k)φr(k))e_{\varphi}(k)=\varphi(k)-\varphi_{r}(k))italic_e start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT ( italic_k ) = italic_φ ( italic_k ) - italic_φ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_k ) ). Then, for each collected error signal the ISE and ITSE indexes are computed, i.e., ISEx,y𝐼𝑆subscript𝐸𝑥𝑦ISE_{x,y}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_x , italic_y end_POSTSUBSCRIPT, ITSEx,y𝐼𝑇𝑆subscript𝐸𝑥𝑦ITSE_{x,y}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_x , italic_y end_POSTSUBSCRIPT, ISEθ𝐼𝑆subscript𝐸𝜃ISE_{\theta}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT, ITSEθ𝐼𝑇𝑆subscript𝐸𝜃ITSE_{\theta}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT, ISEφ𝐼𝑆subscript𝐸𝜑ISE_{\varphi}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT, ITSEφ𝐼𝑇𝑆subscript𝐸𝜑ITSE_{\varphi}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT.

IV-A6 Evaluation of computational times

To assess the computation complexity of the approaches Dual FL-MC and FL-MPC” and Nonlinear MPC, the computational times required by each algorithm have been measured. In the performed analysis, only the controller computation has been considered, i.e., the state-estimation algorithm as well as the sensor processing have been neglected.

IV-B Results

Refer to caption
Figure 5: Experimental results: Trajectory
Refer to caption
Figure 6: Experimental results: Heading and Steering Angles
Refer to caption
Figure 7: Experimental results: Control Inputs

The obtained results are collected in Figs. 5-7 and and Tables I-III. For the interested reader, videos of the performed experiments can be found at the following web link: https://youtu.be/aeHZKyRfcEo. The tracking performance has been evaluated considering two reference trajectories generated along the same path. The first requires a maximum speed of 0.6ms0.6𝑚𝑠0.6\frac{m}{s}0.6 divide start_ARG italic_m end_ARG start_ARG italic_s end_ARG, while the second, a maximum speed of 0.75ms0.75𝑚𝑠0.75\frac{m}{s}0.75 divide start_ARG italic_m end_ARG start_ARG italic_s end_ARG. It is worth mentioning that, for both the considered trajectories, several tests have been run, and the obtained results have been averaged in Table I-II, respectively.

Fig. 5 and Tables I-II show that for both trajectories, the proposed controller achieves better tracking when compared to the Nonlinear MPC and Backstep** controllers. In particular, the Nonlinear MPC showed poor tracking performance in all the performed experiments. This finds justification in the highly nonconvex nature of optimization (7), which converges to local minima and, consequently, to nonoptimal solutions. Moreover, as shown in Table III, the reference tracking performance cannot be improved by increasing the prediction horizon. For example, for N=10,𝑁10N=10,italic_N = 10 , the nonlinear optimization solver for (7) can take up to approximately 40ms40𝑚𝑠40\,ms40 italic_m italic_s to obtain a solution, which is far above the considered sampling time Ts=10mssubscript𝑇𝑠10𝑚𝑠T_{s}=10\,msitalic_T start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT = 10 italic_m italic_s. On the other hand, the backstep** controller shows slightly better tracking performance of the Nonlinear MPC. However, a chattering phenomena affects the computed steering angle command (see the rapid and discontinuous switching of the control signal). Moreover, as shown in Fig. 7, the control inputs computed by the backstep** controller are conservative, i.e. the longitudinal and angular steering velocities never reach the prescribed limits, v¯¯𝑣\overline{v}over¯ start_ARG italic_v end_ARG and ω¯¯𝜔\overline{\omega}over¯ start_ARG italic_ω end_ARG, respectively. The two above mentioned drawbacks justify why the tracking performance of the backstep** scheme are slightly worse of the one achieved with the proposed tracking controller degrades.

TABLE I: Comparison of tracking performance: Trajectory 1
Algorithm Distance Error Heading Error Steering Error
ISExy𝐼𝑆subscript𝐸𝑥𝑦ISE_{xy}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ITSExy𝐼𝑇𝑆subscript𝐸𝑥𝑦ITSE_{xy}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ISEθ𝐼𝑆subscript𝐸𝜃ISE_{\theta}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ITSEθ𝐼𝑇𝑆subscript𝐸𝜃ITSE_{\theta}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ISEφ𝐼𝑆subscript𝐸𝜑ISE_{\varphi}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT ITSEφ𝐼𝑇𝑆subscript𝐸𝜑ITSE_{\varphi}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT
FL-MPC 0.0279 0.3191 0.0201 0.1797 0.0244 0.2834
Dual-mode FL-MPC 0.0323 0.4160 0.0246 0.3195 0.0333 0.3117
Nonlinear MPC 0.2703 4.4197 0.0978 1.4305 0.0135 0.1642
Backstep** [10] 0.1629 2.0904 0.1375 1.6539 1.8797 30.5802
TABLE II: Comparison of tracking performance: Trajectory 2
Algorithm Distance Error Heading Error Steering Error
ISExy𝐼𝑆subscript𝐸𝑥𝑦ISE_{xy}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ITSExy𝐼𝑇𝑆subscript𝐸𝑥𝑦ITSE_{xy}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ISEθ𝐼𝑆subscript𝐸𝜃ISE_{\theta}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ITSEθ𝐼𝑇𝑆subscript𝐸𝜃ITSE_{\theta}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ISEφ𝐼𝑆subscript𝐸𝜑ISE_{\varphi}italic_I italic_S italic_E start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT ITSEφ𝐼𝑇𝑆subscript𝐸𝜑ITSE_{\varphi}italic_I italic_T italic_S italic_E start_POSTSUBSCRIPT italic_φ end_POSTSUBSCRIPT
FL-MPC 0.0321 0.4718 0.0127 0.1713 0.0132 0.1480
Dual-mode FL-MPC 0.0459 0.6006 0.0250 0.3571 0.0212 0.2439
Nonlinear MPC 0.2458 3.0141 0.0468 0.5247 0.0218 0.2568
Backstep** [10] 0.2634 3.2056 0.2378 2.6428 1.2098 20.9822

On the other hand, the performance obtained with the FL-MPC is slightly superior to the ones obtained with the dual-mode MPC. The reason behind such a result is that FL-MPC uses the RPI region (31) to ensure recursive feasibility, but it never directly relies on the associated controller, which is by nature more conservative. However, the dual-mode MPC implementation shows some computational advantage related to the fact that when the tracking error enters the terminal regions, then a simpler optimization problem (33) is solved. Moreover, for both performed experiments, the proposed FL-MPC controller fulfills the vehicle’s input constraints, as shown in Figs. 5-7.

TABLE III: Comparison of average and maximum computational times (in ms) of Nonlinear and FL-MPC
Algorithm N=3 N=5 N=10
MAX (ms)𝑚𝑠(ms)( italic_m italic_s ) AVG(ms)𝑚𝑠(ms)( italic_m italic_s ) MAX(ms)𝑚𝑠(ms)( italic_m italic_s ) AVG(ms)𝑚𝑠(ms)( italic_m italic_s ) MAX(ms)𝑚𝑠(ms)( italic_m italic_s ) AVG(ms)𝑚𝑠(ms)( italic_m italic_s )
FL-MPC 3.3106 0.5416 3.8249 0.6455 3.1471 0.6954
Dual-mode FL-MPC 1.7726 0.3622 3.3520 0.3417 2.0981 0.3638
Nonlinear MPC 7.2283 3.1933 15.6261 5.2227 40.5351 6.8099

Concerning the computational analysis, the proposed Dual-mode FL-MPC and FL-MPC solutions have been compared with the Nonlinear MPC considering the prediction horizons N=3,N=5,N=10formulae-sequence𝑁3formulae-sequence𝑁5𝑁10N=3,N=5,N=10italic_N = 3 , italic_N = 5 , italic_N = 10. The obtained results are collected in Table III. It can be appreciated how the computational times, both maximum and average ones, of the proposed solutions are significantly lower than the ones of the Nonlinear MPC, especially for larger values of N.𝑁N.italic_N .

V Conclusions

In this paper, a novel Feedback Linearized Model Predictive Control strategy for input-constrained self-driving cars has been presented. The proposed strategy combines two main ingredients: 1) an input-output FL technique and 2) a dual-mode MPC framework. The obtained tracking controller has the peculiar capability of efficiently dealing with state-dependent input constraints acting on the feedback linearized car’s model while ensuring recursive feasibility, stability, and velocity constraints fulfillment. Extensive experimental results and comparisons have been carried out to highlight the features and advantages of the proposed tracking controller.

References

  • [1] S. Dixit, S. Fallah, U. Montanaro, M. Dianati, A. Stevens, F. Mccullough, and A. Mouzakitis, “Trajectory planning and tracking for autonomous overtaking: State-of-the-art and future prospects,” Annual Reviews in Control, vol. 45, pp. 76–86, 2018.
  • [2] P. Stano, U. Montanaro, D. Tavernini, M. Tufo, G. Fiengo, L. Novella, and A. Sorniotti, “Model predictive path tracking control for automated road vehicles: A review,” Annual reviews in control, vol. 55, pp. 194–236, 2023.
  • [3] M. Liu, F. Zhao, J. Yin, J. Niu, and Y. Liu, “Reinforcement-tracking: an effective trajectory tracking and navigation method for autonomous urban driving,” IEEE Transactions on Intelligent Transportation Systems, vol. 23, no. 7, pp. 6991–7007, 2021.
  • [4] B. Paden, M. Čáp, S. Z. Yong, D. Yershov, and E. Frazzoli, “A survey of motion planning and control techniques for self-driving urban vehicles,” IEEE Trans. on Intelligent Vehicles, vol. 1, no. 1, pp. 33–55, 2016.
  • [5] L. Li, J. Li, and S. Zhang, “State-of-the-art trajectory tracking of autonomous vehicles,” Mechanical Sciences, vol. 12, no. 1, pp. 419–432, 2021.
  • [6] L. Nie, J. Guan, C. Lu, H. Zheng, and Z. Yin, “Longitudinal speed control of autonomous vehicle based on a self-adaptive pid of radial basis function neural network,” IET Intelligent Transport Systems, vol. 12, no. 6, pp. 485–494, 2018.
  • [7] H. T. Abatari and A. D. Tafti, “Using a fuzzy pid controller for the path following of a car-like mobile robot,” in 2013 First RSI/ISM international conference on robotics and mechatronics (ICRoM).   IEEE, 2013, pp. 189–193.
  • [8] Y. Wu, L. Wang, J. Zhang, and F. Li, “Path following control of autonomous ground vehicle based on nonsingular terminal sliding mode and active disturbance rejection control,” IEEE Transactions on Vehicular Technology, vol. 68, no. 7, pp. 6379–6390, 2019.
  • [9] M. Shirzadeh, M. H. Shojaeefard, A. Amirkhani, and H. Behroozi, “Adaptive fuzzy nonlinear sliding-mode controller for a car-like robot,” in 2019 5th conference on knowledge based engineering and innovation (kbei).   IEEE, 2019, pp. 686–691.
  • [10] J. Hu, Y. Zhang, and S. Rakheja, “Adaptive trajectory tracking for car-like vehicles with input constraints,” IEEE Transactions on Industrial Electronics, vol. 69, no. 3, pp. 2801–2810, 2021.
  • [11] S. Kuutti, R. Bowden, Y. **, P. Barber, and S. Fallah, “A survey of deep learning applications to autonomous vehicle control,” IEEE Transactions on Intelligent Transportation Systems, vol. 22, no. 2, pp. 712–733, 2020.
  • [12] S. Grigorescu, B. Trasnea, T. Cocias, and G. Macesanu, “A survey of deep learning techniques for autonomous driving,” Journal of field robotics, vol. 37, no. 3, pp. 362–386, 2020.
  • [13] P. F. Lima, G. C. Pereira, J. Mårtensson, and B. Wahlberg, “Experimental validation of model predictive control stability for autonomous driving,” Control Engineering Practice, vol. 81, pp. 244–255, 2018.
  • [14] E. F. Camacho and C. Bordons, “Nonlinear model predictive control,” in Model Predictive Control.   Springer, 2007, pp. 249–288.
  • [15] P. Falcone, F. Borrelli, J. Asgari, H. E. Tseng, and D. Hrovat, “Predictive active steering control for autonomous vehicle systems,” IEEE Transactions on control systems technology, vol. 15, no. 3, pp. 566–580, 2007.
  • [16] F. Borrelli, P. Falcone, T. Keviczky, J. Asgari, and D. Hrovat, “Mpc-based approach to active steering for autonomous vehicle systems,” International journal of vehicle autonomous systems, vol. 3, no. 2-4, pp. 265–291, 2005.
  • [17] H. Pang, M. Liu, C. Hu, and N. Liu, “Practical nonlinear model predictive controller design for trajectory tracking of unmanned vehicles,” Electronics, vol. 11, no. 7, p. 1110, 2022.
  • [18] M. Cho, Y. Lee, and K.-S. Kim, “Model predictive control of autonomous vehicles with integrated barriers using occupancy grid maps,” IEEE Robotics and Automation Letters, vol. 8, no. 4, pp. 2006–2013, 2023.
  • [19] W. Schwarting, J. Alonso-Mora, L. Paull, S. Karaman, and D. Rus, “Safe nonlinear trajectory generation for parallel autonomy with a dynamic vehicle model,” IEEE Transactions on Intelligent Transportation Systems, vol. 19, no. 9, pp. 2994–3008, 2017.
  • [20] M. Nezami, D. S. Karachalios, G. Schildbach, and H. S. Abbas, “On the design of nonlinear mpc and lpvmpc for obstacle avoidance in autonomous driving,” in 2023 9th International Conference on Control, Decision and Information Technologies (CoDIT).   IEEE, 2023, pp. 1–6.
  • [21] F. Eiras, M. Hawasly, S. V. Albrecht, and S. Ramamoorthy, “A two-stage optimization-based motion planner for safe urban driving,” IEEE Trans. on Robotics, vol. 38, no. 2, pp. 822–834, 2021.
  • [22] J. Funke, M. Brown, S. M. Erlien, and J. C. Gerdes, “Collision avoidance and stabilization for autonomous vehicles in emergency scenarios,” IEEE Transactions on Control Systems Technology, vol. 25, no. 4, pp. 1204–1216, 2016.
  • [23] C. E. Beal and J. C. Gerdes, “Model predictive control for vehicle stabilization at the limits of handling,” IEEE Transactions on Control Systems Technology, vol. 21, no. 4, pp. 1258–1269, 2012.
  • [24] K. Majd, M. Razeghi-Jahromi, and A. Homaifar, “A stable analytical solution method for car-like robot trajectory tracking and optimization,” IEEE/CAA Journal of Automatica Sinica, vol. 7, no. 1, pp. 39–47, 2019.
  • [25] A. De Luca, G. Oriolo, and C. Samson, “Feedback control of a nonholonomic car-like robot,” Robot motion planning and control, pp. 171–253, 2005.
  • [26] J. Deng, V. Becerra, and R. Stobart, “Input constraints handling in an MPC/feedback linearization scheme,” Int. Journal of Applied Mathematics and Computer Science, vol. 19, no. 2, pp. 219–232, 2009.
  • [27] D. Simon, J. Löfberg, and T. Glad, “Nonlinear model predictive control using feedback linearization and local inner convex constraint approximations,” in 2013 European Control Conference (ECC).   IEEE, 2013, pp. 2056–2061.
  • [28] C. Tiriolo and W. Lucia, “On the design of control invariant regions for feedback linearized car-like vehicles,” IEEE Control Systems Letters, vol. 7, pp. 739–744, 2022.
  • [29] C. Tiriolo, G. Franzè, and W. Lucia, “A receding horizon trajectory tracking strategy for input-constrained differential-drive robots via feedback linearization,” IEEE Transactions on Control Systems Technology, vol. 31, no. 3, pp. 1460–1467, 2022.
  • [30] F. Borrelli, A. Bemporad, and M. Morari, Predictive Control for Linear and Hybrid Systems.   Cambridge University Press, 2017.
  • [31] F. Blanchini and S. Miani, Set-theoretic Methods in Control.   Springer, 2008, vol. 78.
  • [32] D. Q. Mayne, J. B. Rawlings, C. V. Rao, and P. O. Scokaert, “Constrained model predictive control: Stability and optimality,” Automatica, vol. 36, no. 6, pp. 789–814, 2000.
  • [33] D. Wang and G. Xu, “Full-state tracking and internal dynamics of nonholonomic wheeled mobile robots,” IEEE/ASME Trans. on Mechatronics, vol. 8, no. 2, pp. 203–214, 2003.
  • [34] I. Kolmanovsky and E. G. Gilbert, “Theory and computation of disturbance invariant sets for discrete-time linear systems,” Mathematical problems in engineering, vol. 4, no. 4, pp. 317–367, 1998.
  • [35] R. Van Der Merwe and E. A. Wan, “The square-root unscented kalman filter for state and parameter-estimation,” in 2001 IEEE international conference on acoustics, speech, and signal processing. Proceedings (Cat. No. 01CH37221), vol. 6.   IEEE, 2001, pp. 3461–3464.
  • [36] H. G. Tanner and K. J. Kyriakopoulos, “Backstep** for nonsmooth systems,” Automatica, vol. 39, no. 7, pp. 1259–1265, 2003.