Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

PID loop stability sensitive to command? 3

Status
Not open for further replies.

BrianE22

Specifier/Regulator
Mar 21, 2010
1,064
0
0
US
From my long, long ago control theory classe I think that the stability of a PID loop is independant of the magnitude of the command, at least for a well behaved, linear system. Is that correct?

But I'm also thinking that if you were to give a large step command, you might set off an instability that wouldn't be set off with a small command (at least for the real world and its non-linear devices). Is that correct?
 
Replies continue below

Recommended for you

The parameters should be set such that a large step input does not push the system into an unstable state. When that is done, a small input change will not cause an instability (though oscillation is possible). The reverse is not true...

Dan - Owner
Footwell%20Animation%20Tiny.gif
 
o.k., so if you were to limit the magnitude of the step command input then you could tune the PID loop to be more responsive? I'd assume you'd also need to limit the high frequency components of the step (low pass filter it a bit)?
 
Certainly. That said, a well-behaved loop will handle both small and large perturbations without resorting to artificial limits on the input. Sometimes that isn't practical, so the algorithm is modified to switch different filters in/out based upon what's going on. For example, a very small integration value can do very wacky things, so the designer may switch in zero when it's below a certain threshold. It's not an ideal system, but in practice things rarely are. I'm loathe to make such a modification unless it can be proven to be an absolute necessity.

Dan - Owner
Footwell%20Animation%20Tiny.gif
 
Rather than limit the input step magnitude, you could just limit the rate of change of the input, turn a large step into a ramp.
 
The problem is called integrator windup. A sudden jump in reference causes control inputs to saturate or max out their effect but the PID control algorithm was designed under the assumption of linearity and infinite control inputs. The resulting error occurrs because the output cannot comply and throws the control system into unstable oscillations.

I think you could pre process the input command so that it doesn't saturate control inputs by first low pass filtering the command input, if that is tolerable by your process.

Other possibilities are to turn down the integrator term with the resulting increase in steady state error, again if that is tolerable to your process.
 
Stability is not affected by the magnitude of the input for linear systems. Saturation, clipping, bit-overflow . . . these are all symptoms of non-linear systems, which all real-world systems acutally are.
 
Status
Not open for further replies.
Back
Top