2010-10-07 67 views
0

我已经实现用公式PID功能,缩放PID(比例积分微分)输出

correction = Kp * error + Kd * (error - prevError) + kI * (sum of errors) 

我应该怎么做,以保持在一定的范围之间我的输出?说0-255如果我忽略不在0到255之间的任何值,它会产生一个摇摆的行为?

回答

0
correction = ... 

correction2 = correction; 
if(correction < least) {correction2 = least;} 
if(correction > most) {correction2 = most;} 

然后在适当的地方使用correction和correction2作为输出。

不要根据correction2进行修正,然后想知道为什么当你到达最少的边缘时,它会以奇怪的方式表现出来。