【摘要】利用ANSYS軟件提供的APDL語(yǔ)言對(duì)一批節(jié)點(diǎn)的反力進(jìn)行統(tǒng)計(jì)計(jì)算,較為容易得獲得位移加載條件下,所有位移加載的節(jié)點(diǎn)的反力總和與時(shí)間或者位移的關(guān)系。并且不需要關(guān)注被分析節(jié)點(diǎn)的數(shù)量與節(jié)點(diǎn)編號(hào)。 

【關(guān)鍵詞】ANSYS后處理;節(jié)點(diǎn)反力計(jì)算 
  在我們應(yīng)用ANSYS進(jìn)行非線性有限元分析的過(guò)程中,收斂是一個(gè)難點(diǎn),所以我們經(jīng)常會(huì)在滿足某種條件的一批節(jié)點(diǎn)上進(jìn)行位移約束加載來(lái)代替力的加載。使用位移加載的優(yōu)勢(shì)非常明顯,在進(jìn)行各種非線性分析中,它更加容易獲得收斂的結(jié)果,減少試算的次數(shù)。但是,在后處理過(guò)程中要想獲得位移與力的關(guān)系、時(shí)間與力的關(guān)系等分析結(jié)果時(shí)就會(huì)比較困難,需要進(jìn)一步處理才能獲得理想的結(jié)果。因?yàn)檫@時(shí)我們不是簡(jiǎn)單的要獲得某一個(gè)節(jié)點(diǎn)上力與時(shí)間或者力與位移之間的關(guān)系,而是與一批節(jié)點(diǎn)的力或者力矩總和與時(shí)間的關(guān)系。 
  1.GUI方式的操作方法與局限 
  ANSYS通用處理器可以很輕松獲得一批節(jié)點(diǎn)在某一個(gè)子步上的反力總和。GUI方式為:選擇所有位移加載的節(jié)點(diǎn),General Postpone,Read Result,By load step;輸入子步號(hào);List,Result,Reaction solution;選擇力矩或者力。這時(shí)所列出的結(jié)果僅僅局限于查看某一子步。要想分析隨著時(shí)間或者位移的變化而變化的反力情況,需要多次操作,手動(dòng)統(tǒng)計(jì)數(shù)據(jù),還是比較繁瑣。 
  2.時(shí)間歷程后處理中變量數(shù)據(jù)的結(jié)構(gòu) 
  ANSYS時(shí)間歷程后處理器POST26用于處理節(jié)點(diǎn)的結(jié)果與頻率或者時(shí)間的關(guān)系,其操作均基于變量。其中最常用的獲取節(jié)點(diǎn)反力的命令Rforce,Nvar,Node,Item,Comp,Name.其中Nvar變量號(hào),Node節(jié)點(diǎn)號(hào),Item,Comp用于定義力或者力矩及其方向。例如Rforce,3,4,f,z代表將節(jié)點(diǎn)4上的Z方向的反力定義為變量3。使用命令PRVAR,3將3變量列表顯示,其結(jié)果分為兩列,一列為時(shí)間,一列為對(duì)應(yīng)的反力數(shù)值。數(shù)據(jù)點(diǎn)的多少取決于收斂計(jì)算過(guò)程中我們?cè)O(shè)置的SUBSTEP數(shù)或者系統(tǒng)自動(dòng)進(jìn)行劃分的子步數(shù)。范例見圖1。Rforce命令一次只能讀取一個(gè)節(jié)點(diǎn)的反力。在實(shí)際應(yīng)用過(guò)程中,我們研究一個(gè)節(jié)點(diǎn)的情況非常少,也沒有意義。位移加載往往是在一條邊或者一個(gè)面上的所有節(jié)點(diǎn),而研究這些幾何特征上所有的節(jié)點(diǎn)反力和與時(shí)間或者位移之間的關(guān)系才是有價(jià)值的結(jié)果。 
  3.命令流方式范例 
  APDL語(yǔ)言本身提供了非常豐富的條件、循環(huán)、變量計(jì)算等語(yǔ)句。我們可以利用這些實(shí)用的命令來(lái)獲得理想結(jié)果。以下為一組可以獲得一個(gè)面上所有節(jié)點(diǎn)反力和與面位移之間關(guān)系的命令流,面上所有節(jié)點(diǎn)的Z坐標(biāo)為10. 
  前處理的命令此處省略。 
  /post26 
  numvar,10 !定義POST26中允許的變量數(shù)量 
  nsel,s,loc,z,10 !選擇所有Z坐標(biāo)為10的節(jié)點(diǎn),一般也是我們進(jìn)行位移加載的節(jié)點(diǎn)。這里不應(yīng)該有遺漏,因?yàn)槔碚撋纤形灰萍虞d的節(jié)點(diǎn)都會(huì)產(chǎn)生反力。既節(jié)點(diǎn)上的應(yīng)力和不等于零。 
  *get,nCount,NODE,,COUNT !獲取被選擇節(jié)點(diǎn)的數(shù)量,定義到變量Ncount中 
  nNow=0 !定義變量nNow,初始值為0,另外,所有的節(jié)點(diǎn)號(hào)都是大于0的。 
  nsol,6,NDNEXT(nNow),u,z,zdisplacement !以選擇集中最小節(jié)點(diǎn)號(hào)的節(jié)點(diǎn)的Z方向位移定義為變量6,由于是在面上進(jìn)行位移加載,所以面上任意一個(gè)節(jié)點(diǎn)的位移都可以代表面的位移。 
  add,6,6,,,,,,-1 !對(duì)位移數(shù)據(jù)進(jìn)行絕對(duì)值處理 
  *do,I,1,nCount !循環(huán)語(yǔ)句判定,循環(huán)次數(shù)為節(jié)點(diǎn)個(gè)數(shù) 
  nNow = NDNEXT(nNow) !獲取下一個(gè)節(jié)點(diǎn)號(hào)大于0的節(jié)點(diǎn)號(hào),更新到變量nNow中 
  rforce,8,nNow,f,z,zforce !用節(jié)點(diǎn)反力定義變量8 
  add,7,7,8,,,,,,-1 !將變量8乘以-1累加到變量7當(dāng)中,如果變量7中有數(shù)據(jù)則用新的計(jì)算結(jié)果覆蓋原有數(shù)據(jù)。 
  *enddo !循環(huán)語(yǔ)句結(jié)束 
  xvar,6 !定義圖表的X軸為變量6 
  /axlab,x,diplacement !設(shè)置x軸標(biāo)題 
  /axlab,y,force !設(shè)置y軸標(biāo)題 
  plvar,7 !打印圖表,Y軸為變量7,輸出結(jié)果參考圖2。 
  nDNEXT(x)命令可以獲得選擇集中節(jié)點(diǎn)號(hào)為X的下一個(gè)最接近的節(jié)點(diǎn)號(hào)。假如選擇集中最小的節(jié)點(diǎn)號(hào)為5,則nDNEX(0)指向節(jié)點(diǎn)5,這樣即使選擇集中的節(jié)點(diǎn)號(hào)是混亂無(wú)序的,我們也可以遍歷所有節(jié)點(diǎn)而無(wú)任何遺漏。ADD命令對(duì)數(shù)組型變量相加時(shí),相同行的數(shù)據(jù)會(huì)進(jìn)行相加獲得新的數(shù)組。 
  4.結(jié)語(yǔ) 
  通過(guò)以上的一組命令流,我們就可以利用APDL循環(huán)語(yǔ)句和功能強(qiáng)大的函數(shù)對(duì)一批預(yù)先選擇好的位移加載節(jié)點(diǎn),不論其編號(hào)是否有序,不論其節(jié)點(diǎn)數(shù)量多少,進(jìn)行統(tǒng)計(jì)計(jì)算,以獲得加載合力隨時(shí)間或者位移的變化情況。 
  參考文獻(xiàn) 
  [1]王新敏.Ansys工程結(jié)構(gòu)數(shù)值分析[M].人民交通出版社,2007.