变频电源设计.docx

上传人:b****1 文档编号:23038052 上传时间:2023-04-30 格式:DOCX 页数:28 大小:128.03KB
下载 相关 举报
变频电源设计.docx_第1页
第1页 / 共28页
变频电源设计.docx_第2页
第2页 / 共28页
变频电源设计.docx_第3页
第3页 / 共28页
变频电源设计.docx_第4页
第4页 / 共28页
变频电源设计.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

变频电源设计.docx

《变频电源设计.docx》由会员分享,可在线阅读,更多相关《变频电源设计.docx(28页珍藏版)》请在冰豆网上搜索。

变频电源设计.docx

变频电源设计

摘要

本设计主要以AT89C51单片机系统为核心,实现了对交流工频电压进行整流、逆变后输出频率可调,电压稳定的三相对称正弦波交流电。

在设计中运用了全控型电力电子器件和SPWM(正弦波脉宽调制)技术,有效改善电路中的谐波、提高逆变器功率因数、提高系统的动态响应速度。

电路采用模块化设计,有利于升级和扩展。

 

一、方案选择与论证

本系统要求设计并制作一个三相正弦变频电源,输出线电压有效值维持在36V,输出频率在20Hz~100Hz连续可调,根据题目要求,我们提出以下三种方案。

方案一:

利用DDS实现变频电源,与传统的变频电源所不同的是:

DDS技术实现变频电源不须经过整流和逆变,输出频率精度较高还可大大节省硬件电路。

但使用DDS芯片设计受功率限制且不符合题目设计框图要求,故不予采用

方案二:

采用单相桥式整流电路完成交流电变换成直流电任务。

桥式整流电路优点是输出电压高,纹波电压较小,整流管所承受的最大反向电压较低,效率较高。

逆变电路脉宽调制采用数字分频器、EPROM、D/A等器件实现。

其结构框图如图1所示,EPROM事先存储离线算好的正弦波表供脉宽调制查询使用,改变正弦波扫描频率,即可实现不同的正弦波频率输出。

该方案虽可实现基本要求但电路过于复杂,输出电压不稳定,而且不利于人机交换。

图1.

方案三:

整流电路同方案二,逆变电路采用全控型电力电子器件,控制电路使用AT89C51单片机。

使用全控型器件可使逆变器主电路结构简单,而且控制和驱动灵活可靠、有效改善电路中的谐波和功率因数、提高系统的动态响应速度。

考虑到全控型器件的动静态特性和安全性,我们采用智能功率模块IPM。

IPM即IntelligentPowerModule(智能功率模块)的缩写,是以IGBT为功率器件的新型模块。

这种功率模块是将输出功率元件IGBT和驱动电路、多种保护电路集成在同一模块内,与普通IGBT相比,在系统性能和可靠性上有进一步的提高,而且由于IPM通态损耗和开关损耗都比较低,使散热器的尺寸减小,故使整个系统尺寸减小。

由一片单片机实现脉宽调制,控制功率器件的导通和关断以及频率设定。

另一片单片机实现电压电流频率功率检测和相应的保护以及人机交换。

这种方案由于采用单片机技术,使得其具有智能化的特点,简化了硬件电路,有效提高测量精度,同时也有利用软件对系统误差进行补偿。

电路原理框图如图2示。

分析以上三种方案的优缺点,显然第三种方案具有更大的优越性、灵活性,故我们采用第三种方案。

二、单元电路分析与计算

如图2所示,系统主电路主要由整流、逆变、控制三部分构成。

图2.

1.整流电路

整流电路依靠二极管的单向导电性完成将交流电变换成直流电。

由桥式整流电路分析可知:

输出端负载电压为0.9倍的变压器二次侧电压,即UL=0.9U2。

由纹波系数计算公式:

可知桥式整流电路纹波系数较小,但UL中存在一定的纹波,故需要滤波电路来滤除纹波,我们选用C型滤波电路。

整流桥选用整流桥堆,滤波电容选用耐压耐流较高的电解电容。

为改善电容滤波输出特性较差的缺点,可选用两极电容滤波。

电路图见图3。

图3.主回路电路图

2.逆变电路

逆变电路用三相桥式电压型逆变电路,选用全控型器件IGBT,采用正弦波脉宽调制技术(SPWM)调节输出电压。

输出频率和电压的调节均由逆变器完成。

SPWM技术是采用等腰三角波作为载波信号,正弦波作为调制信号,通过正弦波电压与三角波电压信号相比较的方法,确定各个分段矩形脉冲的宽度。

用正弦波电压信号作为调制信号时,可获得脉宽正比于正弦值的矩形脉冲列。

SPWM主要由单片机通过软件生成SPWM波。

单片机通过改变输出口的状态,

改变开关模式和时间基数来驱动逆变器动作,就可得到相应的SPWM波。

具体操作见软件说明。

3.控制电路

控制电路主要由单片机和检测电路构成。

一个单片机控制IGBT触发和关断,使输出为三相对称交流电。

改变输出状态,改变输出电压频率。

另一个单片机完成频率设定同时完成对输出三相交流电的频率,电流测量。

频率检测电路通过交流电流互感器得到小信号交流电然后经过阻容滤波后得到与原信号同频率的信号,再经过过零比较器后输出为规则变化的高低电平,即一个周期有两个电平变化信号,这些信号可以为单片机所识别。

单片机通过检测即可测的对应频率。

交流电流检测也是通过交流电流互感器得到幅值较小的电压信号,通过整流滤波后,得到直流电压信号。

直流电压信号通过A/D转换进入单片机进行数据处理后可得与原电流成比例的数字量。

检测和控制电路如图4所示。

图4.1频率检测电路

图4.2电流检测电路

三、软件的设计说明

本系统采用双CPU工作,一个CPU作为控制器,控制整个系统的运行,另一个CPU用于产生SPWM波形,用于驱动IGBT工作,实现逆变,该CPU受控制器的控制。

图5.系统控制电路图

1、控制程序设计

控制程序控制按键、显示等功能,程序代码如下:

D8279EQU7FFEH;;定义A0=0地址

AD8279EQU7FFFH;定义A0=1地址v.

EOCBITP2.0

CLKBITP2.1

ADBITP2.2

DOBITP2.3

CSBITP2.4

ORG0000H

LJMPMAIN;主程序

ORG0003H

LJMPINT0

ORG0013H

LJMPINT1;按键中断程序入口

;*****************************************************************;

;主程序

;?

***************************************************************;

ORG0030H

MAIN:

MOVSP,#55H;注意SP地址不能冲突

MOVTCON,#01H;外部中断0为边沿触发

MOVTMOD,#01H

MOVTH0,#00H

MOVTL0,#00H

MOVP1,#50

MOV30H,#00H;初始显示全部为0

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

MOV34H,#00H

MOV35H,#00H

MOV36H,#00H

MOV37H,#00H

CLR4FH;判断是否按下频率设置键的标志位

CLR2FH

SETBEA

SETBEX1

SETB20H;默认显示电压和电流

MOV21H,#80H

MOVDPTR,#AD8279;A0=1写入命令0

MOVA,#0000H;从左边进入,2键互锁。

MOVX@DPTR,A

MOVA,#0D1H

MOVX@DPTR,A

;MOVR1,#08H

WAIT:

MOVXA,@DPTR

JBACC.7,WAIT;判断是否写入完毕

MOVA,#34H;写入命令1,CLK=2MHZ,N=20

MOVX@DPTR,A;,内部工作频率为100khz

MOVA,#90H;写显示RAM命令4,AI=1,RAM?

地址自动加一

LCALLDISP;调用显示程序

LOOP:

MOVA,21H

JNBACC.7,KEY;acc.7作为标志位

JNB2FH,LOOP

;LCALLSTART;采集数据

;LCALLWORK;对数据进行处理

;LCALLNEXT2

LJMPLOOP

KEY:

MOV21H,#80H;判断键码

JB4FH,GO1

LJMPGO2

GO1:

MOV@R0,A

INCR0

GO2:

MOVB,#03H

MOVDPTR,#FUN

CLRC

MULAB

JMP@A+DPTR

RET

;***********************************************************

;按键中断处理程序

;***********************************************************

INT1:

PUSHPSW

PUSHACC

PUSHDPH

PUSHDPL

MOVDPTR,#AD8279;写入命令2,读取FIFO/SENSORRAM

MOVA,#50H

MOVX@DPTR,A

MOVDPTR,#D8279;读取FIFO/SENSORRAM

MOVXA,@DPTR

MOV21H,A;定义20H为键盘扫描内容的缓冲区

POPDPL

POPDPH

POPACC

POPPSW

RETI

;****************************************************************

;分散转移处理程序

;**************************************************************

FUN:

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP

LJMPLOOP;

LJMPKEY10

LJMPKEY11

LJMPKEY12

LJMPKEY13

LJMPKEY14

LJMPKEY15

RET

;************************************************************

;各个键的功能程序

;************************************************************

;前10个键为10个数字按键

;***************************************************************

;第11个键设置频率键

KEY10:

SETB4FH

MOVR4,#3

MOVR0,#30H;注意数据的顺序

LJMPLOOP

;第12键设置确定键

KEY11:

MOV33H,#0EH

LCALLDISP

CLR4FH

MOVA,30H

MOVB,#100

MULAB

MOV30H,A

MOVA,31H

MOVB,#10

MULAB

ADDA,30H

ADDA,32H

MOVP1,A

CLRP2.5;频率发送信号

NOP

NOP

NOP

SETBP2.5

LJMPLOOP

;第13键开始键

KEY12:

CLRP2.6;启停控制位

SETB2FH

LJMPLOOP

;停止键

KEY13:

SETBP2.6

MOV30H,#00H;初始显示全部为0

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

MOV34H,#00H

MOV35H,#00H

MOV36H,#00H

MOV37H,#00H

LCALLDISP

LJMPLOOP

;显示电流、电压键;显示功率、频率键切换键

KEY14:

CPL20H

LCALLDISP

KEY15:

LJMPLOOP

;**************************************************************

;显示程序

;*************************************************************

DISP:

MOVDPTR,#D8279;写显示RAM

MOVR3,#08H

JNB20H,L1

MOVR0,#30H

LJMPDIS

L1:

MOVR0,#70H

DIS:

MOVA,@R0

MOVDPTR,#TAB

MOVCA,@A+DPTR

JB4FH,L2

CJNER0,#30H,L2;此处加小数点,使用时应注意

CLRC

ADDA,#80H

L2:

MOVDPTR,#D8279;写显示RAM

MOVX@DPTR,A

INCR0

DJNZR3,DIS

RET

TAB:

DB3FH06H5BH4FH66H6DH7DH

DB07H7FH6FH77H71H40H00H76H

;采集子程序

START:

MOVR0,#40H

MOVR1,#00H

MOVR4,#3

START1:

MOVP2,#19H;初始化P1口

MOVPSW,#00H;消除状态寄存器

MOVA,R1;;读下一次转换地址到A

SWAPA;取4位地址

SETBCS

CLRCS;;置cs为低,选中TIC1543

LCALLDATA_IN;;调用转换子程序

MOVR2,A;;转换结果的低8字节放入寄存器R2

MOVA,R3;;读转换结果的高8字节到A

RLA;取高两位

RLA

ANLA,#03H

MOVR3,A;;转换结果的高2位防入R3

MOVA,R2

MOV@R0,A

INCR0

MOVA,R3

MOV@R0,A

INCR0

JNBEOC,$

;INCR1

;DJNZR4,START1

MOVR5,#010H;***********

LOOP4:

MOVR6,#0AAH

LOOP3:

LCALLDISP

DJNZR6,LOOP3

DJNZR5,LOOP4;*******************

RET

;”子程序””

DATA_IN:

MOVR5,#10;将I/OCLOCK脉冲数送入R5

CLRCLK

LOOP1:

NOP;;调延时于程序

MOVC,DO;读转换数据到c

RLCA;将地址最低位移入C中

MOVAD,C;写入通道地址

SETBCLK;置IOCLOCK为高

NOP

CLRCLK;置IOCLoCK为低

CJNER5,#03H,LOOP2;判断8个数据是否送完?

未完,则跳转

MOVR3,A;将转换结果高8位存入R3

LOOP2:

DJNZR5,LOOP1;10个脉冲是否结束?

没有刚跳转

RET

;检测电流0——4A对应的数字量是0——1023;右移8位即得到相应的电流示值

WORK:

MOVR0,#40H

MOVR1,#42H

MOVR3,#2

LCALLMSUB

JB07H,ERROR

MOVR0,#40H

MOVR1,#40H

MOVR3,#2

LCALLMSUB

JB07H,ERROR

MOVR0,#42H

MOVR1,#44H

MOVR3,#2

LCALLMSUB

JB07H,ERROR

MOVR0,#40H

MOVR3,#03H

MOVR4,#9AH

MOVA,@R0

SUBBA,R3

INCR0

MOVA,@R0

SUBBA,R4

JNCERROR;电流大于3.6V

ERROR:

CLRP3.5

MOV30H,#00H;初始显示全部为0

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

MOV34H,#00H

MOV35H,#00H

MOV36H,#00H

MOV37H,#00H

LCALLDISP

LJMPMAIN

NEXT2:

MOVA,#03H

ANLA,41H

MOV30H,#0

MOV30H,A;高2位为整数

MOVA,40H

MOVB,#10

MULAB

MOV40H,A

MOV31H,B

MOVB,#10

MULAB

MOV32H,B

MOV40H,A

MOVB,#10

MULAB

MOV32H,B

MOV33H,#10

LCALLDISP

RET

;电流最大可显示4V,可以将数字量右移8为即得到显示值,因此高2

MSUB:

;MOVA,49H;;;;;;;;;;;;;;;;;;;

;JZNSUB1;;;;;;;;;;;;;;;;;;;

;DEC49H;;;;;;;;;;;;;;;;;;;

;RET

NSUB1:

CLR07H

MOVA,R0

MOVR2,A

MOVA,R3

MOVR7,A

MOVA,R1

MOVR4,A

CLRC

LP0:

MOVA,@R0

SUBBA,@R1

MOVR5,A

INCR0

INCR1

MOVA,@R0

SUBBA,@R1

MOVR6,A

JNCLP1

MOVA,R3

MOVR7,A

MOVA,R2

MOVR0,A

MOVA,R4

MOVR1,A

CLRC

LP2:

MOVA,@R0

SUBBA,@R1

MOVR5,A

INCR0

INCR1

MOVA,@R0

SUBBA,@R1

MOVR6,A

LP1:

MOVA,R6

JZNEXTI

SETB07H;大于128

NEXTI:

MOVA,R5

CJNEA,#250,NEXTJ;;;;;;;;;;;;;;;;;;

NEXTJ:

JCBACK

SETB07H

BACK:

RET

INT0:

PUSHPSW

PUSHACC

SETBRS0

CPLTR0

JBTR0,SET1

MOVR2,#00;计算频率

MOVR3,#0FH

MOVR4,#42H

MOVR5,#40H

MOVR6,TH0

MOVR7,TL0

LCALLDIVD;调用双字节除法

MOVA,R3

MOVB,#100

DIVAB

MOV70H,A;频率存放于40H、41H、42H中

MOVB,#10

DIVAB

MOV71H,A

MOV72H,B

LJMPTT1

SET1:

MOVTH0,#00H

MOVTL0,#00H

TT1:

POPACC

POPPSW

RETI

;(7)标号:

DIVD功能:

双字节二进制无符号数除法

;入口条件:

被除数在R2、R3、R4、R5中,除数在R6、R7中。

;出口信息:

OV=0时,双字节商在R2、R3中,OV=1时溢出。

;影响资源:

PSW、A、B、R1~R7堆栈需求:

2字节

DIVD:

CLRC;;比较被除数和除数

MOVA,R3

SUBBA,R7

MOVA,R2

SUBBA,R6

JCDVD1

SETBOV;;溢出

RET

DVD1:

MOVB,#10H;;计算双字节商

DVD2:

CLRC;;部分商和余数同时左移一位

MOVA,R5

RLCA

MOVR5,A

MOVA,R4

RLCA

MOVR4,A

MOVA,R3

RLCA

MOVR3,A

XCHA,R2

RLCA

XCHA,R2

MOVF0,C;;保存溢出位

CLRC

SUBBA,R7;;计算(R2R3-R6R7)

MOVR1,A

MOVA,R2

SUBBA,R6

ANLC,/F0;;结果判断

JCDVD3

MOVR2,A;;够减,存放新的余数

MOVA,R1

MOVR3,A

INCR5;;商的低位置一

DVD3:

DJNZB,DVD2;;计算完十六位商(R4R5)

MOVA,R4;;将商移到R2R3中

MOVR2,A

MOVA,R5

MOVR3,A

CLROV;;设立成功标志

RET

END

2.SPWM的程序设计

本系统SPWM波形的产生利用表格法:

在EPROM中存放两张表格,一张

是存放正弦波一个周期里每一个小区间的开关模式和时间基数,从存储器的高地址到低地址依次存放,共240个单元,另一张表格是频调整数据表,用以按给定频率值来调整第四个小区间的维持时间,以保证输出频率的正确。

CPU依次从表中取出开关模式和时间基数,并用软件生成两个开关模式间的死区时间。

程序

流程图如图6所示。

先发送死区模式(死区时间为4us)再发送开关模式,而后查的时间基数存寄存器,采用软件延市时来实现开关模式的维持时间。

每4个小区模式发送完后,采样一次给定频率,并查表得出频率调整数据,采用软件延时进行频率调整。

考虑到输出电压的恒定,用软件实现占空比不变的触发脉冲。

程序流程图如图6所示。

图6.SPWM程序流程图

源代码如下:

START:

MOVR2,#0H

MOVR7,#04H;4小区

MOVDPTR,#10F0H

L0:

CLRA

MOVCA,@A+DPTR;查得模式

XCHA,R2

ANLA,R2

MOVR1,A;死区

DECDPL

CLRA

MOVCA,@A+DPTR;查得时间基数m

MOVP1,R1;发死区模式

MOVR3,A

MOVP1,R2;发小区开关模式

L1:

DJNZR3,L1;2mT

MOVR5,#60;+++++++++++++

L11:

DJNZR5,L11

DJNZR7,L4;2T

PUSHDPH

PUSHDPL

;MOVDPTR,#7FFFH;启动ADC0809

;MOVX@DPTR,A

NOP

NOP

NOP

NOP

;MOVR7,#18H

L2:

;DJNZR7,L2

;MOVR7,#04H;4个小区

;MOVXA,@DPTR

;MOVDPTR,#1100H;查得频率调整时间n

;MOVCA,@A+DPTR

;MOVR4,A

;MOVR4,#255

L3:

;DJNZR4,L3

POPDPL

POPDPH

L4:

DJNZDPL,L5

MOVDPTR,#10F0H

AJMPL0

L5:

NOP

NOP

AJMPL0

ORG1001H

DB01H2AH27H29H05H19H0DH15H

DB02H2AH21H29H0FH19H08H15H

DB05H2AH18H29H18H19H05H15H

DB08H2AH0FH29H21H19H02H15H

DB0DH2AH05

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1