微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 单片机产生SPWM波在UPS电源中的应用

单片机产生SPWM波在UPS电源中的应用

时间:03-05 来源:互联网 点击:

1 引言

  随着信息技术的不断发展和计算机应用的日益普及,高新技术设备对供电质量的要求越来越高,很多设备都要求电源能够持续提供恒频恒压、无崎变的纯正弦波交流电,不间断电源UPS就是用来给这些设备供电的。UPS一般采用正弦脉宽调制(SPWM)的控制方法将直流电逆变成正弦波交流电。目前,SPWM控制波形的产生一般有三种方式:1、用分立元件电路产生,主要由三角波发生器、正弦波发生器和比较器组成。分立元件电路复杂,调试困难,成本高,可靠性差,因此一般很少采用。2、用专用集成芯片产生,专用集成芯片功能强大,输出波形质量高,应用比较广泛。3、用单片机实现,现在许多单片机都具有产生SPWM波的功能,采用单片机可使电路简单可靠,而且还方便对系统其他数据参数的监控、显示和处理,使整个系统的控制非常的方便。本文就是采用PIC16F73单片机产生SPWM波来控制UPS电源中的逆变系统的。

2 硬件电路设计

  系统总体硬件框图如图1所示:电网输入交流电经整流滤波电路后,变成直流电压,送入功率因数校正模块(PFC),进行功率因数校正,并同时进行直流电压调整,升压到360V。另一方面,蓄电池输出的48V直流电压经过蓄电池升压电路后得到345V的直流高压,这两路直流高压通过二极管并联起来,供给桥式逆变电路。正常工作时,由市电整流所得直流给逆变器供电,而当市电异常时,则自动切换到蓄电池供电。直流电经过桥式逆变电路逆变后,再经输出滤波变成220V、50HZ纯正弦波交流电,供给负载。



  控制电路以 Microchip公司的PIC16F73单片机为核心。PIC单片机是采用RISC结构的高性价比嵌入式控制器,采取数据总线和地址总线分离的Harvard双总线结构,具有很高的流水处理速度。

  PIC16F73最高时钟频率为20MHZ,每条指令执行周期200ns,由于大多数指令执行时间为一个周期,因此速度相当快。其内含192字节的RAM ,4K程序存储器、5路A/D转换及2路PWM波发生器,应用时外围电路极其简单,是理想的单相逆变电源数字控制器。

  单片机通过内部软件产生一路SPWM控制信号,然后经过逻辑门变换电路变换成逆变全桥所需的四路驱动信号,再经专用驱动芯片TLP250隔离放大后,分别加到逆变全桥四个IGBT的栅极,进行驱动控制。

  为了提高输出电压的稳定性,本系统中采用了电压反馈闭环。输出电压经电阻分压取样后,由运算放大电路将电平转换为单片机A/D转换口所能接受的0~5V电压信号,送入单片机A/D转换口。软件在运行过程中,会每隔一段时间进行一次A/D转换,得到反馈电压值,调整SPWM信号的脉宽,保证输出电压的稳定。

3 软件设计

  PIC16F73单片机内部含有两个CCP模块,都可以用来产生PWM波。对于PWM信号来说,周期和脉宽是两个必不可少的参数,PIC16F73单片机将PWM周期储存在PR2寄存器中,而将PWM信号高电平时间值即脉宽值储存在CCPR1L或CCPR2L寄存器中。内部定时器在计数过程中不断与这两个寄存器的值相比较,达到设定时间时输出电平产生相应的变化,从而控制PWM信号的周期和占空比。

  SPWM信号要求脉宽按正弦规律变化,因此每一个PWM周期脉宽都要改变,由单片机产生SPWM波的基本思想就是在初始化时将PWM周期值设定,然后用定时器定时,每个周期产生一次中断,来调整脉宽,从而得到脉宽不断变化的SPWM波。但实际上,SPWM频率一般都很高,周期很短,要在每一个周期内都完成脉宽的调整比较困难。本系统中,SPWM周期为20KHZ,设置每六个周期改变一次脉宽,实际输出SPWM信号经滤波后所得正弦波如图6所示,波形光滑无畸变,满足精度要求。

  在软件设计中,将CCP2模块作为PWM输出口,CCP1模块采用比较功能,单片机时钟为20MHZ,计时步阶0.2us。首先建立正弦表,在一个完整正弦周期中,采样64个点,采样点正弦值与正弦波峰值的比值就是该点SPWM信号的占空比。然后根据SPWM周期计算出各点的脉宽值,转换成计时步阶,做成正弦表,供CCP1中断子程序调用。这64个点之间的时间间隔也转换成计时步阶储存到 CCPR1H和CCPR1L寄存器中,程序运行过程中, 计数器TIMER1不断和这个寄存器的值相比较,达到设定值时CCP1产生中断,TIMER1重新计时。中断服务子程序用来修改SPWM信号的占空比,其流程图如图2所示。

  主程序为一个无穷循环,等待中断发生。本程序中共用到了三个中断:CCP1比较中断,用来调整SPWM脉宽,中断周期为306us;T0定时中断,每隔一段固定的时间进行一次输出电压反馈采样值的A/D转换,在单片机初始化时,将T0的中断周期设为153us,产生一次中断后,将周期改为306us;A/D转换

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top