We are in the process of updating the temperature controls on a jacketed vessel. The heating system uses split range control. The cooling is approximately 5 times faster than heating for the jacket so the system is set up to use adaptive gains; for example P heating = 5 and P cooling =1. The jacket controller output is 0 to 100%, with 0% being full cooling and 100% being full heating. 50% is not heating or cooling and the cross over point where the Gains are switched out (for the adaptive Gains system).
The issue I am having: When the jacket controller crosses over the 50% output, the first calculation that is made to change the output uses the last set of gains that were in the controller. Let's say we are at 50?C and the controller output is at 50%. If we increase the set-point to 60?C, the jacket temp will gradually rise to 60?C and overshoot it slightly as expected. The issue is that when it over shoots it, the controller still has the heating gains in the controller when it calculates the output for cooling. So the first calculation calling for cooling changes the output to the extent that it significantly overhoots the set-point. Since the P and I constants are so small for the cooling range, it takes a significant amount of time for the controller output to adjust and once again call for heating. This constant ?fighting? doesn?t allow the system to stabilize.
I have confirmed the system is responding as I have described by placing the system into simulation and trying various scenarios. If I set P heating = P cooling with I heating and I cooling equal to 0 (not using D since the jacket is an integrating system), then as I adjust the actual temp to the set-point, over shoot, and recover; the system settles out to 50% output as expected. However if I set P heating = 5 and P cooling = 1, the system uses the last constants in the controller to change the output when it crosses over 50%. This results is the controller calling for heating (or cooling) when the actual temp is equal to the set-point after crossing over the 50% output a few times.
Any help would be appreciated.
The issue I am having: When the jacket controller crosses over the 50% output, the first calculation that is made to change the output uses the last set of gains that were in the controller. Let's say we are at 50?C and the controller output is at 50%. If we increase the set-point to 60?C, the jacket temp will gradually rise to 60?C and overshoot it slightly as expected. The issue is that when it over shoots it, the controller still has the heating gains in the controller when it calculates the output for cooling. So the first calculation calling for cooling changes the output to the extent that it significantly overhoots the set-point. Since the P and I constants are so small for the cooling range, it takes a significant amount of time for the controller output to adjust and once again call for heating. This constant ?fighting? doesn?t allow the system to stabilize.
I have confirmed the system is responding as I have described by placing the system into simulation and trying various scenarios. If I set P heating = P cooling with I heating and I cooling equal to 0 (not using D since the jacket is an integrating system), then as I adjust the actual temp to the set-point, over shoot, and recover; the system settles out to 50% output as expected. However if I set P heating = 5 and P cooling = 1, the system uses the last constants in the controller to change the output when it crosses over 50%. This results is the controller calling for heating (or cooling) when the actual temp is equal to the set-point after crossing over the 50% output a few times.
Any help would be appreciated.