AB Rockwell PID function
I am tuning a PID function for a hot water tank. There is a valve (CV) that opens to allow hot water through when the temperature (PV) goes below the setpoint. The valve will close when the PV goes above the temperature (stops adding hot water). But there is a constant overshooting and undershooting ~15deg above and below the SP, without maintaining the SP.
The problem is, when the PID is trying to maintain the temperature, it will keep the valve 100% when it's cold (below SP), and 0% open when it's too hot (above SP). the CV will range in between 0-100% for a short period of time when crossing the setpoint (in either direction), and depending on the Kp, Ki values, I can slow down how fast/slow it takes to get to 100% or 0%, however I have not found a setting that allows the output to maintain CV somewhere in between 0-100% for a more gradual PV change.
Currently, the PV will be somewhere below the SP, and CV is 100% (fully open) to bring in hot water. The PV will slowly creep up to the SP, but the CV is still 100% open. It's not until the PV gets a decimal over the SP that the CV value starts to drop, until it gets to 0% (fully closed), and stays at 0% until the PV reaches a decimal back below the SP, and then it will gradually go back to 100% and stay there.
What I am trying to accomplish is BEFORE the PV reaches the SP, I would like the valve to gradually open or close, so that it is not getting a constantly swinging temp +/-15 from the SP. In this scenario, when the PV is below the SP, the valve starts to open a little. It stays open a little in hopes of achieving the SP, or opens more if the PV continues to drop. As it approaches the SP, the CV closes more and more. Once it reaches the SP, the CV modulates so that the temperature maintains the SP. If it goes over, the valve closes a little, if it continues to climb, the valve closes more, and modulates appropriately to maintain the SP...basically, how a PID is supposed to work.
I have never tuned one of these, but did receive training many, many years ago. Perhaps there is something I am forgetting or missing completely but my changes seem to only affect how long it takes the valve to swing from 0-100% and vise verse, but not WHEN it starts changing.
Apparently this only started not working when the controller was upgraded from SLC to CTL.
These are the settings it is set to currently:
- Output bias: 0.0
- Kp: 0.5
- Ki: 0.005
- Kd: 0.0
- Equation: Independent
- Control A: SP - PV
- Der. of: PV
- Loop Update Time: 0.5s (I changed it from 4 to 0.5)
- Deadband: 0.0
No boxes checked off
----------------
Please let me know your thoughts. Thanks!
I am tuning a PID function for a hot water tank. There is a valve (CV) that opens to allow hot water through when the temperature (PV) goes below the setpoint. The valve will close when the PV goes above the temperature (stops adding hot water). But there is a constant overshooting and undershooting ~15deg above and below the SP, without maintaining the SP.
The problem is, when the PID is trying to maintain the temperature, it will keep the valve 100% when it's cold (below SP), and 0% open when it's too hot (above SP). the CV will range in between 0-100% for a short period of time when crossing the setpoint (in either direction), and depending on the Kp, Ki values, I can slow down how fast/slow it takes to get to 100% or 0%, however I have not found a setting that allows the output to maintain CV somewhere in between 0-100% for a more gradual PV change.
Currently, the PV will be somewhere below the SP, and CV is 100% (fully open) to bring in hot water. The PV will slowly creep up to the SP, but the CV is still 100% open. It's not until the PV gets a decimal over the SP that the CV value starts to drop, until it gets to 0% (fully closed), and stays at 0% until the PV reaches a decimal back below the SP, and then it will gradually go back to 100% and stay there.
What I am trying to accomplish is BEFORE the PV reaches the SP, I would like the valve to gradually open or close, so that it is not getting a constantly swinging temp +/-15 from the SP. In this scenario, when the PV is below the SP, the valve starts to open a little. It stays open a little in hopes of achieving the SP, or opens more if the PV continues to drop. As it approaches the SP, the CV closes more and more. Once it reaches the SP, the CV modulates so that the temperature maintains the SP. If it goes over, the valve closes a little, if it continues to climb, the valve closes more, and modulates appropriately to maintain the SP...basically, how a PID is supposed to work.
I have never tuned one of these, but did receive training many, many years ago. Perhaps there is something I am forgetting or missing completely but my changes seem to only affect how long it takes the valve to swing from 0-100% and vise verse, but not WHEN it starts changing.
Apparently this only started not working when the controller was upgraded from SLC to CTL.
These are the settings it is set to currently:
- Output bias: 0.0
- Kp: 0.5
- Ki: 0.005
- Kd: 0.0
- Equation: Independent
- Control A: SP - PV
- Der. of: PV
- Loop Update Time: 0.5s (I changed it from 4 to 0.5)
- Deadband: 0.0
No boxes checked off
----------------
Please let me know your thoughts. Thanks!
Last edited: