想用增量式PID算法做电动车平衡跷跷板,有几点关于PID的...

2019-07-15 22:57发布

1.根据公式▽u(k)=Ae(k)-Be(k-1)+Ce(k-2),A,B,C系数的确定问题,这个是自己根据实际数据测出来的吗?具体测量要注意什么?
2.单片机求出▽u(k)之后下一步要做什么?是不是要事先测量不同▽u(k)下对应的电机的转动角度呢?然后根据这个实现小车的运动?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
爱我别走
2019-07-16 05:24
本帖最后由 爱我别走 于 2013-8-18 11:04 编辑

1.   根据▽u(k)=Ae(k)-Be(k-1)+Ce(k-2)公式,你用的是增量式PID无疑。PID的精髓就是“他完全不去考虑能量,质量和效率等因素,却完成了对这些因素的控制调节功能”。所以也就不需要你说的"测量不同▽u(k)下对应的电机的转动角度"。

2.   公式中Ae,Be,Ce,分别表示,比例系数,积分系数,微分系数,k, k-1, k-2分别表示当前误差(小车当前角度与平衡时的角度差),上一次的误差,上上次的误差。

3.  可以先让小车全速行驶到跷跷板中点附近,然后开启PID算法。定义这样一个变量,int step=0。假设step=1,表示小车向前步进1个单位长度(越小效果越好,自己根据实际调试来把握),step=2,表示小车向前步进2个单位长度。相反,step=-1,表示小车向后步进一个单位。根据step += Ae(k)-Be(k-1)+Ce(k-2),也就是PID算法,即可自动调整小车的步进长度和方向。

4.  反复整定参数,Ae,Be,Ce,当然还包括step的单位步进大小。通过实际观测,直至小车最快,最稳定的达到平衡(理论上是step接近于0时达到平衡,也就是小车当前角度与平衡时的角度差接近0)。




一周热门 更多>