APP下载

基于单片机的直流电机PWM控制系统改进

2021-06-28高志伟

现代信息科技 2021年1期
关键词:单片机

摘  要:为解决直流电机控制功率小、调速频繁等问题,对其晶体管组成的H桥驱动电路予以改进。系统基于AT89S51单片机为核心,硬件采用直流继电器结构,软件编程实现不同占空比的PWM脉冲输出。经Keil C51、Proteus仿真及虚拟仪器的数据波形监测,并通过实际调试与运行,表明可实现控制功能,并且具有功率大、成本低、工作可靠、控制电压范围广、没有发热现象等特点。

关键词:单片机;PWM;H桥驱动;软件仿真

中图分类号:TP368.1      文献标识码:A 文章编号:2096-4706(2021)01-0048-04

Improvement of DC Motor PWM Control System Based on Single chip  Microcomputer

GAO Zhiwei

(College of Intelligent Manufacturing,Henan Technician College,Zhengzhou  450007,China)

Abstract:In order to solve the problems of low control power and frequent speed regulation of DC motor,the H-bridge driving circuit composed of transistors is improved. The system is based on the AT89S51 single chip microcomputer as the core,the hardware adopts a DC relay structure,and the software programming realizes the PWM pulse output with different duty cycles. The data waveform monitoring of Keil C51,Proteus simulation and virtual instrument,and the actual debugging and operation show that the control function can be realized,and it has the characteristics of high power,low cost,reliable operation,wide control voltage range,and no heating phenomenon.

Keywords:single chip microcomputer;PWM;H-bridge driving;software simulation

0  引  言

作者針对全国职业院校技能竞赛机电一体化项目中机械手的定位系统,特别是直流电机的驱动和运行控制部分。选择对原有的晶体管H桥电路进行改进,使用双直流继电器交替工作实现转向控制。为简化硬件电路实现灵活控制和完善,采用C语言编程对转速精确控制。同时,由于直流电机具有起动和调速性能好、调速范围广平滑、过载能力较强、受电磁干扰影响小等特点,改进的控制系统也可在电动车、地铁、精密装备等行业广泛应用。

根据直流电动机的电压平衡方程式,即U=E+IaRa、E=CeΦn,其中,U为外加于转子线圈的直流电源电压,Ra为转子绕组总的等效电阻,E为转子转动时转子线圈产生的总的感应电动势,Ia为流过电枢绕组的总电流,Ce为电动势常数,Φ为绕组每极的磁通量。

可知转速公式为:

n=(U-IaRa)/CeΦ

从式中可以看出,改变转速,可调节电枢电压,且属恒转矩调速方法,动态响应快。改变转向,要从自动调换电枢电压的极性入手。系统的改进需要明确控制思路、完善硬件设计步骤、优化程序执行流程、精确分析运行结果,从以下方面着手。

1  控制思路

1.1  转向控制

脉冲宽度调制(Pulse Width Modulation,PWM)技术具有两个很重要的参数:频率和占空比[1]。频率,就是周期的倒数;占空比,就是高电平在一个周期内所占的比例。如图1所示,频率F的值为1/(T1+T2),占空比D的值为T1/(T1+T2)。通过改变单位时间内脉冲的个数可以实现调频;通过改变占空比可以实现调压。占空比越大,所得到的平均电压也就越大,幅值也就越大;占空比越小,所得到的平均电压也就越小,幅值也就越小。只要改变PWM信号的占空比,就可以改变直流电机两端的平均电压,从而实现直流电机的调速。只要单片机(MCU)编程输出不同时间的延时,即占空比可调的方波,就可控制电机两端的电压,从而实现电机转速的控制。

1.2  转速控制

改变电机两端的电源极性可以改变电机的转速,需要通过H桥电路来实现,无论是三极管还是直流继电器组成的H桥,都是把直流电机接在桥中间,对臂元件轮流导通改变电源的极性。如图2所示,只需单片机编程分时输出高低电平,即可控制H桥的导通与截止情况,进而控制电压极性,实现对转向的控制。

2  硬件设计

2.1  H桥驱动电路的设计

H桥电路由四个功率电子开关构成,可以是晶体管或者MOS管,如图3所示。电子开关两两构成桥臂,在同一时刻只要对角的两个电子开关导通,另外两个截止,且每个桥臂的上下管不能同时导通,通过这个电路就可以实现电机的正反转调速。正转时,V5、V6接高电平,V3、V4接低电平,V4、V5导通,V3、V6截止,电流的流向为:VCC→V5→电机+→电机-→V4→GND。反转时,V5、V6接低电平,V3、V4接高电平,V4、V5截止,V3、V6导通,电流的流向为:VCC→V3→电机-→电机+→V6→GND[2]。在实际使用分离元器件时,必须要严格控制死区时间,不能让每个桥臂上的电子开关同时导通,这样容易导致电源短路,电流过大,会把两个电子开关烧坏。也可使用专用的H桥芯片,比如L298N、L293D等,适用于驱动小功率的直流电机的场合。同时,由于晶体管的开关特性,其通断的频次可以更高,即可以输出频率高的PWM脉冲以对电机进行控制,适用于小功率、高频率、高转速的场合。

对于控制大功率直流电机,可以使用继电器控制,如图4所示。因单片机输出为+5 V,直流电机的工作电压为12 V或24 V,通过三极管驱动并控制线圈的得电与失电。若继电器K1得电,则电机两端所加电压的极性为左正右负;若K2得电,则为左负右正,即可改变电机的转速。线圈上承载高电压,让控制电路流经较小电流。但继电器驱动存在不能频繁工作并且继电器的火花会对外围电路产生一定的干扰等现象。另外,如果继电器线圈吸合、断开的频次太快,则会导致噪声大且工作不安全等问题,适用于大功率、低频率、低转速的场合。

2.2  控制电路设计

整体电路设计如图5所示,以单片机为控制核心,电源、时钟、复位电路组成其最小系统。输入部分包括转向和转速控制,转向控制接在P3.2引脚,转速控制接在P3.3引脚,均通过外部中断实现;输出部分包括P1.0、P1.1引脚,控制H桥。因直流电机额定电压为24 V,继电器线圈工作电压的选择也为12 V(在Proteus仿真时统一采用12 V,实际制作时可用光耦实现电压转换)[3];因三极管选用NPN型,故输出高电平时导通,使电源、线圈、三极管组成闭合回路。

3  程序流程图及软件设计

3.1  流程图

在如图6所示的主程序流程图中,程序开始后首先进行初始化状态的设置,比如电机是停止的、转速次数当前值为1、单片机的双向I/O口为高电平、外部中断0及外部中断1的相关参数设置(IE、TCON寄存器)等[4]。然后判断标志位的状态,以决定电机处于正转还是反转。最后根据转速变量记录的次数,调整至低速、高速、中速对应函数执行。

中断服务子程序如图7和图8所示,根据中断类型号先找到对应入口地址。对于转向子程序来说,执行中断就是改变标志位的状态,定义位变量(bit数据类型,取值为0或1),以表示电机处于正转或者反转状态;对于转速子程序来说,执行中断就是记录按下次数,定义无符号字符型变量(unsigned char数据类型,取值为0~255),根据实际运行效果,变量只可能取1、2、3三个数值,以表示低速、中速、高速,如果超出范围,重新置1,实现低-中-高速循环。

3.2  软件设计

程序开始时,用#include  指令把AT89C51单片机中的特殊功能寄存器SFR予以定义;之后是用sbit指令定义单片机的I/O名称,方便以后的编程和控制;然后定义正转和反转、低速至高速六段子程序,还有 和 两个外部中断子程序;最后是主程序运行。

程序设计结构化,将功能性、需重复执行的内容定义为子函数。程序中如若用到,只需调用即可,大大提高了执行效率。正反转的低速、中速、高速程序类似,只需改变单片机I/O口的输出状态和PWM函数的参数,用switch语句实现多分支结构的选择。

3.3  PWM子函数

以低速正转子程序为例,如图9(a)所示。DJA、DJB变量分别定义的是P1.0和P1.1端口,DJA=1、DJB=0表示电机处于正转(Q1导通、Q2截止,继电器RL1线圈得电、RL2线圈失电,电机的+、-电源端分别接电源的高、低电位)。延时函数delay()后面的参数表示输出PWM脉冲高电平的时间[5],DJA=0;delay(1 680)表示输出低电平的时间,则占空比为[720÷(720+1 680)]×100%=30%。通过调整延时函数的参数即可得到50%、70%占空比,从而输出不同的PWM脉冲。由于PWM的频率一般选在25 kHz左右,低于20 kHz会产生人耳可辨的电磁音,所以应选择合适的延时时间(本例中延时函数的参数设置:高电平为720,低电平为1 680),以决定输出频率,主程序调试过程如图9(b)所示。

4  系统调试与分析

经过作者绘制电路图、编辑C语言源程序、Keil和Proteus联调等过程,借助于虚拟仪器(示波器、直流电压表等)[6]等数据和波形分析,软件仿真效果图如图10所示(占空比为70%时)。并结合实际硬件制作和调试运行,可看到:当按下转向按钮时,电机能实现正反转控制;当按下转速按鈕,分别切换至低、中、高速时,示波器上显示波形的占空比发生改变,转速随之变化。

该控制系统硬件设计简单,可根据应用电路适时补充和完善;软件编程层次分明,函数的定义与使用能简洁程序结构,减少冗余的指令,提高执行效率;按钮采用外部中断的中断方式,节省了单片机内部资源,避免了按键抖动等问题,使程序执行更实时、准确。

5  结  论

基于单片机的直流电机PWM控制系统结构简单、控制灵活,可根据实际控制要求不断拓展。若要求无级调速、控制转速更准确、噪音更低,则可以在输入端扩展红外光电码盘或霍尔器件,配合光电耦合器的电压转换和隔离作用,提高抗干扰能力,准确测量直流电机的转速。还可在输出端扩展A/D转换和数码管动态显示(LCD),直观监测转速、转向、电压、PWM脉冲等信息,使整个控制系统更直观、更全面。

参考文献:

[1] 肖振兴.直流电机变速的PWM波的几种产生方法 [J].现代信息科技,2020,4(11):42-44.

[2] 王静霞.单片机应用技术(C语言版):第3版 [M].北京:电子工业出版社,2015.

[3] 陈新兵,胡维,龙晓莉,等.基于Proteus的直流电机控制教学探索 [J].中国教育技术装备,2020(10):31-34.

[4] 李瑾.基于51单片机的PWM直流调速风扇控制系统 [J].机械工程与自动化,2018(1):187-189.

[5] 王文成,李健.基于单片机的电机转速测量系统的设计 [J].仪表技术与传感器,2011(8):70-72.

[6] 孙万麟,宋莉莉,韩晨.基于Keil+Proteus的单片机实验设计及仿真 [J].系统仿真技术,2020,16(3):181-184.

作者简介:高志伟(1985—),男,汉族,河南洛阳人,讲师,高级技师,本科,研究方向:机电一体化。

猜你喜欢

单片机
单片机在智能控制中的应用
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器