平衡小车制作——PID

平衡小车制作——PID,第1张

位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,得到控制偏差,然后通过对偏差的比例、微分、积分进行控制,使得偏差趋于零

c语言的实现

P用于提高相应速度,I用于减小静差,D用于抑制震荡

速度闭环控制是根据单位时间获取的脉冲数测量电机速度信息,对目标值进行比较

理论分析

直立环使用PD控制

在调试直立环,要在定时器中断服务函数屏蔽速度换和转向环

首先估计kp的取值范围,陪我们设置7200代表占空比百分百

设定kp值为7200,那么小车在10°就会满转

确定参数的原则是:kp一直增加,出现大幅度低频抖动

kd一直增加,直至出现高频抖动

确定了pd的最大数,×0.6就是需要的参数

我们对速度进行低通滤波

一般可以把ki的值设置为kp/200

kp最大值=7200/(160*50%)

pwmout=P*(E(0)-E(1))+I*E(0)+D*(E(0)-2*E(1)+E(2))+pwmpre

pwmpre=pwmout

E(0)是当前

系统偏差

,E(1)是上一次偏差,E(2)上上次偏差。P、I、D分别是

比例系数

、积分系数和微分系数

E=SpeedSet-Speed

SpeedSet可根据路况设置,是你期望小车行驶的速度。Speed是你当前测量的小车的实际速度

最基本的思路,假设你的目标速度是Vt,实际测得的速度是Vs,如果Vs大于Vt,就降低占空比减速,如果Vs小于Vt,就升高占空比加速。这是最基本的思路。

然后,设想,如果当前Vs远远小于Vt,那么你肯定希望占空比加大一点,如果只是小一点点,占空比就加小一点,这个很好理解吧?那么,就要建立速度差和占空比每次增量之间的关系式。

然后,就是以极可能的快的运行频率,检测速度差,根据速度差大小计算占空比的增量,只要速度还没达到目标,就不断的增加或降低占空比,不断重复这个过程,那么实际速度就会在目标速度上下波动,只要参数调整合理,波动极小,就等效于实际速度了。

至于速度差和占空比增量之间的关系,就得慢慢调试了。这个过程实际就是PID控制中的P控制的原理。还可以加入I控制甚至D控制,达到更好的控制效果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7779622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存