无刷直流电机基于ADRC的无感FOC速度控制方案

电子说

1.2w人已加入

描述

世事往往真假错乱,难以区分。ADRC算法根据自身的控制能力,只执行合理的命令,避免执行错误的命令后,错上加错!

一、合理的目标,合理的结果

只有按合理的目标执行,才可能有合理的结果。例如一个小孩最多只能出20公斤的力,但强要他搬运50公斤的东西,显然搬不动。又例如工厂生产的电机,额定最高速度只有3000转/分钟,通过弱磁算法增速10%到3300转/分钟,是可以实现的,但要翻倍到6000转/分钟,肯定实现不了的。

图1是无刷直流电机基于ADRC的无感FOC速度控制框图。虽然ADRC抗扰能力一流,但如果目标和实际能力差别太大,它也是无能为力的。

NXP

图1 ADRC速度控制

图2显示电机的加速过程。黄线是目标速度,它的加速度、最高速都非常大。红线是实际速度,它已实时地跟进目标速度,但无奈能力有限,加速开始就明显滞后目标值,最终的速度也不够高。粉线是驱动电流(电流越大加速度越大),电流在加速阶段一直保持最大值,说明驱动器已经尽力了,用了最大的电流,但电机的加速度还是跟不上。如果要加速度上去,只能更换驱动器或换电机了。

NXP

图2 目标不合理

图3是让电机匀速运行的波形图。黄线是目标速度,红线是实际速度。实际速度在目标速度附近明显波动,无论怎样调节ADRC参数,波动无法减弱,百思不得其解!

NXP

图3 速度震动1

后来,将波形放大观看,如图4。发现目标速度黄线在大概2%的范围内波动,实际速度红线跟着这个波动。但是这个是无感FOC系统,电机速度的测量精度有限,硬件上实在没办法做到2%以内的测量误差。目标速度波动了一点,ADRC就跟着调节一点,但输出控制量太大了,导致电机速度在大范围内波动。

NXP

图4 速度震动2

那再来看,2%的目标速度波动,是谁定的?有必要吗?产品要求速度按10%调节即可,2%显然没必要!2%的波动怎样来的?分析一下系统,发现是调速的旋钮电位器引起,电阻值有轻微测量波动! 

二、过滤不合理的目标

上面说的2%目标波动,是不合理的,ADRC反应速度快,会老老实实的跟着目标调节速度,但系统的测量误差大,ADRC有心无力,实际速度跟着波动。既然不合理,那我们就滤除不合理的目标,给ADRC制定合理的目标。

在周立功ADRC软件库中,第一步就是用软件低通滤波器,滤除不合理的目标值。软件低通滤波器的设计,我们先从模拟电路分析。图5是最简单的RC一阶滤波器,e(t)和u(t)分别是滤波器的输入电压和输出电压,电阻的阻值是R,电容的容量是C。

NXP

图5 RC一阶滤波

根据电学原理,列出公式1。

NXP

公式1

假设MCU每隔一个采样周期 T进行一次计算,在第k-1个采样周期输出电压为u(k-1),在第k个采样周期输出电压为u(k),输入电压为e(k),如公式2。

NXP

公式2

根据电学原理,滤波器的截止频率 fc­ 和RC的关系是:NXP代入公式2,整理得公式3,其中 NXP使用时根据截止频率、采样周期等调节这两个参数即可。

NXP

公式3

滤波后平滑很多,如图6所示,目标速度和实际速度都在0.5%内波动,噪声也降低2db!

NXP

图6 速度稳定2

“假作真时真亦假,无为有处有还无”。给定的目标往往是“真假”混在一起,无法区分,但系统自身的控制能力是可以预知的,ADRC会根据自身的控制能力,过滤掉无法实现的目标,以免后面越控制越乱。

下一期,我们将继续探讨ADRC的技术原理,敬请关注!

最后一起欣赏我们在研的基于NXP i.MX RT1050的伺服电机板。i.MX RT1050 是业界首款跨界处理器,兼具应用处理器的高性能与高度集成,以及微控制器的易用性和实时功能。i.MX RT1050 基于 ARM Cortex-M7 内核,运行频率 600 MHz。

图7 RT1050伺服电机板


推荐课程:

张飞软硬开源,基于STM32 BLDC直流无刷电机驱动器视频套件

http://t.elecfans.com/topic/42.html?elecfans_trackid=fsy_post

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分