

In the ISA Mentor Program, I am providing guidance for extremely talented individuals from countries such as Argentina, Brazil, Malaysia, Mexico, Saudi Arabia, and the U.S. This question comes from Luis Navas.


Luis Navas’ Questions

For an MPC application I need to build a smoothed moving mean from a batch level to use as a controlled variable for my MPC, so the simple moving average is done as depicted below. However, I need to smooth the signal, due there is some signal ripple still. I tried with a low-pass filter achieving some improvement as seen in Figure 1. But perhaps you know a better way to do it, or I simply need to increase the filter time.

Figure 1: Old Level Oscillations (blue: actual level and green: level with simple moving mean followed by simple moving mean + first order filter)

Greg McMillan’s Initial Answer

I use rate limiting when a ripple is significantly faster than a true change in the process variable. The velocity limit would be the maximum possible rate of change of the level. The velocity limit should be turned off when maintenance is being done and possibly during startup or shutdown. The standard velocity limit block should offer this option. A properl Save & Exit y set velocity limit introduces no measurement lag. A level system (any integrator) is very sensitive to a lag anywhere.

If the oscillation stops when the controller is in manual, the oscillation could be from backlash or stiction. In your case, the controller appears to be in auto with a slow rolling oscillation possibly due to a PID reset time being too small.

I did a Control Talk Blog that discusses good signal filtering tips from various experts besides my intelligent velocity limit.

Mark Darby’s Initial Answer

In many cases, I’ve seen signals overly filtered. Often, if the filtered signal looks good to your eye, it’s too much filtering. As Michel Ruel states: If period is known, moving average (sum of most recent N values divided by N) will nearly completely remove a uniform periodic cycle. So the issue is how much lag is introduced. Depending on the MPC, one may be able to specify variable CV weights as a function of the magnitude error, which will decrease the amount of MV movement when the CV weight is low; or the level signal could be brought in as a CV twice with different tuning or filtering applied to each.

ISA Mentor Program


Greg McMillan’s Follow-Up Answer

Since the oscillation is uniform in period and amplitude, the moving average as described my Michel Ruel is best as a starting point. Any subsequent noise from non-uniformity can be removed by an additional filter but nearly all of this filter time becomes equivalent dead time in near and true integrating processes. You need to be careful that the reset time is not too small as you decrease the controller gain either due to filtering or to absorb variability. The product of PID gain and reset time should be greater than twice the inverse of the integrating process gain (1/sec) to prevent the slow rolling oscillations that decay gradually. Slide 29 of the ISA webinar on PID options and solutions give the equations for the window of allowable PID gains. Slide 15 shows how to estimate the attenuation of an oscillation by a filter. The webinar presentation and discussion is in the ISA Mentor Program post How to optimize PID controller settings.

If you need to minimize dead time introduced by filtering, you could develop a smarter statistical filter such as cumulative sum of measured values (CUSUM). For an excellent review of how to remove unwanted data signal components, see the InTech magazine article Data filtering in process automation systems.

Mark Darby’s Follow-Up Answer

My experience is that most times a cycle in a disturbance flow is already causing cycling in other variables (due to the multivariable nature of the process).  And advanced control, including MPC, will not significantly improve the situation and may make it worse.  So it is best to fix the cycle before proceeding with advanced control.  Making a measured cyclic disturbance a feedforward to MPC likely won’t help much.  MPC normally assumes the current value of the feedforward variables stays constant over the prediction horizon. What you’d want is to have the future prediction include the cycle.  Unfortunately this is not easily done with the MPC packages today.

Often, levels are controlled by a PID loop, not in the MPC.  The exception can be if there are multiple MVs that must be used to control the level (e.g., multiple outlet flows), or the manipulated flow is useful for alleviating a constraint (see the handbook).  Another exception is if there is significant dead time between the flow and the level.

Luis Navas’ Follow-up Response

Thank you for the support. I think the ISA Mentor Program resources are a truly elite support team, by the way, I have already read the blogs about signal filtering.

My comments and clarifications:

  1. The signal corresponds to a tank level in a batch process, due that it has an oscillating behavior (without noise).
  2. The downstream process is continuous, (evaporator) and the idea is control the Feed tank level with MPC (using the moving average), through evaporator flow input. The feed tank level is critical for the evaporator works fine.
  3. I have applied the Michel Ruel statement: If period is known, moving average (sum of most recent N values divided by N) will nearly completely remove a periodic cycle. Now the moving average is better as seen in Figure 2.


Figure 2: New Level Oscillations (blue: actual level and green: level with Ruel moving average)

Additional Mentor Program Resources


About the Author

Connect with Greg

Pin It on Pinterest