王國輝,張寶棟,李向榮
(陸軍裝甲兵學院 兵器與控制系, 北京 100072)
火炮身管的燒蝕磨損是危害身管服役年限的重要因素,身管的燒蝕磨損會帶來很多不利的影響,諸如炮口射彈初速下降、射擊距離縮短以及首發命中率和首群覆蓋率降低等,嚴重影響了火炮的作戰性能。在研究中發現,多數學者往往忽視軟件模型與硬件系統的融合,因此,基于BP神經網絡的火炮身管燒蝕磨損量監測系統的設計與研究,不僅在軟件模型上實現對身管燒蝕磨損量的精準預測,同時也實現了算法模型與單片機等硬件的緊密結合,有著便于設計、易于操作等優點,同時,該監測系統的設計與研究也為下一步對初速減退量的修正奠定了基礎。
由于受單片機性能局限,無法實現神經網絡模型復雜性的影響,不能直接在單片機上直接訓練和構造網絡模型。因此,本文根據采集到的身管全壽命周期內各彈種射彈數目與燒蝕磨損量之間的數據,在PC機上應用Matlab軟件環境下專門的BP神經網絡工具箱學習訓練得到火炮身管燒蝕磨損量預測模型。利用訓練得到好的神經網絡模型,采用C語言編程,嵌入到單片機系統中[1],實現了BP神經網絡算法與單片機的有效融合,大大提高了系統的自動化水平和模型預測精度,實現了身管燒蝕磨損量的自動預測功能,這對于火炮身管壽命健康監測和提高火炮射擊精度具有重要意義[2]。
圖1為自主設計的基于BP神經網絡的火炮身管燒蝕磨損量監測系統。根據已構建的BP神經網絡預測模型原理,是以不同彈種的射彈數目作為網絡的輸入層。因此,監測系統的首要功能是完成對彈種和射彈數目的區分計數功能,然后將彈種射彈數目送入到單片機中已構建好的神經網絡模型中,便可自動計算出當前時刻的身管燒蝕磨損量。該系統充分利用了單片機豐富的接口功能以及運算功能,實現了身管燒蝕磨損量的動態監測,磨損量由LCD顯示電路顯示,方便戰車乘員及時掌握身管的健康狀況。同時,與上位機進行通信,可進一步完成對身管燒蝕磨損量的再處理,為提高火炮射擊精度奠定了基礎[3]。

圖1 監測系統設計框圖
研究表明三層BP神經網絡能夠用相應的輸入向量和輸出向量逼近任何有理函數[4],故采用3層BP神經網絡模型結構,層與層之間為全互連方式,同一層單元之間不存在相互連接[5]。通過對采集到的身管全壽命周期內的3個不同彈種射彈數目和燒蝕磨損量之間的數據進行訓練,建立了預測模型,最終構建的BP神經網絡模型拓撲結構如圖2所示。網絡拓撲結構為3-6-1,即輸入層神經元個數為3個,分別為穿甲彈、破甲彈和榴彈的射彈數目,隱含層神經元個數為6個,輸出層神經元為1個,代表身管的燒蝕磨損量。該網絡模型經檢驗數據檢驗,預測精度的平均相對誤差為1.358%,符合設計要求,可以用作身管燒蝕磨損量的預測。

圖2 神經網絡模型拓撲結構示意圖
其中,X1、X2、X3是指坦克炮常用的3個彈種穿甲彈、破甲彈和榴彈的射彈數目。
確定BP神經網絡結構后,BP神經網絡訓練過程曲線如圖3所示。網絡經過53次訓練,收斂到要求精度0.000 1,此時,已獲得訓練成功的BP神經網絡,表明該BP網絡已具備預測能力。

圖3 網絡訓練過程曲線
在系統的總體設計中,首先要完成火炮不同彈種射彈數目的區分計數功能,在深入分析坦克炮射擊過程及火控系統工作原理的基礎上,采用火控計算機中的選彈信號和射擊電路中的射擊信號完成對彈種數目的分類和計數功能,即以彈種選擇信號作為第一個信號,用來區分射彈彈種。之后,檢測有無射擊信號產生,有射擊信號,則該彈種計數器的值加1,并將坦克炮當前時刻“穿、破、榴”3個彈種的射彈數目輸入到BP神經網絡模型中,根據網絡模型計算輸出當前時刻的身管燒蝕磨損量。
在測量實驗中發現,每發炮彈造成的身管燒蝕磨損量的變化很難測出,每發射一發炮彈就進行一次磨損量的計算意義不大。因此,根據身管燒蝕磨損量和總射彈數之間的數據變化曲線,系統設計每發射30發炮彈完成一次對身管燒蝕磨損量的計算,這樣既可以減少單片機的運行次數,還可以延長系統的工作壽命。系統中還加入了聲光報警模塊,當身管的燒蝕磨損量大于規定值時,會造成嚴重的安全事故,此時,系統啟動報警裝置,及時提醒戰車內乘員。圖4為系統工作流程框圖。

圖4 系統工作流程框圖
根據身管燒蝕磨損量監測系統的工作原理和性能的相關要求,詳細設計了系統中的各個功能模塊,硬件設計總體框圖如圖5。系統硬件主要包括控制核心STC89C52單片機、12864液晶顯示模塊、源蜂鳴器和LED小燈聲光報警模塊、鍵盤模塊(人工輸入不同彈種的射彈數目)、EEPROM存儲模塊以及MAX232芯片上位機通訊電路模塊。

圖5 系統總體框圖
單片機由電源、晶振驅動和復位模塊構成最小系統,是單片機系統必不可少的電路模塊,晶振提供給單片機固定的時鐘周期,復位模塊可以保證在系統運行出錯和進行死循環時完成重啟系統。硬件設計中其他子模塊主要包括以下5個。
1) 顯示模塊
顯示模塊是人機交互的重要組成,根據系統的設計要求,要在液晶屏上同時顯示各彈種的射彈數目及身管燒蝕磨損量,其內容包括漢字、數字及字符且輸出須為4行,而12864液晶屏可輸出4×16大小個字符,內置8192個中文漢字,可滿足系統性能要求,故采用12864液晶屏進行顯示。
2) 聲光報警電路
當嵌入單片機的BP神經網絡模型計算出的身管燒蝕磨損量大于某一設定閾值時(根據當前坦克炮身管燒蝕磨損的相關規定和使用經驗,當身管燒蝕磨損量大于3%時,即認為該身管報廢),監測系統自動觸發聲光報警系統,報警系統由蜂鳴器及發光二極管組成,采用PNP型三極管S8550和兩個電阻組成一個放大電路,對蜂鳴器進行驅動,當三極管發射集和基集之間的節電壓正偏時,導通S8550,蜂鳴器發出聲響,同時LED燈閃爍。
3) 鍵盤輸入電路
采用4×4矩陣鍵盤,共有16個按鍵,本系統中共用到15個按鍵,分別表示數字0~9和功能鍵取消、確定以及選擇彈種功能,采用矩陣按鍵這種設計,能夠實現只用8個I/O口來實現16個按鍵,節省了單片機的硬件資源。
4) 上位機通訊電路
根據BP網絡模型計算得到身管燒蝕磨損量之后,將燒蝕磨損量的有關數據送給上位機做下一步的分析和處理,就需要單片機與上位機之間進行通訊,但單片機的輸入、輸出電平是TTL電平,而PC機配置的是RS-232標準串行接口,兩者的電氣規范不一致。因此,必須對單片機輸出的TTL電平進行電平轉換才能實現信息傳輸,實現兩者電平轉換的傳輸紐帶就是MAX232芯片。
5) 存儲模塊
為了保證射彈數目以及BP神經網絡模型參數在下次開機上電后數據仍能保存在系統中,需要采用掉電后不丟失的存儲器件,本系統采用24C系列的24C02 EEPROM對數據進行存儲,其操作簡單,容量中等,擦寫次數在30萬次到100萬次不等,能夠滿足系統的設計要求[6]。
系統軟件設計主要由主控程序,鍵盤掃描程序、12864液晶顯示程序、I2C總線對24C02的存儲和讀寫程序、聲光報警程序以及上位機通訊6大模塊組成,其中包括4個初始化子程序,9個功能子程序組成。4個初始化子程序分別是:單片機I/O端口初始化子程序、單片機定時器初始化子程序、單片機串口初始化子程序和顯示模塊初始化子程序。9個功能子程序分別是:BP神經網絡計算子程序、報警子程序、鍵盤掃描子程序、延時子程序、12864液晶顯示子程序、中斷服務子程序、I2C總線操作子程序、EEPROM讀寫子程序和上位機通訊子程序。采用C語言編程,在Keil編譯器中編譯生成hex文件,通過串口將程序固化到單片機的EEPROM中[7],完成了對身管燒蝕磨損量監測系統的總體軟件設計,圖6所示為程序流程。

圖6 主控程序流程框圖
1) BP神經網絡模型計算
在BP神經網絡中一般包括5個主要因素分別為輸入值、權值、閾值、傳遞函數以及輸出,兩個運算過程,分別為BP算法的前向計算和誤差的反向推導。而在5個主要因素和兩個運算過程中,傳遞函數的作用尤為重要,在算法中如果不加入傳遞函數,只是簡單的對輸入進行加權求和,那么得到的模型僅是一個線性模型,而線性模型的表示能力非常有限。因此采用加入傳遞函數的方法給模型引入非線性因素,以提高模型的表示能力,所以一般情況下采用非線性函數作為傳遞函數,本文所建立的BP神經網絡模型采用的傳遞函數為Tan-Sigmoid函數。
接手一個五年級新班,前任班主任告訴我:“這個班學生家長的素質普遍很高,對孩子的要求也十分嚴格。”這讓我感受到壓力的同時,也充滿期待。
根據在PC機上已構建好的BP神經網絡模型,輸入樣本值即可求得模型的輸出值。因此,將BP神經網絡算法嵌入到單片機系統中的程序,只需要根據第一部分生成的網絡參數復原網絡模型即可,而不需要誤差的反向傳播推導過程,只需按照BP神經網絡的前向運算過程[8],編寫單片機程序即可。BP神經網絡的前向計算過程為通過給定的權值對輸入值進行加權求和后(默認加上各層閾值),再將得到的和作為參數輸入到傳遞函數中,傳遞函數的輸出值即為神經元的輸出值。計算過程如式(1)、式(2)所示:
(1)
(2)
式中:u1為隱含層的輸出,j為整數,取值范圍為[1,6],x(i)為網絡的輸入值,i為整數,取值范圍為[1,3],分別為穿、破、榴3個彈種的射彈數目,w1為輸入層到隱含層的連接權值,b1為隱含層閾值,u2為輸出層神經元的輸出,輸出層神經元個數為1,故只有一個輸出,w2為隱含層到輸出層的連接權值,b2為輸出層閾值;函數f1和f2分別為隱含層傳遞函數tansig和輸出層傳遞函數purelin,如式(3)、式(4)所示:
(3)
f2(x)=x
(4)
2) BP神經網絡模型重構
根據PC機上訓練好的網絡模型參數和BP神經網絡前向計算公式,編寫C語言程序,將BP神經網絡模型嵌入單片機當中,實現單片機技術和BP神經網絡技術的緊密結合。采用Keil51編制的BP神經網絡計算程序,將網絡參數存儲在單片機上,根據當前時刻各彈種射彈數目的輸入值,送入BP神經網絡計算子程序中,即可得到火炮身管的燒蝕磨損量[9]。
3) 模型傳遞函數優化
由于神經網絡模型是一種較為復雜的運算,要在單片機中實現,需要進行浮點運算和計算復雜函數(tansig函數),這會給系統性能帶來很大影響,對于浮點函數的計算是由單片機系統自身特點所決定的,不會有很大提高,但對于復雜函數的計算,可以采用分段多項式擬合的方法對tansig函數進行改進,提高運行速度[10]。如表1為列舉的穿甲、破甲和榴彈射彈數目分別為117、84、92條件下網絡模型的計算結果以及在保證模型精度的前提下,兩種函數運算時間的對比,可以直觀地看出,優化后的傳遞函數運算速度有了很大提高,表明了分段多項式擬合方法的正確性。

表1 網絡模型輸出對比
1) 按鍵電路的檢測
對于矩陣鍵盤的按鍵掃描原理是對矩陣行列的高低電平進行檢測,從而判斷該鍵是否被按下及其位置信息。利用兩個for循環即可完成對按鍵狀態的循環檢測,同時,定義一個unsigned char全局靜態變量,對每次的按鍵值進行備份,保存前一次的值。但對于矩陣按鍵這種機械按鍵,由于機械觸點的彈性作用,會在按鍵閉合和斷開的一瞬間伴隨一連串的抖動,會影響按鍵結果,按鍵的消抖設計,可以采用延時程序實現,加入兩個if語句對按鍵進行持續檢測,延時5~10 ms,即可完成消抖。
但在一般的工程應用中,采用延時程序會浪費計算機資源,同時要盡量縮短程序的運行時間,故需采用更優異的方法處理鍵盤抖動問題。本系統中利用定時器中斷,每1 ms進入一次中斷,掃描一次按鍵狀態并存儲起來,連續掃描4次后,判斷按鍵狀態是否一致,若保持一致,則確定按鍵處于穩定階段,而非抖動階段,同時定義一個unsigned char型的全局靜態變量,大小為4×4的矩陣,作為矩陣按鍵掃描的緩沖區,用于存儲1ms中斷內一次按鍵的4次采樣值,定義初始值為0xFF,即按鍵初始為彈起狀態,從而完成按鍵的消抖[11]。
2) 12864液晶顯示
根據系統設計要求,對12864液晶芯片上電初始化,系統讀取EEPROM中存儲的彈種射彈數目和身管磨損量大小,并在液晶屏上進行顯示。液晶顯示的內容包括兩部分,包括漢字顯示內容和數字顯示內容,對于固定漢字內容的顯示采用編碼方式,編寫table編碼表,利用while循環語句,12864液晶對表中的內容進行讀取并顯示,直到編碼表table中的字符為空字符時停止,此時結束循環。對數字部分的顯示,主要是射彈數目的顯示,同樣定義一個內容0~9的編碼,當輸入數據送來時,求取該數據的“個、十、百”三位,求得的三位與編碼中數字的順序一致,可以完成對三位射彈數目的顯示功能。
根據12 864的漢字顯示坐標,固定的漢字顯示部分占有6個地址,故設置數字顯示地址從每行的“86H、96H、8EH、9EH”開始,并在結尾添加字符串結束符‘ 主站蜘蛛池模板: 国产凹凸视频在线观看| 国产精品亚洲综合久久小说| 国产美女91视频| 无码有码中文字幕| 少妇人妻无码首页| 中文字幕在线日本| 婷婷色中文| 亚洲无码在线午夜电影| 亚洲国产成熟视频在线多多 | 亚洲精品少妇熟女| 亚洲精品国偷自产在线91正片| 国产亚洲成AⅤ人片在线观看| 在线99视频| 国产美女无遮挡免费视频| 三级国产在线观看| 日韩成人在线视频| 亚洲综合专区| 国产丝袜91| 精品一区二区三区无码视频无码| 国产成人精品三级| 国产在线观看精品| 九九九精品成人免费视频7| 一本大道在线一本久道| 免费无码网站| 区国产精品搜索视频| 亚洲一区网站| 国产成人福利在线视老湿机| 国产一区二区三区免费观看| 九九热视频精品在线| 亚洲日韩Av中文字幕无码| 99er精品视频| 亚洲无码高清一区| 99伊人精品| 国产亚洲男人的天堂在线观看| 996免费视频国产在线播放| 亚洲一道AV无码午夜福利| 999精品在线视频| 综合五月天网| 国产一区二区三区在线观看免费| 二级毛片免费观看全程| 亚洲天堂在线免费| 久久久精品国产SM调教网站| 国产精品一区二区不卡的视频| 久久精品国产一区二区小说| 国产十八禁在线观看免费| 午夜综合网| 亚洲国产清纯| 亚洲精品第1页| 99在线免费播放| 福利国产微拍广场一区视频在线| 国内精自线i品一区202| 一级爱做片免费观看久久| 呦女精品网站| 夜精品a一区二区三区| 国产视频欧美| 免费一级成人毛片| 欧美19综合中文字幕| 亚洲成aⅴ人片在线影院八| 国产成人免费高清AⅤ| 亚洲欧美日韩色图| 久久精品视频一| 免费观看精品视频999| 国产噜噜噜视频在线观看 | 国产成人一区二区| 亚洲av无码人妻| 欧美日韩精品在线播放| 亚洲一区二区约美女探花| 一本一本大道香蕉久在线播放| a天堂视频在线| 97青草最新免费精品视频| 亚洲精品无码专区在线观看| 四虎在线观看视频高清无码| 欧美激情视频一区| 欧美一区二区三区香蕉视| 亚洲三级成人| 欧美特级AAAAAA视频免费观看| 欧美精品成人| 亚洲性网站| 99精品一区二区免费视频| 亚洲AⅤ波多系列中文字幕| 黄色网在线免费观看| 国产精品美女网站|