惠州城市職業(yè)學院 劉錦杭
貼標機是一種為包裝或產品添加標簽的機器。它不僅具有美觀的效果,更重要的是可以實現(xiàn)產品銷售的跟蹤管理,特別是在制藥,食品等行業(yè),貼標機是現(xiàn)代包裝的組成部分。為使生產效益最大化,貼標機的貼標故障率往往需要降到最低。本文從貼標機的三個參數(shù)作為分析因子,利用神經(jīng)網(wǎng)絡軟件MATLAB對系統(tǒng)進行訓練學習,建立系統(tǒng)的神經(jīng)網(wǎng)絡模型。最后在此模型下,進行參數(shù)尋優(yōu),實現(xiàn)系統(tǒng)參數(shù)的優(yōu)化,達到了最優(yōu)故障率。
貼標機在運行過程中,最重要的設定參數(shù)主要有三個,分別是步進電機速度、電磁鐵打開延時、電磁鐵關閉延時。對于電機速度,如果電機速度設定太高故障率會升高,如果速度太低,效率會降低。所以電機速度應該設定在一個合理的范圍。對于電磁鐵打開延時,因為電磁鐵打開延時的計時時刻為電機啟動瞬間,如果該延時設得過短,會導致回收輪在運動中,壓標輪就已經(jīng)執(zhí)行壓標動作,導致標帶扯斷;如果設得過大,效率會降低。對于電磁鐵關閉延時,因為電磁鐵關閉延時的計時時刻為打開電磁鐵瞬間,如果該延時設得過短,會導致壓標不成功中;如果設得過大,效率會降低。
綜上所述,步進電機速度、電磁鐵打開延時和電磁鐵關閉延時三個參數(shù)必須設定為一個合理值才能使系統(tǒng)運行在最佳狀態(tài)。在系統(tǒng)實際運行中,對三個參數(shù)分別設定不同值,測得系統(tǒng)貼標失敗率如表1-1所示。
表1-1 不同參數(shù)下貼標故障率
從表1-1中可知,電磁鐵打開延時設置范圍為100ms~300ms之間;電磁鐵關閉延時設置范圍為100ms~300ms之間;步進電機轉速設定范圍在100~500r/min之間;標簽定位檢測時間為50ms~150ms之間;光纖靈敏度在400~600之間。假設設定時間分辨率為1ms,光纖靈敏度分辨率為1,則參數(shù)設置組合可與200×200×400×100×200=3200億種組合。這是非常龐大的設置組合,不可能所有組合一一設定進行測試。由于人工神經(jīng)網(wǎng)絡無需事先確定輸入輸出之間映射關系的數(shù)學方程,僅通過自身的訓練,學習某種規(guī)則,在給定輸入值時就可以得到最接近期望輸出值的結果。貼標系統(tǒng)的貼標失敗率和三個參數(shù)之間的關系是復雜的非線性關系,可通過神經(jīng)網(wǎng)絡對系統(tǒng)進行訓練學習,建立系統(tǒng)的神經(jīng)網(wǎng)絡模型。最后在此模型下,進行參數(shù)尋優(yōu),實現(xiàn)系統(tǒng)參數(shù)的優(yōu)化。
MATLAB具有強大的數(shù)學分析功能,其在神經(jīng)網(wǎng)絡分析方面,同樣表現(xiàn)出強大的分析能力。在訓練神經(jīng)網(wǎng)絡前,需要對數(shù)據(jù)進行預處理,一種重要的預處理手段是歸一化處理。下面簡要介紹歸一化處理的原理與方法。
1.數(shù)據(jù)歸一化
進行數(shù)據(jù)歸一化,就是將數(shù)據(jù)映射到[0,1]或[-1,1]或更小的區(qū)間,比如(0.1,0.9)。需要對數(shù)據(jù)進行歸一化的原因主要有:(1)輸入數(shù)據(jù)的單位不一樣;(2)數(shù)據(jù)的范圍不同,功能不同;(3)由于神經(jīng)網(wǎng)絡的輸出層中的激活函數(shù)的范圍是有限的,因此需要將網(wǎng)絡中訓練的目標數(shù)據(jù)映射到激活函數(shù)的范圍。Matlab中數(shù)據(jù)的歸一化主要采用以下兩個功能函數(shù):
(1).premnmx
將矩陣歸一化,主要用于訓練數(shù)據(jù)集的歸一化。
(2).postmnmx
矩陣映射是回歸到變換之前的范圍。該函數(shù)主要用于將神經(jīng)網(wǎng)絡的輸出結果映射到歸一化前的數(shù)據(jù)范圍。
2.神經(jīng)網(wǎng)絡實現(xiàn)函數(shù)
利用Matlab構建一個神經(jīng)網(wǎng)絡,需要使用到三個功能函數(shù):網(wǎng)絡創(chuàng)建函數(shù)newff、訓練神經(jīng)網(wǎng)絡函數(shù)train、應用建立得網(wǎng)絡進行仿真的功能函數(shù)sim。
(1).newff函數(shù)
神經(jīng)網(wǎng)絡創(chuàng)建函數(shù),使用方法:net = newff ( A, B, {C} ,‘trainFun’)。
(2).train函數(shù)
神經(jīng)網(wǎng)絡訓練學習函數(shù),使用方法:[ net, tr, Y1, E ] = train( net, X, Y )。
圖3-1 神經(jīng)網(wǎng)絡MATLAB程序流程圖
(3).sim函數(shù)
神經(jīng)網(wǎng)絡仿真函數(shù),使用方法:Y=sim(net,X)。
1.神經(jīng)網(wǎng)絡MATLAB代碼設計
根據(jù)MATLAB神經(jīng)網(wǎng)絡建模方法,設計得神經(jīng)網(wǎng)絡參數(shù)尋優(yōu)MATLAB程序流程圖如圖3-1所示。
首先對輸入的數(shù)據(jù)進行歸一化處理;然后創(chuàng)建網(wǎng)絡,設定訓練參數(shù),比如訓練次數(shù)、訓練精度等;最后應用建立好的網(wǎng)絡對參數(shù)進行尋優(yōu)。
根據(jù)程序流程圖,設計得MATLAB代碼如下:
2.參數(shù)優(yōu)化
在MATLAB運行上面程序,得出網(wǎng)路訓練結果圖如圖3-2所示。從圖中可看出,訓練次數(shù)在180次的時候,訓練誤差達到0.01。
圖3-2 神經(jīng)網(wǎng)絡訓練結果
運行后,MATLAB打印出的最佳參數(shù)為(160,100,190),最小失敗率為2.63。對貼標控制器進行設定,使得機器在參數(shù)(160,100,190)下運行,統(tǒng)計實際的貼標失敗率。并在此參數(shù)范圍內進行微調,最后確定機器在參數(shù)為(180,110,160)這個參數(shù)點運行狀態(tài)最佳。
通過MATLAB神經(jīng)網(wǎng)絡建模以及參數(shù)尋優(yōu),確定最佳參數(shù)為(280,280,340,50,440),最小貼標失敗率為0.9541。對貼標控制器進行設定,讓機器在參數(shù)(280,280,340,50,440)下運行,統(tǒng)計實際的貼標失敗率,并在此參數(shù)范圍內進行微調,最后確定機器在參數(shù)為(260,290,320,60,455)這個參數(shù)點運行狀態(tài)達到最佳,實測最小失敗率為0.9/1000,滿足2/1000的設計目標。