TheWaterboy
Lifetime Supporting Member + Moderator
Hello all !
I need to control flow to a setpoint, but often the level in the tank creeps up because there is just a little more going in than coming out.
In those instances, flow needs to be increased a bit to bring the level back down and Flow becomes a secondary concern and I'd like to make those adjustments as short as practical while preventing the need for a clean up crew.
I have one PID controlling flow and it does a fair job. I realize these might be meaningless without context but P=0.00005, I=0.00009 and D = 0.001
I also have a P-only control (P = 20) providing a value from -10 to +10 that gets added to the first PID output. That value then drives the pump VFD. This works to a point but does not go far enough.
In the case today the tank is a little high and this drives the output from 10 till about 7 which increases the pump speed (by that much in percent) then at about the 7% value the adjustment stops doing much good, likely due to a pump affinity issue I don't grasp just yet.
Same effect was true when the tank was a little low. A large amount off, like a foot and and it adjusts better but les than that either way leaves the level high or low of the mark. and I just cant get the P only to drive the offset to zero.
The tank is huge, how can I get the P-only PID to stay near max till it gets the level right on target then slope to zero and stay there till the next tank level upset? A higher peak with less duration (or Q perhaps)
I can simply add the required value in discrete logic, but I thought the P only control was more interesting to see if I can make it work.
Any suggestions or maybe even proven sample code of a better idea I can review?
.
I need to control flow to a setpoint, but often the level in the tank creeps up because there is just a little more going in than coming out.
In those instances, flow needs to be increased a bit to bring the level back down and Flow becomes a secondary concern and I'd like to make those adjustments as short as practical while preventing the need for a clean up crew.
I have one PID controlling flow and it does a fair job. I realize these might be meaningless without context but P=0.00005, I=0.00009 and D = 0.001
I also have a P-only control (P = 20) providing a value from -10 to +10 that gets added to the first PID output. That value then drives the pump VFD. This works to a point but does not go far enough.
In the case today the tank is a little high and this drives the output from 10 till about 7 which increases the pump speed (by that much in percent) then at about the 7% value the adjustment stops doing much good, likely due to a pump affinity issue I don't grasp just yet.
Same effect was true when the tank was a little low. A large amount off, like a foot and and it adjusts better but les than that either way leaves the level high or low of the mark. and I just cant get the P only to drive the offset to zero.
The tank is huge, how can I get the P-only PID to stay near max till it gets the level right on target then slope to zero and stay there till the next tank level upset? A higher peak with less duration (or Q perhaps)
I can simply add the required value in discrete logic, but I thought the P only control was more interesting to see if I can make it work.
Any suggestions or maybe even proven sample code of a better idea I can review?
.