平衡车之角度环分析及调试

1.直立环pd:d参数的引入是为了抑制震荡
p,比例参数,它的作用是反应了控制的响应速度,过小的话平衡车表现是pwm明显不够直立不起来,过大的话小车过于震荡,震荡的时候就要加微分参数抑制震荡·
d,微分参数,它的作用是反应了对震荡的抑制。过小的话和没加微分参数只有比例参数一样的现象,过大的话会低频迅速抖动

控制时序:角度5ms采集一次 直立环和角度环10ms控制一次


下面是程序分析:
/************************************************************************/
直立环
int balance(float Angle,float Gyro)
{
float Bias;
int balance;
Bias=Angle-ZHONGZHI; //===求出平衡的角度中值 和机械相关
balance=Bkp*Bias+Gyro*Bkd; //===计算平衡控制的电机PWM PD控制 kp是P系数 kd是D系数
return balance;
}
角度环pid分析:这里使用的是 位置pid控制器的PD控制器,这里 微分D乘的参数是角速度是因为:这里的角速度已经转变为弧度/s单位,当在单位时间内,车子由一个角度猛然的转到另一个角度的时候,角速度先变大后变为0,这里的角速度就可以理解为在这段时间内的此时的角度差值和上次角度差值的差值(因为角度差值除以单位时间就是角速度),这就很符合位置pid的微分乘的参数的要求了。所以这里的微分乘的是角速度(这里的角速度单位已经从°/s转为弧度/s)

角度环是根据平衡角度的变化给出的pwm值
kp:是比例参数 他决定平衡小车响应速度的快还是慢 太小响应速度慢太大会发生低频抖动
kd:是微分参数 对于干扰要进行迅速响应的的要加入微分参数 太小的话没什么作用太大会高频抖动

只有直立环调试比较好的现象是:平衡车可以直立几秒钟然后像一个方向加速

直立环调试指南
在调试直立环的时候,我们要把速度环和转向环屏蔽掉,只打开直立环。
(1)先确定平衡车机械平衡位置角度。

(2)确定kp值得极性和大小:
首先我们估计kp的取值范围。我们的PWM设置的是7200代表占空比100%,假如我们设定 kp 值为 720,那么平衡小车在±10°的时候就会满转。根据我们的感性认识,这显然太大了,那我们就可以估计 kp 值在 0~720 之间,首先大概我们给一个值 kp=-200,我们可以观察到,小车往哪边倒,电机会往那边加速让小车到下,就是一个我们不愿看到的正反馈的效果。说明 kp 值的极性反了,接下来我们设定 kp=200,这个时候可以看到平衡小车有直立的趋势,虽然响应太慢,但是,我们可以确定 kp 值极性是正的。具体的数据接下来再仔细调试。
确定 kp 值的大小(令 kd=0,请结合本小节开头的直立控制函数理解)确定参数的原则是: kp 一直增加,直到出现大幅度的低频抖动。
设定 kp=200,这个时候我们可以看到,小车虽然有平衡的趋势,但是显然响 应太慢了。
设定 kp=350,这个时候我们可以看到,小车虽然有平衡的趋势,而且响应有 所加快,但是响应还是不足以让小车保持平衡。
设定 kp=500,这个时候我们可以看到,小车的响应明显加快,而且来回推动 小车的时候,会有大幅度的低频抖动。说明这个时候 kp 值已经足够大了,需要 增加微分D控制削弱 p 控制,抑制低频抖动(也就是抑制超调)。

(3)确定kd值得极性和大小:
我们得到的 MPU6050 输出的陀螺仪的原始数据,通过观察数据,我们发现最大值不会超过 4 位数(9999),再根据 7200 代表占空比 100%,所以我们估算 kd 值应该在 0~2 之间,我们先设定 kd=-0.5,当我们拿起小车旋转的时候,车轮会反向转动,并没有能够实现 跟随效果。这说明了 kd的极性反了。接下来,我们设定 kd=0.5,这个时候我们可以看到,当我们旋转小车的时候,车轮会同向以相同的速度跟随转动,这说明我们实现了角速度闭环,至此,我们可以确定 kd 的极性是正的。具体的数据接下来再仔细调试。

确定 kd 值的大小(令 kp=500,请结合本小节开头的直立控制函数理解)
确定参数的原则是: kd 一直增加,直到出现高频抖动。
设定 kd=0.5,这个时候我们可以看到,低频大幅度频抖动已经基本消除。
设定 kd=1,这个时候我们可以看到,整体性能已经非常棒。
设定 kd=1.7,这个时候我们可以看到,小车开始出现高频剧烈抖动(调试过程
遇到这种情况请马上关闭小车,长时间高频抖动会导致驱动被烧坏的)


至此,我们可以确定得到 kp=500,kd=1.7 是 P、D 参数的最大值。然后我们进行最关键的一步,对每个系数乘以 0.6,取整得到 kp=300,kd=1,这就是最终我们需要的参数,这样做的原因是,我们之前得到的参数是 kp、kd 最大值,理想值是根据我们的工程经验,对每个数据乘以 0.6 得到。这个时候我们可以看到,小车没有任何的抖动,非常平稳,但是依然无法保持长时间的直立,直立很短一段时间后会往一个方向加速倒下。这个等我们下面加上速度环才能得到更好的性能。只有直立环是很难让小车达到很好的直立效果的。至此,直立调试部分就告一段落了。


感谢平衡小车之家在技术上的帮助
如果觉得有用的话 请关注我哦 
也可以和我一起交流,或者评论,我会一一回复。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值