极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29705|回复: 9

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

[复制链接]
发表于 2014-4-24 17:17:00 | 显示全部楼层 |阅读模式
本帖最后由 mylemonjuice 于 2014-4-24 17:26 编辑

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

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

//------------------PID-----------------
void  PIDD(){
      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;
   }
}
回复

使用道具 举报

发表于 2014-4-24 17:27:54 | 显示全部楼层
本帖最后由 Super169 于 2014-4-24 17:31 编辑

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

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

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


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

使用道具 举报

 楼主| 发表于 2014-4-24 17:54:36 | 显示全部楼层
Super169 发表于 2014-4-24 17:27
你的車子, 在完全平衡的狀態下, 是否成水平?

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

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

但是抖动这么大,我觉得整个pid算法不是很理想
回复 支持 反对

使用道具 举报

发表于 2014-4-24 18:09:18 | 显示全部楼层
mylemonjuice 发表于 2014-4-24 17:54
因为是凑合着做完的,很多地方都是用胶布固定的,精度可能比较低。
滤波出来的角度,最大误差有将近1度的 ...


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

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

使用道具 举报

发表于 2014-4-24 18:18:50 | 显示全部楼层
楼主这个有码盘吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-24 18:19:32 | 显示全部楼层
heiketiguo 发表于 2014-4-24 18:18
楼主这个有码盘吗?

不带码盘
回复 支持 反对

使用道具 举报

发表于 2014-4-26 13:04:20 | 显示全部楼层
你们讲的怎么这么高深啊,请问这个动态误差是几个意思啊?
回复 支持 反对

使用道具 举报

发表于 2016-5-27 22:33:33 | 显示全部楼层
我的也很陡啊!! 我还用了 20线的 码盘!!我是用卡尔曼滤波算法的,可是无论怎么调都是抖:

回复 支持 反对

使用道具 举报

发表于 2016-5-28 19:22:16 | 显示全部楼层
pig881 发表于 2016-5-27 22:33
我的也很陡啊!! 我还用了 20线的 码盘!!我是用卡尔曼滤波算法的,可是无论怎么调都是抖:

无语。。。
回复 支持 反对

使用道具 举报

发表于 2016-8-12 23:09:59 | 显示全部楼层
解决没有?还抖吗?分享点经验。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-19 14:59 , Processed in 0.044048 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表