ANSYS高級分析之-APDL 基礎_第1頁
ANSYS高級分析之-APDL 基礎_第2頁
ANSYS高級分析之-APDL 基礎_第3頁
ANSYS高級分析之-APDL 基礎_第4頁
ANSYS高級分析之-APDL 基礎_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

APDL基礎第9講APDL基礎

概述APDL是ANSYS參數(shù)化設計語言的的縮寫,它是一種允許使用參數(shù)并能完成一系列任務的強大的程序語言。使用APDL可以:用參數(shù)而不是用數(shù)值輸入模型尺寸,材料類型等。從ANSYS數(shù)據(jù)庫中獲取信息,比如節(jié)點位置或最大應力。在參數(shù)中進行數(shù)學運算,包括矢量和矩陣運算。把常用的命令或宏定義成縮寫形式。建立一個宏使用if-then-else分支和do循環(huán)等來執(zhí)行一系列任務。APDL基礎

…概述這一章的目的是向您介紹APDL的基本功能使您能夠:定義并使用標量參數(shù)從ANSYS數(shù)據(jù)庫中獲取信息您可以從在線幫助的APDL手冊中獲得更多的信息。我們將就以下問題展開討論:A.定義參數(shù)B.利用參數(shù)C.獲取數(shù)據(jù)庫信息D.練習APDL基礎

A.定義參數(shù)用以下格式定義參數(shù)Name=Value可以在輸入窗口或標量參數(shù)對話框中輸入(UtilityMenu>Parameters>ScalarParameters...)參數(shù)名不能超過8個字符。值可以是一個數(shù)值,一個以前定義過的參數(shù),一個函數(shù),一個參數(shù)表達式,或者一個字符串(用單引號括?。PDL基礎

...定義參數(shù)例子:inrad=2.5outrad=8.2numholes=4thick=outrad-inrade=2.7e6density=0.283bb=cos(30)pi=acos(-1)g=386massdens=density/gcircumf=2*pi*radarea=pi*r**2dist=sqrt((y2-y1)**2+(x2-x1)**2)slope=(y2-y1)/(x2-x1)theta=atan(slope)jobname=‘proj1’用*SET看有用參數(shù)列表APDL基礎

...定義參數(shù)以上例子是關于標量參數(shù)的,它只有一個值—數(shù)字或者字符。ANSYS也提供數(shù)組參數(shù),它有若干個值。數(shù)字數(shù)組和字符數(shù)組都是有效的。字符數(shù)組在本教程中不討論。28.7-9.2-2.151.00.0xvalues=job1job2job3job4job5filnam=APDL基礎

...定義參數(shù)一些命名規(guī)則:參數(shù)名不超過8個字符,并以字母開頭。參數(shù)名中只能出現(xiàn)字母,數(shù)字和下劃線。避免以下劃線開頭,這在ANSYS中另有它用。參數(shù)名不分大小寫,如“RAD”和“Rad”是一樣的。所有的參數(shù)都以大寫形式存儲。避免使用ANSYS標識,如STAT,DEFA,和

ALL。APDL基礎

B.使用參數(shù)使用參數(shù)時,只需在對話框中或通過命令輸入?yún)?shù)名就行了。例如,利用參數(shù)定義一個w=10,h=5的矩形,您可以使用以下菜單:Preprocessor>Create>Rectangle>By2Corners+或命令:/prep7blc4,,,w,hAPDL基礎

...參數(shù)的用法注意:當使用參數(shù)時,ANSYS將立刻把參數(shù)名換為它的值。

上一個例子中的矩形將被存為10x5,而不是

wxh。也就是說,如果你在生成矩形后再改變

w或

h的值,矩形將不被修改。APDL基礎

...參數(shù)的用法其它一些關于參數(shù)用法的例子:jobname=‘proj1’/filnam,jobname !作業(yè)名/prep7youngs=30e6mp,ex,1,youngs !楊氏模量force=500fk,2,fy,-force !2號關鍵點的力fk,6,fx,force/2 !6號關鍵點的力APDL基礎

C.從數(shù)據(jù)庫中獲取信息從數(shù)據(jù)庫中獲取信息并給參數(shù)賦值,使用

*GET

命令或

UtilityMenu>Parameters>GetScalarData...對獲取大量信息是很有用的,包括模型和結果數(shù)據(jù),請參看*GET命令的詳細資料。APDL基礎

...從數(shù)據(jù)庫中獲取信息例子:*get,x1,node,1,loc,x !x1=節(jié)點1的x坐標[CSYS]*/post1*get,sx25,node,25,s,x !sx25=節(jié)點25的x方向應力[RSYS]**get,uz44,node,44,u,z !uz44=節(jié)點44的UZ方向的位移[RSYS]*nsort,s,eqv !對節(jié)點的vonMises應力排序*get,smax,sort,,max !smax=排序的最大值etable,vol,volu !用vol存儲單元體積ssum !對單元表的列求和*get,totvol,ssum,,vol !totvol=對vol的列求和*CSYS=激活坐標系(CSYS)RSYS=激活的結果坐標系(RSYS)APDL基礎

...從數(shù)據(jù)庫中獲取信息一些數(shù)據(jù)可以通過函數(shù)獲取。

例如:x1=nx(1) !x1=節(jié)點1的x坐標[CSYS]*nn=node(2.5,3,0) !nn=在(2.5,3,0)處的節(jié)點[CSYS]*/post1ux25=ux(25) !ux25=25號節(jié)點的UX值[RSYS]*temp93=temp(93) !temp93=節(jié)點93的溫度值width=distnd(23,88) !width=23號節(jié)點和88號節(jié)點間的距離*CSYS=激活坐標系(CSYS)RSYS=激或的結果坐標系(RSYS)APDL基礎

...從數(shù)據(jù)庫中獲取信息在一些地方您可以直接取函數(shù)值,就象用一個參數(shù)一樣。例如:k,10,kx(1),ky(3) !10號關鍵點x坐標取1號關鍵點的x坐標,y坐標取 !3號關鍵點的y坐標k,11,kx(1)*2,ky(3) ![CSYS]*f,node(2,2,0),fx,100 !在節(jié)點(2,2,0)施加力FX[CSYS]**CSYS=激活坐標系(CSYS)APDL基礎概要:利用格式Name=Value定義參數(shù).參數(shù)值可以是一個數(shù)值,一個以前定義過的參數(shù),一個函數(shù),一個參數(shù)表達式,或者一個字符串。利用

*GET

命令或函數(shù)從

ANSYS數(shù)據(jù)庫中獲取信息。ANSYS存儲的是參數(shù)的實際值(數(shù)字或字符串),而不是參數(shù)名。2.數(shù)組參數(shù)數(shù)組參數(shù)

是能夠容納多個值的參數(shù)數(shù)組參數(shù)可以是1-D,2-D,or3-D.1-D:m

x1

列2-D:m

xn

列3-D:m

xn

xk

面17.1-47.6-5.225.0107.9814 17 3861057 -47 7041033 -52 3487141 25 -66622 107 1115x1array5x3arraymxnx3arrayAA=BB=CC=...數(shù)組參數(shù)本章主要討論怎樣定義和使用數(shù)組參數(shù).主要內容:A.數(shù)組參數(shù)的類型B.怎樣定義數(shù)組C.獲取數(shù)據(jù)庫信息D.數(shù)組操作E.專題數(shù)組參數(shù)

A.數(shù)組參數(shù)的類型有三種數(shù)組參數(shù)類型:數(shù)值數(shù)組表字符數(shù)組數(shù)值數(shù)組是標準的1-D,2-D,或3-D數(shù)值矩陣,如下面的

BBBB(2,3)=704BB(3,1)=1033等.814 17 3861057 -47 7041033 -52 3487141 25 -66622 107 1115x3arrayBB=數(shù)組參數(shù)

...數(shù)組參數(shù)的類型數(shù)據(jù)表除了行、列、面可以是實數(shù)外與數(shù)值數(shù)組類似。第零行、零列、零面必須填充數(shù)字。對定義隨時間變化的載荷和類似情況非常有用例如,表FORCE可以表示力隨時間的變化關系,第零行表示時間值。FORCE(0.4)=279.9996FORCE(6.5)=560.0FORCE(8.9)=119.25等數(shù)組參數(shù)

...數(shù)組參數(shù)的類型一個字符型數(shù)組是1-D,2-D,或3-D的字符串矩陣可用來存放文件名,自由度標識等每個字符串不超過8個字符。JOB1JOB2JOB3JOB4JOB5jobs=UXUYUZROTYROTZdofs=數(shù)組參數(shù)

B.怎樣定義數(shù)組定義數(shù)組的步驟:1. 指定類型和維數(shù)UtilityMenu>Parameters>ArrayParameters>Define/Edit>Add或使用

*DIM

命令.

例如:*dim,aa,array,4 !4x1x1array*dim,force,table,5 !5x1x1table*dim,bb,array,5,3 !5x3x1array*dim,dofs,char,6 !6x1x1characterarray數(shù)組參數(shù)

...怎樣定義數(shù)組2.給數(shù)組賦值UtilityMenu>Parameters>ArrayParameters>Define/Edit>Edit或使用*VEDIT

命令或使用“=”命令.例如:bb(1,1)=11,21,31,41,51bb(1,2)=12,22,32,42,52bb(1,3)=13,23,33,43,53數(shù)組參數(shù)

...怎樣定義數(shù)組對于表型數(shù)組,必須定義第0位置。

否則,取缺省值7.8886E-31.例如:force(1,1)=0,560,560,238.5,0force(1,0)=1E-6,0.8,7.2,8.5,9.3force(0,1)=0數(shù)組參數(shù)

...怎樣定義數(shù)組對字符數(shù)組,不能以圖形方式填充字符串使用“=”命令鍵入值,接著用

*STAT顯示字符串每個字符串必須用單引號括起來例如:dofs(1)=‘ux’,‘uy’,‘uz’,‘rotx’,‘roty’,‘rotz’*stat,dofs數(shù)組參數(shù)

...怎樣定義數(shù)組給數(shù)組賦值的其他方法:用

*VFILL

命令或(UtilityMenu>Parameters>ArrayParameters>Fill)預定義函數(shù)賦值躍階函數(shù)隨機函數(shù)等從一個文件讀入數(shù)據(jù):*VREAD

用于數(shù)值數(shù)組*TREAD

用于數(shù)據(jù)表或

UtilityMenu>Parameters>ReadfromFile從數(shù)據(jù)庫獲取(下一步討論).數(shù)組參數(shù)

C.獲取數(shù)據(jù)庫信息正如

*GET

從數(shù)據(jù)庫獲取標量數(shù)據(jù),可以用

*VGET

獲取數(shù)組信息.或

UtilityMenu>Parameters>GetArrayData先定義數(shù)組,然后獲取數(shù)據(jù).例如:*dim,dispval,array,20,3 !20x3array*vget,dispval(1,1),node,1,u,x !UXofnodes1-20incolumn1*vget,dispval(1,2),node,1,u,y !UYincolumn2*vget,dispval(1,3),node,1,u,z !UZincolumn3數(shù)組參數(shù)

…獲取數(shù)據(jù)庫信息其他可獲取的數(shù)組信息類型:節(jié)點和關鍵點坐標(當前坐標系)單元屬性,體,面等.實體的選擇狀態(tài)(1選上,0未選上)節(jié)點應力,應變,溫度梯度,熱通量等單元表數(shù)據(jù)等…數(shù)組參數(shù)

D.數(shù)組操作一旦定義了數(shù)組參數(shù),就可以對它們進行各種操作UtilityMenu>Parameters>ArrayOperations或使用

*VFUN,*VOPER,*VSCFUN,*VWRITE等命令數(shù)組參數(shù)

...數(shù)組操作*VFUN

對單個數(shù)組操作*vfun,b(1),sin,a(1)

等價于

b(j)=sin(a(j))其他操作包括:自然對數(shù),常用對數(shù),指數(shù)平方根,排序,復制局部坐標系與整體坐標系的相互轉換關系路徑的切線和法線矢量等數(shù)組參數(shù)

...數(shù)組操作*VOPER

對兩個數(shù)組參數(shù)操作。*voper,c(1),a(1),sub,b(1)

等價于

c(k)=a(k)-b(k)其它操作包括:加,減,乘,除最小值,最大值,邏輯運算微分,積分點積和叉積數(shù)組參數(shù)

...數(shù)組操作*VSCFUN

定義數(shù)組參數(shù)的屬性。*vscfun,maxval,max,a(1)

等價于一個標量

maxval=max(a(i))其它操作包括:求數(shù)組的所有元素的和諸如標準偏差,中值,平均數(shù)等統(tǒng)計量最小值/最大值,最小值/最大值的位置

第一個和最后一個非零記錄的位置數(shù)組參數(shù)

...數(shù)組操作*VWRITE把數(shù)據(jù)按格式寫進文件例如:*cfopen,wing,dat*vwrite(/,3x,’NodeNumber’,4x,’Temperature’,/)*vwrite,nnum(1),tval(1)(5x,f6.0,6x,e14.8)*cfclose

將會創(chuàng)建一個名為

wing.dat

的文件,包含指定格式的

nnum

tval

數(shù)組數(shù)組參數(shù)

...數(shù)組操作還有大量很有用的數(shù)組操作。請參考

APDL程序員指南獲取詳細情況.10.宏基礎APDL(ANSYS參數(shù)設計語言)最強有力的特征之一是創(chuàng)建宏的能力。宏就是一系列貯存在一個文件中的ANSYS命令,并且能象一個ANSYS命令一樣來運行。常用宏功能:它可以如同ANSYS命令一樣具有變量。分支和循環(huán)用來控制一系列命令。交互式特征如圖形拾取,提示,以及對話框。宏可以嵌套――一個宏引用第二個宏,第二個宏引用第三個宏,等等―一直可嵌套20級?!昊A在這一章,我們將給出創(chuàng)建宏的基本步驟:A.

創(chuàng)建一個宏B.

帶參數(shù)的宏C.

分支D.

循環(huán)E.

總的指導方針F.

練習更多的細節(jié),請參考APDL程序指南等宏基礎

A.創(chuàng)建宏創(chuàng)建一個宏,在文本編輯器中,創(chuàng)建一系列命令,并以文件名name.mac保存它們.

name以一個字母開始,可以達32個字符。在文件名中空格不允許。避免特殊字符。確保name不是一個有效的ANSYS命令??梢栽陂_始或所有處理器(PREP7,POST1,等等)中進行檢驗。如果得到這種信息...不是有效的命令或宏…那么這個名字是“安全的”。擴展名.mac允許你運行宏如同運行一個命令一樣:只需敲入name。宏基礎

…創(chuàng)建宏例子:宏totvolume.mac用來計算所有單元的整個體積:esel,all !選擇所有單元etable,volume,volu !將所有單元體積建立單元表ssum !求解單元表選項總和*get,totvol,ssum,,item,volume !totvol=體積總和*stat,totvol !列totvol值-在Post1(在求解之后)中發(fā)出totvolume來計算整個體積。宏基礎

…創(chuàng)建宏搜索路徑:-ANSYS首先在下列搜索路徑中尋找文件name.mac并運行它: 1.

/ansys57/docu2.

在ANSYS_MACROLIB環(huán)境變量路徑中。3.

在WINDOWS系統(tǒng)中的注冊路徑。4.

當前工作路徑。-如果在上級路徑和下級路徑同時尋找到同樣的文件名,則采用上級路徑。宏基礎

B.帶參數(shù)的宏通過特殊的字符名,你可以創(chuàng)建多達20個參數(shù)的宏:-NAME,arg1,arg2,arg3,…,ar10,ar11,ar12,…,ar20參數(shù)如同標準的ANSYS命令中的參數(shù),可以為:數(shù)字字符(被包括在單引號中)參數(shù)(標量或數(shù)組)參數(shù)表達式參數(shù)的意義由所定義的宏來決定。宏基礎

…帶參數(shù)的宏例如,我們可以定義宏totvolume.mac來計算指定類型的所有單元體積和:-TOTVOLUME,TYPE宏具體如下:esel,s,type,,arg1etable,volume,volussum*get,totvol,ssum,,item,volume*vwrite,arg1,totvol(‘Totalvolumefortype’,f4.0,’elements=’,f8.2)求解之后在通用后處理器中發(fā)出totvolume,1將得出下列結果:宏基礎

…帶參數(shù)的宏注意:-特殊的字符名ARG1-ARG9和AR10-AR99僅僅是局部參數(shù),僅僅在該宏中有效。一旦宏運行結束后并返回ANSYS主程序,它們將無意義。避免在模型的其它地方應用這些名稱。-無論何時應用參數(shù)時,一定通過在宏中包含注釋來描述它們的意義。 例如,下面在宏totvolume.mac的開始處的注釋是非常有用的。 !MacroTOTVOLUME.MACtocalculatetotalvolumeofelements !Usage:TOTVOLUME,TYPE.validonlyinPOST1afterasolve !TYPE=validelementtypenumberesel,stype,,arg1 … …宏基礎

C.分支通過應用IF-THEN-ELSE結構,在只有一定的條件滿足的情況下,你可以運行一個命令或命令塊。在*IF和*ELSEIF命令中,可以運用AND,OR,或XOR比較符。

IF,A,EQ,B,AND,C,GT,D,THEN分枝以*IF開始和*ENDIF結束。*ELSEIF和*ELSE在它們中也可以使用: *if,x,eq,y,then ,,,,,, ,,,,,, *elseif,x,eq,z,then ,,,,,, *else ,,,,,, ,,,,,, *endif宏基礎

…分枝條件符可能是:x,EQ,y !x=yx,NE,y !xyx,LT,y !x<yx,GT,y !x>yx,LE,y !xyx,GE,y !xyx,ABLT,y !|x|<|y|x,ABGT,y !|x|>|y|X和Y可以是數(shù)字,參數(shù),或參數(shù)表達式。操作符為:THEN

運行隨后的命令塊*EXIT

退出DO循環(huán)*CYCLE

跳到DO循環(huán)末端這些操作符只有當條件為真是才起作用。否則,ANSYS將會移至*ELSEIF(若提供),*ELSE(若提供),和*ENDIF。*if,x,eq,y,

then宏基礎

…分支例如,你可以在宏totvolume.mac中增加if-test來測試輸入的變量是的有效性:*if,arg1,lt,1,then !如果ARG1小于1*msg,warn !發(fā)出一個警告Elementtypenumbermustbe1orgreater !退出宏/eof esel,s,type,,arg1 !選擇所有確定類型的單元etable,volume,volu !建立單元表ssum !求解單元表數(shù)據(jù)總和…發(fā)出totvolume,-1將得出下列結果:宏基礎

D.循環(huán)DO循環(huán)允許執(zhí)行一個命令塊數(shù)次。實際上在DO循環(huán)中對其中包含什么內容沒有限制。你可以包含任何ANSYS命令――包括前處理,求解和處理――這是在條件允許的情況下。*DO開始循環(huán),*ENDDO結束循環(huán)。 -你可以用*EXIT(退出循環(huán))和*CYCLE(跳到DO循環(huán)末)控制循環(huán)。 -EX

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論