凌欣南, 張 龍, 徐本柱
(1.合肥江淮新發(fā)汽車有限公司,安徽 合肥 230601;2.合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,安徽 合肥 230009)
隨著人們對汽車的安全性、舒適性、動力性、經(jīng)濟(jì)性、環(huán)保性和可靠性等各項(xiàng)性能指標(biāo)要求的不斷提高,汽車上的電器設(shè)備、功能也日趨增多,因此連接汽車電器件的線束也變得越來越重要[1-2]。汽車線束在生產(chǎn)之前,需要首先分析線束圖紙[3],提取其包含的工序種類以及數(shù)目,然后進(jìn)行合理的 工 藝 規(guī) 劃[4-5]、制 定 高 效 的 工 藝 路 線[6-7]以提高實(shí)際生產(chǎn)的效率,最后經(jīng)過裁線、壓接、組裝等一系列復(fù)雜的工序才能加工完成。然而,通常一款中等規(guī)模的汽車線束,其包含的工序達(dá)數(shù)千道之多。對于線束的工藝設(shè)計,國內(nèi)很多線束生產(chǎn)企業(yè)都是使用通用CAD軟件進(jìn)行直接繪圖,但是目前市面上的通用CAD軟件基本上都是面對多專業(yè)的帶有共性的開發(fā)平臺,它所涵蓋的范疇相對較大,在其環(huán)境下繪制圖形時沒有賦予特定領(lǐng)域所具有的語義[8]。這是一種低層次的設(shè)計方法,系統(tǒng)僅僅產(chǎn)生用戶設(shè)計的結(jié)果,如二維或三維圖形,用戶在繪圖時無法精確地表達(dá)設(shè)計意圖,因此也不能很好地理解設(shè)計[9]。
汽車線束的內(nèi)聯(lián)設(shè)計是線束工藝設(shè)計中的重要步驟,是線束生產(chǎn)過程中必不可少的環(huán)節(jié)。線束內(nèi)聯(lián)設(shè)計需要工藝設(shè)計人員根據(jù)導(dǎo)線連接回路表,分析汽車線束圖紙中各種電器件及導(dǎo)線的復(fù)雜連接關(guān)系,同時分析各個導(dǎo)通回路之間的約束,確定中間壓接端子的位置(稱之為內(nèi)聯(lián)點(diǎn)),并由此計算各導(dǎo)線的下線尺寸,最后還要制作內(nèi)聯(lián)工藝卡等工藝文件用于指導(dǎo)車間的生產(chǎn)。如果純粹依靠工藝設(shè)計人員手動進(jìn)行整個內(nèi)聯(lián)設(shè)計,計算工作量非常大,錯誤率高,效率低。據(jù)統(tǒng)計,由一名操作熟練的工藝設(shè)計人員單獨(dú)完成一套整車線束內(nèi)聯(lián)設(shè)計至少需要2周時間,且正確率經(jīng)常不能得到有效保證。本文針對目前汽車線束生產(chǎn)企業(yè)進(jìn)行線束內(nèi)聯(lián)設(shè)計工作量大、錯誤率高、效率低、與企業(yè)追求信息化的需要脫節(jié)等問題[2],基于ObjectARX2007開發(fā)包,以SQL Server2005為后臺數(shù)據(jù)庫,對AutoCAD軟件進(jìn)行二次開發(fā),設(shè)計并實(shí)現(xiàn)了一個汽車線束內(nèi)聯(lián)設(shè)計系統(tǒng)。
本系統(tǒng)可以自動從線束圖紙中提取出所有內(nèi)聯(lián)回路(導(dǎo)通回路),并且根據(jù)參與壓接的各根導(dǎo)線所在接插件的位置,生成內(nèi)聯(lián)設(shè)計交互環(huán)境,同時提示可供用戶選擇的內(nèi)聯(lián)點(diǎn)和可能發(fā)生位置干涉的內(nèi)聯(lián)點(diǎn)。線束工藝設(shè)計人員只需根據(jù)系統(tǒng)的提示輸入內(nèi)聯(lián)點(diǎn)位置,系統(tǒng)便可自行生成內(nèi)聯(lián)工藝卡。
汽車線束主要由導(dǎo)線、接插件、包裹件、緊固件以及壓接端子等幾部分組成。汽車線束工藝圖如圖1所示,它是對線束的抽象和圖形化表示,主要描述線束中各導(dǎo)線間連接關(guān)系、功能布局和幾何尺寸等信息,其中接插件包含了除線長之外的導(dǎo)線線號、顏色、線徑等信息。
研究其導(dǎo)線部分,線束本質(zhì)上是一個無向連通無環(huán)圖,下面給出線束工藝圖中的端點(diǎn)、結(jié)點(diǎn)和線束段等的定義。
圖1 線束工藝圖
圖1中,度為1的結(jié)點(diǎn)為線束工藝圖的端點(diǎn),是多根導(dǎo)線線端的集合d={1,2,…,n},其中1,2,…,n為導(dǎo)線的線號(表示一根導(dǎo)線的線端,也可表示為1A、50B等),一般端點(diǎn)連接到接插件,所有端點(diǎn)的集合記為D;線束工藝圖的分支點(diǎn)是圖1中度為2或2以上的結(jié)點(diǎn),為線束工藝圖的分支點(diǎn),記錄著線束的定位信息,描述其分支情況,所有分支點(diǎn)的集合記為B;線束工藝圖中端點(diǎn)和分支點(diǎn)統(tǒng)稱為結(jié)點(diǎn),將線束工藝圖結(jié)點(diǎn)順序編號,所有結(jié)點(diǎn)集合V=D∪B={v1,v2,…,vk}為結(jié)點(diǎn)的集合。線束工藝圖中連接2個結(jié)點(diǎn)的邊稱為線束段,設(shè)頂點(diǎn)u,v∈V為線束工藝圖的結(jié)點(diǎn),則邊e=(u,v)為線束段,它是導(dǎo)線的集合,線束段內(nèi)包含1根或多根導(dǎo)線。線束工藝圖中所有線束段的集合記為E={e1,e2,…,en}。
1根或多根物理上連接在一起可以相互導(dǎo)通電流的導(dǎo)線集合稱之為線束工藝圖的導(dǎo)通回路,記為CL(connection loop),可以用線束段序列{e1,e2,…,ek}表示,其中ei∈E對應(yīng)該線束段中的1根實(shí)際導(dǎo)線。
為了在內(nèi)聯(lián)設(shè)計過程中針對不同情況實(shí)施不同的處理方法,本文先對導(dǎo)線進(jìn)行分類,線束圖紙中的導(dǎo)線根據(jù)電路邏輯連接關(guān)系可以分為2大類:單根線和內(nèi)聯(lián)線。
(1)單根線。對于給定的導(dǎo)線全集W={w1,…,wi,…,wn},若wi與其他任何導(dǎo)線wj(wi,wj∈W,1≤i,j≤n,i≠j)均不構(gòu)成導(dǎo)通回路,則稱wi為單根線。單根線的兩端通常直接插于不同接插件的端口中。
(2)內(nèi)聯(lián)線。對于給定的導(dǎo)線全集W={w1,…,wi,…,wn},若wi與其他任何導(dǎo)線wj(wi,wj∈W,1≤i,j≤n,i≠j)能構(gòu)成導(dǎo)通回路,則稱wi為內(nèi)聯(lián)線。wi的一端通常插于接插件的端口中,而另一端與wj通過中間壓接端子連接,形成內(nèi)聯(lián)回路。
線束的回路表如圖2所示,它記錄線束工藝圖中的各導(dǎo)線端點(diǎn)的線號和位置,簡潔明了地反映各回路的組成,表中每個回路號對應(yīng)的線號集組成一條回路線號集?;芈繁碇邪男畔⒈姸?,人工輸入耗時費(fèi)力并容易出錯,需要考慮回路表的自動生成,目前根據(jù)不同的線號規(guī)則和輸入原則有3種生成回路表的方式。
圖2 線束的回路表
(1)基于線號命名規(guī)則方式。線號的命名采用如下規(guī)則:線號是數(shù)字加字母的組合,其中數(shù)字表明回路號,字母表示回路的端點(diǎn),如1A、1B、1C、1D構(gòu)成1號回路,并且具有4個端點(diǎn),基于本規(guī)則可以提取出回路表。該方式無需顯示輸入回路信息,由線束工藝圖給出線束的回路表就是這種方式。
(2)預(yù)先輸入導(dǎo)線兩端的連接情況。這種方式主要輸入內(nèi)聯(lián)線的信息,繪制線束工藝圖之前手動輸入每根導(dǎo)線兩端的連接情況,如1A一端連接接插件,一端連接1B,表明1A、1B同屬于一個回路,再根據(jù)1B的連接情況確定回路組成。單根線的兩端都與接插件相連接,不與其他導(dǎo)線合壓并且兩端線號相同,可以不用另行輸入。
(3)自定義方式。線束工藝圖繪制完成后,自動將圖中出現(xiàn)的線號全部列出,由操作者選擇一些線號作為回路,指明回路組成情況,最后搜索線束圖紙產(chǎn)生回路表。
為正確提取線束工藝圖中的回路信息,除了需要各回路的線號組成外,還需作以下約定:
(1)回路表中線號所對應(yīng)的任意一個頂點(diǎn)都可在線束工藝圖的端點(diǎn)中找到。
(2)線束工藝圖中的任意一個端點(diǎn)(度為1的結(jié)點(diǎn))都至少在回路表中出現(xiàn)1次,這也保證了每一個都接有電氣元件。
上述約定可以保證算法處理的點(diǎn)都是線束工藝圖中的端點(diǎn),同時可以對每一個有效結(jié)點(diǎn)進(jìn)行處理。在此基礎(chǔ)上,結(jié)合模型表示,根據(jù)回路提取算法1從線束工藝模型中提取出回路信息,作為內(nèi)聯(lián)設(shè)計的依據(jù),進(jìn)而產(chǎn)生線束BOM。
算法1 線束工藝圖回路提取算法。
輸入:線束工藝圖和回路表。
輸出:線束工藝圖所有回路。
步驟如下:
(1)對線束工藝圖基于上述約束規(guī)則進(jìn)行檢測。若滿足,算法繼續(xù);否則,返回錯誤請求修改。
(2)從回路表中取回路線號集規(guī)則CSR={wn1,wn2,…,wnk}表示的回路,其中wni為回路中的線號,k為線號個數(shù),CSR?WN,初始化該回路CL=?。
(3)搜索接插件集合C,尋找c使得c∈C,c與wn1相連接,記錄接插件c的名稱及孔位信息和連接端點(diǎn)d,令i=2。
(4)++i,深度搜索圖得到x1與xi之間路徑CL′={e1,e2,…,el},搜索C,尋找c使得c∈C,c與wni相連接,記錄接插件c的名稱、孔位和端點(diǎn)信息,令j=1。
(5)如果線束段ej?CL,將ej加入CL,++j。
(6)如果j≤l,轉(zhuǎn)步驟(5)。
(7)如果i≤k,轉(zhuǎn)步驟(4)。
(8)對在導(dǎo)通回路CL中首尾相接、構(gòu)成一條直線的多條線執(zhí)行合并操作。
(9)將回路CL中相關(guān)信息保存到回路表中(顯然CL?E)。
(10)回路表中回路已處理完則算法結(jié)束;否則跳至步驟(2)。
線束工藝圖含有6條回路線號集,運(yùn)行算法1可以對其進(jìn)行分解,最終獲得6個回路,如圖3所示,其中1~3號回路為內(nèi)聯(lián)回路,4~6號回路則是單根線。
圖3 回路提取結(jié)果
提取全部回路信息后可求出單根線的導(dǎo)線組成和線長,但不能確定內(nèi)聯(lián)回路的導(dǎo)線組成和長度,還需要指定其內(nèi)聯(lián)點(diǎn),確定導(dǎo)線間的連接后方可求出其導(dǎo)線組成及每根線的長度。
內(nèi)聯(lián)點(diǎn)(connection point,簡稱CP)是內(nèi)聯(lián)回路CL中2根或以上導(dǎo)線物理連接的位置,在CP處用中壓端子將導(dǎo)線連接在一起,構(gòu)成導(dǎo)通回路。由于安全及成本關(guān)系,內(nèi)聯(lián)點(diǎn)不能選在分支點(diǎn)上,必須偏移一定的距離,一般在20~50mm。同時內(nèi)聯(lián)點(diǎn)必須在內(nèi)聯(lián)回路上,不能存在于獨(dú)立導(dǎo)線中,否則會產(chǎn)生多余的中間壓接端子,造成材料浪費(fèi)。
算法2 內(nèi)聯(lián)回路規(guī)劃算法。
輸入:線束工藝圖所有回路。
輸出:內(nèi)聯(lián)工藝卡片、BOM等工藝文件。
步驟如下:
(1)根據(jù)線束圖紙語義模型中導(dǎo)線的邏輯連接關(guān)系,提取出各個內(nèi)聯(lián)回路,并建立連接回路表。
(2)取出連接回路表中的一個未處理內(nèi)聯(lián)回路,為其生成內(nèi)聯(lián)設(shè)計交互環(huán)境。
(3)用戶輸入內(nèi)聯(lián)點(diǎn),并保證其滿足前文所述的2個約束條件。
(4)內(nèi)聯(lián)點(diǎn)確定后,分析內(nèi)聯(lián)回路中導(dǎo)線實(shí)際物理連接關(guān)系并計算每根導(dǎo)線的長度尺寸。
(5)根據(jù)導(dǎo)線屬性,在專業(yè)知識數(shù)據(jù)庫的支持下,自動為導(dǎo)線添加端壓端子和中間壓接端子。
(6)根據(jù)當(dāng)前設(shè)計要求,選擇添加熱縮管等附加件。
(7)為內(nèi)聯(lián)回路生成內(nèi)聯(lián)工藝卡。
(8)重復(fù)步驟(2)~步驟(7),直至把連接回路表中所有的內(nèi)聯(lián)回路處理完畢。
內(nèi)聯(lián)回路CL中所有的內(nèi)聯(lián)點(diǎn)構(gòu)成CL的內(nèi)聯(lián)點(diǎn)集合,記為CPSCL。若內(nèi)聯(lián)點(diǎn)CPi處于其他2個內(nèi)聯(lián)點(diǎn)CPj、CPk之間,則稱CPi為中間內(nèi)聯(lián)點(diǎn)。如圖4所示,CP2和CP3是中間內(nèi)聯(lián)點(diǎn),CP1和CP2則為非中間內(nèi)聯(lián)點(diǎn)。內(nèi)聯(lián)點(diǎn)CP是內(nèi)聯(lián)回路CL的非中間內(nèi)聯(lián)點(diǎn),記為CPi→CL。
圖4 中間內(nèi)聯(lián)點(diǎn)與非中間內(nèi)聯(lián)點(diǎn)
內(nèi)聯(lián)回路在選定內(nèi)聯(lián)點(diǎn)的情況下并不能完全確定導(dǎo)線的實(shí)際物理連接關(guān)系,如圖5所示。圖5a所示為內(nèi)聯(lián)回路CL中選擇了2個內(nèi)聯(lián)點(diǎn)CP1、CP2,于是對于端點(diǎn)d2中的導(dǎo)線連接便有2種可能性:一種是連接到內(nèi)聯(lián)點(diǎn)CP1上,如圖5b中虛線所示;另一種是連接到內(nèi)聯(lián)點(diǎn)CP2上,如圖5c中虛線所示。在這2種情況中,頂點(diǎn)d2中導(dǎo)線的長度尺寸也會有所不同。
圖5 導(dǎo)線的實(shí)際物理連接關(guān)系
根據(jù)內(nèi)聯(lián)點(diǎn)選擇的具體位置,線束內(nèi)聯(lián)設(shè)計就是把內(nèi)聯(lián)回路的無向連通圖結(jié)構(gòu)變換成符合導(dǎo)線實(shí)際物理連接關(guān)系的有向樹。對于已指定內(nèi)聯(lián)點(diǎn)的內(nèi)聯(lián)回路,可以構(gòu)建出表示其所包含導(dǎo)線的實(shí)際物理連接關(guān)系的有向樹。
首先選擇內(nèi)聯(lián)回路CL中合法的內(nèi)聯(lián)點(diǎn),然后確定CL的主內(nèi)聯(lián)點(diǎn),主內(nèi)聯(lián)點(diǎn)確定規(guī)則如下:
內(nèi)聯(lián)點(diǎn)CP的度定義為內(nèi)聯(lián)回路中不通過其他內(nèi)聯(lián)點(diǎn)而直接與其連接的端點(diǎn)個數(shù),記為degree(CP),令δ(CL)=min{degree(CP)|CP∈CPSCL∧CP→CL},則集合CPSCL中所有滿足degree(CP)=δ(CL)∧CP→CL的內(nèi)聯(lián)點(diǎn)作為主內(nèi)聯(lián)點(diǎn),如果滿足該條件的內(nèi)聯(lián)點(diǎn)不止1個,則任取其中1個作為主內(nèi)聯(lián)點(diǎn)。主內(nèi)聯(lián)點(diǎn)起著確定內(nèi)聯(lián)回路CL中各導(dǎo)線實(shí)際連接方向的作用。
最后以確定的主內(nèi)聯(lián)點(diǎn)CPm為有向樹的根結(jié)點(diǎn),采用廣度優(yōu)先搜索算法遍歷內(nèi)聯(lián)回路CL,獲得的廣度優(yōu)先搜索數(shù)即為所求。
內(nèi)聯(lián)回路的有向樹如圖6所示。對圖6a所示內(nèi)聯(lián)回路,選定內(nèi)聯(lián)點(diǎn)為CP1和CP2,可知與CP1直接相連端點(diǎn)為d2和d3,與CP2直接相連端點(diǎn)為d3、d4和d5,故有degree(CP1)=2,degree(CP2)=3,因而選CP1為主 內(nèi)聯(lián)點(diǎn),以CP1為根進(jìn)行廣度優(yōu)先搜索如圖6c所示的有向樹。根據(jù)該有向樹可知這個內(nèi)聯(lián)回路由5根導(dǎo)線組成,其中d2和d3連接到CP1,d4和d5連接到CP2,CP1和CP2相連導(dǎo)線為內(nèi)聯(lián)點(diǎn)間的導(dǎo)線,稱為中段,需要人工指定其規(guī)格。
圖6 內(nèi)聯(lián)回路的有向樹
圖7所示為利用本系統(tǒng)繪制出來的線束工藝輔助設(shè)計系統(tǒng)樣例。
圖7 線束工藝輔助設(shè)計系統(tǒng)樣例
圖8所示為內(nèi)聯(lián)規(guī)劃算法交互環(huán)境。
圖8 內(nèi)聯(lián)規(guī)劃算法及交互環(huán)境
圖9所示為系統(tǒng)自動生成的內(nèi)聯(lián)工藝卡,目前根據(jù)本規(guī)劃算法所生成的內(nèi)聯(lián)工藝卡已經(jīng)應(yīng)用于新發(fā)公司實(shí)際生產(chǎn)之中,較之以前的人工規(guī)劃,極大地提高了效率和準(zhǔn)確性。
圖9 內(nèi)聯(lián)工藝卡片
本文針對線束內(nèi)聯(lián)設(shè)計的特點(diǎn),總結(jié)了線束內(nèi)聯(lián)設(shè)計過程中的工程語義約束信息,并建立關(guān)聯(lián)圖模型,通過內(nèi)聯(lián)回路自動提取算法以及規(guī)劃算法自動完成對整個線束圖紙的內(nèi)聯(lián)設(shè)計序列規(guī)劃。最后的實(shí)例表明該方法是有效可行的,能較好地解決大線束圖紙中內(nèi)聯(lián)設(shè)計序列規(guī)劃問題。本方法的最大優(yōu)點(diǎn)是整個內(nèi)聯(lián)設(shè)計序列規(guī)劃能夠自動完成,不需要與用戶進(jìn)行交互。然而由本文方法得到的內(nèi)聯(lián)設(shè)計序列僅是所有可行內(nèi)聯(lián)設(shè)計序列中的一個,并不能確保其是最優(yōu)的,原因在于當(dāng)多個接插件的“內(nèi)聯(lián)度”和“單聯(lián)度”都相等時,主件選擇具有一定的隨機(jī)性。此外,若遇到線束圖紙中存在某些極端情況,如大接插件與其他所有接插件均有回路約束關(guān)系時,該算法會把整個線束作為一個子裝配體。如果能夠進(jìn)一步總結(jié)線束內(nèi)聯(lián)設(shè)計過程中的其他約束,如設(shè)定主件的內(nèi)聯(lián)回路數(shù)目閾值,考慮壓接位置約束、子裝配體數(shù)目約束等,將使自動內(nèi)聯(lián)設(shè)計規(guī)劃的結(jié)果更符合工程設(shè)計上的要求,進(jìn)一步提高裝配的效率。
[1]吁 苗.汽車線束設(shè)計原則[J].汽車與配件,2010(1):37-39.
[2]吳 黃.線束工藝圖的建模研究[D].合肥:合肥工業(yè)大學(xué),2008.
[3]劉曉平,吳 黃,何士雙,等.線束工藝圖的建模研究[J].工程圖學(xué)學(xué)報,2009,30(2):155-161.
[4]Li Xinyu,Gao Lian,Zhang Chaoyong.A review on integrated process planning and scheduling[J].International Journal of Manufacturing Research,2012,5 (2):161-180.
[5]Wang Jinfeng,Du Biqiang,Ding Haimin.A modified genetic algorithm (GA)for optimization of process process planning [J].Journal of Computers,2011,6(3):1430-1437.
[6]徐本柱.變結(jié)構(gòu)工序狀態(tài)網(wǎng)的模型與算法研究[D].合肥:合肥工業(yè)大學(xué),2011.
[7]Miao Jian,He Deqiang,Wei Tao,et al.Research on process route designing and production line management based workflow driven [C]//Industrial Mechatronics and Automation(ICIMA),2012 2nd International Conference on,Vol 2,2012:569-573.
[8]李忠澤,徐本柱,劉曉平.基于操作語義的線束工藝設(shè)計系統(tǒng)研究[C]//計算機(jī)技術(shù)與應(yīng)用進(jìn)展2009.合肥:中國科學(xué)技術(shù)大學(xué)出版社,2009:614-618.
[9]陳 純.異構(gòu)CAD協(xié)作模型及其操作語義交換機(jī)制研究[D].上海:上海交通大學(xué),2006.