微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 想用增量式PID算法做电动车平衡跷跷板,有几点关于PID的...

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

时间:10-02 整理:3721RD 点击:
1.根据公式▽u(k)=Ae(k)-Be(k-1)+Ce(k-2),A,B,C系数的确定问题,这个是自己根据实际数据测出来的吗?具体测量要注意什么?
2.单片机求出▽u(k)之后下一步要做什么?是不是要事先测量不同▽u(k)下对应的电机的转动角度呢?然后根据这个实现小车的运动?

求指点啊,PID没接触过。

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)。


非常感谢,受教了

也在做这题,没接触过pid,能否分享一下程序,还有小编用的是哪款单片机?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top