基于形态学滤波的反电动势过零检测算法
2021-12-21刘文杰
刘文杰,冯 明
(北京科技大学 机械工程学院,北京 100083)
无刷直流电机具有优越的调速性能、无励磁损耗、低噪声等优点,应用在国民生产的各个领域,相关控制技术也快速发展. 相对于带传感器的无刷直流电机,无位置传感器无刷直流电机具有结构简单、体积小、适应性强等优势[1],因而无位置控制技术得到了广泛的关注.
常用的转子位置检测算法主要有:反电动势过零检测法[2-3]、磁链估计法[4]、续流二极管电流检测[5]以及三次谐波检测法[6]等. 而反电动势过零检测法作为其中最成熟、最易于实现的方法得到了广泛的应用[7].
由于反电动势检测存在低通滤波相移,需要进行相位延时补偿,因而限制了电机的运行转速与精度[8]. 为了提高位置检测精度,众多研究人员针对反电动势检测算法进行了改进. 文献[9]在传统的反电动势检测环外增加了转子位置反馈环路,实现了闭环调节,提高了检测精度,但是需要增加采样电路. 文献[10]设计了一种与电机转速无关的固定相位延时的开关电容低通滤波器,可以实现90°的固定延时,无需相位补偿,但是滤波器的设计较为复杂且需要准确的转速信息. 文献[11]通过门电路进行逻辑操作获得无相位延时的过零点信号,但是需要增加较为复杂的逻辑电路. 文献[12]通过避开PWM(Pulse Width Modulation)调制波形和换相续流的干扰进行转子位置检测,无需检测以及滤波电路,但是仍然存在相位延时问题. 文献[13]利用软件锁相环设计了一种新的三次谐波反电动势检测方案,实现了一种高速运行时精确换相策略,缺点是需要采样电路,增加了系统的复杂性. 文献[14]则提出一种改进的线反电势滑模观测器,可以获得无相位滞后位置信号, 但是依然存在需要采样电路的问题并且无法避免系统的抖动问题.
为了解决滤波延时以及相位补偿等问题,本文利用了形态学滤波对反电动势检测法进行了改进. 通过对反电动势过零点的逻辑电平信号进行形态学滤波,实现固定时间的相位延时. 同时利用锁相环改进了反电动势过零点30°延时算法,从而实现换相位置闭环调节. 本文根据上述方法设计了无刷直流电机控制器,实验结果表明,本算法能有效且准确地检测反电动势过零点并跟踪换相位置,同时实现万分之一的调速精度.
1 反电动势检测法
无刷直流电机控制系统框图如图1所示. 当电机处于BLDC模式时,通过检测反电动势过零点并延时30°即可获得准确的换相点,从而给出逆变桥开关信号对电机进行换相[15].
对于传统的反电动势检测算法来说,三相端电压与中性点电压的交点即是反电动势过零点,检测电路如图2所示.
对于梯形反电动势的无刷直流电机来说,其端电压及中性点电压波形如图3所示. 可以看到端电压中存在着由于换相续流引起的尖峰电压,直接送入比较器将会产生错误的过零点信号,如图4中S1、S2所示.
对于采用PWM调速的情况来说,反电动势中还将存在PWM调制信号. 为了消除续流尖峰电压以及PWM调制信号的影响,反电动势检测一般需要低通滤波电路,从而造成相位延时. 为了获得准确的换相位置,需要进行延时补偿,补偿公式如式(1)所示.
(1)
其中θ为延时角度,φ(ω)为滤波器相频特性.
对于传统的反电动势检测法来说,一般根据式(1)建立延时补偿表,根据转速信息查表获得延时补偿角度或采用线性拟合的方式进行补偿,不论采用哪一种方式,都无法避免计算误差并且补偿属于开环补偿,容易受到干扰.
图1 无刷直流电机控制系统
图2 反电动势检测电路
图3 三相端电压及虚拟中性点电压波形
图4 三相过零点信号
2 固定延时的形态学滤波算法
针对上述问题,本文将数学形态学中的形态学滤波思想应用在二维信号的数据处理当中. 数学形态学是一种非线性的信号处理算法,常用于图像处理,具有完整的理论方法和算法体系.
形态学滤波有两个基本运算,腐蚀和膨胀. 腐蚀可以使目标区域变小,造成目标边界收缩,可以用来消除小且无意义的目标,其数学定义如式(2)所示. 膨胀会使目标区域变大,造成目标边界扩大,可以减小目标区域内的谷域以及消除包含在目标区域中的噪声,定义如式(3)所示. 可以将腐蚀运算看作是最小值滤波器,膨胀运算看作是最大值滤波器,它们可以分别获得数据的下包络和上包络.
A⊖B={x,y|(B)xy⊆A},
(2)
A⊕B={x,y|(B)xy∩A≠φ}.
(3)
由腐蚀和膨胀,我们可以获得闭运算即先膨胀再腐蚀. 通过对反电动势方波信号进行闭运算可以初步滤除其中的调制信号. 本文重新定义了方波信号中的腐蚀膨胀运算分别为f1、f2:
(4)
则可得闭运算F为
F=f1(f2(s)).
(5)
其中:s为输入信号,s_delay为s延时t1的信号.
对于形态学滤波往往需要进行多次运算才能获得较好的效果,为此本文设计了一种形态学滤波后处理算法,可以保证在仅进行一次形态学滤波的情况下仍具有良好的滤波效果. 算法程序框图如图5所示,其本质是一个延时程序,宽度小于延时时间的脉冲将被消除,谷域将被填平. 若设后处理算法的延时时间为t2,则数字滤波算法的总延时时间为t=t1+t2.
图5 形态学滤波后处理算法框图
由于后处理算法在信号边沿处效果较差,因而t1的选择需要保证形态学滤波后的信号在上升沿及下降沿处无过多的噪声信号;为了保证续流尖峰导致的脉冲被去除,t2的选择需要根据换相续流脉冲的宽度来确定,一般大于换相续流脉冲宽度的最大值即可.
为了验证算法的可行性,在Simulink中建立算法的仿真模型,如图6所示. Simulink模型通过检测BLDC的三相端电压然后构造出中性点,经过比较器形成反电动势过零点方波信号, Simulink将产生的反电动势过零点方波信号送入MATLAB函数写成的滤波算法模块.
仿真结果如图7所示,可以看到采集到的端电压信号当中存在着换相续流引起的尖峰电压以及PWM的调制信号. 端电压信号与虚拟中性点信号经过比较器之后形成的反电动势方波信号当中依然存在这些干扰信息. 通过数字滤波处理之后,可以清楚地看到,这些干扰信号都被较好地滤除,滤波之后的信号可以非常良好地检测出反电动势过零点信号. 值得一提的是,滤波之后的反电动势方波信号较原始信号是存在一个固定的时域延时的,由于仿真中的换相续流较小,所设定的延时时间较短,因而滤波信号较原始信号的延时不太明显.
图6 Simulink仿真模型
图7 滤波算法仿真结果
3 锁相环算法
锁相环是一种相位跟踪系统,可以在噪声之中提取出几乎完全纯净的信号, 因而可以通过锁相环回路实现反电动势过零点的30°延时功能. 锁相环主要由鉴相器、环路滤波器、压控振荡器组成.
本文采用的鉴相器是鉴频鉴相器(PFD),它具有鉴频与鉴相的双重功能,因而输入带宽非常大,性能较好. 如图8所示,用状态转移图描述了PFD的基本原理. 鉴频鉴相器的输出状态转移由u1和u2'的上升沿触发.u1的上升沿会使state跳向更高的状态,当已经处于最高的状态+1时,只会对u2'的上升沿进行响应. 反之亦然.
为了验证锁相环算法的功能,本文在simulink中搭建了锁相环的模型,使用stateflow设计了PFD鉴频鉴相器,如图9所示PFD模块. 使用FilterDesigner工具设计了滤波器,同时为环路加上PI控制器以使环路达到二阶锁相环性能.
图8 鉴频鉴相器PFD原理图
在输入信号为200 Hz的方波、VCO静态输出与输入无频差的情况下进行仿真,仿真结果如图10所示. 第一第二行分别为输入信号Ref和输出信号VCO,第三第四行分别为鉴频鉴相器输出信号PFD与环路滤波器输出LPF. 可以看到,鉴频鉴相器以及环路滤波器都能正确地输出信号,锁相环系统能够快速锁相且无稳态误差.
图9 Simulink 锁相环模型
图10 锁相环模型仿真结果
4 反电动势过零点30°延时算法
由于反电动势过零点延时30°才是准确的换相位置. 现有的延时算法大多都是开环计算. 本文改进了延时的算法,使用锁相环算法来跟踪换相位置,实现闭环调节. 由于数字滤波器具有固定时域的延时,在一般情况下进行30°延时即可,在超高速情况下,若固定延时超过了30°可进行90°延时,为了说明算法的有效性,仿真实验进行90°延时.
为了验证锁相环延时算法的性能,搭建了仿真模型如图11所示. 其中PFD、LPF以及VCO是锁相环的基本组成,通过Delay模块对信号进行延时,设置鉴相器在相差为90°时输出为零,则VCO信号会锁定在与反电动势零点滞后90°电角度的位置.
图11 30°延时锁相环模型
将延时模块与第2节中建立的电机控制模型一起进行仿真,仿真模型如图12所示,滤波后的反电动势过零信号作为锁相环延时模块的参考输入,VCO输出延时信号. 在3000转的目标转速下,仿真实验结果如图13所示. 第一、第二行为固定延时数字滤波算法的处理结果,第三行是进行了反电势过零点90°延时的结果. 可以看到延时模块准确地跟踪了换相位置信号,具有较好的性能.
图12 Simulink 30°延时仿真模型
图13 延时模型仿真结果
5 实 验
为了验证算法的准确性,本文以CPLD MAX II为实验平台,搭载算法进行验证. 实验装置如图14所示,其中,图14(a)为自行研制的无刷直流电机驱动器,图14(b)为4对极无刷直流陀螺电机. 使用(Yokogawa)DLM2054示波器对电机及驱动器运行状态进行监测和分析.
1)固定延时滤波算法实验:为了验证本文设计的滤波算法的有效性,使电机分别运行在5 000 r/min和10 000 r/min进行实验. 为了延时时间的测量方便,在满占空比条件下进行测量. 实验结果如图15所示,通道1为端电压信号,通道2为端电压与中性点比较所得的过零点方波信号. 通道3为对通道2的方波信号进行数字滤波所得. 可以看到端电压中存在由换相导致的续流尖峰并且直接造成了与中性点比较获得的过零信号中含有错误的过零信息. 而滤波后的信号则完全消除了假过零点,说明该算法可以非常良好地去除虚假过零点,并且延时时间不随转速变化. 在5 000 r/min和10 000 r/min的滤波延时都是0.4 ms.
(a) 电机驱动器 (b) 无刷直流陀螺电机
(a)5 000 r/min波形
(b)10 000 r/min波形
2)反电势换相实验:为了获得换相位置,需要对过零信号进行延时. 图16(a)为改进的检测算法的波形图. 可以看到换相信号被准确地延时到理论换相位置,采集到的端电压波形也十分接近梯形,说明换相准确. 图16(b)则为传统的反电动势检测算法波形,端电压出现畸变,梯形反电动势出现不对称. 对比实验结果可以看到,改进算法可以有效地提高位置检测的精度.
(a) 改进检测算法实验波形
(b)传统检测算法实验波形
3)调速实验:由于锁相环的相位跟踪特性,可以将其运用在电机调速中. 在本文的设计中,将电机反电动势与中性点比较得到的方波信号作为VCO输出,这样就构造出了锁相环回路. 当给定参考信号,反电动势方波信号将被锁相到参考信号. 这样即可实现锁相环调速. 实验结果如图17所示.
图17 动态转速
其中显示的波形为光电传感器采集的电机实时转速,每转一圈一个数据点. 平均转速指每30圈计算一次的转速为7 200.28 r/min,最大转速为25 s内电机最大的实时转速为7 201.25 r/min,最小转速为25 s内最低的实时转速为7 198.86 r/min.
则转速波动率:
(6)
其中:nmax为转速最大值,nmin为转速最小值,nave为转速平均值. 可以看到转速精度可以达到万分之一的数量级.
6 结 论
本文着重对反电动势检测算法进行了分析,建立了反电动势检测的数学模型并分析了反电势检测中存在的滤波延时问题.
1)为了解决滤波延时问题,利用形态学滤波思想实现了固定时域延时的数字滤波算法并建立的Simulink仿真模型,通过仿真验证了算法的正确性.
2)运用锁相环锁相的相位跟踪能力改进了反电动势过零点延时30°的算法. 通过仿真验证了算法的性能并通过换相及调速实验验证了算法的实用性.
3)设计开发了无刷直流电机控制器,采用上述算法,实现了转速波动在万分之一数量级的控制精度.