BP網(wǎng)絡(luò )在蓄電池電壓監測單元中的應用
4.2 激活函數:
BP網(wǎng)絡(luò )中神經(jīng)元的激活函數是非線(xiàn)性的,且必須是連續可微和單調上升的有界函數。輸入/輸出關(guān)系也是為非線(xiàn)性,其值可連續變化。隱含層采用雙曲正切S型激活函數,輸出層采用線(xiàn)性激活函數。
隱含層神經(jīng)元數設為i (i=8) , 其中第i個(gè)神經(jīng)元的輸出為

4.3 BP網(wǎng)絡(luò )訓練:
BP網(wǎng)絡(luò ),輸入為某一溫度值,輸出是測量電壓值的基準值,將其和實(shí)際測量的蓄電池浮充電壓比較,若超出允許范圍則報警。
T代表溫度,V代表測量電壓值的基準值。
實(shí)際工作溫度是0oC至41oC,訓練時(shí)0至41的數據造成網(wǎng)絡(luò )訓練困難,所以改為-20至20,只要加上20就是實(shí)際溫度值。
將蓄電池制造廠(chǎng)提供的數據分為兩個(gè)集合,
訓練集(如圖3)是:
輸入矩陣T = -20: 2 : 20;
輸出矩陣V
V==[14.4,14.38,14.32,14.24,14.18,14.12,14.04,13.98,13.92,13.86,13.78,13.72,13.66,13.58,13.52,13.46,13.38,13.32,13.26,13.2,13.2];14.4,14.38,14.32,14.24,14.18,14.12,14.04,13.98,13.92,13.86,13.78,13.72,13.66,13.58,13.52,13.46,13.38,13.32,13.26,13.2,13.2];

用Matlab語(yǔ)言編寫(xiě)訓練程序,網(wǎng)絡(luò )訓練過(guò)程:
首先設定參數如下:
max_epoch = 30000;
err_goal = 0.002;
程序運行結果:
TRAINBP: 30000/30000 epochs, SSE = 0.00260954.
W1 =[-0.1094 -0.1207 -1.0054 -0.9631 1.5095 0.4468 1.7631 0.9540] T
B1 =[-1.2748 1.2489 0.4120 0.1571 -0.6891 0.9935 -1.5833 0.0657] T
W2 =[0.3228 0.2993 -0.0883 0.2113 1.0839 -0.0217 -0.7304 -0.2670]
B2 =13.8159
Unsuccessfully.網(wǎng)絡(luò )訓練不成功。
用得到的W1,B1,W2,B2再次訓練……直到
err_goal =0.0015 successfully
得到:
W1 =[-0.1094 -0.1207 -1.0054 -0.9631 1.5095 0.4468 1.7631 0.9540] T
B1 =[1.2748 1.2489 0.4120 0.1571 -0.6891 0.9935 -1.5833 0.0657] T
W2 =[0.3228 0.2993 -0.0883 0.2113 1.0839 -0.0217 -0.7304 -0.2670]
B2 =13.8159
評論