董宣廷,王瀚,李天箭
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
近年來(lái),有限元分析方法在工程設(shè)計(jì)尤其是拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)領(lǐng)域的地位越來(lái)越重要,但是拓?fù)鋬?yōu)化得到的結(jié)構(gòu)幾何形狀往往比較復(fù)雜,常用的制造工藝難以加工或成本較高,因此需要在實(shí)際加工之前對(duì)其進(jìn)一步分析,得到物理屬性后對(duì)結(jié)構(gòu)進(jìn)行進(jìn)一步優(yōu)化或重構(gòu)[1]。由于結(jié)構(gòu)的骨架具有和原本結(jié)構(gòu)相同的拓?fù)湫畔⒑托螤钐卣鳎軌蛴行У孛枋鲈镜慕Y(jié)構(gòu),因此與骨架相關(guān)的方法常被使用。
骨架的提取在計(jì)算機(jī)圖形學(xué)、計(jì)算幾何學(xué)、點(diǎn)集拓?fù)鋵W(xué)和圖論等跨學(xué)科專業(yè)中都有非常重要的作用[2]。H.Blum 最早提出中軸算法,即對(duì)區(qū)域內(nèi)的每一個(gè)點(diǎn),在邊界中搜索到的最近的點(diǎn)多于1 個(gè)時(shí),則該點(diǎn)為圖像的骨架單元。但該方法比較費(fèi)時(shí),且對(duì)噪聲比較敏感,不能保證骨架線的連通[3]。劉俊濤等[4]提出了一種提取物體線形骨架的重要方法。該方法首先計(jì)算物體距離變換的梯度,從而得到一個(gè)矢量場(chǎng),可以根據(jù)梯度獲得物體內(nèi)部的關(guān)鍵點(diǎn),其中每一個(gè)關(guān)鍵點(diǎn)代表了物體的一個(gè)凸部分,之后使用搜索梯度最短路徑的方法連接關(guān)鍵點(diǎn)即可得到物體的線形骨架。閆曉磊等[5]采用拓?fù)浼?xì)化方法,提取了拓?fù)浣Y(jié)構(gòu)的骨架構(gòu)型,并且以此為基礎(chǔ),判定結(jié)構(gòu)中不滿足最小尺寸約束的部位,基于改進(jìn)的BESO 算法,成功實(shí)現(xiàn)了對(duì)拓?fù)鋬?yōu)化結(jié)構(gòu)的最小尺寸精確控制;周奇才等[6]以二值圖像細(xì)化算法為基礎(chǔ),提出了基于有限單元8-鄰域網(wǎng)格模型的骨架提取算法。在拓?fù)鋬?yōu)化完成后,應(yīng)用網(wǎng)格模型骨架提取算法,提取拓?fù)鋬?yōu)化模型的網(wǎng)格骨架,找到反映拓?fù)浣Y(jié)構(gòu)特征的傳力關(guān)鍵點(diǎn),再基于傳力關(guān)鍵點(diǎn)連接桿件形成桿系結(jié)構(gòu),并且根據(jù)滿應(yīng)力準(zhǔn)則對(duì)其進(jìn)行優(yōu)化。所得到的桿系結(jié)構(gòu)具有較好的拓?fù)錁?gòu)型和桿件截面尺寸,所提出的方法也為桿系結(jié)構(gòu)的拓?fù)鋬?yōu)化設(shè)計(jì)提供了一種新的思路;Zhang 等[7]提出了一種新穎的結(jié)合歐氏距離和有序細(xì)化算法來(lái)提取骨架的方法。文章首先給出了“刪除模板”,該模板可以確定一個(gè)給定像素點(diǎn)的8 個(gè)相鄰像素點(diǎn)是否能夠刪除,并對(duì)滿足要求的點(diǎn)進(jìn)行刪除,之后再得到物體的骨架。該算法提出的骨架能夠正確地保留物體的拓?fù)浣Y(jié)構(gòu),并且提取的骨架定位準(zhǔn)確,對(duì)邊界噪聲不敏感;Hu 等[8]提出了一種基于點(diǎn)云模型的截面中心點(diǎn)集合的曲線骨架表達(dá),并提出了相應(yīng)的提取方法。首先提供三維點(diǎn)云模型的距離場(chǎng)的替代方法,然后將其與曲率結(jié)合起來(lái),捕捉混合特征點(diǎn),之后通過(guò)引入相關(guān)的面和點(diǎn),將這些混合特征點(diǎn)沿著骨架引導(dǎo)的法線方向移動(dòng),以接近局部中心點(diǎn),通過(guò)基于張量的譜系聚類來(lái)簡(jiǎn)化它們,最后將它們連接起來(lái),形成一個(gè)主要的連接曲線骨架,再通過(guò)去毛刺、修剪等步驟來(lái)完善骨架;Li 等[9]提出了一種基于三維圖形中軸線的方法,以方便和快速地提取高質(zhì)量的曲線骨架。主要的中心度測(cè)量方法為通過(guò)由內(nèi)向外的演化方案來(lái)模擬火災(zāi)的傳播,與現(xiàn)有的使用由邊界到內(nèi)部的外向演化方案的方法不同,并且提出了抑制影響的措施,能夠獲得良好、緊湊并且居中的曲線骨架;Cai 等[10]通過(guò)分析Snakes 模型中梯度矢量場(chǎng)的分布特征,提出了一種基于拓?fù)浣Y(jié)構(gòu)和通量的新的骨架提取方法,即計(jì)算完臨界點(diǎn)的特征值和梯度矢量場(chǎng)的通量后即可準(zhǔn)確獲得骨架的分布特征,從而有效地提取骨架。該方法不需要對(duì)目標(biāo)圖像進(jìn)行預(yù)處理或二值化,能夠有效地提取復(fù)雜灰度圖像的骨架,與傳統(tǒng)方法相比,該方法提取精度較高,處理速度較快。
上述的研究主要提出了一些優(yōu)化或改進(jìn)的提取結(jié)構(gòu)骨架的方法,然而很少有研究對(duì)提取出的骨架進(jìn)行進(jìn)一步分析。本文在上述方法的基礎(chǔ)上,結(jié)合ANSYS Workbench 軟件的相關(guān)特性,將整個(gè)實(shí)體結(jié)構(gòu)細(xì)分為若干區(qū)塊進(jìn)行分析,選擇距離每個(gè)區(qū)塊形狀中心最近的網(wǎng)格節(jié)點(diǎn)作為關(guān)鍵節(jié)點(diǎn),連接形成骨架。提取的結(jié)構(gòu)骨架不僅包括模型的幾何拓?fù)浣Y(jié)構(gòu)、空間形貌特征,還包括結(jié)構(gòu)的變形量以及靜剛度矩陣等物理性能特征。以一個(gè)三維L 型支架為例,進(jìn)行有限元分析和拓?fù)鋬?yōu)化,對(duì)拓?fù)鋬?yōu)化后的模型進(jìn)行骨架提取,來(lái)證明該骨架提取方法的正確性,并對(duì)骨架進(jìn)行分析,得到相關(guān)的物理屬性,為后續(xù)數(shù)據(jù)的再利用和結(jié)構(gòu)的參數(shù)化重構(gòu)提供基礎(chǔ)。
首先通過(guò)ANSYS Workbench 軟件中的Design Modular 模塊畫出優(yōu)化實(shí)例模型,模型的各項(xiàng)尺寸如圖1(a)所示。模型底部使用4 點(diǎn)固定約束,在A表面上施加一個(gè)與x 軸垂直同時(shí)與-y 方向和-z 方向呈45°、大小為1 kN 的均布載荷F1;在B 表面上施加一個(gè)-z 方向同時(shí)垂直于x 軸和y 軸,大小為1 kN 的均布載荷F2。分析時(shí)使用六面體單元,將網(wǎng)格單元定為1 mm,將設(shè)計(jì)域離散為28 000 個(gè)六面體單元。使用SIMP 方法作為拓?fù)鋬?yōu)化方法,并對(duì)優(yōu)化后的模型在同一位置添加固定約束和載荷,進(jìn)行靜力學(xué)分析,得到結(jié)構(gòu)的變形云圖如圖1(b)所示。
圖1 三維L 型支架模型拓?fù)鋬?yōu)化前后模型圖及優(yōu)化后變形云圖Fig.1 Comparison of original and optimized 3D L-shaped brackets
之后輸出各個(gè)節(jié)點(diǎn)編號(hào)及其對(duì)應(yīng)的x、y、z 坐標(biāo)值和總變形值大小并且進(jìn)行記錄。分別輸出4 個(gè)變形大小為0 的固定約束節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)編號(hào)和坐標(biāo)值,作為骨架的起始節(jié)點(diǎn)。將模型的最大變形值記為dmax,最小變形值記為dmin。將整個(gè)模型劃分為15 個(gè)區(qū)塊,記為Bm(m=1,2,…,15)。將每一個(gè)區(qū)塊所對(duì)應(yīng)的變形量取值范圍記為δ,即
在上述15 個(gè)區(qū)塊的基礎(chǔ)上,再通過(guò)平行于各坐標(biāo)平面的切片對(duì)各個(gè)區(qū)塊進(jìn)行細(xì)分,形成新的區(qū)塊BNn(n=1,2,…)。對(duì)于新形成的區(qū)塊,需要保證其在后續(xù)提取區(qū)塊內(nèi)關(guān)鍵節(jié)點(diǎn)的過(guò)程中只存在唯一節(jié)點(diǎn)。
由于上述的定義,新獲得的區(qū)塊一定是長(zhǎng)方體,分別記錄長(zhǎng)方體6 個(gè)平面對(duì)應(yīng)方向上的坐標(biāo),用以計(jì)算該區(qū)塊的中間點(diǎn)坐標(biāo)。分別將各坐標(biāo)記為BNnxmax、BNnxmin、BNnymax、BNnymin、BNnzmax、BNnzmin。將各個(gè)單連通區(qū)域的中間點(diǎn)記為Mn,有
在獲取骨架關(guān)鍵節(jié)點(diǎn)時(shí),需要優(yōu)先取區(qū)塊BNn的中間點(diǎn)并獲得其對(duì)應(yīng)坐標(biāo),但由于拓?fù)鋬?yōu)化后的模型形狀不規(guī)則,因此在對(duì)其進(jìn)行有限元分析時(shí)網(wǎng)格的劃分會(huì)不均勻,有可能出現(xiàn)區(qū)塊的中間點(diǎn)上并不存在網(wǎng)格節(jié)點(diǎn)的情況,因此需要取離中間點(diǎn)最近的網(wǎng)格節(jié)點(diǎn)作為關(guān)鍵節(jié)點(diǎn)。將關(guān)鍵節(jié)點(diǎn)記為Kn,BNn內(nèi)的所有節(jié)點(diǎn)記為Tnk(k=1,2,…),Tnk與Mn之間的距離記為distk,Kn與Mn之間的距離記為distmin,即distk取到distmin時(shí)對(duì)應(yīng)的Tnk的坐標(biāo)值即為Kn的坐標(biāo)值,有
選擇模型的其中一個(gè)區(qū)塊來(lái)說(shuō)明關(guān)鍵節(jié)點(diǎn)的提取過(guò)程,結(jié)構(gòu)示意圖如圖2 所示。
圖2 關(guān)鍵節(jié)點(diǎn)提取示意圖Fig.2 Schematic representation of the calculation process of the key node
記錄各點(diǎn)的Kn坐標(biāo)值后,需要按照順序連接各個(gè)關(guān)鍵節(jié)點(diǎn),連接的方法為:從各個(gè)骨架的起始點(diǎn)pt出發(fā),按位移逐漸增大的方向,尋找相鄰BNn中的Kn,直到取到位移最大值點(diǎn)所在區(qū)塊中的關(guān)鍵節(jié)點(diǎn),并按順序進(jìn)行連接。如果過(guò)程中出現(xiàn)同時(shí)有多個(gè)區(qū)塊與上一個(gè)區(qū)塊相鄰,則說(shuō)明該部分存在分支,需要從上一個(gè)區(qū)塊對(duì)應(yīng)的關(guān)鍵節(jié)點(diǎn)開始,分別連接各個(gè)相鄰區(qū)塊中的關(guān)鍵節(jié)點(diǎn),并分別從各個(gè)關(guān)鍵節(jié)點(diǎn)(1~5)開始繼續(xù)搜索,如圖3 所示。在所有的關(guān)鍵節(jié)點(diǎn)都被選擇過(guò)后,即所有的pt都被使用過(guò)后,所得到的線形模型即為結(jié)構(gòu)的骨架。
圖3 分支示意圖Fig.3 Schematic diagram of the branches
在骨架連接完成后,會(huì)出現(xiàn)某些關(guān)鍵節(jié)點(diǎn)被多次使用,并且連接各關(guān)鍵節(jié)點(diǎn)的連接線也被反復(fù)使用的情況,此時(shí)需要對(duì)這些多余的部分進(jìn)行去除,得到完整且沒(méi)有重復(fù)節(jié)點(diǎn)和連接線的骨架。
根據(jù)上一節(jié)中的方法和步驟,最終得到的骨架與模型的疊加,如圖4 所示。從圖4 可以看出,該方法可以提取出完整的結(jié)構(gòu)骨架,并且可以判斷分支的存在。
圖4 三維L 型支架骨架圖Fig.4 Skeleton diagram of 3D L-shaped bracket
由上文可知,在對(duì)模型進(jìn)行前處理時(shí),所施加的力和所定義的固定約束都是對(duì)稱的,但結(jié)果中依然出現(xiàn)了骨架模型不對(duì)稱的情況,這是由于在對(duì)模型進(jìn)行區(qū)塊劃分時(shí),可能會(huì)出現(xiàn)區(qū)塊形狀不規(guī)則的情況。此外,在記錄關(guān)鍵點(diǎn)時(shí),所使用的是網(wǎng)格節(jié)點(diǎn),而在劃分拓?fù)鋬?yōu)化后模型的網(wǎng)格時(shí),整體網(wǎng)格會(huì)呈現(xiàn)不規(guī)則分布,因此最后取到的節(jié)點(diǎn)無(wú)法關(guān)于某個(gè)平面完全對(duì)稱,這也使得在最后連接各點(diǎn)形成骨架時(shí)會(huì)出現(xiàn)骨架節(jié)點(diǎn)并不對(duì)稱的情況,如圖5 所示。
圖5 誤差分析Fig.5 Analysis of errors
在完成骨架提取后,需要對(duì)骨架關(guān)鍵節(jié)點(diǎn)上的物理屬性進(jìn)行提取。骨架關(guān)鍵節(jié)點(diǎn)的編號(hào)、坐標(biāo)和變形可以由仿真軟件直接輸出,而各個(gè)節(jié)點(diǎn)靜剛度矩陣的提取需要使用相關(guān)的APDL 代碼,根據(jù)該代碼提取出的部分剛度矩陣如表1 所示。具體代碼和相關(guān)注釋為
表1 物理屬性Tab.1 Physical properties
本文提出了一種骨架提取的新方法,并且通過(guò)一個(gè)三維的算例,對(duì)骨架提取的過(guò)程進(jìn)行了說(shuō)明,得到了如下結(jié)論:
(1)該方法可以提出結(jié)構(gòu)中的各關(guān)鍵節(jié)點(diǎn),對(duì)各關(guān)鍵節(jié)點(diǎn)按順序進(jìn)行連接后可以得到結(jié)構(gòu)內(nèi)部反映其幾何形貌特征的骨架;
(2)在完成骨架的提取后,可以通過(guò)APDL代碼實(shí)現(xiàn)骨架各關(guān)鍵節(jié)點(diǎn)上物理屬性的提取,包括各節(jié)點(diǎn)的坐標(biāo)位置、變形量大小以及靜剛度矩陣;
總體而言,用該方法提取的骨架不僅可以獲得骨架的幾何特征,還可以獲得骨架的物理特征。這可以實(shí)現(xiàn)基于數(shù)據(jù)的結(jié)構(gòu)特征描述和存儲(chǔ),為數(shù)據(jù)的再利用和結(jié)構(gòu)的參數(shù)化重構(gòu)提供了基礎(chǔ)。