Sign in to follow this  
Followers 0
JRoss

Pressure Ramping With ON/OFF Valve

12 posts in this topic

Hi everybody. I'm looking at an application where I have to control pressure ramping in a chamber. I have a vacuum system and an On/Off exhaust valve. I am given a final pressure setpoint and a ramping rate in PSI/minute. The system is existing, and I'm looking to improve ramping performance overall. The current approach uses a PID instruction and pulse width modulation on the valve, with the vacuum system on. At the beginning of the ramp, the chamber pressure is moved to the setpoint of the PID. Then the PID setpoint is decremented every X ms, where X is calculated from the ramping rate. The problem is that it's not doing a particularly stellar job of ramping. Pressure decreases faster than the ramping rate. I don't have a lot of data, but during some initial testing, we used a rate of 1.0 PSI/min, and got on average about 1.3 PSI/min. Is the approach sound? At first I thought I would just need to tune the PID. But I have concerns that the constantly shifting setpoint will make that rather difficult. So is there possibly a simpler approach that will give tighter control? And assuming that the PID approach is a good one, what's the best way to tune something like this? I posted in the general forums, because I consider this more of a process question than a platform question. But for those who care, this system is running on an AB CompactLogix platform. However, I also need to improve performance on a similar machine with a Mitsubishi FX3U. EDIT: Incidentally, the same ramping approach is used to increase pressure using a steam valve, but this seems to be working satisfactorily. Edited by JRoss

Share this post


Link to post
Share on other sites
I have seen this approach using PID and PWM also. Does the PID have fixed P and ID values or are they changed dynamically as the pressure decreases? If you can trend all your data - chamber pressure, setpoint, output- PWM and PID for a complete cycle. Sometimes it looks a lot easier to see whats happening with a pretty graph.

Share this post


Link to post
Share on other sites
Vacuum pumping at a controlled rate can be very tricky. Vacuum pumping does not behave like steam or pressurized air. It is not a linear process as you have to contend with a constantly changing mean free flow path length. Mean free flow path is the average distance an air molecule travels before colliding with another air molecule. When pressure is high the mean free flow path is very short - there are lots of collisions between air molecules. As air moves toward the low pressure inlet of the vacuum pump additional air molecules are entrained and the flow momentum carries chamber air in that general direction. As pressure decreases you have fewer molecules and fewer collisions and the pumping process changes from entrained flow to molecular flow - at that point momentum transfer is no longer in the general direction of the pump inlet and random molecular flow dominates. When that happens the only air that you remove from the chamber is what happens to randomly wander into the pump. (Keep in mind there are still ~1018 molecules per CC so a lot of molecules are still being moved, they are just behaving differently). Put in simpler terms, you soon reach a point where you can no longer "suck" air out of the chamber. Technically you can't really "suck" air out but we tend to talk about it that way - unfortunately that leads to poorly designed vacuum systems because someone didn't account for the exponentially increasing mean free flow path. To control the rate using a PID you will probably need to to use multiple gain sets, you will need at least two gains sets and probably more depending on how far down you want to pump your pressure. Also your vacuum system needs to be well designed. Many vacuum systems have two different pumping mechanisms each with its own associated vacuum piping - there is a rough vac loop that has small diameter piping and a high vac loop that has large diameter piping. The rough vac loop is used at high pressures where flow is entrained. The high vac loop is used at low pressures where molecular flow dominates. You probably won't get satisfactory control with a single on/off valve but might do OK with a set of parallel valves with a small foreline, medium foreline, and large foreline. One method we use is to use a motor operated butterfly valve in a large foreline but we only control pumping rate until the pressure drops enough that there isn't a windstorm in the chamber (below the transition from entrained to molecular flow), then open up and let it pump as fast as possible. Another method of controlling pump down pressure is to open the foreline valves to the vacuum pumps and let the pumps pump at max rate and inject a process appropriate gas from a high pressure source. Since that is much easier to control (like the steam pressure control you mentioned) it makes chamber pressure easy to control - though somewhat wasteful unless the process appropriate gas is air. Edited by TConnolly

Share this post


Link to post
Share on other sites
Thanks for the info, I figured there was some non-linear characteristics to the pressure ramping. Is there a known absolute pressure where the process changes to molecular flow? I doubt very much that the machine will be redesigned, but having more information will allow us to know when we've reached the capabilities of what we've got. I do have at least a partial solution. I won't be able to test anything for a few more days, but as I was evaluating the code, I noticed that the PID instruction is located in a subroutine that is only scanned during the portion of the cycle when the ramping is needed. And even if it were being scanned continuously, there is no code to disable the instruction and reset the calculations between uses. So the reliablility of the PID control is suspect. I've modified the code, and am waiting for the opportunity to go onsite and see if the control is improved.

Share this post


Link to post
Share on other sites
I recommend putting the PID in a periodic task and letting it execute continuously. When it is not being used put it in manual mode and set the output to pre-determined values appropriate to the task. The exact flow characteristics are naturally highly dependent on the machinery and associated piping. Technically the change is not an abrupt one but there is a point for every system when its becomes obvious that molecular flow dominates over entrained flow. If you can run your system at max pumping speed and trend the pressure you'll see it. There will be an initial high speed decrease in pressure that appears to slow down linearly at first but then it hits a point where it begins to dramatically slow even more and the curve will start to flatten out. My first attempt would be to divide the curve into three parts, the first short part that shows a steep but kinda linear pressure decrease, the primary part of the curve, and then the rest beyond the curve where it starts to flatten out and try to tune each section. Then as I saw how well that performed I would either add more gain sets or see if just two sets would work, one for the initial drop and one for the rest.

Share this post


Link to post
Share on other sites
Exactly what I'm planning to do! If I understand the curve and am doing my conversion correctly, we should never get to the steep section of the curve. The minimum setpoint allowed on the system is 1.5 PSIA (roughly 10kPa, I think?). So we're mostly operating in the linear portion of the curve. I'll start by correcting the PID instruction code, then retune. If the customer isn't satisfied with the result, then we'll trend some pressure curves and decide if we need two or three sets of PID settings. Thanks for your help!

Share this post


Link to post
Share on other sites
It sounds like you've picked up on it. The curve is for pumping speed while you're trying to control pressure so I wasn't sure if I stated it well after I re-read my post. If you were to trend your system pressure over time with pressure on the Y axis and time on the X axis it would probably look similar to the same curve but with the curve rotated counterclockwise by 90 degrees, which might help you visualize the conversion. Good luck.

Share this post


Link to post
Share on other sites
Cool topic of discussion! I've been doing some similar work, but mostly trying to achieve the best vacuum I can in the minimum time (looking for medium vacuum, below 300 Pa), so I've been looking at similar graphs for the past few weeks. I hadn't really thought about what caused the shape of the graph before now.

Share this post


Link to post
Share on other sites
Knowing up front that a PID would be more of a time waster than anything else, I would attack this with an Expert System. First, you have a plan for the rate of change of the vacuum. Second, you need a routine to ramp the PWM scheme for your vacuum valve from some low percentage to what ever the maximum percentage would be. So now comes the magic part. The plan for the change in vacuum is used to create a chart in Excel, with the Delta Vacuum on one axis and the Delta time on the other. Once you have that done, you send the .xls file to me (it only needs a few terms, maybe 4 - 6) . I will subject that chart of data to a curve fitting program that will generate an algorythm that will reproduce the vacuum curve desired. Once that is done, you put it into a "Compute" statement and as time goes in the target vacuum will come out (reproducing the chart). OK now for the Expert part. I look at an Expert System as one in which the program just does what the very best operator would do. So what would he do? He would look at the process vacuum and compare it to the target saying "More" or "OK" or "Less". So you take the target vacuum and add a few % to it and subtract a few % from it to produce a deadband with the target vacuum in the center. So if the vacuum is decreasing such that it is in the DB, it is OK (the value sent to the PWM routine). And if it is falling too fast, then you decrement the PWM % (valve open duty cycle), and if it is too high (not decreasing fast enough), then you increment the PWM %. So now you have a simple controller that needs some constraints, so a few rules are required. What can be done for some "P" (proportional) ? What is P required to do accomplish? It enables fine changes when that is enough and more agressive ones when they are warranted. Well, you can make a scheme that says increment or decrement 1% each corrective cycle, if the error is "x" and you can go 2% for "2x" and 3% for "3x" (proportionally or exponentially more agressive). This just depends on a simple lookup table or math formula. The faster it changes, the more P Gain it has. And for some "I", what does it need to accomplish? If the process gets lazy and hangs a bit high or low, the PWM % needs a bit of a kick. So I would start a timer when the vacuum (process value) goes outside the DB. If the timer reaches a certain value, then you kick the PWM % one step in the proper direction. Each time I make a change in the output (PWM%) then I would start a timer the would inhibit the next change for some period, say 10 seconds, or for a slow changing system maybe 30 or 60 seconds. This time becomes the I Gain. So then with some tweeking, you can turn it loose and let it home in on the DB whos definition is changing with time. Like any controller, you would need to watch it a bit until you have a feel for how to design the PWM % routine and where to set the min and max for it. I'm sure that this sounds strange, but I have done this more times than I can count. Enough times that I can say without a moments hesitation that once you do this, you will never ever think about a PID again. I have done gauge control on a rolling mill and gas dilution in mixed gas station station among other very highly critical requirements, all of which were a set it and forget it proposition. The last one I did was in 2001 and I have not seen it since. One last thing, for signals that are noisy, like your vacuum might be, just set up a FIFO (First In First Out) and take the average of the terms. Only a few values taken a few seconds apart is enough to smooth out all sorts of noise. I cleaned up an xRay gauge output by taking a sample every 400 mSec and putting 3 into the shift register. Then I adapted the strip tension every 1.2 seconds if the result was out of the DB (this was a heavy gauge, slow speed rolling mill). This worked so well that in the following 14 years, there was not one complaint about the gauge. The bottom line is that in about a half dozen rungs, the gauge problem went from something that could not possibily be controlled to something that was completely forgotten about. There is one more thing that I did with the gauge controller that made it adaptive. A rolling calculation of the standard deviation of the incoming gauge error (absolute difference between the process valve and the target) was done. There is a simple formula for this. The Std Dev. was used to control the value that created the deadband offsets. So as the performance got better (smaller Std Dev. for the error), then the offset got a bit smaller (tighter DB > controller more active). And if it was running rough, the the DB got a bit larger (wider DB > controller less active). A fairly simple lookup table can be used for this as well. For all those purests out there who make a living tuning PIDs all day everyday, don't bother to try this, unless you are interested in a new line of work. Feel free to send me your Excel file and I'll return the simplest algorythm that comes close to your ideal within a few hours to a few days. The program generates 3320 results with the r2 value (measure of best fit) for each one. So I just go down the list and pick the first one that I can get into a compute statement. Then there is the ol' VFD on the vacuum pump trick...but that would be a different story...no, actually it would be the exact same story...just change the frequency instead of the PWM%. That would smooth out the steps and save energy at the same time. Imagine that! Best Regards, Bob A. (robert.applegate@comcast.net) Edited by Bob A.

Share this post


Link to post
Share on other sites
I would use sliding mode control. Sliding Mode Control is good for those applications where the control mechanism is a simple on off device. You really shouldn't need a PID. Just turn on and off the valve depending whether you are above or below the target. The sliding mode control simply adds a rate control or prediction feature to the simple on off technique. This prediction technique would keep the rate from dropping too fast a the beginning.

Share this post


Link to post
Share on other sites
That tells me that the ability to pull a vacuum exceeds the SP demand for a vacuum level at any given moment during the ramp. This is not a situation of insufficient capacity. The system is tuned too aggressively. Back off on the tuning.

Share this post


Link to post
Share on other sites
Thanks for the great replies! I should have come back and re-posted sooner, but I have been absolutely slammed lately and, frankly, forgot about the thread. First, while I would still like to improve performance, I found a couple of bugs in the original code that proved to be the major culprit. As I mentioned above, the code used a lot of individual subroutines that were only called when needed. This included both the routines with the PID instructions, as well as the routine handling the setpoint ramping. What we discovered through testing is that the ramping routine wasn't being reset properly between uses. When called, the routine was supposed to make the current process value the setpoint of the PID, then ramp the setpoint at the user-selected ramping rate. Unfortunately, a code bug was causing the initial setpoint to be a leftover value from a previous use of the subroutine. Sometimes it was close enough that it wasn't noticed, other times it was wildly out of line, causing uncontrolled ramping. Once I fixed the bug, the ramping met the expectations of the customer. That being said, I still see room for improvement, and I like the suggestions of BobA and Peter. I agree that PID is probably end up being more of a hindrance than a help. Once I get out of the current landslide, I think I will revisit this, if for no other reason than my own edification! Thanks again everybody!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0