Tuning Primary Loop in Cascade Loops??

RPax

Member
Join Date
Feb 2004
Posts
125
Hi, I was wondering would I be able to ask you a question on a Cascade loop.

Situation:
I have a situation where I am trying to tune a heating and cooling reactor system. As you can imagine in this situation the Pot tempeture is the primary Loop that I am trying to control with the jacket, the secondary loop, that provides the heating and the cooling.

There is a catch in the system, in that the pot temperature and the Jacket temperature cannot be outside 30 degrees of each other as the vessel is made of glass. So when heating (Pot temperataure setpoint increased), the Jacket temperature setpoint is set to the Pot temperature (PV) + 30deg. As the Pot temperature climbes so to does the Jacket setpoint until the Pot reaches a 2 degree deadband about the initial Pot setpoint where the Pot Primary loop Output becomes the Jackets set point.

Example:
Pot Setpoint increased from 20 deg to 100deg
Initially the Jacket setpoint = 20 +30 deg = 50 deg (this increases as the pot temp increases)
When Pot temp = 98 deg then the Pot Output from the PID becomes the setpoint for the jacket temp and the deaband temp is maintained.

The problem is that the deadband is being overshot i.e 102 deg thus my jacket setpoint is set to Pot temp - 30 deg, again the Pot then goes below 98 deg and the Setpoint is then Pot Temp + +30deg. This then continuous to occur and oscillate the Pot temp about the setoint (in and out of deadband)

To Remedy:
I have tuned the jacket tempeture secondary loop using the Ziegler Nicols tuning method and so far all is good. I can also reduce the 30 deg to say 25 deg setpoint difference and increase the deadband slightly. However, I believe the problem lies with the primary Pot loop in that it is not reacting fast enough. What I was wondering is how to tune a primary loop in this situation. Do I use a fast loop PID or a slower type?. I initially played around with a fast PID but caused the jacket setpoint to Jump around which In am trying to avoid.


I would be extremely gratefull for a bit of advise on this or a recommendation to a similiar thread. Many thanks - Rpax
 
RPax said:
Hi, I was wondering would I be able to ask you a question on a Cascade loop.

Situation:
I have a situation where I am trying to tune a heating and cooling reactor system. As you can imagine in this situation the Pot tempeture is the primary Loop that I am trying to control with the jacket,
is that flow?




There is a catch in the system, in that the pot temperature and the Jacket temperature cannot be outside 30 degrees of each other as the vessel is made of glass.
That just restricts the heating and cooling rate.

So when heating (Pot temperataure setpoint increased), the Jacket temperature setpoint is set to the Pot temperature (PV) + 30deg. As the Pot temperature climbes so to does the Jacket setpoint until the Pot reaches a 2 degree deadband about the initial Pot setpoint where the Pot Primary loop Output becomes the Jackets set point.
I think you should have a limit of +/- 30 degrees but not use the 30 degree offset for the whole ramp.

To Remedy:
I have tuned the jacket tempeture secondary loop using the Ziegler Nicols tuning method and so far all is good.
I don't see how it could be. ZN tuning has over shoot.



I can also reduce the 30 deg to say 25 deg setpoint difference and increase the deadband slightly. However, I believe the problem lies with the primary Pot loop in that it is not reacting fast enough. What I was wondering is how to tune a primary loop in this situation. Do I use a fast loop PID or a slower type?. I initially played around with a fast PID but caused the jacket setpoint to Jump around which In am trying to avoid.
I would go for the faster inner loop. I think your jumping around is caused by the ZN tuning. Tuning the inner loop would be difficult because of the temperature difference limitations but I would try a step change in the inner loop temperature while keeping the outer loop temperature constant. Obviously this can't be a big step change.

Back to the ZN outer loop. Does the output temperature oscillate? If you used ZN it will and that will not be good for the inner loop.



I would be extremely gratefull for a bit of advise on this or a recommendation to a similiar thread. Many thanks - Rpax[/QUOTE]
 
From what you describe, you're trying to heat up the pot with a thermal head of 30 degrees. It seems to me that the fixed head of 30 degrees could be where the problem lies.

The thermal head should reduce gradually as you get closer to setpoint.

I've done this on bell furnaces before with good effect:

the equation is jacket setpoint = pot setpoint + [k x pot error]

where pot error = pot setpoint - pot temperature

The jacket setpoint should also be clamped so that it cannot exceed 30 degrees above or below pot temperature

The value of k determines the magnitude of the thermal head and therefore the speed of response.

In your example you are effectively saying that k is = 15 so that when the pot is at 98 degrees, the jacket sepoint = 100 + [15 x 2] = 130. You are then instantly reducing the jacket setpoint by 30 degrees and expecting it not to overshoot.

If you set k at a value of, say, 2 then what would happen is that when the pot temperature starts at 20 degrees with a setpoint of 100, the jacket setpoint will try to go to 260 degrees but will be limited to 30 degrees above the actual pot temperature. As the pot temperature gets closer to setpoint the 30 degree limit will no longer apply so that at, say, 91 degrees, the jacket setpoint will = 100 + [2 x 9] = 118 degrees. At 98 degrees the jacket setpoint will be 104 degrees, at 99.5 degrees the jacket setpoint will be 101 degrees, and so on until when the pot is at 100 degrees the jacket setpoint is also 100 degrees.

The value of k can be experimented with until you get the best response without overshoot or undershoot - start low and work your way up.

If you're controlling with a plc this method should be fairly straight forward to implement and, with this method you only have one PID loop to tune - the jacket temperature control - which you say you've already tuned successfully.
 
Hi Burernam. Just wondering, can you tell me more about why you had to do this on a bell furnace? Ive worked on them before, and never had to control the temps seperately. I just needed to monitor the outer temp to make sure it didnt reach an unsafe temp. Im curious to what the furnace was like. Thanks

matt
 
What burnerman built up is a proportional only controller with bias. That should work pretty well if you can guarantee that the reactor temperature will ultimately reach the jacket temperature (no reactor thermal loss).

What is probably messing with you is the integrator in your outer loop. You are artificially limiting the ability of the outer loop to control the process by putting limits on it. The problem is the outer loop integrator doesn't know you are limiting the output. So it is most likely winding up to it's limit well before you are anywhere near setpoint. Since an integral sum won't start to decrease until you are past the setpoint you get oscillation.

I would try burnerman's method and see how it works for you. Since his method doesn't have an outer loop integrator you won't get outer loop integral oscillation.

However, if you know that the jacket temp needs to be some amount higher than the pot setpoint to reach pot setpoint and you don't know what that offset is, you may need an integrator in the outer loop. If you do need this I would do something to freeze the integrator when you are limiting. Depending on the plc you are using you may be able to manipulate the pid output limits directly from your program. If you use the right PID form these limits also provide an optimal integral limit.

Keith
 
Matthias von Zorn said:
Hi Burernam. Just wondering, can you tell me more about why you had to do this on a bell furnace? Ive worked on them before, and never had to control the temps seperately. I just needed to monitor the outer temp to make sure it didnt reach an unsafe temp. Im curious to what the furnace was like. Thanks

matt

A customer of ours got the idea from this to control their furnaces which were used to heat treat coils of stainless strip for making razor blades.

The coils were placed inside an inner bell within which was circulated a protective atmosphere. The main furnace was placed over this and the burners fired in the space between the two.

They wished to accurately control the actual temperature of the steel from a contact thermocouple and had tried several methods to avoid the conflict between fast enough heat up rates and overheating the outside of the bell.

This system did the trick and we've implemented it at other sites with success.

Incidentally, FGH make a version of their process controller to implement this strategy if a plc is not required.
 
Interesting. So is this the reason you did that then? As the link talks more along the lines of an IQ with burners in tubes and an atmosphere. Ive never had to do this with indircet heating (continuous muffle furnaces, bell furnaces, nitriders, etc). In those cases, as long as I montiored the outer heat area for over temp, I just let the PID tune take care of the furnace temp. Did they have an issue where the furnace temp overshot badly or something? Or, as in the link, they simply wanted to heat the load faster, so you treated the inner chamber like the atmosphere in an IQ?

Interestingly enough, ive found that most of my customers require I slow the heat up down with a ramp rate (to allow the middle to catch up) than overshoot the atmosphere to heat the center quicker.
 
Matthias von Zorn said:
Did they have an issue where the furnace temp overshot badly or something? Or, as in the link, they simply wanted to heat the load faster, so you treated the inner chamber like the atmosphere in an IQ?

I think the main reason was to heat up as quick as possible but if they just cranked up the outer setpoint they had problems with the temperature difference between the inside and outside of the inner (stainless steel) bell causing it to buckle.
 
Yea, they sure will. Hence the general rule of 100 to 200 ºF an hour for heating alloy muffles and bells. That will maximize the life of the alloy (which is CRAZY these days). I actually put that in as a limiting factor in our furnaces. Nothing like going from 72F to 2100F in a hour and a half to twist a machine apart.
 
Firstly Lads just want to say thnaks for your help.


Yeah I think you were right Peter I did use the term "all is well" quite loosely. Eventhought there is a 30deg Limit on the setpoint they allow another few deg (approx 4 deg of an overshot.)

Just a bit on the Jacket heating and cooling system. This is not all part of one unit but both two systems operating seperately cooling and heating a liquid called siltherm. The jacket temp is controlled by a splitter loop control valve (mounted on the return side of the jacket) that sits at 50% when closed. If 50% - 100% then heating by allowing a block valve open to allow the warm siltherm circulate. If 50% - 0% then cooling by allowing a different block valve to open to allow cold siltherm in. The two systems don't react the same.

An ideal solution would probably having a different PID values for both the heating and cooling. What I did was used ZN method on both heating and cooling and as expected got two differnt results. When I autotuned the combined system, my new recommended autotune values fell between the two seperately calculated PID Values. When running the Jacket in Auto the reaction isn't to bad but as you said there is overshoot but not by much.

Unfortunelely I am using a DCS system where changing the control block code isn't as flexible otherwise I would go down burnermans or keith's way. We have a similiar plant with the same control block code and the system works fine ,however, they use a different heating liquid even though I tried their settings but it didn't work. At the moment, the power's that be will insist in getting the current control module code block tuned eventhough it was never the case from day one.

I'ii definetely bear in mind your advise and will try tuning the inner loop again. Will let you know how I go. Again fairplay for help!
 

Similar Topics

Is it possible for me to tuning 2 servo at the same time, because this servo is connected by mechanical so I'm afraid that I need to tuning them...
Replies
3
Views
98
Have a logix controller and I'm using the PIDE block for the autotuner. I've got the hang of doing it for direct control things like pressure...
Replies
21
Views
1,669
Hello all, I am using a PowerFlex 700 (Rev 10.001) to maintain tension in a web. We're reading lbs from load cells under one of the rolls...
Replies
85
Views
11,287
Hello, I am attempting to tune a PID loop on a process. The process involves a valve with electronic actuator that has quite a high deadband...
Replies
10
Views
2,065
Hi Guys, During PID Tuning by Ziegler Nichols Closed-loop method, In TIA Portal there is a Trend Tool used to determine Ultimate Period; marking...
Replies
9
Views
1,820
Back
Top Bottom