基于ATMEGA16的高精度低压无功功率补偿器

发布者:二进制心灵最新更新时间:2012-02-24 来源: 21IC关键字:功率因数  无功补偿  单片机  ATMEGA16 手机看文章 扫描二维码
随时随地手机看文章
    随着现代工业的发展,电网中使用的感性负载也愈来愈多,如感应式电动机、变压器等。这些设备在工作时不但要消耗有功功率,同时需要电网向其提供相应的无功功率,造成电网的功率因数偏低。在电网中并联电容器可以减少电网向感性负载提供的无功功率,从而降低输电线路因输送无功功率造成的输电损耗,改善电网的运行条件,因此功率因数补偿控制器一直有着广阔的应用市场。本文所介绍的功率因数补偿控制器符合JB/T9663-1999国家标准,主要功能有:
 
(1)       相序自动识别
(2)   电压、电流、功率因数采样与显示
(3)   过压解除、欠流封锁,从而保护电容器及避免循环投切
(4)   采用先投入的先切除,先切除的先投入的原则,对补偿电容实行循环投切
(5)   所有的工作参数都可以通过面板按键设定,包括投入门限、切除门限、过压保护门限、欠电流封锁门限、投切延时时间
 
一、工作原理
 
采样三相电源中一线电流(如A线)与另外两线的电压(如BC线)之间的相位差,通过一定的运算,得到当前电网的实时功率因数。此功率因数与设定的投入门限和切除门限比较,在整个投切延时时间内,若在投切门限以内,则不予动作;若小于投入门限,则另投入一组电容器;若大于切除门限或发现功率因数为负时,则切除一组已投入的电容器。再经过投切延时时间,重复比较与投切,直到当前的功率因数达到投切门限以内。在投切过程中,若发现检测到的电压大于设定的过压保护门限,则按组切除所有已投入的电容;当检测到的电压超过设定的过压保护门限的10%时,则一次性切除所有已投入的电容,用以保护电容器。在投切时若发现检测到的电流小于欠电流封锁门限,则停止投切动作,避免系统出现循环投切现象。
 
由于在三相供电中有不同接线方法,不同的接线方法对功率因数的算法也不一样,因此我们规定ARC系列功率因数自动补偿控制仪的电流取自三相供电中的A线,电压取自BC间的线电压,同时为减少现场接线的复杂度,我们在程序中对相位进行自动判别。
 
在三相供电中,我们假设三相的相电压分别为Ua、Ub、Uc,A线电流为Ia
则有Ua=Usin(ωt),Ub=Usin(ωt+120º),Uc=Usin(ωt+240º),
从而得到BC间的线电压为Ubc=Ub-Uc= Usin(ωt-90º)
 
若A线负载为纯阻性,则A线电流Ia与A线电压Ua同相,Ia超前Ubc的角度为90º;
 
若A线负载为感性,则A线电流Ia滞后A线电压Ua角度为φ(0º≤φ≤90º),Ia超前Ubc的角度为90º-φ;
 
若A线负载为容性,则A线电流Ia超前A线电压Ua角度为φ(0º≤φ≤90º),Ia超前Ubc的角度为90º+φ
 
在我们的ARC功率因数自动补偿控制仪中,为了计算的方便,我们电流相位的采样为电压采样的第二个周期,即若没有相位差Ia滞后Ua的角度为360º。在实际检测中,假设我们检测到Ia滞后Ubc的角度为α,根据以上的分析得知:
 
180º<α<270º,则电路为容性负载,COSφ=COS(270º-α)
α=270º,则电路为感性负载,COSφ=1
270º<α<360º,则电路为感性负载COSφ=COS(α-270º)
 
为方便用户接线,若用户将电压Ubc接成了Ucb,或将Ia的输入接反,根据以上的推断,我们同样可得到:
 
0º<α<90º,则电路为容性负载,COSφ=COS(90º-α)
α=90º,则电路为感性负载,COSφ=1
90º<α<180º,则电路为感性负载COSφ=COS(α-90º)
 
二、硬件的设计
 
控制器的CPU采用ATMEL的ATMEGA16-8L,此单片机工作电压范围宽(2.7 - 5.5V),最高工作频率为8MHz;芯片内部具有16k字节的Flash程序程序存储器,512 字节的EEPROM,1K字节的片内SRAM;8路10 位ADC;一个可编程的串行USART,具有独立片内振荡器的可编程看门狗定时器;两个具有独立预分频器和比较器功能的8 位定时器/ 计数器 ;一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器。显示芯片采用南京沁恒公司生产的键盘、显示专用芯片CH451S,CH451S最大能驱动8为数码管,且不需外加驱动就能直接驱动LED数码管,大大减小了印板尺寸,单片机的采用SPI模式,只需3线(片选CS、时钟CLK、数据输入DIN),因本系统未用CH451S的键盘功能,所以CH451S的DOUT引脚不用。Ubc的电压信号经过电阻限流进入2mA/2mA的隔离变换器后分为两路,一路进入模拟绝对值处理电路送入单片机的A/D转换口ADC0,作为电压显示信号,另一路经过零比较后进入单片机中断口INT0;同样Ia的电流信号经5A/5mA的隔离变换器后分为两路,一路进入模拟绝对值处理电路送入单片机的A/D转换口ADC1,作为电流显示信号,另一路经过零比较后进入单片机定时器门控端ICP引脚。
 
三、软件的设计
 
因整个系统对电压、电流采样的精度要求不高,我们直接用CPU的10位A/D对电压、电流的信号进行A/D转换,转换的结果一方面供显示的需要,另一方面作为过压与欠流的比较信号。我们将INT0设置为上升沿产生异步中断,ICP设置为上升沿触发输入捕捉。当INT0产生中断时,16位计数器开始以内部恒定的频率开始计数,直到下一中断的产生。在计数的同时,当TCP上有上升沿脉冲时,即将16位计数器已计得的数据放入到捕捉寄存器中。当一个采样周期结束时,计数器中得数据(N)即为外部交流信号的一个周期基数, 捕捉寄存器中数据(n)电流Ia滞后电压Ubc的基数,将(n/N)*360º即为角度,根据上面的原理就可判断在同一周波中时电压超前电流还是电流超前电压,同时还可得出超前或滞后的角度,将此数据进行查表即可得到功率因数。
 
为了避免对电容器组中的某一组进行频繁的投切,平衡每一组电容器的工作时间,延长整个系统的使用寿命。我们对电容器的投切采用先投入的优先切除,先切除的优先投入的原则,我们在单片机的RAM中开辟了一空间,用于记录每组电容器的投入与切除时间,然后进行排序,将已工作时间最长的作为优先切除对象,将切除时间最长的作为优先投入对象。
 
当三相交流的负载回路电流非常小时,会产生投切振荡的现象。也就是说控制系统投入一组电容器会产生过投,切除一组电容器又会产生投入不足,控制器就会产生重复的投切现象。为避免此想象的发生,我们设置了欠电流锁定,当电流值小于此数值时,系统将停止对电容器的投切动作,维持已投入的电容器工作。
 
在工作过程中,若采样到的电压数据大于设定的过压保护值时,控制器将逐步切除已投入的电容器,若发现超过设定的保护值的10%时,则一次性切除所有已投入的电容器,保护电容器。
 
四、以上的技术现已应用于本公司的ARC功率因数自动补偿控制仪中,经测试运行,系统工作稳定、各项指标达到了国家标准的要求,现已初步投放市场。
关键字:功率因数  无功补偿  单片机  ATMEGA16 引用地址:基于ATMEGA16的高精度低压无功功率补偿器

上一篇:基于双ATmega128的安检力学试验机设计
下一篇:基于ATmegal 28的调光控制器方案设计

推荐阅读最新更新时间:2024-03-16 12:54

基于单片机的红外发送程序(Infineon--XC866)
本程序适用于Infineon--XC866的单片机,载波为38KHZ,通过P3_0作为发送端口,其中:0由0.56m的高电平和0.56ms的低电平组成,1由0.56的高电平和1.68ms的电平组成。稍加修改可应用于C51。 发送程序如下: //**************************************************************************** // @Module Project Settings // @Filename MAIN.C // @Project 20W.dav //----------------------------------------
[单片机]
单片机中进制转换知识
1.如何把一个四字节的十六进制数转换为十进制数,十六进制数的格式低位在前,假设第一个字节位hex_buf ,hex_buf ,hex_buf ,hex_buf 。 方法: uint64 add_sum =0; sum += hex_buf ; sum += hex_buf 8; sum += hex_buf 16; sum += hex_buf 24; 即可得到四个字节十六进制数的十进制数。 2.如何把一个十进制数转换为一个十六进制数。 比如:123456789 首先确认这个数需要用几个字节的十六进制数表示,比如一个字节可以表示的最大数ff也就255,两个字节0xff
[单片机]
51单片机中断优先级设定
在MCS- 中断 优先级中由 中断 优先级寄存器IP来高置的,IP中某位设为1,相应的中断就是高优先级,否则就是低优先级。 - - - PS PT1 PX1 PT0 PX0 IP优先级别寄存器各位介绍如下: PS:串行口中断优先级控制位。PS=1设定串行口为高优先级中断;PS=0为低优先级中断。 PT1:T1中断优先级控制位。PT1=1设定定时器T1为高优先级中断;PT1=0为低优先级中断。 PX1:外部中断1优先级控制位。PX1=1设定定时器外部中断1为高优先级中断;PX1=0为低优先级中断。 PT0:T0中断优先级控制位。PT0=1设定定时器T0为高优先级中断;PT0=0为低优先级中断。 PX0:
[单片机]
PIC16F84单片机产生两组PWM输出实例
;********************************************************************** ; * ; 檔案名稱: PWM-C.asm * ;********************************************************************** ; * ; 其它檔案: 無 * ;*************
[单片机]
单片机C语言指针意义浅析—Keil-C51
通常认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上,甚至认为指针是C语言的灵魂。这里说通常,是广义上的,因为随着编程语言的发展,指针也饱受争议,并不是所有人都承认指针的“强大”和“优点”。在单片机领域,指针同样有着应用,本章节针对Keil C-51环境下的指针意义做简要分析。 1 指针与变量 指针是一个变量,它与其他变量一样,都是RAM中的一个区域,且都可以被赋值,如程序①所示。 #include REG52.H unsigned int j; unsigned char *p; void main() { while(1) { j=0xabcd;
[单片机]
<font color='red'>单片机</font>C语言指针意义浅析—Keil-C51
基于MSP430单片机的婴儿睡眠监护系统
摘要:为更好地照顾婴儿,分担新爸爸新妈妈的负担,提出一种基于MSP430单片机的婴儿睡眠监护系统。系统包括多点尿湿检测模块、声音检测模块、声光报警模块和无线传输模块。以低功耗的MSP430为主控,利用DHT11芯片检测温湿度,单片机处理后的温、湿度信息由nRF24L01发送给接收端,当温湿度超出阈值或检测到婴儿啼哭时进行声光报警。经实际测试,该系统运行可靠,低功耗、低成本、高实用性,具有推广价值。 在当今生活和工作节奏日益紧张的社会,女性往往要兼顾工作和家庭,尤其初为人母,既要照顾婴儿,还要料理家务,新妈妈们往往手忙脚乱。婴儿一天中大部分时间都在睡眠,如何对其进行睡眠监护,在婴儿醒来时及时安抚、如何解决尿湿问题一直困扰着忙碌的
[单片机]
基于MSP430<font color='red'>单片机</font>的婴儿睡眠监护系统
单片机并行扩展口在小型汉字显示屏中的应用
【摘 要】 结合开发汉字LED显示屏与教授单片机课程的体会,介绍一种利用单片机8031的并行扩展口构成小型汉字LED显示屏的方法。 关键词:并行口扩展 单片机 汉字LED显示    1 引 言   在车站、机场、商场、证券交易所、厂矿企业及其他一些公共场所,经常需要发布多变的实时的信息或进行广告宣传,传统的黑板和纸张等为媒介的手段不能满足其多变性和实时性。而LED(发光二极管)电子显示屏以其修改方便、实时显示、美观整洁等特点应运而生。构成LED电子显示系统的方法很多,它们的基本原理相同,都是采用点阵的形式显示汉字、字符等。   下面,笔者结合开发LED汉字显示屏与教授单片机课程的体会,介绍点阵显示的原理以及如何利用8255A
[工业控制]
<font color='red'>单片机</font>并行扩展口在小型汉字显示屏中的应用
Protues在单片机系统设计中的应用
由于微电子技术的迅猛发展,单片机在汽车、通信、办公自动化、工业控制、高级玩具、家用电器等方面都得到了广泛的应用。单片机作为嵌入式系统的核心器件,其系统设计包括硬件电路设计和程序设计2个方面,调试过程一般分为软件调试、硬件测试、系统调试3个过程。软件调试一般比较容易进行,但如果要进行硬件电路测试和系统调试则比较麻烦,因为要进行这2个过程必须在电路板制作完成、元器件焊接完毕之后进行,而且电路板的制作、元器件的安装、焊接费时费力。如果采用作为单片机系统仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。毫无疑问,在使用Proteus进行系统虚拟开发成功之后再进行实际制作,必然可以提高开发效率、降低开发成本、提高开发速度,而
[工业控制]
Protues在<font color='red'>单片机</font>系统设计中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved