完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、什么是麦克纳姆轮
麦克纳姆轮是一种可以全向移动的全向轮,又叫麦轮,由轮毂和围绕轮毂的辊子组成,麦轮辊子轴线和轮毂轴线夹角成45度。在轮毂的轮缘上斜向分布着许多小轮子,即辊子,故轮子可以横向滑移。辊子是一种没有动力的小滚子,小滚子的母线很特殊,当轮子绕着固定的轮心轴转动时,各个小滚子的包络线为圆柱面,所以该轮子能够连续的向前滚动。由四个这种轮加以组合,可以使机构实现全方位移动的功能。麦克纳姆轮根据镜像关系分为A轮和B轮。 二、运动原理 1、四个轮子的正确组合如下图 。(顺便给四个轮子编个号) 麦克娜姆轮的运动可以看做三个基本运动的叠加。下面我们做个假设。单个轮子的合速度为V,左右平移速度记作Va,前进后退记作Vb,旋转记作Vc。(取向上为正方向) 下面红色箭头代表车轮的正反转(取向上为正方向) 2、向前运动 1、2、3、4轮都正转。小车前进,反之则正转 3、向右运动 1、3轮正转,2、4轮反转小车向右运动,反之则向左运动。 4、顺时针旋转 1、2轮正转,3、4轮反转小车顺时针原地旋转,反之则逆时针原地旋转。 根据上面的叠加可得下面公式: 三、pid控制 一、什么是pid? PID,就是“比例、积分、微分”,是一种常见的控制算法。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制。它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要威廉希尔官方网站 之一。 下面我们只介绍增量式PID(还有位置式pid) 公式如下: 参数介绍: Kp:比例系数,反应调节速度。Kp越大,系统响应速度越快,Kp越小,响应速度越慢。Kp过大会产生震荡,使系统不稳定。 Ki:积分控制,消除系统余差。只有偏差不存在时,积分才会停止。 Kd:微分控制,减小系统震荡。 en:输入量。 en-i:上一次的输入量。 en-2:上上次的输入量。 调试方法:先调P,再调I,最后调D。最好结合波形图来调,下面推荐一个波形显示上位: 二、什么是串级PID? 顾名思义就是两个PID串起来。一个pid的输出作为另一个PID的输入。 串级pid调试方法:先调内环,再调外环。先调P再调I,最后再调D. 三、麦克娜姆轮的控制思想 一、我们采用串级pid,位置作为外环,速度作为内环。通过外环PID算出四个轮子需要达到的速度,然后将速度作为内环的输入,使小车达到所需的速度。 下面是电磁循迹麦克娜姆轮部分控制代码 外环: int direction_PD(int left_inductance,int right_inductance) { int new_direction,PWM_out; //归一化 left_inductance=100*(left_inductance-left_min)/(left_max-left_min); right_inductance=100*(right_inductance-right_min)/(right_max-right_min); //位置函数,差比和算法 new_direction=100*(left_inductance-right_inductance)/(left_inductance+right_inductance); //PD算法 PWM_out=kp_direction*new_direction+kd_direction*(new_direction-old_direction); old_direction=new_direction; return PWM_out; } 内环: int speed1_PI(int encoder,int Target_Speed) { static int iError,lastError,PrevError,PWM; iError=Target_Speed-encoder; PWM+=kp_speed*(iError-lastError)+ki_speed*iError+kd_speed*(iError-2*lastError+PrevError); PrevError=lastError; lastError=iError; return PWM; } 总结 以上就我自己的学习总结,个人对pid调试的建议,PID调试需要多实践,多琢磨,调试多了自然就会了。 |
|
|
|
只有小组成员才能发言,加入小组>>
3272 浏览 9 评论
2948 浏览 16 评论
3449 浏览 1 评论
8969 浏览 16 评论
4042 浏览 18 评论
1087浏览 3评论
563浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
558浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2295浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1851浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 13:39 , Processed in 0.942425 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号