这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 平衡车的速度环问题 主要是积分系数I有疑惑

共5条 1/1 1 跳转至

平衡车的速度环问题 主要是积分系数I有疑惑

菜鸟
2015-05-18 08:42:37     打赏
//(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))




助工
2015-05-19 12:25:01     打赏
2楼

根据以上代码分析

到KI(积分系数)应该是指PI控制的系数吧

Ti(积分时间)20ms

T(采样周期)20ms


菜鸟
2015-05-19 16:21:49     打赏
3楼

感谢你,又一次回答我的问题。那么我还是疑惑。

我每次调试的时候都是调试PID_Speed.I 那么这里的I是起什么作用呢?我认为是改变积分作用的强弱。这样理解,对吗?Position就是我用速度积分出的位移。


高工
2015-05-20 12:05:45     打赏
4楼

u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt]

  kp为比例系数;TI为积分时间常数; TD为微分时间常数

积分项输出可以看作 kp*1/TI∫e(t)dt,离散化后就是kp*1/TI*误差积分,这里误差积分就是Position,PID_Speed.I对应的就是kp*1/TI


助工
2015-05-20 20:06:16     打赏
5楼
是的

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]