OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5352|回复: 16

关于平衡车速度环

[复制链接]

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
发表于 2018-3-30 18:37:52 | 显示全部楼层 |阅读模式
10金钱
哪位哥做过平衡车,有没有碰到我这种情况:平衡环调完之后加入速度环时小车不会前进,而是板子向上翘起一定的角度,保持在原地不动

最佳答案

查看完整内容[请看2#楼]

1.你可以尝试下用仪器测试实际的PWM波形,根据你的描述占空比应该接近0. 另外测速的话网上有较多的例子,你可以搜一下,具体原理其实也是数脉冲,你现在如果小车走的是直线,应该不存在正负的差别,这个是最重要的。 2.一阶滤波要把参数调一下,你这个抖动会比较大。先改成0.9/0.1试下. 3.PI算法没什么讲的,主要是调PI的值,可能要注意的地方是加法和减法的处理,你现在用 (g_fVring.SpeedOld - Speed_target)来表示加减,这 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-3-30 18:37:53 | 显示全部楼层
Luxs 发表于 2018-3-31 11:21
float V_Ring(InParamTypedef param,float Speed_target)
{
        float v_pwm;

1.你可以尝试下用仪器测试实际的PWM波形,根据你的描述占空比应该接近0.
另外测速的话网上有较多的例子,你可以搜一下,具体原理其实也是数脉冲,你现在如果小车走的是直线,应该不存在正负的差别,这个是最重要的。
2.一阶滤波要把参数调一下,你这个抖动会比较大。先改成0.9/0.1试下.
3.PI算法没什么讲的,主要是调PI的值,可能要注意的地方是加法和减法的处理,你现在用 (g_fVring.SpeedOld - Speed_target)来表示加减,这里可能不太恰当。
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2018-3-30 22:26:31 | 显示全部楼层
先调速度环,后面才调平衡环
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 08:53:15 | 显示全部楼层
电子之旅 发表于 2018-3-30 22:26
先调速度环,后面才调平衡环

但是我看他们都是先调的平衡环,而且直接调速度环看不出效果吧
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-3-31 10:12:07 | 显示全部楼层
速度环怎么做的
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 11:21:21 | 显示全部楼层

float V_Ring(InParamTypedef param,float Speed_target)
{
        float v_pwm;
        g_fVring.Speed = param.L_Pulse  + param.R_Pulse ;//  ;                  //左右电机脉冲数作为小车当前速度
//        g_fVring.Speed = g_fVring.Speed*(g_fVring.V_pwmOld/fabs(g_fVring.V_pwmOld));
        param.L_Pulse =param.R_Pulse = 0;          //全局变量 注意及时清零               
        /* 一阶低通滤波:Speed = LastSpeed*0.7+Speed*0.3 */
        g_fVring.SpeedOld *= 0.7;
        g_fVring.SpeedOld += g_fVring.Speed*0.3;
        
        g_fVring.Position += g_fVring.SpeedOld;                  //路程  即速度积分           1/11 3:03
        /*速度目标*/
        //积分上限设限//
        if(g_fVring.Position > POSITION_AMPLITUDE)   
        {
                g_fVring.Position = POSITION_AMPLITUDE;
        }                                                                                          
        v_pwm = (g_fVring.SpeedOld - Speed_target) * g_fPidParams.V_Kp + g_fVring.Position * g_fPidParams.V_Ki; //速度PI算法 速度*P +位移*I=速度PWM输出 //+ (g_fVring.Position +Speed_target) * g_fPidParams.V_Ki; //速度PI算法 速度*P +位移*I=速度PWM输出
        return v_pwm;
}
主要是这样,测速这边就是简单的脉冲,不能分辨正负,感觉上其实没用,我就用的那个Speed_target
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 14:03:42 | 显示全部楼层
JUSTNIUB 发表于 2018-3-31 12:07
1.你可以尝试下用仪器测试实际的PWM波形,根据你的描述占空比应该接近0.
另外测速的话网上有较多的例子 ...

多谢回答,根据我现在的现象,是有一定PWM输出的,因为它虽然没走,但是转动的力使板子偏转了。速度测量这方面,看他们的都是有把前进后退设置方向的,我根据pwm输出方向当做速度方向,发现也无法实现稳定速度输出,静止在原地。还有一阶滤波这边参数调节,是因为我测出来的脉冲数值太小了。
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-3-31 14:20:44 | 显示全部楼层
Luxs 发表于 2018-3-31 14:03
多谢回答,根据我现在的现象,是有一定PWM输出的,因为它虽然没走,但是转动的力使板子偏转了。速度测量 ...

很奇怪,pwm为什么会有方向?你用的是什么电机?有几个?
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 14:28:20 | 显示全部楼层
JUSTNIUB 发表于 2018-3-31 14:20
很奇怪,pwm为什么会有方向?你用的是什么电机?有几个?

pwm方向只是人为地参考的一个方向撒,具体输出的时候肯定是绝对值啊。我用的直流无刷电机,2轮
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-3-31 14:56:46 | 显示全部楼层
Luxs 发表于 2018-3-31 14:28
pwm方向只是人为地参考的一个方向撒,具体输出的时候肯定是绝对值啊。我用的直流无刷电机,2轮

你这个说法是有问题的,pwm是由单片机输出的,并没有方向,如果硬要说方向,也指的是极性。我认为你指的方向是小车的方向,小车的方向可以由PWM来表示,但是是由换相顺序来决定的。你用的应该是成品电调,建议你先把电调玩熟练再来尝试做下一步、
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-3-31 15:00:25 | 显示全部楼层
Luxs 发表于 2018-3-31 14:28
pwm方向只是人为地参考的一个方向撒,具体输出的时候肯定是绝对值啊。我用的直流无刷电机,2轮

另外问下,不用速度环,小车能够走吗?
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 15:56:59 | 显示全部楼层
JUSTNIUB 发表于 2018-3-31 14:56
你这个说法是有问题的,pwm是由单片机输出的,并没有方向,如果硬要说方向,也指的是极性。我认为你指的 ...

我意思就是小车方向撒,只是人为得结合在一起
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 15:57:18 | 显示全部楼层
JUSTNIUB 发表于 2018-3-31 15:00
另外问下,不用速度环,小车能够走吗?

能够保持平衡
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-3-31 16:18:41 | 显示全部楼层

这样的话,你这个问题就明显是堵转了,你这个时候要注意电机被烧掉。你现在要先把你的电机转起来,然后再考虑做速度处理。
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-3-31 23:19:54 | 显示全部楼层
JUSTNIUB 发表于 2018-3-31 16:18
这样的话,你这个问题就明显是堵转了,你这个时候要注意电机被烧掉。你现在要先把你的电机转起来,然后再 ...

问题就出在这啊,我加速度环就是想让它运动起来,但是现在就是运动不起来,就像你说的那个堵转。确实搞不懂电机,还是太急了,别人有点催
回复

使用道具 举报

7

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2017-4-6
在线时间
67 小时
发表于 2018-4-2 16:44:33 | 显示全部楼层
Luxs 发表于 2018-3-31 23:19
问题就出在这啊,我加速度环就是想让它运动起来,但是现在就是运动不起来,就像你说的那个堵转。确实搞不 ...

抱歉啊,周末没看。
BLDC这个东西要花时间去学,我也刚刚才入门。你网上搜下 无感无刷直流电机之电调设计全攻略 ,这个讲的很好,你先了解下这个东西是什么。
不过如果你这个东西要的急的话,我建议你改硬件部分,用你熟悉的电机,不要用BLDC,BLDC难度大,以前没弄过很难一下子弄出来。
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-3-15
在线时间
22 小时
 楼主| 发表于 2018-4-2 23:18:19 | 显示全部楼层
JUSTNIUB 发表于 2018-4-2 16:44
抱歉啊,周末没看。
BLDC这个东西要花时间去学,我也刚刚才入门。你网上搜下 无感无刷直流电机之电调设 ...

好的,多谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 19:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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