LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID pressure control and sample volume differences

Hello,

 

I have been trying to use PID control to automate using a reciprocating pump to pressurize a test piece with water.  My output is an electronic regulator to control pump drive pressure.  The PV is a pressure transducer.  I have been successful coming up with settings for PI control using the open loop method.  The problem is there is considerable difference between sample volume.  The lag and deadtime seem fairly consistant but the process gain is different from sample to sample.  If I tune the system for one sample volume and then test a bigger volume, the output increases considerably due to a lower pressurization rate of the new sample however it overshoots quite a bit before it even thinks to reduce the output.  I have tried detecting the sample volume by measuring the initial pressurization slope and then using gain scheduling based on the slope detected.  The problem is that this method isn't repeatable.  Sometimes it chooses the correct settings and sometimes it misses.  I have recently played with the linearity setting on the advanced PID vi and that seems to help but doesn't totally improve overshooting.  The system is actually pretty linear but I think maybe the sample volume somewhat makes it operate non-linear.  I have seen other controllers work well regardless of what the sample volume is so I know it can be done but I am apparently missing something.  My inital thought would be that I should create PI or PID settings with no or low volume so my settings relate to the actual system (without test sample).  Any ideas?

 

Thanks,

Dave

0 Kudos
Message 1 of 3
(2,598 Views)

Dave,

 

Seems like you have thought this through, so I'll just put the obvious for completeness:

  • Is the response consistent with consistent sample volumes ? Just to make sure it isn't some other variable causing the change.
  • Is the close loop response time so critical that you can't just tune for worst case sample volume (one with fastest response / highest gain), and then accept slower but stable control over the rest ?

The gain scheduling you suggest sounds good. Just need to select a few sample volumes over range your controller will experience and tune each one separately, There are quite a few ways of doing gain scheduling - all with possible problems if not implemented correctly - either switch between different gains, or blend them together based on a weighting - I'm sure you can find some web-sites that explain that properly. One suggestion it might be good to use the ideal form of PID, as this may make tuning changes easier from one case to the other - i.e. it may just require scheduling of the proportional gain.

 

If you can think about the physics behind the nonlinearity, and come up with a relationship, then a more natural way to deal with the nonlinearity might be to put in the inverse nonlinear function so the controller effectively sees a (more) linear system. These all depend upo the nonlinear response being repeatable.

 

Hope this helps.

 

Andy

Consultant Control Engineer
www-isc-ltd.com
0 Kudos
Message 2 of 3
(2,585 Views)

Andy,

 

Thanks for taking the time to reply.  Yes, I am seeing consistancy in consistant sample volumes.  As far as the reponse time being critical, I'm actually trying to maintain a desired pressurization rate.  While how close I come to that rate isn't that critical, consistancy from one test to another is.  The problem with accepting a slow but stable rate is my volumes vary from 2 in^3 to 600 in^3.  I previously went that route and went from a roughly 3 minute manual pressurization time to a 30 minute one.

 

Fortunaly this morning I started working with changing the linearity input to zero or near zero.  I'm starting see better response.  I think that a low linear setting will get me there but I just need to play around the PID settings.  I'm seeing an intitial output increase with larger volumes but it's finally slowing down as we approach zero error.

 

Thanks again,

Dave

0 Kudos
Message 3 of 3
(2,564 Views)