历史上的今天
今天是:2025年03月04日(星期二)
2020年03月04日 | 基于单片机的直流电机控制系统
2020-03-04 来源:51hei
第一章 绪论
随着社会的发展和科技的进步,人们对生产设备提出了速度更快、精度更高的使用要求,电机作为生产设备最为重要的驱动源,在人们的日常生活和工业生产活动中具有广泛应用,发挥着不可替代的作用。基于单片机的直流电机控制系统不仅结构简单可靠,而且易于编程控制,具有非常好的调速性能。
1.1 本文研究的目的
由于直流电机具有非常好的机械性能,多种多样的控制方式,以及非常好的环境适应性,因此,直流电机在很多工业现场得到越来越广泛的应用[1-2]。直流电机控制系统的好坏直接影响电机性能的发挥。在上世纪七八十年代,由于电子技术的落后,很多的直流电机还是依赖复杂的模拟电路进行控制,这种模拟电路采用分离原件搭建,不仅结构复杂,功能单一,而且一个控制电路智能适应某一型号的直流电机,这也导致了这种控制系统的通用性比较差,正是因为直流电机控制系统存在这些缺点,所以,直流电动机的应用具有很大的局限性[3-5]。随着电子技术的发展,虽然后来的模拟点电路具有比较好的性能,能够满足某些方面的基本需求,但是模拟元件在大功率电机运行强干扰的环境下,很容易受到干扰,造成性能下降,甚至发生事故。[6-8]。随着科学技术的发展,尤其是电子技术和传感器技术的进步,很多功能都可以封装在集成电路中实现,而且随着微型计算机的普及,很多复杂算法和控制功能都可以通过微型计算机实现,所以电机控制系统的到了飞速发展,不仅具有非常好的控制性能,而且抗干扰能力更强,大大推动了直流电机的普及和应用[9]。
随着科学技术的进步,当前的直流电机控制系统已经逐渐实现由模电控制往数字控制方向发展,特别是单片机的普及,大大促进了直流电机控制系统的发展[10]。未来的直流电机控制系统正在往智能化方向发展,本文正是在这样的发展趋势下,选择了基于单片机的直流电机控制系统设计这样一个研究课题,具有比较大的研究意义。
1.2 国内外研究现状
随着电子元器件设计加工技术成熟和节能环保意识的加强,电机的控制技术也随之发生了巨变化。电力电子技术以及微机技术的飞速发展,对电机控制方法产生了巨大影响[11-13]。直流电动机的驱动控制经历了几个发展阶段。最初由开关控制使电机工作在通断模式,这个开关后来逐渐被双向可控硅替换,半控型功率器件电机控制成为发展主流[14]。八十年代,出现了全控型功率器件,比如:晶闸管、GTR、IGBT等高性能开关器件,这种具有自关断能力器件不断发展,基本上已经全部取代了普通晶闸管,由于普通晶闸管使用必需有换相电路相配套,而全控型功率器件不需要,因此使电路得到大大的简化;除此之外,这些器件还具有很高的开关频率,从而提高了电机工作频率,降低了噪声,同时整个系统的的体积也得到了很好的控制[15-17]。上个世纪八十年代,基于脉冲宽度调制技术的电动机的控制系统被研发出来,最早利用在驱动功率较小、不可逆的控制系统中。近期,由于电路技术的不发展和晶体管器件性能不断提高,市场上出现了以脉宽进行调速的永磁直流电动机,这大大加快了脉冲宽度调制技术的发展,同时也对电动机驱动技术产生了推力。早期的脉冲宽度调制技术是被用在军事领域,它的优异性能,能够满足那些对速度和精度都有高要求的跟踪系统里。近些年,该技术不断被应用在各种工业上[18]。
十九世纪三十年代,法拉第最早发现电磁感应现象,为电机的提供了坚实的理论基础。在后来的十年时间里,世界上第一台直流电机就被研制出来,在随后的几十年里,直流电机不断完善,技术不断成熟。随着直流电机的发展,直流电机控制器也不断进步[19]。1918年,美国人Lamgnal就开发出最早的水银整流器,并成功开发出由电机调速用的逆变装置;二十世纪三十年代,有部分研究人员提出采用离子设备对定子绕组进行控制,但是最终实验表明,这种装置的可靠性不高、控制的效率非常低、设备非常笨重,因而很快被放弃了[20]。随着科学技术不断发展,半导体技术取得前所未有的进步。开关型晶体管的研制成功,为创造新型电机——无刷直流电机带来了生机。D.Hanrisanz在1950年第一次申请了用晶体管换向代替电刷进行换向的专利,为无刷直流电机的发展奠定了良好的基础[21]。随着半导体技术的土匪猛进,美国人在1962年利用霍尔效应成功研发出了无刷直流电机[22]。随后霍尔元件在电机控制中的利用取得重大突破,开始迅速普及,由于它的灵敏度比二极管高出很多倍,因此电机的控制性能也非常好。1965年德国人Mieslonler第一次提出电容移相对电机进行换流的控制方法,在这个理论提出后不久,德国人第一次研制出了利用环形分配器以及过零鉴别器无刷直流电机进行换向操作的控制器。到上个世纪八十年代,晶闸管技术取得飞速发展,已经开始逐渐取代了传统的直流电机控制装置,直流得控制方式得到了进步[23]。
我国在直流电机控制器方面的研究,起步比欧美等发达国家晚,在上个世纪六十年代才开始进行硅晶闸管研制,在随后的几十年里,以晶闸管为基础的直流电机调速系统也得到大规模的应用[24]。随着社会的不断进步和需求的不断提高,用户对电机性能和控制要求也越来越高,除了要具有结构简单、可靠性好、安全性高等特性,还要考虑电动机的稳定性和环保性,这些都必须遵守严格环国家标准。当前,更高性能电力电子器件一定会出现,已有的成熟的电力电子器件还会不断地升级改进。
1.3 论文设计内容
本文设计了一套直流电机控制系统,该系统可以对直流电机进行闭环调速,使系统精确地输出速度值。直流电机控制系统可以通过速度传感器对当前电机转速进行实时采样,系统将这个采样值和设定值进行对比,检查速度是否偏离,如果有速度差,系统就会通过算法输出控制信号去减小这个差值,直到最后速度达到设置值。这种基于单片机的直流电机控制系统不仅结构简单可靠,而且易于编程控制,具有非常好的调速性能。本系统是以STC89C52单片机为主控制器,采用L298驱动芯片驱动直流电机,电机的速度利用光电对管进行检测,反馈回来的速度在单片机中完成PID算法计算,输出可变占空比的脉冲波(PWM)对驱动电路进行控制,从而使电机的速度稳定到设置值大小,电机的转速可以通过按键进行设置,液晶显示器可以实时显示电机当前的转速和设置的转速。
第二章 系统总体方案设计
2.1 系统总体方案设计
本文设计的直流电机控制系统包括六大部分:电源电路、测速电路、单片机最小系统电路、电机驱动电路、按键电路和显示电路。直流电机控制系统可以通过速度传感器对当前电机转速进行实时采样,系统将这个采样值和设定值进行对比,检查速度是否偏离,如果有速度差,系统就会通过算法输出控制信号去减小这个差值,直到最后速度达到设置值。系统工作原理图如下图2.1所示。

图2.1系统工作原理图
2.2 各模块选型
单片机模块:STC89C52单片机是STC公司生产的一款主流单片机,它是8位的单片机,具有8K字节的可编程存储空间。该型号的单片机的可反复擦除次数高达1000多次,该型单片机输入输出口非常多,中断功能也比较丰富,单片机具有两个定时器,每一个定时器都是16的。
(2)测速模块:直流电机控制系统可以通过速度传感器对当前电机转速进行实时采样,测速模块通过码盘和光电管组合使用实现,通过LM393 芯片处理后输入单片机。
(3)电机驱动模块:L298是SGS公司生产的电机驱动芯片。它不仅可以驱动步进电机,也可以对直流电机进行控制。L298N的控制信号使标准TTL电平,该款芯片可以接受的电压范围很广,可以驱动最大电流为3A的电机负载。
(4)电源模块:通过电源适配器为系统低筒电能,正常工作的电压为5V。
(5)显示模块:液晶显示器可以显示字母、数字以及符号,在本文的直流电机控制系统中,可以通过液晶显示器来显示直流电机工作过程中的速度值和设置值。
(6)按键模块:本文选用独立按键实现人机交互功能,使用者可以通过按键对电机转速和转动方向进行设置。
第三章 系统硬件电路设计
3.1 单片机最小系统设计
STC89C52单片机引脚如下图3.1所示:

图3.1 STC89C52芯片引脚图
各个引脚的功能如下:
VCC:供电电压。
GND:接地。
P0口:它是一个双向输入输出口,一共有八位,全部都是开漏极形式。当某一位管脚被置高电平时,就相当于这个位被设置为高阻。该端口除了可以当做普通输入输出口用之外,还可以用来扩展外部存储器,当这个端口用来扩展16位的外部存储器时,它是低八位的输出地址,通过外界扩展存储器可以提高单片机的存储性能。
P1口:它是一个双向输入输出口,一共有八位,这个口需要内部提供上拉电阻才能实现一些功能。
P2口:它是一个双向输入输出口,一共有八位,这个口需要内部提供上拉电阻才。当该端口某一管脚被置高电平后,内部的上拉电阻将改为强行拉高后再输入,当该端口某一管脚被置低电平后,因为单片机内部上拉电阻的存在,会有电流输出。当这个端口用来扩展16位的外部存储器时,它是高八位的输出地址。
P3口:它是一个双向输入输出口,一共有八位,这个口需要内部提供上拉电阻才能实现一些功能。当该端口某一管脚被置高电平后,内部的上拉电阻将改为强行拉高后再输入。当该端口某一管脚被置低电平后,因为单片机内部上拉电阻的存在,会有电流输出。
一些特殊功能也是通过P3口实现的,具体如下:
管脚 备选功能:
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(计时器0外部输入)
P3.5 T1(计时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当RST脚持续两个机器周期的高电平时间时,单片机复位。
PSEN:外接的程序存储器的片选信号。
XTAL1:内部时钟工作电路输入端口。
XTAL2:来自反向振荡器的输出端口。
为了使单片机工作,系统至少会包含一个时钟电路和一个复位电路,因此又被称为单片机最小系统。为了实现复位功能,至少要让复位脚维持至少相当于两个机器周期时间的高电平,这样才能完成系统复位,复位信号从单片机的第九脚输入,手动按下复位按键,复位脚输出一个高电平;当松开复位键后,电源给电容充电,此时的复位脚输出电平慢慢变小,直到电容充满电,才输出一个低电平,在按键按下到输出高电平这段时间远远大于两个机械周期,所以可以手动对单片机进行复位。单片机最小系统的时钟电路则为内部功能提供时钟信号,考虑到编程的方便性,这里选择的晶振为12MHz,它通过两个电容并联输入到单片机的外部时钟引脚。单片机的最小系统原理图如下图3.2所示,最小系统的外围电路图如下图3.3所示。

图3.2 时钟电路和复位电路
单片机的最小系统图如图3.3所示。

图3.3STC89C52芯片最小系统图
3.2测速模块电路
3.2.1 速度测量方法
直流电机控制系统可以通过速度传感器对当前电机转速进行实时采样,测速模块通过码盘和光电管组合使用实现,通过LM393 芯片处理后输入单片机。常见的速度测量方法有以下三种。
1)M法测速
在一定测量时间T内,测量脉冲发生器(替代输入脉冲)产生的脉冲数m1来测量转速,“M”法测量转速脉冲如图3.4所示,设在一定时间T内,电机转轴转过的弧度为Xτ,则转速n可以用下式3.1-3表示:
n=
(3.1)
转轴转过的弧度数Xτ可用下式所示m1
(3.2)

图3.4“M”法测量转速脉冲
将(3.1)式代入(3.2)式得
转速n的表达式为:
n=
(3.3)
2)T法测速
采用T法测速,转速是根据两个脉冲的时间间隔来计算。码盘有单线和多线可以选择,当选用单线码盘时,只要知道两次脉冲的时间间隔就能够算出转速。当选用单线码盘时,测量的时间只是每转的1/N(N为码盘的线数)。“T”法脉宽测量原理如下图3.5示。定时器对时基脉冲进行计数定时,如果在一个TP内计数值是m2,则计算公式为:
n=
(3.4)
即:
(3.5)

图3.5“T”法脉宽测量
3) M/T法法测速
所谓M/T法测速,即是结合了“M”法和“T”法分别对转速低和高时具有的不一样的精度,结合它们两者的优点的方法,其方法的精度是介于“M”法和“T”法之间,“M/T”法定时/计数测量如图3.6所示。

图3.6 “M/T”法定时/计数测量
根据上述分析,由公式3-4和公式3-5可以对到出M/T法测量转速的公式如下:
(3.6)
3.2.2 测速模块电路设计
测速模块电路如图3.7所示。电阻R4的作用是限流,保证光电管的稳定运行,电阻R3的作用是对光电管输出进行上拉,通过这个上拉电阻可以把电阻的变化转换成电压的变化。由于输出的电压还是不标准,因此,我们在后端还设计了一个比较器,信号变化经过比较器就可以输出一个标准的脉冲信号。

图3.7 测速模块电路图
3.3 电机驱动电路
3.3.1 L298N简介
L298是SGS公司生产的电机驱动芯片。它不仅可以驱动步进电机,也可以对直流电机进行控制。L298N的控制信号使标准TTL电平,该款芯片可以接受的电压范围很广,可以驱动最大电流为3A的电机负载。当我们用L298同时驱动2路电动机时,需要从两对输出口接线。L298N的控制逻辑如下表3.1所示。
表3.1 L298N功能逻辑图
3.3.2 L298N直流电机驱动电路设计
本文设计的电机驱动电路如下图3.8所示。我们选用单片机3.1端口和3.2端口两个端口对电机的方向进行控制,用3.0端口产生脉冲波,通过控制脉冲波(PWM)可以改变电机转速。为了阻值电流回流,保证电路可靠运行,我们在输出端接有保护二极管。

图3.8 电机驱动电路
3.4 按键电路
本文设计的按键电路如下图3.9所示。为了简化编程,节约单片机引脚资源,这里采用的是独立按键。为了实现电机的控制功能,这里设计5个按键,按键从左到右分别是模式按键,电机速度加,减,确定按键和电机的正反转控制。

图3.9 按键电路
3.5 LCD1602显示电路
3.5.1 LCD1602引脚功能介绍
液晶显示器引脚说明如下:
1脚:VSS接电源负。
2脚:VDD接电源正。
3脚:VL脚通过外接一个滑动变阻器,可以对液晶显示屏的对比度进行调节,滑动变阻器分压最小时,液晶显示屏的对比度最低,滑动变阻器分压最大时,液晶显示屏的对比度最高,滑动变阻器的阻值一般取为10K。
4脚:RS是指令和数据的选择端口,如果给这个引脚置位高电平,则表示选取数据寄存器功能,如果给这个引脚设置低电平,则表示选取指令寄存器功能。
5脚:R/W是读写控制端口,如果这个引脚给高电平,则设置为读控制,如果这个引脚给低电平,则设置为写控制。
6脚:EN是使能控制端口,只有在这个端口的下降沿,才能实现液晶显示器的各部分功能。
7~14脚:D0~D7为8位双向数据线。
15脚:背光源正极。
16脚:背光源负极
3.5.2 LCD1602驱动电路设计
液晶显示器可以显示字母、数字以及符号,在本文的直流电机控制系统中,可以通过液晶显示器来显示直流电机工作过程中的速度值和设置值。液晶显示电路如下图2.6所示,上图中的电阻R1就是用来调节液晶显示器背光的。

图3.10 LCD1602驱动电路
第四章 系统软件设计
4.1 PID算法简介
为了实现直流电机速度的准确测量,这里选用PID算法对电机进行的速度进行闭环控制。PID算法可以分为模拟PID和数字PID两种。
4.1.1模拟PID
在早期的控制系统中,模拟PID控制系统被认为最有效,最可靠的控制系统之一。模拟PID控制系统的工作原理如下图4.1所示。

图4.1 模拟PID控制系统工作原理
该PID控制控制器的调节过程非常线性,通过对比实际测量值
和设定值
的值,计算出系统的误差:
=
-
(4.1)
计算出的偏差在控制器中进行比例、积分、微分运算,得出控制信号,控制信号通过转化处理最终作用在控制对象上,使被控对象按设定值运行,故称为PID调节器。模拟PID控制器的计算公式4.2:
(4.2)
4.1.2数字PID
为了便于计算机运算,使模拟PID按照一定规律离散化,这里对公式4.1进行变形为 :
=
-
(4.3)
由于采样实物周期比较短,这里可用近似的方法替代,于是就有:
(4.4)
(4.5)
通过上述处理,上面的公式4-2就可以等效为:
(4.6)
上面公式中的从左往右依次是比例项、积分项和微分项。
这三种作用通常都是单独使用或者合并使用,组合使用时有以下几种方式:
P控制:
(4.7)
PI控制:
(4.8)
PD控制: ![]()
(4.9)
PID控制:
(4.10)
通过分析4.6,可以得出由于位置式PID算存在偏差累积的缺点,这里对其进行了改进,具体如下:
(4.11)
将式2.6和式2.11相减,就会得到增量式PID的计算公式如下:
![]()
(4.12)
从上式可得数字PID位置型控制算式为:
(4.13)
式中:
称为比例增益;
称为积分系数;
称为微分系数。
位置式PID和增量式PID的控制原理图分别如图4.2和4.3所示。

图4.2 位置式PID控制原理图

图4.3 增量式PID控制原理图
通过上述分析,对模拟式PID和数字式PID进行了详细分析介绍,本设计最终选择数字式PID作为控制算法。
4.2系统主程序流程
系统主程序流程如图4.4所示。系统上电后首先进行初始化,然后对按键进行描设,判断速度按键有没有被按下,如果速度按键被按下了,系统就会跳到速度设定程序对速度进行设定,,如果速度按键没有被按下,单片机直接读取当前电机的转速。通过PID算法计算,输出控制信号,使速度稳定在设置值。液晶显示器显示当前的转速和设置的转速。

图4.4系统主程序流程图
4.3 定时器T0中断服务程序流程
定时器T0中断服务程序流程如图4.5所示,中断响应后,首先关闭中断进行数据处理,通过读取计数器数值来计算速度,然后调节PWM来进行调速,之后将计数器清零,重新为定时器装初值,在打开中断。

图4.5 定时器T0中断服务程序流程图
4.4 按键扫描程序流程
按键扫描流工作的程图如下图4.6所示,系统完成初始化后,在循环程序中对按键进行扫描,扫描的目的是实时检测有没有按键按下,如果检测到有按键按下,这是还不能判断是否真的按下按键,还必须进行消抖处理,防止抖动对判断产生误判,完成消抖处理后,还需要再次对按键进行检测,如果这次还是检测到有键按下,那么就会执行相应的操作。
下一篇:基于51单片机的日历时钟
史海拾趣
|
引 言 SMS(Short Message Service)短信息服务是GSM(Global System for Mobile Communication)系统中提供的一种GSM终端(手机)之间,通过服务中心(Service Center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短 ...… 查看全部问答> |
|
CF卡hive注册表保存问题。我按网上的众多资料中几乎每种说法都试过了,但还是不行,不是启动黑屏就是不能保存。 我就是想在进入CE后将IP设置的信息保存下来,下次开机不必从新设置。我的是冷启动,直接拔插电源的。 哎。。搞了两天了没有一点进展 ...… 查看全部问答> |
|
在DM9000所给的web例子中,设定DM9000的IP地址为: 172,20,24,42,然后将对接的PC的IP也设在该网段就行了,我想问的是,是不是DM9000的IP可以任意设置,只要保证同和它连接的PC的IP在一个网段就行了?… 查看全部问答> |
|
不明白现在51学习板为什么都配彩屏,就因为学生不懂,忽悠学生们的钱?还真不如做点实用的,把价格降下来,给广大学生们省点钱来搞学习。 看看实际做产品的,哪个产品是用51来驱动彩屏做显示的?简直赚钱不要命。… 查看全部问答> |
|
初学FPGA (4)不完整条件语句与时序电路(EEFPGA学习计划) …… BEGIN IF CLK’EVENT AND CLK=’1’ THEN Q1<=D; END IF; 不完整的条件语句:即在条件语句中,没有将所有可能发生的情况给出对应的处理方式。对于这种现象,VHDL综合器理解为:对于不满足的条件,跳过Q1<=D不执行,但是需要保 ...… 查看全部问答> |
|
expression must have pointer type mdk中出现expression must have pointer type看一下出错的语句是否是这样的:TIM_TimeBaseInitstruct->TIM_Prescaler改为 TIM_TimeBaseInitstruct.TIM_Prescaler。可能就好了… 查看全部问答> |




