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