王 婧,宋曉茹,高 嵩,王 坤
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安 710021)
隨著社會的不斷進(jìn)步,電已經(jīng)成為人們生活中必不可少的一部分,電是人類文明中一項偉大的發(fā)明,電力系統(tǒng)和電力網(wǎng)的發(fā)展是人類關(guān)注的焦點,這么長時間以來,各國的專家已經(jīng)研究了很多關(guān)于這方面的問題,也發(fā)表了很多論文,這足以說明電力系統(tǒng)的重要性,也是一個國家發(fā)展和創(chuàng)新的動力。
在傳統(tǒng)的信息量小精確度低的有限的電力數(shù)據(jù)采集存儲空間下,沒有辦法來滿足在實際情況下電力系統(tǒng)調(diào)度和管理的需要[1]。本文在交流采集系統(tǒng)下運用STM32芯片[2]。最大程度上利用其片上的豐富資源進(jìn)行設(shè)計,目的是達(dá)到節(jié)省硬件的投資。該芯片內(nèi)部功能模塊豐富,可以直接實現(xiàn)AD轉(zhuǎn)換,對數(shù)據(jù)進(jìn)行高速采集和處理[3]。簡化了硬件設(shè)計,節(jié)約了投資。利用 ARM 捕獲功能和定時器里的計時功能獲得發(fā)電機的頻率,提高了精確度[4]。并且還實現(xiàn)了對采集到的交流信號進(jìn)行快速傅里葉變換[5-6](fast fourier transform, FFT)進(jìn)而計算出更加精準(zhǔn)的數(shù)據(jù)和對諧波的分析。系統(tǒng)結(jié)構(gòu)比較簡單,具有可靠性高、低成本、低功耗等優(yōu)點,適合實時現(xiàn)場操作,具有較高的應(yīng)用價值[7]。
本課題設(shè)計的勵磁控制系統(tǒng)[8-9]的交流采樣[10]系統(tǒng)是對機端及電網(wǎng)交流電壓的檢測環(huán)節(jié),利用ARM微控制器的定時器,測得發(fā)電機頻率,得出A/D轉(zhuǎn)換器的采樣周期;對發(fā)電機的機端電壓進(jìn)行高速交流采樣,然后經(jīng)過快速傅立葉變換算法,計算出機端電壓[11-12]。
系統(tǒng)原理框圖如圖1所示。
圖1 硬件系統(tǒng)框圖
在自動勵磁調(diào)節(jié)系統(tǒng)的測量系統(tǒng)中,應(yīng)用交流采樣法測量工頻電壓、電流、功率等電參數(shù)十分廣泛。交流采樣法[13]一般是先通過采樣把時域上連續(xù)的信號變成時域上離散的信號。所謂采樣就是對一個連續(xù)信號以一定的時間間隔取其瞬時值。具體是通過采樣/保持器和A/D轉(zhuǎn)換器來實現(xiàn)將連續(xù)信號x(t)變成數(shù)字信號x(nTs),然后利用計算機或微處理器進(jìn)行信號的數(shù)字處理。信號雖然已經(jīng)離散化和量子化,但只要滿足一定的條件,仍能包含被采樣信號所載有的信息。采樣定理就是規(guī)定不失真恢復(fù)原信號所要滿足的條件。
傅里葉變換實現(xiàn)了時域到頻域的轉(zhuǎn)換,在信號處理技術(shù)領(lǐng)域有著大量應(yīng)用。計算機只能處理有限長的離散時間序列,所以必須對一個連續(xù)的變化模擬信號進(jìn)行轉(zhuǎn)換,也就是模擬信號數(shù)字化。
如式(1)和(2)為有限長序列的離散傅里葉變換定義。
正變換:
0?k?N-1
(1)
反變換:
0?n?N-1
(2)
使DFT運算中有些項加以合并,達(dá)到減少運算量的效果。
電源電路模塊流程圖見圖2。
圖2 電源電路模塊流程圖
本設(shè)計中需要單獨的電源供電,所以需要焊接一個電源電路。LM358、LM324等芯片需要+5 V、-5 V電源,還有部分電路用到+1.65 V電源,因為STM32F103RCT6主控單元只提供3.3 V電壓,所以需要設(shè)計一個可以供這些電的電源電路。見圖3。
圖3 電源電路
經(jīng)過整流橋整流過的電壓還不夠穩(wěn)定,所以接入一個較大容量的電解電容,利用其充放電特性的作用,使整流后的脈動直流電壓變成相對比較穩(wěn)定的直流電壓。電解電容的參數(shù)一般有兩個,一個是電解電容的容量,一個是它對應(yīng)的最大工作電壓,電壓一般選擇前一級同一線路電壓的2到3倍即可。
接入這兩種電容的作用:因為通過整流橋整流過后的波形是鋸齒波,為了讓其變?yōu)槠椒€(wěn)順滑的脈動波,并且接近于直流,所以接入它們起到濾波的作用;還有一個儲電的作用,需要釋放的時候進(jìn)行釋放。
圖4為加法器基準(zhǔn)電壓電路圖,電壓、電流采集電路中需要用到+1.65 V作為加法器的基準(zhǔn)電壓。+3.3 V的電壓經(jīng)兩個10 K的電阻分壓,生成+1.65 V的電壓,然后經(jīng)過電壓跟隨器進(jìn)行隔離,之后,再經(jīng)過濾波,得到+1.65 V電壓了。
圖4 加法器基準(zhǔn)電壓
采集發(fā)電機機端交流電壓Ua、Ub、Uc,定子交流電流Ia、Ib、Ic等模擬量,計算出發(fā)電機定子電壓、發(fā)電機定子電流等。交流采樣技術(shù)是微機勵磁的關(guān)鍵技術(shù)和勵磁裝置數(shù)字化深度的標(biāo)志之一。因為同步發(fā)電機輸出高電壓,危險系數(shù)大,而且大數(shù)據(jù)不方便采集,所以為了人身安全,為了準(zhǔn)確便利的測量,所以在本設(shè)計中接入了傳感器,來讓它變?yōu)樾‰妷?、小電流。影響AD采樣的因素有分辨率、最小采樣單位值、量程、電源噪音等。
交流電壓采集流程圖見圖5。
圖5 交流電壓采集流程圖
2 kW同步發(fā)電機輸出的機端電壓信號先是輸電機電壓、電壓互感器的二次電壓轉(zhuǎn)換成與原信號在數(shù)量上成正比,但幅值較低的交流電壓,并聯(lián)一個電阻,把它變成正負(fù)1 V小幅值電壓;再加入RC濾波電路,濾除大于3*標(biāo)準(zhǔn)50 Hz=150 Hz的高頻信號;為了使±1 V電壓平穩(wěn)小誤差的輸入到比例放大器,本課題加入LM358進(jìn)行緩沖隔離;然后信號通過LM324放大器放大為-1.65 V-+1.65 V;通過加法抬升電路將電壓抬升為0~3.3 V。最后加上兩個肖特基二極管,肖特基二極管有快速導(dǎo)通的特性,起到鉗位作用,保證輸入STM32F103RCT6的電壓在一定范圍內(nèi)。交流電壓采集電路見圖6。
圖6 交流電壓采集電路
本設(shè)計采用的是SPT204A電壓互感器,SPT204A電壓互感器的額定輸入電流為2 mA,額定輸出電流為2 mA,變比為1:1,它其實是一款毫安級的精密電流互感器,用戶使用時需要將電壓信號變換成電流信號,左邊的R78電阻是一個限流電阻,不論額定輸入電壓多大,調(diào)整R78電阻的阻值,使額定輸入電流為2 mA,就滿足使用條件。因為STM32F103RCT6主控單元只獲取電壓信號,這時電流互感器相當(dāng)于一個電流源,給它并一個電阻,就變成了一個電壓源,相當(dāng)于電壓信號。然后可以通過歐姆定律計算出需要并聯(lián)一個500 Ω的電阻,這樣就變成電壓信號了。
主程序是本次設(shè)計的核心。為了實現(xiàn)本設(shè)計的功能,軟件部分是該設(shè)計的主要部分,尤其是各個算法的理解應(yīng)用,是本設(shè)計的重點和難點。軟件部分是根據(jù)硬件系統(tǒng)來進(jìn)行設(shè)計的。本設(shè)計擬采用Keil 5 MDK集成開發(fā)工具,遵循結(jié)構(gòu)化、模塊化、自頂向下、逐步細(xì)化的設(shè)計思想編寫C語言程序?qū)崿F(xiàn)系統(tǒng)的相關(guān)功能。后期再通過反復(fù)試驗、調(diào)試,從而達(dá)到最佳控制發(fā)電機的機端電壓的效果。本課題主要實現(xiàn)交流采集系統(tǒng)軟件部分的設(shè)計。主程序流程圖如圖7所示。
圖7 主程序流程圖
當(dāng)系統(tǒng)上電后,首先是系統(tǒng)的初始化,初始化完成后再通過IIC總線將電壓值、報警值、PID的三個參數(shù)的初始值存儲在外部存儲模塊AT24C02中,以便于可以隨時進(jìn)行修改它們的值,利用定時器的外部計數(shù)法進(jìn)行同步測頻,得出AD轉(zhuǎn)換的采樣周期,通過香農(nóng)采樣定理將采到的模擬量送給AD轉(zhuǎn)換器得到數(shù)字量由DMA通道讀取電壓采樣值,通過FFT運算獲取有效值,并且由TFT實時顯示波形值及電壓值。當(dāng)測量的電壓值大于報警值時,會進(jìn)行報警,符合的話進(jìn)行下一次采樣。
本設(shè)計PA4作為模擬量輸入采集端口,采樣的過程是先對電壓采集10次后,得到10次的電壓總和,求平均值(value=value/10),求出的平均值進(jìn)行量綱轉(zhuǎn)換(ad_v=value*3.3/4095)得到ad_v。
在進(jìn)行數(shù)據(jù)流操作時,要想把CPU程序的花費時間少一點,那就用DMA來讀取。DMA的作用就是保證了I/O口和內(nèi)存以及內(nèi)存與內(nèi)存彼此數(shù)據(jù)間的傳輸能夠高速地進(jìn)行。DMA是一種直接存儲設(shè)備。它在數(shù)據(jù)傳輸?shù)倪^程中也不需要CPU有任何的指示,數(shù)據(jù)能夠在DMA上很快的移動。這樣的話就可以解放CPU來干別的工作。通過初始化DMA和ADC相關(guān)寄存器,使得ADC采樣結(jié)束之后,DMA自動讀取轉(zhuǎn)換結(jié)果,并將其存放到事先指定的區(qū)。
流程圖在描述ADC的時候可以看出,采集數(shù)據(jù),采用多通道AD采樣的DMA傳輸,首先需要配置ADC功能引腳,然后配置多通道ADC功能,接著配置DMA通道,使能ADC轉(zhuǎn)換結(jié)果從外設(shè)到內(nèi)設(shè),開始啟動ADC轉(zhuǎn)換功能,對各通道的連續(xù)采樣結(jié)果取平均值,最后轉(zhuǎn)換采樣結(jié)果。
ADC的工作參數(shù)具體如下:打開ADC外設(shè)時鐘;使用ADC1,所有模式配置為獨立模式;多通道采集,開啟掃描模式;需要不斷的采集外部的模擬數(shù)據(jù),所有使能連續(xù)轉(zhuǎn)換模式;不使用外部觸發(fā)轉(zhuǎn)換信號;轉(zhuǎn)換結(jié)果右對齊;設(shè)置需要轉(zhuǎn)換的通道的個數(shù),最后調(diào)用ADC_Init()函數(shù)把這些參數(shù)寫入ADC的寄存器完成配置。
因為STM32F103RCT6中自帶的內(nèi)部存儲器,程序一旦被燒錄進(jìn)去,就不能更改。但是在采集過程中,需要在線修改一些參數(shù)值。外部存儲模塊可以設(shè)定修改一些變量值,并且也用來存儲電壓報警值等。將STM32F103RCT6的PB6管腳連接至存儲芯片的SCL管腳,PB7連接至SDA管腳,分別為IIC的時鐘輸入輸出和數(shù)據(jù)輸入輸出。
本設(shè)計應(yīng)用的是AT24C02芯片進(jìn)行存儲。主要儲存PID參數(shù)、電壓設(shè)定值和報警值等數(shù)據(jù)。AT24C02是本實驗板中的EEPROM芯片的SCL及SDA引腳連接到了STM32對應(yīng)的I2C引腳中,結(jié)合上拉電阻,構(gòu)成了I2C通訊總線,它們通過IIC總線交互。IIC總線是遵從IIC總線協(xié)議的一個雙向半雙工通訊接口,在STM32內(nèi)部已經(jīng)集成好,通過對內(nèi)部寄存器的配置,可以直接使用IIC進(jìn)行通信,由管腳自動產(chǎn)生時鐘信號、開始信號、結(jié)束信號,并處理應(yīng)答信號。在IIC總線上可掛載多個從機,通過尋址找到各個從機的“位置”。由時鐘線SCL和數(shù)據(jù)線SDA組成。SDA通信協(xié)議中有三個不可缺少的信號分別是開始信號、答應(yīng)信號、結(jié)束信號。開始信號:SCL為1,SDA由1變0被定為開始信號,標(biāo)志開始傳輸數(shù)據(jù)。答應(yīng)信號:在8位數(shù)據(jù)傳輸完后,SDA上的一個低電平,被視為答應(yīng)信號。結(jié)束信號:SCL由0變1被視為結(jié)束信號,表示此次傳輸完成。EEPROM芯片是7位設(shè)備地址,其中高4位是固定的分別為1010b,低3位則由A0/A1/A2信號線的電平?jīng)Q定,R/W是讀寫方向位,與地址無關(guān)。
數(shù)據(jù)存儲和讀取子程序主要是IIC總線對AT24C02的讀取和寫入數(shù)據(jù)。本次存儲的是一些系統(tǒng)的參數(shù),因此在存儲前需要將十進(jìn)制的數(shù)字轉(zhuǎn)化為ASCII碼,然后通過IIC總線寫字節(jié)函數(shù)向AT24C02寫入數(shù)據(jù),寫入數(shù)據(jù)完成時清零數(shù)據(jù)緩沖區(qū),防止出錯。根據(jù)設(shè)計要求在下一次顯示中需要顯示之前存儲的參數(shù),因此通過IIC讀取函數(shù)讀出存儲的參數(shù)值,比較讀取值與輸入值是否相同,相同則顯示該數(shù)據(jù),若不相同則在LCD上顯示F提示錯誤。
STM32常用的測頻方法有利用外部中斷測頻、PWM輸入測頻、輸入捕獲測頻、外部時鐘計數(shù)器。外部中斷測頻是當(dāng)外部中斷到來時啟動定時器為1秒的定時器,并記錄1秒鐘來了幾個脈沖,則可得到頻率。外部中斷測頻編寫容易,通用性強,缺點是中斷進(jìn)入頻繁,誤差大。在低頻可達(dá)到非常高的測頻精度,尤其在10 Hz時可達(dá)到0.01%的精度。
本設(shè)計中的同步測頻單元,有兩種設(shè)計方法,一種是硬件設(shè)計;另一種是軟件設(shè)計。參考大量文獻(xiàn)之后,發(fā)現(xiàn)硬件設(shè)計外圍電路雖然簡單,但是不好實現(xiàn),不方便計數(shù),浪費時間和物力。相較之下,軟件設(shè)計更快捷一點,利用 ARM 捕獲功能和定時器里的計時功能獲得發(fā)電機的頻率。本次設(shè)計一個周期內(nèi)打64個點,測得的采樣頻率應(yīng)該是50*64=3 200 Hz。
本設(shè)計選用MCUDEV_TFT 1.44彩屏,通過按鍵控制來顯示三相電壓值,設(shè)置的電壓報警值,PID參數(shù)值以及實時采集電壓的正弦波形。此款彩屏可以根據(jù)中文字庫顯示多種字符,有很快的寫入速度,能滿足本系統(tǒng)對實時性的要求。
執(zhí)行主函數(shù)時不斷的掃描鍵盤,如果有鍵按下,程序就轉(zhuǎn)去執(zhí)行判斷鍵值并執(zhí)行相應(yīng)的程序。按鍵輸入程序是讀取外部按鍵的信號輸入,然后判斷信號是否消失,如果信號消失則證明按鍵松開,根據(jù)鍵值執(zhí)行相應(yīng)的功能;若信號沒有消失則繼續(xù)等待。
在本設(shè)計中,只要四個按鍵就可以滿足實驗要求,MENU按鍵的功能就是切換LCD屏幕,PLUS的功能是用來設(shè)定電壓、報警、PID值,SHIFT就是對光標(biāo)進(jìn)行左右移動,UPDOWN的功能是移位。這四個按鍵分別通過PA8,PA9,PA10,PA13與STM32控制器相連接。數(shù)值增加鍵在每一次操作完成后都會將對應(yīng)的參數(shù)儲存到24c02中,MENU將使程序跳出設(shè)置執(zhí)行其他部分。
當(dāng)交流采集單元收集的三相電壓值大于規(guī)定的報警電壓值時,產(chǎn)生一個電平信號并輸出到報警模塊,蜂鳴器將會發(fā)聲,LED燈發(fā)光表示超出上限值。本設(shè)計的PA1和PA2是一個聲光報警接口,兩個接口分別接蜂鳴器和LED燈。
本次設(shè)計對于系統(tǒng)的搭建,選擇了先規(guī)劃整體系統(tǒng)布局后模塊焊接的設(shè)計模式。首先是對STM32F103RCT6單片機最小系統(tǒng)的設(shè)計,讓單片機可以正常工作;然后是搭建電源電路,經(jīng)過電源電路把220V電壓轉(zhuǎn)換成需要的電壓;接著設(shè)計交流采集模塊,最后搭建聲光報警、按鍵電路、外部儲存電路以及顯示模塊。
電源電路因為要先通過一個220/12 V的帶中間觸頭的變壓器,將電壓變?yōu)?2 V,所以就用萬用表先測試了變壓器三端的電壓,并用示波器觀察了它的波形、幅值、周期等。用示波器測得的變壓器兩端的測試情況,測得電壓幅值是正負(fù)36 V,周期為24.80 ms,所以計算得到它的有效值大約為25.46 V,在24 V左右,在電壓范圍之內(nèi);然后依次測試了其他兩端的示波器顯示結(jié)果,波形和這個圖差不多,測得電壓幅值是正負(fù)17 V,周期為25.00 ms,所以計算得到它的有效值大約為12.02 V,在12 V左右,在電壓范圍內(nèi)。
交流電壓采集模塊,通過傳感器獲得交流電壓模擬量,然后通過一系列轉(zhuǎn)化,傳入到STM32F103RCT6單片機的ADC接口中,進(jìn)行AD轉(zhuǎn)換,把模擬量轉(zhuǎn)變成數(shù)字量。
按鍵顯示模塊設(shè)計有4個按鍵,都是低電平觸發(fā),MENU按鍵的功能就是切換LCD屏幕,PLUS的功能是用來設(shè)定電壓、報警、PID值,SHIFT就是對光標(biāo)進(jìn)行左右移動,UPDOWN的功能是移位。系統(tǒng)通入電源后,顯示出測得的三相電壓值。如圖8所示。單片機自帶的TFT顯示屏通過操作按鍵可以顯示出三個界面。第一個界面是實時采集的三相相電壓值、電壓設(shè)定值、頻率,第二個界面是實時采集的交流電壓正弦曲線,第三個界面是電壓設(shè)定值、報警值。這個模塊實現(xiàn)對采集到的數(shù)據(jù)進(jìn)行模數(shù)轉(zhuǎn)換,等到采集到之后,需要分別進(jìn)行量化處理才能輸出給上位機。
圖8 顯示調(diào)試
同步發(fā)電機勵磁控制系統(tǒng)主要由交流采集和移相觸發(fā)脈沖兩部分構(gòu)成,所以一個良好的交流采集系統(tǒng)對同步發(fā)電機勵磁控制系統(tǒng)的運行有著很重要的意義和作用。本文介紹的交流交流采集系統(tǒng)使用ARM芯片STM32,該芯片內(nèi)部功能模塊豐富可以對數(shù)據(jù)進(jìn)行高速采集和處理并且直接實現(xiàn)AD轉(zhuǎn)換。簡化了硬件設(shè)計,節(jié)約了投資。利用 ARM 捕獲功能和定時器里的計時功能獲得發(fā)電機的頻率提高了精確度。實現(xiàn)了對采集的交流信號進(jìn)行FFT處理,計算更精準(zhǔn)的數(shù)據(jù)及諧波分析。這種基于STM32的交流電壓采集系統(tǒng)有很高的應(yīng)用價值和廣闊的市場前景。本次交流采集系統(tǒng)還可以把它往智能化方向發(fā)展,比如可以實現(xiàn)人機界面交互式,人們可以通過電腦遠(yuǎn)程控制同步發(fā)電機進(jìn)行交流采集,這樣不僅可以節(jié)省資源,也可以使交流采集系統(tǒng)的硬件電路設(shè)計更簡單,更可靠,更安全。