Flow Control On Tank Without Many Inbound Signals

The simplest way is like I explained before, using simple proportional control. However, this type of control will swing the output when the inflow drops by 500 LPS. The OP indicate the surface area of the tank, but did not indicate the volume of the tank, nor did he indicate the duration of the inflow drop. If the 500 LPS * length of time of reduces flow is less than the tank volume (or close), you may be able to use PID for the level control under 'normal' conditions, but when the 500 gpm flow reduction occurs, the tank level will drop. When this occurs, put the PID in a manual mode, with the output set to a speed a little lower than the output before the tank started dropping. Then after the 500 LPS excursion ends, the tank level will start to rise. At this point, put the PID back in auto. With proper tuning, it should bring the tank back to the set point.
 
Tom, you can see in my simulation the goal is to filter the flow. Some of the equations are like yours. The flow can't be held constant for reason given many times above. However the rate of change can be minimized so the flow changes slowly.

The simulations are important. Without them the designer doesn't know how big to make the tank. If the tank is too small the PLC programmer can't really do anything about it. That is the problem. That is the point. As I said above, the key is the size of the tank. It isn't really any different than an EE picking a capacitor size.

If a centrifugal pump is used, at constant speed the flow out will vary as an uncontrollable result of the pump characteristic curve.
That is why people should learn how to use differential equations. Differential equations can be non-linear whereas Laplace Transforms and State Space must be linear. If you have had problems with controlling centrifugal pumps it is because you didn't model them correctly or at all. I know about centrifugal pumps and system curves. All that can be modeled/predicted and designed instead of kludged or evolved.

RonJohn, I could have used an Excel spread sheet to do this. One column for every variable. One row for every second. Try it. Actually, the simulation should work fairly well if you used 5,6 or 10 second intervals.

Mickey, try it! Use an excel spread sheet. You don't need a full PID, even a PI is overkill. I think you would find that your idea works great as long as you pick the average in-flow rate and it doesn't change but once it changes your idea has no filtering or smoothing.
 
Tom, you can see in my simulation the goal is to filter the flow. Some of the equations are like yours. The flow can't be held constant for reason given many times above.

The originally stated goal is to maintain constant flow out of the tank.

You can maintain constant flow out of the tank.

You can maintain constant level in the tank.

I have done both, but each in different systems.

You can't do both simultaneously. The process dictates which you should control. The original post dictated constant flow as the objective.
 
Last edited:
Add new tank
A new parallel tank would be VERY beneficial. I would make keeping the flow relatively constant easier.

Tom, yes I know the flow can't be held constant. However, I can minimize the rate of change so it doesn't change as much as changing the set point every 30 seconds. That only keeps the flow constant for 30 seconds if the tuning is perfect and the in-flow doesn't change. I bet the real change in the set point is much faster than the smooth out-flow of my low pass filter. Changing the set point every 30 seconds is hokey but what can the OP do? Nothing he can do will really solve the problem. Can't we agree on that?

This tank system should have been simulated and designed with specifications and how it should be controlled. Then is is just a matter of the PLC programmer implementing the control code correctly so the system behaves as the designer and customer wants it to.

If I were a PLC programmer I would be ****ed if I were put in a position where I couldn't win. I know. I think a lot of us know.

I am only trying to make a few points.
1 These systems are easy to simulate. Even when using non-linear devices such as centrifugal pumps. I know this is beyond the scope of this forum but it affects the PLC programmers that are on this forum.
2 I have never seen a system that has been simulated unless I have done it. They are kludged or evolved.
3. I really do understand the frustration of PLC programmer that have to make poorly designed systems work.
 
another option take out the PID use logic comparison and make the drive use several speed step.

e.g

upper 9 meter set 80% of speed pump
between 7~9 meter 70% -80% of speed pump
below 7 meter 60%-70% of speed pump,

and so on

another question what means constant flow?
another issue process - inconsistent incoming.
 
Tom's right -- there are not enough degrees of freedom for simultaneous control, and who really cares about level anyway? Flow feedback control of the pumps, with H, L, and LL alarming on the tank are all that is required.

The tricky part is figuring out the optimal number of pumps to run. Does the flow setpoint ask for 2 pumps to run at 40%, or 1 pump at 75%?
 
The originally stated goal is to maintain constant flow out of the tank.

You can maintain constant flow out of the tank.
Only for a short time. In my simulation I changed the in-flow from the minimum to maximum to simulate a worst case rate of change in in-flow. The OP was changing the flow every 30 seconds. That really isn't constant flow. If his tank was twice as big he could hold the constant flow for 1 minute. The bigger the tank the fewer the changes need be or the size of changes in the flow.

You can maintain constant level in the tank.

You can't do both simultaneously. The process dictates which you should control. The original post dictated constant flow as the objective.
Yes we agree. If you looked at my simulations I wasn't trying to maintain a level or technically a constant flow but rather smooth the flow as much as possible. I can't see the purpose in maintaining a constant flow for only 30 seconds and then making a step change to a new constant flow.

There must be some process down stream that doesn't adapt well to changes in flow.
 
I think what Tom is trying to say is that because the head is allowed to fluctuate rapidly, regardless of the delayed (filtered) response of the outflow pump, the centrifugal pump will change flow rates as a response to the tank level. Since the tank level is allowed to change rapidly the outflow will change rapidly regardless of the speed you set it at or how quickly it responds.

I'm still an intern EE and I do some simplified PLC stuff for my company right now. This is extremely useful discussion and I appreciate everybody's input. except that one guy that asked what constant flow was... lol
 
Originally posted by SilverShotBee:

I need to keep the flow leaving the product tank as constant as I can, using the 12m height (workable range 9m) as a buffer which is allowing the product to rise and fall without affecting the flow as best as is possible.
emphasis added

That is from the initial post, post #1. Tom, "as constant as I can" and "as best as is possible" are a far sight different than:

Originally posted by Tom Jenkins:

The originally stated goal is to maintain constant flow out of the tank.

All he is looking to do is buffer the flow to prevent serious infeed spikes from generating a high rate of change of flow to the downstream process.

Keith
 
I think what Tom is trying to say is that because the head is allowed to fluctuate rapidly, regardless of the delayed (filtered) response of the outflow pump, the centrifugal pump will change flow rates as a response to the tank level.
This is why you learn differential equations. Differential equations don't need to be linear but they can still be solved numerically. It is easy to compensate for the non-linear pumps if necessary.

What can't be compensated for is the lack of buffering or capacity of the tank relative to the change in in-flow.

It is another classic case of not have specifications to design to or simply being clueless as to how big the tank must be to keep the flow relatively constant.
 
I know I shouldn't resurrect a 7 year old thread, but I never saw these replies and it's awesome to come back and see this discussion. I know a lot more now than I did back then and completely agree with Tom. It was an impossible situation, I needed to control level and flow to achieve what they wanted and its just not possible.

Sure, I could have added some buffering / smoothing to the level, but that wasn't the goal either. The level was violent, I needed to see the changes asap. In the end, I believe they added a much larger tank (4x the size) to help balance out the input.

Anyway, really nice to find this, here's a huge belated thanks!
 

Similar Topics

I was just presented with an application requiring control of two separate valves, each controlling individual flows into 2(or 2 sets of 2) tanks...
Replies
17
Views
4,979
Hello All Could we get some expertise on flow control ? -Using a PID loop in Productivity 2000 with an analog output, How can we convert...
Replies
19
Views
1,572
Hello: I am experiencing the following error: [ERROR] C0297: Stack overflow detected in DecodeOID. Maximal Stack Size: 64512. Calculated...
Replies
8
Views
1,211
Hi all, i'm after some help on a flow control valve control strategy. There are 8 parallel vessels that require evenly distributed flow. Each...
Replies
32
Views
6,962
Hello all, I am new to pid loops and control. I was wondering how to control a system with two process variables. This is a water system with a...
Replies
7
Views
2,005
Back
Top Bottom