徐 晨,廖 平
(中南大學(xué) 高性能復(fù)雜制造國家重點實驗室,長沙 410083)
工業(yè)中常需要對多點溫度進(jìn)行高精度測量,設(shè)計研制低成本、寬范圍、高精度的多通道測溫系統(tǒng)具有著重要意義[1]。
熱電偶作為工業(yè)中應(yīng)用最為廣泛的熱電偶具有著成本低、測溫范圍廣的特點[2],但為了獲得更高的測量精度在應(yīng)用中常需要進(jìn)行非線性校正。傳統(tǒng)的硬件補償法、查表法和多項式擬合法很難滿足寬范圍高精度的測量需求[3]。近年來有學(xué)者將神經(jīng)網(wǎng)絡(luò)引入了溫度測量補償與校正中,如BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò),取得了一定效果[3~5]。
本文提出了基于AFSA-RBF網(wǎng)絡(luò)校正的多通道熱電偶溫度檢測系統(tǒng)。硬件系統(tǒng)主控芯片采用STM32F103ZET6,利用AD7124型ADC模塊實現(xiàn)對8路經(jīng)前置濾波處理的熱電偶差分信號進(jìn)行高精度的AD轉(zhuǎn)化。將AD轉(zhuǎn)換后的熱點偶信號和由ADT7320采集的冷端溫度信號通過SPI協(xié)議傳回主控芯片,對數(shù)據(jù)編幀后通過串口傳入上位機(jī),作為經(jīng)人工魚群算法(AFSA)優(yōu)化隱層權(quán)值的RBF神經(jīng)網(wǎng)絡(luò)的兩個輸入節(jié)點,最終獲得的實際的測量溫度。實驗結(jié)果表明,相比與BP和RBF神經(jīng)網(wǎng)絡(luò),AFSARBF網(wǎng)絡(luò)具有更快的訓(xùn)練速度和更強的泛化能力,系統(tǒng)的測量結(jié)果具有較高的精度和較好的可靠性。
系統(tǒng)的硬件總體方案如圖1所示,由溫度采集模塊、冷端補償模塊、通訊模塊、中央控制單元等模塊組成。系統(tǒng)可以實現(xiàn)對8路熱電偶信號的同時采集,信號經(jīng)前置RFI濾波初步去除共模和差模噪聲,然后在ADC模塊中進(jìn)行進(jìn)一步放大濾波以及AD轉(zhuǎn)換。主控芯片對獲得的數(shù)字信號進(jìn)行初步的處理后,將數(shù)據(jù)編幀,然后以串口通訊的方式將原始數(shù)據(jù)傳給上位機(jī),在上位機(jī)中進(jìn)行校正處理。
圖1 硬件系統(tǒng)整體方案圖
溫度采集模主要由熱電偶溫度傳感器和前置濾波電路構(gòu)成。
本文選用K型熱電偶傳感器,測溫范圍為-200℃~1300℃,采用鎳鉻和鎳鋁合金作為熱電偶的金屬絲線材,Nextel陶瓷纖維作為絕緣層。根據(jù)塞貝克效應(yīng),兩種不同電導(dǎo)體或半導(dǎo)體的溫度差異會引起兩種物質(zhì)間的熱電勢。熱電偶正是基于此原理將工作測量節(jié)點與參考節(jié)點的溫度差轉(zhuǎn)化為電勢的方法進(jìn)行測溫[6]。
如圖2所示,根據(jù)塞貝克效應(yīng),回路中的熱電勢為:
圖2 熱電偶測溫原理示意圖
式(1)中,tMJ為工作節(jié)點的溫度,T0為冷端節(jié)點的溫度;A、B為兩種不同的導(dǎo)體,k為玻爾茲曼常數(shù),e為單位電荷,NA、NB分別為兩種導(dǎo)體的自由電子密度[3]。
對熱電偶采集到的熱電勢信號采用一階低頻濾波電路進(jìn)行前置RFI濾波。采用圖3所示的濾波電路可以同時對低頻差分噪聲和共模噪聲進(jìn)行不同程度的濾波。
圖3 前置濾波電路原理圖
如圖3所示,由R1、C1和R2、C2實現(xiàn)對共模噪聲的濾波,令Ccm=C1=C2,R=R1=R2,共模截止頻率可表示為:
對于差模信號,截止頻率為:
對經(jīng)前置濾波處理的熱電勢信號,系統(tǒng)采用AD7124-8型ADC模塊進(jìn)一步放大濾波以及AD轉(zhuǎn)換。該模塊是一種支持8路差分輸入,最高精度為24位的Σ-Δ型ADC模塊。芯片結(jié)構(gòu)示意圖如圖4所示。
圖4 AD7124芯片內(nèi)部結(jié)構(gòu)圖
相比于SAR型AD轉(zhuǎn)換器,Σ-Δ型ADC是一種過采樣型ADC,它是以微分-積分的方式調(diào)整脈沖寬度,以脈沖平均值代替量化,通過極低的周期延時去實現(xiàn)更加精確的確定性采樣,對于頻率較低但是要求更高分辨率和準(zhǔn)確度的溫度信號來說,使用Σ-Δ型ADC可實現(xiàn)更高精度的信號采樣[3]。同時芯片內(nèi)置最高128倍PGA,可對微弱的熱電勢信號進(jìn)行二級放大處理。
模塊接線圖如圖5所示,AIN0至AIN15分別為經(jīng)前置濾波處理后8路熱電偶的正負(fù)端子。由電源模塊提供的高精度2.5V電壓作為外部基準(zhǔn)電壓,模塊采用SPI通信,分別將spi的四線信號以及片選信號,同步輸入信號連接到STM32主控芯片。
圖5 AD轉(zhuǎn)換模塊電路原理圖
模塊具有sinc3與sinc4等多種濾波器可選,圖6給出了為sinc3與sinc4濾波器在不同輸出速率下的均方根噪聲,圖7、圖8給出了兩種濾波器的頻率響應(yīng)。
圖6 均方根噪聲與輸出數(shù)據(jù)速率關(guān)系圖
圖7 sinc3濾波器響應(yīng)
圖8 sinc4濾波器響應(yīng)
由圖可知,在較高輸出速率下sin4的噪聲表現(xiàn)明顯優(yōu)于sinc3。且sinc4濾波器具有更優(yōu)的50Hz/60Hz抑制能力,因此可有效減少因電源紋波對測量造成的影響。因此選擇sinc4濾波器以獲得更優(yōu)測量表現(xiàn)[3]。
在sinc4濾波器零延遲模式下,當(dāng)模擬輸入在單個通道上連續(xù)采樣時輸出數(shù)據(jù)速率為:
其中fCLK為主頻頻率,F(xiàn)S[10:0]是濾波器寄存器中FX[10:0]位的十進(jìn)制等效值。
通道的建立時間為:
其中Td e a d為死區(qū)時間,F(xiàn) S[1 0:0]=1 時為6 0,F(xiàn)X[10:0]>1時為90。
模擬輸入電壓AIN經(jīng)AD轉(zhuǎn)換后的輸出碼表示為:
其中N在單極性測量狀態(tài)下取0,雙極性狀態(tài)下取1;Gain為PGA的增益放大倍數(shù),VREF為參考電壓。
由于熱電偶是一種差分器件而不是絕對式溫度測量器件,還需要采用另一種溫度傳感器測量冷端溫度,本文選用了adt7320集成式溫度傳感器芯片對熱電偶測得的溫度進(jìn)行冷端補償。
該芯片內(nèi)置帶隙溫度基準(zhǔn)源、溫度傳感器和1 6位ADC,用來測量溫度并進(jìn)行數(shù)字轉(zhuǎn)換,分辨率為0.0078℃。在PCB設(shè)計時,盡可能將該芯片靠近熱電偶的參考節(jié)點,同時遠(yuǎn)離發(fā)熱元件,以盡可能避免與冷端間的溫度梯度對測量結(jié)果造成影響。模塊采用SPI方式進(jìn)行通信,在片選信號為低時,通信信號有效。接線方式如圖9所示。
圖9 冷端補償模塊電路原理圖
RBF神經(jīng)網(wǎng)絡(luò)全稱為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò),是一種三層的前向反饋神經(jīng)網(wǎng)絡(luò),徑向基函數(shù)是指函數(shù)計算結(jié)果僅與新點和隱層節(jié)點距離有關(guān)的一類實值函數(shù)[7]。本文中徑向基函數(shù)選用Gaussian函數(shù),兩點間距離選擇歐式距離方法計算。其層次結(jié)構(gòu)如圖10所示。
圖10 RBF網(wǎng)絡(luò)結(jié)構(gòu)示意圖
輸入層的兩個節(jié)點分別為熱電偶采集獲得的熱電勢和冷端補償模塊所采集的溫度信號。輸出層的輸出信號為熱電偶工作端的實際溫度T。隱層由徑向基函數(shù)構(gòu)成,每個隱層節(jié)點相關(guān)的中心參數(shù)為c,寬度為σ隱層至輸入層連接權(quán)值為w。
Rbf網(wǎng)絡(luò)隱層的第i個節(jié)點的輸出為:
式(7)中:X為輸入的二維測量數(shù)據(jù)向量,ci式第一個隱節(jié)點的中心,i=1,2,3…M,構(gòu)造和訓(xùn)練RBF神經(jīng)網(wǎng)絡(luò)就是要使它通過學(xué)習(xí),確定出每個隱層神經(jīng)元基函數(shù)中心ci和寬度σi,以及隱層到輸出層的權(quán)值wi。
網(wǎng)絡(luò)輸出層第i個節(jié)點的輸出為隱節(jié)點的輸出的線性組合:
式(8)中:wif為qi與yf的連接權(quán)值。
本文將RBF學(xué)習(xí)算法分為兩個階段,首先使用k均值聚類的方法確定中心節(jié)點ci和寬度σi。然后應(yīng)用AFSA算法訓(xùn)練由隱層至輸出層之間的權(quán)值
人工魚群算法(AFSA)是一種通過模擬魚群活動行為的新型尋優(yōu)算法。本文通過將每組隱層與輸出層間的向量作為一只人工魚,將網(wǎng)絡(luò)輸出的誤差作為衡量人空余優(yōu)劣的標(biāo)準(zhǔn)的FC值,通過反復(fù)迭代獲得最優(yōu)的隱層權(quán)值組。每只人工魚在迭代過程中的行為包括覓食、聚群、追尾[8]。
聚群行為:人工魚當(dāng)前狀態(tài)為Xi,設(shè)其可見區(qū)域內(nèi)的同伴個數(shù)為nf,形成集合K:
若K非空集,則按下式計算中心位置Xc:
如果FCc>FCi且有nf/n<δ,(0<δ<1)則表明周圍魚群中心有較多食物并且不太擁擠,人工魚向中心位置Xc前進(jìn)一步。
追尾行為:尋找其可見區(qū)域內(nèi)的狀態(tài)最優(yōu)的的鄰居Xmax,如果滿足FCmax>FCi且有nf/n<δ,(0<δ<1)則表明周圍最優(yōu)魚Xmax附近有較多食物并且不太擁擠,人工魚向其位置前進(jìn)一步。
對比兩種行為的適應(yīng)度,選擇較優(yōu)的最魚群位置進(jìn)行調(diào)整,若兩種行為均不滿足條件,則進(jìn)行覓食行為。
覓食行為:設(shè)當(dāng)前位置為p,在其視野范圍內(nèi)隨機(jī)選擇一個狀態(tài)q,如果FCp>FCq,則向該方向前進(jìn)一步;反之,再重新隨機(jī)選擇狀態(tài)p,判斷是否滿足前進(jìn)條件[9]。
使用AFSA對RBF網(wǎng)絡(luò)進(jìn)行優(yōu)化訓(xùn)練的流程如圖11所示,大致可以分為6個步驟。
圖11 AFSA-RBF訓(xùn)練迭代流程圖
1)首先使用K-Means聚類算法對RBF網(wǎng)絡(luò)輸入的所有樣本進(jìn)行聚類分析。設(shè)所輸入樣本集合為S={x1,x2,…,xK},選擇初始的M個類別中心c1,c2,…,cM。對于每個樣本的xj,將其標(biāo)記為距離類別中心ci最近的類別,即:
然后將每個類別中心更新為屬于該類別的所有樣本的平均值。不斷重復(fù)以上步驟直到類別中心的變化率小于給定閾值,在相應(yīng)的計算出每個中心所對應(yīng)的寬度σi。
2)然后設(shè)定人工魚群算法中的各參數(shù),包括魚群的群體總數(shù)N,最大嘗試次Trynumber,人工魚的最大移動步長Step,人工魚的感知范圍Vsual,擁擠因子δ。同時在-1到1的范圍內(nèi)隨機(jī)生成初始的隱層連接權(quán)值wij,將其作為初始魚群。
3)將當(dāng)前RBF網(wǎng)絡(luò)的輸出誤差E的倒數(shù)作為人工魚群個體的適應(yīng)度函數(shù),即FC=1/E,選取最優(yōu)的人工魚群狀態(tài),并將其賦給公告板。
4)采用試探法分別模擬執(zhí)行聚群、追尾行為,評價適應(yīng)度函數(shù)最優(yōu)的行為執(zhí)行,缺省的行為為覓食行為。
5)將人工魚位置調(diào)整后的適應(yīng)度FCnew與公告板的FCbulletin比較,如果FCnew>FCbulletin,則將新的適應(yīng)度賦給公告板。
6)判斷迭代是否滿足終止條件,即連續(xù)多次所得值的方差均小于允許方差或已規(guī)定的最大迭代數(shù),如果滿足則輸出FCbulletin,否則回到步驟3)繼續(xù)執(zhí)行。
為了使用AFSA-RBF神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行校正,需要有足夠數(shù)量的輸入信號與標(biāo)準(zhǔn)被測溫度的數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。本實驗將Fluck公司的標(biāo)準(zhǔn)鉑電阻溫度計通過專用夾具將待校準(zhǔn)的熱電偶固定至加熱實驗箱中,保證兩者距離盡可能小,將標(biāo)準(zhǔn)鉑電阻所測溫度作為網(wǎng)絡(luò)輸出值,本系統(tǒng)所采集的熱電勢和冷端溫度作為輸入值,在熱端溫度在0~1300度之間,每20度設(shè)定一個測溫點,冷端溫度在0~50度之間每5度設(shè)定一個測溫點,獲得系統(tǒng)的訓(xùn)練數(shù)據(jù)。再采用相同方法以熱端溫度50度為間隔,冷端5度為間隔獲得測試集數(shù)據(jù)。
設(shè)定目標(biāo)精度為0.0001,最大迭代次數(shù)為500代,分別對AFSA-RBF網(wǎng)絡(luò)、BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
圖12~圖14給出了三種方法的迭代誤差曲線,可以看出BP迭代了260代才達(dá)到目標(biāo)指定精度,RBF迭代16次時完成了迭代過程,而本文基于AFSA優(yōu)化的RBF網(wǎng)絡(luò)具有著更快的誤差下降速度,在16次時就達(dá)到了目標(biāo)精度。
圖12 AFSA-RBF網(wǎng)絡(luò)迭代誤差圖
圖13 BP網(wǎng)絡(luò)迭代誤差圖
圖14 RBF網(wǎng)絡(luò)迭代誤差圖
將測試集數(shù)據(jù)輸入訓(xùn)練好的網(wǎng)絡(luò),與標(biāo)準(zhǔn)鉑電阻測量結(jié)果對比,獲得測量誤差結(jié)果如圖15~圖17所示。
圖15 AFSA-RBF網(wǎng)絡(luò)測試誤差結(jié)果
圖16 BP網(wǎng)絡(luò)測試誤差結(jié)果
圖17 RBF網(wǎng)絡(luò)測試誤差結(jié)果
從圖中可以看出,三種校正方法在低溫區(qū)的測量誤差均相對較大,是由于K型熱電偶在300度以下的低溫區(qū)非線型較為嚴(yán)重,導(dǎo)致了相對較大的誤差。可以考慮在低溫區(qū)增加樣本數(shù)據(jù)點從而改善在低溫區(qū)的誤差表現(xiàn)。在高溫區(qū)邊界位置AFSA-RBF測量表現(xiàn)表現(xiàn)相對穩(wěn)定,而其他兩種方法則出現(xiàn)了不同程度的誤差極大值點,表明AFSA-RBF在邊界位置具有更優(yōu)越的逼近性能。冷端溫度與測量誤差沒有體現(xiàn)出明顯關(guān)系,表明系統(tǒng)的冷端補償效果較好,沒有引入額外的誤差。
整體來看,AFSA-RBF網(wǎng)絡(luò)具有較快的收斂速度,誤差表現(xiàn)明顯優(yōu)于BP和RBF神經(jīng)網(wǎng)絡(luò),整體測量誤差小于0.5度,非線性校正和冷端補償效果良好,同時表明了系統(tǒng)硬件部分采集數(shù)據(jù)的準(zhǔn)確可靠。
本文提出了一種基于STM32為核心、熱電偶為溫度傳感器的多通道溫度采集方法,并采用AFSA-RBF網(wǎng)絡(luò)進(jìn)行校正。經(jīng)實驗驗證,該系統(tǒng)可以有效校正熱電偶測量溫度存在的非線性誤差,使測量的溫度誤差小于0.5度,相比bp神經(jīng)網(wǎng)絡(luò)和rbf神經(jīng)網(wǎng)絡(luò)校正有更快的訓(xùn)練速度和更強的泛化能力。該測量方法可以推廣至其他類型熱電偶及熱電阻測溫時使用,可廣泛應(yīng)用于對測溫精度要求較高的工業(yè)測溫環(huán)境中。