Linear Model Predictive Control

Model Predictive Control, or MPC, is an advanced method of process control that has been in use in the process industries such as chemical plants and oil refineries since the 1980s. Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification.

These models are typically in the finite impulse response form or linear state space form. Either model form can be converted to an APMonitor for a linear MPC upgrade. Once in APMonitor form, nonlinear elements can be added to avoid multiple model switching, gain scheduling, or other ad hoc measures commonly employed because of linear MPC restrictions.

Example Model

 ! new linear time-invariant object
 Model control
   Objects
     mpc = lti
   End Objects
 End Model

 ! Model information
 ! continuous form
 ! dx/dt = A * x + B * u
 !     y = C * x + D * u
 !
 ! dimensions
 ! (nx1) = (nxn)*(nx1) + (nxm)*(mx1)
 ! (px1) = (pxn)*(nx1) + (pxm)*(mx1)
 !
 ! discrete form
 ! x[k+1] = A * x[k] + B * u[k]
 !   y[k] = C * x[k] + D * u[k]
 File *.mpc.txt
   sparse, continuous  ! dense/sparse, continuous/discrete
   2      ! m=number of inputs
   3      ! n=number of states
   3      ! p=number of outputs
 End File

 ! A matrix (row, column, value)
 File *.mpc.a.txt
   1  1  0.9
   2  2  0.1
   3  3  0.5
 End File

 ! B matrix (row, column, value)
 File *.mpc.b.txt
   1  1  1.0
   2  2  1.0
   3  1  0.5
   3  2  0.5
 End File

 ! C matrix (row, column, value)
 File *.mpc.c.txt
   1  1  0.5
   2  2  1.0
   3  3  2.0
 End File

 ! D matrix (row, column, value)
 File *.mpc.d.txt
   1  1  0.2
 End File