From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID control with large time delay in the process variable

Solved!
Go to solution

Hi

 

My goal is to control a temperature via a valve and heat exchanger. I have process variable (temperature) measured from a pipe. This temperature needs to be raised a few degrees with a heat exchanger. So basically I need to control a valve that allows water to flow through this heat exchanger in order to raise the measured temperature to a desired level.  

 

My original plan was to use a basic PID control to operate the valve. However there is about 0.5-1 minute time delay in the temperature sensor after I open the valve thus raising the temperature. This induces a situation where the PID control has the valve fully open during this time delay (trying to get the temperature raising). Then once the temperature starts raising it raises pretty fast. The PID starts closing the valve almost immediately but because of the time delay in the sensor, the temperature overshoots severely. This leads to severe oscillation and in worst scenario to unstable process. I have tried to tune the PID control to "predict" the time delay in order to close the valve well in advance to minimize overshoot but haven't been successful.

 

I would really appreciate if someone has any ideas how to achieve this type of control with Labview PID functions. I am also wondering if there is a better type of control procedure for this scenario than a PID control?

 

-Lars

 

 

0 Kudos
Message 1 of 5
(11,888 Views)
Solution
Accepted by topic author Muori

This is a very common situation in heater control, and usually PID can be tuned to make it work. How are you doing the tuning? If you're doing it through trial and error, you're unlikely to be successful. For a slow process with time delay I like to use the Cohen-Coon method, or the similar Ziegler-Nichols open-loop method. The idea is that you temporarily remove or disable the PID. Set the valve at a fixed position and wait for the temperature to stabilize. Then, change the valve setting and record temperature data at regular intervals until the temperature is again stable at a new value. Use this data to get initial PID values from the equations provided by the tuning method you choose.

Message 2 of 5
(11,866 Views)

The Cohen-Coon method worked for this heater control. Thanks for your reply!

0 Kudos
Message 3 of 5
(11,843 Views)

If you need better performance than you can get from a well tuned PID controller for a system with a long time delay - then using a model-based control like a Smith Predictor may help. Feedforward can also help in time delay systems if you problem has changing setpoints or measured disturbances.

 

However, sounds like a well tuned PID has been enough here ...

Consultant Control Engineer
www-isc-ltd.com
0 Kudos
Message 4 of 5
(11,791 Views)

@nathand wrote:

This is a very common situation in heater control, and usually PID can be tuned to make it work. How are you doing the tuning? If you're doing it through trial and error, you're unlikely to be successful. For a slow process with time delay I like to use the Cohen-Coon method, or the similar Ziegler-Nichols open-loop method. The idea is that you temporarily remove or disable the PID. Set the valve at a fixed position and wait for the temperature to stabilize. Then, change the valve setting and record temperature data at regular intervals until the temperature is again stable at a new value. Use this data to get initial PID values from the equations provided by the tuning method you choose.


Would using self-optimization to tune PID values work in this case?

0 Kudos
Message 5 of 5
(6,777 Views)