□ 袁國韜 □ 倪受東
南京工業(yè)大學(xué) 機(jī)械與動(dòng)力工程學(xué)院 南京 211800
數(shù)字化工廠是以產(chǎn)品全生命周期相關(guān)數(shù)據(jù)為基礎(chǔ),在計(jì)算機(jī)虛擬環(huán)境中對整個(gè)生產(chǎn)過程進(jìn)行仿真、評估和優(yōu)化,并進(jìn)一步擴(kuò)展到整個(gè)產(chǎn)品生命周期的新型生產(chǎn)組織方式[1],其總體框架如圖1所示。
建立數(shù)字化虛擬工廠,包含從合同訂單到倉庫、下料、制造、檢測、包裝、發(fā)貨交付全過程,圍繞人、機(jī)、料、法、環(huán)、測進(jìn)行狀態(tài)跟蹤及數(shù)據(jù)采集[2],從而形成完整的數(shù)據(jù)鏈,達(dá)到訂單及產(chǎn)品狀態(tài)實(shí)時(shí)掌控、制造過程全透明、質(zhì)量信息完整可追溯、產(chǎn)品合格率最大化、機(jī)器設(shè)備及人力資源投資回報(bào)率最大化的目標(biāo)。

▲圖1 數(shù)字化工廠總體框架
在數(shù)字化工廠的一個(gè)生產(chǎn)周期過程中,數(shù)據(jù)的采集主要分為三大類:設(shè)備數(shù)據(jù)采集、人員數(shù)據(jù)采集及安全環(huán)境數(shù)據(jù)采集。
設(shè)備數(shù)據(jù)采集處于首要地位,數(shù)字化工廠運(yùn)行的本質(zhì)就在于機(jī)械設(shè)備能否正常運(yùn)行以創(chuàng)造效益。設(shè)備數(shù)據(jù)包括:① 生產(chǎn)計(jì)劃,包括產(chǎn)品交付日期、產(chǎn)品數(shù)量、工廠作業(yè)計(jì)劃、工單執(zhí)行情況等;② 物料信息,包括物料批次、物料數(shù)量、物料消耗使用情況等;③ 設(shè)備狀態(tài),包括設(shè)備運(yùn)行、閑置、保養(yǎng)、故障時(shí)間及設(shè)備綜合效率等。
設(shè)備數(shù)據(jù)是數(shù)字化工廠重要的根本數(shù)據(jù),處于主體地位[3],一般采用可編程序控制器與用于過程控制的對象連接與嵌入(OPC)技術(shù)相結(jié)合的方式進(jìn)行采集,用串口與RJ45連接器進(jìn)行數(shù)據(jù)傳輸。
針對不同生產(chǎn)設(shè)備的數(shù)據(jù)進(jìn)行采集,需要關(guān)注設(shè)備的數(shù)字化程度及其接口類型,部分老舊設(shè)備需要額外添加傳感器。串口設(shè)備需要通過轉(zhuǎn)換器進(jìn)行數(shù)據(jù)傳輸,數(shù)控設(shè)備則可以直接進(jìn)行數(shù)據(jù)采集[4]。隨著GB/T 33863—2017《OPC統(tǒng)一架構(gòu)》作為智能制造基礎(chǔ)核心國家標(biāo)準(zhǔn)發(fā)布,OPC數(shù)據(jù)采集成為趨勢。
設(shè)備數(shù)據(jù)采集如圖2所示。

▲圖2 設(shè)備數(shù)據(jù)采集示意圖
人員數(shù)據(jù)采集一般分為三部分:① 員工出勤人數(shù)、員工出勤率;② 員工技能情況;③ 員工工作狀態(tài)及產(chǎn)出情況、員工平均工作效率。
人員數(shù)據(jù)采集一般可采用條碼掃描、鍵盤錄入、射頻識別等人工錄入方式進(jìn)行[5]。
安全環(huán)境數(shù)據(jù)一般包括:① 質(zhì)檢信息,包括質(zhì)檢工序、良品率;② 環(huán)境信息,包括溫度、濕度、現(xiàn)場5S及警報(bào)信息等;③ 倉儲(chǔ)物流信息,包括倉儲(chǔ)儲(chǔ)位、出入庫、料號、批次、車載數(shù)據(jù)等;④ 工廠投資回報(bào)率,包括機(jī)械設(shè)備投資回報(bào)率、人力資源投資回報(bào)率。
安全環(huán)境數(shù)據(jù)采集與設(shè)備數(shù)據(jù)采集方式類似,并增加采用傳感器、信息系統(tǒng)集成等方式[6]。
數(shù)據(jù)采集完成之后,由于數(shù)據(jù)的多樣性,為了便于進(jìn)行數(shù)據(jù)處理,需要對各種數(shù)據(jù)進(jìn)行清洗,并轉(zhuǎn)換為數(shù)據(jù)處理可以識別的格式[7]。為了避免數(shù)據(jù)清洗及轉(zhuǎn)換過程中導(dǎo)致數(shù)據(jù)損壞或漏提取參數(shù)等情況,原始文件和處理后的文件都需要存儲(chǔ)在數(shù)據(jù)池中。數(shù)據(jù)清洗流程如圖3所示。

▲圖3 數(shù)據(jù)清洗流程
相比于現(xiàn)代計(jì)算機(jī),生物大腦存儲(chǔ)空間小,運(yùn)行速度較慢,但是生物大腦可以執(zhí)行復(fù)雜的任務(wù),如飛行、尋找食物、學(xué)習(xí)語言、躲避天敵等。
相比于傳統(tǒng)的計(jì)算機(jī)系統(tǒng),生物大腦對損壞和不完善信號具有更強(qiáng)的適應(yīng)性及識別能力。
人工神經(jīng)網(wǎng)絡(luò)如圖4所示,是一種模擬生物神經(jīng)網(wǎng)絡(luò),由簡單的處理單元,即神經(jīng)元組成的大規(guī)模并行分布式處理器。

▲圖4 人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)利用神經(jīng)元的連接來存儲(chǔ)知識,學(xué)習(xí)能力強(qiáng),魯棒性、容錯(cuò)性好,采用分布式存儲(chǔ)與分布式信息處理,屬于并行非線性動(dòng)力學(xué)系統(tǒng)。人工神經(jīng)網(wǎng)絡(luò)應(yīng)用范圍極廣,幾乎可以囊括所有的計(jì)算領(lǐng)域[8]。
筆者采用三層神經(jīng)網(wǎng)絡(luò)架構(gòu),將所采集并經(jīng)過處理的數(shù)據(jù)作為輸入數(shù)據(jù)集。人工神經(jīng)網(wǎng)絡(luò)中的單個(gè)神經(jīng)元結(jié)構(gòu)如圖5所示。

▲圖5 人工神經(jīng)網(wǎng)絡(luò)神經(jīng)元結(jié)構(gòu)
筆者采用Sigmoid激活函數(shù),其具體形式為:

(1)
采用Sigmoid函數(shù)時(shí),為提高訓(xùn)練速度和靈敏性,以及有效避開Sigmoid函數(shù)的飽和區(qū),一般要求輸入數(shù)據(jù)的值在0~1之間。因此,需對輸入數(shù)據(jù)進(jìn)行預(yù)處理。為保證建立的模型具有一定的外推能力,最好使數(shù)據(jù)預(yù)處理后的值在0.2~0.8之間[9]。
筆者選用三層反向傳播神經(jīng)網(wǎng)絡(luò)模型,如圖6所示。

▲圖6 三層反向傳播神經(jīng)網(wǎng)絡(luò)模型
神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時(shí),一開始的輸出結(jié)果總是會(huì)和搜集到的數(shù)據(jù)有所差異,對這個(gè)誤差進(jìn)行分析,是訓(xùn)練網(wǎng)絡(luò)更新權(quán)重的關(guān)鍵。一個(gè)模型中,只有損失函數(shù)收斂到一定的值,才有可能會(huì)有好的結(jié)果。一般情況下,對這個(gè)誤差采用梯度下降法進(jìn)行分析處理。
在數(shù)學(xué)上,對于一個(gè)可微分的函數(shù)f(x,y,z),向量grad稱為f(x,y,z)的梯度。
(2)
在沿梯度方向,方向?qū)?shù)取最大值時(shí),神經(jīng)網(wǎng)絡(luò)模型的計(jì)算速度最快。因此,在求損失函數(shù)的最小值時(shí),可以通過沿梯度方向一步步迭代求解,得到最小化的損失函數(shù)和模型參數(shù)值。梯度下降法的計(jì)算過程就是沿梯度下降的方向求解極小值。當(dāng)梯度向量為零時(shí),說明到達(dá)一個(gè)極值點(diǎn),這也是梯度下降算法迭代計(jì)算的終止條件。簡單而言,在一個(gè)非常復(fù)雜、有波峰波谷的群山中,需要到達(dá)坡底,只能一步一個(gè)腳印緩慢下行,這個(gè)過程在數(shù)學(xué)上便被稱為梯度下降[10]。
梯度下降如圖7所示,其中A點(diǎn)、C點(diǎn)為需要采用梯度下降法時(shí)的隨機(jī)所在位置,B點(diǎn)、D點(diǎn)為需要尋找的相應(yīng)最低點(diǎn),也就是誤差最小點(diǎn)。B點(diǎn)為全局最低點(diǎn),D點(diǎn)為局部最低點(diǎn),從A點(diǎn)、C點(diǎn)逐步下降走到B點(diǎn)、D點(diǎn)的位置,采用梯度下降法可以快速準(zhǔn)確地找到相應(yīng)路徑。
反向傳播算法利用輸出后的誤差來估計(jì)輸出層相鄰前導(dǎo)層的誤差,再用這個(gè)誤差估計(jì)更前一層的誤差,如此一層一層反傳,獲得所有其它各層的誤差估計(jì)。這一誤差可以用于調(diào)整、修正各層單元的權(quán)值[11]。
在反向傳播神經(jīng)網(wǎng)絡(luò)中,假設(shè)由隱含層神經(jīng)元J到輸出層神經(jīng)元K,K的輸出值為tK,實(shí)際輸出值為

▲圖7 梯度下降示意圖
oK,則此次輸出結(jié)果的節(jié)點(diǎn)誤差eK為tK-oK。
依次類推,展開誤差函數(shù),對目標(biāo)值和實(shí)際值之差的二次方進(jìn)行求和,得到針對所有M個(gè)輸出節(jié)點(diǎn)的和。其中wJ,K為隱含層神經(jīng)元J到輸出層神經(jīng)元K的權(quán)重,wI,J為輸入層神經(jīng)元I到隱含層神經(jīng)元J的權(quán)重,tM為輸出層所有節(jié)點(diǎn)的預(yù)期輸出值之和,oM為輸出層所有節(jié)點(diǎn)的實(shí)際輸出值之和,e為相應(yīng)神經(jīng)元對應(yīng)的節(jié)點(diǎn)誤差。
(3)
因神經(jīng)元K的輸出僅依賴于隱含層對輸出層的權(quán)重,則相對神經(jīng)元K而言,tK為輸出層神經(jīng)元K的預(yù)期輸出值,oK為輸出層神經(jīng)元K的實(shí)際輸出值。
(4)
根據(jù)鏈?zhǔn)角髮?dǎo)法則及Sigmoid函數(shù)作為激活函數(shù)的定義,可以推導(dǎo)得:
(5)
式中:oJ為前一個(gè)隱含層節(jié)點(diǎn)的輸出。
繼續(xù)向前類推后,可以得到兩個(gè)最終表達(dá)式,這是反向傳播神經(jīng)網(wǎng)絡(luò)的關(guān)鍵。
{1-Sigmoid[∑(wJ,KoJ)]}oJ
(6)
{1-Sigmoid[∑(wI,JoI)]}oI
(7)
式中:oI為神經(jīng)元I的實(shí)際輸出值。

(8)
采用反向傳播神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的首要前提條件是,有足夠多的典型性好和精度高的樣本。
為使訓(xùn)練過程不發(fā)生過擬合,必須將收集到的數(shù)據(jù)隨機(jī)分成訓(xùn)練樣本、檢驗(yàn)樣本和測試樣本三部分。此外,數(shù)據(jù)分組時(shí)還應(yīng)盡可能考慮樣本模式間的平衡。
Python是一種跨平臺的計(jì)算機(jī)程序設(shè)計(jì)語言,是一種面向?qū)ο蟮膭?dòng)態(tài)類型語言,最初被用于編寫自動(dòng)化腳本,隨著版本的不斷更新和語言新功能的增加,越來越多被應(yīng)用于獨(dú)立、大型項(xiàng)目的開發(fā)。
筆者采用Python語言在Pycharm集成開發(fā)環(huán)境中進(jìn)行編程,調(diào)用了numpy數(shù)值計(jì)算擴(kuò)展庫、matplotlib繪圖庫等Pycharm自帶的標(biāo)準(zhǔn)庫,部分代碼截圖如圖8所示。

▲圖8 Python編程代碼
某數(shù)字化工廠2015年至2017年內(nèi)部采集的部分?jǐn)?shù)據(jù)集如圖9所示。經(jīng)過脫密處理,將其保存為.CSV文件,代入已有的反向傳播神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練與測試。

▲圖9 某數(shù)字化工廠內(nèi)部采集數(shù)據(jù)集
當(dāng)選取其中50條數(shù)據(jù)作為小型測試集時(shí),測試結(jié)果的準(zhǔn)確率為60%左右,如圖10所示。這是由于樣本數(shù)量太少,無法達(dá)到較高的準(zhǔn)確率,但是這也說明了預(yù)測是可行的,神經(jīng)網(wǎng)絡(luò)模型是正確的。為了達(dá)到較高的準(zhǔn)確率,需要采用更多的樣本去訓(xùn)練反向傳播神經(jīng)網(wǎng)絡(luò)。

▲圖10 小型測試集準(zhǔn)確率
筆者將該數(shù)字化工廠2015年的所有數(shù)據(jù)集作為訓(xùn)練集,將2015年至2017年的所有數(shù)據(jù)集作為測試集,經(jīng)過訓(xùn)練之后,反向傳播神經(jīng)網(wǎng)絡(luò)模型的預(yù)測準(zhǔn)確率達(dá)到95%左右,如圖11所示。

▲圖11 完整測試集準(zhǔn)確率
數(shù)字化工廠是未來工廠的重要發(fā)展趨勢之一,筆者對數(shù)字化工廠的數(shù)據(jù)進(jìn)行采集、清洗后,輸入搭建好的反向傳播神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,將訓(xùn)練好的反向傳播神經(jīng)網(wǎng)絡(luò)模型用于相關(guān)數(shù)據(jù)集測試,得到了較高的準(zhǔn)確率。筆者對數(shù)據(jù)分析的發(fā)展方向進(jìn)行了初步探討,相信在以后的發(fā)展中,數(shù)字化工廠的數(shù)據(jù)分析還會(huì)有更細(xì)致的算法及更優(yōu)化的模型,這些算法和模型在未來的工業(yè)生產(chǎn)中會(huì)起到更大的作用。