基于Proteus的单片机PWM直流电机速度控制系统设计
2013-12-03乔志杰曾金明
乔志杰 曾金明
(1安徽电子信息职业技术学院;2解放军蚌埠汽车士官学校 安徽蚌埠 233030)
1 引言
直流电机具有良好的起、制动性能,并且适合大范围的平滑调速,因此在各类需要调速或快速正反向的机电控制系统中得到广泛运用。PWM直流调速技术以其开关频率高、低速运行稳定、动态性能优越、效率高等优点,在电机调速中被普遍应用。PWM控制技术易于在单片机控制中实现,从而为直流电机控制的数字化提供了机会。采用单片机构成直流电机速度控制系统,不仅可以降低控制系统成本,也是单片机应用的一个重要方面。
Proteus[1]是英国Labcenter公司开发的电路分析、实物仿真系统,具有模拟和数字电路仿真、单片机和它的外围电路组成的系统仿真[2]、LCD显示、虚拟仪器、示波器、逻辑分析仪系统仿真等功能,可与Keil编程软件进行联调。基于Proteus软件的良好仿真特性,程序在Proteus中成功完成仿真调试的同时,即可以说明所设计程序的准确性,从而初步实现系统设计中的控制程序设计部分,并为系统硬件电路的设计提供一定的参考价值[2]。
2 直流电机的PWM调压调速原理
脉宽调制[3](Pulse Width Modulation, PWM)就是对脉冲的宽度进行调制的技术。PWM控制技术[4]利用半导体开关器件的导通和关断,将直流电压转换成一定频率方波电压,见图1。
图1 周期性PWM矩形脉冲
则上式可化为:U0=α×U(U为脉冲幅值)
α即为占空比,由上式可知,要改变直流输出电压的大小,可以通过改变脉冲幅值U和占空比α来实现,实际应用中脉冲幅值通常是不变的,所以可以通过控制占空比α的大小实现直流输出电压在0~U之间的有效控制,也就是改变电机电枢(定子)电压的接通和断开的时间比(占空比)以达到变压目的,从而利用PWM控制技术实现对直流电机转速的调节。
3 系统设计
3.1 总体方案的确定
本方案以AT89C51单片机为控制器,将单片机产生的控制信号加在电机驱动[4]模块L298芯片上以控制直流电机。应用4个按键,实现直流电机的正转、反转、加速、减速、停止等功能,设计方案采用了PWM技术来控制电机,利用占空比的改变实现速度的精确控制。运用软件与硬件相结合的控制方法,实现了单片机对直流电机的稳定速度控制。
硬件电路设计框图如图2所示,电路结构由以下部分组成:显示模块、单片机、按键模块、电机驱动模块。
图2 直流电机速度控制系统硬件框图
3.2 电机驱动模块
应用L298芯片作为电机驱动模块。L298是双H桥直流电机驱动芯片,可以方便的驱动两个直流电机,也可以驱动一个四相电机,能利用单片机的I/O口作为控制信号,芯片电路简单,应用方便。
L298的使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;IN1与IN2相同时,电机快速停止。当使能端为低电平时,电动机停止转动。
3.3 按键模块
按键采用独立式键盘结构,使用AT89C51的P0.0、P0.1、P0.2、P0.3四个引脚控制4个独立按键,4个按键分别实现电机转向、加速、减速、停止的功能。独立式键盘一般用在按键较少的场
合,独立式键盘的按键相互独立,每个按键接一根I/O口线,各根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。所以只需要检测I/O口线的电平状态,就可判断是键盘上哪个键被按下。
3.4 显示模块
显示模块采用的是液晶LCD显示模块 LM016L。
(1)其主要接口有[5]:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14 脚:D0~D7 为8位双向数据线。
(2)单片机与LCD的连接
(RS,R/W,E)控制引脚接P3口,8个数据信号接P1口。VSS和VEE 接单片机地,VDD接单片机的电源VCC。
3.5 直流电机速度控制系统的Proteus仿真电路
直流电机速度控制系统Proteus仿真[6]电路如图3所示。
Proteus元件库中有多类电机元件,在此选用带编码器的电机MOTOR-ENCODER来仿真,其编码输出可提供两路路具有90度相位差的编码脉冲,利用这两路信号通过74LS386门后的脉冲信号反馈给T0后计数,实现对转速的检测。从虚拟仪器模式[7]里选取示波器模块实现对L298电机驱动模块的ENA信号检测,利用图表模式对编码器的两路信号进行电压信号分析。
图3 直流电机速度控制系统Proteus仿真电路
4 直流电机速度控制系统软件设计
当系统启动后,单片机进行初始化设置,如系统的初始化、LCD初始化和定时器的初始化。单片机检测是否有键按下,通过对按键的判断,对脉冲宽度的调整是通过改变高电平的时间长度,由变量分别实现电机的转向、加速、减速和停止,控制PWM的输出信号,从而控制电机的转速,依次循环使电机趋于稳定系统程序流程如图4所示。
图4 系统程序流程图
5 单片机控制系统综合仿真调试
5.1 系统仿真联调
在Keil uVision[8]集成开发环境下进行源程序编译。对程序编译调试完毕后,在Proteus电路图中,双击单片机AT89C51,打开其属性编辑框,在“Program File”栏中选取扩展名为“.HEX”的目标代码文件,并将其时钟频率改为12MHZ。在Proteus仿真界面中单击电路图中的运行按钮,就可以实现直流电机的仿真控制[9]。
5.2 仿真结果
当仿真开始运行时,各个模块处于初始状态。点击加速或是减速按钮,显示模块便开始显示数字。通过按键控制电机的驱动模块可以实现电机的正转、反转、加速、减速、停止等操作。从图5~图8仿真结果可以看出,本设计可以得到预期的仿真效果。
图5 电机加速前的波形和加速后的的波形
图6 编码器信号
图7 加速正转和反转时的电机运行图
图8 电机速度显示界面
6 结论
从图5可以看出,加速后的占空比增大,符合设计要求,说明该速度控制系统是有效的,能够反映实际系统速度控制的要求。运用Proteus和Keil对直流电机控制进行了软件和硬件的设计,通过单片机AT89C51,可以方便的控制直流电机的速度和转向,仿真结果表明:系统具有外围器件简单,运行稳定的特点,达到了比较满意的控制效果[9]。
参考文献:
[1]张靖武,周灵彬.单片机系统的Proteus设计与仿真[M].北京:电子工业出版社,2007.34.
[2]肖云茂,孙毅,张华兴.基于Proteus的PC机对步进电机运动控制仿真[J].机械设计与制造,2009,47(4):188.
[3]陈景贤.单片机控制的直流电机PWM 调速控制器设计[J].湛江师范学院学报, 2008,29(3):123.
[4]杨靖.用单片机控制的直流电机调速系统[J].机床电器,2008,35(1):45.
[5]董继承,黄宇.带时钟的数字温度计的设计与制作[J].中国科技信息,2007,19(8):65.
[6]茹占军,谢家兴.基于AT89S52单片机直流电机调速系统的设计[J].软件导刊,2010,9(8):106.
[7]王毅,王平,苏伟达,等.基于数字PID控制的直流电机控制系统的设计[J].福建师范大学学报,2010,26(4):59.
[8]陈艳,李娜娜,杨永双.Proteus和Keil在单片机教学中的应用[J].科技教育创新,2009,38(20):194.
[9]李明.基于Proteus的单片机对步进电机运动控制仿真[J].价值工程,2012,31(5):153.