08-05-2011 12:41 PM
I've developed a PI program that uses measurements from a pressure transducer as the process variable to control air pressure released from a motorized valve. The program works great at lower pressures, but as the set point pressure increases the error between the process variable and set point increases. I've tried several things....adjusting the P seems to initially increase the overshoot but the process variable always settles down below the set point....tried adjusting the EGU min and max values but no real pattern develops with this. It appears as the process variable get closer to the max EGU value of 70000 pascals the error increases.
I've attached three screen shots showing the process variable curve and setpoint value. The graph of interest is the one in the upper right hand corner.
Any recommendation or advice would be appreciated.
tks, Terry
08-08-2011 08:09 PM
Is there any chance you're representing any value in this system as a U16? The reason I'm asking is because the maximum value of an unsigned 16 bit number is 65,535. Since you're getting errors at approximately 70,000, I'm wondering if a numeric overflow is occurring somewhere.
08-10-2011 09:40 AM
Kyle,
First off....I appreciate your comments. No...there is no value is system represented as U16.
Actually errors start to develop quite a bit before the maximum. If you look at the mid pressure.jpg file you'll notice that the set point (~28125 Pascals) and process variable (~25625 Pascals) are roughly off by about 2500 Pascals. Then if you look at the high pressure.jpg file you'll notice that the set point (~53000 Pascals) and process variable (~45500 Pascals) are roughly off by about 7500 Pascals. Therefore it appears as the setpoint pressure increases towards maximum the error tends to increase.
I was curious about something....the set point value I'm inputting into the PID.VI , shown in the high pressure.jpg file, is from EGU to percent.VI. It would look exactly like the EGU to percent VI feeding the process variable input of the PID.VI with the set point value feeding the EGU to percent.VI input. Would I be better off feeding the actual set point value to the PID.VI input instead of percentage?
Thanks, Terry
08-12-2011 06:03 PM
I would say the the PID function is most commonly used with actual values instead of percentages. I'm not sure how it's behavior would differ if it's performing operations on a percentage instead. However, the output range should be represented as a percentage.