View Single Post
  #9   Spotlight this post!  
Unread 05-09-2006, 02:17
eugenebrooks eugenebrooks is offline
Team Role: Engineer
AKA: Dr. Brooks
no team (WRRF)
 
Join Date: Jan 2004
Rookie Year: 2001
Location: Livermore, CA
Posts: 601
eugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond repute
Re: Alternative Method for calculating “I” term in PID

As an alternative, consider turning on the I term once the P
and D terms have brought the system within some reasonable
distance to the target, zeroing the integral and turning it on
to zero out the error in the control system that would otherwise
remain.

Eugene



Quote:
Originally Posted by Holtzman
Recently, I was doing a little work tuning PID constants. I couldn't get my “I” constant just right depending on my starting distance from the target. I always found that if I was a large starting distance from the target, the “I” term would grow large quickly, and it would overshoot the target. Also, with very short starting distances from the target, the “I” term would be too small, and it would take along time to reach the target.

After thinking about my problem for some time, I decided to change the way I was calculating the “I” term. Rather than calculating “I” as the traditional sum of the “P” term, I instead calculated it as the sum of the reciprocal of the “D” term.

So, when “D” is large, ie moving quickly towards the target, my “I” term grows very slowly. Where as when “D” is small, ie close to the target, but not making progress towards it, “I” grows quickly, pushing towards the target.

This caused the “I” term to remain small until it slowed, approaching the target. I found that this eliminated the problems I was having finding a constant that worked well with large and small starting distances from the desired target.

I’m no expert on PID loops, so I thought I would put the idea out there for some of the other’s around who have had more experience with PID than myself. I’m probably not the first one to think of this, so I would like to get some other’s thoughts on the idea. Questions, comments and advice would be greatly appreciated.

Last edited by eugenebrooks : 05-09-2006 at 02:38.