# Performance Assessment of Predictive Control--A Survey
## 2 Model Predictive Control
### General MPC Rule  
Taking multivariate plant with \(n_{\rm u}\) MVs and \(n_{\rm y}\) Controlled Variables (CVs) as an example means that the vector of controller outputs is \(u=[u_{1}\ldots u_{n_{\rm u}}]^{\rm T}\) and the vector of process outputs is \(y=\left[y_{1}\ldots y_{n_{\rm y}}\right]^{\rm T}\). The predictive control rule is calculated in real time increments of future MVs during each sampling interval \(k=0,1,\ldots\) in the form of a vector of length \(n_{\rm u}N_{\rm u}\)  
\[\triangle u(k)=\left[ \begin{array}{c}\triangle u(k|k)\\ \vdots\\ \triangle u(k+N_{\rm u}-1|k)\end{array} \right], \tag{1}\]where \(N_{\rm u}\) denotes the control horizon. The associated signal increments for future sampling period \(k+p\), which are evaluated at the current moment \(k\), are marked by \(\triangle u(k+p|k)\). They are described by the following definition  
\[\triangle u(k+p|k)= \begin{cases}u(k|k)-u(k-1)&\text{for }p=0\\ u(k+p|k)-u(k+p-1|k)&\text{for }p\geq 1\end{cases} . \tag{2}\]  
General nonlinear MPC optimization problem can be formulated in a vector-matrix form  
\[\min_{\triangle u(k)}\Big{\{}\left\|\mathbf{y}^{\rm SP}(k)-\hat{\mathbf{ y}}(k)\right\|_{\mathbf{\
abla}(p)}^{2}+\left\|\triangle\mathbf{u}(k)\right\|_{ \mathbf{\Lambda}(p)}^{2}\Big{\}},\] (3) subject to \[\mathbf{u}^{\rm min}\leq\mathbf{u}(k)\leq\mathbf{u}^{\rm max},\] \[-\triangle\mathbf{u}^{\rm max}\leq\triangle\mathbf{u}(k)\leq\triangle\mathbf{ u}^{\rm max},\] \[\mathbf{y}^{\rm min}\leq\hat{\mathbf{y}}(k)\leq\mathbf{y}^{\rm max}.\]  
The above quadratic norms are defined as \(\left\|\mathbf{x}\right\|^{2}=\mathbf{x}^{\rm T}\mathbf{x}\) and \(\left\|\mathbf{x}\right\|_{\mathbf{A}}^{2}=\mathbf{x}^{\rm T}\mathbf{A}\mathbf{x}\). Setpoint trajectory vector \(\mathbf{y}^{\rm SP}(k)=\left[y^{\rm SP}(k|k)\dots y^{\rm SP}(k+N_{u}-1|k)\right]^{ \rm T}\), the predicted trajectory vector \(\hat{\mathbf{y}}(k)=\left[\hat{y}(k|k)\dots\hat{y}(k+N_{\rm u}-1|k)\right]^{\rm T}\), and the vectors indicating output constraints, i.e., \(\mathbf{y}^{\rm min}=\left[y^{\rm min}\dots y^{\rm min}\right]^{\rm T}\) and \(\mathbf{y}^{\rm max}=\left[y^{\rm max}\dots y^{\rm max}\right]^{\rm T}\), are of length \(N_{u}\). Respective vectors for input constraints \(\mathbf{u}^{\rm min}=\left[u^{\rm min}\dots u^{\rm min}\right]^{\rm T}\), \(\mathbf{u}^{\rm max}=[u^{\rm max}\dots u^{\rm max}]^{\rm T}\), \(\triangle u^{\rm max}=[\triangle u^{\rm max}\dots\triangle u^{\rm max}]^{\rm T}\) and the vector \(\mathbf{u}(k)=\left[u(k|k)\dots u(k+N_{\rm u}-1|k)\right]^{\rm T}\) are of length \(N_{\rm u}\), while matrices \(\mathbf{\Lambda}(p)=\text{diag}(\lambda,\dots,\lambda)\) and \(\mathbf{\
abla}(p)=\mathbf{I}\) are of dimension \(N_{\rm u}\times N_{\rm u}\). The dependence of \(y(k+p|k)\) on past process inputs and outputs and on decision variables \(\triangle u(k+p|k)\), \(p=0,\dots,N_{\rm u}-1\) is in general given by a nonlinear model. The role of the first part of the MPC cost-function in Equation (3) is to minimize predicted control errors over the prediction horizon \(N\). Setpoint and predicted values of the process output for future sampling interval \(k+p\) are known or calculated for a current moment \(k\). Predicted process outputs are calculated with a mathematical model of the controlled process. The role of the second part of the performance index in Equation (3) is to eliminate excessive variations in controller outputs. Generally, the constraints may be imposed on MVs future values over the control horizon:  
* on their minimal and maximal permissible limits \(u^{\rm min}\) and \(u^{\rm max}\);
* on their future changes with a limiting value of \(\triangle u^{\rm max}\); and
* on process output predictions (also over the prediction horizon) denoted as \(y^{\rm min}\) and \(y^{\rm max}\). Although an entire sequence of decision variable (Equation (1)) is calculated, only the first vector element is applied to the process. During the next sampling period, \(k+1\), CV measurement is updated and the procedure is repeated.