Advanced control blocks > Model Predictive Control Professional (MPCPro) function block

Model Predictive Control Professional function block execution

When implementing a multivariable control strategy, the process's Manipulated and Disturbance inputs and Controlled and Constraint outputs are defined in the MPCPro function block. This block can replace conventional implementations involving decoupling, feedforward control, override control, and complex dynamics. In addition, the MPCPro block's economic optimizer can be used to meet a configured objective based on the cost or profit associated with process inputs and outputs.

The target mode of the MPCPro function block and the status of the block's inputs determine the actual mode of the MPCPro block and the output status. In addition, because of the communication between the downstream function blocks and the MPCPro function block, the previous status of the downstream blocks influences the mode of the MPCPro block.

The MPCPro algorithm executes in the following order:

  1. It evaluates the actual mode based on target mode and the status of block inputs.

  2. It compares the current value of predicted process Control and Constraint parameters to those calculated by the model and updates the model.

  3. It determines the optimum Manipulated parameter values that maximize profit without violating process input or constraint limits (based on the objective selected by the operator). It then calculates the associated value of the process outputs.

  4. The MPCPro controller executes using the target value of selected Control and/or Constraint target values associated with the optimum manipulated parameter targets. Execution rate can be automatically adjusted based on production rate to compensate for transport delay.

  5. It determines the status and value for block outputs update. Calculate variability and time at or above limits for performance monitoring.

The processing done at each step of execution is described in the following sections.

Evaluate actual mode

The MPCPro block actual mode is based on the following:

  • Target Mode

  • Status attribute of the MV back calculation input parameter

  • Status attribute of CV, AV, and DV input parameter

  • Status of remote setpoint value(s) and time since updated

  • Failure Action configured for MV, CV, AV and DV

  • STATUS_OPTS selection for treating Uncertain as Good or Bad

  • State of MPCPro control generation

Based on these conditions, the actual block mode must be calculated before the MPCPro algorithm executes. The actual mode influences the path taken in the MPCPro algorithm execution.

Mode evaluation order

The actual mode of the MPCPro block must be determined after all inputs are read but before the MPCPro control algorithm is executed. The following figure shows the conditions that are determined in the block before the actual mode is calculated.

Figure: Block conditions before actual mode calculation

The conditions that impact mode are evaluated before executing the MODE calculation. These conditions are evaluated in the following order:

  1. Not Generated — If the control has not been generated for this block, then the Generate flag is set. Otherwise this flag is cleared.

  2. Bad Control Input:
    • If the status of one or more Control or Constraint parameters is Bad, Good Constant, or Uncertain (and the status option is configured to treat Uncertain as Bad) AND the Fail Condition for that input is Manual, then the Bad Control Input flag is set. Otherwise, the Bad Control Input Flag is cleared.

    • If the input is Bad , Uncertain (and treated as Bad) or Good Constant, then take the configured fail action.

    • If Simulate is defined as the Fail Condition, or the input has a status of constant (analyzer or manual input) then the associated model value from the last execution is passed to the MPCPro algorithm as the measured input. A Simulate timer is set (if not already set). Reset the Simulate time if none of the Control inputs are being simulated.

  3. Simulate Too Long — The simulate timer is checked to see if it is set or cleared. If the Simulate timer exceeds the timeout limit based on time to steady state, then the Simulate Too Long flag is set. Otherwise, the Simulate Too Long flag is cleared.

  4. Bad Disturbance Input — If the status of one or more Disturbance parameters is Bad or Uncertain (and the status option is configured to treat Uncertain as Bad) AND the Fail Condition for that input is Manual, then the Bad Disturbance Input flag is set. Otherwise, the Bad Disturbance Input flag is cleared. If a Disturbance input is Bad and Hold Last Good is defined as the Fail Condition, then the input value used in the MPCPro control is not updated.

  5. Bad Downstream — If no handshake has completed or the handshake associated with one or more of the Manipulated process inputs is incomplete (as a result of the back calculation inputs having a status of Bad or a status of Good Cascade Not Invited) and the associated Fail Condition for that input is Manual, then set the Bad Downstream flag. Otherwise, the Bad Downstream flag is cleared. If the handshake is incomplete and the Fail Condition is hold last good, then the last good back calculation input is passed as the current position of the MV to the MPCPro algorithm.

  6. Remote Unavailable — If the target mode of the MPCPro block is RCAS and the handshake with one or more of the RCAS inputs is not complete, then the Remote Unavailable flag is set. Otherwise, the Remote Unavailable flag is cleared.

  7. Remote Timeout — If the actual mode of the MPCPro block is RCAS, then a remote timer is set (if not already set) for each RCAS input that has not been updated since the last execution. If any of the RCAS timers exceed the limit based on the time to steady state, then the Remote Timeout flag is set. If the actual mode of the block is not RCAS, then the remote timers are reset.

  8. Test Active — Handshake is complete with downstream loops that will be required for automated testing and process identification is ready to start. While testing is active, the mode of the MPCPro block transitions to LO to indicate to an operator that one or more MPCPro outputs are automatically adjusted.