MPC Pro: Does the Robustness <--> Performance slider in the optimizer have any effect for SISO applications?

We recently converted an old MPC SISO application from an "MPC" block to an "MPC Pro" block. It's working better than the old block, which was having issues with unmeasured disturbances. These same disturbances are causing some cycling with the new MPC Pro block.

When building the controller from a model (in "Expert" mode at least) there's a slider for "Robustness / Performance" in the "Predict" (model & controller building) application. I assume this one has some effect on the "gain" or aggressiveness of the MPC Pro controller. What about the slider in the "optimizer"? If I have an SISO application with an objective to "maintain setpoint" does the optimizer have any impact on how aggressive the response is?

Any thoughts on how to "tune" MPC Pro for a integrating CV for feedback control of unmeasured disturbances would be welcome.

Best Regards,

John

9 Replies

  • The slider appears in 2 places as you have observed. One manipulates the initial Penalty on Move (POM) weighting factors. If the user is "expert", he can further adjust the POMs as desired for good stable response. You can look at the POMs with with the slider set to maximum robustness and maximum performance to see the recommended range, but ultimately the controller behavior may suggest higher POMs than even what is recommended at maximum robustness. The Optimizer slider is similar but different. The optimizer outputs are targets for working setpoints in the MPC controller. when the target changes, the slider can request that a small or large percentage of the change be requested per execution. A more robust setting will execute a smaller change per scan.

    Dealing with an integrating CV is another issue. We have seen mixed results with integrators in MPC and MPC-Pro. The issue is related to how it handles integrators when calculating a steady-state solution. If you can use MPC-Plus, many of the issues with integrators are better handled. If not, selecting a longer TSS can often improve performance.

    Unmeasured disturbances are always a challenge. This is where the error correction may come into play. For all variables, the model correction biases the prediction vector. The relevant parameter is the model correction factor, which has different default values in different versions. Some MPC products from other vendors don't make this parameter available to the user and set it with a value of 1.0 or so I am told. In our latest versions, the default is 0.75, but I usually change it to 0.9. For integrators, the model mismatch is at least partially due the integrating gain which produces a ramp. There is another parameter called the Rotation Factor, which modifies the error correction for integrators to blend a combination of bias and ramp rate adjustment to correct the prediction offset. The default value for the Rotation Factor in MPC was an order of magnitude less than in MPC-Pro or MPC-Plus. I have rarely had need to adjust it, except for MPC where I do increase it to match the MPC-Pro default.

    Tuning of MPC controllers is a process. First thing you want to do is adjust the POMs to achieve stable (non-oscillatory) response on an MV by MV basis. When the MVs are stable and yet responsive, you can observe if any Process Outputs are struggling. If they are, you may want to adjust the Penalty on Error (POE). Then you want to adjust the prices in the LP Optimizer to get the best response. You can try using the slider on the optimizer to further tweak the response, but I rarely do that. Finally, you can calculate the model error and even totalize it to see how good your models are. If the models or struggling, you might want to adjust the Model Correction Factor and Rotation Factor, but this is really a subtle thing. If the models are bad enough to tweak these parameters, it might be more profitable to work on improving the models. And that is why an unmeasured disturbance could argue for adjusting the parameters, since no model is going to describe an unmeasured disturbance.
  • In reply to Lou Heavner:

    Lou, thanks for the advice. The integrating variable is a pressure, which we think behaves like an integrator. But when I look at the step responses that are drawn, they look like lag + dead time. Will it help MPC to model this process as long time constant lags instead?
  • In reply to John Rezabek:

    John,
    As Lou says, the slider bar for the Optimizer slider bar on the MPC OperatePro screen is setting the aggressiveness on the LP Optimizer. Especially for the case of SISO, this doesn't change the response that you are talking about. There is a similar looking slider bar on the PredictPro application that sets the POM on the MV(s) IF the "Automatic" tuning is used. If you uncheck the "Use Automatic Settings" the slider in PredictPro has no impact and you must enter the POM.

    But, back to your basic question. With the MPCPro block for integrating variables, in PredictPro, I set the POE to about 0.5 and adjust the POM as needed. I use the "MPC SimulatePro" to test the tuning (where you can speed up the simulation). Note that this simulation provides a perfect model match so if the simulation does not oscillate but the real control does with the same tuning, you should check your model accuracy. Note that if the MPC tuning does not oscillate for a SP change, it should not oscillate for an unmeasured disturbance (unless the disturbance is oscillatory!).

    Note that with ONLY an integrating CV, you can set the time to steady state as short as ~2*Deadtime (subject ot 120 second minimum). So, if the true model of process is dead time plus first order lag, with (Dead Time + 4*Tau) >> 2* (Integrator Dead Time), the Tss of the self-regulating setup will be much longer and thus slower. If this is the case, I would keep the integrating model. Note that you could use the MPC SimulatePro inside PredictPro test both methods.

    Lot's to discuss! Good luck and let me know if you want to contact me directly.
    James
  • In reply to James Beall:

    One more setting for integrating CV’s. Set the SP_RANGE = 0.
  • In reply to James Beall:

    Gents thanks for the advice. I remember from James' presentation that one should try dramatic changes to POM.
    Adjusting penalty on move . . . is that done only at the time of controller generation or can it be "tuned" during execution?
  • In reply to John Rezabek:

    The POM and POE for the MPCPro (and MPC) block can only be changed offline in the PredictPro (or Predict for MPC), generated and downloaded. Both can be changed on-line for the V12 and later MPCPlus block (which must run in an APP Station or ProPlus). If you want to use MPC SimulatePro to check the response, be sure to close MPC SimulatePro, change the POM and/or POE, re-generate (don't have to download) and re-open MPC SimulatePro. MPC SimulatePro is a great tool! Yes, change POM by a factor (divide or multiply) by 1.5 or 2.
  • In reply to James Beall:

    What James said. Don't forget to make yourself Expert in the options and to uncheck automatic generation to change POM or POE offline.
  • In reply to Lou Heavner:

    Well, now that John will be making himself an expert, he should get ready for a lot more questions...

    Andre Dicaire

  • In reply to Andre Dicaire:

    I agree! EE365 community, meet , here for all (or most) of your Control and Advanced Control needs...

    Best Regards,

    Rachelle McWright: Business Development Manager, Dynamic Simulation: U.S. Gulf Coast