李方娟,趙玉佳,趙君嫦,孟祥麗,郭強(qiáng),孟繁欽
(1.牡丹江醫(yī)學(xué)院藥學(xué)院;2.牡丹江醫(yī)學(xué)院紅旗醫(yī)院,黑龍江 牡丹江 157011)
3D 打印是一種快速成型技術(shù),采用數(shù)字技術(shù)材料打印機(jī)來實(shí)現(xiàn)的,運(yùn)用粉末狀金屬或其它可黏合材料,通過逐層打印的方式來構(gòu)造物體的技術(shù)。最近幾年,3D 打印技術(shù)在醫(yī)學(xué)各個(gè)領(lǐng)域得到了廣泛的應(yīng)用,3D 打印肝臟模型、頭蓋骨、脊椎植入體等;3D 打印除具有個(gè)性化定制要求外,對(duì)于3D 打印醫(yī)用傳感器、助聽器外殼、康復(fù)醫(yī)療器械等具有批量打印要求。在批量3D打印加工中,當(dāng)同時(shí)打印多個(gè)工件時(shí),為提高工件的打印效率,通常將多個(gè)零件排布于打印機(jī)臺(tái)面內(nèi)同時(shí)打印,即一個(gè)打印批次可以同時(shí)加工出多個(gè)零件,如一個(gè)批次無法完成全部零件的打印,就需要安排多個(gè)打印批次進(jìn)行打印。因此,對(duì)打印工件進(jìn)行合理的排樣,對(duì)縮短打印時(shí)間、提高3D 打印加工效率至關(guān)重要。3D 打印工件排樣問題是一個(gè)復(fù)雜的多約束優(yōu)化問題,本文提出采用CHNN 神經(jīng)網(wǎng)絡(luò)算法進(jìn)行3D 打印排樣,并結(jié)合遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò),通過算法實(shí)現(xiàn),完成了3D 打印批次排樣問題的研究。
在批量3D 打印過程中,每個(gè)打印批次通常排布多個(gè)零件,又由于3D 打印是沿著零件的高度方向逐層進(jìn)行打印的,因此,要想提高整個(gè)打印批次零件的加工效率,對(duì)打印零件進(jìn)行合理的規(guī)劃排樣至關(guān)重要。由于3D 打印是逐層進(jìn)行打印的,在同一批次工件打印中,打印時(shí)間是以高度最大的零件完成打印進(jìn)行計(jì)算的。因此,要想提高整個(gè)批次打印零件的效率,必須保證同一打印批次內(nèi)打印零件的高度差最小。設(shè)第Q 個(gè)打印批次內(nèi)有n 個(gè)零件進(jìn)行打印,各個(gè)零件的高度分別為h1,h2,…,hj,…,hn,其中打印零件件的最大高度為hmax,要使零件打印所需時(shí)間最短,應(yīng)該滿足如下條件:
連續(xù)型Hopfield(CHNN)神經(jīng)網(wǎng)絡(luò)是1982 年由美國(guó)物理學(xué)家霍普菲爾德教授提出的一種單層反饋神經(jīng)網(wǎng)絡(luò)。CHNN 神經(jīng)網(wǎng)絡(luò)求解組合優(yōu)化問題,就是在給定約束條件下,求出使目標(biāo)函數(shù)極?。ɑ驑O大)的變量組合問題。將排樣問題映射到CHNN 人工神經(jīng)網(wǎng)絡(luò):首先把排樣問題映射到一組神經(jīng)網(wǎng)絡(luò)的特定組態(tài)上,此組態(tài)相應(yīng)于排樣問題的可能解,然后構(gòu)造一個(gè)適合于優(yōu)化問題的能量函數(shù)E,此E 正比于優(yōu)化問題的評(píng)價(jià)函數(shù)。所選的評(píng)價(jià)函數(shù)的好壞直接影響排樣的效率和結(jié)果。為了保證排樣結(jié)果的有效性,排樣問題的求解需要滿足如下條件:假定有P 個(gè)3D 打印零件,將其分成Q 組(即Q 個(gè)打印批次),則網(wǎng)絡(luò)使用PXQ 個(gè)神經(jīng)元,將這些神經(jīng)元按照P 行Q 列排列。當(dāng)網(wǎng)絡(luò)達(dá)到穩(wěn)定狀態(tài)時(shí),上述神經(jīng)網(wǎng)絡(luò)的求解問題必須滿足一定的約束條件。在滿足約束的條件下,優(yōu)化排樣問題與約束之間的對(duì)應(yīng)關(guān)系如表1 所示。
表1 排樣問題滿足的約束條件
3D 打印排樣問題的能量函數(shù)如下:
式中,D、E、F 為正系數(shù); hmaxi為每組中排樣件的最大高度; hi為排樣件的高度;為第X 行第I 列的神經(jīng)元輸出即排樣對(duì)象被分到標(biāo)號(hào)為x 的組中。
其神經(jīng)元之間的權(quán)值如下:
式中:
遺傳算法是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法,通過復(fù)制、交叉、變異將問題解編碼表示的“染色體”群進(jìn)行迭代進(jìn)化,從而得到問題的近似最優(yōu)解。將神經(jīng)網(wǎng)絡(luò)中所有的神經(jīng)元的連接權(quán)值編碼成二進(jìn)制碼串或?qū)崝?shù)碼串表示的個(gè)體,隨機(jī)生成這些碼串的初始群體進(jìn)行遺傳算法的計(jì)算。每完成一次迭代計(jì)算后,將碼串解碼為權(quán)值構(gòu)成新的神經(jīng)網(wǎng)絡(luò),通過對(duì)所有訓(xùn)練樣本進(jìn)行計(jì)算得到神經(jīng)網(wǎng)絡(luò)輸出的均方誤差從而確定每個(gè)個(gè)體適應(yīng)度。經(jīng)過若干代的計(jì)算,神經(jīng)網(wǎng)絡(luò)將進(jìn)化到誤差全局最小。
其求解過程如圖1。
圖1 遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)流程
將用遺傳算法優(yōu)化的CHNN 神經(jīng)網(wǎng)絡(luò)使用MATLAB 語言進(jìn)行程序的實(shí)現(xiàn)。以20 個(gè)3D 打印零件的加工為例進(jìn)行驗(yàn)證,3D 打印零件的數(shù)量和相應(yīng)尺寸如表2 所示。
排樣結(jié)果在輸出前建立如下規(guī)則:以被打印零件在水平面投影的最小包絡(luò)矩形作為輸出值,將打印工件在三維空間的排布問題轉(zhuǎn)化為二維圖形的輸出。打印圖形輸出結(jié)果如圖2 所示。
表2 排樣零件參數(shù)表
圖2 3D 打印圖形的二維輸出
本文采用CHNN 神經(jīng)網(wǎng)絡(luò)和遺傳算法結(jié)合解決3D 打印工件批次排樣問題,通過將排樣問題的目標(biāo)函數(shù)映射到CHNN 神經(jīng)網(wǎng)絡(luò),建立了神經(jīng)網(wǎng)絡(luò)的能量函數(shù)并完成了算法的程序?qū)崿F(xiàn),很好的解決了多約束的組合優(yōu)化排樣問題,提高了3D 打印工件的加工效率。