通过PIC16F877单片机的电压采样进行功率因数测量电路的设计 下载本文

内容发布更新时间 : 2024/5/1 17:56:05星期一 下面是文章的全部内容请认真阅读。

通过PIC16F877单片机的电压采样进行功率因数测量电路的设计

1.引言

功率因数是交流电路中的重要参数,是衡量电力系统是否经济运行的一个重要指标,也是供电线路在线监测系统的重要检测量,在功率因数补偿系统中需对其进行实时测量。因此设计出结构简单、检测精度高的功率因数在线检测电路十分必要。而功率因数的测量一般都要对被测电路的电压、电流进行采样,然后进行处理提取功率因数信号,通常由电压、电流取样电路、整形电路、同步周期测量、相位测量等组成,其缺点是结构较复杂,检修困难,有时会出现功率因数的测量精度不高的问题 。为此,基于电压采样,经单片机软件进行分析、计算可得出被测电路的功率因数,通过显示电路显示出功率因数的大小,并由通信接口电路将被测功率因数进行远距离传输。这样既简化功率因数测量电路的结构,提高功率因数的测量精度,又增强了功率因数检测电路的功能。 2.原理分析

通过对电压的提取来检测功率因数的原理如图 1 (a)所示,首先采用 3个高精度的 WB系列数字式交流电压真有效值传感器分别对被测电路的电源电压 U1、附加可调电阻 RP两端电压 U2及负载电压 U3进行检测。可调电阻 RP的作用是使附加电阻尽可能小,以减小对被测负载的影响,又可得到数值适当的电压U2满足功率因数计算的要求。由电路理论,可画出电压 U_1 、U_2 和U_3 的相量图如图 1(b)所示,则 COSφ即是被测负载的功率因数。

图 1 电压测量原理示意图与电压相量图 根据几何学中的余弦定理可得,

由式( 2)可知,只要将电压 U1、U2、U3经过运算后就可求出负载的功率因数 COS?。为减小测量电路的硬件开销,数据的处理与计算由单片机软件完成。 3.单片机输入输出电路设计

单片机输入输出电路主要是对传感器检测的电压信号需要进行处理,主要包括信号转换、计算、存储及功率因数的显示和数据传输。为此,我们设计出了以单片机及有关部件组成的电路如图 2所示。

电压传感器完成对电压的检测,其中 1-3端用于检测电源电压 U1、1-2端用于检测附加电阻电压 U2、2-3端用于检测负载电压 U3。

单片机选用 PIC16F877单片机,该芯片是目前集成外围设备模块最多、功能最强的单片机系列之一 [4]。该单片机芯片带有 8通道、10位分辨率的数模转换器 ADC模块,并具有 4K的 FLASH程序存储器。RA端口是一个只有 6个引脚的双向 I/O端口,它在基本输入/输出功能的基础上复合了 A/D转换器功能,通过端口方向控制器可定义端口引脚为输入或输出。RB、RC分别为具有 8个引脚的输入/输出可编程接口,每个I/O口能提供或吸收 20mA的电流,能直接驱动发光二极管和固态继电器,并有看门狗电路。具有外部电路结构简单,使用方便,性能可靠的特点。功率因数由单片机直接输出通过 4位红色高亮度数码管,对功率因数进行显示,显示精度达到0.001。

3个检测电压经输入接口 RA的 RA0、RA1、RA2管脚输入给单片机,首先经 A/D转换器将功率因数转换成数字信号并进行保存,并将经转换后的数据经 RC和 RB接口进行实时显示。另外还可经过串行接口与监控系统实现通信,及时将线路的功率因数传送给监控系统。目前常用的串行通信有两种 [5],一种为 RS-232串行通信,另一种为 RS-485串行通信。但由于 PIC16F877单片机串行输入、输出接口均为 TTL或 CMOS电平,而监控系统的 PC机通常为 RS-232规范的外部总线标准串行接口,并采用负逻辑,因而 PIC16F877单片机的串行输入、输出接口电平不匹配,需要进行转换,这里采用 MAX232芯片来实现电平转换的功能。MAX232芯片的外围电路简单,只需外接 4个 0.1μF电容即可。 4.软件设计[6]

软件主要任务是完成 A/D转换、数据的运算、显示和通信等,为方便起见,软件编写时

采用模块结构,主程序主要包括程序初始化、调用子程序、显示等。 (1)A/D转换子程序

该子程序主要是选择 A/D输入通道、选择 A/D转换时钟;设置 A/D中断,开放相应的中断使能位;等待所需要的采样时间;启动A/D;等待 A/D完成;读取 A/D转换结果,并存入指定的存储单元。 (2) 数字滤波子程序

为避免在工业现场产生的干扰噪声对功率因数测量造成误差,在软件设计时增加了数字滤波。通常数字滤波方法有多种,这里采用了中值滤波法。即对电压 U1、U2、U3连续采样 5次,然后将这些采样值进行排序并选取中间值。这种滤波方法对滤除脉冲性质的干扰比较有效。 (3)运算子程序

首先将经过数字滤波后的电压 U1、U2、U3读入,然后通过乘法指令完成平方运算,得到U12 、U22 、U32 ,再经减法运算、乘法和除法运算最后得到 ,即得到被测功率因数。

通信子程序的任务是完成串行通信的初始化。PIC16F877单片机带有的同步异步接收发送模块(USART),它是利用 C口的RC6、RC7两个引脚作为二线制的串行通信接口,为使 USART分别工作与发送和接收状态,编程时首先将 USART的接收状态和控制寄存器的 bit 7和 TRISC寄存器的 bit 7均置为1,把 TRISC寄存器的 bit 6均置为0。其次,要使 USART工作在异步通信方式,还必须设置发送和接收速率即波特率。最后通过对发送状态和控制寄存器 TXSTA的 bit 4设置为“0”,从而使 USART工作于异步通信模式。

5.试验及结果分析

为验证功率因数在线测量的精度,作者搭建了如图 4所示的试验平台,图中 COS?是准确等级为 0.2级的单相功率因数表。试验时分别采用白炽灯、电风扇两种不同负载作为测量对象进行了功率因数测量试验,并将实验结果与功率因数表的读数进行比较。