SilverShotBee
Member
Hi All,
I've been trying to design a system to control the flow leaving a product tank but am struggling somewhat. So the set up is this, there's a 12m deep product tank with 3 pumps that draw from it and pump the product onwards. The only signals I have available are:
I do not know the rate at which the product is entering the tank except for it can fluctuate quickly anywhere between approx 2000 liters per second at max flow, right down to about 1050 liters per second at minimum flow. There are no signals available before the tank to even approximate this flow and depending on what speed the pumps are at at the time of flow increase, a little can make a massive difference to level in a seriously short space of time!
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.
So I've tried to use a PID control to control the speed of the pumps with a setpoint that is automatically adjusted depending on the level of the tank and the speed in which the tank is rising or falling. The reason I haven't just decided to fix the setpoint is because the rate at which the product is manufactured is not fixed, its not even a setpoint, it just "is what it is" depending on a huge range of factors. There is just no way of knowing how fast we are producing it, so the PID setpoint must be dynamic if we want to control on outflow. If I wanted to control to level, I obviously would just put the setpoint of 8m or what ever and fix it, but this would then cause the outflow to swing around trying to keep the level constant, I need the level to swing and flow to stay constant.
Anywhere between 7m and 9m, the setpoint of the PID does not get adjusted, allowing the flow to stay perfectly stable. If the level gets above 9m OR a "Level is rising quickly" is detected from the level instrument then the setpoint for the PID is increased by a small amount, this repeats every 30 seconds until the condition is no longer true. And the same if the tank is falling, the pumps a slowed down.
This works fine as long as everything is relatively smooth, but just to add more issues to the control, every few hours, upstream from the product tank, a particular activity takes place that uses product before it enters the tank, typically about 500 liters a second of it, which is a huge 25% suddenly not entering the tank anymore. The control explained above cannot deal with it and the PID becomes extremely unstable with pumps ramping up and down all the time.
How would someone of more experience approach this? I'm using Allen-Bradley Logix5000 and have no scope to be able to add more IO or signals to the system. I'm stuck with what I have! Having a flow meter on the inlet would be seriously beneficial!
I've been trying to design a system to control the flow leaving a product tank but am struggling somewhat. So the set up is this, there's a 12m deep product tank with 3 pumps that draw from it and pump the product onwards. The only signals I have available are:
- Level of the tank
- Flow leaving the tank
- Speed of the pumps
I do not know the rate at which the product is entering the tank except for it can fluctuate quickly anywhere between approx 2000 liters per second at max flow, right down to about 1050 liters per second at minimum flow. There are no signals available before the tank to even approximate this flow and depending on what speed the pumps are at at the time of flow increase, a little can make a massive difference to level in a seriously short space of time!
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.
So I've tried to use a PID control to control the speed of the pumps with a setpoint that is automatically adjusted depending on the level of the tank and the speed in which the tank is rising or falling. The reason I haven't just decided to fix the setpoint is because the rate at which the product is manufactured is not fixed, its not even a setpoint, it just "is what it is" depending on a huge range of factors. There is just no way of knowing how fast we are producing it, so the PID setpoint must be dynamic if we want to control on outflow. If I wanted to control to level, I obviously would just put the setpoint of 8m or what ever and fix it, but this would then cause the outflow to swing around trying to keep the level constant, I need the level to swing and flow to stay constant.
Anywhere between 7m and 9m, the setpoint of the PID does not get adjusted, allowing the flow to stay perfectly stable. If the level gets above 9m OR a "Level is rising quickly" is detected from the level instrument then the setpoint for the PID is increased by a small amount, this repeats every 30 seconds until the condition is no longer true. And the same if the tank is falling, the pumps a slowed down.
This works fine as long as everything is relatively smooth, but just to add more issues to the control, every few hours, upstream from the product tank, a particular activity takes place that uses product before it enters the tank, typically about 500 liters a second of it, which is a huge 25% suddenly not entering the tank anymore. The control explained above cannot deal with it and the PID becomes extremely unstable with pumps ramping up and down all the time.
How would someone of more experience approach this? I'm using Allen-Bradley Logix5000 and have no scope to be able to add more IO or signals to the system. I'm stuck with what I have! Having a flow meter on the inlet would be seriously beneficial!