# Model Predictive Control and Its Role in Biomedical Therapeutic Automation: A Brief Review
## 7 Shell Multivariable Optimizing Controller (SMOC):
### MPC Methodology  
Expressed in its simplest form, the MPC predicts future output values based on current input and output values, as well as the future controller action and state variables (Figure 3). Every MPC is comprised of three interconnected elements: a process model, an objective function that employs the receding horizon technique (RHM), and a control rule.  
Figure 2: Industry-wide evolution of MPC algorithms.  
The model of the process describes the dynamics of the inputs and outputs as they occur during the process. An MPC can employ feed-forward, feed-backward and disturbance models, among other techniques. The objective function is sometimes referred to as the cost function in some circles. Specifically, MPC methodology aims to achieve the following objectives [27]:  
* Anticipate the outcome of a process over a future time horizon via the explicit application of a system model;
* Calculate and optimize the control sequence;
* Implement a receding horizon strategy in which the horizon is moved towards the future at each step while applying the control sequence for that step.  
The following steps (schematically depicted in Figure 4) broadly describe the generalized MPC tuning methodology followed to attain the above-listed objectives:  
**Step 1:** In the first step, the initial process model is utilised to generate future outputs \(y(t+k|t)\), \(k=1,\cdots,N\) (where \(N\) is the number of samples) at all time instants \(t\) within the prediction horizon. Future predictions of the system states are calculated considering the previous system inputs and corresponding outputs, the current output (initial condition) \(y(t)\), and the required control signals \(u(t+k|t)\) so that the desired output is reached/maintained.  
**Step 2:** A control sequence is computed to maximise a performance objective, which is frequently updated to minimise the error between the reference trajectory and the expected process output. Typically, the effort required to maintain control is incorporated in the performance criterion.  
**Step 3:** A single control signal \(u(t|t)\) is transmitted to the process at this point in the process. After that, \(y(t+1)\) is measured, and step 1 is repeated, with all sequences being brought up to date at the end of that sampling period. This is accomplished by employing the concept of a receding horizon, in which the prediction horizon is maintained at the same level but is step-wise incremented by one sample interval \(u(t+1|t+1)\).  
The receding horizon method (RHM) predicts the behaviour of a preset range or horizon by using a mathematical formula. Consideration is given to the present and future limitations, and calculations are made for all values occurring inside the horizon beginning at time \(t\). Those values are then forwarded to the controller, which allows all values greater than \(t\) to be refused. The control law is a mathematical formula that is utilised by the controller to determine the objective functions and the process model. The controller monitors the value calculated for the horizon from the objective function and rejects all values other than those occurring at the specified time \(t\) in the objective function. Thereafter,  
Figure 3: Basic structure of MPC.  
a signal is sent to the controlled variables, and the entire procedure is repeated, with new outputs calculated based on the newly introduced inputs, outputs, and restrictions. Subsequently, the controller rejects all values with the exception of those at time \(t+1\). Such repetitions/iterations are carried out until the end of the predetermined horizon has been reached. An objective function and constraints are used in the process model optimization process. Projected outputs are compared to the reference trajectories in order to reduce deviations/mistakes. Updated outputs are sent to the process, and in this way, the entire system process is repeated for each future output.