Cascade loop, Slave range.

Elcan

Lifetime Supporting Member
Join Date
Apr 2008
Location
NC
Posts
935
Hello all,
Sorry if my doubt is too basic.
I have a material heater. Cold material enters the heater and hot material comes out (too obvious? :D). A steam valve heats the material, opening from 0% to 100%.
As a reference, the output temperature set point is around 280ºF. The middle temperature usually is around 260ºF.

There's one temperature sensor at the middle of the heater (half way in the heater) and one at the output
I have a Master-Slave PID cascade loop to control the output material temperature. The Master PID has the output temperature as the process variable and the middle temperature slave PID set point as the manipulated variable. The Slave PID has the middle temperature as the process variable, and the steam valve as the manipulated variable.

OK. I set the output range for the Slave PID from 0%-100%. Very straightforward.
Since the temperature sensors range is 0ºF - 300ºF, I originally set the output range for the Master PID (after scaling) from 0ºF - 300ºF. However, it seems this is not the correct approach. Sometimes the Slave SP was calculated as low as 0ºF (when the output temperature is 290ºF or more), sometimes as high as 300ºF (when the output temperature is 270ºF or less). I would expect the middle temperature set point to be in the 250ºF - 270ºF range. I changed the Master output range (when scaling, not the CV parameter in RSLogix) to restrict the middle temperature SP to the 250ºF - 270ºF range, and the system improved.

My question is, how do you estimate the Master PID output range? I mean, imagine if I had a 0ºF - 400ºF sensor range, it would be crazy to let the system go up to 400ºF in the middle.
Thank you!
 
It does not seem to be a cascade PID loop need.
It appears that you have ONE Heat input and two temperature feedbacks at different locations along the product

Is your aim is to maintain the output temperature?
The Half way Temperature is either indication only or a possible feedforward term - this is so you know that cold or hotter than normal product is on the way and you can boost / retard the Output controller to compensate

Please provide a Diagram - I have used MS paint in the past
 
The output range of the PID controller is always 0 - 100%, regardless of how you subsequently scale the CV value. What you need to do is to enable output limiting on the loop that is generating the setpoint for the mid-stream temperature and then establish appropriate Output Min and Output Max values for that loop's CV so that you will never send an erroneous setpoint value to the loop that is actually controlling the steam valve.

You said that you originally attempted to limit the mid-stream temperature setpoint to 0 - 300 degrees. I'm not clear on exactly how you accomplished this, but I don't understand why you would choose such a range. It appears to me that the mid-stream temperature will always be less than the exit temperature in this heating process whenever it is in operation. Otherwise, your attempt to deal with the process lag by implementing a cascade scheme would not be viable. Therefore, I would assume that the maximum setpoint for mid-stream temperature should never exceed the exit temperature setpoint. As for the minimum mid-stream temperature setpoint limit, I would want to observe the process in operation to determine the ideal setting, but I'd be willing to bet my next paycheck that it shouldn't be zero degrees. Probably somewhere more along the lines of 200 to 240 degrees, assuming that your exit temperature setpoint is typically 280 degrees.

I would probably implement output limits for the mid-stream loop's setpoint that could be dynamically changed to track and bracket the exit temperature setpoint, although that might be redundant if the exit temperature setpoint is limited to a very narrow range.
 
This problem isn't basic. It is a good problem. The intermediate temperature sensor is a new twist I haven't seen in an application before. I will help. Bit_Bucket_07 has a pretty good idea of what should happen the slave sensor IF all assumption are correct.

MichaelG wonders if this application requires cascaded loops and so do I. The reason I wonder is that it isn't like there are two different systems being controlled like a steam valve position and a temperature sensor.

Too often I see people ask for advice on how to do the wrong thing. You should be asking what is the bigger problem you are trying to solve. Who came up with this idea? I know I could solve it without using cascaded loops.
 
It does not seem to be a cascade PID loop need.
OK, but what would be the alternative?

It appears that you have ONE Heat input and two temperature feedbacks at different locations along the product.
Correct.

Is your aim is to maintain the output temperature?
Yes.

The Half way Temperature is either indication only or a possible feedforward term - this is so you know that cold or hotter than normal product is on the way and you can boost / retard the Output controller to compensate
How would you "boost/retard" the output controller (Master PID?)?

Please provide a Diagram - I have used MS paint in the past
Attached.

Thank you for your comments!

Heater_01.jpg
 
The output range of the PID controller is always 0 - 100%, regardless of how you subsequently scale the CV value. What you need to do is to enable output limiting on the loop that is generating the setpoint for the mid-stream temperature and then establish appropriate Output Min and Output Max values for that loop's CV so that you will never send an erroneous setpoint value to the loop that is actually controlling the steam valve.
That's the point of my post: calculating the range for the mid-stream temperature set point.

You said that you originally attempted to limit the mid-stream temperature setpoint to 0 - 300 degrees. I'm not clear on exactly how you accomplished this, but I don't understand why you would choose such a range. It appears to me that the mid-stream temperature will always be less than the exit temperature in this heating process whenever it is in operation. Otherwise, your attempt to deal with the process lag by implementing a cascade scheme would not be viable. Therefore, I would assume that the maximum setpoint for mid-stream temperature should never exceed the exit temperature setpoint. As for the minimum mid-stream temperature setpoint limit, I would want to observe the process in operation to determine the ideal setting, but I'd be willing to bet my next paycheck that it shouldn't be zero degrees. Probably somewhere more along the lines of 200 to 240 degrees, assuming that your exit temperature setpoint is typically 280 degrees.
I totally agree with this. In my particular process, the lower limit for the mid-stream set point is around 260, but it depends on the system (boiler, material, etc.).

I would probably implement output limits for the mid-stream loop's setpoint that could be dynamically changed to track and bracket the exit temperature setpoint, although that might be redundant if the exit temperature setpoint is limited to a very narrow range.
The system is working now with the limits set as (Master PID SP - 20) to (Master PID SP - 10), but it can be improved.

Thank you for your comments!
 
Who came up with this idea? I know I could solve it without using cascaded loops.
The idea came from an engineer who had worked with these kind of heaters in the past. He was not a control engineer, but a mechanical engineer.
If this control can be solved in a simpler way, I would be pleased to know how to do it.

Thank you!
 
YOU/WE MUST KNOW YOUR SYSTEM AND THE PROBLEM YOU ARE TRYING TO SOLVE.
The problem you are trying to solve is a dead time problem.

I thought the heater or steam would be before the first sensor but since it is after the first sensor I don't see how in the world the output of the PID is going to affect the temperature at the first sensor. Cascaded loops will NOT work! The cascaded loop idea would only work if the steam valve is before the first sensor and even then I don't think it is the best way to control your system.

I would love to use this as a 'training exercise' but that would drag this out and you seem to be in a hurry. Even more fun would be to post a link to this thread on LinkedIn and watch all the crazy suggestions from the PID gain tweakers.

I would approach this problem like it is any other FOPDT or SOPDT temperature control system except we can do a little better because the first sensor tells us how much the material must be heated up and the pump speed should tell us the how much material there is to heat up.

It turns out MichaelG was right, you can use the first sensor for a estimate of a feed forward or bias. You know how much material is being being heated how much to heat it because it is easy to calculate the difference in the temperature of sensor 1 and the set point. You should be able to calculate a bias for the PID by using and equation like this
bias = K* mass_flow* (SP-PV1). PV1 is the first sensor.
(SP-PV1) is how much the material must be heated
The bias equation should do a pretty good job of approximating the required control output without using a PID.
Tuning the PID should be easy if you can do some step changes in manual mode and use the procedure given on www.controlguru.com.

In short. Estimate the control output to generate a bias and then use the FOPDT or SOPDT tuning procedures on the controlguru website. The PID tuning shouldn't be to critical if the bias estimate is within 5%.
 
Is the steam non-contacting with the material stream? I imagine it is and that the steam is relatively low pressure and near saturated. If this were the case I might suggest controlling steam pressure downstream of the valve and use a product temperature to cascade a steam pressure setpoint. If material flowrate turndown is required you might use that to bias the pressure setpoint.

Here's the motivation: The temperature of condensing steam is determined by it's saturation pressure; raise the pressure and the temperature at which it condenses changes directly. Also, the pressure loop makes an excellent inner loop in that it responds quickly, probably linearizes the temperature/valve dynamics, and will quickly overcome disturbances such as variations in steam header pressure, as well as minor variations in material inlet temperature and flowrate.

But, as the above is based on a limited understanding of your specific system, the above could be all wrong...
 
I thought the heater or steam would be before the first sensor but since it is after the first sensor I don't see how in the world the output of the PID is going to affect the temperature at the first sensor. Cascaded loops will NOT work! The cascaded loop idea would only work if the steam valve is before the first sensor and even then I don't think it is the best way to control your system.

My draft was inaccurate. The heater has internal hollow disks where the steam flows in. I'm attaching a picture. Our heater is different, but the idea is the same.

I would love to use this as a 'training exercise' but that would drag this out and you seem to be in a hurry.
No, I am not in a hurry. The system is working "fine", but it could be perfected. Well, in most of the cases, the operators prefer to use only the Slave PID.

I would approach this problem like it is any other FOPDT or SOPDT temperature control system except we can do a little better because the first sensor tells us how much the material must be heated up and the pump speed should tell us the how much material there is to heat up.
Do you suggest adding the incoming flow rate as another input to the temperature control system?

Heater_Steam_Flow.jpg
 
Is the steam non-contacting with the material stream?
The steam is NON-contacting with the material. Please see my previous post.
If this were the case I might suggest controlling steam pressure downstream of the valve and use a product temperature to cascade a steam pressure setpoint.
Controlling the steam pressure is not in our design. We just have a 4-20 mA valve to control the steam flow.
[/quote]
 

Similar Topics

Just to check my sanity even though I think I found the solution. So, for this loop with long lag time we got 2 PID loops with the Outer Loop...
Replies
1
Views
1,165
Hello!! I'm working on a project that requires a Cascaded PID Loop to control solution temperature in a tank with a water jacket. The tank has...
Replies
2
Views
2,397
Dear all I would like to ask you for help in solving one algorithm, because I never worked with cascade PID. I have to realize heating valve...
Replies
12
Views
8,318
I ask you answer if you know precisely what PID loop update time in a Rockwell processor is and if you are experienced with cascade loops. Thank...
Replies
0
Views
5,771
Hi guys, I have some questions regarding the cascaded PID loops. I am working with RSLogix 5000, and I not using the built-in master/slave...
Replies
3
Views
3,898
Back
Top Bottom