王 婧,宋曉茹,高 嵩,王 坤
(西安工業大學電子信息工程學院,西安 710021)
隨著社會的不斷進步,電已經成為人們生活中必不可少的一部分,電是人類文明中一項偉大的發明,電力系統和電力網的發展是人類關注的焦點,這么長時間以來,各國的專家已經研究了很多關于這方面的問題,也發表了很多論文,這足以說明電力系統的重要性,也是一個國家發展和創新的動力。
在傳統的信息量小精確度低的有限的電力數據采集存儲空間下,沒有辦法來滿足在實際情況下電力系統調度和管理的需要[1]。本文在交流采集系統下運用STM32芯片[2]。最大程度上利用其片上的豐富資源進行設計,目的是達到節省硬件的投資。該芯片內部功能模塊豐富,可以直接實現AD轉換,對數據進行高速采集和處理[3]。簡化了硬件設計,節約了投資。利用 ARM 捕獲功能和定時器里的計時功能獲得發電機的頻率,提高了精確度[4]。并且還實現了對采集到的交流信號進行快速傅里葉變換[5-6](fast fourier transform, FFT)進而計算出更加精準的數據和對諧波的分析。系統結構比較簡單,具有可靠性高、低成本、低功耗等優點,適合實時現場操作,具有較高的應用價值[7]。
本課題設計的勵磁控制系統[8-9]的交流采樣[10]系統是對機端及電網交流電壓的檢測環節,利用ARM微控制器的定時器,測得發電機頻率,得出A/D轉換器的采樣周期;對發電機的機端電壓進行高速交流采樣,然后經過快速傅立葉變換算法,計算出機端電壓[11-12]。
系統原理框圖如圖1所示。

圖1 硬件系統框圖
在自動勵磁調節系統的測量系統中,應用交流采樣法測量工頻電壓、電流、功率等電參數十分廣泛。交流采樣法[13]一般是先通過采樣把時域上連續的信號變成時域上離散的信號。所謂采樣就是對一個連續信號以一定的時間間隔取其瞬時值。具體是通過采樣/保持器和A/D轉換器來實現將連續信號x(t)變成數字信號x(nTs),然后利用計算機或微處理器進行信號的數字處理。信號雖然已經離散化和量子化,但只要滿足一定的條件,仍能包含被采樣信號所載有的信息。采樣定理就是規定不失真恢復原信號所要滿足的條件。
傅里葉變換實現了時域到頻域的轉換,在信號處理技術領域有著大量應用。計算機只能處理有限長的離散時間序列,所以必須對一個連續的變化模擬信號進行轉換,也就是模擬信號數字化。
如式(1)和(2)為有限長序列的離散傅里葉變換定義。
正變換:
0?k?N-1
(1)
反變換:
0?n?N-1
(2)

使DFT運算中有些項加以合并,達到減少運算量的效果。
電源電路模塊流程圖見圖2。

圖2 電源電路模塊流程圖
本設計中需要單獨的電源供電,所以需要焊接一個電源電路。LM358、LM324等芯片需要+5 V、-5 V電源,還有部分電路用到+1.65 V電源,因為STM32F103RCT6主控單元只提供3.3 V電壓,所以需要設計一個可以供這些電的電源電路。見圖3。


圖3 電源電路
經過整流橋整流過的電壓還不夠穩定,所以接入一個較大容量的電解電容,利用其充放電特性的作用,使整流后的脈動直流電壓變成相對比較穩定的直流電壓。電解電容的參數一般有兩個,一個是電解電容的容量,一個是它對應的最大工作電壓,電壓一般選擇前一級同一線路電壓的2到3倍即可。
接入這兩種電容的作用:因為通過整流橋整流過后的波形是鋸齒波,為了讓其變為平穩順滑的脈動波,并且接近于直流,所以接入它們起到濾波的作用;還有一個儲電的作用,需要釋放的時候進行釋放。
圖4為加法器基準電壓電路圖,電壓、電流采集電路中需要用到+1.65 V作為加法器的基準電壓。+3.3 V的電壓經兩個10 K的電阻分壓,生成+1.65 V的電壓,然后經過電壓跟隨器進行隔離,之后,再經過濾波,得到+1.65 V電壓了。

圖4 加法器基準電壓
采集發電機機端交流電壓Ua、Ub、Uc,定子交流電流Ia、Ib、Ic等模擬量,計算出發電機定子電壓、發電機定子電流等。交流采樣技術是微機勵磁的關鍵技術和勵磁裝置數字化深度的標志之一。因為同步發電機輸出高電壓,危險系數大,而且大數據不方便采集,所以為了人身安全,為了準確便利的測量,所以在本設計中接入了傳感器,來讓它變為小電壓、小電流。影響AD采樣的因素有分辨率、最小采樣單位值、量程、電源噪音等。
交流電壓采集流程圖見圖5。

圖5 交流電壓采集流程圖
2 kW同步發電機輸出的機端電壓信號先是輸電機電壓、電壓互感器的二次電壓轉換成與原信號在數量上成正比,但幅值較低的交流電壓,并聯一個電阻,把它變成正負1 V小幅值電壓;再加入RC濾波電路,濾除大于3*標準50 Hz=150 Hz的高頻信號;為了使±1 V電壓平穩小誤差的輸入到比例放大器,本課題加入LM358進行緩沖隔離;然后信號通過LM324放大器放大為-1.65 V-+1.65 V;通過加法抬升電路將電壓抬升為0~3.3 V。最后加上兩個肖特基二極管,肖特基二極管有快速導通的特性,起到鉗位作用,保證輸入STM32F103RCT6的電壓在一定范圍內。交流電壓采集電路見圖6。

圖6 交流電壓采集電路
本設計采用的是SPT204A電壓互感器,SPT204A電壓互感器的額定輸入電流為2 mA,額定輸出電流為2 mA,變比為1:1,它其實是一款毫安級的精密電流互感器,用戶使用時需要將電壓信號變換成電流信號,左邊的R78電阻是一個限流電阻,不論額定輸入電壓多大,調整R78電阻的阻值,使額定輸入電流為2 mA,就滿足使用條件。因為STM32F103RCT6主控單元只獲取電壓信號,這時電流互感器相當于一個電流源,給它并一個電阻,就變成了一個電壓源,相當于電壓信號。然后可以通過歐姆定律計算出需要并聯一個500 Ω的電阻,這樣就變成電壓信號了。
主程序是本次設計的核心。為了實現本設計的功能,軟件部分是該設計的主要部分,尤其是各個算法的理解應用,是本設計的重點和難點。軟件部分是根據硬件系統來進行設計的。本設計擬采用Keil 5 MDK集成開發工具,遵循結構化、模塊化、自頂向下、逐步細化的設計思想編寫C語言程序實現系統的相關功能。后期再通過反復試驗、調試,從而達到最佳控制發電機的機端電壓的效果。本課題主要實現交流采集系統軟件部分的設計。主程序流程圖如圖7所示。

圖7 主程序流程圖
當系統上電后,首先是系統的初始化,初始化完成后再通過IIC總線將電壓值、報警值、PID的三個參數的初始值存儲在外部存儲模塊AT24C02中,以便于可以隨時進行修改它們的值,利用定時器的外部計數法進行同步測頻,得出AD轉換的采樣周期,通過香農采樣定理將采到的模擬量送給AD轉換器得到數字量由DMA通道讀取電壓采樣值,通過FFT運算獲取有效值,并且由TFT實時顯示波形值及電壓值。當測量的電壓值大于報警值時,會進行報警,符合的話進行下一次采樣。
本設計PA4作為模擬量輸入采集端口,采樣的過程是先對電壓采集10次后,得到10次的電壓總和,求平均值(value=value/10),求出的平均值進行量綱轉換(ad_v=value*3.3/4095)得到ad_v。
在進行數據流操作時,要想把CPU程序的花費時間少一點,那就用DMA來讀取。DMA的作用就是保證了I/O口和內存以及內存與內存彼此數據間的傳輸能夠高速地進行。DMA是一種直接存儲設備。它在數據傳輸的過程中也不需要CPU有任何的指示,數據能夠在DMA上很快的移動。這樣的話就可以解放CPU來干別的工作。通過初始化DMA和ADC相關寄存器,使得ADC采樣結束之后,DMA自動讀取轉換結果,并將其存放到事先指定的區。
流程圖在描述ADC的時候可以看出,采集數據,采用多通道AD采樣的DMA傳輸,首先需要配置ADC功能引腳,然后配置多通道ADC功能,接著配置DMA通道,使能ADC轉換結果從外設到內設,開始啟動ADC轉換功能,對各通道的連續采樣結果取平均值,最后轉換采樣結果。
ADC的工作參數具體如下:打開ADC外設時鐘;使用ADC1,所有模式配置為獨立模式;多通道采集,開啟掃描模式;需要不斷的采集外部的模擬數據,所有使能連續轉換模式;不使用外部觸發轉換信號;轉換結果右對齊;設置需要轉換的通道的個數,最后調用ADC_Init()函數把這些參數寫入ADC的寄存器完成配置。
因為STM32F103RCT6中自帶的內部存儲器,程序一旦被燒錄進去,就不能更改。但是在采集過程中,需要在線修改一些參數值。外部存儲模塊可以設定修改一些變量值,并且也用來存儲電壓報警值等。將STM32F103RCT6的PB6管腳連接至存儲芯片的SCL管腳,PB7連接至SDA管腳,分別為IIC的時鐘輸入輸出和數據輸入輸出。
本設計應用的是AT24C02芯片進行存儲。主要儲存PID參數、電壓設定值和報警值等數據。AT24C02是本實驗板中的EEPROM芯片的SCL及SDA引腳連接到了STM32對應的I2C引腳中,結合上拉電阻,構成了I2C通訊總線,它們通過IIC總線交互。IIC總線是遵從IIC總線協議的一個雙向半雙工通訊接口,在STM32內部已經集成好,通過對內部寄存器的配置,可以直接使用IIC進行通信,由管腳自動產生時鐘信號、開始信號、結束信號,并處理應答信號。在IIC總線上可掛載多個從機,通過尋址找到各個從機的“位置”。由時鐘線SCL和數據線SDA組成。SDA通信協議中有三個不可缺少的信號分別是開始信號、答應信號、結束信號。開始信號:SCL為1,SDA由1變0被定為開始信號,標志開始傳輸數據。答應信號:在8位數據傳輸完后,SDA上的一個低電平,被視為答應信號。結束信號:SCL由0變1被視為結束信號,表示此次傳輸完成。EEPROM芯片是7位設備地址,其中高4位是固定的分別為1010b,低3位則由A0/A1/A2信號線的電平決定,R/W是讀寫方向位,與地址無關。
數據存儲和讀取子程序主要是IIC總線對AT24C02的讀取和寫入數據。本次存儲的是一些系統的參數,因此在存儲前需要將十進制的數字轉化為ASCII碼,然后通過IIC總線寫字節函數向AT24C02寫入數據,寫入數據完成時清零數據緩沖區,防止出錯。根據設計要求在下一次顯示中需要顯示之前存儲的參數,因此通過IIC讀取函數讀出存儲的參數值,比較讀取值與輸入值是否相同,相同則顯示該數據,若不相同則在LCD上顯示F提示錯誤。
STM32常用的測頻方法有利用外部中斷測頻、PWM輸入測頻、輸入捕獲測頻、外部時鐘計數器。外部中斷測頻是當外部中斷到來時啟動定時器為1秒的定時器,并記錄1秒鐘來了幾個脈沖,則可得到頻率。外部中斷測頻編寫容易,通用性強,缺點是中斷進入頻繁,誤差大。在低頻可達到非常高的測頻精度,尤其在10 Hz時可達到0.01%的精度。
本設計中的同步測頻單元,有兩種設計方法,一種是硬件設計;另一種是軟件設計。參考大量文獻之后,發現硬件設計外圍電路雖然簡單,但是不好實現,不方便計數,浪費時間和物力。相較之下,軟件設計更快捷一點,利用 ARM 捕獲功能和定時器里的計時功能獲得發電機的頻率。本次設計一個周期內打64個點,測得的采樣頻率應該是50*64=3 200 Hz。
本設計選用MCUDEV_TFT 1.44彩屏,通過按鍵控制來顯示三相電壓值,設置的電壓報警值,PID參數值以及實時采集電壓的正弦波形。此款彩屏可以根據中文字庫顯示多種字符,有很快的寫入速度,能滿足本系統對實時性的要求。
執行主函數時不斷的掃描鍵盤,如果有鍵按下,程序就轉去執行判斷鍵值并執行相應的程序。按鍵輸入程序是讀取外部按鍵的信號輸入,然后判斷信號是否消失,如果信號消失則證明按鍵松開,根據鍵值執行相應的功能;若信號沒有消失則繼續等待。
在本設計中,只要四個按鍵就可以滿足實驗要求,MENU按鍵的功能就是切換LCD屏幕,PLUS的功能是用來設定電壓、報警、PID值,SHIFT就是對光標進行左右移動,UPDOWN的功能是移位。這四個按鍵分別通過PA8,PA9,PA10,PA13與STM32控制器相連接。數值增加鍵在每一次操作完成后都會將對應的參數儲存到24c02中,MENU將使程序跳出設置執行其他部分。
當交流采集單元收集的三相電壓值大于規定的報警電壓值時,產生一個電平信號并輸出到報警模塊,蜂鳴器將會發聲,LED燈發光表示超出上限值。本設計的PA1和PA2是一個聲光報警接口,兩個接口分別接蜂鳴器和LED燈。
本次設計對于系統的搭建,選擇了先規劃整體系統布局后模塊焊接的設計模式。首先是對STM32F103RCT6單片機最小系統的設計,讓單片機可以正常工作;然后是搭建電源電路,經過電源電路把220V電壓轉換成需要的電壓;接著設計交流采集模塊,最后搭建聲光報警、按鍵電路、外部儲存電路以及顯示模塊。
電源電路因為要先通過一個220/12 V的帶中間觸頭的變壓器,將電壓變為12 V,所以就用萬用表先測試了變壓器三端的電壓,并用示波器觀察了它的波形、幅值、周期等。用示波器測得的變壓器兩端的測試情況,測得電壓幅值是正負36 V,周期為24.80 ms,所以計算得到它的有效值大約為25.46 V,在24 V左右,在電壓范圍之內;然后依次測試了其他兩端的示波器顯示結果,波形和這個圖差不多,測得電壓幅值是正負17 V,周期為25.00 ms,所以計算得到它的有效值大約為12.02 V,在12 V左右,在電壓范圍內。
交流電壓采集模塊,通過傳感器獲得交流電壓模擬量,然后通過一系列轉化,傳入到STM32F103RCT6單片機的ADC接口中,進行AD轉換,把模擬量轉變成數字量。
按鍵顯示模塊設計有4個按鍵,都是低電平觸發,MENU按鍵的功能就是切換LCD屏幕,PLUS的功能是用來設定電壓、報警、PID值,SHIFT就是對光標進行左右移動,UPDOWN的功能是移位。系統通入電源后,顯示出測得的三相電壓值。如圖8所示。單片機自帶的TFT顯示屏通過操作按鍵可以顯示出三個界面。第一個界面是實時采集的三相相電壓值、電壓設定值、頻率,第二個界面是實時采集的交流電壓正弦曲線,第三個界面是電壓設定值、報警值。這個模塊實現對采集到的數據進行模數轉換,等到采集到之后,需要分別進行量化處理才能輸出給上位機。

圖8 顯示調試
同步發電機勵磁控制系統主要由交流采集和移相觸發脈沖兩部分構成,所以一個良好的交流采集系統對同步發電機勵磁控制系統的運行有著很重要的意義和作用。本文介紹的交流交流采集系統使用ARM芯片STM32,該芯片內部功能模塊豐富可以對數據進行高速采集和處理并且直接實現AD轉換。簡化了硬件設計,節約了投資。利用 ARM 捕獲功能和定時器里的計時功能獲得發電機的頻率提高了精確度。實現了對采集的交流信號進行FFT處理,計算更精準的數據及諧波分析。這種基于STM32的交流電壓采集系統有很高的應用價值和廣闊的市場前景。本次交流采集系統還可以把它往智能化方向發展,比如可以實現人機界面交互式,人們可以通過電腦遠程控制同步發電機進行交流采集,這樣不僅可以節省資源,也可以使交流采集系統的硬件電路設計更簡單,更可靠,更安全。