OpenEdv-开源电子网

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

平衡车站起来了,但是两轮平衡车的前进与平衡如何结合

[复制链接]

20

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-5-27
在线时间
6 小时
发表于 2014-6-10 13:02:31 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]这是我的PID算法部分,Pitch是DMP的俯仰角,Gyro_y是DMP的角速度,调速占空比宽度为0---1000;请教各位大神[/mw_shl_code] [mw_shl_code=c,true]第一:我没有加码盘,MCU为stm32f103[/mw_shl_code] [mw_shl_code=c,true]第二:平衡控制的扫描时间为5ms,我的蓝牙发来的控制数为200ms每次,请教各位如何吧前进和后退结合起来[/mw_shl_code] [mw_shl_code=c,true]第三:我试过手动修改平衡点,让他主动修正达到向前进的效果,但是由于KI的存在导致惯性太大无法改正[/mw_shl_code] [mw_shl_code=c,true] ID.Kp=98.6;//68.6--98.6--118--168.6---188.6 PID.Kd=4;//6---4.2--5 PID.Ki=1.8;//0.5---0.8--1.0[/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code] [mw_shl_code=c,true] id PID_Calcu(void)/ { static float sum=0; float need_yaw; float offset; static float left=0,right=0; Speed_Calcu(); sum+=Pitch; if(Pitch>50||Pitch<-50)/*俯仰角大于50都关闭电机*/ { Hold; return; } PWM_L=(long)((Pitch*PID.Kp+PID.Kd*Gyro_y+sum*PID.Ki)); PWM_R=(long)((Pitch*PID.Kp+PID.Kd*Gyro_y+sum*PID.Ki)); if(PWM_L<0) { PWM_L=-PWM_L; Left_Back; } else { Left_Foward; } if(PWM_R<0) { PWM_R=-PWM_R; Right_Back; } else { Right_Foward; } PWM_L=PWM_L<1000?PWM_L:1000; PWM_R=PWM_R<1000?PWM_R:1000; TIM3->CCR3 = PWM_L; TIM3->CCR4 = PWM_R;[/mw_shl_code]

原子哥在哪儿我就在哪儿
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-6-8
在线时间
0 小时
发表于 2014-6-10 13:41:55 | 显示全部楼层
平衡车的前进是靠打破直立环节,它的前进应该是在平衡和前倾之间不断来回,达到匀速的目地。
人类的优秀品质——坚持
回复

使用道具 举报

20

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-5-27
在线时间
6 小时
 楼主| 发表于 2014-6-10 20:44:01 | 显示全部楼层
回复【2楼】a1129584094:
---------------------------------
你好,我没有加码盘,你所说的打破平衡位置那具体可以使用什么方法了?我仿制载人平衡车的方法手动修改了pitch但是抖动厉害,所以不知道怎么办了
原子哥在哪儿我就在哪儿
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-6-8
在线时间
0 小时
发表于 2014-6-10 23:50:17 | 显示全部楼层
如果你没有加码盘的话 你怎么进行速度调节  你的车应该是跑不了吧
人类的优秀品质——坚持
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-6-8
在线时间
0 小时
发表于 2014-6-10 23:53:32 | 显示全部楼层
速度调节应该是进行闭环PID调节  调好输出量就好了  这里我写一个大概的公式  (加入你的车前倾角度是正的话) 
MOTOR_PWM = ANGLE_OUT - SPEED_OUT ( 在输出环节打破直立)   实际上你给一个倾角也能跑  不过是加速跑
人类的优秀品质——坚持
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-6-8
在线时间
0 小时
发表于 2014-6-10 23:54:12 | 显示全部楼层
回复【3楼】笨鸟先飞吧:
---------------------------------

如果你没有加码盘的话 你怎么进行速度调节  你的车应该是跑不了吧
 

速度调节应该是进行闭环PID调节  调好输出量就好了  这里我写一个大概的公式  (加入你的车前倾角度是正的话)  
MOTOR_PWM = ANGLE_OUT - SPEED_OUT ( 在输出环节打破直立)   实际上你给一个倾角也能跑  不过是加速跑
人类的优秀品质——坚持
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-21
在线时间
0 小时
发表于 2015-4-17 22:51:22 | 显示全部楼层
回复【3楼】笨鸟先飞吧:
---------------------------------
你好,可以把你的程序发给我吗?709262046@qq.com真的很需要,谢谢啊
回复

使用道具 举报

29

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
968
金钱
968
注册时间
2014-10-9
在线时间
95 小时
发表于 2015-6-8 10:30:26 | 显示全部楼层
回复【6楼】a1129584094:
---------------------------------
您好,能把您的程序分享给我一下吗,谢谢,我也很需要,792452536@qq.com
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-7-27
在线时间
0 小时
发表于 2015-7-28 18:11:31 | 显示全部楼层
回复【8楼】yuanxinfei:
---------------------------------
你好,能把程序分享你给我吗?谢谢,我也很需要,sunnyczh@126.com
回复

使用道具 举报

6

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-8-25
在线时间
50 小时
发表于 2016-8-25 11:18:47 | 显示全部楼层
你好,能把您的程序分享一下给我吗?谢谢,我也很需要,2881172456@qq.com
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-30 20:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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