## 2 Design of Path Tracking Controller with Constraints on Tire Slip Angles
### Design of MPC with Constraints on Tire Slip Angles  
As shown in Table 1, MPC has been widely adopted as a path tracking controller for the last decade because it can handle nonlinear or time-varying systems and nonlinear constraints besides linear time-invariant ones [11; 12; 14; 16; 17; 19; 20; 27; 28; 29; 30]. Generally, MPC is designed in the discrete-time domain. For the reason, the first step of MPC is to discretize Equation (8) with the sampling time, \(T_{s}\). As a result, the discrete-time version of Equation (8) is obtained as Equation (19). In Equation (19), the subscript \(k\) represents a particular time instant. If \(k\) is 0, it means the current time instant. The matrices \(\mathbf{F}\), \(\mathbf{G}\) and \(\mathbf{H}\) in Equation (19) are obtained as an approximated form of Equation (20). In this paper, it is assumed that the disturbance \(\mathbf{w}_{k}\) in Equation (19) is set to 0. The discrete-time version of LQCF, Equation (11), is obtained as Equation (21). In Equation (21), \(N\) is the prediction horizon. Let this denote the current state vector as \(\mathbf{x}_{0}\). The state vector at the time instant \(k\) is obtained as Equation (22) from Equation (19). In Equation (22), \(\mathbf{x}_{0}\) is the current state. By expanding Equation (22) from the first to \(N\)-th time instant, new vectors and matrices are defined as Equation (23). With these definitions, the state-space equation and LQCF from the first to \(N\)-th time instant are calculated as Equation (24) and Equation (25), respectively. By replacing \(\mathbf{X}\) of Equation (25) with Equation (24), the LQCF, Equation (25), is obtained by Equation (26). In Equation (27), the bound on steering angle, \(\delta_{\max}\), is imposed on the control input \(\mathbf{U}\). Moreover, instead of Equation (27), CTSAs can be imposed on the control input, as set in Equation (28). In Equation (28), \(\mathbf{U}_{f}\) and \(\mathbf{U}_{r}\) are the elements of \(\mathbf{U}\) corresponding to \(\delta_{f}\) and \(\delta_{r}\), respectively. \(\beta_{0}\) and \(\gamma_{0}\) are the values of \(\beta\) and \(\gamma\), obtained from the current state \(\mathbf{x}_{0}\). With this manner, the quadratic programming with the optimization variable \(\mathbf{U}\), the cost function \(J_{MPC}\), and the bound constraints of Equation (27) and Equation (28) is formulated [7]. In this paper, the solver, quadprog(), provided in MATLAB R2019a optimization toolbox, was applied to find the optimum \(\mathbf{U}\) at every time instant \(k\). After finding the optimum, MPC usually selects the first element of the optimum \(\mathbf{U}\) as the control input. In this paper, \(T_{s}\) and \(N\) are set to, respectively, 0.01 s and 30. \[\mathbf{x}_{k+1}=\mathbf{F}\mathbf{x}_{k}+\mathbf{G}\mathbf{w}_{k}+\mathbf{H} \mathbf{u}_{k} \tag{19}\]  
\[\mathbf{F}=\mathbf{I}+\mathbf{A}\cdot T_{s},\ \mathbf{G}=\mathbf{B}_{1}\cdot T_{s},\ \mathbf{H}=\mathbf{B}_{2}\cdot T_{s} \tag{20}\]  
\[J_{MPC}=\sum_{k=0}^{N-1}\left(\mathbf{x}_{k}^{T}\mathbf{Q}\mathbf{x}_{k}+ \mathbf{u}_{k}^{T}\mathbf{R}\mathbf{u}_{k}\right) \tag{21}\]  
\[\mathbf{x}_{k+1}=\mathbf{F}^{k}\mathbf{x}_{0}+\sum_{i=0}^{k-1}\mathbf{F}^{i-1 }\mathbf{H}\mathbf{u}_{k-i-1} \tag{22}\]\[\mathbf{X}= \begin{bmatrix}\mathbf{x}_{1}\\ \mathbf{x}_{2}\\ \mathbf{x}_{3}\\ \vdots\\ \mathbf{x}_{N}\end{bmatrix} ,\mathbf{\overline{F}}= \begin{bmatrix}\mathbf{F}\\ \mathbf{F}^{2}\\ \mathbf{F}^{3}\\ \vdots\\ \mathbf{F}^{N}\end{bmatrix} ,\mathbf{\overline{H}}= \begin{bmatrix}\mathbf{H} &0&0&0&0\\ \mathbf{FH}&\mathbf{H}&0&0&0\\ \mathbf{F}^{2}\mathbf{H}&\mathbf{FH}&\mathbf{H}&0&0\\ \vdots&\vdots&\vdots&\ddots&0\\ \mathbf{F}^{N-1}\mathbf{H}&\mathbf{F}^{N-2}\mathbf{H}&\mathbf{F}^{N-3}\mathbf{ H}&\cdots&\mathbf{H}\end{bmatrix} ,\ \mathbf{U}= \begin{bmatrix}\mathbf{u}_{0}\\ \mathbf{u}_{1}\\ \mathbf{u}_{2}\\ \vdots\\ \mathbf{u}_{N-1}\end{bmatrix}