datasheet

ARM LPC2101的无刷直流电机控制方案

2008-06-27来源: EDN_china 关键字:电机速度  无刷直流电机  电流传感器  电压测量  CCLK  MOSFETMOSFET

  LPC2101是基于16/32位 ARM7CPU嵌入高速Flash闪存的微控制器,具备高性能,小体积封装,低功耗,片上可选择多种外设等优点,应用范围很广。其具备的多种32位和16位定时器、10位A/D转换器和每个定时器上PWM匹配输出特性,尤其适用于工业控制。

  无刷直流电机是一种易驱动电机,适用于变速和启动转矩很高的应用,它的使用范围从大规模的工业模具到调光控制的小型电机(12V直流电机),外形和尺寸也是各种各样。

  1 无刷直流电机的基本原理

  无刷直流电机一般由定子、转子和金属壳体等组成,如图1所示,通过反向极性的吸引产生扭矩使电机运转。一旦转子开始运转,固定的刷子和转子部分将不断反复地连接、断开,电动势和反电动势在转子旋转过程中产生,新的电极总是和定子极性相反。由于这种变换是固定的,因此转子以一种固定的形式运动。通过给电机施加反向电压和反向的转子线圈电流,使南北极性翻转,电机改变其运动旋转方向。

  

  图1 无刷电机组成

  速度和电机的扭矩大小是依据电机旋转产生的磁场强度来控制的,而电机的旋转能量是依赖于通过电流大小来控制的,因此调整电机转子的电压和电流可以改变电机的速度。本电机速度的控制是根据LPC2101微控制器的PWM信号的变化而产生的。

  2 无刷直流电机的控制

  2.1 双向旋转

  驱动有刷直流电机的双向旋转,可通过全桥驱动电路改变电流来实现完成,如图2所示。这个全桥驱动电路由N通道的MOSFET管组成,当Q2和Q3关闭的时候,Q1和Q4导通电机正相旋转;当Q1和Q4关闭时,Q2和Q3导通电机反相旋转。

  

  图2 使用全桥电路双向旋转

  2.2 速度控制部分

  无负载的电机速度与加到电机上的电压有一定的比例关系,因此通过采样加载到电机上的电压,可以控制电机的速度。脉宽调制解调用于产生这种电压的变化,如图3所示。脉宽调制是基于占空比的固定频率脉宽波形。加载到电机上的平均电压与PWM占空比成正比关系。

  

  图3 PWM速度控制

  PWM信号(Q1和Q2)根据LPC2101微控制器定时器2的3个匹配寄存器决定信号的时基频率。电机速度(占空比)和方向通过调整电位器输入及改变LPC2101 ADC的输入数值来控制,如图4所示。

  

  图4 系统配置

  2.3 电机反馈部分

  低功耗电机电流测量是在MOSFET和地之间使用电流传感器(参见图4)。通过电流传感器的采样电阻检测微小电压;通过在微控制器的前端进行滤波和放大,电流采集总是在最高级别,在PWM产生之前。这个操作通过外部定时器匹配中断,中断后先开始A/D转换。转换数值代表了电机的电流。

  低功耗无传感器电机旋转速度反馈是通过反馈的EMF电压测量(参见图4)。反电动势是通过电机转子旋转磁场和外部电磁场产生的。换句话说,电机表现得像一个发电机。RPM和反电动势电压是成直接正比关系的,反电动势测量是通过MOSFET切换完成的(刹车模式)。本文中,BEMF测量用于检测电机是否完全停止。电压分压是用于满足反电动势电压(最高为12V)在0~3.3 V间的。

  3 无刷直流电机的应用

  3.1 选用LPC2102

  LPC2102(采用LQFP48封装)是目前LPC2000系列ARM7家族中最小、最便宜的一款总线频率高达70MHz的32位CPU处理器;有2 KB的静态RAM和8KB的片上Flash存储区。对于使用USB、CAN总线、Ethernet以太网总线,可以选用LPC2000系列中更高级别的处理器。本文中LPC2101,其CPU使用代码空间为3KB,CPU负载小于5%。没有使用内部外设资源如下:UART、I2C、SPI/SSP、RTC、2个定时器和4个A/D输入,20个未用的I/O口可供用户扩展使用。

  设计选用150 W MAXON RE40电机。在12 V输入下,无负载的速度是6 920 r/s。最大连续电流是6A。PWM时基信号对电机噪声有很大的影响(因为人耳一般能听到的声波的频率范围是20 Hz~20kHz),同时影响电机的表现性能。要防止整个周期中电流过零(就是通常所说的不连续的电流状态,当电机轻载时),如图5(b)所示。这种不连续电流会导致扭矩转速曲线非常陡,在电机中将产生某种脉冲,使电机转子产生更大的噪声,本电路使用MAXON电机,就是为了获得连续的电流模式,所选择的PWM脉冲频率是8kHz。

  图5 PWM时基频率的影响

  3.3 MOSFET选择

  在系统中使用NXP半导体PH1875L N沟道MOSFET,相关的电机电压是12 V,电机启动的最大电流是103 A。作为12V的电机,MOSFET的电压Vds至少为40V。需要足够的灌电流来启动电机,可以通过软件控制在系统运行过程中减小电流。PH1875L需要使用的最大灌电流是45.8 A,漏电流是183A。PH1875L的SMD贴片封装如图6所示。

  

  图6 SO669(LFPAK)封装

  3.4 MOSFET驱动选择

  MOSFET驱动提升了控制器输出信号驱动电机的能力。本设计选择NXP芯片PMD2001D和PMGD280UN,如图7所示。

  

  图7 简化的MOSFETMOSFET全桥和半桥驱动电路

  3.5 速度控制和方向控制

  为了控制方向和电机速度,用10 kΩ的电位器,连接到LPC2101ADC输入端(参见图4)。由于是10位A/D,实际上只需要8位就可以采用256个步进数值,如图8所示。采用10位A/D可以达到1024个步进数值。

  图8 电位器模拟速度输入和方向

  4 硬件与软件设计

  4.1 硬件设计

  控制部分的电路原理如图9所示。电源和电机部分的电路原理如图10所示。

  

  图9 控制部分电路原理

  图10 电源和电机部分电路原理

  4.2 软件设计

  软件部分采用C语言编写,使用Keil μVision(ARM7RealView V3.0)开发环境。主函数实现如下功能:读取电位器数值来调整速度和电机方向;读取电机反电动势电流;设定PWM占空比和控制Q1~Q4MOSFET输出;执行RS232通信。图11表示控制系统流程。使用RS232接口每200ms给PC端计算机发送电机速度和电流、电压信息。电机控制软件部分状态机如图12所示。状态处理是在主程序循环中处理的,LPC2101的定时器2用于产生PWM信号。在每个PWM信号中断子程序进入后,可以通过改变占空比来调整既定电机速度并设置MOSFET输出控制Q1~Q4。定时器0用于10ms的系统定时。

  

  图11 主程序流程

  

  图12 状态流程

  LPC2101配置使用Keil ARM开发环境中标准的启动代码,设定CCLK时钟为60 MHz,PCLK时钟为15MHz。相关测试代码包括main.c,adc.c,timer0.c,motor.c,uart.c,bcd.h等。

  相关代码见本刊网站http://www.mesnet.com.cn/——编者注。

  5 总结

  使用LPC2101 ARM7内核开发无刷电机控制系统,代码精简,控制系统可靠。经过长时间实际测量证明,系统相关器件的选型设计是稳定的。另外,目前增强型51系列微处理器的价格、性能与LPC21系列相比较,LPC21系列功耗低,价格与普通8位机价格差不多,但是性能却比增强型51系列好。比如,带Modem的双串口,双I2C接口,带大容量的Flash和RAM存储区,多通道PWM,多个32位定时器,高精度10位A/D转换器等。因此,从芯片设计和系统设计上,该无刷电机产品有一定的推广价值。

关键字:电机速度  无刷直流电机  电流传感器  电压测量  CCLK  MOSFETMOSFET

编辑:孙树宾 引用地址:http://www.eeworld.com.cn/gykz/2008/0627/article_1030.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于AT89C51+DSP的双CPU伺服控制器的研究
下一篇:用于控制变速电动机的功率模块

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

无刷直流电机基于ADRC的无感FOC速度控制方案

世事往往真假错乱,难以区分。ADRC算法根据自身的控制能力,只执行合理的命令,避免执行错误的命令后,错上加错!一、合理的目标,合理的结果只有按合理的目标执行,才可能有合理的结果。例如一个小孩最多只能出20公斤的力,但强要他搬运50公斤的东西,显然搬不动。又例如工厂生产的电机,额定最高速度只有3000转/分钟,通过弱磁算法增速10%到3300转/分钟,是可以实现的,但要翻倍到6000转/分钟,肯定实现不了的。图1是无刷直流电机基于ADRC的无感FOC速度控制框图。虽然ADRC抗扰能力一流,但如果目标和实际能力差别太大,它也是无能为力的。图1 ADRC速度控制图2显示电机的加速过程。黄线是目标速度,它的加速度、最高速都非常大。红线
发表于 2018-05-20
无刷直流电机基于ADRC的无感FOC速度控制方案

步进电机正反转可调速度

//步进电机正反转可调速度 //================================ //P3^0;正反转 //P3^1;增速 //P3^2;减速 //P3^3;停止 #include<reg51.h> #define uint unsigned int  #define uchar unsigned char sbit rl=P3^0;//正反转 sbit add=P3^1;//增速 sbit sub=P3^2;//减速 sbit stop=P3^3;//停止 uchar num1,num2,flag1,flag2,flag3,n; uchar code
发表于 2016-09-08

Diodes无刷直流全桥电机驱动器提供PWM或DC电压速度控制

Diodes 公司推出AM9468和AM9469无刷直流电机驱动器产品,具有桥接负载(bridge-tied-load, BTL)驱动架构以最小化可闻开关噪声和电磁干扰(electromagnetic interference, EMI),在笔记本电脑和台式电脑、仪器仪表和相似设备中提供智能驱动的散热风扇,并且支持广泛的其它中等电压、低功耗电机驱动应用。   AM9468/AM9469使用外部脉宽调制PWM信号或直流DC电压,或者来自热敏电阻网络的电压实现灵活的电机速度控制,从而根据输入信号来调节全桥输出驱动级的占空比。同时,单独的频率发生器提供允许从外部监控电机速度的输出转速。BTL架构放大了用于驱动电机
发表于 2016-06-08
Diodes无刷直流全桥电机驱动器提供PWM或DC电压速度控制

电机速度控制和单片机之间的关系

    YE3高效节能电机具有快速停能力强粕度高专速容易控制的特点,在工业过程控制及仪等领域中越来越得到广泛应用。但是在实际运行过程中,由于启动和停止控制不当,步进电机会出现启动时抖动和停止时过冲现象,影响了控制精度,尤其步进电机作在频繁启动和停止时,这种现象就更为明显。     1.加减速曲线YE3高效节能电机的运行般要经过加速匀速减速个阶段。步进电机加减速曲线在中,纵坐标是频率,单位为脉冲秒或步秒,本质上是速度,横坐标是时间,单位为秒。步进电机以频率启动后,以加速度加速,至时刻后达到最高运行频率然后分速运广至时刻以加速度。  
发表于 2015-09-22

直流电机的PWM速度控制程序

* =======直流电机的PWM速度控制程序======== */  /* 晶振采用11.0592M,产生的PWM的频率约为91Hz */  #include<reg51.h>  #include<math.h>  #define uchar unsigned char  #define uint unsigned int  sbit en1=P2^0;  /* L298的Enable A */  sbit en2=P2^1;  /* L298的Enable B */  sbit
发表于 2015-06-16

智能车速度控制pid(电机闭环控制算法)

,从鄙人本身的理解,P 算法控制电机,也就是比例控制 是最好的,反应速度快,控制精度高,不存在积分和微分效应,非常适用于适 用于控制周期短的系统,当然,对于一些特殊的逻辑控制算法,可能要采用PD 算法,用微分来做补偿,防止震荡和超调。 下面来说下电机控制算法从开始的加入到最终的确定的方法: 当然这一切的前提就是安装了编码器,车速有反馈,只有加上编码器,有 了反馈,才能组成一个闭环系统。当然您也可以加上码盘,或者霍尔开关等一 切可以返回车速的东西都可以。 (1) 首先建议在车速比较慢的时候,采用PID 算法来控制电机,为 什么开始要建议您采用PID 呢?主要是为了让您更加深刻理解 PID 算法的精髓和调试步骤方法等,有助于
发表于 2015-04-28

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved