//(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))
我要赚赏金
