欢迎访问:武汉绘芯科技有限公司官方网站
服务热线
027-87052087
当前位置:首页 > 行业动态 >

郑州开合门 FIRA小车“习武记”之十:PID调速探究(PWM频率)

文章出处:网络整理 作者:佚名 人气: 时间:2021-02-09 12:08

上一步初步尝试了PID调速,使得我可以控制举动的速度,做到收放自如,但由于对 PID 调速掌握的比较肤浅,加之对自己身体的质量把握不准,导致调速效果不是很理想。因为 PID 的数据必须和我的身体素质相婚配,才能发挥到最非常好。

虽说 PID 调速不是本次习武的主题,但调速质量的非常好坏直接影响到我日后执行任务的能力,所以还是专门花点时间探究一下我的身体素质,尽量能使 PID 这一经典“武功”可以在我身上达到最佳的效果。

10.1 自我“体检”

“PWM调速”是直流电机控制的常用的“俗语”。

为什么说是“俗语”而非“术语”,因为这个表述不准确,正确的表述应该是“PWM调功”,也就是通过调理电机供电的占空比,改变供给电机的平均功率,但这不一定能改变电机的速度。

当电机负载较轻时,PWM 不到100% 就可以让电机达到最快转速,之后 PWM 的改变就不再影响电机速度了(这个概念还是在玩 LEGO 时看到的,LEGO 的 RCX 只能通过 PWM 改变电机速度,所以有时需要额外增加阻力以使得转速可以随 PWM 的变化而变化)。

为了验证这个描述,同时也算是对我的体质做一个检测,用 Processing 做了一个测试程序,通过通讯命令实现 PWM 从 100% 到 0% 扫描,记录速度随 PWM 的变化曲线。

同时,尝试在不同的 PWM 的频率下,我的速度随 PWM 变化的质量会如何?为更非常好的实现 PID 调速打下基础。

这次尝到了自己掌控测试程序的非常好处了,可以随时按照需要实现方便、直观的测试。

基本控制方式构思为:

以我的 20ms 速度输出作为 Processing 程序控制的计时依据,从 PWM100% 开始,持续接收 75 次速度数据(20*75 = 1500ms),确保转速达到最快值;之后每接收 15 个速度数据 PWM 减少 5%,直到 0%。记录上述过程的速度和对应的PWM值,谱出变化曲线。

为了保证 PWM 扫描过程的通讯计数不失步,这个过程 Processing 程序不执行 draw()循环,不刷新显示,扫描结束后在恢复显示(具体实现见Processing程序)。

修改我的STM32程序中的 PWM 频率,分别测试以下频率的“PWM-速度”关联曲线:

60kHz, 40Khz, 20kHz, 10kHz, 5Khz

先看一下用所编写的 Processing 程序所记录的曲线(测试方式为单轮转动,我原地打转,基本和实际的工况等效):

pid算法调速

从上图可以看出,在 60kHz 的 PWM 频率下,PWM 降低到 50% 速度才开始变化,而且之后的变化也不线性,有效的 PWM 调速范围只有 50% - 25%。

pid算法调速

这是 40kHz 下的变化曲线,PWM 降低到 60% 速度才开始变化,后面还算比较线性,有效的 PWM 调理范围60% - 5%,有 55% 调理空间。目前就是这个频率,所以还勉强可以实现 PID 调速。

pid算法调速

频率降低到 20kHz,速度开始变化的 PWM 约为 75%,但到 5% 电机就不转了。

pid算法调速

PWM 频率再下调到 10kHz,PWM 到85% 速度开始变化,到 10% 电机不转。从下面的放大图观察开始变化点的位置:

pid算法调速

从图中可以看出,85% 之后的速度随 PWM 变化还算是线性pid算法调速,有效的调理范围接近 75%。

pid算法调速

当频率降低到5kHz 时,PWM 到 15% 就无法驱动电机了;开始变化点提升到 95%:

pid算法调速

从以上测试结果看,如果从调速的角度考虑,并不是 PWM 频率越高越非常好,至少我的体质如此。但这并不是说前面所下的“PWM频率越高越非常好”的结论是错的,从电机续流角度考虑,仍是正确的!

行业动态
联系我们
武汉绘芯科技有限公司

服务热线:027-87052087

技术支持:13329706647

地址:武汉市江夏区藏龙岛九凤街谭湖一路8号

在线客服

扫码与我交流