基于单片机的正弦波输出逆变电源的设计与实现

最新更新时间:2014-06-21来源: 互联网关键字:单片机  正弦波  逆变电源 手机看文章 扫描二维码
随时随地手机看文章

  低压小功率逆变电源已经被广泛应用于工业和民用领域。特别是新能源的开发利用,例如太阳能电池的普遍使用,需要一个逆变系统将太阳能电池输出的直流电压变换为220V、50Hz交流电压,以便于使用。本文给出了一种用单片机控制的正弦波输出逆变电源的设计,它以12V直流电源作为输入,输出220V、50Hz、0~150W的正弦波交流电,以满足大部分常规小电器的供电需求。该电源采用推挽升压和全桥逆变两级变换,前后级之间完全隔离。在控制电路上,前级推挽升压电路采用SG3525芯片控制,采样变压器绕组电压做闭环反馈;逆变部分采用单片机数字化SPWM控制方式,采样直流母线电压做电压前馈控制,同时采样电流做反馈控制;在保护上,具有输入过、欠压保护,输出过载、短路保护,过热保护等多重保护功能电路,增强了该电源的可靠性和安全性。

  该电源可以在输人电压从10.5V到15V变化范围内,输出220V±10V的正弦波交流电压,频率50Hz±O.5Hz,直流分量

 

  l 主电路

 

  逆变电源主电路采用推挽升压和全桥逆变两级变换,如图1所示。

 

  

 

  输入电压一端接在变压器原边的中间抽头,另一端接在开关管S1及S2的中点。控制S1及S2轮流导通,在变压器原边形成高频的交流电压,经过变压器升压、整流和滤波在电容C1上得到约370 V直流电压。对S3~S6组成的逆变桥采用正弦脉宽调制,逆变输出电压经过电感L、电容C2滤波后,最终在负载上得到220 V、50 Hz的正弦波交流电。采用高频变压器实现前后级之间的隔离,有利于提高系统的安全性。

  输入电压10.5~15 V,输入最大电流15 A,考虑一倍的余量,推挽电路开关管S1及S2耐压不小于30 V,正向电流不小于30 A,选用IRFZ48N。

  升压高频变压器的设计应满足在输入电压最低时,副边电压经整流后不小于逆变部分所需要的最低电压350 V,同时输入电压最高时,副边电压不能过高,以免损坏元器件。同时也必须考虑绕线上的电压降和发热问题。选EE型铁氧体磁芯,原副边绕组为7匝:300匝。关于高频变压器的设计可以参考文献。

  变压器副边输出整流桥由4个HER307组成.滤波电容选用68μF、450 V电解电容。

  根据输出功率的要求,输出电流有效值为0 6~O.7 A,考虑一定的电压和电流余量,逆变桥中的S3~S6选用IRF840。逆变部分采用单极性SPWM控制方式,开关频率fs=16 kHz。

  假没滤波器时间常数为开关周期的16倍,即谐振频率取1 kHz,则有

  

  滤波电感电容LC≈2.5×10-3,可选取L=5 mH,C=4.7μF。滤波电感L选用内径20 mm,外径40 mm的环形铁粉芯磁芯,绕线采用直径O.4 mm的漆包线2股并绕,匝数180匝。

 

  2 数字化SPWM控制方法

 

  该逆变电源的控制电路也分为两部分。前级推挽升压电路由PWM专用芯片SG3525控制,采样变压器绕组电压实现电压闭环反馈控制。后级逆变电路由单片机PICl6C73控制,采样母线电压实现电压前馈控制。前级控制方法比较简单,在这里主要介绍后级单片机的数字化SPWM控制方式。

  2.l 正弦脉宽调制SPWM

  正弦脉宽调制SPWM技术具有线性调压、抑制谐波等优点,是目前应用最为广泛的脉宽调制技术.一般用三角波μc作为载波信号,正弦波ug=UgmSin2πfgt作为调制信号,根据μ和μg的交点得到一系列脉宽按正弦规律变化的脉冲信号。则可以定义调制比m=Ugm/Ucm,频率比K=fc/fa=Tg/Tco。

  正弦脉宽调制可以分为单极性SPWM和双极性SPWM。双极性SPWM的载波为正负半周都有的对称三角波,输出电压为正负交替的方波序列而没有零电平,因此可以应用于半桥和全桥电路。实际中应选择频率比K为奇数,使得输出电压μo具有奇函数对称和半波对称的性质,μc无偶次谐波。但是输出电压μc中含有比较严重的n=K次中心谐波以及n=jk±6次边频谐波。其控制信号为相位互补的两列脉冲信号。

  单极性SPWM的载波为单极性的不对称三角波,输出电压也是单极性的方波。因为输出电压中包含零电平,因此,单极性SPWM只能应用于全桥逆变电路。由于其载波本身就具有奇函数对称和半波对称特性,无论频率比K取奇数还是偶数输出电压Uo都没有偶次谐波。输出电压的单极性特性使得uo不含有n=k次中心谐波和边频谐波,但却有少量的低频谐波分量。单极性SPWM的控制信号为一组高频(载波频率fe)脉冲和一组低频(调制频率fk)脉冲,每组的两列脉冲相位互补。由三角载波和正弦调制波的几何关系可以得到,在k>l时,高频脉冲的占空比D为

  

  2.2 PIC单片机的软件实现

  PICl6C73是Microchip公司的一款中档单片机,它功能强大而又价格低廉。PICl6C73内部有两个CCP(Capture、Compare、PWM)模块,当它工作在PwM模式下,CCP x引脚就可以输出占空比10位分辨率可调的方波,图2为其工作原理图。

 

  

 

  TMR2在计数过程中将同步进行两次比较:TMR2和CCPRxH比较一致将使CCPX引脚输出低电平;TMR2和PR2比较一致将使CCPx引脚输出高电平,同时将TMR2清O,并读入下一个CCPRxH值,如图3所示。因此,设定CCPRxH值就可以设定占空比,设定PR2值就可以设定脉冲周期。脉冲占空比D可以表示为

  

  在本设计中,全桥逆变器采用单极性SPWM调制方式。CCP1模块用来产生高频脉冲,CCP2模块用来产牛低频脉冲。选择16M晶振,根据脉冲周期Tc=[(PR2)+l]×4×4*Tosc和频率比k=Tg/Tc,可以取PR2=249,k=320,则有Tg=20 ms,高频脉冲序列每一一个周期中包含:320个脉冲。设调制比m=0.92,将,t=TgN/320代入式(2),联立式(3)可以得到产生高频脉冲所需要的CCP1H的取值,第0~79个脉冲为

  CCP1H=230sin(πN/160) (4)

  式中:N为O→79。

  考虑到正弦波的对称性,可以得到第80~159个脉冲为

  CCP1H=230sin[π×(80—N)/160] (5)

  根据脉冲的互补性,可以得到第160~239个脉冲为

  CCP1H=250—230sin(πN/160) (6)

  第240~319个脉冲为

  CCP1H=250—230Sin[π×(80一N)/160](7)

 

  

 

  因此,在程序中存储表格230sin(πN/160),N∈[0,79]就可以得到整个周期320个高频脉冲的CCP.H值。第O~79点,CCP1H为正向查表取值;第80~159点,CCP1H为反向查表取值;第160~239点CCP1H为计数周期减去正向查表值;第240~319点CCP1H为计数周期减去反向查表值。

  对于低频脉冲,前半个周期可以看成由占空比始终为1的高频脉冲组成,后半个周期看成由占空比始终为0的高频脉冲组成,因此,第O~159个脉冲,CCP2H=250,第160~319个脉冲,CCP2H=O。

  图4为单片机_TMR2中断程序的流程图,在中断程序中查表修改CCPxL的值.就可以改变下一个脉冲的CCPxH值,从而修改下一个脉冲的占空比,实现SPWM控制。

 

  

  3 实验结果

 

  实验中,输入电压变化范围为10.5~15 V,输出滤波电感5.3mH,滤波电容8μF,从空载到150W负载状态下都可以输出(220±10V)、50Hz的正弦波交流电压,如表1和表2所示。图5和图6分别为空载和150W纯阻性负载条件下输出电压电流波形。可以看出输出电压和电流波形良好,经测量电压波形的THD为3.6%。

 

  

  

 

  4 结语

 

  本文详细分析了一种正弦波输出的逆变电源的设计,以及基于单片机的数字化SPWM控制的实现方法。数字化SPWM控制灵活,电路结构简单,控制的核心部分在软件中,有利于保护知识产权。

关键字:单片机  正弦波  逆变电源 编辑:探路者 引用地址:基于单片机的正弦波输出逆变电源的设计与实现

上一篇:DIY制作:图文详解逆变器电路制作过程
下一篇:基于SG3525A的太阳能逆变电源设计与实现

推荐阅读最新更新时间:2023-10-12 22:41

MCU复位和程序启动那些事
MCU通常会在工作之前,先经历复位和启动的一个过程,在用户使用过程中往往在这个阶段的工作不是那么的清楚,这里我们就这一话题进行一个讨论。 一.MCU的复位问题 图1 16bit MCU和dsPIC33复位源的种类 一般来说,16位MCU包括dsPIC33的复位源主要包含以上7种,他们都可以对器件产生复位的作用,但是细节有所不同。 图2 复位系统框图 从复位系统框图上看,BOR和POR二者是和VDD电源有关的两种,看门狗和外部复位引脚复位也是比较常见的复位类型。 图3 复位寄存器RCON 复位寄存器RCON包含了复位相关的状态,当发生复位时RCON这个寄存器就会更新,以便表征是哪一个复位
[单片机]
单片机程序的动态加密措施
众所周知, 有一些公司或个人专门做单片机的解密服务,另外,单片机的指令不论怎样加密最终它还要在明文的方式下才能运行, 而且解密者可以使用单片机开发系统单步调试ROM中的程序。当解密者了解了指令的运行过程之后, 也就获得了加密的程序, 如某些智能计价器的运算方法等,通过修改程序并仿制新的ROM芯片, 就可以达到解密的目的。因此,对单片机的加密还要在程序的运行上进行加密处理, 也就是程序的动态加密措施。   1 程序的动态解码   动态解码是对加密程序的指令或数据代码进行动态恢复。在程序运行时, 有一段指令是专门对某一区域的指令或数据代码解密, 而且当解密后的代码使用完毕, 还要将其重新加密, 使存储器中不存在完整的程序代
[模拟电子]
AVR单片机的RTOS-AVRX应用
引 言   随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式。在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因而嵌入式操作系统深得开发人员的青睐。   AVR微处理器是Atmel公司开发的8位嵌入式RISC处理器,它具有高性能、高保密性、低功耗、非易失性等优点,而且程序存储器和数据存储器可独立编址,并具有独立访问的哈佛结构。AVR单片机内核有丰富的指令集,通过32个通用寄存器直接与逻辑运算单元相连接,允许在一个周期内一条单一指令访问两个独立的寄存器,这样的结构使代码的执行效率比传统的复杂指令集
[单片机]
VC++用ActiveX控件与单片机串行通信
在单片机应用系统中,经常需要通过RS-232串行口与微机进行通信。目前在各种操作系统中,Microsoft的Windows较为常见,而且大多为Windows95/98等32位平台。以往在Windows平台上的串行通信多使用其提供的API函数来实现,这种方法使用起来需要许多底层设置,因而较为繁琐,并且难以理解。Microsoft推出的ActiveX技术提供了另外一种实现串行通信的方法。这种方法不仅相对较为简单,而且非常实用。尤其是Visual C++这种可视化面向对象的编程环境中,可以真正把串口看作一个对象,编程时只需简单的设置,理解起来也很容易。下面详细讨论Microsoft提供的串行通信ActiveX控件的使用方法。该控件的相
[单片机]
MCS51单片机和8051、8031、89C51等的关系?
MCS51单片机和8051、8031、89C51等的关系? 我们平常老是讲8051,又有什么8031,现在又有89C51,它们之间究竟是什么关系? MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。 INTEL公司将MCS51的核心技术授权给了很多其它公司
[单片机]
单片机之按键学习
键盘的分类: 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘; 而靠软件编程来识别的称为非编码键盘。 在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。 非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。 本文主要讨论矩阵键盘(独立键盘比较简单可以与此类比),下面是矩阵键盘的电路连接图。 按键的扫描,主要是对每一个按键所编码的识别与确定。 如上图:按键所接口为P2口,置“0”则按键有效。当P2口检测到值为P2=0x7e时,S1有效。 低四位用来确定行按键,高四行用来确定列按键。 基本的编程
[单片机]
<font color='red'>单片机</font>之按键学习
单片机C语言编程心得
写这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和编程规范有很多不懂的地方,有些是自己以前的编程习惯不好,有些就是基础知识不扎实的表现,所以总结出来。 一、.H文件与.C文件的关系: 迄今为止,写过的程序都是一些很简单的程序,从来没有想到要自己写.H文件,也不知道.H文件到底什么用,与.C文件什么关系。只是最近写键盘程序,参考别人的程序时,发现别人写的严格的程序都带有一个“KEY.H”,里面定义了.C文件里用到的自己写的函数,如Keyhit()、Keyscan()等。 经过查找资料得知,.H文件就是头文件,估计就是Head的意思吧,这是规范程序结构化设计的需要,
[单片机]
STM32单片机ADC库函数的定义和使用方法
ADC的基本概念希望各位网友查阅相应的手册,上面对ADC有比较详尽的介绍,包括误差的分析和消除。这里主要介绍ADC的基本库函数的定义和使用。 1.ADC_DeInit函数的功能是将外设ADCx的全部寄存器重设为默认值。 ADC_DeInit(ADC2); 2.ADC_Init函数的功能是根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器。其中ADC_InitTypeDef定义在stm32f10x_adc.h中。其结构体如下所示: typedef struct { u32 ADC_Mode;//可以设置ADC_Mode FunctionalState ADC_ScanConvMode;//规定了模数转换工
[单片机]
小广播
热门活动
换一批
更多
最新电源管理文章
更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved