[?]: S7 Steam heated tank PID control
Posted: Sun Nov 04, 2012 12:08 pm
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
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