以两款嵌入式为基础设计无刷直流电动机控制系统
扫描二维码
随时随地手机看文章
通过此次文章相信大家会对无刷直流控制电机有所了解,本文既阐明无刷直流电机控制系统的基本概念和基本原理,又给出其设计与分析的具体过程,并反映其新技术、新成就和实际应用动态。本文设计并实现了一种基于双单片机通信的无刷直流电动机控制系统。该设计方案电路简单、可靠性强、价格便宜。系统主要包括单片机控制电路、逻辑保护电路、过流保护电路、驱动电路、测速电路、转子位置检测电路等。其原理如图 1 所示。
表 1 电机正转换相表
1 转子位置检测电路
控制无刷直流电动机时,必须要知道转子的位置。在本设计方案中,采用了三个光电式位置传感器。这种传感器利用光电效应,由跟随电动机转子一起旋转的遮光板和固定不动的光源及光电管等部件组成。遮光板开有 180°电角度左右的缝隙。随着电机转子的旋转,光电管间歇接收从光源发出的光,不断导通和截止,从而产生一系列 0、1 信号。这些信号通过 P0 口传输给单片机后,单片机通过 P1 口送出相应的控制字,就能很好地控制电机的换相。其控制原理图和换向控制表如图 2 和表 1 所示。
2 驱动电路
绝缘栅极双极型晶体管 IGBT 的栅极驱动电压一般为 15V±10%,而关断负偏置电压为 5~6V。因此选用 TLP250 驱动 IGBT,电路如图 3 所示。 TLP250 内部是光电耦合的,实现将控制电路与主电路隔离。当 3 脚接收到一个低电平时,VGE 输出近似为 15V,可以驱动 IGBT 使其导通;相反,当 3 脚接收到一个高电平时,VGE 输出近似为 -5V,使 IGBT 截止。六只 TLP250 随着输入电平变化,可以很好地控制 IGBT 的开断,从而实现换相。
3 保护电路
3.1 起动时的限流保护电路
电动机起动时,由于转速较低,故转子磁通切割定子绕组所产生的反电势很小,因而可能产生过大的电流 I。通常要加过流保护电路,如图 4 所示。主回路中通过电动机的电流最终通过电阻 Rf 接地。因此,Uf=Rf·IM,其大小正比于电动机的电流 IM,Uf 通过 10kΩ电阻与电压比较器 LM324 反相输入端相连。当 Uf 大于 LM324 正相输入端给定电压 U0 时,LM324 输出低电平。使发光二极管导通,则三极管 C 端输出低电平。由于 C 端与三输入与非门 74LS10 相连,不论另外两输入如何,其输出必为高电平,因而从 TLP250 输出 -5V,同时关断了 Q2、Q4、Q6 三只 IGBT,即切断子主电路。当 Uf
3.2 运行时的逻辑保护电路
为防止单片机系统受环境干扰或执行程序时出错,在单片机输出端加了一个逻辑保护电路,其电路如图 5 所示。假定起动电流不超过最大电流,则输入 C 不起任何作用,输出只受 P10~P15 控制。按照所设计的桥式电路,要求 Q1 与 Q4、Q2 与 Q5、Q3 与 Q6 不能同时导通,否则通过 IGBT 的电流过大,导致过流损坏。根据电路的逻辑关系,当 P10P13、P11P14、P12P15 出错,都输出低电平,或者 P0 口输出均为低电平(高电平),Q1Q4、Q2Q5、 Q3Q6 没有同时导通,很好地保护了电路。
4 测速电路
如果要对直流无刷电动机的转速进行精确控制,首先要对它的转速进行精确测量。笔者利用转子位置传感器所产生的脉冲信号来反映电机的转速。将传感器输出端接到单片机的 P15 口,随着电机的转动,单片机不断的接收到高低电平。当单片机检测到一个下跳沿时开始启动定时器 T1 工作,直到接收到下一个相邻的下跳沿时为止。相继两个高电平之间的时间与电机的转速成正比,可以测量出电动机的转速。
5 双单片机控制电路
5.1 设计原理
在本设计方案中,用单片机来控制无刷直流电机的起动、换相、调速、正反转及停车。在设计中,由于程序在测量转速时,有一个等待延时时间,如果电动机转速较低,则传感器传输的两个高电平间隔较大,则必然影响到电机换向,使电机失步而停车。为避免这种情况,在设计时使用了两片 89C52 单片机,其中一块为主单片机,一块为从单片机。从单片机主要负责控制电动机的换相时机。当从单片机接收到转子位置检测电路的转子位置信息后,由其 P1 口向逻辑保护电路发出两路信号,逻辑保护电路将接收到的信号反相后传输给六只 IGBT 的栅极驱动电路,从而控制定子绕组的换相时机。主单片机负责测量转速,并将测到的实际转速与给定转速比较,将比较结果通过串行口 TXD 传送到从单片机。从单片机接收到信息后,在换相时机不变的前提下,改变定子国绕组电流通电时间,从而达到调整的目的。单片机接法如图 6 所示。
5.2 串行口双机通信
在串行通信中,接收、发送双方向波特率必须一致。因此,首先要设定通信波特率,根据需要设置合理的发送接收速率。主单片机程序在复位时,初始化串行传送控制寄存器 SCON,设置 SCON=0x40,此时采用串行传输模式一。令 SMOD=1,TMOD=0x21,定时器 T1 设为方式二,初值设为 0xff,则波特率为 62.5kbit/s。主单片机采用定时发送数据方式,从单片机接收数据采用中断方式。首先要对串行口进行初始化,定义 SCON 使 REN=1,且要开 CPU 及串行口中断,使 EA=1,ES=1。接收到数据后,接上中断标志位 RI 为 1,程序进入中断服务程序,先关中断,然后将 SBUF 接收到的数据取出,再使 RI 清零并开中断退出中断服务程序。具体思路是:主单片机将测量的转速与设定转速比较,如果过大,则通过串行口向从单片机发出数字 0;如果过小,则向从单片机发出数字 1;如果相等,则向从单片机发出数字 2。从单片机通过中断读取信息,如果 SBUF 里数的为 0,则增大换相延时时间,降低电机转速,直至接收到 2 为止;如果 SBUF 里的数为 1,则减小换相延时时间,以增大电机转速,直至接收到 2 为止;如果 SBUF 里的数为 2,则换相延时时间不变,电机保持在当前速度下运行。
5.3 串行通信软件设计
整个软件采用 C51 语言编写,全部模块化编程。主单片机程序模块主要包括测速程序、设定速度程序、速度显示程序,其主函数流程图如图 7 所示。从单片机程序模块主要包括正转、反转及停车程序、调整程序、串行中断服务程序,其主函数流程图及中断函数流程图如图 8、图 9 所示。
本文设计并实现的无刷直流电动机控制系统,在实验室已调试成功。该电路软件仿真和硬件实现已通过验证,取得了很好的效果。实践证明本设计可行有效。