kl800.com省心范文网

基于S12X的直流无刷电机反电势控制方法(天津工业大学 熊慧 李玉锟 尤一鸣)


基于 S12X 的直流无刷电机反电势控制方法
熊慧,李玉锟,尤一鸣 (天津工业大学 电气工程与自动化学院,天津 300160) 摘要:反电势控制技术是研究直流无刷电机控制的一个热点。本文通过检测直流无刷电机断开相端电压 的方法来寻找反电势的过零点。 本文应用的微控制器是飞思卡尔公司生产的双核单片机 MC9S12XDG128, 其具有的功能完全能够实现对直流无刷电机的控制。本文介绍了反电势控制理论,并论述应用 S12X 单片 机在反电势理论基础上控制直流无刷电机的方法,并对在此控制方式下的直流无刷电机起动问题进行讨 论。经试验证明,在此种控制方式下直流无刷电机能够稳定运行并能正常起动。 关键词:直流无刷电机;反电势;双核单片机;MC9S12XDG128 中图分类号:TM351 文献标识码:A

Back-EMF control method of BLDCM based on S12X MCU
XIONG Hui,LI Yukun,You Yiming (College of Electrical Engineering and Automation, Tianjin Polytechnic University, Tianjin 300160, China) Abstract: The technique of Back-EMF is a hot research on BLDCM domain. This paper use the method of detect the phase terminal voltages without current to find Back-EMF zero crossing. The MCU used in this paper is MC9S12XDG128 produced by Freescale Semiconductor Company, the function it possessed will completely achieve the task of control the BLDC motor. This paper discusses the theory of Back-EMF, and discusses the method of using S12X MCU to control BLDC motor based on this theory. In addition, this paper discusses the way of BLDC motor start-up. The BLDC motor is running well and start-up successfully in practice so prove the method used in this paper is right. Key words: BLDC motor;Back-EMF;dual CPU cores MCU;MC9S12XDG128

0 引言
直流无刷电机中采用各种形式的位置传感器, 根据位置传感器的信号控制直流无刷电机 换相。 但位置传感器的存在限制了直流无刷电机在某些特定场合中的应用, 这主要体现在[1]: (1) 位置传感器可能使电机系统的体积增大; (2) 位置传感器使电机与控制系统之间导线增多,使系统容易受到外界干扰影响; (3) 位置传感器在高温、高压和湿度较大等恶劣工况下运行时灵敏度变差,系统运 行可靠性降低; (4) 位置传感器对安装精度要求较高,机械安装偏差引起的换相不准确直接影响电 机的运行性能。 因此无传感器控制技术逐渐成为直流无刷电机的研究热点之一, 国内外众多学者对此已 经取得许多成果。 此种方式省去了直流无刷电机的位置传感器, 通过检测电机相关参数并经 过计算从而控制电机换相。 因此无传感器控制技术可以提高直流无刷电机运行的可靠性, 并 减小电机的体积。依据检测原理的不同,无传感器控制技术包括反电势法、磁链法、电感法 等。 本文应用的是用 A/D 直接检测反电势法。 本文应用的电机是三相桥式 Y 型接法的直流无 刷电机, 换相方式为 120 度电角度两两导通换相。 本文采用的微控制器是飞思卡尔公司生产 的双核单片机 MC9S12XDG128。除主 CPU 外它还具备一个协处理 XGATE,主要用来处理 中断,减轻了中断对主 CPU 的占用,提升了系统的性能。

1

直流无刷电机反电势控制的理论依据

直流无刷反电势控制是无传感器控制中相对成熟的一种。 这种方法需要测量直流无刷电 机三相的反电势,找到反电势的过零点,再延时 30 度电角度换相,进而控制电机正确换相。 反电势法包括多种检测反电势过零点的方法:端电压检测法、反电势积分法、反电势三次谐 波法、续流二极管法和线反电势法等。鉴于端电压检测法检测方式简单,控制方便等优点, 本文采用此种方法。 直流无刷电机反电势的过零点与换相时刻的关系如图 1 所示。图中 eA 、eB 、eC 为互差 120 度电角度的三相梯形波反电势, Q1~Q6 为一个周期中的六个换相点, 分别滞后相应反电 势过零点 30 度电角度。图中阴影部分为电流导通区,直线部分为反电势。

图 1 反电势的过零点与换相时刻的关系图

直流无刷电机的数学模型为[1]

? UAG ? ? UBG ? UCG ?

? ? iA ? ? ? = R ? iB ? ? iC ? ?

? ? iA ? ? eA d ? ? ? ? ? + ( L - M ) dx ? iB ? + ? eB ? ? iC ? ? eC ? ? ? ?

? ? UN ? ? ? + ? UN ? ? UN ? ?

? ? ? ? ?

(1)

式中:UAG 、UBG 、UCG 为直流无刷电机三相的端电压; UN 为中性点电压; L ,M 为绕组等效自感和互感; 当 AB 两相导通 C 相悬空时,即 A 相上桥臂导通,B 相下桥臂导通。由图 2 可知此时 电流由 A 相流入 B 相流出,C 相不导通。此时 iA = -iB = I,iC = 0。设电源电压为 U,由 于此刻 A 相上桥导通,B 相下桥导通,则 UAG = U,UBG = 0。将(1)式的 UAG 、UBG 相加, 得 U = eA +eB +2UN,而 U = 2UN。由上述推导可得 A 相和 B 相反电势和电流的关系为

eA + eB = 0 iA + i B = 0

(2)

+
Q1 Q3 Q5

iA

A

iB U Cd VF B Q4 Q6 Q2 C

G

BLDCM

图 2 直流无刷电机电流流向示意图 将(1)式的 UAG 、UBG 相加,再将(2)式代入,得

UN =

UAG + UBG 2

(5)

即中性点电压为导通两相端电压和的一半。 由于 C 相此刻已经悬空无导通电流,故 iC = 0,

ec = UCG - UN = UCG -

UAG + UBG 2

d iC = 0。所以由(1)式的 UCG 可得 dt
(4)

由(4)式可知当 C 相悬空时确定 C 相反电势过零点的方法为:由单片机检测 A、B、C 三相的端电压,计算 UCG 和

UAG + UBG 的值并进行比较,当二者之差的绝对值小于事先设定 2

的某一阈值时,将此时刻作为 C 相反电势的过零点。 同理,AC 相导通、B 相悬空时,有

eB = UBG - UN = UBG BC 相导通、A 相悬空时,有

UAG + UCG 2 UBG + UCG 2

(5)

eA = UAG - UN = UAG 2 控制策略

(6)

利用(4)(5)和(6)三式可作为判断 A、B、C 三相反电势过零点的依据。 、

直流无刷电机的反电势控制需要不停的检测电机三相的端电压, 通过计算找到某一相过 零点的时刻,所以要用到单片机上的三路 A/D。另外,当某一相的反电势到达过零点时还需 要延时 30 度电角度才能作为这一相的换相时刻,所以需要用到单片机上的定时器模块。另 外,为了能够实现对电机的调速,还要用到单片机上的 PWM 模块。 为了保证直流无刷电机能正常的运行, 电机上的三相电源要按一定顺序切换。 本文中用 到的电机在正常情况下换相顺序为:AB-CB-CA-BA-BC-AC-AB。为了能够更好的说明换相 方法,下面举一个例子,说明电机如何由 CB 通电状态转换到 CA 通电状态。比如电机此刻 已经顺利启动,正常运行,并且是 AB 两相导通,当程序检测到需要切换到 CB 状态后马上 改变相应设置,转换到 CB 状态,同时开始计时,测量由状态切换(AB-CB)时刻到 A 相端 电压到达中性点时刻的时间间隔。此时 CB 通电,A 相悬空。程序不停的比较 A 相端电压和 (UC+UB)/2 差值的绝对值是否小于事先设定好的阈值,小于阈值即 A 相反电势过零。此时 单片机读取定时器的值,此值即为 30 度电角度的时间长度。再用定时器延时相等的时间, 然后进行换相,转换到 CA 状态。在程序中为每一个状态都编写了一段程序,各段程序均包

括上述的比较悬空相和中性点 Un 的电压、延时 30 度电角度、状态切换等内容。状态切换 是按顺序进行的,保证换相正确。比如 AB 段程序完成后只能跳转到 CB 段程序执行。

3

硬件电路

直流无刷电机的反电势控制的驱动电路由 IR2132 和六个 MOS 管组成。 IR2132S 芯片是 一种高电压、高速度的功率 MOSFET 和 IGBT 驱动集成 IC,工作电压为 600V,分别有三个 独立的高端和低端输出通道。逻辑输入与 CMOS 或 TTL 输出兼容,最小可以达到 2.5V 逻 辑电压。芯片的内部设计有过流、欠电压及逻辑错误保护装置,使用户可以方便地用来保护 被驱动的功率管。驱动电路示意图如图 3 所示。双核单片机的三路 PWM 通道接 IR2132 的

图 3 驱动电路示意图 三路高输入,三路 T 口接 IR2132 的三路低输入。IR2132 的六路输出接六个 MOS 管。Q4、 Q6、Q2 下端三个 MOS 管的 S 极与地之间接了一根康铜丝。康铜丝上的电压即为此刻流过 MOS 管的电流和康铜丝电阻的乘积, UP。 即 在驱动板上将 UP 接到 IR2132 的 ITRIP 引脚上。 如果驱动电路出现了过流情况,那么 UP(ITRIP 输入)会增大,一但超过 0.5V,IR2132 芯 片内部的电流比较器就会产生信号,使 IR2132 的六路输出截止,使六个 MOS 管进入关闭 状态,实现对驱动电路的保护。同时 FAULT 输出一个低电平信号,利用此信号,单片机可 以知道驱动电路出现过流,从而将输出信号关断。 由于给直流无刷电机供电的电源电压在 12V,所以电机的端电压可能达到 12V 左右。 若通过单片机进行端电压的检测还需要将端电压进行分压。 如下图所示为直流无刷电机某一 相端电压检测分压电阻。通过分压电阻后,向单片机 AD 通道输入的信号可以控制在 5V 之 内。

图 3 端电压检测分压电阻

4

S12X 单片机的设置

在使用双核单片机之前需要对其进行设置, 除必要的初始化之外, 还需将即将要用到的 中断交给协处理器 XGATE 处理。此设置包括两部分,一是在主 CPU 中的设置,二是在协 处理器中的设置。下面通过例子来说明。例如本文要用到定时器中断。首先在程序起始位置 声明定时器中断 #define mccnt_VEC 0xCA。 0xCA 是 MCCNT 中断的向量地址。 mccnt_VEC 是主 CPU 响应来自 XGATE 的中断的中断名。mccnt_VEC 中断程序位于主 CPU 程序段内。在 SetupXGATE 函数里设定 ROUTE_INTERRUPT(mccnt_VEC, 0x81),用来写 中断请求配置地址寄存器和中断请求配置数据寄存器。再向协处理器的控制寄存器写入 0xFBc1 来允许 XGATE 工作,允许其处理中断。至此 SetupXGATE 函数设定好了,只要在 “main”函数里调用就可以了。在“main.c”文件的最后写上主 CPU 响应来自 XGATE 的 中断——mccnt_VEC。由于不需要在此中断里做什么事情,只要将由 XGATAE 置位的中断 标志寄存器清零即可。 interrupt void mccnt_interrupt(void){ XGIF1 = 0x0020; }

// 中断标志寄存器清零

当 然 , 在 “ .prm ” 文 件 中 还 需 要 设 定 一 下 中 断 向 量 VECTOR ADDRESS 0xFFCA mccnt_interrupt。至此主 CPU 的设置工作完成。 在“xgate.cxgate”文件里首先要编写定时器中断程序 interrupt void mccnt_Thread(){}, mccnt_Thread 是中断名。 XGATE_VectorTable 的设定为{(XGATE_Function)mccnt_Thread, 在 0x65}。至此主 CPU 和 XGATE 的设置全部完成,协处理器可以处理定时器中断了。

5

直流无刷电机的起动

直流无刷电机在静止和低速的情况下反电势难以检测, 此时利用反电势确定转子位置的 方法失效。 所以在起动阶段要用特殊的方法先电机运转起来, 待到其达到一定速度时再切换 到反电势检测状态。目前起动方案主要有三段式起动法、预定位起动法、升频升压同步起动 法和短时检测脉冲转子定位起动法[3]。本文采用的起动方法为三段式起动法。首先让直流无 刷电机的某两相导通,使电机转子转到一个预定的位置。然后按照正确的顺序换相,并控制 换相时间, 使电机转速逐渐上升。 当电机速度达到一定程度后就可以切换到反电势检测阶段, 利用检测到的反电势控制电机正确换相。

6

结论

本文应用的是飞思卡尔公司生产的双核单片机 MC9S12XDG128,在直流无刷电机反电 势理论基础上,控制一个直流无刷电机运行。利用单片机三路 AD 通道和定时器模块进行反 电势的检测,利用 PWM 模块对电机进行调速。三路 AD 通道和定时器模块产生的中断由协 处理器 XGATE 处理,减轻了主 CPU 的负担,使其能更好的处理主函数的程序。用双核单 片机作为直流无刷电机的控制器,能够更加准确的找到反电势的过零点,更加准确的进行 30 度电角度的延时,从而达到更加理想的控制效果。经实验证明,直流无刷电机能够顺利 起动,并能连续平稳运行。

参考文献
[1] 夏长亮. 无刷直流电机控制系统[M]. 北京:科学出版社,2009. XIA Changliang. The control system of BLDC motor[M]. Beijing: Science Press, 2009. (in Chinese) [2] 邵贝贝, 宫辉. 嵌入式系统中的双核技术[M]. 北京: 北京航空航天大学出版社, 2008. SHAO Beibei, GONG Hui. The technique of dual CPU cores in embedded system[M]. Beijing: TSINGHUA UNIVERSITY PRESS, 2008. (in Chinese) [3] 张玉峰. 基于 DSC 的 BLDCM 无位置传感器位置检测方案研究[D]. 西安:西安科技大 学,2007. ZHANG Yufeng. Research on Position Detection Methods of Sensorless Brushless DC Motor Control System Using the Digital Signal Controller[D]. Xi'an: Xi'an University of Science and Technology, 2007. (in Chinese) [4] Freescale. 9S12XDP512DGV2 Data Sheet. Rev. 11.18.2004. [5] Freescale. S12XGATEV2 Data Sheet. Rev. 11.16.2004.

作者简介: 熊慧(1978-) ,女(汉族) ,湖北襄樊市人,讲师,硕士,毕业于南京航空航天大学,主 要研究领域为智能控制、单片机及嵌入式系统应用。

联系方式: 第一作者姓名: 熊慧 通信地址:天津工业大学电气工程与自动化学院自动化系 邮编: 联系电话:13820365025;E-mail: xionghui@tjpu.edu.cn

300160


赞助商链接

文献检索试题2

[15] 熊慧 , 李玉锟 , 尤一鸣 . 基于 S12X 的直流无刷电机反电势控制方法 [J]. 电子技术应 用,2010,02:95-97+102. [16] 黄琦兰 , 沙琳 , 秦伟刚...