Dear all,
I have quite an experience in programming PLCs but it is the first time I get to Implement a process control.
This is not a thread asking what are the PID parameters but rather a set of questions related to the overall system.
My background with process control is limited to my university classes of control system engineering, so please bare with me.
I am trying to educate myself reading the book "Controling with Simatic" by J. Mueller and then reading at controlguru.com.
I have a tank 25m3 to store hot Ammonium nitrate at 100-110 deg C. There is a steam jacket (type: dimple) and a 300.000kcal/h steam boiler.
Steam is regulated to the jacket via an analog valve with an I to P converter. The tank is insulated.
The plant is not started yet so I have any freedom to perform my tests. Please also note that my tests are done with water in the tank instead of the final product.
The CPU used is a 314C - 2PN/DP and an FB41 block is used in OB35. System is controlled via WinCC flex 2008.
1. Question about the valve
The I/P converter takes 1.3 bar of air. I disconnected the valve pilot and connected a pressure gauge at the output of the converter.
I then tested changing the PLC analog output in steps of 5%.
I got a very linear response where at every increase of the signal step I got the same increase in the air output of the converter.
However, when the converter is connected to the valve pilot, I get the following response from the Valve.
Up to 25% of the signal, I get no steam flowing through the valve and I can see that the valve pilot does not move from the zero position.
After 25% up to 40-45% there is very slight movement of the pilot and then I get a very slight flow of steam. Finally, from 45% to 75% (maximum) of the signal I get sufficient steam flow but I am pretty sure that although the valve pilot moves in a linear way, the steam flow is not linear.
The question is: Is this a typical valve response? Should I try to make it linear and is there a way to make it linear?
2. Question about the process
My aim is to preserve the content at a constant temperature. I think that my system is only disturbed by the heat losses to the environment.
The heat losses though, due to the insulation are very small, less than 10 kW thermal. This means that to preserve the temperature I need a very small energy input. From tests I made, the problem is that if I overshoot my setpoint by say 4 deg. Celsius, then it takes 4-5 hours for the temperature to reach the setpoint.
In other words, I can heat the content very quick, but when I close the valve, it takes hours to see a drop in temperature.
So, the question is, is this an application that it is possible to employ PI(D?) control.
3. Controller tuning
Due to the lack of disturbances and the good insulation I think that my process is an Integrating process.
If from steady state and LMN=0 I make a stepoint step, the system does not reach another steady state but the temperature increases until the controller output LMN is zero again.
I guess that as this is an integrating process there is no simple way to bump the controller and then record the responce and derive the controller settings by using a First order plus dead time. Is there a proven practical method to establish controller coeffitients?
As I dont get involeved process controls every day, I cannot afford to purchase Control simulation software.
4. Controller trial and error results.
I got to play with the controller and I noticed the following:
With an aggresive PI controller (Kc=3, Ti=10s) I got small overshoot but the controller was swinging from 0-100%.
With a less aggresive PI controller (Kc=2, Ti=60s) I got huge overshoots and still there was a large variation on the LMN of the controller.
One question is if I have to do something about Integral windup or if FB41 does it for me. Is it enough to set INT_HOLD when LMN=0% or when LMN=100%
Another question is about the behaviour of the controller output.
Is it normal to be 100% all the way to the SP, or the Controller should anticipate that it nears the SP and start reducing the output before it reaches the SP.
Finally, I suspect that opening the valve at 75% the heat input is so great that It will definatelly overshoot.
Should I further limit the stroke of the valve to a smaller value? But then the regulating range of the valve will be very small. Is that normal?
What I dont understand and troubles me is the very long time it takes for the temperature to drop after an overshoot.
Any help is highly appreciated.
Regards
[?]: S7 Steam heated tank PID control
-
- Posts: 87
- Joined: Wed May 19, 2010 2:22 pm
- Location: Bulgaria
Re: [?]: S7 Steam heated tank PID control
Hi,
At first I am not an expert in PID Control, but I've used it for many years and many tasks. I will give you my personal opinion and answers to your questions.
1. Question about the valve – each valve has its own response characteristics. Yes, you should try to make it as linear as possible. Maybe that valve needs a higher pilot pressure? Check the specs of the valve. Maybe that valve is not suitable … Consider valve replacement with different size or type.
2. I don’t know what will be the real process, but I think there should be any (at least small) discharge volume from the tank constantly or from time to time and it is topped- up with fresh (cold) liquid. Am I right? Maybe your test environment is quite far away from real one and that is why it takes so long to get back to set- point in case of overshooting.
3. I think you are right and you got the answer in your question.
4. How fast you should heat- up the tank? Try to reduce Kc much more. It will make your PID less responsive and eventually it will fix overshooting problem. There are a lot of PID tuning algorithms, but I prefer “Ziegler–Nichols method”. Google it and you will find tons of links. Here are few of it:
https://controls.engin.umich.edu/wiki/i ... gClassical or http://en.wikipedia.org/wiki/PID_controller#Loop_tuning or
http://techteach.no/publications/books/ ... roller.pdf
Once again, I am not expert.
Good luck.
At first I am not an expert in PID Control, but I've used it for many years and many tasks. I will give you my personal opinion and answers to your questions.
1. Question about the valve – each valve has its own response characteristics. Yes, you should try to make it as linear as possible. Maybe that valve needs a higher pilot pressure? Check the specs of the valve. Maybe that valve is not suitable … Consider valve replacement with different size or type.
2. I don’t know what will be the real process, but I think there should be any (at least small) discharge volume from the tank constantly or from time to time and it is topped- up with fresh (cold) liquid. Am I right? Maybe your test environment is quite far away from real one and that is why it takes so long to get back to set- point in case of overshooting.
3. I think you are right and you got the answer in your question.
4. How fast you should heat- up the tank? Try to reduce Kc much more. It will make your PID less responsive and eventually it will fix overshooting problem. There are a lot of PID tuning algorithms, but I prefer “Ziegler–Nichols method”. Google it and you will find tons of links. Here are few of it:
https://controls.engin.umich.edu/wiki/i ... gClassical or http://en.wikipedia.org/wiki/PID_controller#Loop_tuning or
http://techteach.no/publications/books/ ... roller.pdf
Once again, I am not expert.
Good luck.