Hello All,

I have a question about the implementation of PID control. First, some context: I'm building a (hopefully) self-leveling quad-rotor rc helicopter,
with the intent of learning a bit about control systems while building
something for entertainment's sake. I'm starting off by implementing a
PID control on a PC tethered to the craft, which sits in a fixture in
my basement that allows single-axis rotational movement. The tilt
sensor is one of these: http://www.microstrain.com/3dm-gx1.aspx
I've implemented the 'P' term and the 'D' term and after some
trial-and-error, it's now somewhat stable, settling to level after a
disturbance.

Now, I've decided to add the 'I' term, and realize now that there's something that I don't understand: does the integrator sum the error for

If it's for all time, then I don't see how the accumulated error ever gets 'zeroed-out' without overshoot.

If the sum is produced from recent past history, then how does one pick the length of the interval?

I'm just getting started here, so please speak slowly as though you were explaining this to a donkey.

Any advice is greatly appreciated,

Rick Armstrong, Portland, OR, USA

I have a question about the implementation of PID control. First, some context: I'm building a (hopefully) self-leveling quad-rotor rc helicopter,

Now, I've decided to add the 'I' term, and realize now that there's something that I don't understand: does the integrator sum the error for

___all___time (i.e. as long as the controller has been running), or just for the "recent past"?If it's for all time, then I don't see how the accumulated error ever gets 'zeroed-out' without overshoot.

If the sum is produced from recent past history, then how does one pick the length of the interval?

I'm just getting started here, so please speak slowly as though you were explaining this to a donkey.

Any advice is greatly appreciated,

Rick Armstrong, Portland, OR, USA