/**************************************************************************
pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]
**************************************************************************/
int Incremental_PID_Left(int reality,int target)
static float Bias,Pwm,Last_bias=0,Prev_bias=0;
Bias=target-reality; /* 计算偏差 */
Pwm += (Incremental_KP*(Bias-Last_bias)) /* 比例环节 */
+(Incremental_KI*Bias) /* 积分环节 */
+(Incremental_KD*(Bias - 2 * Last_bias + Prev_bias)); /* 微分环节 */
Prev_bias=Last_bias; /* 保存上上次偏差 */
Last_bias=Bias; /* 保存上一次偏差 */
int Incremental_PID_Right(int reality,int target)
static float Bias,Pwm,Last_bias=0,Prev_bias=0;
Bias=target-reality; /* 计算偏差 */
Pwm += (Incremental_KP*(Bias-Last_bias)) /* 比例环节 */
+(Incremental_KI*Bias) /* 积分环节 */
+(Incremental_KD*(Bias - 2 * Last_bias + Prev_bias)); /* 微分环节 */
Prev_bias=Last_bias; /* 保存上上次偏差 */
Last_bias=Bias; /* 保存上一次偏差 */