- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
平衡小车之家出品
平衡小车调试指南
接下来将和大家一起以工程的思想去完成一个平衡小车的调试,包括平衡小
车的直立环 速度环 转向环,一般我们是先调试直立环,再调试速度环,最好
调试转向环。另外需要说明的是,因为我们使用的电机性能非常好,对PID参
数不敏感,也就是说每个参数的取值范围都很广,这将对我们接下来的调试有很
大的帮助。
1.1 平衡小车直立控制调试
平衡小车直立环使用PD (比例微分)控制器,其实一般的控制系统单纯的
P控制或者PI控制就可以了,但是那些对干扰要做出迅速响应的控制过程需要D
(微分)控制。
下面是直立PD控制的代码:
intbalance(floatAngle,floatGyro)
{
floatBias,kp=300,kd=1;
intbalance;
Bias=Angle-0; //计算直立偏差
balance=kp*Bias+Gyro*kd; //计算直立PWM
returnbalance; //返回直立PWM
}
Y MPU6050
入口参数是平衡小车倾角和 轴陀螺仪(这个取决 的安装),我
们的小车前进方向是MPU6050 的X轴的正方向,电机轴与Y轴平行。前面两
PD
行是相关变量的定义,第三行是计算角度偏差,第四行通过 控制器计算直立
PWM,最后一行是返回。
kp
调试过程包括确定平衡小车的机械中值 确定 值的极性 (也就是正负号)
和大小 k 值的极性和大小等步骤。
在调试直立环的时候,我们要屏蔽速度环和转向环,如下图所示:
1
平衡小车之家出品
1.1.1确定平衡小车的机械中值
把平衡小车放在地面上,绕电机轴旋转平衡小车,记录能让小车接近平衡的
0 0 Bias=Angle-0;
角度,一般都在 °附近的。我们调试的小车正好是 度,所以就是
1.1.2确定kp值的极性( kd=0)
kp PWM 7200 100%
首先我们估计 的取值范围。我们的 设置的是 代表占空比 ,
假如我们设定kp值为720,那么平衡小车在±10°的时候就会满转。根据我们
的感性认识,这显然太大了,那我们就可以估计kp值在0~720之间,首先大概
我们给一个值kp=-200,我们可以观察到,小车往哪边倒,电机会往那边加速让小
车到下,就是一个我们不愿看到的正反馈的效果。说明kp值的极性反了,接下
来我们设定kp=200,这个时候可以看到平衡小车有直立的趋势,虽然响应太慢,
但是,我们可以确定kp值是正的。具体的数据接下来再仔细调试。
1.1.3确定kp值的大小( kd=0,请结合本小节开头的直立控制函数理解)
确定参数的原则是:kp一直增加,直到出现大幅度的低频抖动。
设定kp=200,这个时候我们可以看到,小车虽然有平衡的趋势,但是显然响
应太慢了。
设定kp=350,这个时候我们可以看到,小车虽然有平衡的趋势,而且响应有
所加快,但是响应还是不足以让小车保持平衡。
设定kp=500,这个时候我们可以看到,小车的响应明显加快,而且来回推动
kp
小车的时候,会有大幅度的低频抖动。说明
文档评论(0)