一种改进的无刷直流电机霍尔信号倍频测速方法
王明明
摘要:利用无刷直流电机自身的霍尔传感器进行测速,得到的速度波动往往比较大,往往不能作为控制器的反馈信号。本文针对这个问题,对原有霍尔信号倍频测速方法进行了改进,并利用这种方法设计了一个专门的测速模块,实验结果证明了该方法的可行性和可靠性。
关键词:无刷直流电机/霍尔传感器;倍频
1,2
,郭威
1
(1. 机器人学国家重点实验室,中国科学院沈阳自动化所,辽宁 沈阳 110016;2. 中国科学院研究生院,北京100049)
A Modified Method for the Speed Measurement Method Using Frequency
Multiplication to the Hall Signal of BLDC Motor
WANG Ming-ming1,2,GUO Wei1
(1.State Key Laboratory of Robotics,Shenyang Institute of Automation,Chinese Academy of Science,Shenyang 110016,China;
2. Graduate School of the Chinese Academy of Sciences,Beijing 100049,China)
Abstract: When using of BLDC motor's own Hall sensor for Speed, the speed fluctuations tend to be relatively large,which often can not be used as the feedback signal of controller.In this paper ,we try to resolve this problem, improve the original speed measurement method using frequency multiplication to the Hall signal ,and design a special of speed measurement module.The experimental results prove the method feasibility and reliability. Key words:BLDC motor/HALL sensor; frequency multiplication
0 引 言
永磁无刷直流电机具有良好的调速性能,如无级调速、调速范围宽、高效率等, 近年来广泛应用于家电、汽车、数控机床、机器人等领域。考虑简单可靠和低成本等因素,可直接采用电机自身的霍尔检测器的信号进行位置和速度反馈,不增加其他的位置和速度检测元件。采用霍尔信号对转速进行测量通常采用两种方法:一种是使用一路霍尔信号进行测量,由于单路信号分辨率比较低,反馈周期比较长,通常用在高速控制领域;一种是利用三路霍尔信号,通过逻辑电路或算法,产生6倍于一路霍尔信号频率的倍频信号,然后对其进行测量。文献[1]采用的就是第二种方法,这种方法提高了分辨率,可以用在较低转速控制领域。但这两种方法对霍尔传感器在电机定子圆周上的定位有严格的要求,当霍尔传感器在电机定子圆周上定位有误差时,相邻两个正脉冲的宽度不一致,
[2]
会导致较大的测量误差。
本文对第二种方法进行了改进,介绍一种针对普通无刷直流电机(对霍尔传感器在电机定子圆周上定位没有严格要求的电机)进行六倍频和辨向处理的技术,设计了一个利用霍尔信号进行测速的功能模块,得到了比较好的控制效果。
1
利用霍尔信号测速的基本原理
无刷直流电机一般采用霍尔开关型的转子位置检测器,通常用霍尔位置信号进行电机换向控制。经过整形,霍尔信号传感器发出Ha ,Hb ,Hc 信号是三
[1]
路相差120°的低频脉冲,这三路信号在360°电角度内组成了6个不同的代码,形成六种不同的状态,这六个代码依次是101,100,110,010,011,001。正转时按照这个次序依次变化,反转时逆着这个次序依次变化,所以这三路信号包含着转速和转向的信息。本文采用的测速方法主要思想是:如果电机磁极对数是N 0则电机每转一圈就会N 0组6个不同的
状态,设定一个时钟频率是f 0的计数器 ,电机每运行到一个状态,记录计数器的值为m i , 则电机此时的转速为
n f 0
i =
60m (1)
i -m i -6N 0
式中i>=6N0。这种方法对霍尔元件在电机上的定位没有要求,测速波动小,又能提高测速反馈信号的分辨率。本文采用这种方法设计了一个功能模块,并通过实验来验证该方法的可行性和可靠性。
2 功能模块的设计
1.1 功能模块接口电路连接设计
利用霍尔元件测速的功能模块是采用Atmega8515L 实现的,其接口电路原理图如图1所示。
图1 功能模块接口电路原理图
霍尔元件输出的三路信号经过整形连接到单片机的PA 口的三个引脚,模块通过串行接口与主控芯片进行通信。主控芯片是用来完成电机闭环控制,一般采用DSP 等高速处理芯片,它一般由3.3V 供电,考虑到电平兼容所以模块与主控芯片之间要加电平转换芯片。如果选用ARM ,C8051F040等支持5V 逻辑电平芯片作为主控芯片可以省掉电平转换芯片,Atmega8515L 与主控芯片之间靠4.7K Ω电阻连接,同样能保证正常工作。
1.2 功能模块的程序设计
考虑到计数器溢出,数值过大等问题时,可以对公式(1)是进行变形,由于
i -6m i ∑
N 1
-m i -6N 0=
0+(m j -m j -1) (2)
j =i
令T i =m i -m i -1,(1)式是可变为
n 60f
0i =i -6N 0+1 (3)
∑T j
j =i
为了加快计算速度必须减少求和次数,本模块采用滑动窗口求和算法将6N 0次求和转化为两次求和,计算电机转速的处理算法如下:
1.定义一个全局数组A[6N0],全局变量bcnt,atop, 局部变量sum,T ,并把他们初始化为0,当前计数器的读数为m i ;
2. 依次执行T=mi -bcnt , bcnt=mi ,sum=sum-A[atop]+T,A[atop]=T, atop++,假如atop=6N0,则atop=0,当前速度=60f0/sum;
3.在电机转速的测量中,由于转速本身的脉动,随机干扰存在,对测得的转速进行平均值滤波,就会达到比较好的效果。
模块针对倍频测速与辨向的程序设计思想是:设定一个定时器,定时时间尽可能小,能够完成中断程序就行,定时检测霍尔信号的状态,进行相应的处理,其程序流程图如图2,3所示,其中状态st0-st5分别与代码101,100,110,010,011,001相对应。
图2 中断子程序流程图
图3 状态处理单元0程序流程图
模块通过串口来与主控芯片进行通信,用两个字
节来表示速度信息,第1位表示电机旋转的方向,第2位表示测速故障状态,后14位表示速度的大小,所以速度最大值是16838转每分,为了保证通信正常工作,主从机采用握手的方式工作。具体的工作过程是:
1.主控芯片发送字符“#”给模块表示开始接收数据;
2.模块接收到“#”后,开始发送速度数据的高位字节;
3.主控芯片接收到高位字节后,发送字符“1”给模块,表示高位字节收到,开始接受低位字节;
4.模块接收到“1”后,发送低位字节; 5.主控芯片接到低位字节后,把高位字节低位字节组合为完整的速度信息,然后提取速度的大小,方向,故障的信息,通信结束。
采取这种方式工作的好处是:对通信双方的通信中断优先级没有严格要求,通信信息在通信过程中不会被破坏,特别是高位字节和低位字节的顺序。
2 实验结果
实验电机参数:额定转速4000r/min,功率50w ,极对数为4。方案采用C8051F040芯片为主控芯片,使用设计的功能模块进行测速反馈。控制器采用数字PID 双闭环控制算法,电流环周期为125us ,速度环周期为3ms ,得到系统稳态时转速曲线如图4,图5所示。
图4 设定转速为2000r/min时稳态转速曲线
图5 设定转速为200r/min时稳态转速曲线
3 结论
本文基于改进的霍尔信号六倍频测速方法,设计了一个专门的测速模块,实验效果如图4,5所示,控制精度分别达到±0.25%和±1%,证明了该方法的可行性和可靠性,该模块可以作为无刷直流电机控制器的测速反馈元件,可应用于大多数无刷电机应用领域。
参考文献
[1] 李宁, 汪木兰,左健民. 无刷直流电机霍尔信号细分反馈方法的研究[J].电力电子技术,2006,10:68-69.
[2] 谢世杰,陈生潭,楼顺天. 数字PID 算法在无刷直流电机控制器中的应用[J].现代电子技术,2004,2:59-61. [3] 董云翔,刘宇杰,周元鈞. 航空高速宽范围调速电机的转速测量方法研究[J].计算机检测与控制,2005,2:106-108.
作者简介:王明明(1984-),男,辽宁瓦房店市人,硕士研究生,从事机器人控制研究。
联系方式是: 姓名:王明明
地址:辽宁省沈阳市南塔街114号第二研究室研究生 邮编:110016 电话:[1**********]
一种改进的无刷直流电机霍尔信号倍频测速方法
王明明
摘要:利用无刷直流电机自身的霍尔传感器进行测速,得到的速度波动往往比较大,往往不能作为控制器的反馈信号。本文针对这个问题,对原有霍尔信号倍频测速方法进行了改进,并利用这种方法设计了一个专门的测速模块,实验结果证明了该方法的可行性和可靠性。
关键词:无刷直流电机/霍尔传感器;倍频
1,2
,郭威
1
(1. 机器人学国家重点实验室,中国科学院沈阳自动化所,辽宁 沈阳 110016;2. 中国科学院研究生院,北京100049)
A Modified Method for the Speed Measurement Method Using Frequency
Multiplication to the Hall Signal of BLDC Motor
WANG Ming-ming1,2,GUO Wei1
(1.State Key Laboratory of Robotics,Shenyang Institute of Automation,Chinese Academy of Science,Shenyang 110016,China;
2. Graduate School of the Chinese Academy of Sciences,Beijing 100049,China)
Abstract: When using of BLDC motor's own Hall sensor for Speed, the speed fluctuations tend to be relatively large,which often can not be used as the feedback signal of controller.In this paper ,we try to resolve this problem, improve the original speed measurement method using frequency multiplication to the Hall signal ,and design a special of speed measurement module.The experimental results prove the method feasibility and reliability. Key words:BLDC motor/HALL sensor; frequency multiplication
0 引 言
永磁无刷直流电机具有良好的调速性能,如无级调速、调速范围宽、高效率等, 近年来广泛应用于家电、汽车、数控机床、机器人等领域。考虑简单可靠和低成本等因素,可直接采用电机自身的霍尔检测器的信号进行位置和速度反馈,不增加其他的位置和速度检测元件。采用霍尔信号对转速进行测量通常采用两种方法:一种是使用一路霍尔信号进行测量,由于单路信号分辨率比较低,反馈周期比较长,通常用在高速控制领域;一种是利用三路霍尔信号,通过逻辑电路或算法,产生6倍于一路霍尔信号频率的倍频信号,然后对其进行测量。文献[1]采用的就是第二种方法,这种方法提高了分辨率,可以用在较低转速控制领域。但这两种方法对霍尔传感器在电机定子圆周上的定位有严格的要求,当霍尔传感器在电机定子圆周上定位有误差时,相邻两个正脉冲的宽度不一致,
[2]
会导致较大的测量误差。
本文对第二种方法进行了改进,介绍一种针对普通无刷直流电机(对霍尔传感器在电机定子圆周上定位没有严格要求的电机)进行六倍频和辨向处理的技术,设计了一个利用霍尔信号进行测速的功能模块,得到了比较好的控制效果。
1
利用霍尔信号测速的基本原理
无刷直流电机一般采用霍尔开关型的转子位置检测器,通常用霍尔位置信号进行电机换向控制。经过整形,霍尔信号传感器发出Ha ,Hb ,Hc 信号是三
[1]
路相差120°的低频脉冲,这三路信号在360°电角度内组成了6个不同的代码,形成六种不同的状态,这六个代码依次是101,100,110,010,011,001。正转时按照这个次序依次变化,反转时逆着这个次序依次变化,所以这三路信号包含着转速和转向的信息。本文采用的测速方法主要思想是:如果电机磁极对数是N 0则电机每转一圈就会N 0组6个不同的
状态,设定一个时钟频率是f 0的计数器 ,电机每运行到一个状态,记录计数器的值为m i , 则电机此时的转速为
n f 0
i =
60m (1)
i -m i -6N 0
式中i>=6N0。这种方法对霍尔元件在电机上的定位没有要求,测速波动小,又能提高测速反馈信号的分辨率。本文采用这种方法设计了一个功能模块,并通过实验来验证该方法的可行性和可靠性。
2 功能模块的设计
1.1 功能模块接口电路连接设计
利用霍尔元件测速的功能模块是采用Atmega8515L 实现的,其接口电路原理图如图1所示。
图1 功能模块接口电路原理图
霍尔元件输出的三路信号经过整形连接到单片机的PA 口的三个引脚,模块通过串行接口与主控芯片进行通信。主控芯片是用来完成电机闭环控制,一般采用DSP 等高速处理芯片,它一般由3.3V 供电,考虑到电平兼容所以模块与主控芯片之间要加电平转换芯片。如果选用ARM ,C8051F040等支持5V 逻辑电平芯片作为主控芯片可以省掉电平转换芯片,Atmega8515L 与主控芯片之间靠4.7K Ω电阻连接,同样能保证正常工作。
1.2 功能模块的程序设计
考虑到计数器溢出,数值过大等问题时,可以对公式(1)是进行变形,由于
i -6m i ∑
N 1
-m i -6N 0=
0+(m j -m j -1) (2)
j =i
令T i =m i -m i -1,(1)式是可变为
n 60f
0i =i -6N 0+1 (3)
∑T j
j =i
为了加快计算速度必须减少求和次数,本模块采用滑动窗口求和算法将6N 0次求和转化为两次求和,计算电机转速的处理算法如下:
1.定义一个全局数组A[6N0],全局变量bcnt,atop, 局部变量sum,T ,并把他们初始化为0,当前计数器的读数为m i ;
2. 依次执行T=mi -bcnt , bcnt=mi ,sum=sum-A[atop]+T,A[atop]=T, atop++,假如atop=6N0,则atop=0,当前速度=60f0/sum;
3.在电机转速的测量中,由于转速本身的脉动,随机干扰存在,对测得的转速进行平均值滤波,就会达到比较好的效果。
模块针对倍频测速与辨向的程序设计思想是:设定一个定时器,定时时间尽可能小,能够完成中断程序就行,定时检测霍尔信号的状态,进行相应的处理,其程序流程图如图2,3所示,其中状态st0-st5分别与代码101,100,110,010,011,001相对应。
图2 中断子程序流程图
图3 状态处理单元0程序流程图
模块通过串口来与主控芯片进行通信,用两个字
节来表示速度信息,第1位表示电机旋转的方向,第2位表示测速故障状态,后14位表示速度的大小,所以速度最大值是16838转每分,为了保证通信正常工作,主从机采用握手的方式工作。具体的工作过程是:
1.主控芯片发送字符“#”给模块表示开始接收数据;
2.模块接收到“#”后,开始发送速度数据的高位字节;
3.主控芯片接收到高位字节后,发送字符“1”给模块,表示高位字节收到,开始接受低位字节;
4.模块接收到“1”后,发送低位字节; 5.主控芯片接到低位字节后,把高位字节低位字节组合为完整的速度信息,然后提取速度的大小,方向,故障的信息,通信结束。
采取这种方式工作的好处是:对通信双方的通信中断优先级没有严格要求,通信信息在通信过程中不会被破坏,特别是高位字节和低位字节的顺序。
2 实验结果
实验电机参数:额定转速4000r/min,功率50w ,极对数为4。方案采用C8051F040芯片为主控芯片,使用设计的功能模块进行测速反馈。控制器采用数字PID 双闭环控制算法,电流环周期为125us ,速度环周期为3ms ,得到系统稳态时转速曲线如图4,图5所示。
图4 设定转速为2000r/min时稳态转速曲线
图5 设定转速为200r/min时稳态转速曲线
3 结论
本文基于改进的霍尔信号六倍频测速方法,设计了一个专门的测速模块,实验效果如图4,5所示,控制精度分别达到±0.25%和±1%,证明了该方法的可行性和可靠性,该模块可以作为无刷直流电机控制器的测速反馈元件,可应用于大多数无刷电机应用领域。
参考文献
[1] 李宁, 汪木兰,左健民. 无刷直流电机霍尔信号细分反馈方法的研究[J].电力电子技术,2006,10:68-69.
[2] 谢世杰,陈生潭,楼顺天. 数字PID 算法在无刷直流电机控制器中的应用[J].现代电子技术,2004,2:59-61. [3] 董云翔,刘宇杰,周元鈞. 航空高速宽范围调速电机的转速测量方法研究[J].计算机检测与控制,2005,2:106-108.
作者简介:王明明(1984-),男,辽宁瓦房店市人,硕士研究生,从事机器人控制研究。
联系方式是: 姓名:王明明
地址:辽宁省沈阳市南塔街114号第二研究室研究生 邮编:110016 电话:[1**********]