//(1) PID_Control.OUT+=PID_Speed.I*Position; //(2) void TIM4_IRQHandler(void) //TIM4中断 { if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 { static u8 ms1=0,ms2=0,ms3=0; ms1++; ms2++; ms3++; if(ms1==2) { ms1=0; MPU6050_Pose(); } if(ms2==4) { ms2=0; Calculate_Pwm(Pitch); } if(ms3==20)//20ms计算一次积分的值 { Lowpass_Filter(); } TIM_ClearITPendingBit(TIM4, TIM_IT_Update ); //清除TIMx的中断待处理位:TIM 中断源 }
目前我的小车已经能只用角度环站起来了(挺稳的 几乎不动) 还没加速度环。因为对速度环的理论还没完全搞清楚。所以想在论坛上讨教清楚。
看了很多的PID资料,里面都会提到KI(积分系数),Ti(积分时间),T(采样周期)。那么问题来了?
PS:代码附在上面 1我是每个20ms 采一次速度的积分值。许多人说这就是积分时间。我也是这么觉得的。那采样周期T在哪呢?(看代码(2))
2代码中的I是指什么呢? 是积分时间Ti呢,还是积分系数KI呢?
(看代码(1))