1. 引言
随着改革开放的不断推进,越来越多和直流电机有关的产品出现在我们眼前。大到医疗器械,航天器械和汽车,小到洗衣机、吹风机等家用电器。随着人们的钱包越来越鼓,人们对电器需求日益增加,这又使小电机获得了市场的青睐。而计算机与微电子技术持续迭代进步,有力推动了直流电机控制技术的发展,使其呈现出多样化的态势。
2. 改进与优势
2.1. 现有直流电机不足
现有直流电机调速系统存在效率低、精度差、可靠性不足、成本高、调速范围窄和环境适应性弱等问题,主要受限于电刷磨损、PWM损耗、转矩脉动和电磁干扰等因素。改进方向包括采用无刷电机、优化控制算法、使用高频功率器件和无传感器技术等。
2.2. 改进
本方案在硬件上采用数字信号处理器(DSP)实现高精度调速控制,配合集成化驱动芯片和霍尔传感器,大幅简化电路结构并提升可靠性。软件方面通过改进PID算法实现快速动态响应,同时开发了直观的人机交互界面,并预留通信接口以便功能扩展,整体实现了性能提升与成本优化的平衡。
2.3. 优势
与传统系统相比,本设计在多个方面展现出明显优势:调速精度显著提升,能够满足高精度应用需求;驱动电路更加可靠,系统故障率大幅降低;具备实时转速检测能力,响应速度更快;操作界面更加直观友好;整体成本明显下降,具有很强的市场竞争力。这些优势使得本设计特别适合对控制精度和可靠性要求较高的工业应用场景,同时也为教学实验提供了良好的技术平台。系统还具备进一步升级的潜力,可以方便地实现更高级的控制功能。
3. 系统方案设计
3.1. 系统框架设计
设计开环控制系统,分为LCD1602显示模块、按键模块(电位器调速、独立按键控制电机)、驱动模块、测速模块。如图1所示:
Figure 1. Overall block diagram of the system
图1. 系统总体框图
3.2. 电机调速控制方案选择
随着技术的发展,直流电机调速的控制方式也逐渐多样化。电机转速公式如下所示:
Ua——电枢端电压(V);
Ia——电枢电流(A);
Ra——电枢电路总电阻;
φ——每极磁通量(Wb);
Ce——电势系数。
就电气调速方法而言,我们选择电压调节调速法。
3.3. 各模块方案的选择
本设计系统的电路设计分为四个主要模块:调速控制电路、显示电路、电机驱动电路和速度采集电路。控制器各模块选择STC89C52作为控制器。电机驱动模块采用MOSFET驱动电路,使用场效应晶体管,能够高效控制电机的开关。速度采集模块采用霍尔传感器。显示模块采用LCD1602液晶显示屏。
4. 系统硬件设计
4.1. 单片机最小系统的设计
4.1.1. 芯片STC89C52
STC89C52是STC公司推出的一款8位单片机,内部装8位的CPU、8 K的Flash存储器、256 B的RAM、6个中断源、4个8位并行I/O口,它们都通过片内单一总线连接,其基本结构依然是通用CPU加上外围芯片的结构模式。引脚图如图2所示:
Figure 2. Pin diagram of STC89C52 Single-chip Microcomputer
图2. STC89C52单片机引脚图
4.1.2. 单片机最小系统
最小系统是指单片机能正常工作最简单的电路,能产生时钟信号,让CPU和外围部件严格按照时序工作。单片机最小系统由时钟电路和复位电路两部分组成。其中,时钟电路有内部时钟和外部时钟两种方式,本设计采用内部时钟方式。内部时钟由一个晶振和两个电容连接而成,再与单片机的引脚XTAL1和引脚XTAL2连接。其中晶振电路中电容的作用是可以维持无源晶振所产生平稳的时钟信号,并且以此时钟信号来给单片机提供时钟基准。
4.1.3. 芯片ADC0832
A/D转换就是将连续的模拟量按时间分割后的与标准数字量比较,输出离散数字量的过程。由于本设计只需要测量一个模拟量,所以选择只有两个输入通道的ADC0832即可。ADC0832是美国半导体公司的一款具有8位分辨率的双通道A/D转换芯片,所以转换之后的数字量范围是0~255。
4.1.4. 调速控制电路
Figure 3. Speed control circuit
图3. 调速控制电路
直流电机测速可以通过单片机采集编码器在单位时间内输出的脉冲数量,分析计算出一段时间内的平均转速,并通过编码器信号A、B相之间的相位关系判断电机的正、反转状态[1]。为了实现直流电机的无级调速,该模块使用了芯片AD0832和电位计。设计电路如图3所示。
4.2. 电机驱动电路设计
直流电机
电动机是提供动力的设备,可以给机械负载提供动力。根据机械负载的要求,在一些生产中,需要电动机的转动速度能在一定的范围内可以调节。从各方面考虑,选择的电动机在调节时要尽量简单方便,且价格适中,性价比高,而直流电动机在这些方面都有比较明显的优势。如图4,电机静止状态下,给定子绕组供电,转子因电磁力产生力矩,若外力超过此力矩,电机则会失步,电机输出轴能够抵抗外部施加的最大静态负载力矩即为保持力矩。保持力矩是混合式步进电机的重要性能指标,能够从侧面反馈电机输出性能的优劣性[2]。直流电动机的工作原理如图3所示:电枢绕组通过电刷接到直流电源上,绕组的转轴与机械负载相连,这时便有电流从电源的正极流出与磁场相互作用产生电磁力,载流的转子受到电磁力的作用后开始旋转,以便拖动机器负载。我们常用的调速方法就是改变电枢电压,可以通过两个方法来实现,一个是可控整流法,它的原理是通过控制晶闸管或者全控的绝缘栅双极型晶体管,来改变触发器的控制角,从而移动触发脉冲的相位来改变输出的电压。这种方法操作起来简单好控制,线性度好,但是电机容易发热,电路比较复杂。另一种方法是脉宽调制变换器PWM法,PWM调速法就是利用冲量等效原则,通过调节电动机占空比控制直流电机的转速。这种方法调速的精度比较高,而且动态响应快,稳定可靠,易于采用单片机控制。
Figure 4. Working principle diagram of DC motor
图4. 直流电机工作原理图
Figure 5. Abstract model of DC motor
图5. 直流电机抽象模型
4.3. 电机驱动电路设计
4.3.1. 芯片L298N
使用单片机连接L298N驱动直流电机驱动电路图如上图5所示。L298N连接不同电源,分别有直流电机供电电源,L298N芯片供电电源。如图6所示,L298N的供电电源区别于单片机供电电源,因此input1至input4均使用光耦与单片机隔离,作用是将单片机电源与L298N的电源隔离开来,这样可以有效防止单片机输入端的噪声信号对L298N造成影响,使电机不受控。根据实际速度调节情况,本文选取的光耦隔离元件为TLP521-2,每个隔离单元由一个红外发光二极管和一个NPN硅光晶体管组成[3]。引脚功能如表1所示:
Table 1. Function table of L298N pins
表1. L298N引脚功能表
引脚 |
功能 |
SENSING A |
与地连接电流检测电阻,向驱动芯片反馈检测到的信号 |
SENSING B |
OUT1 |
第一个全桥式驱动器的输出端,与负载相连 |
OUT2 |
Vs |
电机驱动电源输入端 |
IN1 |
控制第一个全桥式驱动器开关的信号输入端 |
IN2 |
ENABLE A |
使能控制端,分别控制两个驱动器的开关 |
ENABLE B |
GND |
接地端 |
Vss |
逻辑控制电路的电源输入端 |
IN3 |
控制第二个全桥式驱动器开关的信号输入端 |
IN4 |
OUT3 |
第二个全桥式驱动器的输出端,与负载相连 |
OUT4 |
Figure 6. Pin diagram of L298N
图6. L298N引脚图
L298的输出引脚OUT1到OUT4共同控制两个直流电机。控制信号输入IN1到IN4后可以控制电机转向和启停,ENA,ENB脚是两个H桥电路的控制端,用于选通芯片内部电路,高电平有效。具体逻辑关系如表2所示:
Table 2. L298N motor control function table
表2. L298N电机控制功能表
输入引脚 |
功能 |
Ven = H IN1/IN3 = H;IN2/IN4 = L IN1/IN3 = L;IN2/IN4 = H |
正转 |
反转 |
Ven = L IN1 = IN2或IN3 = IN4 IN1/IN3 = L或H;IN2/IN4 = L或H |
快速停止 |
停止 |
4.3.2. 电机驱动电路
电机驱动电路的核心是L298N芯片,因单片机输出电压过低,无法直接驱动直流电机,因此需要加入驱动电路以连接二者。为了实现电机的正反转功能,选用“H”桥电路,而L298N的设计与“H”桥相符,简化了接线。在接线时,必须在L298N与直流电机之间接入四个二极管(D1、D2、D3、D4),以保护L298N免受电机反电动势的影响,最终电机驱动电路如图7所示。反电动势可能损坏L298N,尤其是当其超过电源电压时,二极管的作用是限制OUT1和OUT2的电压在±0.7 V范围内。此外,L298N与单片机共用一个电源,Vss接入+5 V以供给逻辑电路,Vs则可以接入2.5~46 V的电源。最后,L298N的GND、ISEN A和ISEN B需要接地,考虑到系统只控制一个电机,其余引脚(IN3、IN4、EN B、OUT3、OUT4)可以悬空处理。这样可以确保电机驱动电路的正常运行与保护。
Figure 7. Motor drive circuit
图7. 电机驱动电路
4.4. 速度采集电路设计
4.4.1. 霍尔传感器
本霍尔传感器模块使用的是A3144霍尔元件。A3144芯片是AMS公司推出的一款开关型霍尔传感器,其应用霍尔效应原理,其输入为磁感应强度,使用LM393宽电压比较器,通过对霍尔传感器传过来的值和电位器的分压值比较,输出数字电压信号,用它可以检测磁场及其变化。
4.4.2. 速度采集电路
速度采集电路选用的是开关型霍尔传感器,参考上节芯片的介绍可以知道,随着三个小圆片的位置变化,检测到磁场的变化并产生变化的方波电压,而产生的方波电压从DO引脚输出给单片机。
4.5. 显示电路设计
4.5.1. LCD1602液晶显示
LCD1602是一款字符型液晶显示器,由液晶显示屏、驱动电路、电阻、电容等组成。LCD1602可以显示16 × 2个字符,有80 B的存储显示数据的随机存取存储器外,还有64 B的可自定义的字符随机存取存储器,而且用户可自定义八个5 × 7点阵字符。
由于LCD1602自带字符库,所以控制液晶显示屏显示内容的时候,只要在字符库内查找对应ASCII码写入存储显示数据的随机存取存储器,内部电路控制显示即可。LCD1602有14根引脚,如图8所示:
Figure 8. Pin diagram of LCD1602
图8. LCD1602引脚图
4.5.2. 显示电路
显示器电路指的是将计算机信号转化为可视化图像的电路系统。它由各种元件和部件构成,其中包括集成电路(IC)、晶体管、电容、电阻等组件,以及各种输入输出(I/O)接口。按图9所示:
Figure 9. Display circuit
图9. 显示电路
5. 系统软件设计
5.1. 主程序设计
主程序初始化定时器0、定时器1和外部中断,并将电机状态设为停转。然后扫描三个按键,如果电机控制按键未被按下,定时器0保持关闭,直接进行电机测速;如果按键被按下,则定时器0开启,电机按上次的占空比运行。接下来,利用霍尔传感器和定时器1每秒采集电机转速,并显示在LCD上,最后程序循环返回按键扫描模块。如图10所示。
Figure 10. Flowchart of the main program
图10. 主程序流程图
5.2. 其他程序的设计
5.2.1. 按键扫描程序的设计
按键控制功能由按键扫描函数keyscan()和定时器0中断服务函数协同完成。每次扫描前,电机保持之前状态,状态标志K1_flag初始化为0,控制定时器0电平。停转按键按下时,标志为0,电机停转并关闭定时器0;正转按键按下时,标志为1,电机正转并开启定时器0;反转按键按下时,标志为2,电机反转并开启定时器0。状态标志需写入定时器0中断服务函数,以实现转向控制。停转按键优先级最高,只有按下时才能更换方向。上电时,默认停转按键已按下,优先判断其状态。若停转按键未按下,则保持原状态并进入下一个子程序;若已按下,则电机停转,同时判断正转或反转按键,进入相应状态后结束按键扫描。
5.2.2. 电机调速程序设计
为了实现直流电机无级调速,将电机调速程序主要分为三部分:将模拟量转换成数字量ADC0832;然后数字量换算成占空比;产生进行PWM调速的控制信号。AD转换只需要按照芯片时序和固定工作流程编程即可。
5.2.3. 电机测速程序设计
电机测速程序主要就两模块:定时器1函数和外部中断1函数。外部中断1连接霍尔传感器到单片机P3.3,每转一圈产生一个脉冲信号,导致一次中断溢出,溢出次数即为圈数。定时器1用于每秒计时,与外部中断1配合计算每秒脉冲次数,从而得到转速,并显示在LCD1602上。
6. 系统仿真及调试
如图11,当按下正转按键后,电机启动正转,液晶显示屏上会显示初始的占空比和测算出的转速,并显示“Z”表示电机正在运行。该电机是带编码器的,共有5根引脚:上下两根为电源连接,右侧三根为信号输出。每转一圈,最上面和最下面的引脚输出设定的脉冲数(这里为360脉冲),中间引脚输出一个脉冲。由于无法实现霍尔传感器测速,将最上面的输出引脚连接到单片机的INT1引脚,以模拟电机测速。在测速前,双击电机模型并在属性设置界面中配置电机参数,包括每圈输出360个脉冲和驱动电压12 V。
Figure 11. The rotating forward motor
图11. 电机正转
这里用滑动电阻模拟电位计,当调节滑动电阻之后,占空比就会发生改变,并且占空比可以从0~100平滑变化。向上调节滑动电阻后,输入电压变大,液晶显示屏上的速度和占空比都变大。看图12示波器通道A与OUT1相连,通道B与OUT2相连,通道C与电机输出信号引脚相连。示波器上也可以看见调节之后通道A输出脉冲的占空比增大,故电压脉冲信号平均值变大,则转速也会增大。
Figure 12. Waveform diagram of the motor’s forward rotation
图12. 电机正转波形图
Figure 13. Motor reversing
图13. 电机反转
将电机停转之后,再按下电机反转按键,电机开始反转,液晶显示屏上显示的占空比、测算出的转速和显示“F”表示电机开始反转,具体可见图13。
与上述过程一致,调节滑动电阻之后,液晶显示屏和示波器上的速度和占空比都变大。如图14,示波器上也可以看见调节之后通道B输出脉冲的占空比增大,故电压脉冲信号平均值变大,则转速也会增大。不同的是,示波器上通道A的波形在通道B上了,是因为产生脉冲信号的引脚从out1变成了out2。
Figure 14. Motor reverse waveform diagram
图14. 电机反转波形图
致 谢
这次项目让我感受颇多,在拿到项目之后,我先在知网和万方阅读相关参考文献,通过分析文献对开拓自己的思路,最后形成了系统初步框架。此次不仅是对所学单片机技术、电机拖动原理和自动控制原理相关知识点的一种温习和检验,更是一次将所学知识融合成一个知识体系的机会。在此,我衷心感谢高老师对我论文的指导与支持。您的专业知识和宝贵建议为我的研究提供了重要的方向,使我在整个写作过程中受益匪浅。
基金项目
吉林建筑大学2024年大学生创新创业训练计划资助项目:基于单片机的直流电机无极调速控制系统设计S202410191085。