一種基于PIC單片機電壓采樣的功率因數(shù)在線檢測
單片機選用 PIC16F877單片機,該芯片是目前集成外圍設(shè)備模塊最多、功能最強的單片機系列之一 [4]。該單片機芯片帶有 8通道、10位分辨率的數(shù)模轉(zhuǎn)換器 ADC模塊,并具有 4K的 FLASH程序存儲器。RA端口是一個只有 6個引腳的雙向 I/O端口,它在基本輸入/輸出功能的基礎(chǔ)上復(fù)合了 A/D轉(zhuǎn)換器功能,通過端口方向控制器可定義端口引腳為輸入或輸出。RB、RC分別為具有 8個引腳的輸入/輸出可編程接口,每個I/O口能提供或吸收 20mA的電流,能直接驅(qū)動發(fā)光二極管和固態(tài)繼電器,并有看門狗電路。具有外部電路結(jié)構(gòu)簡單,使用方便,性能可靠的特點。功率因數(shù)由單片機直接輸出通過 4位紅色高亮度數(shù)碼管,對功率因數(shù)進行顯示,顯示精度達到0.001。
3個檢測電壓經(jīng)輸入接口 RA的 RA0、RA1、RA2管腳輸入給單片機,首先經(jīng) A/D轉(zhuǎn)換器將功率因數(shù)轉(zhuǎn)換成數(shù)字信號并進行保存,并將經(jīng)轉(zhuǎn)換后的數(shù)據(jù)經(jīng) RC和 RB接口進行實時顯示。另外還可經(jīng)過串行接口與監(jiān)控系統(tǒng)實現(xiàn)通信,及時將線路的功率因數(shù)傳送給監(jiān)控系統(tǒng)。目前常用的串行通信有兩種 [5],一種為 RS-232串行通信,另一種為 RS-485串行通信。但由于 PIC16F877單片機串行輸入、輸出接口均為 TTL或 CMOS電平,而監(jiān)控系統(tǒng)的 PC機通常為 RS-232規(guī)范的外部總線標(biāo)準(zhǔn)串行接口,并采用負邏輯,因而 PIC16F877單片機的串行輸入、輸出接口電平不匹配,需要進行轉(zhuǎn)換,這里采用 MAX232芯片來實現(xiàn)電平轉(zhuǎn)換的功能。MAX232芯片的外圍電路簡單,只需外接 4個 0.1μF電容即可。
4.軟件設(shè)計[6]
軟件主要任務(wù)是完成 A/D轉(zhuǎn)換、數(shù)據(jù)的運算、顯示和通信等,為方便起見,軟件編寫時采用模塊結(jié)構(gòu),主程序主要包括程序初始化、調(diào)用子程序、顯示等。
(1)A/D轉(zhuǎn)換子程序
該子程序主要是選擇 A/D輸入通道、選擇 A/D轉(zhuǎn)換時鐘;設(shè)置 A/D中斷,開放相應(yīng)的中斷使能位;等待所需要的采樣時間;啟動A/D;等待 A/D完成;讀取 A/D轉(zhuǎn)換結(jié)果,并存入指定的存儲單元。
(2) 數(shù)字濾波子程序
為避免在工業(yè)現(xiàn)場產(chǎn)生的干擾噪聲對功率因數(shù)測量造成誤差,在軟件設(shè)計時增加了數(shù)字濾波。通常數(shù)字濾波方法有多種,這里采用了中值濾波法。即對電壓 U1、U2、U3連續(xù)采樣 5次,然后將這些采樣值進行排序并選取中間值。這種濾波方法對濾除脈沖性質(zhì)的干擾比較有效。
(3)運算子程序
首先將經(jīng)過數(shù)字濾波后的電壓 U1、U2、U3讀入,然后通過乘法指令完成平方運算,得到U12 、U22 、U32 ,再經(jīng)減法運算、乘法和除法運算最后得到
,即得到被測功率因數(shù)。
通信子程序的任務(wù)是完成串行通信的初始化。PIC16F877單片機帶有的同步異步接收發(fā)送模塊(USART),它是利用 C口的RC6、RC7兩個引腳作為二線制的串行通信接口,為使 USART分別工作與發(fā)送和接收狀態(tài),編程時首先將 USART的接收狀態(tài)和控制寄存器的 bit 7和 TRISC寄存器的 bit 7均置為1,把 TRISC寄存器的 bit 6均置為0。其次,要使 USART工作在異步通信方式,還必須設(shè)置發(fā)送和接收速率即波特率。最后通過對發(fā)送狀態(tài)和控制寄存器 TXSTA的 bit 4設(shè)置為“0”,從而使 USART工作于異步通信模式。
5.試驗及結(jié)果分析
為驗證功率因數(shù)在線測量的精度,作者搭建了如圖 4所示的試驗平臺,圖中 COS?是準(zhǔn)確等級為 0.2級的單相功率因數(shù)表。試驗時分別采用白熾燈、電風(fēng)扇兩種不同負載作為測量對象進行了功率因數(shù)測量試驗,并將實驗結(jié)果與功率因數(shù)表的讀數(shù)進行比較。
評論