Marvell_Chen 发表于 2015-6-3 11:42:21

【STM32 +mpu6050】独轮平衡车 -- 调试问题

大家好, 最近接手了这个独轮平衡车的项目, 电机是BLDC,低速以及自稳状态用的是6 STEPS驱动, 平稳运行下才切入FOC+SWPWM, 转速反馈用120度HALL传感器。 我用了最简单的PD控制 姿态角度,反馈直接控制电机转速,那么问题来了, 小车在自平衡状态下,电机会来回晃动,虽然晃动幅度也不大,但是比起商业上卖的,还是差很远。 不管我用6 STEP,还是DTC来控制BLDC电机,都会出现来回抖动。我也是醉了,上来看看大家怎么弄的

我准备试试大家说的那条 公式:Pwm_out = Kap*Angle + Kad*w + Ksp*speeds_filter + Ksi*positions ;   //PID控制器

我看各位小神做的小车,好像在平衡态都会来回晃动,到底问题出在哪里呢? 最好谁能给个姿态控制的系统框图,教教我怎么弄,谢谢提出宝贵意见;

我微信:chichen5958

pz_cloud 发表于 2015-6-3 12:39:24

不太清楚前后晃动是什么意思,如果是低频摆动的话可能只是参数有点小了。。BLDC这么高端的电机照理说只用PD完全可以很好平衡了



PWM= g_fCarAngle * P_ANGLE + Gyro_Now * D_ANGLE,只用两个参数的效果(速度环是PI)
http://v.youku.com/v_show/id_XMTI1MzgzMzkyOA==.html

Marvell_Chen 发表于 2015-6-3 13:09:07

pz_cloud 发表于 2015-6-3 12:39 static/image/common/back.gif
不太清楚前后晃动是什么意思,如果是低频摆动的话可能只是参数有点小了。。BLDC这么高端的电机照理说只用PD ...

来回晃动,意思就是电机在不停的正反转,能不能做到电机不转,或者转动很小根本看不出来?

pz_cloud 发表于 2015-6-3 13:18:25

当然可以,你这个主要问题是获取的角度的偏差我觉得,首先6050本来就没有一些大封装的陀螺仪和加速度计精确,比赛的时候我们在本来调的很好的车上换过陀螺仪,然后就像你说的开始有小幅的晃动了。另外滤波算法也很有影响,如果收敛不够准确不够快的话,车反馈的角度不对当然就不可能完全静止不动,一定会有漂移的

Marvell_Chen 发表于 2015-6-3 13:57:13

本帖最后由 Marvell_Chen 于 2015-6-3 13:58 编辑

pz_cloud 发表于 2015-6-3 13:18 static/image/common/back.gif
当然可以,你这个主要问题是获取的角度的偏差我觉得,首先6050本来就没有一些大封装的陀螺仪和加速度计精确 ...

谢谢你的宝贵意见, 我按照你说的PD+PI做法,画了一个系统控制框图,如下:
file:///C:/Users/Administrator/Desktop/PHOTO/1.jpg
你看看是不是这个做法;
我也怀疑滤波算法很有影响,我目前用6050自带的MPL程序读出那个9维数组,然后过一个KALMAN FILTER就拿出来用了,感觉数据出的很慢啊;
我是电力传动专业的,BLDC各种控制都做过,6050没用过呀,找个熟悉姿态算法的同学一起互相学习一下,这个平衡车就好弄了啊

pz_cloud 发表于 2015-6-3 14:17:18

本帖最后由 pz_cloud 于 2015-6-3 14:18 编辑

Marvell_Chen 发表于 2015-6-3 13:57 static/image/common/back.gif
谢谢你的宝贵意见, 我按照你说的PD+PI做法,画了一个系统控制框图,如下:

你看看是不是这个做法; ...

单纯角度环控制的话是这样的


我看你这个速度环用来控制电机输出了?其实平衡车里面的速度环是用来控制车的运动速度的,就是说,如果没有速度环,车子虽然可以直立,但是它无法区分车子是静止直立还是边走边直立,所以速度环的输入应该是车速,输出级联到角度环的目标值,这样通过控制平衡目标角度来达到控制速度的效果(可以想象如果车体被设定为目标角度是偏离物理平衡角度的,那么它就会有加减速运动)。然而对于载人车来说,本身就是通过身体倾斜来控制速度的,所以这里面的速度环可能只是起到一个限制最大速度的作用,所以在你调试直立的时候,是可以不用加速度环的,个人理解。

suoma 发表于 2015-6-3 15:59:09

            好大的轮子

Marvell_Chen 发表于 2015-6-5 15:41:56

问题已解决, 用PD环控制角度和加速度, 然后用PI环控制电机的转矩,保证姿态角度更新足够快,就能做到大转矩稳定;

小夥子 发表于 2015-7-2 13:26:53

Marvell_Chen 发表于 2015-6-5 15:41 static/image/common/back.gif
问题已解决, 用PD环控制角度和加速度, 然后用PI环控制电机的转矩,保证姿态角度更新足够快,就能做到大转 ...

大哥,,您弄好没呢,,最近我也在搞平衡小车,可以很好的直立,但只是直立。。。角度大了就栽下去了,根本无法行走,我用的也是stm32.加mpu6050。。我想和您交流交流,向您请教哈,可以加个联系方式吗QQ951264457

ym7208 发表于 2015-7-25 20:04:58

能分享一下资料不?要是能提供有原理图就更好了。

2880610675 发表于 2015-8-5 18:19:38

Kcopter飞控板集成STM32F103CB MPU6050 HMC5883L MS5611,Keil编译,直接下载程序,想了解可以加Q:2880610675

2880610675 发表于 2015-8-5 18:20:18

Kcopter飞控板集成STM32F103CB MPU6050 HMC5883L MS5611,Keil编译,直接下载程序,想了解可以加Q:2880610675
页: [1]
查看完整版本: 【STM32 +mpu6050】独轮平衡车 -- 调试问题