車兵輝,尹欣繁,彭先敏,章貴川
(中國空氣動力研究與發展中心,四川 綿陽 621000)
天平是用于風洞試驗中的具有多分量的力傳感器,在使用之前必須對其進行校準和標定,獲取其計算公式。天平的靜校是在實驗室內模擬天平使用時的受力狀態,通過在各分量上單獨加載或組合加載不同的載荷,獲取天平的對應輸出電壓值,然后通過插值擬合、解方程等方法獲取輸入和輸出量之間的對應函數。目前普遍采用線性插值擬合的方法獲取天平公式[1],然而多分量天平各分量之間存在干擾,在擬合公式是要考慮干擾項,通常二次干擾和組合干擾會出現非線性特性,采用線性擬合方法會產生較大誤差。
神經網絡具有很強的非線性映射和泛化功能,能夠較好地描述非線性系統和不確定系統。目前神經網絡在多領域獲得了極其廣泛的應用,尤其是BP網絡,即反向傳播網絡,使用最為廣泛。BP網絡是利用非線性可微分函數進行權值訓練的多層網絡,在函數逼近、多維插值、模式識別等領域得到廣泛應用[2]。在系統辨識、傳感器非線性修正、傳感器校準等方面也有廣泛應用。多分量天平是一個典型的多變量傳感器,輸入輸出關系是一個典型的多輸入多輸出系統,因此本文針對多分量天平的特點,采用BP神經網絡算法對多分量天平公式擬合方法進行研究,通過算例驗證此方法的應用效果。
BP網絡(Back-Propagation Network)又稱反向傳播神經網絡,是一種多層的前饋神經網絡,他是一種具有3層或3層以上的神經網絡,由輸入層、中間層、輸出層組成,中間層可以是1個也可以是多個,典型的3層網絡結構如圖1所示,信號從輸入層進入順序經過中間層節點處理,最后傳到輸出節點,同一層內節點互不相連,且每一層節點都與相鄰層所有節點相連,因此每一層節點只對下一層節點產生影響[3-6]。其主要的特點是:信號是前向傳播的,而誤差是反向傳播的。

圖1 典型的3層網絡結構
BP網絡采用的傳遞函數是非線性變換函數——Sigmoid函數(又稱S函數),即:
(1)
式中,xi為神經網絡中第i個輸入,wij為前一層節點i至該層節點j之間的權值,輸出層傳遞函數為線性傳遞函數。
由于BP網絡采用誤差梯度最快下降法,在計算誤差梯度時需要對傳遞函數求偏導,S函數本身及其導數都是連續的,因而在處理上十分方便。
BP網絡學習算法的基本原理是梯度最速下降法,他的主要思想是調整網絡連接權值,使網絡總誤差最小,也就是采用梯度搜索原理,尋找合適的連接權值,使網絡的實際輸出值與期望輸出至誤差均方差最小。網絡的學習過程是一種誤差不斷向后傳播不斷修正權系數的過程。這種學習過程以一種訓練過程,是網絡各神經元連接方式、連接權值和閾值的調整尋優過程,更是參數辨識過程。學習的方法是使誤差達到設定值,從而獲得輸入輸出數據之間的關系。
BP網絡所有的連接權值和閾值都可以通過學習調節。多層網絡學習過程包含正向和反向傳播兩個階段,第一階段是信號的前向傳播,輸入信息從輸入層經過中間層逐層處理,并傳到輸出層,每層神經元的輸出只影響下一層神經元的狀態。如果輸出層不能得到期望輸出,則進入第二階段反向傳播,誤差信號從輸出層到中間層,最后到輸入層,依次調節中間層到輸出層的權重和閾值,輸入層到中間層的權重和閾值。重復以上兩個階段,直到系統整體誤差最小。
根據以上分析,多層BP網絡學習的具體過程和步驟如下:
1)初始化參數,給權值和閥值賦予(0,1)區間的隨機數。
2)選取一組輸入和目標樣本。
3)用輸入樣本、權值、閥值逐層計算輸出值,并與期望目標比較,當誤差滿足時結束,否則進行下一步。
4)根據誤差修正權值和閥值,公式如下:
(2)
其中:v為中間層至輸出層連接權值,w為輸入層至中間層的連接權值,γ和θ分別是輸出層閥值和中間層閥值,d為輸出層各節點誤差,b為中間層節點輸出,e為中間層各節點誤差,x為輸入層節點輸入,λ和β為學習參數,取之范圍為(0,1)區間。
5)返回步驟2)重復,直到所有樣本學習完為止。
網絡訓練完成后可以獲得v,w,γ,θ參數的值,則網絡可表示為:
(3)
式中,N為中間層節點數,Fi(i=1,…,6)為輸出信號,g為輸出層節點傳遞函數,f為中間層節點傳遞函數,Sm(m=1,…,6)為輸入信號。根據上式即可計算出給定輸入值對應的輸出值。
天平的靜校是在實驗室內模擬天平使用時的受力狀態,對天平施加靜態載荷,通過靜校求出天平使用公式、精度和準度[7]。
天平加載得到一組施加載荷和相應的電壓值輸出,設Fi(i=1,…,6表示6個分量)為加載的載荷,Si(i=1,…,6表示6個分量)為輸出電壓值,則天平公式可表示為:
(4)
式中,ai,bi,…,fi(i=1…27)分別為Fi(i=1…6)分量的27個校準參數。以上關系建立在參數ai,bi,…,fi(i=1…27)為線性條件下,加載載荷Fi和電壓輸出值Si(i=1…6)為已知量,參數ai,bi,…,fi通過曲線擬合獲得[8-9]。
將上式簡寫為:
[F]=[K][S]
(5)
則系數矩陣[K]可表示為:
[K]=[[S]T[S]]-1[S]T[F]
(6)
根據上式可計算出天平公式中的系數矩陣,從而獲得天平計算公式。
以上分析是建立在系數矩陣為線性的,如果系數矩陣具有非線性特性,通過上述方法擬合出的計算公式會有較大的誤差。
天平校準是根據加載已知載荷作為天平系統的輸入,獲得的各分量應變計輸出電壓為輸出。天平系統模型是載荷到電壓值之間的映射關系,然而在使用時天平所加載的載荷是未知數,可獲取的是各分量應變計電壓值,需要根據電壓值求取載荷值,因此需要獲取電壓值到載荷值之間的映射關系,是天平系統模型的反函數,天平公式的擬合就是求取天平系統模型的反函數,圖2給出了天平公式擬合原理。

圖2 天平公式擬合原理
根據BP神經網絡具有極強的輸入-輸出非線性映射能力的特點,以天平校準獲得的各分量應變計輸出電壓值數據集Si(i=1…6)為輸入樣本,對應的加載載荷Fi(i=1…6)為輸出樣本,對神經網絡進行訓練,逐層計算輸出,并與目標值比較,獲取誤差e,根據誤差修正各層權重矩陣,使得擬合誤差滿足要求,完成訓練過程,得到各層的連接權重矩陣。在使用時,根據獲得的天平各分量的電壓值,采用式(3)即可計算出對應的載荷值。
BP神經網絡中間層節點數可自由設定,研究表明一個三層網絡可實現以任意精度近似任何連續函數。因此采用BP神經網絡作為天平公式模型是可行的。神經網絡訓練時加載輸入端的數據太大,會使參數收斂速度慢。此外,由于在神經網絡中采用S型函數,輸出范圍為[0,1],因此在神經網絡訓練前對數據進行變換,使其在區間[0,1],變換公式如下:
(7)
式中,xi為輸入或輸出數據,xmin為數據樣本中的最小值,xmax為數據樣本中的最大值。
建立神經網絡天平公式模型的步驟如下:
1)獲取天平校準原始數據。表1給出了天平校準時的部分加載載荷數據(各分量的最大、最小值和零載荷),每個分量的加載載荷在量程范圍內等間隔選取,六各分量共計81個樣本,表2給出了對應的天平輸出電壓值。

表1 部分典型加載載荷 kg、kg·m
2)由式(7)將原始數據進行歸一化,得到訓練神經網絡的輸入輸出樣本。
3)確定神經網絡輸入輸出端數量、各層節點輸、λ和β的值。網絡輸入端數量與輸入層節點數量相同,輸出端數量與輸出層節點數相同,均等于天平的份量個數(一般為6)。中間層節點數根據擬合精度確定,精度要求高時,取較大值,反之亦然。中間層數量、λ和β的值的確定需要結合精度要求、訓練效果等確定。根據所確定的輸入輸出數量建立的網絡結構如圖1所示。
4)將訓練樣本輸入構建好的網絡進行訓練,直到達到要求的精度為止,保存獲得的連接權重和閾值。
5)將獲得的連接權重和閾值帶入式(3)即可獲得天平載荷計算公式。
采用c語言實現BP神經網絡的訓練,將訓練樣本讀入程序,實現自動學習,并保存訓練后的結果。
根據第1節中描述的BP神經網絡訓練步驟編寫程序,圖3給出了軟件實現的流程圖。
首先建立網絡數據結構并初始化變量,網絡數據結構如下:
typedef struct BPNet{
int LayerNum;//中間層數量
double **v;//中間層權矩陣
double **w;//輸出層權矩陣
double StudyRate;//學習率
double *bi;//中間層閥值
double *bo;//輸出層閥值
double Accuracy;//精度控制參數
int MaxLoop;//最大循環次數
}BPNet;

表2 對應的天平輸出電壓值(單位:10 μV)

圖3 軟件實現的流程圖
變量主要有中間層權重矩陣V和閾值bi、輸出層權重矩陣W和閾值bo,其中V為m×n的二維數組,W為n×r的二維數組,bi為n個元素的一維數組,bo為r個元素一維數組,m為輸入層個數,n為中間層個數,r為輸出層個數。將這些變量初始化為(0,1)范圍內的隨機數。
訓練過程實現如下:
讀取樣本并根據式(7)歸一化樣本數據,初始化學習率StudyRate、精度Accuracy等參數;
E=0;//初始化誤差
While E>Accuracy do
{
For i=1 to SamplesNumber
{
For k=1 to n//計算中間層輸出
{
}
For t=1 to r//計算輸出層輸出
{
}
計算輸出誤差e;
按照式(2)修正權重矩陣和閥值;
}
E=E+e;
}
保存得到的權值矩陣和閥值向量;
訓練結束。
采用某天平的校準數據,共81個樣本。選用以下參數對網絡進行訓練:輸入層節點數6,分別為天平6個分量(3個力和3個力矩)的電壓值,中間層節點數為10,輸出層節點數6,分別為天平6個分量的載荷,學習率λ和β取0.001,目標精度0.001。將樣本歸一化后輸入網絡,神經網絡學習16 700次達到精度要求,圖4給出了訓練收斂特性。

圖4 訓練收斂特性
從圖中可以看出訓練過程能夠很好地收斂,訓練次數越多精度越高,增加訓練次數可近一步提高訓練精度。中間層的節點數關系到網絡的訓練性能,圖中也給出了中間層節點數為15、20、30時的收斂特性,節點數增加時收斂速度會加快,當節點數為30時過程中出現波動,收斂速度的沒有明顯變化,因此節點數的選擇不是越大越好,對于輸入向量數較少的網絡中間層數量不宜選擇過大,需根據訓練結果綜合考慮。
為了檢驗神經網絡的訓練效果,選取訓練樣本中的一部分作為檢驗樣本,將輸入值進行歸一化后,根據式(3)計算電壓值對應的載荷值,通過網絡計算出的載荷值為歸一化后的數據,要獲取實際載荷值,需要采用訓練時的歸一化參數進行反歸一化,反歸一化公式如下:
(8)

圖5 兩種方法計算的誤差

本文通過對天平校準數據的處理和公式擬合方法進行了研究,提出了BP神經網絡的擬合方法,建立了基于神經網絡的天平輸入輸出模型,通過校準數據對模型進行訓練。這種方法充分利用了神經網路的非線性特性、學習能力,通過樣本訓練逼近系統的輸入輸出特性,有效地克服了系統的非線性誤差。結果表明,采用神經網絡模型的天平公式擬合和采用多項式擬合方法相比,天平公式的計算精度平均提高了67%,取得了很好的效果。該方法為天平或其他多變量傳感器的校準提供了新的思路。