MPC Penalties

What should I understand for "Penalty on Move" and "Penalty on Error"? Is there a way to calculate these?

  • The Penalty on Move is calculated based on the dynamics of the problem and is usually a good first guess. The Penalty on Error is initially set to a default value of 1. They both work to improve the performance of the controller, especially in the face of imperfect models.
    Increasing the POM of an MV will make the action of that MV less aggressive. If an MV seems to be cycling or moving to aggressively, then increase the POM. I find that it is best to make changes larger or smaller by a factor of 2. Occasionally the POM will be too large and the MV seems almost dead. In that case reduce the POM. always observe after making a change.
    I have rarely seen the need to adjust the POE of a Process Output. My colleague and fellow contributor to this forum has seen some benefits with changing POE. It works on a single Process Output rather than an MV. Increasing the POE will make it try harder to reach its constraint target. Decreasing POE will allow it to give up more easily. Think in terms of relative importance and increase the POE on variables that are not achieving the control objective and reduce it on those that are not as important such as level in a surge tank. For Process Outputs that are not being optimized, it doesn't make much sense to me to worry about it.
    Before MPC Plus, POM and POE required a download to change. In MPC Plus they can be modified on-line.
    Let me know if this is not what you were seeking.

  • In reply to Lou Heavner:

    Books On Line (BOL) has some good information on the topics of Penaltly on Move (POM) and Penalty on Error (POE). See the topic "Tailoring MPC Control Peformance". Note that you can install BOL on your non-DeltaV computer for easy access. The actual calculation that is used in Predict or PredictPro to caculate the "default" POM is PMi = 3(1+DTi/20+ Gi*DTi/40)


    DTi is the deadtime/module execution period (in MPC scans) for Mvi -> Cvi relation

    Gi – gain (no units) for Mvi ->Cvi relation

    However, this is a slider bar in the Predict or PredictPro "controller generation" step that you can move from Performance (lowest POM's) to Robust (highest POM's). I usually check the extremes of the POM's from this setting to get a feel for my own changes to POM's. Note that you have to be in the "Expert" mode to change the POM's or POE's.

    As Lou says, I use POE in a range of 0.8 - 1.2 to put more emphasis on getting a control or constraint variable to its target setpoint. I have found that a maximum POE of about 0.5 seems to work well on integrating variables. There are a few cases were I want to a SLOWLY optimize an MV but I want it to be able to move the MV fast for to obtain other CV and LV targets. In this case, I create a "shadow" CV for the MV, and put a small (e.g. 0.1) POE but a leave the POM low.

    Hope this helps!
  • In reply to James Beall:

    Let me add a bit more about my statement "I use POE in a range of 0.8 - 1.2 to put more emphasis on getting a control or constraint variable to its target setpoint. " Think of POE as a multiplier on the error between the SP and PV of a CV or LV in the MPC. A higher POE (e.g. 1.2) would create more aggressive MV action by the MPC to get the PV to the SP. Conversely, a lower POE (e.g. 0.8) would create less aggressive MV action by the MPC to get the PV to SP. So, use a POE of 1.2 when you want tighter control to SP and 0.8 when you want less aggressiveness.