单片机学习小组
登录
直播中
李勇
7年用户
1319经验值
私信
关注
如何去实现麦克纳姆轮的PID控制调试呢
开启该帖子的消息推送
麦克纳姆轮
PID
控制
什么是麦克纳姆轮?
麦克纳姆轮是怎样进行运动的?
如何去实现麦克纳姆轮的PID控制调试呢?
回帖
(1)
李缬呓
2022-2-22 09:33:01
一、什么是麦克纳姆轮
麦克纳姆轮是一种可以全向移动的全向轮,又叫麦轮,由轮毂和围绕轮毂的辊子组成,麦轮辊子轴线和轮毂轴线夹角成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调试需要多实践,多琢磨,调试多了自然就会了。
一、什么是麦克纳姆轮
麦克纳姆轮是一种可以全向移动的全向轮,又叫麦轮,由轮毂和围绕轮毂的辊子组成,麦轮辊子轴线和轮毂轴线夹角成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调试需要多实践,多琢磨,调试多了自然就会了。
举报
更多回帖
rotate(-90deg);
回复
相关问答
麦克纳姆轮
PID
控制
怎样
去
设计一种基于stm32vet6最小系统板的
麦克
纳
姆
轮
遥控小车
呢
2021-12-17
1180
请问怎样
去
设计一种基于esp32的
麦克
纳
姆
轮
小车
2021-08-17
1396
如何
去
实现
一种基于RT-Thread的
麦克
纳
姆
轮
PS2遥控车设计
2021-11-11
1245
怎样
去
设计一种基于RT-Thread的
麦克
纳
姆
轮
PS2遥控车
呢
2021-11-11
948
有想一起学习做
麦克
纳
姆
轮
移动小车的吗?
2019-02-12
3172
PID
控制
的原理是什么?如何
去
实现
串级
PID
的源码
呢
2021-12-17
1320
如何在定时中断里
去
实现
PID
控制
呢
2021-12-15
2380
基于单片机的
pid
控制
算法该怎样
去
使用
呢
2021-12-21
1804
如何利用STM32
去
实现
一种两
轮
自平衡车
呢
2021-12-20
2063
这种三维摇杆怎么使用
呢
?
2015-11-29
9660
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分