发明内容
针对上述现有直流无刷电机速度估计出现的技术问题,本发明提供一种基于零速滤波的直流无刷电机速度估计方法,通过零速滤波判定前后两次的电机速度估计输入值之间是否异号,避免电机输出速度发生震荡,从而保证对电机速度的有效控制。
为了解决上述问题,本发明采用的技术方案是:
一种基于零速滤波的直流无刷电机速度估计方法包括以下步骤:
1)电机转动过程中,分别采集初始位置S0和其相邻位置S1的位置信号,并计算电机转子从S0位置变化至S1位置所用的时间间隔T1,得出电机转子的速度估计值V1,此时电机以V1作为输出速度;
2)继续采集电机转子从位置S1转至其的相邻位置S2时的位置信号,并计算电机转子从位置S1变化至位置S2所用的时间间隔T2,计算得出电机的速度估计值V2;将速度估计值V2与速度估计值V1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,此时电机以V2作为输出速度;
3)以步骤2)类推,采集电机转子从Sn-1转至其相邻位置Sn时的位置信号,并计算电机转子从Sn-1变化至Sn位置所用的时间间隔Tn,计算得出电机的速度估计值Vn;将速度估计值Vn与速度估计值Vn-1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,此时电机以Vn作为输出速度;n=3、4、5。
进一步的,所述电机转子若从位置S0开始,依次经S1、S2、S3、S4和S5后重新转回位置S0为一个转动周期。
进一步的,定义电机转子从S0向其相邻位置S1转动时,位置信号变化为正向变化,速度估计值V1的矢量值为正值;从S0转动至S5时,位置信号变化为负向变化,速度估计值V1的矢量值为负值。
进一步的,所述步骤1)的具体过程是:电机转动过程中,采集初始位置S0的位置信号并开始计时为TS0=0,当电机转子转动至初始位置S0的相邻位置S1时,采集S1的位置信号,并记录电机转子从初始位置S0转动到位置S1所用的时间TS1,并计算电机转子从S0位置变化至S1位置所用的时间间隔T1=TS1-TS0=TS1,得出电机转子的速度估计值V1=π/3T1。
进一步的,所述步骤2)的具体过程是:当电机转子转动至位置S1的相邻位置S2时,采集电机转子转至S2时的位置信号,记录电机转子从S0位置变化至S2位置所用的时间TS2,计算电机转子从S1位置变化至S2位置所用的时间间隔T2=TS2-TS1,计算得出电机的速度估计值V2=π/3T2;将速度估计值V2与速度估计值V1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,电机输出速度值为V2。
进一步的,所述步骤3)的具体过程是:当电机转子转动至位置Sn-1的相邻位置Sn时,采集电机转子转至Sn时的位置信号,记录电机转子从S0位置变化至Sn位置所用的时间TSn,计算电机转子从Sn-1位置变化至Sn位置所用的时间间隔Tn=TSn-TSn-1,计算得出电机的速度估计值Vn=π/3Tn;将速度估计值Vn与速度估计值Vn-1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,电机输出速度值为Vn。
本发明的有益效果是:
本发明提供的基于零速滤波的直流无刷电机速度估计方法包括以下步骤:1)电机转动过程中,分别采集初始位置S0和其相邻位置S1的位置信号,并计算电机转子从S0位置变化至S1位置所用的时间间隔T1,得出电机转子的速度估计值V1,此时电机以V1作为输出速度;2)继续采集电机转子从位置S1转至其的相邻位置S2时的位置信号,并计算电机转子从位置S1变化至位置S2所用的时间间隔T2,计算得出电机的速度估计值V2;将速度估计值V2与速度估计值V1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,此时电机以V2作为输出速度;3)以步骤2)类推,采集电机转子从Sn-1转至其相邻位置Sn时的位置信号,并计算电机转子从Sn-1变化至Sn位置所用的时间间隔Tn,计算得出电机的速度估计值Vn;将速度估计值Vn与速度估计值Vn-1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,此时电机以Vn作为输出速度;n=3、4、5。在电机转动过程中,通过采集的位置信号计算得出电机速度估计值,并通过零速滤波判定,判断速度估计值与上一次速度估计值是否异号,从而可以消除由于速度估计从正值向负值变化过程中,输出速度变化范围大,而导致的电机发生震荡而出现的速度震荡。
具体实施方式
现结合附图以及实施例对本发明做详细的说明。
实施例1
本实施例提供的基于零速滤波的直流无刷电机速度估计方法包括以下步骤:
1)电机转动过程中,分别采集初始位置S0和其相邻位置S1的位置信号,并计算电机转子从S0位置变化至S1位置所用的时间间隔T1,得出电机转子的速度估计值V1,此时电机以V1作为输出速度;
2)继续采集电机转子从位置S1转至其的相邻位置S2时的位置信号,并计算电机转子从位置S1变化至位置S2所用的时间间隔T2,计算得出电机的速度估计值V2;将速度估计值V2与速度估计值V1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,此时电机以V2作为输出速度;
3)以步骤2)类推,采集电机转子从Sn-1转至其相邻位置Sn时的位置信号,并计算电机转子从Sn-1变化至Sn位置所用的时间间隔Tn,计算得出电机的速度估计值Vn;将速度估计值Vn与速度估计值Vn-1相乘,若乘积小于0,则电机输出速度为0;若乘积大于等于0,此时电机以Vn作为输出速度;n=3、4、5。
本实施例,电机转子若从位置S0开始,依次经S1、S2、S3、S4和S5后重新转回位置S0为一个转动周期。
本实施例,定义电机转子从S0向其相邻位置S1转动时,位置信号变化为正向变化,速度估计值V1的矢量值为正值;从S0转动至S6时,位置信号变化为负向变化,速度估计值V1的矢量值为负值。
参见图1,本发明提供的零速滤波速度估计方法中,最左端的1表示当次速度估计值,;Z-1表示上一次速度估计值,X表示当次速度估计值与上一次速度估计值相乘;最右端的1表示速度输出值。
本实施例中,对于直流无刷电机,其信号一般为霍尔信号,包括霍尔1、霍尔2和霍尔3三路信号源,因此电机在转动时,霍尔的输出信号为六个信号规律进行变化,如图2和图3所示。因此,对于直流无刷电机,其电机转子转动一个周期(即转动一圈)采集到的位置信号是001、101、100、110、010、011这6个区域的位置信号。
参见图3,直流无刷电机的六个位置信号在一个周期内共分为6个区域;分别标记为A区域、B区域、C区域、D区域、E区域、F区域,在这6个区域内采集到的位置信号分别为001、101、100、110、010、011;这些数字信号为二进制数字信号。
1)电机转子的初始时位置S0在A范围内的某一处,此时采集位置信号为001,开始计时TS0=0;电机开始转动,电机转子从初始时位置S0转到其相邻位置S1,(S1在B区域内),此时采集位置信号为101,位置信号发生变化,并定义信号变化为正向变化,同时记录电机转子从S0转到其相邻位置S1的时间TS1,计算时间间隔T1=TS1-TS0=TS1;进一步计算出速度估计值V1=π/3T1,速度估计值的矢量为正,V1为正值,此时电机输出值为V1;
2)当电机继续转动,电机转子从位置S1转到其相邻位置S2,(S2在C区域内),此时采集位置信号为100,位置信号发生变化,同时记录电机转子从S0转到其相邻位置S2的时间TS2,计算时间间隔T2=TS2-TS1;计算得出电机的速度估计值V2=π/3T2;此过程中信号变化与六步信号变化相同,速度估计值的矢量为正,速度估计值V2为正值;
并将速度估计值V2与速度估计值V1相乘,乘积大于0,电机输出速度值为V2。
实施例2
1)电机转子的初始时位置S0在C范围内的某一处,此时采集位置信号为100,开始计时TS0=0;电机开始转动,电机转子从初始时位置S0转到其相邻位置S1(S1在D区域内),此时采集位置信号为110,位置信号发生变化,并定义信号变化为正向变化,同时记录电机转子从S0转到其相邻位置S1的时间TS1,计算时间间隔T1=TS1-TS0=TS1;进一步计算出速度估计值V1=π/6T1,速度估计值的矢量为正,V1为正值,此时电机输出值为V1;
2)当电机继续转动,电机转子从位置S1转到其相邻位置S2,(S2与S1同一位置),此时采集位置信号为110,位置信号不发生变化,同时记录电机转子从S0转到其相邻位置S2的时间TS2,计算时间间隔T2=TS2-TS1=0;计算得出电机的速度估计值V2=π/3T2=0;
并将速度估计值V2与速度估计值V1相乘,乘积等于0,电机输出速度值为V2。
实施例3
1)电机转子的初始时位置S0在E范围内的某一处,此时采集位置信号为010,开始计时TS0=0;电机开始转动,电机转子从初始时位置S0转到其相邻位置S1,(S1在F区域内),此时采集位置信号为011,位置信号发生变化,并定义信号变化为正向变化,同时记录电机转子从S0转到其相邻位置S1的时间TS1,计算时间间隔T1=TS1-TS0=TS1;进一步计算出速度估计值V1=π/3T1,速度估计值的矢量为正,V1为正值,此时电机输出值为V1;
2)当电机继续转动,电机转子从位置S1转到其相邻位置S2,(S2在E区域内),此时采集位置信号为010,位置信号发生变化,同时记录电机转子从S0转到其相邻位置S2的时间TS2,计算时间间隔T2=TS2-TS1;计算得出电机的速度估计值V2=π/3T2;此过程中信号变化与六步信号变化相反,速度估计值的矢量为负,速度估计值V2为负值;
并将速度估计值V2与速度估计值V1相乘,乘积小于0,电机输出速度值为0。
综上所述,采用本发明提供的方法,当电机输入值发生变化时,通过采集位置信号,计算速度估计值,同时根据直流无刷电机的信号六步变化趋势判定速度估计值的矢量方向,并通过零速滤波判定,判断本次速度估计值与上一次速度估计值的乘积是否异号,乘积为正值或0则直接输出本次速度估计值,负值输出为0,从而可以消除由于速度估计从正值向负值变化过程中,电机速度变化大,导致发生震荡,从而保证对电机速度的有效控制。