help tuning a slow temperature loop

agarb

Member
Join Date
May 2006
Location
USA
Posts
309
I have a slow temperature loop that I am struggling to get tuned.

It is a large steam-heated vessel which is preheated and then material is introduced for drying. The temperature element is suspended in the material area. Not really concerned with the response of the loop while preheating. As soon as cold material is introduced, we see a very large drop in temperature and then a long recovery time.

One reason that I am struggling to get this tune tuned is because the process is pretty sensitive and they don’t want to scorch the material. This means the operators are constantly putting the loop in manual (because they think they can do better) and I never get to fully see the results of my trial & error tuning changes.

Customer doesn’t really care about an underdamped loop, they just want it to get up to temperature without more than a couple degrees C of overshoot or so.

I am attaching some raw data and a trend (blue = SP, green = PV, brown = CV) to this message. Basically, the vessel was preheated until 6:09 PM and then the material was added.

I was wondering if anybody could make any tuning suggestions based on this data. My math is weak. If I knew one of those fancy tuning packages would give me good results, I'd buy it.

I am using the PIDE (with independent gains) in a ControlLogix processor.

trend.jpg
 

Attachments

  • temps_csv.txt
    150 KB · Views: 18
Not really concerned with the response of the loop while preheating. As soon as cold material is introduced, we see a very large drop in temperature and then a long recovery time.

there's a difference between tuning for "setpoint changes" and tuning for "load changes" ... if you're not sure about the difference, the link below might help with the general ideas ... (note that the forum has changed – the "attachment" is still there but it's located at the end of the post) ...

http://www.plctalk.net/qanda/showthread.php?p=11761&postcount=6

Customer doesn’t really care about an underdamped loop, they just want it to get up to temperature without more than a couple degrees C of overshoot or so.

I'm sorry – but I don't understand what you're saying ... if you can tell us more about this then maybe we can make some detailed recommendations ...

If I knew one of those fancy tuning packages would give me good results, I'd buy it.

depending on what options you bought with your RSLogix5000 software, you might already have it ... see the screen shot below ...

note that I am NOT saying that the autotune is the answer to all of your problems – but if you already have it available, then you might want to give it a try ...

I am using the PIDE (with independent gains) in a ControlLogix processor.

the PIDE has 167 parameters ... I strongly recommend that you post your entire project file ... you'll have to zip it first – forum rules ...

good luck with your project ...

.

do_you_have_autotune.jpg
 
agrab, you have the right idea in that you should get a trend and csv file but I can't do any tricky math on this because the load is changing all the time and that data isn't in your csv file. My approach would be to tune the system up without the varying load and change the set point between two different values and give the system time to reach a steady state between the values.

Then the load disturbance problem can be attacked. I would use a feed forward type of approach and turn on the heaters in proportion to the amount of heat the load will absorb. This way the control system can anticipate the correct control output instead of simply respond to errors. If the load changes the thermal time constant too much some method of compensating for that may be needed too.

Do you have any idea of when and how much material is entering the oven so a feed forward or bias can be implemented?

Underdamped systems will over shoot. You need to get the closed loop damping factor close to one. This usually means using the derivative gain.

I wonder how good those fancy tuning systems really are.
 
OK, I think a little more info is in order.

I am not concerned about setpoint changes, just load disturbances.

I have 2 load situations to contend with.

First - When they initially fill the vessel with cold material, I need to get up to temperature with a minimum of overshoot.

Second - As material is heating, they start taking moisture samples. When moisture falls below a threshold, they begin pulling hot material out of the bottom of the dryer while adding cool material to the top. In theory, the flow in = flow out (to maintain a constant material level in the dryer) and the process runs continuously from that point forward. Material residence time in the dryer is such that the makeup material is dry by the time it exits the bottom of the vessel. There is a level transmitter in the dryer that I use to control the flow of makeup material into the dryer (a working PID loop with a motor/VFD).

In the past, the entire process has been manual. Operator shoots an exposed area the dryer shell with an IR thermometer and manually adjusts a steam valve to regulate the temperature of the shell. I have complained that the control philosophy has substantially changed as we are now trying to control material temperature instead of dryer shell temperature. This means the loop becomes very "lazy" as it takes a significant amount of time to transfer heat from the dryer shell to the material.

Peter, I'm not sure how to address the load issue and add it to data. I supposed this would be the level of material in the dryer, but this changes greatly based on initial fill with cold material vs. the addition of makeup material. Is there any hope of getting this going based solely on the error and without using feed forwards?
 
Ron, I do have the PIDE autotune but have had very little success with it in the past on slow temperature loops. Additionally, I don't think I can use it in this situation as it looks for a steady state temperature prior to bumping the the CV. I'll never have that steady state condition because of the preheat sequence followed by a sharp drop as soon as they add the cold material. I don't really care about tuning the loop to preheat an empty vessel, but I do care about the recovery. Maybe your experience with the autotune differs from this?

I am attaching a stripped down version of my program. Due to NDA, I had to get rid of everything but the loop details. (Exported the routine and then imported it into a blank project.)

I didn't add the I/O modules but the temperature comes in via a thermocouple. Control output from PIDE is 0-100% which is then rescaled into a 4-20mA signal that is wired to the temperature control valve.
 
I am not concerned about set point changes, just load disturbances.
This info is necessary to compute the plant gain.

Peter, I'm not sure how to address the load issue and add it to data. I supposed this would be the level of material in the dryer, but this changes greatly based on initial fill with cold material vs. the addition of makeup material. Is there any hope of getting this going based solely on the error and without using feed forwards?
If you know when and how much material is being added it would really help.

If the auto tuner for the PIDE doesn't know about the disturbances caused by adding cold material the auto tuner will not work. Part of the trick of getting a good system identification for auto tuning is exciting the system correctly and keeping the number of variables to determine low.
 
This info is necessary to compute the plant gain.

Does the setpoint change need to be done with material in the dryer, or can it be empty? Having material would change how fast the heat is transferred to the thermocouple. But is it a safe assumption that for a given CV the final temperature would be the same regardless of whether or not the dryer has material in it?
 
Does the setpoint change need to be done with material in the dryer, or can it be empty?
It would be best if there was an average amount of material in the dryer. If the test is done with the dryer empty then more would need to be done to account for the greater change in load from what the PID was tuned for.

Then it would be good to hold the SP at its normal setting and put the control in manual so it doesn't change. Then run with different loads so a correlation between the load and the temperature can be determined. I have no idea of what you are heating but if you can figure out that 100 lbs per hour causes the temperature to drop 10 degrees and 200 lbs per hour drops the temperature 20 degrees then we need to use the results from the set point change to calculate the bias. For instant if changing the CV by 10% raises the temperature 5 degrees then we know the gain is 0.5 degree/CV%. Now if the load is 100 lb/hr we know we need to compensate for 10 degrees which equates to 20% control output. You would need to set the bias to 20% of the control output.

Now you know why the gain is important.

The calculations don't need be exact. If you are close you may reduce the errors by 90% because the PID only needs to 10% of the work. On top of that, if you know how much material is being added in advance you might time shift the feedforward or bias forward to compensate for any dead time delays.

Having material would change how fast the heat is transferred to the thermocouple. But is it a safe assumption that for a given CV the final temperature would be the same regardless of whether or not the dryer has material in it?
No, if you have a lot of very wet material the steam heat may not even get the material up to temperature or dry out. Think of the colder wet material as being a heat sink. Every pound of material is going to require so much heat to dry it out. This is why I think it would help to know the rate of wet material being added to the dryer. One can use this information to change the PID to compensate for the changes in load.

I know you have done motion control systems before and you know how feed forwards work. The error between the SP and PV can be greatly reduces if the control output can be estimated. The same goes for the temperature system.

This is not a simple system. Looking at the graphs it looks like the steam may not be enough to keep up with changes in the load.
 
trying to come up with some meaningful data ...

first ... could you do an "open loop characteristics test" like the one shown in the screen shot below? ... note that the system will NOT be loaded during this test ...

basic approach:

(1) set up a trend to graph the data similar to that shown below ... change the background of the graph to white ... it's hard to write on the default black background ... make sure that the scales of the graph (X-Axis and Y-axis) are both visible ...

(2) put the system in the MANUAL mode and set the drive to the heater for something low but reasonable like 10% or 20% (zero will NOT work) ... wait until the temperature settles down to a STEADY STATE ... I repeat: wait until the temperature settles down to a STEADY STATE ... if a steady state is not reached, then the results of this will be pretty well useless ... write down the amount of drive to the heater – and the steady state temperature ...

(3) leave the system in the MANUAL mode and set the drive to the heater for something high but reasonable like 70% or 80% ... again, wait until the temperature settles down to a STEADY STATE ... once again, write down the amount of drive to the heater – and the steady state temperature ...

(4) post the graph and your notes and we'll try to help you analyze the system and come up with some suggestions ...

=====================================

second ... run another "open loop characteristics test" but this time the system will be loaded part way through with raw (cold) material ...

basic approach:

(1) set up another trend to graph the data ...

(2) put the system in the MANUAL mode and set the drive to the heater for something high but reasonable (the "normal operating" amount of heater drive would be ideal) ... wait until the temperature settles down to a STEADY STATE ... write down the amount of drive to the heater – and the steady state temperature ...

(3) leave the system in the MANUAL mode and NOW introduce a reasonable load to the system ... in other words, put in a batch of raw material ... watch as the temperature drops – and then starts to recover as the load begins to heat up ...

(4) post the graph and your notes and we'll try to help you analyze the system characteristics come up with some suggestions ...

=====================================

the sketches shown in the following post should give you a rough idea of how the data can be graphically analyzed to give some insight into the actual characteristics of your system ...

http://www.plctalk.net/qanda/showthread.php?p=27701&postcount=6

good luck ...

.


heat_a.jpg
 

Similar Topics

Good afternoon all! I was wondering if anyone could explain more clearly to me the tuning parameters of a PID instruction on a 1769 AB...
Replies
7
Views
2,922
Hi, I have a question in my Instrumentation & Control HND which is as follows: Figure 3 shows the open-loop response of a process modelled by...
Replies
6
Views
4,316
Hello, I have a problem with tuning my PID loop in my RS5000 project. In my program I am using a PID loop to control the KW output of an engine...
Replies
11
Views
4,318
Hey PLCtalk! Wall of text comming in 3.2.1.. I'm a summer intern trying to learn how to work with PLCs and tuning processes. I've been given the...
Replies
5
Views
6,272
I am being thrown to the wolves and am driving to New York on Monday to tune a PIDFF loop. I am the wrong person to do this. Back in the day when...
Replies
7
Views
10,846
Back
Top Bottom