# Adaptive Cruise Control Based on Model Predictive Control with Constraints Softening
## 4 Multi-Objective ACC Strategy with Constraint Softening
### Prediction Model  
The MPC algorithm can minimize the objective function by making full use of the model of the plant process. This can be done by utilizing a model to estimate the influence of control on the system output, which can then be reformed online [21]. On the basis of the system model and the current states of the system, the future states of the system can be predicted. To compensate for the predictive error and enhance the model accuracy, the feedback strategy can be utilized. On the basis of the state space model of car following, the predictive state variables in the predictive domain are calculated as  
\[\hat{X}_{\text{p}}(k+p|k)=\hat{B}U(k+c)+\underbrace{\hat{A}x(k)+\hat{G}W(k+p)+ \hat{H}e_{\text{x}}(k)}_{\Phi_{1}}\]  
\[\hat{Y}_{\text{p}}(k+p|k)=\hat{D}U(k+c)+\underbrace{\hat{C}x(k)+\hat{E}W(k+p)+ \hat{F}e_{\text{x}}(k)-\hat{Z}}_{\Phi_{2}} \tag{12}\]  
with  
\[\hat{X}_{\text{p}}(k+p|k)=\left[ \begin{array}{c}\hat{x}_{\text{p}}(k+1|k)\\ \hat{x}_{\text{p}}(k+2|k)\\ \vdots\\ \hat{x}_{\text{p}}(k+p|k)\end{array} \right]\hat{Y}_{\text{p}}(k+p|k)=\left[ \begin{array}{c}\hat{y}_{\text{p}}(k+1|k)\\ \hat{y}_{\text{p}}(k+2|k)\\ \vdots\\ \hat{y}_{\text{p}}(k+p|k)\end{array} \right]U(k+c)=\left[ \begin{array}{c}u(k )\\ u(k+1)\\ \vdots\\ u(k+c-1)\end{array} \right]W(k+p)=\left[ \begin{array}{c}w(k)\\ w(k+1)\\ \vdots\\ w(k+p-1)\end{array} \right]\]  
where \(p\) and \(c\) symbolize the predicted horizon and the control horizon, respectively. \(\hat{x}_{\text{p}}(k+1|k)\), \(\hat{x}_{\text{p}}(k+2|k)\),..., \(\hat{x}_{\text{p}}(k+p|k)\) represent the estimated state values in the predicted horizon based on their values at the sampling time \(k\); \(\hat{y}_{\text{p}}(k+1|k)\), \(\hat{y}_{\text{p}}(k+2|k)\),..., \(\hat{y}_{\text{p}}(k+p|k)\) represent the estimated output values in the prediction horizon based on their values at the sampling time \(k\); \(u(k)\), \(u(k+1)\),..., \(u(k+c-1)\) symbolize the control vectors, which represent the desired acceleration; \(w(k)\), \(w(k+1)\),..., \(w(k+p)\) are the disturbance vectors in the predicted horizon; \(x(k)\) is the current state variable at the sampling time \(k\), \(\hat{x}_{\text{c}}(k|k-1)\) is the estimated value of the state variable for the sampling time \(k\) based on the previous sampling time \(k-1\); \(e_{x}(k)\) represents the deviation between the current state value and the estimated value at the sampling time \(k\), which can be achieved using the function \(e_{x}(k)=x(k)-\hat{x}_{c}(k|k-1)\) ; and \(\hat{A}\), \(\hat{B}\), \(\hat{G}\), \(\hat{C}\), \(\hat{D}\), \(\hat{E}\), \(\hat{Z}\) are the prediction matrices, which are defined as  
\[\hat{A}=\left[ \begin{array}{c}A\\ A^{2}\\ \vdots\\ A^{p-1}\end{array} \right]\hat{B}=\left[ \begin{array}{cccc}B&0&\cdots&0\\ AB&B&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ A^{c-1}B&A^{c-2}B&\cdots&B\\ \vdots&\vdots&\vdots&\vdots\\ A^{p-1}B&A^{p-2}B&\cdots&A^{p-c}B\\ \end{array} \right]\hat{D}=\left[ \begin{array}{cccc}CB&0&\cdots&0\\ CAB&CB&\ddots&\vdots\\ \vdots&\vdots&\ddots&0\\ CA^{c-1}B&CA^{c-2}B&\cdots&CB\\ \vdots&\vdots&\vdots&\vdots\\ CA^{p-1}B&CA^{p-2}B&\cdots&CA^{p-c}B\\ \end{array} \right] \tag{13}\] \[\hat{G}=\left[ \begin{array}{cccc}G&0&\cdots&0\\ AG&G&\ddots&\vdots\\ \vdots&\vdots&\ddots&0\\ A^{p-1}G&A^{p-2}G&\cdots&G\end{array} \right]\hat{C}=\left[ \begin{array}{cccc} CA\\ CA^{2}\\ \vdots\\ CA^{p-1}\end{array} \right]\hat{E}=\left[ \begin{array}{cccc}CA\\ CA^{2}\\ \vdots\\ CA^{p-1}\end{array} \right]\hat{Z}=\left[ \begin{array}{c}Z\\ Z\\ \vdots\\ CA^{p-1}G&CA^{p-2}G&\cdots&CG\end{array} \right]\hat{Z}=\left[ \begin{array}{c}Z \\ Z\\ \vdots\\ Z\end{array} \right].\]  
\(\hat{H}\), \(\hat{F}\) are the error feedback matrices, which are defined as  
\[\hat{H}=\left[ \begin{array}{c}H\\ H\\ \vdots\\ H\end{array} \right]H=\left[ \begin{array}{cccc}1&0&0&0&0\\ 0&1&0&0&0\\ 0&0&1&0&0\\ 0&0&0&1&0\\ 0&0&0&0&1\end{array} \right]\hat{F}=\left[ \begin{array}{c}CH\\ CH\\ \vdots\\ CH\end{array} \right] \tag{14}\]  
At the sampling time \(k\), the interference vector cannot be obtained.