The MPC controller minimizes future control errors and control moves. The control calculations assume that your process response is reasonably linear over its normal operating range. If the process model has been accurately identified during testing, the default controller settings used in controller generation should provide stable operation and acceptable performance.
If you would like a faster or slower control response, select the Expert option. This allows you to independently create the model and generate the controller. After the model is created, you can make adjustments to it before it is used in controller generation. Also, you can examine and modify the default parameters that are used in controller generation to meet your specific application requirements.
When developing a typical MPC application, keep in mind that the default settings for MPC controller generation will provide a good response for most applications. Also, make sure that you apply setpoint trajectory (using the setpoint filter) if you observe an oscillatory response.
The following sections provide detailed information about procedures that will assist you in achieving the level of control performance you need for your application:
After you have used DeltaV Predict to identify a model of your process, review the model to ensure that it reflects your knowledge of the process. It is recommended that you include the following steps in your review:
The MPC controller is generated from the process model and controller design parameters. You can use the Penalty on Move (PM) and and Penalty on Error (PE) parameters to adjust the robustness of control and the speed of response, respectively. You can adjust these parameters from the dialog that appears after you select Generate Controller.
The following topics provide detailed information about the PM and PE parameters:
Sensitivity of control to changes in process dynamics is determined by the controller robustness. The parameter used in controller generation that most impacts robustness is the Penalty on Move (PM) parameter. The PM controls how much the MPC controller is penalized for change in the manipulated output (MV). The Penalty on Move parameter is defined independently for every MV. Large PM values result in a slow controller with a wide stability margin. With such settings, the control is relatively insensitive to change in either the process or the model errors. Small PM values result in a fast controller with a narrow stability margin. When the model used in generating the control accurately reflects the process gain and dynamics, changing the PM value does not affect the controller performance significantly. However, a difference in the controller performance might occur if the model does not match the real process. To ensure a stable and responsive MPC operation when the model is within ±20 percent accuracy, the following setting for the PM value is recommended.
PMi = 3(1 + DTi/20 + Gi * DTi/40)
where:
DTi is the deadtime/module execution period (in MPC scans) for Mvi -> Cvi relation
Gi - gain (no units) for Mvi -> Cvi relation
When you select Generate Control, the values of the PM parameters shown in the parameter dialog were calculated as described above. In most cases, the calculated settings for the PM give good control, even if the model error is greater than ±20 percent. It is recommended that you use the default settings. Only change these settings if the online operation of MPC does not meet your control objectives.
The above figure shows an example of a setpoint step response with a good model match. The PE equals 1, and the PM equals 4 (default).
To meet your application requirements, you can give higher priority to one Controlled Variable (CV). The Penalty on Error (PE) factor allows more importance to be placed on a specific CV. The default value for the PE is 1 for all CVs; this value should provide good control for most applications. You can change the PE from this default value to prioritize control action. However, you should not use it to change overall control performance. When you want more sensitive control for a specific CV, set the associated PE to a value greater than 1. If you want to relax control, set the associated PE to a value less than 1. Typically, it is recommended that you only change the PE after adjusting the MPC controller using the Penalty on Move (PM) and testing in simulation. If the control strategy clearly indicates that one of the controlled variables should be of lower priority, you can set the associated PE to a value of 0.8 initially. After testing in simulation, you can adjust the PE value over a range of 0.5-1.5. Only move outside this range after verifying controller operation on the real process. The primary criterion for adjusting the PE is acceptable variability on a specific controlled parameter.
The above figure illustrates a setpoint step response with the same PE and PM as in the previous figure. However, process gain is set at 2.5 times the model gain.
The above figure shows the same process-model mismatch as in the previous figure, except that the PM equals 20 (five times the default setting).
It is recommended that you not change default values of the other parameters in the Generate Control window.
From the detail display for each MV, you can specify the maximum limit for changes in the MV. It is recommended that you specify this limit so that control moves are not limited during normal operations. You can do so by setting the limit to the output span of the MV. Responsive control with little or no overshoot should be observed when the defaults parameter values for controller generation have been used. It is recommended that you change the simulated process gain by ±50 percent and observe the response to verify that a satisfactory response is still achieved.
For some processes, you might need to set the maximum MV move based on process equipment limits. After you make these adjustments, you should not observe a significant difference in MPC performance. However, if you notice that the control response has changed, you might consider relaxing the MV move limits or increasing the PM settings.
You can modify the setpoint trajectories that are used in the control online. Adjust the associated setpoint filter from the detail display of the MPC Operate interface. Modify the setpoint trajectory through this filter to increase overall controller robustness after controller generation and download. If a specific controlled parameter exhibits an oscillatory response, you can increase the setpoint filter to provide more stable control.
The above figure shows the same process/model mismatch and controller generation settings as in the figure entitled Setpoint Step Response for Model Mismatch. The controller performance is adjusted online by a setpoint filter that equals 120 (prediction horizon or PH) for the first step response and 240 (2 times PH) for the second step response.
It is recommended that you apply the following rules when adjusting the setpoint filter time constant:
You can use the DeltaV Predict simulation environment to evaluate the impact of changes in the PM and PE. To do so, you must modifiy these parameters and then generate the control. Then, you can test the new control using the simulation environment provided by DeltaV Predict. Use the following guidelines to adjust these parameters:
After testing the MPC block in the DeltaV Predict simulation environment, you can download the module containing the MPC block to the controller and use it to control the process. The performance should match what you observed when testing the control in this simulation environment. However, if the process model identified by DeltaV Predict does not accurately reflect the process gain and dynamics, the performance may not be the same as seen in simulation. In such cases, you can adjust controller performance using the following rules:
For every control scan, MPC validates the process model's output prediction by comparing it to the measurement. Normally, there is some disparity caused by a model mismatch or by unmeasured disturbances. The MPC prediction is corrected to match the current measurement. As a result, the next MV move accounts for the correction; this is in essence MPC feedback action.
Full error correction is beneficial for unmeasured disturbance compensation when the model is good. If the model time constant or a particular dead time mismatch exists, complete prediction compensation to match the measurement could deteriorate the dynamic response. Therefore, a filter is applied with a factor that defines which fraction of the error is compensated at one scan.
The default filter factor value is 0.75. This value works well for the majority of applications. Expert users can adjust the filter factor in the range of 0.4 to1.0. Increasing the filter factor causes better disturbances compensation. Filter factor values close to 1.0 should be avoided for models with a significant dead time mismatch.
The filter factor is a hidden parameter; the path to it is: MODULE/MPC BLOCK/MOD_CORR_FACTOR[#], where # is the CV number. One way to change and preserve this parameter during an upload or download is to use a simple calculation block in the module that writes the parameter to the MPC function block. The calculation expression for one filter factor CV[1] can be expressed as:
'//MPCPRO/MPC-PRO1/MOD_CORR_FACTOR[1]' := 1.0;
OUT1 := '//MPCPRO/MPC-PRO1/MOD_CORR_FACTOR[1]' ;
To minimize calculations, set the block execution to once every 10 or so module scans.