亚洲成人午夜激情_影音先锋影AV色资源站_国产经典自拍视频在线观看_免费看无码特级毛片_91热这里只有精品国产_日本高清无卡码一区二区久久_亚洲国产日本综合a_最新永久免费a∨无码网站_在线观看日韩视频_av在线呻吟网站

 
18620856065
索 取 報 價
資   訊   中   心?

Abaqus基于Python 語言的麥弗遜懸架骨架模型有限元快速建模方法

來源: | 作者:thinks | 發(fā)布時間: 2025-03-04 | 47 次瀏覽 | 分享到:

前言:

懸架是汽車最重要的部件之一,對整車的操作穩(wěn)定性與平順性影響較大,如汽車在運行過程中出現(xiàn)故障,極易造成嚴重的后果,所以在開發(fā)前期對懸架的強度校核工作必不可少,懸架的校核是一項比較繁瑣、重復的事情,建模過程中需要輸入的參數(shù)眾多,如硬點參數(shù)、襯套參數(shù)、襯套局部坐標系參數(shù)等,建模過程十分繁瑣且容易出錯[1],對于一個全新開發(fā)的懸架,可能需要兩個鐘頭的時間才能建好,而且后期結構變更非常頻繁,修改也比較麻煩,為了縮減懸架有限元建模的時間,摸索了一套快速而精準的懸架建模方法具有重要的意義,由于懸架結構形式相對比較固定,有限元建模方式也相似,這些都為麥弗遜懸架有限元快速建模提供了有力的保障,本項目選用 Abaqus 軟件,開展麥弗遜懸架有限元快速建模方法的研究,實現(xiàn)麥弗遜懸架自動建模,可以極大的降低分析人員的工作強度,有效的縮短項目周期,從而有效提高建模的效率弗遜懸架有限元快速建模方法。

 

1、 模型數(shù)據(jù)的準備

懸架建模需要輸入的數(shù)據(jù)量較多,考慮數(shù)據(jù)輸入方便性,在程序設計過程,根據(jù)建模分析需求,可將用戶常用的數(shù)據(jù)建立相應的數(shù)據(jù)庫:硬點數(shù)據(jù)、襯套剛度數(shù)據(jù),彈簧數(shù)據(jù)、緩沖塊數(shù)據(jù),按照要求的格式整理,方便隨時調(diào)用相關數(shù)據(jù),硬點數(shù)據(jù)按要求整理在 Excel 中,并與名稱對應,否則就會報錯

 

Abaqus基于Python 語言的麥弗遜懸架骨架模型有限元快速建模方法 

 

襯套剛度數(shù)據(jù),彈簧數(shù)據(jù)、緩沖塊數(shù)據(jù),以 Adams 中屬性文件形式放在某文件下

 

2、 Python 語言的開發(fā)應用

應用 py 語言對弗遜懸架有限元快速建模,主要應用項目如下

 

1) 硬點模型的參數(shù)化建立

將懸架系統(tǒng)各部件連接點如轉向節(jié)與控制臂的鏈接點、轉向節(jié)與減振器連接點,轉向節(jié)與轉向拉桿的連接點,懸架系統(tǒng)與其他部件的連接點按一定順序寫入 Excel 中,然后供程序調(diào)用,硬點建??焖俳⒎椒ㄈ缦?,然后根據(jù)硬點坐標進行 for 循環(huán)創(chuàng)建批量硬點,創(chuàng)建腳本命令如下[2]。

 

mdb.models['mfx'].rootAssembly.ReferencePoint(point=(905, -771, 390))

 

2) 為了便于后期硬點的修改,硬點名稱批量命名,創(chuàng)建腳本命令如下

mdb.models['mfx'].rootAssembly.features.changeKey(fromName='RP-1', toName=

'damp_down')

 

3) 批量創(chuàng)建局部坐標

襯套 、彈簧、緩沖塊 柱面副賦屬性時要求指定局部坐標系,因為襯套、彈簧、柱面副的參數(shù)實際上是局部坐標系下的,故每個襯套、彈簧、柱面副都必須建立自己的局部坐標系。

 

這里指定局部坐標是為了確定活塞運動的方向。而建立局部坐標系最常用的方法就是兩點法與三點法,根據(jù)形式適當選擇兩點還是三點建立局部坐標系,創(chuàng)建腳本命令如下

 

mdb.models['mfx'].rootAssembly.DatumCsysByThreePoints(coordSysType=CARTESIA

N, name='topmount', origin=mdb.models['mfx'].rootAssembly.referencePoints[8], point1=mdb.models['mfx'].rootAssembly.referencePoints[9], point2= mdb.models['mfx'].rootAssembly.referencePoints[10])

 

4) 襯套模型的參數(shù)化建立

麥弗遜懸架襯套連接在擺臂與車身,將襯套看作 6 個方向的非線性的彈簧模型,需要輸入三個位移方向上力與位移的關系曲線和三個旋轉方向上力矩與轉角的關系曲線,創(chuàng)建腳本命令如下

mdb.models['mfx'].ConnectorSection(assembledType=BUSHING, name='

lca_front_bush ')

mdb.models['mfx'].sections['lca_front_bush'].setValues(behaviorOptions=(

ConnectorElasticity(behavior=NONLINEAR, table=((數(shù)據(jù) 1)), independentComponents=(), components=(1, )), ConnectorElasticity(behavior=NONLINEAR, table=((數(shù)據(jù) 2)), independentComponents=(), components=(2, )), ConnectorElasticity(behavior=NONLINEAR, table=((數(shù)據(jù) 3)), independentComponents=(), components=(3, )), ConnectorElasticity(behavior=NONLINEAR, table=((數(shù)據(jù) 4)), independentComponents=(), components=(1, )), ConnectorElasticity(behavior=NONLINEAR, table=((數(shù)據(jù) 5)), independentComponents=(), components=(1, )), ConnectorElasticity(behavior=NONLINEAR, table=((數(shù)據(jù) 6)), independentComponents=(), components=(6, ))))

 

3)彈簧的參數(shù)化建立

彈簧參數(shù),將彈簧看作只有一個方向線性剛度,且還需要輸入彈簧的自由長度來考慮彈簧的預載作業(yè),創(chuàng)建腳本命令如下

 

mdb.models['mfx'].ConnectorSection(name='Axial',translationalType=AXIAL, u1ReferenceLength=320)

mdb.models['mfx'].sections['Axial'].setValues(behaviorOptions=( ConnectorElasticity

(table=((30.0, ), ), independentComponents=(), components=(1, )), ))

 

5) 球鉸副的創(chuàng)建

擺臂與轉向節(jié),轉向節(jié)與轉向拉桿都是通過球鉸副連接,創(chuàng)建腳本命令如下

mdb.models['mfx'].ConnectorSection(name='join', rotationalType=CARDAN, translationalType=JOIN)

 

6)剛性梁單元的創(chuàng)建

剛性梁作為一個傳力單元,可以建一個剛性體等效多個 beam 梁單元,如下擺臂,轉向

節(jié),活塞桿與減振器筒,創(chuàng)建腳本命令如下

mdb.models['mfx'].ConnectorSection(assembledType=BEAM, name='beam')

 

6) 約束與工況的創(chuàng)建

首先要穿件載荷步,創(chuàng)建腳本命令如下

mdb.models['mfx'].StaticStep(initialInc=0.01, name='proload', nlgeom=ON, previous='Initial')

mdb.models['mfx'].StaticStep(initialInc=0.01, name='fpb', previous='proload')

mdb.models['mfx'].StaticStep(initialInc=0.01, name='jxzx', previous='fpb')

mdb.models['mfx'].StaticStep(initialInc=0.01, name='gk', previous='jxzx')

約束 topmount 與擺臂前后點,在輪心位置進行加載,創(chuàng)建腳本命令如下

mdb.models['mfx'].ConcentratedForce(cf1=1, cf2=2, cf3=3, createStepName='fpb', distributionType=UNIFORM, field='', localCsys=None, name='Load-1', region= Region(referencePoints=(mdb.models['mfx'].rootAssembly.referencePoints[1],

)))

mdb.models['mfx'].Moment(cm1=4, cm2=5, cm3=6, createStepName='fpb', distributionType=UNIFORM, field='', localCsys=None, name='Load-2', region= Region(referencePoints=(mdb.models['mfx'].rootAssembly.referencePoints[1],

)))

mdb.models['mfx'].loads['Load-1'].setValuesInStep(cf1=2, cf2=3, cf3=4, stepName='jxzx')

mdb.models['mfx'].loads['Load-2'].setValuesInStep(cm1=5, cm2=6, cm3=7, stepName='jxzx')

mdb.models['mfx'].loads['Load-1'].setValuesInStep(cf1=4, cf2=31, cf3=54, stepName='gk')

mdb.models['mfx'].loads['Load-2'].setValuesInStep(cm1=55, cm2=76, cm3=87, stepName='gk')

mdb.models['mfx'].ConcentratedForce(cf1=11, cf2=22, cf3=33, createStepName=

'fpb', distributionType=UNIFORM, field='', localCsys=None, name='Load-3', region=Region(referencePoints=(

mdb.models['mfx'].rootAssembly.referencePoints[20], )))

mdb.models['mfx'].loads['Load-3'].setValuesInStep(cf1=22, cf2=68, cf3=90, stepName='jxzx')

mdb.models['mfx'].loads['Load-3'].setValuesInStep(cf1=111, cf2=222, cf3=333, stepName='gk')

mdb.models['mfx'].EncastreBC(createStepName='proload', localCsys=None, name=

'BC-1', region=Region(referencePoints=(

mdb.models['mfx'].rootAssembly.referencePoints[23], mdb.models['mfx'].rootAssembly.referencePoints[24], mdb.models['mfx'].rootAssembly.referencePoints[25], )))

mdb.models['mfx'].EncastreBC(createStepName='proload', localCsys=None, name=

'BC-2', region=Region(referencePoints=(

mdb.models['mfx'].rootAssembly.referencePoints[1], )))

mdb.models['mfx'].boundaryConditions['BC-2'].deactivate('fpb')

mdb.models['mfx'].DisplacementBC(amplitude=UNSET, createStepName='proload', distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None, name=

'BC-3', region=Region(referencePoints=(

mdb.models['mfx'].rootAssembly.referencePoints[19], )), u1=0.0, u2=0.0, u3=

0.0, ur1=UNSET, ur2=0.0, ur3=UNSET)

 

3、編寫內(nèi)核執(zhí)行文件

基于上述腳本可以編制自動創(chuàng)建麥弗遜懸架骨架 CAE 模型內(nèi)核執(zhí)行程序,該程序由一個主函數(shù)組成,該函數(shù)有 6 個變量,分別定義 adams 屬性 文件路徑、彈簧自由長度與剛度參數(shù),緩沖塊的間隙參數(shù),硬點名稱與坐標信息,工況名稱與載荷數(shù)據(jù)信息。程序中使用了自動創(chuàng)建硬點與修改硬點名稱、自動創(chuàng)建襯套、彈簧屬性,自動創(chuàng)建坐標系,自動創(chuàng)建連接器,自動創(chuàng)建連接,自動創(chuàng)建載荷步、自動創(chuàng)建約束等函數(shù),可以實現(xiàn)麥弗遜懸架骨架 CAE 模型的自動建立,如下為麥弗遜懸架骨架 CAE 模型自動建立

 

Abaqus基于Python 語言的麥弗遜懸架骨架模型有限元快速建模方法 

1 麥弗遜懸架骨架 CAE 模型自動建立界面

 

Abaqus基于Python 語言的麥弗遜懸架骨架模型有限元快速建模方法 

2 麥弗遜懸架骨架 CAE 模型

 

4、結論

通過 abaqus 的二次開發(fā)可以快速實現(xiàn)縮短產(chǎn)品設計開發(fā)周期、減少研究人員工作量,為汽車懸架仿真自動化提供一定的指導作用。

 

資料來源:達索官方

 主 營 產(chǎn) 品
cst
Abaqus
Powerflow
Xflow
simpack
CATIA
最 新 內(nèi) 容
熱 門 文 章
知 識 科 普
方 案 解 析
  • 汽車交通
  • 風能電源
  • 船舶機械
  • 生物醫(yī)療
  • 土木建筑
  • 新能源
  • 高科技