各位大神来帮帮忙,平衡车在中心位置晃动怎么办?
本帖最后由 wdyggh 于 2014-8-9 20:56 编辑问题1: 我用的霍尔元件的电机,12v,齿轮比18:1。10ms为采样周期,用串口看的速度几乎为1 。这个要怎么解决??
我用的是avr128. 直接用的外部中断测速的。
代码大致如下
ISR(INT2_vect)//L
{
speed_ml++;//左电机
}
ISR(INT3_vect)//R
{
speed_mr++; //右电机
}
问题2: 实际上是接问题1
if(PWM_L<0) speed_ml = -speed_ml;
if(PWM_R<0) speed_mr = -speed_mr;
speed_r_l =(speed_mr*10 + speed_ml*10)*0.5;//
speed *= 0.8; //车轮速度滤波
speed += speed_r_l*0.2; //
position += speed; //积分得到位移
//position += speed_need; //
if(position<-50) position = -50; //
if(position> 50) position =50; //
这段代码中 position的范围要怎么取? 我的PWm范围是0~255.
问题3:经过做大努力调试后 小车在平衡位置晃动,视频如下
http://v.youku.com/v_show/id_XNzUzMTg3NjY0.html
其中用了 角度,角速度,速度,位移 四个参数
想问问是 哪个参数的问题? 有没有人帮帮忙
调整平衡死区试试看! dqt12 发表于 2014-8-13 12:09
调整平衡死区试试看!
有没有调整死区的代码谢谢 wdyggh 发表于 2014-8-18 18:05
有没有调整死区的代码谢谢
你知道什么是死区吗?你查资料了吗,人家好心帮你,你张口就要代码。呵呵。以后谁还敢帮人。 本帖最后由 wdyggh 于 2014-8-18 21:00 编辑
zt2012 发表于 2014-8-18 18:27
你知道什么是死区吗?你查资料了吗,人家好心帮你,你张口就要代码。呵呵。以后谁还敢帮人。 ...
我就只知道最简单的 pwm=pwm+死区值;
你知道死区吗?那你干嘛不讲来听听。 顶顶 顶一个吧,我的还没站起来 呵呵,中断调节参数程序还是没做好 啊 xiangzhi28 发表于 2014-9-9 09:57
呵呵,中断调节参数程序还是没做好 啊
具体请指教 角速度系数大点试试 p值太小 PID没调好吧
怎么样了,楼主 怎么样了,楼主 传感器输出信号要滤波 ch1964 发表于 2015-6-19 19:13
怎么样了,楼主
荒废快1年了 电机的一个霍尔元件也坏了等我假期有空再试试 xuyaqi 发表于 2015-6-20 06:55
传感器输出信号要滤波
您说的是 硬件滤波吗? 软件滤波我用的卡尔曼 laylovesb1314 发表于 2015-5-1 02:52
PID没调好吧
估计是的 我有空在看看吧
页:
[1]