一、合理的目标,合理的结果
只有按合理的目标执行,才可能有合理的结果。例如一个小孩最多只能出20公斤的力,但强要他搬运50公斤的东西,显然搬不动。又例如工厂生产的电机,额定最高速度只有3000转/分钟,通过弱磁算法增速10%到3300转/分钟,是可以实现的,但要翻倍到6000转/分钟,肯定实现不了的。
图1是无刷直流电机基于ADRC的无感FOC速度控制框图。虽然ADRC抗扰能力一流,但如果目标和实际能力差别太大,它也是无能为力的。
图1 ADRC速度控制
图2显示电机的加速过程。黄线是目标速度,它的加速度、最高速都非常大。红线是实际速度,它已实时地跟进目标速度,但无奈能力有限,加速开始就明显滞后目标值,最终的速度也不够高。粉线是驱动电流(电流越大加速度越大),电流在加速阶段一直保持最大值,说明驱动器已经尽力了,用了最大的电流,但电机的加速度还是跟不上。如果要加速度上去,只能更换驱动器或换电机了。
图2 目标不合理
图3是让电机匀速运行的波形图。黄线是目标速度,红线是实际速度。实际速度在目标速度附近明显波动,无论怎样调节ADRC参数,波动无法减弱,百思不得其解!
图3 速度震动1
后来,将波形放大观看,如图4。发现目标速度黄线在大概2%的范围内波动,实际速度红线跟着这个波动。但是这个是无感FOC系统,电机速度的测量精度有限,硬件上实在没办法做到2%以内的测量误差。目标速度波动了一点,ADRC就跟着调节一点,但输出控制量太大了,导致电机速度在大范围内波动。
图4 速度震动2
那再来看,2%的目标速度波动,是谁定的?有必要吗?产品要求速度按10%调节即可,2%显然没必要!2%的波动怎样来的?分析一下系统,发现是调速的旋钮电位器引起,电阻值有轻微测量波动!
二、过滤不合理的目标
上面说的2%目标波动,是不合理的,ADRC反应速度快,会老老实实的跟着目标调节速度,但系统的测量误差大,ADRC有心无力,实际速度跟着波动。既然不合理,那我们就滤除不合理的目标,给ADRC制定合理的目标。
在周立功ADRC软件库中,第一步就是用软件低通滤波器,滤除不合理的目标值。软件低通滤波器的设计,我们先从模拟电路分析。图5是最简单的RC一阶滤波器,e(t)和u(t)分别是滤波器的输入电压和输出电压,电阻的阻值是R,电容的容量是C。
图5 RC一阶滤波
根据电学原理,列出公式1。
公式1
假设MCU每隔一个采样周期TS进行一次计算,在第k-1个采样周期输出电压为u(k-1),在第k个采样周期输出电压为u(k),输入电压为e(k),如公式2。
公式2
根据电学原理,滤波器的截止频率fc和RC的关系是:代入公式2,整理得公式3,其中,使用时根据截止频率、采样周期等调节这两个参数即可。
公式3
滤波后平滑很多,如图6所示,目标速度和实际速度都在0.5%内波动,噪声也降低2db!
图6 速度稳定2
“假作真时真亦假,无为有处有还无”。给定的目标往往是“真假”混在一起,无法区分,但系统自身的控制能力是可以预知的,ADRC会根据自身的控制能力,过滤掉无法实现的目标,以免后面越控制越乱。
下一期,我们将继续探讨ADRC的技术原理,敬请关注!
最后一起欣赏我们在研的基于NXP i.MX RT1050的伺服电机板。i.MX RT1050 是业界首款跨界处理器,兼具应用处理器的高性能与高度集成,以及微控制器的易用性和实时功能。i.MX RT1050 基于 ARM Cortex-M7 内核,运行频率 600 MHz。
图7 RT1050伺服电机板
-
NXP
+关注
关注
60文章
1278浏览量
184053 -
无刷直流电机
+关注
关注
61文章
689浏览量
46121 -
FOC
+关注
关注
20文章
322浏览量
42798
原文标题:自抗扰控制02: ADRC如何避免执行错误命令?
文章出处:【微信号:Zlgmcu7890,微信公众号:周立功单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论