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