袁俊杰,王錦濤,郭無極
(1.廣西大學(xué)機(jī)械工程學(xué)院,廣西 南寧 530004;2.南京農(nóng)業(yè)大學(xué)工學(xué)院,江蘇 南京210031)
目前,隨著虛擬樣機(jī)技術(shù)即機(jī)械系統(tǒng)動(dòng)態(tài)仿真技術(shù)在數(shù)字化設(shè)計(jì)及多體動(dòng)力學(xué)仿真領(lǐng)域的運(yùn)用,可以讓設(shè)計(jì)人員在各種虛擬環(huán)境下對(duì)產(chǎn)品的整體運(yùn)動(dòng)進(jìn)行仿真,通過對(duì)虛擬樣機(jī)添加相關(guān)約束、載荷條件和驅(qū)動(dòng),模擬樣機(jī)真實(shí)運(yùn)動(dòng)時(shí)的情況,便于觀察運(yùn)動(dòng)時(shí)樣機(jī)相關(guān)部件的受力情況,對(duì)設(shè)計(jì)方案進(jìn)行分析。利用虛擬樣機(jī)對(duì)產(chǎn)品進(jìn)行開發(fā)時(shí),不僅能代替物理樣機(jī)進(jìn)行試驗(yàn)驗(yàn)證,減少返工,還能設(shè)定多種工作情況、開展試驗(yàn)設(shè)計(jì)對(duì)某一部件尺寸或者性能進(jìn)行優(yōu)化,縮短了樣機(jī)的可開發(fā)周期,提高了設(shè)計(jì)的效率和質(zhì)量[1-2]。
在虛擬樣機(jī)仿真軟件Adams中,對(duì)機(jī)械系統(tǒng)進(jìn)行仿真建模時(shí),常常會(huì)因?yàn)槲锪系膫€(gè)數(shù)太多,而必須對(duì)物料進(jìn)行重復(fù)建模,如在物料輸送過程中,物料與物料之間會(huì)發(fā)生碰撞,同時(shí)物料與樣機(jī)模型部件之間也會(huì)發(fā)生碰撞,但是在Adams軟件界面中對(duì)于相互碰撞的物體,一次只能對(duì)兩個(gè)相互碰撞的物體進(jìn)行碰撞關(guān)系的設(shè)定,要想對(duì)每個(gè)物料與其他物料之間的碰撞關(guān)系以及每個(gè)物料與所接觸的部件之間的碰撞關(guān)系進(jìn)行設(shè)定,只能依次點(diǎn)擊如圖1所示的碰撞力設(shè)置窗口進(jìn)行參數(shù)設(shè)定,十分繁瑣。

圖1 碰撞力設(shè)置窗口
如圖2所示的甘蔗排種器,在其左側(cè)的儲(chǔ)種箱內(nèi)儲(chǔ)有150根甘蔗等待排出,若不采用宏命令進(jìn)行建模,則必須在Adams中連續(xù)建立150根甘蔗模型或?qū)?50根甘蔗模型,再依次對(duì)這些甘蔗模型進(jìn)行彈性模量、密度、泊松比的設(shè)置,之后對(duì)150根甘蔗之間的兩兩碰撞關(guān)系進(jìn)行設(shè)定,則需要進(jìn)行11325次操作,對(duì)于150根甘蔗與其發(fā)生碰撞的12個(gè)樣機(jī)部件進(jìn)行碰撞關(guān)系的設(shè)定,則需要1 800次操作,所以在物料輸送機(jī)械建模仿真時(shí),若不采用宏命令進(jìn)行建模,操作將十分不便。

圖2 液壓系統(tǒng)原理
針對(duì)此問題,將利用Adams宏命令,對(duì)以甘蔗排種器為代表的物料輸送機(jī)械建模過程中各材料參數(shù)和碰撞力的設(shè)定問題進(jìn)行深入探索和解決。
宏命令是包含于Adams/view的命令集,它可以執(zhí)行大量繁瑣、重復(fù)、連串的命令。在宏命令中可以對(duì)模型的一系列參數(shù)進(jìn)行設(shè)定,實(shí)現(xiàn)宏命令與模型之間的數(shù)據(jù)交換。宏命令可以在Adams/View中的命令窗口、宏命令、對(duì)話框、菜單、按鈕命令中使用。
主要功能[3]:
(1)連續(xù)執(zhí)行重復(fù)性操作;
(2)進(jìn)行參數(shù)設(shè)定,與View界面模型實(shí)現(xiàn)數(shù)據(jù)交換;
(3)自動(dòng)完成模型的建立、復(fù)制、移動(dòng);
(4)迅速建立建模所需變量。
以甘蔗排種器排出的物料甘蔗為例,甘蔗模型為圓柱體,甘蔗種類為新臺(tái)糖22號(hào),通過采用文獻(xiàn)[4]中方法對(duì)甘蔗進(jìn)行采樣、分組、測(cè)量,確定甘蔗模型的尺寸為直徑為29.84 mm,其莖節(jié)凸起約1.5 mm,取其莖節(jié)處直徑為33 mm,確定模型長(zhǎng)度為270 mm,為如圖3所示。

圖3 甘蔗模型
首先,在適當(dāng)?shù)奈恢媒⑹讉€(gè)甘蔗模型;隨后,對(duì)所繪制的首根甘蔗模型進(jìn)行復(fù)制(此操作同時(shí)復(fù)制模型形狀和參數(shù)),生成余下149根甘蔗模型;同時(shí),在模型復(fù)制的過程中,注意對(duì)復(fù)制出的甘蔗模型進(jìn)行移動(dòng)操作,將150根甘蔗排布整齊,如圖4所示。

圖4 150根甘蔗模型
點(diǎn)開Adams/View工具欄的Tool選項(xiàng),依次點(diǎn)擊Marco→Edit→New,創(chuàng)建宏命令,如 Marco_1,之后點(diǎn)擊Wrap in uodo→Yes,保證該命令可以被撤銷,便于修改。
完成上述操作的宏命令程序如下:
defaults model model_name=.MODEL_1注釋:項(xiàng)目名稱
variable create variable_name=ip&注釋:創(chuàng)建變量
integer_value=1變量初始賦值
while condition=(ip<150)注釋:在首根甘蔗模型的位置創(chuàng)建其余149根甘蔗模型
part copy part=.MODEL_1.PART_1&
new_part=(unique_name("PART"))
variable modify variable_name=ip&
integer_value=(eval(ip+1))
end
variable delete variable_name=ip注釋:消去變量
defaults model part_name=.MODEL_1.PART_1
variable create variable_name=ip&
integer_value=1
while condition=(ip<150) 注釋:將其余甘蔗模型進(jìn)行移動(dòng)
move object part_name=&注釋:同行甘蔗相鄰質(zhì)心之間距離為33mm
(eval(".MODEL_1.PART_"http://(ip+1)))&
c1=33 c2=0 c3=0&
cspart_name=&
(eval(".MODEL_1.PART_"http://(ip)))
variable create variable_name=ip1&
integer_value=1
while condition=(ip1<135) 注釋:同列甘蔗相鄰質(zhì)心之間距離為33mm
move object part_name=&
(eval(".MODEL_1.PART_"http://(ip1+15)))&
c1=0 c2=33 c3=0&
cspart_name=&
(eval(".MODEL_1.PART_"http://(ip1)))
variable modify variable_name=ip1&
integer_value=(eval(ip1+15))
end
variable delete variable_name=ip1
variable modify variable_name=ip&
integer_value=(eval(ip+1))
end
variable delete variable_name=ip
依次點(diǎn)擊Tool MarcoDebug Marco,選擇宏命令Marco_1,點(diǎn)擊Run運(yùn)行宏命令。
通過創(chuàng)建統(tǒng)一的材料屬性,再采用循環(huán)結(jié)構(gòu)將此材料屬性賦給全部物料模型。
依文獻(xiàn)方法[4]中方法測(cè)得新臺(tái)唐22號(hào)甘蔗密度為1.11e-6,彈性模量為122.45,泊松比為0.3.
創(chuàng)建名為ganzhe_1的材料屬性。建立宏命令Marco_2并運(yùn)行,宏命令如下:
defaults model model_name=.MODEL_1
material create material_name=&
(eval(".MODEL_1.MATERIAL_"http://"ganzhe_"http://(1)))&
density=1110&
youngs_modulus=1.2245E8&
poissons_ratio=0.3
將材料屬性賦予全部物料模型。建立宏命令Marco_3.并運(yùn)行,宏命令如下:
defaults model model_name=.MODEL_1
for variable_name =tempreal start_value =1 end_value=60
part modify rigid mass_properties&
part_name=(eval(".MODEL_1.PART_"http://rtoi(tempreal)))&
material_type=.MODEL_1.MATERIAL_ganzhe_1
end
此時(shí)150根甘蔗已經(jīng)全部定義完成,但它們還只是彼此獨(dú)立的模型,不存在任何接觸關(guān)系,若就此運(yùn)行Adams進(jìn)行仿真,甘蔗模型之間會(huì)出現(xiàn)彼此完全穿透的現(xiàn)象,所以要對(duì)每?jī)蓚€(gè)甘蔗模型之間的碰撞參數(shù)進(jìn)行設(shè)定。
本文采用impact函數(shù)模型對(duì)碰撞關(guān)系進(jìn)行設(shè)定。

式中:K為接觸剛度系數(shù);x1為位移開關(guān)量,用于確定單側(cè)碰撞是否起作用;x為接觸物體之間的實(shí)際位移;d為阻尼最大時(shí)兩接觸物體的穿透深度;Cmax為最大接觸阻尼;x˙為穿透速度;n為非線性彈簧力指數(shù)。
當(dāng) x>x1時(shí),兩物體不發(fā)生接觸,接觸力為0,當(dāng)x<x1時(shí),兩物體接觸,接觸力大小與接觸剛度系數(shù)、非線性指數(shù)、阻尼系數(shù)以及兩物體距離的改變量即穿透量有關(guān)[1]。
Adams中的碰撞關(guān)系的設(shè)定是基于Hertz彈性碰撞定律的,根據(jù)Hertz定律[5]。

式(2)、(3)、(4)中:R2為甘蔗半徑,取 15mm,Ei為弾性模型,μi為泊松比。

在定義甘蔗之間和甘蔗與鋼板之間的碰撞時(shí),對(duì)于e(Force Exponent)為力的指數(shù),剛度項(xiàng)的貢獻(xiàn)因子,都取默認(rèn)值2.2;C(Damping)為阻尼系數(shù),單位為N*sec/m,通常取剛度值的0.1%~1%,本文前三者取10 N*sec/m;δ為穿透深度,對(duì)應(yīng)Adams取最大阻尼系數(shù)時(shí)的穿透深度,取δ=0.1 mm.
根據(jù)文獻(xiàn)[6]所述方法測(cè)得,甘蔗與甘蔗之間靜摩擦系數(shù)為0.66,動(dòng)摩擦系數(shù)取0.46.
建立宏命令Marco_4并運(yùn)行,編寫的宏命令如下:
defaults model model_name=.MODEL_1
variable create variable_name=ip&
integer_value=1
while condition=(ip<150)
variable create variable_name=ip1&
integer_value=2
variable create variable_name=paiming&
integer_value=1
while condition=(ip1<151)
if condition=(ip contact create contact_name=(eval("CGZ_"http://(ip)//"_"http://(paiming+1)))&i_geometry_name=(eval(".MODEL_1.PART_"http://(ip)//".SOLID16"))& j_geometry_name=(eval(".MODEL_1.PART_"http://(ip1)//".SOLID16"))& stiffness=245.6677727&注釋:剛度系數(shù) damping=1.0E+001&注釋:阻尼系數(shù) exponent=2.2&注釋:力的指數(shù) dmax=1.0E-001&注釋:最大穿透深度 coulomb_friction=on&注釋:庫(kù)倫摩擦力 mu_static=0.66&注釋:靜摩擦力系數(shù) mu_dynamic=0.46&注釋:動(dòng)摩擦力系數(shù)stiction_transition_velocity =100& friction_transition_velocity=1000 else end variable modify variable_name=paiming& integer_value=(eval(paiming+1)) variable modify variable_name=ip1& integer_value=(eval(ip1+1)) end variable delete variable_name=ip1 variable delete variable_name=paiming variable modify variable_name=ip& integer_value=(eval(ip+1)) end variable delete variable_name=ip 運(yùn)行上述宏命令后,自動(dòng)完成如圖5所示的150根甘蔗之間的11325個(gè)碰撞關(guān)系設(shè)定。 圖5 50根甘蔗之間的碰撞關(guān)系 根據(jù)文獻(xiàn)[6]所述方法測(cè)得,測(cè)得甘蔗與鋼板之間靜摩擦力系數(shù)為0.59,動(dòng)摩擦力系數(shù)取0.39. 建立宏命令Marco_4并運(yùn)行,編寫的宏命令如下: defaults model model_name=.MODEL_1 variable create variable_name=ip& integer_value=1 while condition=(ip<61) contact create contact_name=(eval("C_"http://(ip)//(ip) //"_"http://(1713)))&i_geometry_name=(eval(".MODEL_1.PART_"http://(ip)//".SOLID16"))&j_geometry_name=(eval (".MODEL_1.PRT0001_1"http://".SOLID1713"))& stiffness=209.381517& exponent=2.2& 此時(shí)150根甘蔗之間的碰撞關(guān)系已經(jīng)全部定義完成,但它們都還沒有與接觸部件之間建立聯(lián)系,不存在任何接觸關(guān)系,此時(shí)運(yùn)行Adams進(jìn)行仿真,甘蔗模型與部件之間就會(huì)出現(xiàn)彼此完全穿透的現(xiàn)象,所以要對(duì)每個(gè)甘蔗模型與部件之間之間的碰撞參數(shù)進(jìn)行設(shè)定,將部件材料為鋼。 根據(jù)公式(1)、(2)、(3),取 R1=15 mm,R3=1.5 mm,E3=2.07e5 N/m2則 h1=2.356e-3 mm2/N,h3 mping=1.0E+001& dmax=1.0E-001& coulomb_friction=on& mu_static=0.59& mu_dynamic=0.39& stiction_transition_velocity=100& friction_transition_velocity=1000 ……(其余部件與甘蔗模型之間的碰撞關(guān)系同上) variable modify variable_name=ip& integer_value=(eval(ip+1)) end variable delete variable_name=ip 運(yùn)行上述宏命令后,自動(dòng)完成如圖6所示的150根甘蔗與機(jī)器部件之間的1800個(gè)碰撞關(guān)系設(shè)定。 圖6 150根甘與機(jī)器部件之間的碰撞關(guān)系 本文針對(duì)物料輸送機(jī)械在Adams的仿真過程中,出現(xiàn)的物料模型重復(fù)建立、各種材料屬性和碰撞關(guān)系重復(fù)設(shè)立所造成工作量浩大繁瑣的問題,以甘蔗排種器為研究對(duì)象,編寫了相關(guān)的宏命令,從而實(shí)現(xiàn)了模型的快速?gòu)?fù)制以及材料屬性和各種碰撞關(guān)系的一次性施加,大大減少了仿真中建模所需的時(shí)間,提高了建模效率,為后續(xù)模型的仿真、分析創(chuàng)造了前提條件,也為類似物料輸送機(jī)械的建模與宏命令的應(yīng)用提供了參考依據(jù)。
2.4 物料與部件之間碰撞關(guān)系的設(shè)定

3 結(jié)論