Fast Real-Time Model Predictive Control for a Ball-on-Plate Process

This work is concerned with an original ball-on-plate laboratory process. First, a simplified process model based on state–space process description is derived. Next, a fast state–space MPC algorithm is discussed. Its main advantage is computational simplicity: the manipulated variables are found on-line using explicit formulas with parameters calculated off-line; no real-time optimization is necessary. Software and hardware implementation details of the considered MPC algorithm using the STM32 microcontroller are presented. Tuning of the fast MPC algorithm is discussed. To show the efficacy of the MPC algorithm, it is compared with the classical PID and LQR controllers.


Introduction
Laboratories have a very important role in the successful education of engineering students. As far as automatic control is concerned, students use the classical laboratory processes such as the water tanks, the inverted pendulum, the magnetic levitation system and the ball-on-plate benchmark. In particular, the ball-on-plate process is very interesting in undergraduate and graduate courses since it requires multivariable stabilizing control [1][2][3]. Furthermore, it is a fast dynamical system that requires short sampling times of the controller. Because control of fast, unstable and multivariable systems is very important in different practical applications, the ball-on-plate process may be successfully used in control courses.
Since the ball-on-plate process may be described by state equations, Linear Quadratic Regulator (LQR) is frequently used [4][5][6]. Similarly, applications of the Sliding Mode Control (SMC) [5,[7][8][9] and adaptive SMC [8,9] are reported. Furthermore, one may also try to use simple PD [2] or PID controllers [3,5,9,10]. More advanced solutions include fuzzy controllers [5,9,10], neuro-controllers [11], feedback linearization controllers [12] and disturbance-observer-based friction compensation schemes [13]. Finally, some works consider advanced Model Predictive Control (MPC) [14]. Historically, MPC algorithms have been used for industrial process control; example processes are chemical reactors [15], distillation columns [16], pasteurization plants [17] and fermentation systems [18]. Currently, MPC algorithms are also used for numerous other processes; example applications are: heating, ventilation and air conditioning systems [19], robotic manipulators [20], electromagnetic mills [21], servomotors [22], quadrotors [23], autonomous vehicles [24], unmanned aerial vehicles [25] and stochastic systems [26]. MPC algorithms have also been used for the considered ball-on-plate process. Unfortunately, the solutions presented in the literature are computationally demanding as they require on-line optimization carried out at each sampling instant. The MPC algorithm in which a nonlinear model is used for prediction and a nonlinear optimization task must be solved at each sampling instant on-line is presented in [27] (only simulations are shown). The MPC method based on a linearized model and quadratic optimization used on-line to calculate the manipulated variables is discussed in [28,29]. The objective of this work is to develop a fast MPC algorithm for the ball-on-plate process which does not need any on-line optimization and compare its performance with the classical PID and LQR controllers very frequently used for the considered process.
When the sampling time is short, e.g., of millisecond order, computational efficiency of MPC is an important issue [30]. The time required to perform calculations at every execution of the MPC algorithm must be shorter than the sampling time. There are a few methods that may be used to obtain short calculation time of MPC algorithms. First, specialized fast on-line optimization methods may be used, especially tailored for MPC applications [31]. Secondly, in the constrained explicit MPC algorithms [32], on-line optimization is not used, but a number of local explicit controllers are used. Successful implementation of the explicit MPC is reported [33], even when the available memory is limited [34]. Thirdly, the numerical optimization procedure used in the MPC algorithm may be replaced by a specially designed neural network which acts as a neural optimizer [35]. Fast explicit (analytical) MPC is possible in which the manipulated variables are calculated analytically using explicit formulas and next projected onto the admissible set determined by the constraints [36]. As a result, on-line optimization is not required. A practical application of this approach is described in [37], but only for processes described by simple step-response models and by discrete transfer functions (i.e., difference equations). This work follows the idea presented in [36,37] for state-space models. Finally, some specialized methods have been developed to handle constraints in on-line MPC optimization that make it possible to use sampling times of the order of milliseconds [16,38].
This work is concerned with an original ball-on-plate laboratory process. The contribution of this work is three-fold:

1.
Simplified process modeling based on state-space process description is derived.

2.
A fast state-space MPC algorithm is discussed and next applied to the considered ballon-plate system. Its main advantage is computational simplicity: the manipulated variables are computed on-line using explicit formulas with parameters calculated off-line, no on-line optimization is necessary (nonlinear or quadratic). The presented state-space MPC algorithm uses a simple, yet very efficient state and output disturbance estimation necessary for prediction in state-space MPC [39].

3.
Software and hardware implementation details of the MPC algorithm are presented.
The article is organized in the following way. Section 2 shortly describes the laboratory ball-on-plate process and introduces its model. The MPC algorithm is detailed in Section 3 while Section 4 deals with software and hardware implementation of the MPC algorithm using the STM32 microcontroller. Section 5 reports tuning of MPC and discusses results of experiments in which the discussed MPC scheme is compared with the classical PID and LQR controllers. Finally, Section 6 summarizes the whole article.

Ball-on-Plate Process
This work is concerned with an original ball-on-plate laboratory system built at the Warsaw University of Technology and shown in Figure 1. Its construction details are given in [40]. In short, it includes: the touch pad, two digital servomotors, two servo arms and two servo rods, the microcontroller development board and some additional elements. The process has two manipulated and two controlled variables. The Pulse Width Modulation (PWM) signals are used to control the digital servomotors. The plate rotates around the X and Y axes. Two signals that define the ball position on the top panel are the controlled variables. The actual ball position on the resistive touch panel is determined by two Analog to Digital Converters (ADCs). The STM32 F401C Disco microcontroller development board is used for implementation of control algorithms and communication with the PC computer (it is only used for saving the data and plotting the results).
Provided that friction and air resistance forces are neglected as well as angular velocities of the surface plate are low, the balance of the forces on the X axis is Translation, rotation and gravity forces for the X axis are where x ball denotes the ball position along the X axis and Φ denotes the tilt angle of the plate in relation to the X axis. Similarly, for the Y axis, we have where the forces are F ry (t) = 2 5 mÿ ball (t), F gy (t) = mg sin Θ(t), where y ball denotes the ball position along the Y axis and Θ denotes the tilt angle of the plate in relation to the Y axis. Using the forces (2)-(4) and (6)-(8), the model Equations (1) and (5) becomeẍ y ball (t) = 5 7 g sin Θ(t).
Let φ and θ denote rotation angles of the servo arm related to the Φ and Θ plate tilts, respectively. The relations are sin where d = 0.024 m is the servo arm length, L x = 0.165 m and L y = 0.135 m stand for distances between the point of attachment of the servo rod to the plate and the cross joint for X and Y axes, respectively. The values of d, L x and L y are constant and do not change in time. To remove nonlinearity, we use the approximations sin φ ≈ φ, sin θ ≈ θ. It may be easily verified that for the angles −20 • ≤ θ ≤ 20 • and −20 • ≤ φ ≤ 20 • , accuracy of the approximation used is very good. Using Equations (11) and (12), the model (9) and (10) becomes where C x = 5 7 g d L x = 1.0189, C y = 5 7 g d L y = 1.2453. Equations (13) and (14) are expressed in the form of the classical linear continuous-time state-space model where the state, input and output vectors are The model matrices are The discrete-time version of the model (15) and (16) is where the model matrices are and T s denotes the sampling time.

Fast Model Predictive Control
Let u = [u 1 . . . u n u ] T , x = [x 1 . . . x n x ] T and y = y 1 . . . y n y T be the vector of process inputs (manipulated variables), the vector of states and the vector of outputs (controlled variables), respectively. For the considered process, n u = n y = 2, n x = 4. At each sampling instant k of MPC, the following vector of increments is calculated [14] . . .
where N u is named the control horizon. The increments in Equation (22) are: The decision variables of MPC (22) are computed on-line as the result of minimization of the performance cost-function The first part of the cost-function measures predicted control errors over the prediction horizon N. The vectors y sp (k + p|k) andŷ(k + p|k) denote the required set-point of the controlled variables and the predicted vector, respectively, both for the sampling instant k + p and calculated at the instant k. The second part of the cost-function measures changes of the manipulated variables, which usually should be penalized. The weighting matrices Ψ p = diag(ψ p,1 , . . . , ψ p,n y ) and Λ p = diag(λ p,1 , . . . , λ p,n u ) are of dimensionality n y × n y and n u × n u , respectively. Having computed the vector (22), only the increments for the current instant are applied to the process. The state and output process variables are then measured (or estimated) and the whole computational task is repeated at the next sampling instant.
As proved in [14], when the state-space linear model (19) and (20) is used for prediction, the predicted trajectory of the controlled variables, which is a vector of length n y N . . .
is given by the the following formulâ where and the matrices of dimensionality n x N × n x are In this work, a very efficient state and output disturbance model introduced in [14] and thoroughly discussed in [39] is used. Conversely to the classical augmented state approach [41][42][43], it does not require an extension of the state vector. The state disturbance vector is computed as the difference between the measured or observed state vector, x(k), and the state variables calculated from the state model (19) The output disturbance vector is computed as the difference between the measured output vector, y(k), and the corresponding values calculated from the output model (20) The matrix I y = [I y . . . I y ] T , where I y is the matrix of dimensionality n y N × n y whose all entries are 1. Using the predicted trajectory (25), the minimized MPC cost-function (23) may be rewritten in the following vector-matrix form where the set-point trajectory is the vector of length n y N Typically, minimization of the MPC cost-function (30) is performed subject to constraints. The most useful ones include magnitude and rate of change of the manipulated variables where u min , u max , u min and u max are vectors of length n u . In this work, we derive a fast version of the state-space MPC controller [14]. A similar approach is discussed in [37] for processes described by simple discrete step-response models and difference equations. Minimization is performed without any constraints, but they are taken into account afterwards. Considering that the cost-function (30) is quadratic with respect to u(k), the optimal increments of the manipulated variables for the current sampling instant are calculated analytically, without on-line optimization where the matrix K n u of dimensionality n u × n y N is Having calculated the unconstrained vector u(k|k) from Equation (34), it is projected on the admissible set determined by the constraints (32) and (33) and the results are applied to the process. The projection procedure is for manipulated variables, i.e., for n = 1, . . . , n u . Let us stress the fact that the vector K n u is calculated off-line for given model parameters and tuning coefficients of MPC. Hence, the explicit control law (34) depends only on precalculated parameters, the current set-point vector, estimations of the state and disturbance variables as well as on the value of the manipulated variables at the previous sampling instant.

Hardware Set-Up
In the experiments described below, the STM32 F401C Disco development board is used as the hardware platform for implementation of control algorithms. The considered development board offers all functionality required to develop a microprocessor-based embedded control system. Therefore, no other circuit boards are used in the system. The board uses the Cortex M4F core running at 84 MHz clocking and offers, among others: the Floating Point Unit (FPU), 256 kB flash memory and 64 kB SRAM memory. The microcontroller has a sufficiently large amount of RAM and the hardware FPU. The memory requirement is crucial since the MPC algorithm performs multiplication of matrices of large dimensionality. The STM32 F401C Disco contains all the I/O pins needed for the project.
The STM32 F401C Disco microcontroller development board is also responsible for communication with an external PC computer (using the serial port). This function is used only to send data later used to create plots presented in this work. All the calculations used in control algorithms are performed by the development board. Because of it, the floating point unit and a significant amount of memory are important features of the chosen microcontroller. The considered development board offers all necessary I/O pins, i.e., two PWM outputs to control the servomotors and two ADCs to read the ball's position in two dimensions.
The digital Hi-tech HS 5485 HB [44] servomotors are used as the actuators. The choice has been motivated by the fact that servos do not require the use of an additional control loop for engine rotation. Additionally, their relatively low cost is also an essential advantage. The servomotors are equipped with a proportional controller. The Pulse Width Modulation (PWM) signal is used to control them, the pulse cycle is equal to 20 ms and pulse width is in the 900-2100 µs range. Their rotational range is 60 • , the maximum speed is 0.2 s/60 • .
The Green Touch 15 4-wire resistive screen pad is used [45] for detection of the ball location. In general, there are a few methods that may be used for touch detection: capacitive, infrared, surface acoustic wave and resistive. The resistive touch panel has been chosen because of its advantages: the ball may be made of any material, resistance to water and dust pollution and low cost. The main advantage, however, is the fact that the resistance touch screen is very easily controlled via the microcontroller's pins. The ADCs simply read the current X and Y position of the ball. The ball position is determined by measuring horizontal and vertical resistances of the plate. The main drawback of the used sensor is the fact that the touch panel is very sensitive to disturbances. The pressure acting on it must be sufficient. The ball's mass should be not lower than 70 g. If the force is too small, two different effects can be observed: no touch is detected and the sensor returns Not a Number (NaN) signal or the ball is temporarily detected in a different place, other than its actual location. If the ball is lying on the plane without motion, both effects occur very rarely. However, when the ball is constantly rolling on the surface of the plate, measurement errors appear quite often, even for balls that have a weight 100 g or more. It is due to the fact that ball sometimes bounces and breaks away from the plate surface for a short moment. In other moments the tilt of the plate is large enough to reduce the component of the gravity force perpendicular to the plate to a value that makes the pressure force acting on the screen not sufficient. The following filters are used to reduce the effects of the mentioned phenomena: • A filter that finds out when the sensor stops detecting the ball. The touch panel then returns position values zero or NaN. When the filter detects such a value, it is ignored and the last meaningful number is taken as the current position value. • A filter that finds out when the sensor detects an incorrect ball position. If the current position change is greater than a certain threshold, it is ignored. • An arithmetical filter that collects n measurements of the ball position and calculates the ball position as: The ADCs of the microcontroller operate with much higher frequency than the developed controllers. Therefore, it is possible to collect more than 100 measurements in one control loop. The value n = 50 has been chosen experimentally, as the smallest one that is able to eliminate all measurement errors. This filter is necessary for the system to work properly. Without it, the measurement errors destabilize all control algorithms. • A median filter, which could be used as an alternative to arithmetical filter described above. • Additionally, a Kalman filter has been implemented in the system. Its main role is to serve as an observer that estimates the unmeasured ball velocity value later used in the MPC algorithm. However, during the experiments it was observed that using Kalman filter's estimates of the ball position instead of the true position measurements, helps to improve the quality of control slightly, due to elimination of small interferences that slipped through the arithmetical/median filter. In other words, the estimated position signal is slightly smoother than the measured signal.
Width of the panel is 322 mm, its height is 247 mm, which determines the size of the whole process.
The pins of the microcontroller used to connect it to sensors and actuators are: • pin PB10 is configured as TIM3 timer's channel 3 and used to send PWM control signal to the X axis servomotor, • pin PA1 is configured as TIM3 timer's channel 2 and used to send PWM control signal to the Y axis servomotor, • pins PA2, PA3, PB0, PB1 are connected to the resistive touch panel, their configuration change in time as described in Table 1.

Software System
The software system offers implementation of three control algorithms: PID, LQR, MPC. The code is written in the C programming language. Keli µVision 5.0 is used as a programming environment. Additionally, other tools are used to simplify programming tasks: STMCube MX to configure the microcontroller's clocks frequencies and I/O pins, the STM-Studio to transfer data between the microcontroller and an external PC, MATLAB to find the controllers' settings.
An external PC computer is used only to archive and visualize various signals and data. All calculations are performed using the microcontroller. Matrix and vector multiplications are the most computationally demanding. The size of the matrices in the MPC controller is correlated with the sampling time. Therefore, it is important to choose an adequate sampling period. A short sampling time provides theoretically better control but requires long horizons and a lot of calculations whereas a longer one allows using shorter horizons and results in a less computationally demanding solution, but the control quality may be insufficient. Both prediction and control horizons have an impact on the dimensionality of vectors and matrices, the latter one determines the number of calculated decision variables.
The structure of the real-time software system is depicted in Figure 2. It uses three timers. Discrete-time control algorithms must work in a strict time regime. The sampling time is 50 ms. Timer 3 is therefore set to work with the frequency of 20 Hz. As described earlier, the ball position sensor tends to produce many measurement errors. At each cycle, the timer routine begins with collecting n measurements of ball position from the touch panel via the ADCs of the microcontroller. The converters are sampled with higher frequency; therefore, during the 50 ms of the control loop, many measurements can be collected. Depending on the user's preference, the arithmetic filter or the median filter is then used to generate the filtered current position of the ball as described by Equation (37). The best results are achieved when n = 50. For lower values of n, measurement errors are frequent. For larger values, the measurements take too much time and cannot be performed in one control loop cycle.
Sometimes, the sensor is not pressed with force high enough and a false ball position is obtained. An additional function checks if the current measurement does make sense in relation to past measurements. Furthermore, the Kalman filter is used to generate estimates of the ball position and velocity based on the filtered measurement as well as the model (19) and (20). The control algorithm chosen by the user generates new control values. Finally, the ball position measurements are updated.
The servomechanisms' control signals have a specific frequency, typically 50 Hz. Therefore, timer 2 is used. Its only purpose is to send the PWM signals from two of its channels to servomechanisms with duty cycle calculated based upon the values generated by the chosen control algorithm.
Timer 4 changes the set position of the ball. Its frequency varies depending on the reference trajectory chosen by the user. If the timer is disabled, the user can change the set-points by pressing a button.  (34)). It is important that all vectors and matrices related to the linear model are constant, they are calculated off-line, i.e., K n u , C, A, V and B. Only the set-point vector, y sp (k), the current state estimation, x(k), the manipulated variables at the previous sampling instant, u(k − 1), as well as the output and state disturbance estimations, d(k) and ν(k), respectively, are updated online. Next, the calculated decision variables are projected onto the admissible set, determined by the constraints. For this purpose the procedure characterized by Equation (36) is used.

Results of Experiments
Three controllers have been implemented: MPC, PID and LQR. In all cases, the analytically calculated manipulated variables are projected onto the admissible set determined by the constraints Tuning of the MPC controller starts with the selection of the prediction horizon. It should be long enough to cover the dynamic behavior of the process. However, if the horizons are too long, the matrices sizes rapidly increase as shown in Table 2, which results in longer computation time and memory requirement. The control horizon cannot be too short since it gives insufficient control quality while its lengthening increases the computational burden. The horizons N = 40 and N u = 5 have been found experimentally. MATLAB simulations have been performed and next the horizons have been verified in real process. The process of tuning is the following: • constant weighting coefficients λ p,m = 1 are assumed, • the same prediction horizon N and control horizon N u are used; if the controller is not working properly, both horizons are lengthened, • the prediction horizon is gradually shortened, and its length is chosen (with the condition N u = N ), • the effect of the changing the length of the control horizon on the resulting control quality is assessed experimentally (e.g., assume successively N u = 1, 2, 3, 4, 5, 10, ..., N). The shortest possible control horizon is chosen. Next, the weighting coefficients must be tuned. Because the objective is precise control in both X and Y axes, ψ p,n = 1 for all p = 1, . . . , N, n = 1, . . . , n y . Hence, the penalties λ p,n for all p = 0, . . . , N u − 1, n = 1, . . . , n u must be determined. Let us consider Figure 3 which shows trajectories obtained for the MPC1 algorithm with relatively small values λ p,1 = 0.35 and λ p,2 = 1.1. The process outputs very quickly follow changes of the set-points, but there are some small oscillations of the outputs and the manipulated variables change very rapidly. Let us consider Figure 4 that shows trajectories obtained for the MPC2 algorithm with relatively large values λ p,1 = λ p,2 = 500. As a result, changes of the manipulated variables are very small, but control accuracy is insufficient, i.e., overshoot is high and the setting time is long. It can be noticed that the ball tends to stop its movement a few millimeters under or over the set-point. The mild changes in control signals are then unable to overcome the static friction force affecting the ball for a few seconds. After that time, the ball moves and stops on the other side of the set-point. This cycle then continues and as a result, the set position is never reached. After tuning, the best results are achieved for λ p,1 = 0.8 and λ p,2 = 5 in the MPC3 algorithm. The resulting process trajectories are depicted in Figure 5. In this case, the setting time is short, there are no oscillations and no overshoot.  It is an interesting question whether the simple PID controller can give the control quality comparable with that possible when the well-tuned MPC3 scheme is used. The PID control system structure is shown in Figure 6. It consists of two independent classical single-loop PID controllers. The first of them controls the ball's x position by manipulating the PWM signal of the first servo. The second one controls the y position by the PWM signal of the second servo. Two single-loop PID controllers may be used assuming that the interaction between the plate rotation around X axis and ball position y is negligible. The same applies for the rotation around Y axis and ball position x. For each sub-system, an independent PID controller has been tuned using the Ziegler-Nichols method and next readjusted experimentally. Let K, T i and T d denote the proportional gain as well as integration and derivation time constants, respectively. The P controller is unable to stabilize of the system. Regardless of the used parameter K, the ball oscillates endlessly. Results for the PI controller are shown in Figure 7. Its tuning parameters are: K x = K y = 0.06, T ix = T iy = 5. It gives strong overshoot and slowly fading huge oscillations. The required set-points are never reached. Results for the PD controller are shown in Figure 8. Its parameters are: K x = 0.09, K y = 0.07, T dx = T dy = 0.6. In comparison with the PI structure, it makes it possible to obtain smaller oscillations and reduced overshoot, but the steady-state error is inevitable. Finally, the PID controller is considered with the parameters: K x = 0.09, K y = 0.08, T ix = T iy = 1.5, T dx = T dy = 0.6. The obtained trajectories are shown in Figure 9. The PID controller makes it possible to eliminate the steady-state error. Unfortunately, let us stress the fact that the PID controller gives much worse control than the MPC3 scheme ( Figure 5). In particular, the setting time is much longer, and significant overshoot is present.
PID and PD controllers give very rapidly changing control signals. If the calculations are performed using the ball position measurement, the derivative part causes the whole system to vibrate strongly, even when the ball reaches the set-points. This problem is eliminated using an estimate generated by the Kalman filter instead of the measurements.
The PID controller turns out to be very sensitive to measurement errors. Let us consider Figure 9 and t = 55 s. A small measurement error causes the ball to move significantly away from the set-points, in particular for the y ball output. Errors of the same order do not affect the MPC and LQR controllers.  Finally, the LQR controller is evaluated. Its settings are selected in two ways: (a) chosen experimentally using the pole placement method, (b) optimized in MATLAB using the DLGR function. For the poles 0.9404 − 0.0019i, 0.9404 + 0.0019i, 0.9404 − 0.0019i, 0.9404 + 0.0019i of the closed-loop system, the controller's (LQR1) gain matrix is In the first optimization approach (LQR2), the weighting matrices Q = diag(7, 0, 7, 0), R = diag(1, 1) give In the second optimization approach (LQR3), the weighting matrices Q = diag(15, 0, 15, 0), R = diag(1, 1) give The obtained trajectories are given in Figures 10-12 for the controllers LQR1, LQR2 and LQR3, respectively. In general, the manipulated variables change slowly. It is observed especially for the LQR2 and LQR3 controllers. No overshoot in a ball position signal is observed for those settings. However, the setting time is approximately two times longer than for the MPC3 algorithm ( Figure 5). The LQR1 controller allows a shortening of that time, but overshoot appears. For the set-point tracking task, the LQR controllers perform much better than P, PD, PI, and PID ones, but still, the results are worse than in the case of the MPC3 scheme.
Let us compare all considered controllers numerically. Table 3 specifies control errors (the sum of squared control errors) [46] for all algorithms. The obtained values confirm observations possible on the basis on the process trajectories, i.e., the MPC3 algorithm is the best one. Table 4 specify the average and maximal setting times for all algorithms. Once again, the MPC3 algorithm gives the best results. Let us stress the fact that in the case of PI, PD, LQR1 and MPC2 controllers, it is impossible to determine the setting times for the assumed set-point changes, i.e., these control algorithms do not result is sufficiently fast control for the used changes of the set-points.   The calculation time for the explicit MPC control law (Equation (34)) and the projection procedure (Equation (36)) is 4.86 ms. Although it is longer than the time required by PID and LQR controllers, 0.29 ms and 0.27 ms, respectively, but it is important to point out that the obtained value is very short when compared to the sampling time used (50 ms).

Conclusions
This work discusses an application of the fast state-space MPC algorithm to the ballon-plate laboratory process. Moreover, software and hardware implementation details are discussed; the STM32 microcontroller is used for calculations. The considered MPC algorithm is characterized by a very short calculation time (in comparison to the sampling period). This is because the manipulated variables are found on-line using explicit formulas with parameters calculated off-line, no real-time optimization is necessary. The simplicity of calculations is possible because in MPC an approximate state-space linear model is used, nonlinear terms are neglected. Secondly, the constraints are not taken into account during calculation of the manipulated variables, but afterwards, i.e., the unconstrained optimal solution is projected onto the admissible set determined by the constraints. When applied to the ball-on-plate process, the considered MPC algorithm works much better than the classical PID and LQR controllers. It is necessary to stress that all three controllers compared in this work are linear. The MPC and LQR controllers are multivariable, i.e., the manipulated variables are calculated taking into account all interactions of process variables and the same linear model is used for development of the control law. Conversely, the PID control scheme is comprised of two classical single-loop controllers.
The discussed MPC algorithm uses for prediction a simplified linear model of the process. In future, it is planned to develop nonlinear MPC approaches [47,48] and evaluate their performance.