• 沒有找到結果。

第五章 結論及後續工作

5.2 後續工作

後續工作可探討不同的金屬封片外型以及 o-ring 墊圈外型對密封 性的影響,而 o-ring 墊圈的橡膠硬度,可再做更廣泛的實驗,以便更 加真實的模擬橡膠的變形情形和對漏氣量的影響。而若是其他種類的 鋼瓶,其密封方式若也是運用 o-ring 墊圈做封口,可先以本研究的方

78

式,運用模擬和實驗找出密封性較佳的組合,再去比較與本研究所得 結論之差異性;在鋼瓶內壓的部分,由於必頇以手動的方式給定 o-ring 墊圈一均部內壓,若以此方式去進行模擬,在多組尺寸組合以及最佳 化模擬的情況下便難以進行,因此本研究並沒有考慮 o-ring 墊圈承受 氣體壓力的情形,後續可用 fluid element[12]或以其他方式進一步的 模擬高壓氣體對 o-ring 墊圈的影響,以便能更真實反映出 o-ring 墊圈 接觸應力狀態和變形的狀況;在沖頭最佳化部分,由於本研究僅針對 其中一組尺寸做開模實驗,若後續要針對沖頭外型做深入研究,可再 挑選數組鋼瓶尺寸密封性較好的組合,去做沖頭最佳化的模擬與實驗,

進一步提升密封性與更了解沖頭外型對密封性的影響。

79

參考文獻

[1] D. Burgess, “Nonmetallic gaskets: Avoiding leaks and blow outs”, Plant Engineering,1999 Oct; 60-64.

[2] H. Champliaud and N. V. Lê, “Prediction of the leakage pressure of a cap and bottle assembly using the finite element method”, Glass Technology, 2003; 44(6):225-230.

[3] G. Boqin, C. Ye, and Z. Dasheng, “Prediction of leakage Rates Through Sealing Connections with Nonmetallic Gaskets”, Nanjing University of Technology, 2007; 15(6):837-841.

[4] Y. Matsuzaki, K. Hosokawa, and K. Funabashi, “Effect of Surface Roughness on Contact Pressure of Static Seals”, JSME International Journal, Series III, 1992; 35(3):119-124.

[5] 許嘉元,“金屬密封塑性變形研究”,國立台灣大學機械工程 學系研究所碩士論文,2000。

[6] J. Arghavani, M. Derenne, and L. Marchand, “Effect of Surface Characteristics on Compressive Stresses and Leakage Rate in Gasketed Flanged Joints”, Advanced Manufacturing technology,

2003; 21:713-732.

[7] 左亮,“橡膠 Mooney-Rivlin 模型材料系數的一種確定方法”,

西南交通大學,2008。

[8] S. Y. Chen, “SmartDO Version 2.0 Manuals”, FEA-Opt Technology, 2008.

[12] ABAQUS 6.8-1 HTML Documentation.

80

[13] 士盟科技股份有限公司,http://www.simutech.com.tw。

[14] 愛發股份有限公司,『 ABAQUS 實務入門引導』,初版,全華,

2005。

[15] 元翎精密工業股份有限公司,http://www.twmosa.com。

[16] 韓忠諭“複合金屬板材板液壓成形之有限元素分析”,國立 交通大學機械工程學系研究所碩士論文,2009。

[17] 李曉芳,“封隔器膠筒接觸應力的有限元分析”,福建福州大 學,2005。

81

附錄 A 連接 SmartDO 和 ABAQUS/Standard 的程式碼

# -*- coding: mbcs -*-

#

# Abaqus/CAE Version 6.8-1 replay file

# Internal Version: 2008_05_02-13.37.42 86896

# Run by six on Wed Dec 23 11:55:48 2009

#

# from driverUtils import executeOnCaeGraphicsStartup

# executeOnCaeGraphicsStartup()

#: Executing \"onCaeGraphicsStartup()\" in the site directory ...

from abaqus import *

from abaqusConstants import *

session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=192.98516061902, height=190.634765625)

session.viewports\['Viewport: 1'\].makeCurrent() session.viewports\['Viewport: 1'\].maximize() from caeModules import *

from driverUtils import executeOnCaeStartup executeOnCaeStartup()

openMdb(pathName='C:/Temp/cylinder.cae')

#: The model database \"C:\\Temp\\cylinder.cae\" has been opened.

session.viewports\['Viewport: 1'\].setValues(displayedObject=None) p = mdb.models\['Model-1'\].parts\['NN08-03-E'\]

session.viewports\['Viewport: 1'\].setValues(displayedObject=p) p1 = mdb.models\['Model-1'\].parts\['punch'\]

session.viewports\['Viewport: 1'\].setValues(displayedObject=p1) p = mdb.models\['Model-1'\].parts\['punch'\]

s = p.features\['Wire-1'\].sketch

mdb.models\['Model-1'\].ConstrainedSketch(name='__edit__', objectToCopy=s) s1 = mdb.models\['Model-1'\].sketches\['__edit__'\]

g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints s1.setPrimaryObject(option=SUPERIMPOSE)

p.projectReferencesOntoSketch(sketch=s1, upToFeature=p.features\['Wire-1'\], filter=COPLANAR_EDGES)

DV001 = $smartdo_x(1) DV002 = $smartdo_x(2)

82

DV003 = $smartdo_x(3) DV004 = $smartdo_x(4)

d\[0\].setValues(value=DV001, ) d\[2\].setValues(value=DV002, ) d\[4\].setValues(value=DV003, ) d\[1\].setValues(value=DV004, ) s1.unsetPrimaryObject()

p = mdb.models\['Model-1'\].parts\['punch'\]

p.features\['Wire-1'\].setValues(sketch=s1)

del mdb.models\['Model-1'\].sketches\['__edit__'\]

p = mdb.models\['Model-1'\].parts\['punch'\]

p.regenerate()

a = mdb.models\['Model-1'\].rootAssembly a.regenerate()

a = mdb.models\['Model-1'\].rootAssembly

session.viewports\['Viewport: 1'\].setValues(displayedObject=a)

session.viewports\['Viewport: 1'\].assemblyDisplay.setValues(mesh=ON) session.viewports\['Viewport: 1'\].assemblyDisplay.meshOptions.setValues(

meshTechnique=ON)

a = mdb.models\['Model-1'\].rootAssembly partInstances =(a.instances\['punch-1'\], ) a.generateMesh(regions=partInstances)

session.viewports\['Viewport: 1'\].assemblyDisplay.setValues(mesh=OFF) session.viewports\['Viewport: 1'\].assemblyDisplay.meshOptions.setValues(

meshTechnique=OFF) import job

mdb.jobs\['cylinder'\].submit(consistencyChecking=OFF) mdb.jobs\['cylinder'\].waitForCompletion()

#: The job input file \"cylinder.inp\" has been submitted for analysis.

#: Job cylinder: Analysis Input File Processor completed successfully.

#: Job cylinder: Abaqus/Standard completed successfully.

#: Job cylinder completed successfully.

import visualization

o3 = session.openOdb(name='C:/Temp/cylinder.odb')

#: Model: C:/Temp/cylinder.odb

#: Number of Assemblies: 1

#: Number of Assembly instances: 0

#: Number of Part instances: 4

83

#: Number of Meshes: 4

#: Number of Element Sets: 3

#: Number of Node Sets: 4

#: Number of Steps: 2

session.viewports\['Viewport: 1'\].setValues(displayedObject=o3)

session.viewports\['Viewport: 1'\].odbDisplay.display.setValues(plotState=(

CONTOURS_ON_DEF, ))

session.viewports\['Viewport: 1'\].view.setValues(nearPlane=67.8488,

farPlane=93.5774, width=6.11329, height=4.541, viewOffsetX=-0.92217, viewOffsetY=5.02598)

leaf = dgo.LeafFromPartInstance(partInstanceName=('O-RING', ))

session.viewports\['Viewport: 1'\].odbDisplay.displayGroup.replace(leaf=leaf) odb = session.odbs\['C:/Temp/cylinder.odb'\]

session.fieldReportOptions.setValues(sort=DESCENDING)

session.writeFieldReport(fileName='CPRESS.txt', append=OFF, sortItem='CPRESS', odb=odb, step=1, frame=18, outputPosition=ELEMENT_NODAL, variable=((

'CPRESS', ELEMENT_NODAL), )) mdb.save()

#: The model database has been saved to \"C:\\Temp\\cylinder.cae\".

84

附錄 B SmartDO 的其他程式碼

目標函數

catch {file delete -force cylinder.lck}

catch {file delete -force CPRESS.txt}

smartdo exetcl cylinder01.py cylinder02.py

catch {exec abaqus cae noGUI=cylinder02.py}

set File001 [open "CPRESS.txt" "r"]

while { [gets $File001 String001] != -1} {

if { [string first "Total" $String001] != -1 } { set smartdo_obj [lindex $String001 1]

set smartdo_obj [expr 500-$smartdo_obj]

} }

close $File001

限制條件

set File001 [open "CPRESS.txt" "r"]

set Line 1 set totalcpress 0 set Totaline 0 set sumcpress 0

while { [gets $File001 String001] != -1} {

set Totaline [expr $Totaline+1]

}

set Totaline [expr $Totaline-32]

close $File001

85

set File001 [open "CPRESS.txt" "r"]

while { [gets $File001 String001] != -1} {

close $File001

set File001 [open "CPRESS.txt" "r"]

while { [gets $File001 String001] != -1} {

86

close $File001

#

=============================================================

#constraint2:the contact area must higher than 80%

=============================================================

set File001 [open "CPRESS.txt" "r"]

while { [gets $File001 String001] != -1} {

close $File001

87

變數資料檔案(初始值&上下界)

set smartdo_ioptmzr 1 set smartdo_idflt 12

#

# model parameters

#

set smartdo_ndv 4 set smartdo_ncnstrn 2

#

# design variables

#

smartdo filobj cylinder_obj.tcl smartdo filcns cylinder_cns.tcl

88

附錄 C 改變金屬封片尺寸的模擬與實驗

初步後續工作之一,由元翎精密工業變更金屬封片尺寸,應用本 研究之結論進行模擬與實驗。新版與舊版之金屬封片外型如下圖所示

主要變動較大的尺寸如圖中紅框所示,應用先前的研究結果,模擬參 數如下表所示:

將模擬結果依 o-ring 墊圈最大接觸應力和接觸應力標準差製成圖表,

並結合 o-ring 墊圈接觸面積來判斷,選出九組模擬情形較佳的尺寸組

製程參數 變數值

鋼瓶口高度(mm) 3.8 ,3.85,3.9 鋼瓶口內徑(mm) 7.5,7.55,7.6 o-ring 墊圈高度(mm) 2.3,2.5 o-ring 墊圈厚度(mm) 1.3,1.5

89

90

方面是金屬封片之尺寸改良,另一方面是模擬的準確預測,確實能夠 降低詴誤法所花費的時間和成本。

91

附錄 D 改變 o-ring 墊圈硬度的模擬

在本研究中 o-ring 墊圈的硬度值為固定,但由於在文獻中也有其 他 o-ring 墊圈硬度值的資訊,因此本研究也模擬了不同 o-ring 墊圈硬 度對接觸應力的影響,首先選定一組固定的尺寸組合,接著參考文獻 中的實驗數據改變 o-ring 墊圈的材料係數來做模擬。

改變 o-ring 墊圈硬度的模擬結果 接觸應力

oring 硬度

最大接觸應力(MPa) 接觸面積(%) 接觸應力標準差

50 度 1.03652 68.38235 0.18746 60 度 1.50402 69.58924 0.27334 70 度 2.26158 72.36782 0.41436

由模擬結果可以看出,增加 o-ring 墊圈硬度也會影響到接觸應力 狀態,最大接觸應力、接觸面積和接觸應力標準差都隨之增加;而由 模擬與實驗所得之接觸應力與密封性的關係,可知 o-ring 墊圈的硬度 也有一適當值,硬度太軟則不足以產生足夠的接觸應力強度使鋼瓶達 成良好的密封,但硬度過硬則會使接觸應力標準差上升,造成接觸應 力分佈的不平均,反而讓密封性下降。

相關文件