Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations SSS148 on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

PID Control of a motorized valve 1

Status
Not open for further replies.

koolant

Electrical
Oct 22, 2005
2
I have an application in which I need to control the temperature of a fluid using a water to fluid heater exchanger. I am controlling the flow of the water (city water) using a motorized valve to control the output temperature of the fluid. I have a sensor on the inlet and outlet of the process fluid. The problem I am having is that there is too much overshoot and undershoot occurring when the inlet temperature changes dramatically. The process fluid needs to be held at 90 degrees F and it will overshoot up to 15 degrees and not steady for quite a while. Any suggestions as far as controlling the motorized valve to get better control. The valve and actuator is manufactured by JCI. It has a 90 second response time from closed to fully open. Please help.
 
Replies continue below

Recommended for you

You have not really given much information regarding your problem. Are you thinking this is a control system cycle time problem, a control loop tuning problem, a valve/actuator problem, or something else?

What is the line size, flow rate, valve size, valve Cv?

I wouldn't think the manufacture of the valve and actuator would be pertinent. A 90 second stroke time is not meaningful without the above data.

Just to summarize, in case I am not reading this correctly. You want to control the temp of stream A. You are using stream B via an exchanger to control the temp. You are controlling stream B's flow throught the exchanger to achieve the desired tempterature.

Have you taken a look at your tuning parameters? Too much gain may cause this.

What is the Cv required and as compared to the Cv of the valve. If the valve is sized incorrectly, it may also contribute to the overal gain.

What is the control system's control loop cycle time? If there is too much dead time in the control system wrt updating the process value and calculating the output, it may also result in what you are seeing.

Is the flow rate of the process stream A changing? If so, is this problem worse when the flow drops? If yes, then it may be due to an oversized valve at the small end of the turndown. If the problem is worse as the flow increases, the tuning constants for stream B may need to change with the larger flow ranges.

Hope this helps you start your investigation.
 
Valve size is 1-1/4"
Line size is 1-1/2"
City Water Flow is 15gpm
Process Fluid Flow is 16gpm

The fluid must be held between 85 and 95 degrees and the city water temperature is approximately 55 degrees. The process flow is constant.

The controller is very quick on the response time as opposed to the valve. As the heat load is increased on the process fluid the valve does not open quick enough to accomodate the temp increase. I am using a PID module in a PLC to do the control. We are using feed-forward controls.

I think it is the response time of the valve. Please help.
 
Seem you are having a tunning problem. It is a bit harder to find the right parameters when dealing with temperature control and when having slow control valve. You will have to get help from an experiance instrument man, or use a self-tuning temperature controller. If the control is done by a PLC m you can use the Exper-Tune program ( ) for finding the optimum controller set up
 
Hi koolant,

I don't often use feed forward controls for most of my loops, especially by itself. My experience is that feed back loops are more reliable, albeit a bit slower.

Feed forward control in this case I think is a good thing though. More on this later.

I still have some questions.

The first one does deal with your controller's tuning. What are your tuning parameters (the gain, integral and derivatives). By the way, please give the units for the integral and derivatives (some systems use seconds, others use cycles per second). Typcial gains for a temperature control loop has relatively neutral gains (up to 1 or 2), and relatively fast integration (0.5 to 2 seconds). I am usually not a big fan for derivative control (I have trouble tuning it so I usually don't use it).

The second and third questions are what kind of valve are you using (I am guessing globe?) and what is is the trim characteristic of your valve (I am guessing equal %?). This type if valve and trim is common in this type of application.

Fourthly, how quickly does the temperature of the inlet process fluid vary, and by how much (I am taking a wild guess here of +/- 10 to 15 deg F at a cycle of around a couple of minutes?) By the way, just curious. What is causing the proess fluid temperature to vary so much?


Back to the feedforward thing. You mentioned in your original posting that you are currently measuring the process stream's inlet to and outlet from the heat exchanger. I assume that you are using the inlet temperature measurement as the feedforward control. If this is the case, and your answers to questions 1 to 4 are close to my guesses (as blind as they are), you may want to try a variable gain.

Before you try variable gain, please do make sure the current control loop is tuned correctly (or as best as can be). It often happens that the parameters are changed, and someone has forgotten to change it back to the original when done, and has left it.


Okay, any way, here goes.

The way I would set up the variable gain is as a differential between the inlet temperature reading and the setpoint (SP) - your desired final outlet temperature. Lets start with the gain ranging from 1 to 2.5 for a temperature difference of 0 to 30 deg F. This mean:

Diff btw inlet temp and SP Controller K
0 1
15 1.75
30 2.5

It's a linear relationship.

To do this, most PLC have a "strapping table" type funcion block which does linear interpolation (and extrapolation but we won't use this part). This fcn block's input would be the absolute difference of the inlet stream temp and the SP (this means the value is always positive, so the schem would work whether you are above or below SP) calculated using a separate function block. Connect the calculated value pin of this function block to the gain parameter (K) of the PID function block that you are currently using to control the valve. The gain of the controller will now vary linearly between 1 and 2.75 as the temperarue difference of the feed forward varyies between 0 and 30 deg F. Or put another way, the bigger the temperature difference, the bigger the changes the valve will make.

BEFORE YOU DO ANYTHING, if you have a good controls person where you work, run my idea by him/her before you do anything. There is a good chance I could be way off as I can't see what is happening, and the information that I have is really limited. Even if he/she thinks I'm on track, it can't hurt to built a test points/loop to try it. This way, if it doesn't work, you can turn test points/loop off and turn the original back on. I like quick recoveries on my forays into troubleshooting.

If he/she disagrees with what I think, well, listen to him/her, because I am probably way off.

If you don't have a control guy to consult, ask your boss, foreman, instrument tech, somebody. I am very leery of giving out solutions over the internet like this. I don't mind giving out ideas and opinions, but solutions are a whole different matter.


I have done a similar setup on a Honeywell Plantscape DCS, which supports IEC-61131-3. I think I've seen it on a Delta V also.

I don't think the PLC manufaturer matters, but, what are you using anyway? Just curious. You don't have to answer.

Hope this helps a bit more.
 
koolant,

Just to clarify my above suggestion. I am suggesting you use a feedback control loop using the outlet temperature reading to control the water valve. The inlet temperature reading is used in a feed forward to vary the gain of the controller.


I have another thought on what may be causing the over/under shooting.

Your feed forward temperature reading on the inlet process stream, how are you accounting for the dead time? Does it ever change? What is the dead time? If your dead time changes, or if calculation is off, this fact may also induce the over/under cycling you are seeing.

Anyway, just a thought.
 
Eliminating the tuning issue, the valve response time of 90 seconds is extraordinarily long. I was not shocked until I saw that it is on a tiny valve. By 90 second response, are you refering to a full stroke travel time of 90 seconds with the full output signal applied?

John
 
In addition to John's question, is there a "rate of change" limit on the output (this may be programmed in the PLC, and in some instances, on the smart positioner) to the valve?
 
You say you normally need 15 gpm water flow. Assuming a city water pressure of 60 psig then you need a valve with a operational Cv of around 2. A 1 1/4" control valve with linear response will put you in about the middle of the range; that's good. So your problem has to be loop tuning. You can only respond as fast as the valve and/or the temperature probe.

It sounds like your loop is tuned way, way too fast. I wouldn't even think about introducing feed forward control until I got the feedback control working properly. You may find feedback control is all you need. Go back to loop tuning basics.

Tunr off diritive and intergral control and just set up a proportional control loop. That should get you most of the way there. Then play with the I and D elements. A properly tuned deritive will probably eliminate the need for any feed forward control.
 
Now you’ve got your loop tuned and you say “Big deal; I’m right back where I started. The loop’s too slow to prevent overshoot!” Well it looks like you do need feed forward control. (You knew that didn’t you?)


Well if I were you I would implement a three element control loop. I would probably want to do ratio control and feed temperature compensation as the feed forward components and exit temperature control as the feedback component.

Loop Output = Ratio + TC feed + TC out

Ratio control normally needs flow meters but under your conditions you have a fixed flowrate on one stream and a fixed feed pressure (city water pressure) on the other stream. You know what the ratio is at your normal operating point. You stated that your city water flow was normally 15 GPM and the product stream was 16 GPM. Assuming that the city water pressure doesn’t change much, you know what the output to the valve is under normal operation. Let’s say it’s 40%

The temperature compensation for the feed temperature could be described as a inverse, proportional-only control loop that uses the product feed temperature as it’s setpoint. This control element would have a zero output when the product feed temperature is at it’s normal feed temperature point. As the product temperature increases the output from this control loop would increase proportional to the rise in temperature. You could get a good idea as to the value of the gain by observing the valve output when the product feed temperature is at a high level. Let’s say the normal product in temperature is 120. You would use 120 as the loop setpoint. At 120 there would be no output from this loop component but if the temperature rose to 150 then the output might be 20%.

Finally you would use the PID feedback control loop for temperature control of the output product temperature as the final control element to trim in the final temperature.

Add all three components together, send the output to the control valve and you should have a nicely behaved loop. As you can see the ratio component is fixed so the loop will always have this component. Input temperature compensation might add to it and final temperature control might add or subtract from the total. ( you could set the ratio a little low so that you are always adding some final temperature control component)


How you would implement this in a PLC will depend on the PLC.

Hope this helps.

 
Now i am just a simple guy but i would try The KISS method(Keep it simple stupid)not that anyone is stupid on this forum i have recieved excellet help here.
1)can you move the process temp sensor closer to the heat source?This is the simple way to get the valve to react before the hot process fluid gets to your final actuation device the exchanger.
2)Just go with PD as a starting point!
3)set gain or pb to 50% and go in 10% steps down in pb or up in gain until overshoot then reduce at 2 % steps until min overshoot.
4)add "D" at .1 counts at a time
5) WATCH and take notes you may see the control stablize.It is possible to tune a process off the error frequency I.E. It half or double the gain and the system works well for a "time".

Remember this all takes time wait and see how well it works before making any large changes.Also only change one tuning para at a time.Otherwise you will not know what helped.


Good Luck,Joe
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor