mylemonjuice 发表于 2014-4-24 17:17:00

为啥自平衡车子这么抖呢,我看别人做的稳得不行啊

本帖最后由 mylemonjuice 于 2014-4-24 17:26 编辑

我一直在改pid三个参数,始终没办法达到理想的水平。平衡功能是实现了,用手轻轻地推也不会倒。可就是太抖了,看别人的车子,平衡时都是纹丝不动的,这究竟是怎么做到的,太令人费解了。莫不成除了pid三个参数以外还有什么绝招吗?

视频正在上传中,各位大神先帮我看看我pid的参数吧。

//------------------PID-----------------
voidPIDD(){
      kp = analogRead(8)*0.05;
      ki = analogRead(9)*0.00055;
      kd = analogRead(10)*1.5;
//------------------互补滤波 ------------------------
unsigned long now = millis();                           
    float dt = (now - preTime) / 1000.0;                  
    preTime = now;
    float K = 0.8;                  
    float A = K / (K + dt);                  
   f_angle = A * (f_angle + omega * dt) + (1-A) * angleA;
//------------------------PID控制 ------------------
   timeChange = (now - lastTime);
   if(timeChange>=SampleTime)
   {
      Setpoint=LSpeed_Need;
      Input = f_angle;
      error = Setpoint- Input;
      errSum += error* timeChange;
      dErr = (error - lastErr)/ timeChange;

Output = kp * error + ki * errSum + kd * dErr;
LOutput=Output+RSpeed_Need;//左电机
ROutput=Output-RSpeed_Need;//右电机
      lastErr = error;
      lastTime = now;
   }
}
http://www.tudou.com/programs/view/BS7JbK7oWXs/

Super169 发表于 2014-4-24 17:27:54

本帖最后由 Super169 于 2014-4-24 17:31 编辑

你的車子, 在完全平衡的狀態下, 是否成水平?

我只是測猜, 如果車子的平衡狀態並非水平, 而你要把它維持水平狀態, 就要不斷提供外力去抗衡, 電機就不能靜止了.

或者說, 你要維持的狀態的角度, 是否就是車子平衡狀態時的角度?


另外, 濾波的結果, 其變化是否保持在可接受的範圍之內?會否因為不正常的數據波動而發出指令給電機.

mylemonjuice 发表于 2014-4-24 17:54:36

Super169 发表于 2014-4-24 17:27 static/image/common/back.gif
你的車子, 在完全平衡的狀態下, 是否成水平?

我只是測猜, 如果車子的平衡狀態並非水平, 而你要把它維持水 ...

因为是凑合着做完的,很多地方都是用胶布固定的,精度可能比较低。
滤波出来的角度,最大误差有将近1度的样子,不知道是否在容错范围内?

但是抖动这么大,我觉得整个pid算法不是很理想

Super169 发表于 2014-4-24 18:09:18

mylemonjuice 发表于 2014-4-24 17:54 static/image/common/back.gif
因为是凑合着做完的,很多地方都是用胶布固定的,精度可能比较低。
滤波出来的角度,最大误差有将近1度的 ...

影片看不到(可能因為我在香港), 不知是什麼情況.
其實我也不太懂, 只看了一些網上的資料, 還未開始做.

剛訂了電機, 今個周末也來湊湊熱鬧.   請問你用的是 6V/12V 減速電機嗎?

heiketiguo 发表于 2014-4-24 18:18:50

楼主这个有码盘吗?

mylemonjuice 发表于 2014-4-24 18:19:32

heiketiguo 发表于 2014-4-24 18:18 static/image/common/back.gif
楼主这个有码盘吗?

不带码盘

swfzz 发表于 2014-4-26 13:04:20

你们讲的怎么这么高深啊,请问这个动态误差是几个意思啊?

pig881 发表于 2016-5-27 22:33:33

我的也很陡啊!! 我还用了 20线的 码盘!!我是用卡尔曼滤波算法的,可是无论怎么调都是抖:

http://player.youku.com/player.php/sid/XMTU4NTA2MjEwOA==/v.swf

pig881 发表于 2016-5-28 19:22:16

pig881 发表于 2016-5-27 22:33 static/image/common/back.gif
我的也很陡啊!! 我还用了 20线的 码盘!!我是用卡尔曼滤波算法的,可是无论怎么调都是抖:

无语。。。

amaverick 发表于 2016-8-12 23:09:59

解决没有?还抖吗?分享点经验。
页: [1]
查看完整版本: 为啥自平衡车子这么抖呢,我看别人做的稳得不行啊