LPC2141的无刷直流电机控制系统设计

发布时间:2010-3-18 10:05    发布者:李宽
关键词: 控制系统 , 设计 , 直流电机
1  概述

无刷直流电机是最常用的无刷电机。它易于驱动,速度可调且工作寿命长,适用于各类大小型工业应用,诸如小型马达的控制(如12 V直流无刷电机)。

LPC2141 是NXP公司推出的嵌入高速Flash闪存的32位ARM微控制器,具有高性能、小体积、低功耗、片上可选择多种外设等优点,应用范围很广。 LPC2141包括多个32位定时器、10位ADCPWM输出功能,通过匹配PWM定时器的输出,可以适合于各种工业控制;芯片上集成USB,可以通过 USB接口连接PC GUI(图形用户界面)软件,方便地控制电机。

本文基于LPC2141的无刷直流电机控制系统设计,包括NXP公司完整的电机控制系统解决方案(NXP公司的ARM微控制器、MOSFET驱动器、MOSFET等)。无刷直流电机控制系统框图如图1所示。

1.gif

2 无刷直流电机原理

无刷直流电机由永磁转子和三相定子组成,如图 2所示。无刷直流电动机不使用电刷换相,而是采用电子换相。通常,3个霍尔传感器用来检测转子位置,通过检测这些传感器的不同时序来换相。

2.gif

无刷直流电机控制(Brushless DC Motor Control,BLDC)马达,比传统的有刷直流电动机和三相异步电动机有更多的优势,提供更长的使用寿命,具备更好的速度与转矩特性、更低的噪声和更宽的速度范围。此外,由于电机的扭矩较大,对于矢量空间和重量起关键因素的场合更加实用。

在无刷直流电机中,电磁场不旋转运动,而永磁旋转,三相定子绕组保持静态。这可能会产生一个问题,如何传递电流给运动的转子。为了解决这个问题,电刷换向器被智能电子控制器所取代。有刷直流电动机中该控制器也执行相同的功率分配,但使用的是电路控制,而不是一个换向器/刷系统。

电动机的速度和扭矩取决于带电绕组电机所产生的磁场的强度,磁场的强度又取决于通过的电流大小。因此,调整转子电压(或电流)将改变电机转速。

3 无刷直流电机的控制

3.1转子的控制

无刷直流电机的驱动必须考虑在转子的不同位置施加不同的电压,即必须正确控制三相绕组系统的电压相序,以便使定子磁场和转子磁场之间的相角度始终接近90°,从而获得最大的扭矩。因此,控制器需要一些控制策略来确定转子的方向/位置(相对于定子线圈)。

本设计使用霍尔传感器来直接测量转子的位置(也有一些应用中使用旋转编码器,或者在驱动线圈中使用反电势的方式)。当一个传感器输出180°电角度的高电平时,其他传感器输出180°的低电平。3个传感器两两有60°相角度差,因此很容易将传感器的轮换分为6个阶段(通过3位二进制代码表示)。图3为三相桥电机驱动结构图。表1则显示了三相霍尔传感器输出电平值和实际的电机绕组MOS管驱动换相之间的关系。

3.gif

4.gif

3.2速度的控制

通过改变加在电机上的电压,可以改变电机的转速。如图4所示,使用PWM输出来控制6个开关三相桥(Q1~Q6),可以通过改变占空比的PWM信号来调整电机的电压。

5.gif

3.3电机的反馈

3.3.1  电流测量

电机电流的低成本测量可以在MOSFET与地之间使用电流感应电阻。小电压出现在电流检测电阻上,经过滤波和放大之后,输入到LPC2141的ADC输入端。

电机的电流测量也经常用于保护模式。当电机在堵转位置时,电流会急剧增加。由于电流的异常突变,ADC的数值会达到一个极限,从而将系统关断,切换到保护模式,从而提高系统的安全系数。

3.3.2 RPM转速测量

作为闭环速度控制,实际的电机速率必须实时监测。通过霍尔传感器连接LPC2141的输入引脚,可以很准确地测量电机转速。常用如下2种方法:

①连接霍尔传感器输出到LPC2141的外部中断输入引脚。这样每60°电角度就会产生一次中断。通过在一定的确切时间(如1 s)统计计数中断的数量,即可很容易地计算出精确的电机速度。

② 连接传感器信号到LPC2141的定时器捕获引脚,通过衡量每一个旋转相位的切换时间来计算电机的转速。

4 硬件设计

4.1  LPC2141的使用方法

LPC2141的系统功能框图如图5所示。LPC2141是NXP公司基于ARM7的LPC2000系列低成本微控制器,具有6通道PWM定时器、片上USB接口、8 KB的片上静态RAM和32 KB的片上闪存程序存储器。对于较大的存储或特定外设(CAN总线、以太网等)的要求,可以选择LPC2000系列的其他型号(如LPC2368等),这些芯片都是和LPC2141兼容的。

6.gif

本设计具备如下特性:CPU负载小于5%,代码大小为6 KB(包含USB通信代码);未用的外设包括UART、I2C、SPI/SSP、RTC、2个定时器和5个A/D输入;超过30个未用的通用输入输出口 GPIO,用于用户的特定应用要求。

4.2电机的选择

使用Maxon公司120 W的EC-40直流电机。空载时供电电压为24 V,电机的转速可达到5 900 r/min,最大的连续电流达到6 A。

4.3  MOSFET的选择

选用NXP公司的PH20100S N沟道场效应管Trench-MOS逻辑电平。这个电平与选定的电机有关。对于24 V电机,MOSFET的VDS需要至少40 V,而漏电流必须足够大,以满足电机的启动电流。由于系统程序代码设计了软启动机制(对于小台阶的启动需要一定的速度),漏电流在一定程度上有所减小。 PH20100S能够处理的最大漏极电流是34.3 A,峰值电流是137 A,采用表面贴装SOT669(LFPAK)封装。

4.4 MOSFET驱动的选择

MOSFET驱动用于提升控制器LPC2141输出驱动电机的电压。本文选择NXP公司的PMD3001D和 PMGD400UN作为MOSFET,驱动电路如图6所示。

7.gif

4.5电机速度的调整   

LPC2141集成6通道32位 PWM定时器,通过设定不同的PWM占空比数值来控制电机的转速,通过USB接口读取电机实际的转速。

5  软件设计

本系统软件部分包括3部分:用户接口(GUI)、USB设备驱动和BLDC电机控制代码。

5.1  用户接口

Windows 的用户界面可控制无刷直流电机演示,如图7所示。该应用程序软件是BLDC_USBGUI.EXE,采用Mierosoft Visual Basic 2008专业版开发,需要在PC机上安装Microsoft.NET Framework,可方便地控制电机速度和读取电机电流及转速。

8.gif

5.2  USB设备驱动

USB通信部分可以到Keil公司网站(www.keil.com)上下载USB通信代码(LPC2148 USB HID人体学设备驱动代码)。如有疑问可与笔者联系(okarmdy@gmail.com)。

5.3  BLDC电机控制代码

本例程序采用C语言编写,采用Keil公司uVision3开发环境进行编译。系统执行的任务如下:

①USB接口用于接收电机的转速信息,以及设定电机电流和转速。

②使用10位A/D输入检测电机电流大小,用于保护电机。

③使用定时器1产生10 ms的系统中断时间戳,用于在不同时间戳切换和分派系统任务。

④使用定时器0的捕获引脚读取霍尔传感器来控制电机的转子,设定PWM定时器占空比来控制转速,驱动Q1~Q6的MOSFET输出,从而控制三相桥的导通与关断。

电机控制部分代码包括5个模块:bide.c、 adc.c、pwm.c、hsensor.c、timerl.c。头文件bidc.h用于设置无刷直流电机控制的相关参数(如电机电流和转速设定等)。使用Keil’s uVision3调试开发环境自带的标准启动代码库配置LPC2141芯片,设置CCLK=PCLK=60 MHz。

结语

本文使用LPC2141微控制器设计了一款无刷直流电机控制系统,代码精简,控制可靠。经过长期测试证明,系统相关器件的选型设计是稳定的。从芯片设计和系统低成本设计上,该系统具有一定的应用推广价值。

作者:陈敏,邓颖 (1.凌云科技集团有限责任公司;  2.武钢自动化公司,武汉 430073)
来源:《单片机嵌入式系统应用》2010年01期
本文地址:https://www.eechina.com/thread-9530-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
zhshm59 发表于 2015-3-24 20:30:15
有用
meteor01 发表于 2015-3-26 08:21:34
楼主我还是找到你了。
xaycq 发表于 2015-3-26 09:02:40
楼主关注我。。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表