Hacker News new | past | comments | ask | show | jobs | submit login

I always do integrator wind-up similar to how you do it -- apply limits to the overall controller output (which are typically necessary for the system anyway), and use that to limit the integrator. Just putting limits on the integrator is too crude, and it's not like it's any easier to program. Maybe the author introduced that because it's easier for a beginner to understand.

However, I typically do not change the state of the integrator the way you are doing here. I just hold the integrator state (i.e. don't update it) if the controller is limited. That way, noise on the P or D signals doesn't cause my integrator state to hop around. I may do it your way if the controller limits are changing over time for some reason.

I also always low-pass filter the D term, as you mentioned. Otherwise, the D term is just too noisy.

I often find that my P and D terms are limited by how much sensor noise I'm willing to let thru to my controller output.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: