柯治成
關(guān)鍵詞:SolidWorks Motion;自由度;冗余約束;報(bào)錯(cuò)分析
0引言
機(jī)構(gòu)的運(yùn)動(dòng)分析是了解機(jī)械運(yùn)動(dòng)性能的必要手段,傳統(tǒng)機(jī)械設(shè)計(jì)常采用理論力學(xué)的方法計(jì)算運(yùn)動(dòng)學(xué)或動(dòng)力學(xué)特性,這種方法對(duì)復(fù)雜機(jī)構(gòu)具有局限性。
目前隨著CAE技術(shù)的飛速發(fā)展,虛擬樣機(jī)仿真工具SolidWorks Motion得到了廣泛應(yīng)用。其借助工業(yè)動(dòng)態(tài)仿真分析軟件ADAMS的求解器來分析裝配體的復(fù)雜行為,可與SolidWorks三維建模實(shí)現(xiàn)無縫集成,并通過約束映射將零件之間的配合(約束)自動(dòng)映射為Motion中的連接,節(jié)約運(yùn)動(dòng)分析時(shí)間。鑒于傳統(tǒng)機(jī)械設(shè)計(jì)的局限性和ADAMS軟件建模、實(shí)操性差的缺點(diǎn),同時(shí)結(jié)合現(xiàn)代機(jī)械產(chǎn)品開發(fā)要求,應(yīng)用solidWorks Motion就能對(duì)虛擬樣機(jī)進(jìn)行運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)分析,易學(xué)易用。可在設(shè)計(jì)前期判斷設(shè)計(jì)是否達(dá)到預(yù)期目標(biāo),有利于縮短產(chǎn)品開發(fā)周期,增強(qiáng)市場(chǎng)競(jìng)爭(zhēng)力。
1約束方程及自由度計(jì)算
空間中未受約束的剛性實(shí)體具有6個(gè)自由度。當(dāng)兩個(gè)剛性實(shí)體之間添加配合時(shí),每個(gè)配合都將移除實(shí)體之間一定數(shù)量的自由度,限制了部件間的相對(duì)運(yùn)動(dòng)。solidWorks Motion中的約束通過在微分一代數(shù)方程(Differential and A1gebmic equalions,DAE)的控制系統(tǒng)中添加代數(shù)約束方程,從系統(tǒng)中移除自由度(DOF)。代數(shù)方程描述被配合約束的自由度,以“i”標(biāo)記在第一個(gè)零件上,“j”標(biāo)記在第二個(gè)零件上。
常見配合、運(yùn)動(dòng)副及其約束的自由度如表1所示。
根據(jù)Gruebler自由度的估算值判斷系統(tǒng)是否過約束:如果Gruebler>0,模型為欠約束(動(dòng)力學(xué));如果Gruebler=0,模型為全約束(運(yùn)動(dòng)學(xué));如果Gruebler<0,模型為過約束(冗余)。
上述計(jì)算沒有考慮機(jī)構(gòu)中運(yùn)動(dòng)副的連接、方向是否正確及冗余情況,實(shí)際自由度數(shù)如下所示。
下面以帶冗余約束的平行四邊形機(jī)構(gòu)為例,如圖1所示。機(jī)構(gòu)由4個(gè)活動(dòng)構(gòu)件組成,添加了6個(gè)鉸鏈配合(轉(zhuǎn)動(dòng)副)和1個(gè)旋轉(zhuǎn)驅(qū)動(dòng)(添加了1個(gè)約束)。Gruebler公式估算的自由度數(shù)為-7(4×6-6×5-1),因Gruebler<0,故該機(jī)構(gòu)存在冗余約束。并給出實(shí)際自由度數(shù)為0(4x6-6x5-1+7)。機(jī)構(gòu)中的自由度數(shù)及冗余約束數(shù)如圖2所示。
2冗余約束概述及機(jī)構(gòu)中的冗余約束
2.1冗余約束概述
SolidWorks提供了多種約束,包括高副約束和低副約束等,當(dāng)機(jī)構(gòu)中某一指定的自由度添加了多余的約束,即運(yùn)動(dòng)副帶入的約束對(duì)機(jī)構(gòu)的運(yùn)動(dòng)只起重復(fù)約束作用,這類約束稱為冗余約束(又稱虛約束)。
2.2機(jī)構(gòu)中的冗余約束常發(fā)生在下列情況
(1)機(jī)構(gòu)中,轉(zhuǎn)動(dòng)副連接的是兩構(gòu)件上運(yùn)動(dòng)軌跡相重合的點(diǎn),則該連接將帶人一個(gè)冗余約束。
(2)機(jī)構(gòu)中,雙轉(zhuǎn)動(dòng)副桿連接的是兩運(yùn)動(dòng)構(gòu)件上距離始終保持不變的兩點(diǎn)。
(3)不影響機(jī)構(gòu)運(yùn)動(dòng)傳遞的重復(fù)部分所帶人的約束。
(4)機(jī)構(gòu)中兩構(gòu)件構(gòu)成多個(gè)移動(dòng)副且導(dǎo)路互相平行。
(5)機(jī)構(gòu)中兩構(gòu)件構(gòu)成多個(gè)轉(zhuǎn)動(dòng)副且軸線互相重合。
(6)閉鏈機(jī)構(gòu)。特別是平面閉鏈機(jī)構(gòu),普遍存在過約束。如:四棒連桿具有閉環(huán),Gruebler=-3(3x6-4x5-1),有3個(gè)冗余配合。因環(huán)的每個(gè)邊(從地面開始)約束連接桿以停留在裝配體基準(zhǔn)面中。
3冗余約束的移除方法
3.1機(jī)構(gòu)裝配關(guān)系前處理
運(yùn)動(dòng)仿真前打開裝配體,檢查下面幾項(xiàng)。
(1)運(yùn)動(dòng)部件是否錯(cuò)誤地設(shè)置成了固定。
(2)是否運(yùn)行運(yùn)動(dòng)軌跡干涉檢查。
(3)將有下層的構(gòu)件(原動(dòng)件或從動(dòng)件)作為一個(gè)子裝配體添加到機(jī)構(gòu)中,減少機(jī)構(gòu)中構(gòu)件數(shù)及約束。
(4)分析剛性零件之問的配合,刪除過定義的約束。
3.2將一起運(yùn)動(dòng)的零件設(shè)置到“剛性組”
通過選擇零部件并將其分組到剛性組,組中的多個(gè)零部件將被視為一個(gè)零部件。具有下述特點(diǎn):
(1)組中零部件間的運(yùn)動(dòng)和配合被忽略;
(2)剛性組的質(zhì)量和慣性矩是組中所有零件值之和。
利用剛性組可減少機(jī)構(gòu)中的配合,降低冗余約束,節(jié)省Motion分析的仿真時(shí)間。
3.3以套管替換配合
在運(yùn)動(dòng)算例中使用套管等于添加柔性配合來取代數(shù)學(xué)上的剛性配合,配合的剛度在各自的方向決定了反作用力的分布,可計(jì)算冗余配合處的力??蓪⑻坠茉O(shè)想為包含有一些松弛度的彈簧和阻尼系統(tǒng)。
可通過以下兩種方式實(shí)現(xiàn):
(1)在運(yùn)動(dòng)算例屬性中選擇以套管替換冗余配合選項(xiàng),這種方法適合大多數(shù)情況;
(2)對(duì)配合進(jìn)行“編輯特征”,在PropertyManager界面中選擇“分析”,勾選套管并指定參數(shù)。
使用套管會(huì)減緩求解速度,且最佳的配合剛度和阻尼特性參數(shù)不易獲取,僅在其他方法之后使用。
3.4以配合本原替換冗余
配合本原是指約束至少2個(gè)自由度的配合。通過用配合本原替換配合,可以刪除零部件上的冗余約束,方法是逐個(gè)限制零部件上的自由度。表2所示為由零部件上的配合本原應(yīng)用的自由度約束數(shù)量和類型。
替換配合本原是一個(gè)手動(dòng)過程,需在模型上建立配合要素(點(diǎn)、軸線、基準(zhǔn)面等),并要詳細(xì)了解預(yù)期的運(yùn)動(dòng)。同時(shí),需正確定向配合本原,以便優(yōu)化約束縮減。配合本原在機(jī)構(gòu)中的應(yīng)用舉例如下:
(1)一個(gè)平面到平面的重合配合(3個(gè)約束)可用線到平面的配合本原(2個(gè)約束)替換;
(2)鉸鏈配合(5個(gè)約束)可用點(diǎn)到線(2個(gè)約束)和線到平面(2個(gè)約束)的配合本原替換;
(3)同軸心配合(2圓柱類型,4個(gè)約束)可用點(diǎn)到線的配合本原(2個(gè)約束)替換。
3.5運(yùn)用模擬量
模擬量是SolidWorks自帶的Motion插件中的虛擬動(dòng)力源(電動(dòng)機(jī))部分,該動(dòng)力源包括線性馬達(dá)、旋轉(zhuǎn)馬達(dá)等。具體實(shí)現(xiàn)方式是將模擬量的運(yùn)動(dòng)參數(shù)設(shè)置為“0”,以單獨(dú)約束構(gòu)件在某個(gè)方向的自由度,避免出現(xiàn)冗余。如:通過線性馬達(dá)約束指向的一個(gè)移動(dòng)自由度,通過旋轉(zhuǎn)馬達(dá)約束指向的一個(gè)旋轉(zhuǎn)自由度。
3.6以鉸鏈配合替換形成鉸鏈的冗余配合對(duì)
鉸鏈?zhǔn)侵竷蓸?gòu)件之間的相對(duì)運(yùn)動(dòng)為轉(zhuǎn)動(dòng)的運(yùn)動(dòng)副。鉸鏈配合可將兩個(gè)零部件之間的移動(dòng)限制在一定的旋轉(zhuǎn)范圍內(nèi),此外還可以限制兩個(gè)零部件之間的移動(dòng)角度。鉸鏈配合具有下述優(yōu)點(diǎn):
(1)建模時(shí)只需應(yīng)用一個(gè)配合(替代重合和同軸心);
(2)運(yùn)動(dòng)分析的反作用力和結(jié)果與鉸鏈配合相關(guān)聯(lián),而不是與某個(gè)特定的同心或重合配合相關(guān)聯(lián),這可減小冗余配合對(duì)分析的負(fù)面影響。
4運(yùn)動(dòng)算例計(jì)算
4.1SolidWorksMotion求解原理
Motion分析使用MAC ADAMS求解器2010簡(jiǎn)化版,但求解時(shí)必須已知構(gòu)件速度、連接構(gòu)件的配合和力與加速度。在每個(gè)時(shí)間步長中,程序使用改進(jìn)的Newton-Raphson迭代法進(jìn)行求解。通過非常小的時(shí)間步長,根據(jù)零件的初始狀態(tài)或前一時(shí)間步長的結(jié)果,軟件可以預(yù)測(cè)下一時(shí)間步長內(nèi)零件的狀態(tài),運(yùn)算結(jié)果不斷迭代直到滿足預(yù)定的精確度。
4.2運(yùn)動(dòng)算例常見糾錯(cuò)步驟
(1)查看計(jì)算求解報(bào)錯(cuò)信息;
(2)壓縮部分或所有驅(qū)動(dòng)要素,時(shí)間軸位于0時(shí)刻;
(3)在裝配體中通過移動(dòng)零部件工具來檢查修改,并確保機(jī)構(gòu)能夠正常運(yùn)動(dòng);
(4)逐個(gè)解壓之前壓縮的驅(qū)動(dòng)要素,并檢查修正,確保機(jī)構(gòu)能夠正常拖動(dòng);
(5)每次更改都需要重新計(jì)算,修正至無報(bào)錯(cuò)信息。
4.3運(yùn)動(dòng)算例計(jì)算報(bào)錯(cuò)常見原因
4.3.1機(jī)構(gòu)存在過多的冗余約束
仿真運(yùn)行前如果積分器檢測(cè)到機(jī)構(gòu)包含冗余,將按旋轉(zhuǎn)約束-平移約束-運(yùn)動(dòng)輸入(馬達(dá))的次序移除冗余。移除成功后,積分器才繼續(xù)運(yùn)行仿真。在每一時(shí)間步,積分器重新評(píng)估冗余并在需要時(shí)將其移除。如果都失敗,積分器將終止求解,并用報(bào)錯(cuò)信息(The model contains incompatibleredundant constraints…)通知用戶檢查機(jī)構(gòu)中的冗余約束或不相容的約束(是否處于一個(gè)鎖定位置)。可在Motion Manager中查看冗余約束詳細(xì)說明,按第3章方法解除冗余。
4.3.2運(yùn)動(dòng)輸入不連續(xù)
運(yùn)動(dòng)輸入不連續(xù)會(huì)導(dǎo)致積分器終止求解,報(bào)錯(cuò)信息(…Check for discontinuity in motion inputs.)一般在計(jì)算的前段時(shí)間內(nèi)出現(xiàn)。通常有兩方面原因。
(1)驅(qū)動(dòng)馬達(dá)的位移、速度、加速度輸入不連續(xù)。驅(qū)動(dòng)馬達(dá)控制一個(gè)構(gòu)件在一段時(shí)間內(nèi)的運(yùn)動(dòng)狀況,其規(guī)定了構(gòu)件的位移、速度和加速度為時(shí)問的函數(shù)??赏ㄟ^將運(yùn)動(dòng)輸入改成連續(xù)或積分器GSTIFF換為WSTIFF來處理。其中,GSTIFF適用于大范圍運(yùn)動(dòng)分析,WSTIFF適用于不連續(xù)度的力和運(yùn)動(dòng)。
(2)驅(qū)動(dòng)(作用力或線性馬達(dá)等)方向設(shè)置不正確。添加驅(qū)動(dòng)時(shí),如果沒有選擇正確的參考對(duì)象,會(huì)一直參照初始的方向,導(dǎo)致機(jī)構(gòu)出現(xiàn)卡死而終止計(jì)算。
4.3.3積分器步長設(shè)置不正確
(1)最小積分器步長
在積分過程中如果模擬誤差太大,積分器將減小步長(不小于積分器步長大小規(guī)定的最小值)并再次求解,直到滿足所需的精度。增加最小積分器步長會(huì)減少模擬時(shí)間,但該值過大,會(huì)造成有些事件被模擬忽略而報(bào)錯(cuò)(…solver is stopping becausetime stepX.XXXXXXE-11 is below minimum time stepsize 1.000000E-10…)。
(2)最大積分器步長
提高最大積分器步長大小可以加速求解,減少求解模型所需的時(shí)間。但數(shù)值過大會(huì)出現(xiàn)以下問題:
①過大的步長易出現(xiàn)積分器收斂失敗;
②采用默認(rèn)的GSTIFF積分器時(shí),速度和加速度存在不連續(xù)(特別是運(yùn)動(dòng)不順滑或有突變);
③會(huì)錯(cuò)失力或運(yùn)動(dòng)發(fā)生突變的事件;
④無法識(shí)別實(shí)體和薄體之問存在的接觸。
可采用更小的步長來避免上述問題,這樣會(huì)減慢積分器的速度,但不會(huì)影響結(jié)果的精度。
4.3.4零部件之問的接觸設(shè)置不正確
接觸用于定義實(shí)體之間相互作用的方式,多個(gè)實(shí)體或曲線之間可以定義接觸來防止穿透。通過定義接觸,可以控制實(shí)體之間的摩擦和彈性屬性。接觸精度和接觸的幾何描述不正確都將導(dǎo)致積分器終止求解或發(fā)生相互穿透現(xiàn)象??赏ㄟ^以下方式處理:
(1)合理選擇接觸的彈性屬性模型,其中“沖擊”適用于持續(xù)撞擊,“恢復(fù)系數(shù)”適用于彈性碰撞;
(2)合理設(shè)置接觸精度,通過運(yùn)動(dòng)算例屬性中的“3D接觸分辨率”調(diào)整精度大小;
(3)正確選擇接觸的幾何描述,其中,細(xì)化幾何體(3D接觸)是實(shí)體的表面被劃分為多個(gè)三角形的單元來簡(jiǎn)化外形描述,為默認(rèn)設(shè)置,精確幾何體(精確接觸)采用物體表面的精確描述,占用較多計(jì)算資源。
4.3.5解算器(積分器)無法收斂
在處理帶有多個(gè)冗余的復(fù)雜裝配體或面時(shí)會(huì)遇到許多問題(如失穩(wěn)點(diǎn)、快速更改運(yùn)動(dòng)或高速?zèng)_擊等),導(dǎo)致解算器無法收斂,在獲得結(jié)果前求解將終止。數(shù)值模擬中收斂問題是不可避免的,影響因素很多且很難預(yù)測(cè)何時(shí)會(huì)發(fā)生。解決收斂問題的基本要素如下。
(1)解算器沒能取得指定的精確度。
(2)零件快速移動(dòng),雅可比驗(yàn)算值應(yīng)設(shè)置每次迭代。
(3)機(jī)構(gòu)鎖定。更改初始配置或驅(qū)動(dòng)重新模擬。
(4)模擬開始處終止,使用較小的初始積分器步長。
(5)使用更嚴(yán)格解算器,如“WSTIFF”。
(6)在模型中避免激烈斷續(xù)性,如突然的運(yùn)動(dòng)變化、力變化或啟用/禁用配合。
(7)使用速度極高的馬達(dá)時(shí),可降低馬達(dá)速度。
(8)確定任何時(shí)候只有一個(gè)馬達(dá)在驅(qū)動(dòng)某一零部件。Motion中與收斂問題相關(guān)的參數(shù)是精確度、最大積分器步長大小,以及3D接觸分辨率。如果修改上述參數(shù)無效,需檢查輸入是否順滑且可微分的,帶數(shù)學(xué)函數(shù)的表達(dá)式使用STEP函數(shù)優(yōu)于IF語句。此外,還需檢查模型缺陷和冗余約束。
4.3.6驅(qū)動(dòng)的初始速度設(shè)置
初始速度設(shè)置過高,會(huì)出現(xiàn)報(bào)錯(cuò)信息(Failureto sarisfy velocity initial conditions…)。可選擇重置一個(gè)較小的初始速度、增加雅可比驗(yàn)算數(shù)值、減小最大積分器步長大小三種方法之一來分別重新計(jì)算。
4.3.7積分器精確度
使用積分器來求解DAE運(yùn)動(dòng)方程,可分兩個(gè)階段得到運(yùn)動(dòng)方程的一個(gè)解,精確度用于控制這個(gè)解的結(jié)果精度。精確度設(shè)置的高低與積分器求解時(shí)間成反比,與計(jì)算結(jié)果的精確度成正比。默認(rèn)值“0.0001”符合大多數(shù)情況,但在模擬過程中發(fā)生突然的不連續(xù)變化(如:突然改變力或馬達(dá)的大小,在語句(IF、MIN、MAX、SIGN、MOD和DIM)中使用不可微的固有函數(shù)等)或系統(tǒng)突然發(fā)生改變時(shí)需要修改精確度值,否則積分器將終止求解。
5結(jié)束語
本文對(duì)目前運(yùn)動(dòng)仿真的現(xiàn)狀進(jìn)行了介紹,對(duì)SolidWorks Motion自由度的計(jì)算、解除冗余約束的方法和運(yùn)動(dòng)算例計(jì)算報(bào)錯(cuò)的原因進(jìn)行了總結(jié)分析,并結(jié)合典型的四連桿機(jī)構(gòu)進(jìn)行了說明。得出以下結(jié)論:
(1)機(jī)構(gòu)中冗余約束的判斷、識(shí)別及正確移除是保證仿真順利進(jìn)行和得到精確結(jié)果數(shù)據(jù)的前提;
(2)冗余約束、精確度、最大積分器步長大小、接觸分辨率、積分器類型、運(yùn)動(dòng)輸入連續(xù)性及初始速度設(shè)置是導(dǎo)致運(yùn)動(dòng)算例計(jì)算報(bào)錯(cuò)的主要原因。