基于单片机控制的PWM变频调速系统设计
摘要:本文介绍了一种利用专用集成电路SA4828 设计电机变频调速的方法。
系统主要包括主电路与控制电路,主电路采用IPM智能功率模块作为电机的控制。控制电路由MCS-51系列的8051单片机最小系统和SA4828 三相SPWM 产生器及少量的扩展外围芯片构成,充分发挥其控制电路简单、控制方式灵活、输出波形优点多的特点,结合相应的软件,实现电机的调速要求。其中主要内容包括:SA4828的特性介绍及变频系统的主电路、驱动电路、保护电路、速度检测、调速系统及软件编程设计方法。所设计的系统实现了变频调速的全数字化控制,实时性好,可靠性高。
关键词:单片机 SA4828 变频调速 SPWM 电动机
The Design of Motor VVVF System Based On MCU Abstract:This article describes a use of SA4828 ASIC(Application
Specific Integrated Circuit) design motor VVVF system.The system includes the main circuit and control circuit, main circuit used as the Intelligent Power Module IPM motor control. The control circuit is constituted by the MCS-51 series of 8051 systems、three-phase SPWM generator SA4828 and the expansion of a small number of peripheral chips. Give full play to its control circuit is simple, flexible control, the advantages of multi-output waveform characteristics, combined with appropriate software, to achieve the speed requirements of motor control. The system has all-digital VVVF control, real-time, and high reliability.
Key words: MCU SA4828 VVVF SPWM Motor-Control
1.系统组成与工作原理……………………………………………
2.主电路设计………………………………………………………
3.控制电路设计……………………………………………………
4.元器件选型及参数计算…………………………………………
5.系统软件设计……………………………………………………
6.系统应用与调试说明……………………………………………
一、系统组成与工作原理
系统由IGBT的分立驱动电路、串口通信、保护电路、A/D模数转换模块组成。该硬件系统主要包括主电路与控制电路两个部分,其中主电路包括交-直-交变频电路(本设计采用IPM集成模块)与电动机;控制电路包括89C51主控制模块、SA4825产生SPWM波模块、驱动模块以及外围设备模块(如键盘输入、液晶显示、A/D模数转换以及串口等)。以CPU为核心,配以键盘、显示、通讯等设备,完成对交流电动机的速度控制。这里选用了ATMEL公司的89C51单片机,它与Intel 51系列单片机完全兼容。其内部配置了8KB的Flash Memory ,无须扩展外部存贮器。同时这种8位单片机的总线结
可以用三种方式设定:键盘、构与SA4828完全兼容,可以直接相连。给定转速n
O
和实际转速n,一目了然。电位器和上位机。用8位LED分别显示给定转速n
O
系统对电动机运行状态的数据监测、调速效果、动态响应的跟踪情况都可以传送到上位机,以表格或曲线的形式输出,以便于观察分析。
系统主要模块
3.1 IGBT的分立驱动电路的设计
IGBT的驱动设计问题亦即MOSFET的驱动设计问题,设计时应注意以下几点:
①IGBT栅极耐压一般在±20V左右,因此驱动电路输出端要给栅极加电压保护,通常的做法是在栅极并联稳压二极管或者电阻。前者的缺陷是将增加等效输入电容C in,从而影响开关速度,后者的缺陷是将减小输入阻抗,增大驱动电流,使用时应根据需要取舍。
②尽管IGBT所需驱动功率很小,但由于MOSFET存在输入电容C in,开关过程中需要对电容充放电,因此驱动电路的输出电流应足够大。假定开通驱动时,在上升时间t r内线性地对MOSFET输入电容C in充电,则驱动电流为I gt=C in Ugs/tr,其中可取t r=2.2RC in,R为输入回路电阻。
③为可靠关闭IGBT,防止擎住现象,要给栅极加一负偏压,因此最好采用双电源供电。
3.2 IGBT集成式驱动电路
IGBT的分立式驱动电路中分立元件多,结构复杂,保护功能比较完善的分立电路就更加复杂,可靠性和性能都比较差,因此实际应用中大多数采用集成式驱动电路。日本富士公司的EXB系列集成电路、法国汤姆森公司的UA4002集成电路等应用都很广泛。
3.3 IPM驱动电路设计
现以PM100DSA120为例进行介绍。PM100DSA120是一种D型的IPM,内部封装了两个IGBT,工作在1200V/100A以下,功率器件的开关频率最大为20kHz。由于IPM内置了驱动电路,与IGBT驱动电路设计相比,外围驱动电路的设计比较方便,只要能提供15V直流电压即可。
图3.2所示的是一种典型的高可靠性IPM 外部驱动电路方案。来自控制电路的PWM 信号经R1限流.再经高速光耦隔离并放大后接IPM 内部驱动电路并控制开关管工作,FO 信号也经过光耦隔离输出。其中每个开关管的控制电源端采用独立隔离的稳压。15V 电源,且接1只10μF 的退耦电容器(图中未画出)以滤去共模噪声。Rl 根据控制电路的输出电流选取.如用MCU 产生PWM ,则R1的阻值可为330Ω。R2根据IPM 驱动电流选值,一方面应尽可能小以避免高阻抗IPM 拾取噪声,另一方面又要足够可靠地控制IPM 。可在2k Ω~6.8k Ω内选取。C1为2端与地间的O.1μF 滤波电容器,PWM 隔离光耦可选用HCPIA503型、HCPIA504型、PS204l 型(NEC)等高速光耦,且在光耦输入端接1只O.1μF 的退耦电容器(图中未画出)。FO 输出光耦可用低速光耦(如PC817)
3.4串口通信
单片机与PC 机的通信能够让控制系统实现实时监测并进
行相应的控制,使控制系统更加智能化、自动化。目前,大部
分计 算机的串口都采用RS-232C 通信接口的DB9连接器,如
右图所示。 RS-232C 规定的逻辑电平与一般微处理器、单片机的逻辑电平是 不同的。RS-232的逻辑“1”是以-3~-15V 来表示的,而单片机的逻辑“1”是以+5V 来表示的,两者完全不同。因此,单片机系统要和电脑的RS-232接口进行通信,就必须把单片机的信号电平(TTL 电平)转换成计算机的RS-232C 电平,或者把计算机的RS-232C 电平转换成单片机的TTL 电平。实现这种转换的方法可以使用分立元件,也可以使用专用RS-232电平转换芯片。目前较为广泛地使用专用电平转换芯片,如MC1488、MC1489、MAX232等电平转换芯片来实现EIA 到TTL 电平的转换。下面介绍的是MAXIM 公司的单电源电平转换芯片MAX232及接口电路。 3.2 IPM 外部驱动电路
3.5 保护电路
逆变器中的IGBT 模块是变频器的主要部件,也是最昂贵的部件。由于它工作在高频、高压、大电流的状态,所以也是最容易损坏的部件。因此IGBT 模块的保护工作显得十分重要。为此应做到以下几点:
(1)选用智能型IGBT 模块。IPM 中一般都有过流、过热、短路、欠压保护电路,当任一情况发生时它能迅速给出报警信号。把该信号接到SA4828的SET TRIP 端,可立即切断SA4828的6路控制信号,关闭所有的IGBT 。
(2)对SA4828编程时,设置合理的“死区”时间和欲删除的“窄脉冲”的宽度,前者可有效防止同一桥臂上、下开关元件的共态导通;后者可降低开关损耗,减少发热。
(3)在单片机的调速过程中始终监视变频器输出端的电压和电流,一旦超限将停止SA4828的工作并发出报警指示。
在IPM 应用中,由于高频开关过程和功率回路寄生电感等叠加产生的di /dt 、dv /dt 和瞬时功耗会对器件产生较大的冲击,易损坏器件.因此需设置缓冲电路(即吸收电路),目的是改变器件的开关轨迹,控制各种瞬态过压,降低器件开关损耗.保护器件安全运行。
图3.12 MAX232管脚图 图3.11 MAX232串口电平转换电路
3.6 A/D 模数转换模块
该模块主要是将对主电路进行的实时检测的模拟信号转换为数字信号,而后传送给单片机控制系统,实现系统的实时监测。常见的A/D 转换器有计数式A/D 转换器,双积分式A/D 转换器,逐次逼近式A/D 转换器,并行直接比较式A/D 转换器,V/F 式A/D 转换器等。
本系统需处理多路模拟信号,故采用ADC0809 A/D 转换模块,它采用逐次逼近的方法完成A/D 转换;其片内带有锁存功能的8 路模拟开关,可对8路0~5V 的输入模拟电压信号进行转换, 完成一次转换约需100μs 。其输出具有TTL 三态锁存缓冲器,
可直接与单片机通信。
图3.15 AD0809内部结构 图3.16 AD0809管脚图
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动 A /D 转换,之后EOC 输出信号变低,指示转换正在进行。直到A /D 转换完成,EOC 变为高电平,指示A /D 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE 输入高电平 时,输出三态门打图3.15 常用的IPM 缓冲电路
开,转换结果的数字量输出到数据总线上。
基于单片机的PWM调速系统
基于单片机的PWM调速系统 摘要 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。文章中采用了专门的芯片组成了PWM信号的发生系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。此外,本文中还采用了芯片IR2110作为直流电机正转调速功率放大电路的驱动模块,并且把它与延时电路相结合完成了在主电路中对直流电机的控制。另外,本系统中使用了测速发电机对直流电机的转速进行测量,经过滤波电路后,将测量值送到A/D转换器,并且最终作为反馈值输入到单片机进行PI运算,从而实现了对直流电机速度的控制。在软件方面,文章中详细介绍了PI运算程序,初始化程序等的编写思路和具体的程序实现。 关键词:PWM信号测速发电机PI运算前言 本文主要研究了利用MCS-51系列单片机,通过PWM方式控制直流电机调速的方法。 冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM控制技术就是以该结论为理论基础,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些
脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。 PWM控制的基本原理很早就已经提出,但是受电力电子器 件发展水平的制约,在上世纪80年代以前一直未能实现。 直到进入上世纪80年代,随着全控型电力电子器件的出现 和迅速发展,PWM控制技术才真正得到应用。随着电力电 子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM 控制技术获得了空前的发展。到目前为止,已经出现了多种PWM控制技术。 PWM控制技术以其控制简单、灵活和动态响应好的优点而 成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。 本文就是利用这种控制方式来改变电压的占空比实现直流 电机速度的控制。文章中采用了专门的芯片组成了PWM信号的发生系统,然后通过放大来驱动电机。利用直流测速发电机测得电机速度,经过滤波电路得到直流电压信号,把电压信号输入给A/D转换芯片最后反馈给单片机,在内部进行PI运算,输出控制量完成闭环控制,实现电机的调速控制。
PWM电机调速原理及51单片机PWM程序经典
Pwm电机调速原理 对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端PE2 和PD5 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。 此电路中用微处理机来实现脉宽调制,通常的方法有两种: (1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻 辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。 (2)硬件实验自动产生PWM 信号,不占用CPU 处理的时间。 这就要用到ATMEGA8515L 的在PWM 模式下的计数器1,具体内容可参考相关书籍。 51单片机PWM程序 产生两个PWM,要求两个PWM波形占空都为80/256,两个波形之间要错开,不能同时为高电平!高电平之间相差48/256, PWM这个功能在PIC单片机上就有,但是如果你就要用51单片机的话,也是可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1来控制占空比:大致的的编程思路是这样的:T0定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比。 *程序思路说明: * * * *关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数* *设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样* *可以设定占空比可从1-100变化。即0.01ms*100=1ms * ******************************************************************************/ #include
单片机课程设计完整版《PWM直流电动机调速控制系统》
单片机原理及应用课程设计报告设计题目: 学院: 专业: 班级: 学号: 学生姓名: 指导教师: 年月日 目录
设计题目:PWM直流电机调速系统 本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。 关键词:直流电机调速;定时中断;电动机;波形;LED显示器;51单片机 1 设计要求及主要技术指标: 基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。 设计要求 (1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。 (2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。 (3)设计一个4个按键的键盘。 K1:“启动/停止”。 K2:“正转/反转”。 K3:“加速”。 K4:“减速”。 (4)手动控制。在键盘上设置两个按键----直流电动机加速和直流电动机减速键。在
手动状态下,每按一次键,电动机的转速按照约定的速率改变。 (5)*测量并在LED显示器上显示电动机转速(rpm). (6)实现数字PID调速功能。 主要技术指标 (1)参考L298说明书,在系统中扩展直流电动机控制驱动电路。 (2)使用定时器产生可控PWM波,定时时间建议为250us。 (3)编写键盘控制程序,实现转向控制,并通过调整PWM波占空比,实现调速; (4)参考Protuse仿真效果图:图(1) 图(1) 2 设计过程 本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。 本设计以控制驱动电路L298为核心,L298是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。 本设计以AT89C52单片机为核心,如下图(2),AT89C52是一个低电压,高性能 8位,片内含8k bytes的可反复擦写的只读程序存储器和256 bytes的随机存取数据存储器(),器件采用的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 图(2) 对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范
根据proteus仿真的pwm电机调速
直流电机调速资料汇总 一. 使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。 C语言代码: #include
} void beep(void) { uchar t; for(t=0;t<100;t++) { delay500us(); FMQ=!FMQ; //产生脉冲 } FMQ=1; //关闭蜂鸣器 delaynms(300); } void main(void) { TR0=0; //关闭定时器0 TMOD=0x01; //定时器0,工作方式1 TH0=(65526-100)/256; TL0=(65526-100)%256; //100us即0.01ms中断一次EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器T0 ZKB1=50; //占空比初值设定 ZKB2=50; //占空比初值设定 while(1) { if(!K5) { delaynms(15); //消抖 if(!K5) //确定按键按下 { beep(); ZKB1++; //增加ZKB1 ZKB2=100-ZKB1; //相应的ZKB2就减少 } } if(!K6) { delaynms(15); //消抖 if(!K6) //确定按键按下 { beep();