PID not cutting it.

The other systems are much smaller. They have a 200 gallon reactor tank. This one is 2000. I can not control hot oil flow. The only thing I can do is control the hotoil setpoint.

Then it may work only as good as your manual controlling, try thinking about the way you manually control it and put that into your program.... say you can limit your inflow or setpoint once it hits within 100 deg of your SP

This is where I was talking about having two PID (note never done in a PLC) but I would think having one PID for when your within 50deg of setpoint and having another when your out of the 50deg

Sounds like you got a hard project dumped on you...
 
What you describe sounds like a cascaded PID loop. The inner loop is the oil skid controller and the outer loop is the reaction tank controller. The outer loop changes the setpoint of the inner loop. I used to refurbish fractionators in the oil industry and we would use cascaded loops on the furnace/mid tower temperature control. The furnace re-circulation flow rate was constant and we controlled the temperature by adjusting a gas flow valve via the inner PID loop. The mid tower temperature which was around 400 degrees was around 50 degrees cooler than the furnace temp. There were long lags and we had to write special logic to put one of the PID loops in manual at certain times. The outer loop would only make slight changes to the setpoint of the inner loop. You might need to run it in manual to "characterize the system". Ziegler Nichols ain't gonna work.
 
Last edited:
Dead time can be a huge problem.
You said your system is MUCH bigger than the other one that is running. The thermal mass of your system can be much larger so the response will be much slower.

You have a cascaded loop type of situations. The time constant of the outer loop should be longer than the time constant of the inner loops so I would refrain from tuning the PID that controls the oil temperature too aggressively.

You need to find out what you can about the other PID.

This is a prime example of why I have contempt for so many engineers. They build **** then expect someone else to figure out if it is controllable or not. I agree with Harryting, there should be documentation about the transfer functions if the system was truly designed and not kludged.

Another rant. I bet the designers of this system learned differential equations and Laplace transforms then quickly forgot them.

So what now? Tuning a cascaded PID system is not easy. If there were transfer functions I could calculate controller gains. Rdischar will waste a lot of time with trial and error. He may get it to work but I bet he won't be able to it to work optimally unless he makes a reasonable model.
 
Before you can control it with your control system, you need to understand how to control it. Try controlling it by hand to learn how the system works. Find out how quick your oil temperature changes when the oil temperature set point changes. If it is fairly quick it is much easier to control. If it is slow, you need to predict what will happen and reduce the tank gets to set point (high derivative gain). Is it a batch, or continuous process? Are you starting from a cold tank and then maintaining a temperature, or are you only trying to maintain a temperature. Is new product coming into the tank that must be heated (or cooled)? Is the reaction exothermic? How long does it take to heat the tank? Is the temperature probe in the top of the tank a good number for the entire tank? If you can control it by hand, you can make up a control system designed function similarly.
 
Before you can control it with your control system, you need to understand how to control it.
Yes, yes, yes! but that knowledge is way beyond what a typical PLC programmer would know. This problem would be a good for for senior college students or even graduate student.



Try controlling it by hand to learn how the system works. Find out how quick your oil temperature changes when the oil temperature set point changes.
OK, but then what? The data must be recorded so it can be analyzed later. I don't know of any PLC courses that teach this.



Is the reaction exothermic?
That opens another can of worms.



How long does it take to heat the tank? Is the temperature probe in the top of the tank a good number for the entire tank? If you can control it by hand, you can make up a control system designed function similarly.
Controlling the system manually would provide some insight but it isn't the optimal solution.


I put the fault at the "designers" and lack of documentation.


BTW, a PI or PID should "hack it" with the right information but the PI or PID might need to be augmented with a Smith Predictor if the dead time is long.


Another option is model predictive control but that requires a model and the processing is too much for a PLC.
 
Before you can control it with your control system, you need to understand how to control it. Try controlling it by hand to learn how the system works. Find out how quick your oil temperature changes when the oil temperature set point changes. If it is fairly quick it is much easier to control. If it is slow, you need to predict what will happen and reduce the tank gets to set point (high derivative gain). Is it a batch, or continuous process? Are you starting from a cold tank and then maintaining a temperature, or are you only trying to maintain a temperature. Is new product coming into the tank that must be heated (or cooled)? Is the reaction exothermic? How long does it take to heat the tank? Is the temperature probe in the top of the tank a good number for the entire tank? If you can control it by hand, you can make up a control system designed function similarly.
It is a batching process. We add two different chemicals and then heat the tank to 300 F. It takes about an hour to heat the tank to this temp. Then a catalyst is added and the process becomes exothermic. After the exotherm dies down we add a third chemical and maintain the temp at around 320 for 2 hours.
 
Before you can control it with your control system, you need to understand how to control it.

Agree and that was my point about running it manually, changing the flow, raising the oil primary, ect to see what options (reactions) you have or get from the process

Your exotherm also adds a new element, how many degrees does it add when added

I would love to work on this project... tuning was all me back in the day, keep in mind you need patience you need to wait to see your changes react before you can say they worked or not.... and you need to be able to repeat them
 
For the smith predictor route, the ratio of dead time to time constant should be less than 0.2 for it to be effective.

As suggested if you try a step change and use that reaction curve to tune for an overdamped response that might get you within tolerance, however it may be slow.

Alternatively it may be worth looking at Adaptive PID contol i.e. changing PID parameters for different parts of the process.
 
I have a system similar to yours: a stand-alone "box" that supplies cooled / heated glycol to a tank jacket, and a desire to control the temperature in the tank. Long delays before the temperate glycol even reaches the tank, let alone changes the temperature of the tank walls and the large volume of liquid inside.

Over-temperature is a problem, because of the thermal lag. By the time that the tank temperature is "happy" and starts backing off of the CV, there is so much extra energy in the pipe that it's too late.

The "box" has an internal PID controller, that may or may not be well tuned. I send it a 4-20 mA signal that represents the desired output temperature of the box.

Sound familiar?

-------------------

So here's what I did:

First, this setup is basically a cascaded loop, with the inner loop (vessel temp) controlling the glycol jacket outer loop of the "box".

Like with any cascaded loop, even though I don't control the outer loop in any meaningful way, the CV on my inner loop is the setpoint of the outer loop.

BUT, rather than have my 0-100% CV of my inner loop being an absolute setpoint (i.e., "at 100%, give me 100°C, at 0% give me 10°C"), I scale my output to be a temperature relative to to my target setpoint, and limited to a small band.

That is, if my vessel temperature is 35°C and my band is ±10°, then at 0% ("the vessel is way too hot) the requested setpoint from the "box" will only be 25°C (35-10). Similarly, if the PID winds up to 100% ("give me all the heat you can!"), the "box" setpoint is only 45°C.

Because of this, the thermal lag is way down. The process is slower to get to temperature from a "cold" start, but overshoots are way less because there is less extra energy in the system that the "box" has to overcome (and some of which will be delivered anyway because of the lag).

Eventually the system hits steady state, with a CV of 50 ±10 %.

When temperature control is off (i.e., the PID is in SWM mode), the output is set to 50% (i.e., setpoint to "box" = vessel setpoint).

----

I have several of these, and each vessel has its own range band. Small vessels with volatile chemicals have only a ±3 band; large tanks may have ±15, as they'll absorb a lot of thermal momentum without a huge change in temperature.

See how this (or something like it) will work for you.
 

Similar Topics

Hello, I have a motor that we are sending a RPM Speed Output from 0-100% to the VFD. However, the Motor HP needs to be limited to 6000 HP and the...
Replies
3
Views
83
I have S7 1512C controler for controlling 48 PID temperature loop, the output is PWM. Please I need the best, most efficient way to write the...
Replies
13
Views
583
Hi all, I'm having trouble solving a problem I've been working on for several months, and thought you might like a stab at it. The machine runs...
Replies
22
Views
918
How can I connect PID Output to a valve. In ladder logic program is there any logic do I want to add between valve and PID? PV=SP What will be the...
Replies
7
Views
406
I'm setting up a PID for a 50hp RO pump in a water treatment plant. When I go to manual mode on hmi I set the swm bit, I also ons the pid output%...
Replies
5
Views
564
Back
Top Bottom