基于Python的CAE后處理二次開發-ANSYS篇
Anterior Cruciate Ligament (ACL) 前交叉韌帶仿真分析
背景:運動和汽車事故是韌帶損傷的重要原因,前交叉韌帶(ACL)的損傷是最常見的韌帶損傷。在將人的膝蓋關節固定在一起的許多韌帶中,ACL尤為重要,因為它可以保持膝蓋的穩定性,并通過限制關節運動來幫助防止對膝蓋的傷害。ACL主要由連接股骨和脛骨的密集堆積的膠原纖維組成。ACL位于膝蓋關節內部,如下圖所示:
問題描述:由于較大的變形和旋轉,ACL表現出高度的非線性和各向異性,并表現出明顯的應變率相關性。各向異性行為是由排列在柔軟材料基質中的膠原纖維族引起的。韌帶是粘彈性的,因此表現出與時間有關和與載荷歷史有關的機械性能。韌帶的粘彈性行為具有臨床意義,因為它們有助于防止韌帶的疲勞衰竭。
有限元模型:ACL使用SOLID187單元進行網格畫分。股骨使用剛性面的。在股骨表面和ACL之間定義了標準接觸(KEYOPT(12)= 0)。
材料模型:使用各向異性超彈性材料模型用于ACL仿真。各向異性超彈性是一種基于勢的函數,具有用于定義體積部分,等容部分和材料方向的參數。各向異性超彈性的應變能勢由下式給出:
各向異性超彈材料模型常數:
ANSYS求解文件材料模型參數化:
邊界條件和載荷:ACL模型的脛骨(底部)側保持固定,并約束所有自由度。膝關節可彎曲,伸展和旋轉。因此,分析考察了ACL在單軸彎曲,拉伸和旋轉下的行為這三個工況。
工況二:彎曲
在最大應力處容易發生損傷撕裂。
工況三:旋轉
Anterior Cruciate Ligament (ACL) 前交叉韌帶參數優化
# -*- coding: utf-8 -*-"""Created on Fri Mar 12 09:38:40 2021@author: Ansyent"""import pyansys as paimport numpy as npimport matplotlib.pyplot as pltrst = pa.read_binary('F:/06_SoftWare_Temp/31_Python_CAE_Temp/python-ansys/ansys_case/acl_tension.rst')def VonMises(s):stressmatrix = np.array([[s[0],s[3],s[5]],[-s[3],s[1],s[4]],[-s[5],-s[4],s[2]]])ps = np.linalg.eig(stressmatrix)[0]misesstress = (((ps[0]-ps[1])**2 + (ps[1]-ps[2])**2 + (ps[2]-ps[0])**2)/2)**0.5return misesstress
這里定義了一個求米塞斯應力強度的函數,因為通過Python直接讀取的rst結果中只有基礎解,即節點的6分應力分量。如果需要考察主應力、等效應力強度等需要對基礎解進行計算即可。
numresults = rst.n_resultsstresslist = []strainlist = []stresslist1 = []nnum, stress = rst.nodal_stress(-1)for i in range(len(nnum)):if np.isnan(stress[i][0]):stresslist1.append(0)else:stresslist1.append(VonMises(stress[i]))
maxnodeid = stresslist1.index(max(stresslist1))for i in range(numresults):stre = VonMises(rst.nodal_stress(i)[1][maxnodeid])stra = rst.nodal_elastic_strain(i)[1][maxnodeid][6]stresslist.append(stre)strainlist.append(stra)
這里將應力應變寫到stresslist和strainlist列表中。
width,height=10,7plt.rcParams['figure.figsize'] = width, heightplt.plot(strainlist,stresslist,'r',label='simulation-stress',marker='o')plt.title("Stress-Strain")plt.xlabel("Strain[-]")plt.ylabel("Stress[Mpa]")plt.legend()plt.show()
在spyder中運行的效果,優化聯合時后臺運行即可。
注:
1.ANSYS批處理提交命令語法為:“ANSYS_Install_Path\ANSYSxxx.exe” -np 2 -b -i acl_tension.dat -o acl_tension.out。
2.讀取ANSYS輸入文件、結果文件需要安裝pyansys庫。庫功能介紹:
*Interactively control an instance of ANSYS v14.5 + using Python on Linux, >=17.0 on Windows.
*Extract data directly from binary ANSYS v14.5+ files and to display or animate them.
*Rapidly read in binary result (.rst), binary mass and stiffness (.full), and ASCII block archive (.cdb) files.
3.文中云圖不是PS的,均為在后處理軟件中完成的。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















