直流电机调速软件设计.docx
《直流电机调速软件设计.docx》由会员分享,可在线阅读,更多相关《直流电机调速软件设计.docx(32页珍藏版)》请在冰豆网上搜索。
![直流电机调速软件设计.docx](https://file1.bdocx.com/fileroot1/2022-12/16/9b734b63-11bc-486e-a5b8-e2aab005414f/9b734b63-11bc-486e-a5b8-e2aab005414f1.gif)
直流电机调速软件设计
直流电机调速系统软件设计
摘 要
直流电机具有良好的启动性能和调速特性,它的特点是启动转矩大,能在宽广的范围内平滑、经济地调速,转速控制容易,调速后效率很高。
本文设计的直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LCD液晶显示器、霍尔测速电路以及独立按键组成的电子产品。
电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。
通过独立按键实现对电机的启停、调速、转向的人工控制,LCD实现对测量数据(速度)的显示。
电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。
关键字:
直流电机调速;H桥驱动电路;LCD显示器;51单片机
Abstract
DCmotorhasagoodstartupperformanceandspeedcharacteristics,itischaracterizedbystartingtorque,maximumtorque,inawiderangeofsmooth,economicalspeed,speed,easycontrol,speedcontrolafterthehighefficiency.ThisdesignofDCmotorspeedcontrolsystem,mainlybythemicrocontroller51,powersupply,H-bridgedrivercircuits,LCDliquidcrystaldisplay,theHallvelocityandindependentkeycomponentcircuitsofelectronicproducts.Powersupplywith78serieschip+5V,+15VformotorspeedcontrolusingPWMwavemode,PWMisapulsewidthmodulation,dutycyclebychangingtheMCU51.Achievedthroughindependentbuttonsstartandstopthemotor,speedcontrol,turningthemanualcontrol,LCDrealizethemeasurementdata(speed)ofthedisplay.MotorspeedusingHallsensoroutputsquarewave,by51secondsto1microcontrollersquarewavepulsesarecountedtocalculatethespeedofthemotortoachieveaDCmotorfeedbackcontrol.
Keywords:
DCmotorspeedcontrol;Hbridgedrivercircuit;LCDdisplay
目 录
2.1主电路设计.........................................................................................................................8
2.2单片机的选择...................................................................................................................10
2.3LCD选择...........................................................................................................................11
2.4转速反馈电路...................................................................................................................12
2.5电流反馈电路...................................................................................................................13
3.1.1系统总控制流程图及说明............................................................................................16
3.1.2PWM波软件设计...........................................................................................................17
3.1.3测速软件设计................................................................................................................19
3.1.4直流电机的中断键盘控制模块...................................................................................19
3.2子程序模块...............................................................................................................................21
3.3.1初始化设计...................................................................................................................32
3.3.2功能实现部分...............................................................................................................32
1绪论
1.1直流电机调速系统的研究意义
三十多年来,直流经历了重大的变革。
首先,实现了整流器件的更新换代,以晶闸管整流装置取代了使用己久的直流发电机一电动机机组及水银整流装置,使直流电机拖动完成了一次大的飞跃。
同时,控制电路己实现高集成化,小型化,高可靠性及低成本。
以上技术的应用,使直流调速系统的性能指标大幅度提高,应用范围不断扩大。
由于直流调速系统的调速精度高,调速范围广,所以,在对调速性能要求较高的场合,一般都采用直流电机拖动。
直流调速技术迅速发展,走向成熟化、完善化、系列化、标准化,在可逆、宽调速、高精度的电机拖动领域中一直居于垄断地位。
早期,直流传动的控制系统采用模拟分立器件构成,由于模拟器件有其固有的缺点,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。
随着单片机控制技术的发展,直流传动控制系统己经广泛使用单片机,实现了数字化控制。
数字化调速系统与模拟系统相比具有以下优点。
1.提高了调速性能
由于测速采用数字化,能够在很宽的范围内高精度测速,所以扩大了调速范围,提高了速度控制的精度。
另一方面,一些模拟电路难以实现的控制规律和控制方法,例如各种最优控制、自适应控制、复合控制等都变得十分容易了,从而使系统的控制性能得到提高。
2.提高了运行的可靠性
由于硬件高度集成化,所以零部件数量和触点大大减少;很多功能都是由软件(即程序)来完成的,使硬件得以简化,所以采用单片机控制的电力拖动系统的故障率比模拟系统小。
另外,数字电路的抗干扰性能强,不易受温度等外界条件变化的影响,没有工作点的温漂等问题,所以运行的可靠性高。
3.易于维修
由于单片机可以与计算机相连,而计算机具有存储、显示、记录等功能,可以对系统的运行状态进行检测、诊断、显示和记录,并对发生故障的时间、性质和原因进行分析和记录,所以维修很方便,维修周期变短。
由于单片机以数字信号工作,控制手段灵活方便,抗干扰能力强。
所以,数字直流调速系统的控制精度和可靠性比模拟直流调速系统大大提高。
而且通过系统总线,数字控制系统能与管理计算机、过程计算机、远程电控装置进行信息交换,实现生产过程的分级自动化控制。
所以,直流传动控制采用单片机实现数字化,使直流调速系统进入一个崭新阶段。
1.2直流电机调速的发展趋势
(1)国外发展概况
随着各种微处理器的出现和发展,国外对直流电机数字控制调速系统的研究也在不断的发展和完善,尤其在80年代在这方面的研究达到空前的繁荣。
大型直流电机的调速系统一般采用晶闸管整流来实现,为了提高调速系统的性能,研究工作者对晶闸管触发脉冲的控制算法作了大量研究:
有的提出了内模控制的算法;有的提出了用I-P控制器取代PI调节器的方法;有的提出了自适应PID算法和模糊PID算法,等等。
近几年来,国外各大公司纷纷推出以DSP(数字信号处理器)为基础的内核,配以电机控制所需的外围功能电路,集成在单一芯片内的称为DSP单片电机控制器(如ADI的ADMC3××系列、TI的TMS320C240和Motorola的DSP56F8××系列),价格大大降低,体积缩小,结构紧凑,使用便捷,可靠性提高。
DSP的最大速度为20~40MIPS,单周期指令执行时间快达几十纳秒,它和普通的单片机相比,处理数字运算能力增强10~15倍,确保系统有更优越的控制性能。
数字控制使硬件简化,柔性的控制算法使控制具有很大的灵活性,可实现复杂控制规律,使现代控制理论在运动控制系统中应用成为现实,易于与上层系统连接进行数据传输,便于故障诊断加强保护和监视功能,使系统智能化(如有些变频器具有自调整功能)。
(2)国内发展概况
我国在电机调速系统的水平还远落后于于发达国家,在电机调速的很多装备方面都还不够成熟。
全数字化调速系统在国内并没有得到广泛的应用。
目前,国内各大专院校、科研单位和厂家也都在开发数字直流调速装置。
因此国内调速系统的研究也非常活跃,但很多电机调速的市场还是被国外公司所占据。
在国家十五计划中,对电机调速系统方面的研究投入将高达500亿元,所以电机调速系统在我国将有非常巨大的市场需求。
基于目前国内外的研究状况,本设计主要研究的是用数字化调速系统代替传统的模拟调速系统。
虽然本设计研究的调速系统无法与国外先进的调速系统相比拟,但相对国内的现状,本设计研究还是具有一定的实用价值的。
1.3本文研究的内容
本文是根据以89C51单片机为核心,用PWM实现直流电机调速,通过对PWM调速原理的熟悉,通过使用PWM占空比来实时的调节电机的速度。
本文以小直流电机为控制对象,可以实现电机的启制动,正反转,速度调节。
要求通过单片机外围的键盘按键实现速度、转向调节,并在LCD上实时显示相关参数。
2系统整体方案描述
软件程序的编写是建立在硬件的基础之上的,好的、稳定的系统,除了需要软件系统的支持外,还要有一个稳定的硬件来支撑。
而且在软件中关于一些引脚的定义和一些的配置,往往还受硬件的约束。
主要的硬件设计系统图如下:
主要原理如下:
如图可以知道,这个是闭环系统,借助单片机来控制,是用单片机内置的定时器产生PWM波,PWM波的占空比越大,则驱动晶体管的导通时间就越长,这样其电机的转速就越快。
于此同时,可以用状态监测器的传感器来监测电机的中的相关参数,如通过电机的电流的大小或者是使用电机转速盘,监测电机的转速等等方式,无论什么样的传感器,但对于软件部分来说,都是要经过ADC的信号采集,从ADC中读到数据,送入单片机中,进行数据的处理和反馈,以便达到调节电机速度的目的。
电机在启动时的初始PWM转速值的修改,只有两个来源,一个是来自于从ADC中反馈回来的值要与设定的PWM值进行实时的修正;还有一个来源来自于按键对于PWM值的实时更改。
系统原理图
2.1主电路设计
主电路可以选择H型双极可逆PWM驱动系统如图3.2所示,它由4个三极管和4个续流二极管组成,单电源供电。
4个三极管分成两组,V1,V4为一组,V2,V3为另一组。
同一组的三极管同步导通或关断,不同组的三极管导通与关断正好相反。
在每个PWM周期里,当控制信号Ui1为高电平时,三极管V1,V4导通,此时Ui2为低电平,因此V2,V3截止,电枢绕组承受从A到B的正向电压;当控制信号Ui1为低电平时,三极管V1,V4截止,此时Ui2为高电平,因此V2,V3导通,电枢绕组承受从B到A的反向电压,直流电机就实现反转。
单片机控制单元电路图
2.2单片机的选择
采用AT89C51单片机作为系统核心。
AT89C51是一种低功耗/低电压、高性能的8位单片机,片内带有一个4K字节的Flash可编程可擦除只读存储器,它采用CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC-51兼容。
片内的Flash存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。
因此AT89C51是一种功能强,灵活性高且价格合理的单片机,方便地应用在各种控制领域。
2.3LCD选择
LCD1602
管脚功能
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
2.4转速反馈电路
转速反馈要考虑到数据的采集和反馈数据的处理。
转速检测的精度和快速性对电机调速系统的静、动态性能影响极大。
为了在较宽的速度范围内获得高精度和快速的数字测速,本设计使用光电编码器作为转速传感器,它产生的测速脉冲频率与电机转速有固定的比列关系,微机对该频率信号采用M/T法测速处理。
M/T法测速原理
M/T法测速原理是在对光电编码器输出的测速脉冲数m1进行计数的同时对时钟脉冲的个数m2也进行计数。
原理如图14:
图14M/T法测速原理
测速时间Td由测速脉冲来同步,即由图8电路实现Td等于整m1个脉冲周期。
设从图9上a点开始,计数器分别对m1和m2计数,到达b点,预计的测速时间Tc到,微机发出停机指令,但因为Tc不一定恰好等于整数个编码输出脉冲周期,所以计数器仍对时钟脉冲计数,直到c点时,可以利用下一个转速脉冲上升沿(即c点)触发数字测速硬件电路使计数器停止计数。
这样,m2代表了m1个测速脉冲周期的时间。
设时钟脉冲频率为f0,光电编码器每转发出p个脉冲,则电机转速的计算公式为:
n=(60*m1*f0)/(z*m2)
2.5电流反馈电路
电流反馈同样要考虑的是数据的采集和反馈数据的处理。
本设计采用霍尔传感器来采集电流数据。
霍尔电流传感器是利用霍尔效应将一次大电流变换为二次微小电压信号的传感器。
经过霍尔传感器输出信号,就可以通过ADC0809(模拟量转数字量的芯片),然后再反馈回单片机进行信号处理。
ADC0809是一种CMOS单片型逐次比较式8路模拟输入、8位数字量输出的A/D转换器。
在多点巡回检测和过程控制、运动控制中应用十分广泛。
1.主要特性如下:
1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
2.外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装。
下面说明各引脚功能
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路。
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动信号,输入,高电平有效。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
VCC:
电源,单一+5V。
GND:
地。
3软件设计
3.1软件总体设计
根据总体框图可知:
在软件部分中主要承担:
按键模块、LCD的显示模块、PWM产生模块、ADC数据的读取模块等模块编写。
主要的设计思想如图:
3.1.1系统总控制流程图及说明
图3.10系统总控制流程图
如流程图所示
(1)单片机控制电机时,系统首先进入中断保护过程。
中断保护过程将完成如下5方面的工作:
保存端口的状态值。
保存中断前的片内寄存器值。
保存存储器的寻址地址。
保存主程序的执行代码断点。
初始化脉冲宽度、延时长度和状态信息。
(2)完成中断保护后,系统将检查脉冲宽度计时时间是否达到。
脉冲宽度计时用于开启可控硅,控制电机运行。
如果既定时间宽度的脉冲已完成(即判定结果为‘是’),则必须撤销脉冲;如果既定时间宽度的脉冲已完成(即判定结果为‘否’),则不撤销脉冲。
(3)判断电机是否正在运行。
如果电机没有运行,则恢复寄存器初始值,完成中断,返回系统主程序;如果电机正在运行,则继续执行。
(4)判断脉冲延时时间是否到达。
如果延时到达,中断将重新开启脉冲,并给出脉冲初始值,重新决定是否开启可控硅,控制电机运行;如果延时不到,则恢复寄存器初始值,完成中断,返回系统主系统。
(5)完成中断,返回系统主程序。
3.1.2PWM波软件设计
PWM波软件设计的思想是:
通过控制总中断使能EA控制电机的开关,同时使能对霍尔传感器输出的方波在单位时间内脉冲个数的计数。
其中定时器T0,T1分别对脉冲的宽度、霍尔元件输出的脉冲数对应的1秒时间定时。
对脉冲宽度的调整是通过改变高电平的定时长度,由四个按键分别实现电机的转向、加速、减速。
其程序流程图如图3.11所示。
图3.11PWM波软件设计方框图
3.1.3测速软件设计
图3.12软件测速的方框图
3.1.4直流电机的中断键盘控制模块
外部中断设置
(1)外部中断允许设置
中断控制寄存器IE的EX0对应INT0,EX1对应INT1,EA为中断的总开关,若要开放外部中断,只要将IE对应的位和总开关EA置1即可。
如:
开放外部中断0的设置:
SETBEX0
SETBEA
开放外部中断0和1的设置:
SETBEX0
SETBEX1
SETBEA
(2)外部中断触发方式设置
单片机外部中断有两种触发方式,一种是电平触发方式,另一种是脉冲触发方式,单片机外部中断触发方式与TCON的IT位有关。
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
电平触发设置方法:
CLRITX,为低电平触发方式。
脉冲触发设置方法:
SETBITX=1,为脉冲下降沿触发方式。
在使用外部中断时,如果不进行设置,则为电平触发方式。
(3)外部优先级设置
外部中断IN0、INT1的中断优先级的设置是通过设置IP寄存器实现的,IP的PX0对应INT0,PX1对应INT1。
PX置1为高级中断,PX为0为低级中断。
×
×
×
PS
PT1
PX1
PT0
PX0
外部中断扩展方法
在图2.1为外部中断扩展方法,设X1、X2、X3、X4、X5为外部警情信号,X1代表是加速信号,X1=0表示加速;X2代表减速信号,X2=0表示减速;X3代表正转信号,X3=0表示正转;X4代表反转信号,X4=0表示反转;X5代表停止信号,X5=0表示停止处理。
图2.1
当系统检测到有中断请求时,响应如下中断服务流程图2.2。
图2.2
3.2子程序模块
其中由于PWM的产生是通过定时器来自动产生的。
所以在定时器中断内部就可以直接控制IO的引脚作为PWM产生输出端来直接控制输出的。
具体详细的如下说明:
3.2.1按键监测模块
该模块的主要目的是用来改变电机的状态,主要有电机在启动的运行和停止状态,在运行时的正向和反向状态,加速和减速状态,这五种基本状态。
具体程序如下:
//由于以下程序中要使用单片机的引脚,所以要使用单片机基本头文件
#include
//创建按键扫描函数,返回值为不同的编码数值,具体的数值没有实际意义,可以根据//实际需要进行修改
//在程序是使用的引脚,是也可以根据实际硬件需要可以修改的
unsignedcharucKeyScan()//读取那个按键选中
{
if(P3_0==0)return1;
if(P3_1==0)return2;
if(P3_2==0)return3;
if(P3_3==0)return5;
if(P3_4==0)return6;
elsereturn0;
}
3.2.2按键数值处理模块
本模块是对按键监测模块中不同的返回值,进行一定的处理和相应。
其中有一些函数的定义,要在下面的几个模块中会有详细的说明:
//由于以下程序中要使用单片机的引脚,所以要使用单片机基本头文件
#include"at89x51.h"
//由于要把不同的状态切换显示到LCD上,所以要调用LCD的显示函数
#include"SMC1602.h"
#defineMOTORPORTP1//电机接口。
#defineMO_COMMON0x09//正向。
#defineMO_OPPOSE0x06//反向。
#defineMO_CUTOFF0x00//切断。
#defineMO_STOP0x0A//停止。
externunsignedcharuc_MoChange;//很重要的全局变量,主要控制通过电机的PWM值,//即:
控制电机的转速
voidvKeyProcess(unsignedc