曾富洪 周 丹 郭 剛
1.攀枝花學院,攀枝花,617000 2.重慶大學,重慶,400044
BOM(bill of material)是表征產品結構的物料清單,BOM配置是根據預定義的部件集以及部件之間的約束關系,遵循一系列的規則,使產品技術屬性與客戶需求逐級匹配,通過零部件之間的合理組織,得到滿足設計要求的工程BOM(engineering BOM,EBOM)的產品設計過程[1]。BOM的快速配置設計是實現大規模產品定制開發的一項關鍵技術。目前,國內外學者對此進行了大量的研究,相應的實現策略大致可以分為如下幾類:①基于實例的BOM配置方法[2];②基于約束的BOM 配置方法[3-4];③基于規則的 BOM 配置方法[5];④基于遺傳算法的 BOM 配置方法[6];⑤面向對象 的 BOM 配 置 方 法[7-8];⑥ 基 于 資 源 的BOM配置方法[9];⑦基于結構的BOM 配置方法[10]。
上述BOM配置設計技術為BOM配置知識描述與配置求解提供了參考,但這些方法主要針對能直接從配置模型中求取出顧客需求滿意解(EBOM)的情形。而實際中顧客需求和企業設計制造水平在不斷地升級演進,使得很多情況下不能直接從配置模型中求取滿意解,只能產生一個BOM配置中間態(變量BOM)。建立具有自適應演進功能的BOM配置模型,并由此得到盡可能滿足顧客需求的優化變量BOM,使之快速實例化為EBOM,是面向產品設計的BOM配置中需要解決的瓶頸問題。為此,本文將參數化設計和BOM配置技術相結合,建立了基于參數化設計的BOM配置模型,結合約束滿足理論給出了求解算法,并通過實例證明了該模型和算法的有效性。
面向產品設計的BOM配置任務可用三元組T=(D,N,R)描述,其中,D 為可配置資源的集合;N為配置要求,如設計要求;R為配置結果,如EBOM、工程圖等。BOM配置過程是以可配置資源為基礎,以顧客需求為輸入,在一定的約束條件下求解BOM結構上節點的變量,最后輸出滿足顧客需求的BOM配置結果的活動。這里把BOM配置分成了兩個階段完成:第一階段是變量BOM的獲取,變量BOM指的是存在部分未完全實例化節點(變量節點)的BOM;第二階段是變量BOM實例化為EBOM。變量BOM的獲取是依據BOM知識體(knowledgebody based on BOM,KBOM),按一定的算法由計算機自動完成的;變量BOM實例化為EBOM主要借助參數化設計工具按人機交互的方式將變量節點完全實例化?;诖?,結合制造企業BOM管理的實際給出BOM配置的工作模型,如圖1所示,其中BOM配置器有三個區域:參考區、配置工作區和資源區。

圖1 BOM配置的工作模型
參考區中的數據主要來源于KBOM、歸檔BOM或臨時BOM,以便于設計人員參考和借用。配置區主要完成從KBOM生成變量BOM以及變量BOM的實例化工作。變量BOM實例化時可以從參考數據區中參考借用自己需要的數據,也可以根據需要錄入新的數據。當BOM實例化周期長時,可以將其保存到臨時BOM庫進行協調;當BOM的成熟度達到100%時,通過審核將其凍結為EBOM供后續的生產制造使用,同時和KBOM關聯供BOM配置使用。BOM實例化離不開開發工具支持,常用的開發工具有編碼工具、CAX工具、系統工具等。其中,編碼工具負責零部件編碼,CAX工具負責產品的建模和分析,系統工具提供權限管理服務和郵件服務。資源區主要完成和BOM相關的CAX模型、技術文檔、質量文檔和工藝文檔等資源的關聯操作,這些資源存放于模型文檔資源庫中,模型文檔資源庫的物理位置在FTP服務器上。上述所有操作都可以置于流程的監控下完成,并且受到決策庫的支持,決策庫由決策表組成,決策表記錄了決策條件到決策結果之間的映射。
在面向產品設計的BOM配置活動中,變量BOM的獲取是瓶頸問題,變量BOM的質量直接關系到BOM的配置效率和最后生成的EBOM的質量,變量BOM的質量取決于KBOM的模型質量及其相應的配置算法。下面就KBOM的模型結構進行研究。
KBOM是以產品族的方式對各種知識進行有效集成的,為了使BOM能有效地作為知識集成的紐帶,這里采用BOM的拓展概念[11],其定義如下。
定義1 BOM是由許多與產品結構相關的配置單元有機構成在一起的復合對象,配置單元包含本體和從體兩個基本部分:本體是指配置單元明確的、形式化的規范描述;從體是本體的關聯對象構成的集合。
KBOM為樹型結構(圖2),可視為二元組KBOM =(GU,GR),其中GU、GR分別為類配置單元集合、類配置單元關系。

圖2 KBOM結構
類配置單元集合GU中,類配置單元是對相似可選配置單元組成集合的抽象,第i個類配置單元可表示為GUi= (GID,GA,GC,GUi(CU),GT,GUS,GP),其中各元素的含義如下:
(1)GID 為類配置單元的標識。
(2)GA為類配置單元的屬性集合。
(3)GC為類配置單元的技術規則(包括公理和技術計算)約束,表示為GC= (GCP,GCM,GCR,GCRT),這里,GCP 為技術性能參數;GCM為技術規則的數學模型;GCR為技術規則的計算結論;GCRT為計算結論的使用類型,分為直接使用和評判使用兩種,其中評判使用的類型可分為越大越好型、越小越好型和閾值控制型。
(4)GUi(CU)為第i個類配置單元可選配置單 元 組 成 集 合,GUi(CU)= {CUi1,CUi2,…,CUin},其中CUij為可選配置單元。
(5)GT為類配置單元的類型,類配置單元的類型分為虛擬類配置單元和實例類配置單元。虛擬類配置單元(令GT=1)指類配置單元中無配置 單 元 實 例, 即 GUi(CU) = {CU:┐?instance(CU)},其工程意義是該節點對應的部件由其子零部件裝配而成,如圖2中有陰影背景的單元。實例類配置單元(令GT=2)指類配置單元中有配置單元實例,即 GUi(CU)= {CU:?instance(CU)},如圖2中無陰影背景的單元。KBOM構建時其葉節點必須為實例類配置單元。
(6)GUS為類配置單元的配置單元形式,可分為三種:① 基本類配置單元(令GUS=1),其對應的零部件為完成產品核心功能所必需的零部件,相應的屬性值是固定的,配置求解時直接選??;②可變類配置單元(令GUS=2),其對應的零部件在部件的組成結構發生變化時,可根據可變屬性的取值不同來完成變形設計;③參數驅動類配置單元(令GUS=3),其對應的零部件CAD模型為參數化設計模型,其實例的生成是通過輸入參數驅動生成的。如參數化設計的齒輪模型,通過輸入模數、齒數、螺旋角這三個參數,便能自動生成齒輪的精確三維模型。
(7)GP為類配置單元的優先級,它針對的是可變類配置單元,按類配置單元中的配置對于產品的重要度進行劃分,這里將其劃分為三級:① 重 要(令GP=1);②一般(令GP=2);③不重要(令GP=3);另外當類配置單元為需要優先理的參數化類配置單元時令GP=0。
二元組KBOM中,類配置單元的關系GR包括不同層次間的父子關系和同一層次間的兄弟關系。
KBOM構成的基礎是配置單元,配置單元是配置活動的主體,配置單元的知識表達設計直接關系到BOM配置的質量和效率。
配置單元用二元組可表示為CU =(CUO,CUS),其中CUO為配置單元本體、CUS為配置單元從體。
定義2 配置單元本體是對配置對象的明確的形式化的規范表示,可將其視為一個四元組CUO = (CID,CA,CC,CP)。
CID為配置單元的唯一標識,由其對應的零部件的編碼和版本組成。
CA為配置單元的屬性集合,集合中的元素CAi可表示為CAi= (AID,AName,AType,DType,AValue),其中AID 為屬性標識,AName為屬性名稱,AType為屬性類型(分為固定屬性0和變量屬性1),DType為屬性的數據類型,AValue為屬性值。屬性可以是單值也可以是多值。
CC為配置單元的約束規則集合,是個二元組,表示為CC=(CD,RS),CD為約束條件集合,RS為配置結果。設CD的非空子集為cd,則cd?CD,cd≠?,??cd,把約束規則分為7類,定義如下:
(1)可選約束cd →cu ? {CUi,CUj,CUk,…},表示在cd 條件下選取集合{CUi,CUj,CUk,…}的子集cu,其中cu可以為空集;其工程意義是選與不選配置單元集合{CUi,CUj,CUk,…}中的元素對配置結果沒有影響。
(2)選擇約束cd→cu?{CUi,CUj,CUk,…},表示在cd 條件下選取集合{CUi,CUj,CUk,…}的子集cu,cu≠ ?,??cu。
(3)排斥約束cd→CUi∨CUj∨CUk∨…,表示在cd 條件下,在配置單元CUi,CUj,CUk,…中選取且只能選取一個。
(4)矛 盾 約 束cd → (CUi∧ ┐CUj)∨(CUj∧ ┐CUi),表示在cd 條件下,若配置單元CUi被選中,則CUj必不可選,反之亦然。
(5)依 賴 約 束 cd → (CUi∧ CUj)∨(┐CUi∧┐CUj),表示在cd條件下,若配置單元CUi被選中,則CUj必選中;反之若配置單元CUi沒被選中,則CUj也必不在配置結果中。
(6)優先級約束cd→CU*iCU*jCU*k…,表示在cd條件下,配置單元的選擇按CUi,CUj,CUk,…的順序進行。
(7)勢約束cd→LB ≤{CUi,CUj,CUk,…}≤UB,表示在cd條件下,配置結果在集合{CUi,CUj,CUk…}的元素個數至少有LB個,至多不超過UB個。
(8)權約束cd→LB ≤{CUi=vi,CUj=vj,CUk=vk,…}≤UB,其中vi,vj,vk,…為權賦值,表示在cd 條件下,集合{CUi,CUj,CUk,…}的配置結果子集的權賦值之和必需在區間[LB,UB]上。
(9)端口約束cd → Port(GUi∧CUj)=CNum,表示在cd條件下,GUj對CUi的配置數為CNum。
四元組CUO中,CP為配置單元參數化模型的驅動參數集合,集合中的元素CPi可表示為CPi=(PID,PName,PValue,PWeight,PType)。 其 中,PID為參數標識,PName為參數名稱,PValue為參數值,PWeight為參數權重,PType為參數類型。參數類型PType可分為:①尺寸約束參數(令PType=1);②性能參數(令PType=2);③參數化建模尺寸驅動參數(令PType=3)。
定義3 配置單元從體是本體的關聯對象構成的集合,可將其視為一個二元組CUS=(CID,RO),其中,CID為配置單元的唯一標識,RO關聯對象的集合。集合RO 中的元素ROi= (OID,OA,OAD),其中,OID為關聯對象的標識,OA為關聯對象屬性集,OAD為關聯對象的物理存放位置(這里對應存儲的FTP位置)。OA 中的元素OAi= (AID,AName,DType,AValue),其中,AID為屬性標識,AName為屬性名稱,DType為屬性的數據類型,AValue為屬性值。
定義4 動態約束滿足問題(dynamic constraints satisfaction problem,DCSP)是三元組P=(X,D,C),其中,X 是具有有限個變量的集合X ={x1,x2,…,xn},D是變量X 中每個變量xi對應的值域集合D = {Dx1,Dx2,…,Dxn},C 是作用在變量X 域值上的約束集合C = {c1,c2,…,cm}。
配置問題轉化DCSP包含三個方面內容:變量確定、值域確定、約束集合確定。
(1)變量確定。變量由配置模型中的對象映射而來,具體情況如下:①基于顧客需求的配置參數映射為變量;②類配置單元的技術參數GCP映射為DSCP中的變量;③可選配置單元CUij映射為DSCP中的變量;④ 配置單元的變量屬性CAi(AType=1)映射為DSCP中的變量;⑤約束所涉及的參數(如優先級、勢、權、端口等)映射為DSCP中的變量;⑥配置單元參數化模型的驅動參數映射為DSCP中的變量。
(2)值域確定。值域是DSCP中變量取值的集合,包括類配置單元的技術參數取值域、配置單元的選擇域、配置單元的變量屬性取值域、約束所涉及參數的取值域,以及配置單元參數化模型的驅動參數的取值域。
(3)約束集合確定。DSCP中的約束集合由兩個部分映射得來,一部分來源于類配置單元技術規則的映射;另一部分來源于配置單元約束規則的映射。
BOM配置求解在這里包含兩個方面的內容:變量BOM的獲取和變量BOM向EBOM的轉化。
變量BOM的獲取是以DCSP模型為基礎進行求解的,DCSP的主要求解方法有搜索算法和一致性算法,鑒于參數化設計BOM配置的復雜性,這里以KBOM為基礎,遵從深度優先的啟發式搜索策略,根據KBOM中的類配置單元的優先級順序分級求解,其算法流程如圖3所示。

圖3 BOM配置算法
首先通過市場分析,結合企業的發展戰略,對產品進行市場定位和顧客定位,進而獲取顧客的需求(voice of customer,VOC),利用質量功能配置(quality function deployment,QFD)工具將其轉化為產品的技術要求,再將技術要求細化,確定出產品設計要求,并將其映射為變量和約束放入變量集合X和約束集合C中。
(1)第1次遍歷針對的是基本類配置單元,取出對應的配置單元CUi并將變量基本類配置單元GUX實例化處理,從而完成產品核心功能所必需的零部件的選配,同時將選配零部件產生的新約束放到約束集合C中。
(2)第2、3、4次遍歷針對的是可變類配置單元,每次遍歷完成一個優先級中各類配置單元的DSCP求解,通過對類配置單元的技術規則和集合C的聯合處理得到約束集CC,進而求出DSCP的解集。DSCP采用改進的BT(back tracking)算法(即改進回溯法)求解,程序框架如下:
BT(I,XX,D,CC)
if XX=?//XX為KBOM中一個可變類配置單元
對應的變量集合
return I//I為XX中以賦值變量的賦值組合
else
取x∈XX
Dx=x的域
do
d=Dx的一個值
Dx←Dx-{d}
I←I∪{d}
if I滿足DSCP中已賦值變量在集合C中對應約束
T =BT(I∪ {d},XX -x,D,CC)
if T≠null
return T
while Dx≠?
return null
若程序返回null,則表示該可變類配置單元不能選配出完全符合要求的配置單元;返回T,則得到DCSP的一個解。當DCSP有多個解時,對應可變類配置單元有多個完全符合要求的配置單元,此時以選定配置單元的零部件成本最低和交貨期最短為目標,按下式進行計算:

式中,w1、w2分別為成本花費和交貨期對應的權重;f1i為第i個滿足要求配置單元對應的成本花費;f2i為第i個滿足要求配置單元對應的交貨期。并選取綜合評價(γi)值最大對應的配置單元進行實例化。然后將產生的新約束添加到集合C中,并對變量集合X進行處理。遍歷時按優先級的高低從大到小依次完成。另外在進行第兩次遍歷時,當遇到參數驅動類配置單元如果需要優先處理,則轉入參數驅動類配置單元的處理模塊處理。
(3)第5次遍歷針對的是參數驅動類配置單元,這種類單元對應配置單元的3D數字模型是由參數化驅動生成的,處理時,首先構建配置單元CUi,并根據對類配置單元的技術規則和集合C的聯合處理,得到參數驅動類配置單元的驅動參數,為建模驅動參數賦值。由參數驅動CUi對應的基本模型生成三維數字化CAD模型,用CAD模型將類配置單元實例化,并將CAD模型存放到FTP服務器相應的位置,同時將產生的新約束添加到集合C中。
(4)第6次遍歷針對的是剩下的未實例化的實例類配置單元,通過對類配置單元的技術規則和集合C的聯合處理得到該類配置單元需求特征參數,并與該類配置單元中的配置單元特征參數進行相似匹配,相似度采用最近鄰法進行計算,具體計算公式為[2]

式中,Wj為第j個特征的權重;fI、 fR分別代表兩個比較對象;Sim(fjI,fjR)為兩個比較對象第j個特征相似度計算函數。
為了簡化問題,在計算特征相似度時,如果參數值相同,則特征的相似度為1,否則為0。例如,對象A(A1,A2,A3,A4,A5,A6)和對象B(B1,B2,B3,B4,B5,B6)的特征相比較的情況為:A1=B1,A2≠B2,A3=B3,A4=B4,A5≠B5,A6=B6,且 權 重 為 W(0.9,0.8,0.5,0.6,1,0.7), 則Similary(A,B)= (0.9+0.5+0.6+0.7)/(0.9+0.8+0.5+0.6+1+0.7)=0.6。
將相似度最大的配置單元所對應的資源與一個新建的變量配置單元關聯,然后用變量配置單元對該類配置單元實例化。
在上述步驟完成后,便完成了變量BOM的構建,這些步驟由計算機自動完成,另外可以通過改變可變類配置單元的優先級得到不同的變量BOM。
變量BOM轉化為EBOM需要完成三個方面的內容:一是對變量配置單元的處理,它是在人機交互方式下利用開發工具對關聯的資源進行處理使之完全滿足相應的設計要求;二是對虛擬類配置單元的處理,它是在人機交互的方式下,利用CAD工具對其子配置單元的模型進行裝配得到裝配CAD模型,并用它對虛擬類配置單元實例化,同時關聯上其他設計資源;三是根據設計要求對需要新增或者刪除的配置單元進行處理,它也是在人機交互的方式下由設計人員完成,人機交互的工作模型如圖1所示。設計完成后,知識工程師可以根據設計結果對KBOM樹進行增、刪、改操作,完成相應的知識管理。
經簡化后的某企業生產的齒輪泵產品模型包括泵體、電機、齒輪、連接體等構件,齒輪泵的KBOM如圖4所示。

圖4 齒輪泵的KBOM
設齒輪泵的客戶需求為:齒輪泵的流量2.0m3/h,最大工作壓力17MPa,并且要求耐酸耐銹蝕等。根據上文所說的配置求解算法配置齒輪泵的過程如下:
首先由計算機為齒輪編碼(CL0101),并按圖4中的優化模型確定出齒輪的基本參數m、z、da等,優化模型中第一分目標函數f1(x)為流量脈動率最小,第二分目標函數f2(x)為單位排量體積最小,第三分目標函數f3(x)為徑向壓力最小,詳情見文獻[12]。計算結果為:m=2.5mm;z=27;da=67.5mm。然后依次確定出:定子為DZ0203,轉子為ZZ0304,電機筒為DTJ101,連接體為LJT303,泵體為BT031。
在人機交互模式下根據齒輪的參數(m=2.5mm;z=27;dn=12mm)在 CAD中驅動齒輪的參數模型生成齒輪的實例化數字模型。將齒輪的模型和相應文檔存放于FTP中并與齒輪關聯,從而完成齒輪的實例化設計。
在人機交互模式下在CAD環境中將電機筒、定子、轉子進行裝配得到電機的數字化模型。對電機進行編碼(DJ01)并與相應資源關聯,從而完成電機的實例化設計。
在人機交互模式下在CAD環境中將電機、泵體、連接體、齒輪進行裝配得到齒輪泵的數字化模型。對齒輪泵進行編碼(CB01)并與相應資源關聯,至此完成齒輪泵的實例化設計。
將產品的設計、自動配置有效集成可以大大提高產品的開發效率,為此本文給出了BOM的知識表達模型和基于產品設計的配置求解模型,進而利用J2EE技術開發了BOM配置模塊,該模塊具有如下特點:①將產品的計算機自動配置和人機交互設計相結合,實現了產品人機交互設計,產品參數化設計和產品自動配置一體化;②以分級遍歷為基礎,將回溯法、優選法和最鄰近相似匹配法融入其中,使得BOM的配置求解算法很有實用性;③以KBOM的形式對產品設計知識進行集成,能夠對產品實現有效的知識管理。將開發的模塊嵌入到PDM系統中,通過實例證明了它的正確性和實用性。
[1] Brown D C.Defining Configuration[J].Artificial Intelligent for Engineering Design,Analysis and Manufacturing,1998,12(4):301-306.
[2] Tsenga Hwaien,Chang Chien-chen.Applying Case-based Reasoning for Product Configuration in Mass Customization Environments[J].Expert Systems with Applications,2009,29:913-925.
[3] Xie H,Henderson P,Kernahan M.Modeling and Solving Engineering Product Configuration Problems by Constraint Satisfaction[J].International Journal of Production Research,2005,43(20):4455-4469.
[4] 邵偉平.基于分布式約束滿足的產品配置研究[J].東北大學學報(自然科學版),2007,28(1):103-106.
[5] Bru Gnach M.Determining the Significance of Threshold Values Uncertainty in Rule-based Classification Models[J].Ecological Modelling,2003,160(1):63-76.
[6] Yeh J Y,Wu T H,Chang J M.Parallel Genetic Algorithms for Product Configuration Management on PC Cluster Systems[J].The International Journal of Advanced Manufacturing Technology, 2007,31(11/12):1233-1242.
[7] 但斌,姚玲,經有國,等.基于產品族實例本體模型的產品配置方法研究[J].計算機集成制造系統,2009,15(4):645-651.
[8] Yang Dong,Miao Rui,Wu Hongwei,et al.Product Configuration Knowledge Modeling Using Ontology Web Language[J].Expert Systems with Applications,2009,26(3):4399-4411.
[9] Heinrich M.A Resource-based Paradigm for the Configuring of Technical Systems from Modular Components[C]//Proceedings of the 7th IEEE Conference on Artificial Intelligence Applications.Washington D C:IEEE Computer Society,1991:257-264.
[10] Hotz L.Using a Structure-based Configuration Tool for Product Derivation[C]//Proceedings of the 19th International Conference on Automated Software Engineering.Washington D C:IEEE Computer Society,2004:388-391.
[11] 曾富洪.產品數據管理中的BOM管理研究與實踐[D].重慶:重慶大學,2003.
[12] 李志華,劉小思,顧廣華.齒輪泵齒輪基本參數的優化設計[J].江西農業大學學報,1997,19(3):133-136.