当前位置:   article > 正文

PID算法控制平衡小车直立_平衡车控制算法

平衡车控制算法

1.平衡小车直立控制:

在这里插入图片描述

如果我们要控制一根木棍在手上直立,需要两个步骤
->托着木棒的手可以移动
->眼睛能看到木棒的倾斜角度和倾斜趋势(角速度) 

在这里插入图片描述

类比到平衡小车中,同理想让小车保持平衡,同样需要一个负反馈机制,让小车角度回正,理想情况下,我们只需要控制电机的加速度和小车的倾角成正比就可保持平衡

(1)一般小车只需沿着轮胎方向前后移动保持平衡即可,我们把小车偏离平衡位置的角度作为偏差。

(2)实际上小车到达平衡位置后,并没有我们设想的那样保持静止,而是因为钢体转动惯性,小车会往另一个地方倒去.

(3)所以我们不仅需要在电机上施加和倾角成正比的回复力,还需要增加和角速度成正比的阻尼力。

(4)设置小车的机械中值,从下往上摆动小车,看到小车在机械0度倒下,设置小车的机械中值为0度.

(5)先确定小车的KP值:因为小车的PWM设置为7200为100%,如果PWM为720时角度在+-10度的时候会满转,所以我们PWM应该在0~720之间

(6)这时我们先在0~720之间挑选一个数,确定一个数200后,取-负数,发现会加速小车的倒下,说明极性相反了,我们应该取正数。

(7)当我们取值为正 200的时候,小车会自动回缓到平衡位置,但是反应速度太慢了,这时候我们可以试着加大KP值。

(8)当我们增大大 350时,反应速度有一定的提升,可以在平衡位置保持1,2秒,但是觉得反应慢,可以试着继续增大KP值。

(9)当我们增大到500得到时候,反应速度有明显的增加,但是小车在平衡位置会低频的抖动,这时我们可以试着加入KD值来抑制抖动。

(10)确定小车的KD值和极性:因为小车的PWM设置为7200为100%,我们估算KD值并不会很大。

(11)我们让KP值为0,先取一个-负数,-0.5,发现会加速小车的倒下,说明极性相反了,我们应该取正数。

(12)我们让之前的KP值加进来 ,KP值是500,KD值是0.5 . 这时我们平衡车的抖动消失了,当小车不再抖动的时候,一般PID参数是越大越好的,我们试着增加KD值,PID参数越大系统的响应就会越快。

(13)这时我们把KP值还是设置成500,KD值增大到1,看到情况比之前好,但是 还不是很理想,我们试着把 KD值改为1.5.

(14)当KP值为500,KD值为1.5时我们看到情况还是很理想的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/401633
推荐阅读
相关标签
  

闽ICP备14008679号