Control Rate of Change logic

Join Date
Jan 2013
Location
california
Posts
32
Hello,
I am having writers block;) on trying to determine what is the best way to limit the speed of a vertical turbine water pump based off rate of change, basically i dont want the pump to make extreme speed changes. does anyone have any clean ideas on how to control this? it would be nice if compactlogix had an instruction for this. one option i considered was to set the acceleration time on the vfd way up, but then decided against it. here is the layout

> i have a wet well with a level transmitter
> the speed of the pump is proportional to the wet well level from 6 to 12 ft depth (at 6 feet the pump is at minimum speed, at 12 feet pump is at maximum speed)
> i am currently using a pid instruction to control the pump speed (gain set to 1 , I and D set to 0)
> there is a mag meter on the discharge of this pump
 
Last edited:
Hello,
I am having writers block;) on trying to determine what is the best way to limit the speed of a vertical turbine water pump based off rate of change, basically i dont want the pump to make extreme speed changes. does anyone have any clean ideas on how to control this? it would be nice if compactlogix had an instruction for this. one option i considered was to set the acceleration time on the vfd way up, but then decided against it. here is the layout

> i have a wet well with a level transmitter
> the speed of the pump is proportional to the wet well level from 6 to 12 ft depth (at 6 feet the pump is at minimum speed, at 12 feet pump is at maximum speed)
> i am currently using a pid instruction to control the pump speed (gain set to 1 , I and D set to 0)
> there is a mag meter on the discharge of this pump

I know how to do what you want to do, but I have to ask what you are trying to accomplish.

If you know the speed you want to run at, why do you need a regulator in the first place? You could just calculate the speed depending on the well level.

And if you need to regulate, for instance the flow, then you need a PI regulator, not just P as you have now. If you only have a proportional response (P) to the error you'll never get to the point that there are no error.

Please elaborate some more on what you are after.
 
BTW, to limit the rate of change on the output, outside of the regulator, all you need to do is to separate them into two values.

  • output from the regulator (let's call it OP)
  • speed setpoint to the VFD (let's call that speed_SP)

On a regular time basis, say once per second, you take the difference between the OP and the speed_SP. If it larger than the largest rate you want, say 1% per second, you cap it to 1%. You add that to the speed_SP.

So once per second do this (in ladder or whatever you use):
Code:
rate_of_change = speed_SP-OP
if rate_of_change > 0.01 then rate_of_change = 0.01
if rate_of_change < -0.01 then rate_of_change = -0.01
speed_SP = speed_SP + rate_of_change
So even if the output jumps from 0% to 100% it will take 100 seconds for the setpoint to the VFD to climb up to 100%.

The timebase you choose must be in proportion to how fast your process is, but I assume this is a slow process.
.
 
Last edited:
I would not use a PID for this. Just rescale the level to the min/max speed.

e.g 6 to 12 ft = 0 to 100% speed or what ever your min/max is.

If you want to slow the response of the ouput then use a filter before sending it the the output module.

Or a ramp instruction.
 
You can probably do this in the VFD itself by adjusting the acceleration and deceleration times. That will provide limiting even if the VFD is in manual.
 
Can you not set a limit on the amount of speed increase?

lets say you limit the speed increase to 3%
your system says jump 10 %
your logic would only increase the speed 3%, then set a timer.
when the timer runs out, if the speed needs to increase more, increase another 3% and so on.

Don't know your application, just my thoughts.

james
 
Thanks for the replies, for some reason i feel like setting the VFD accel and decel times extra long would be bad practice, but i guess thats what they are there for so ill give it a try. i used the PID instruction because i thought it had a Rate Of Change limiter for the CV but guess not.
 
For things like this, I often use a "Bump Up/Bump Down" approach.
I run a cyclical timer, and if I'm within 50% of the target, bump up or down by say 2%/period. As I approach 10% of target, I'll change the increments to say 0.5%/period.

That is a common way to control things that you don't want to swing wildly, say a chiller evaporator approach target, but might work here.
 
Threads like this make me want to scream.
Why would the pump want to make extreme speed changes. That is important information. The only reason I can see from the initial post is that the tank level changes extremely rapidly. If so then the rate of change in the tank level may be beyond the capacity of the pump to handle the flow.

I like Mickey's suggestion for simplicity.
Don't limit the acceleration of the VFD if using the integrator in the PID. If the pump doesn't respond fast enough the integrator will wind up. The correct way to limit changes is to limit the SP rate of change and let the pump do what it needs to.
 
Why would the pump want to make extreme speed changes. That is important information.

"Why?" is the most important question I usually forget to ask. If I don't have context, I'm limited to being a reference manual instead of a problem solver.
 
I wrote the first post in this thread and it's all about the "why?".

I don't know how sophisticated PID algorithms PLCs have in general, but I would guess they're pretty primitive (like Siemens S7-300/400 for instance).

Using setpoint ramping is not a good way to control output of a regulator. Using it like that, it becomes a crutch for a control loop that can't behave. A control loop that is properly designed could take any error without getting all crazy.

It's standard on DCS systems to have output rate-of-change limits on PID regulators. It's affects the PID loop so it's not something that is just added on the output. This is the best way to control how fast the output CAN change. Then it a question of using a good algorithm for the control and good tuning.

A regulator could be run in manual mode as well when the operator sets the output and setpoint ramping will not work in manual.

Setpoint ramping has it's use and it's also standard for DCS systems. But the purpose of it is to change from one SP to another over a specified time.

But adding a ramp to the VFD is not the best solution. A ramp on the VFD should be used for mechanical or electrical reasons, not to control a process of some kind. As Peter Nachtwey correctly pointed out it will screw up the integration on a PID regulator. Personally I would not use the ramp time on the VFD to make the pump react slower for the reasons above. I think it would be very confusing as well for someone troubleshooting pump/motor/VFD issues in the future.

But in the end we still come back to the question about what we are trying to accomplish and why.
.
 
Last edited:
Using setpoint ramping is not a good way to control output of a regulator. Using it like that, it becomes a crutch for a control loop that can't behave. A control loop that is properly designed could take any error without getting all crazy.
Consider this. A motion controller ramps the SP or target position from where it is to where it is commanded to go. If it didn't the output would saturate, the integrator term would wind up and cause the actuator to overshoot to unwind.

It's standard on DCS systems to have output rate-of-change limits on PID regulators. It's affects the PID loop so it's not something that is just added on the output. This is the best way to control how fast the output CAN change.
NO! The OP is not trying to limit the rate of change in the output, he is limiting the rate of change in the speed. If you limit the rate of change in the output so the PV doesn't keep up with the SP the integrator winds up. Not good

Then it a question of using a good algorithm for the control and good tuning.
Yes.

A regulator could be run in manual mode as well when the operator sets the output and setpoint ramping will not work in manual.
That is why it is called manual mode. In this case limiting the output rate is acceptable because there is no integrator to wind up.


Setpoint ramping has it's use and it's also standard for DCS systems. But the purpose of it is to change from one SP to another over a specified time.
Yes and that will limit the rate of change in the speed of the pump.

One more thought. One could limit the error but that would only work if the integrator is not used.

I still say Mickey has the simple solution. The pump speed can't change instantly unless the level changes instantly. If the level changes faster than would the pump can handle then all is lost if the rate of change lasts long enough the tank overflows.
 
NO! The OP is not trying to limit the rate of change in the output, he is limiting the rate of change in the speed. If you limit the rate of change in the output so the PV doesn't keep up with the SP the integrator winds up. Not good

Peter, I respect your knowledge on most things but I'm afraid that in this case you are simply wrong.

The integrator doesn't wind up because it's stops integrating the second the output becomes rate limited. That's how it works on real PID loops.

Just as the the integrator stops integrating the second the output hits it upper/lower limit.

I mentioned DCS systems because they have had this figured out for decades. All the plants that have high demands on process control in industries like oil, pulp and paper, steel, chemical etc have these types of systems. Manufacturers like Honeywell (which I most familiar with), Emerson, ABB etc.



.
 
Last edited:
The integrator doesn't wind up because it's stops integrating the second the output becomes rate limited. That's how it works on real PID loops.
Yes, I know how "real" PID work but the integrator still winds up until the limit is reached.

I think you are misinterpreting the problem. You are talking about limiting the output. I think the OP wants to limit the output rate of change. At least that is what the title says. This can be done using SP ramps or another way is to chose gains so the pump response is slow to speed up. I don't like this option or your option because it limits the ability of the pump to do its job.

What if Mickey's assumption is right. The SP is 0 or close to it for an empty tank. If fluid enters the tank faster than your pump speed limit allows the tank will overflow. What I propose just limits the rate of change in the speed but the speed can still increase to match the inflow. This will work as long as the tank is big enough to absorb the inflow while the pump is speeding up.

The process industry has been using rate filters on SP.
Fr is the set point filter. In motion control we use ramps to be more precise.
http://www.nt.ntnu.no/users/skoge/prost/proceedings/PID-12/papers/0124.pdf
 

Similar Topics

Hi Everyone, I am new to siemens servo drives, needs some helps and wondering if you can help me. The machine has Siemens S120 Servo Drvie and...
Replies
2
Views
1,661
Hello, please its possible to control flow rate using frequency mode of a flow meter ? if yes, how is it done for a PLC like Micrologix ? i...
Replies
10
Views
2,233
Hi, please I wish to develop project like this: I wish to control my flow transmitter using PLC. For example If i wish to pump 1000, 2750 0r 3800...
Replies
6
Views
2,097
Hi everyone. I'm working at water treatment plant. I have some filter sand, every filter sand have a vavle analog use cotrol flow, a transimiter...
Replies
8
Views
2,406
Hi, I am new to PID control, wondering if anyone can help me with this. We have a flow meter goes into VHSC point io card as input, analog output...
Replies
2
Views
2,085
Back
Top Bottom