Interlocked PID Loops + Feed Forward

Nick_SacmiUSA

Member
Join Date
Mar 2019
Location
Central Valley
Posts
1
Hey All,

I am working on the programming to maintain level and pressure in a 80 gallon surge tank. This tank feeds fillers that fill either 2.5 Gallon or 5 Gallon bags. To maintain level, I have a modulating valve on the intake of the tank and to maintain pressure I have a nitrogen inlet valve and an exhaust valve. Previously, level was maintained with a simple, nonoptimized PID instruction and pressure would simply exhaust if it was above the setpoint deadband and and charge if it was below the setpoint deadband.

My thought is that I need a more advanced PID structure to maintain level, along with feed forward signals when we are filling a bag since each bag is such a large percentage of the tank level. To do this, I think I need one loop that is simply montioring the level in the tank and setting the modulating valve according to the SO (This PID would recieve the Feed Forward signal each time the filling sequence on our filler starts) and another PID that checks pressure in the tank since it can slow down our filling if it is higher and speed up our filling if it is lower.

Along with that, I want the pressure to be on a PID that switches between control actions (reverse and direct) to exhaust and charge the tank with nitrogen as necessary.


Does anyone have experience with a similar system? Any advice or code snippets to make the process easier? Am I stupid?
 
Since no one else jumped in I'll toss my 2 cents worth into the pile.

You are correct with the level PID and "feed forward". I'm being somewhat pedantic here, but what you talk about as "feed forward" is really more of an open loop disturbance rejection. Technically, feed forward is based on the setpoint. But functionally you are correct. Do you have enough information about the flow rates required during a bag fill that you can accurately predict the tank supply flow command needed to match it? If so, you will be incredibly surprised by how little your level controller needs to contribute to he supply valve output. If not, a reasonably accurate approximation is still better than nothing and should be incorporated.

If I read your post correctly it sounds like you are talking about providing additional fill valve control based on the pressure in the vessel. I don't know that this is required unless the vessel pressure is a significant percentage of the media supply pressure. Even if it is you are probably better off changing your level controller gain gain directly based on tank pressure than you are trying to add an influencing output directly to the tank fill valve command. If your pressure control PID works as you hope, this won't be needed anyway since your tank pressure will be stable.

Your tank pressure stability is related to your level stability. Theoretically, if your tank level never changed your tank pressure would never change (very simply speaking). So by getting the best possible level control your pressure control problem becomes much easier. I assume you have much higher available nitrogen charge pressure than you have tank pressure, making your supply and exhaust plant gains much different. In addition, I would imagine that supply and exhaust are controlled by two different valves. I haven't done much with split range controllers so I'm not sure what the most stable way of doing this is. But you will very likely need a different set of gains for pressure increase than for pressure reduction.

Keith
 
I'm assuming there's no pump involved and that the pressure is measured in the headspace of the tank.

It would seem the objective here is to maintain a consistent fill rate while ensuring the tank level stays within bounds.

For pressure control, consider a split-range arrangement. For the surge tank, level fluctuations only really matter if associated changes in static-head impact the fill rate (more on that below)

Set up pressure control as split-range. Use direct-acting PI control. The output is split among the vent and N2 valves as follows:
0% PI output - vent 100% open, N2 0% open
50% output - vent 0% open, N2 0% open
100% output - vent 0%open, N2 100% open
Basically, the vent operates linearly between 0% and 50% (with N2 closed)
and N2 operates linearly between 50% and 100% (with vent closed)

Hopefully the PI gains work equally well in the 0-50 and 50-100 ranges (if not, you can adjust the output scaling or gain-schedule the PI).

For tank level, I'd use a high-gain proportional only controller or on/off control to maintain the tank level in an acceptable range. Note that as you widen the level operating range, the fill rate will fluctuate with level because of static head variations. If the pressure sensor was located at the bottom of the tank, the pressure controller would compensate for this.

Good luck and have fun with it.
 

Similar Topics

Is a door interlocked disconnect always mandatory? My customer is requesting a control panel that aligns with UL508 guidelines but they do not...
Replies
32
Views
12,631
I'm trying to find a way to prevent a PV displaying a change of state that isn't being acted upon in the (L32E) plc. I have 5 interlocked buttons...
Replies
4
Views
2,110
Hi all. I am trying to find safety application examples for an inspection door with electromechanical interlock. I can find many door switches...
Replies
39
Views
13,673
Hello, I have a motor that we are sending a RPM Speed Output from 0-100% to the VFD. However, the Motor HP needs to be limited to 6000 HP and the...
Replies
3
Views
82
Back
Top Bottom