【ANSYS經驗技巧】- 學會使用變量數組函數(轉載)

很多人發帖詢問怎么定義函數,怎么定義數組,如何使用函數,看來這方面對于初學者確是一個難點,為了讓大家了解并利用此功能,本人根據自己的理解作出如下總結:
一.參數介紹
1.參數的概念和類型:
參數是指APDL中的變量數組
變量參數有兩種類型:數值型字符型
數組參數有三種類型:數值型字符型,和,表是一種特殊的數值型數組,允許自動進行線性差值
APDL中任何參數都不需要單獨聲明參數(不同于C語言)。數值型參數,無論整形還是實型都按照雙精度進行存儲,被使用但未被賦值的參數程序將默認一個接近0的極小值。字符型參數儲存字符串,賦值方法是將字符創括在一對單引號中(最大長度8個字符)。
2.參數命名規則
1)必須以字母開頭,長度不超過32個字符
2)只能包含字母,數值和下劃線。
3)一般不能以下劃線開頭,以下劃線開頭的參數為系統隱含參數,只用于GUI和宏中。
4)以下劃線結尾的參數用*STATUS命令或組列表顯示,用*DEL刪除。
5)不能使用宏專用的局部參數名:ARG1~ARG9AR10~AR99.
6)不能使用*ABBR命令定義的縮寫。
7)不能使用ANSYS表示子(Lable)如TEMP,UX,PRES等等。
舉例一些無效參數名:
Fjsdklfjsklfjsklfjkslfjksdfjdkslfjsdklfjsdklfjs123434343(長度超過32
S@B(含非法字符@)
UX(系統自由度標識符)'
12ddd(以數字開頭)

二.變量的定義與賦值
一般定義變量與賦值有以下6種,但本文只介紹常用的幾種:

1.利用*set定義變量并賦值
格式 *setparvalueval2val3……val10
Par——參數名
Valu——參數的賦值,數值或字符串
Val2~val10——對數組賦值(見例子4
舉例:

*setlength12(定義length并賦值為12
*setwidthlength(定義width并賦值為length的值12
*setabc_111,’good’(給abc_111定義為字符good)
*setB(1),1,2,3,4(給數組B賦值,B(1)=1, B(2)=2, B(3)=3, B(4)=4)


2. 利用“=”定義并賦值
=”可以直接用來定義和賦值變量,作為一種速記符實際是通過內部調用*set實現參數定義與賦值的。
格式:name=value
name——參數名
vulue——賦給參數的數值或字符,字符必須放在一對單引號內并且不得超過8個字符。
例子:width=12
Length=width12
abc_111=good
B(1)=1, B(2)=2, B(3)=3, B(4)=4

3.利用GUI或命令輸入窗口進行變量定義與賦值。
1)在ansys命令輸入窗口直接12輸入。
2)利用利用GUIutility menu——parameters——scalar parameters 定義賦值%



4.刪除變量) ~
1*setpar,(賦空值,字符型空為‘’)
2name=(賦空值,字符型空為‘’)
3)利用上圖delete
例子:width=
(width
為空值注意不是0)

Abc_123=’’
abc_123為空值)

5.列表顯示變量參數
1)利用*status命令顯示已定義的參數(變量,數組,表)
2)利用GUIutility menu——list——other——parameters utility menu —— List —— status —— parameters —— all para
3)利用GUI顯示指定參數:
utility menu——list——other——named parameters
utility menu——List——status——parameters——named: parameters
6.存儲與恢復變量! n4 }1 k m6 I' q# e
1)存儲變量到指定文件中使用PARSAV命令或選擇菜單 utility menu——parameters——save parameter
格式如下:
PARSAV,LAB,文件名,擴展名
LAB包括scalarall
Scalar——要存儲的變量名(不包括數組表)
All——存儲所有參數包括數組和表

2)從一個文件中恢復已存在的參數使用PARRES命令選擇菜單
Utility menu——parameters——restore parameters
格式如下:
Parreslab,文件名,擴展名
Lab——newchange
New——表示恢復的參數將覆蓋程序內存中的變量(replace
Change——表示恢復的參數將以合并方式增加到程序內存中(merge


三.數組及其應用
1ANSYS允許定義的數組類型
1ARRAY數值型數組——ARRAY數值型數組是缺省的數組類型,用于存儲整行式或實型數據,行列和面的下標從1開始的連續整數。
2CHAR字符型數組——CHAR字符型數組用于存儲字符串的數組,行列面的下標是從1開始的連續證書。
3table表——table表用于存儲整數或實數,是一種特殊的數值型數組,可以實現在數組元素之間的線性差值算法。可以給每一行,列面定義數組下標,并且下標為實數(而不是連續的整數),可以根據下標實現數據差值算法。
4STRING字符串數組,可用*DIM,STRING可以將字符串輸入到數組中,其列與面下標從1開始,行號由字符在字符串中的位置確定。
以上三種類型的數組都不能超過(2-1/8字表長度。

2.定義數組參數
利用*DIM命令或利用utility menu——parameters——array parameters——define/edit定義數組,如果是arraytable類型的數組元素將被初始化為0,如果是char類型的數組元素則被初始化為一空值。
利用*DIM格式如下:
*DIMpartypeimaxjmaxkmaxvar1var2var3
其中:par——數組名
Type
——數組類型(array char table)缺省為array
"

Imax~kmax
——數組下標(ijk)的最大值


Var1~var3
——type=table時對應行列面的變量名

3.賦值數組參數
1)
利用*set命令或“=”給單個或多個數組元素賦值與scalar變量賦值是格式相同。
2)
利用*set或“=”賦值時,賦值對象為第一個元素名,賦值數據是一個列矢量,賦值結果是按列下標遞增順序從第一個賦值數組依次賦值。注意,一次最多只能給10個連續數組元素賦值,當只給一個元素賦值時與變量賦值完全一致。
舉例:
a) *DIM,,1211. D; T! u; k8 \" D6 F
定義數組A為一個array類型,121
A(1)=1,2,……12
給每個元素賦值為其行標

b) *DIMBarray431
定義數組B為一個array類型43

B(1,1)=11,21,31,41
B(1,2)=12,22,32,42
B(1,3)=31,32,33,43
B=
注意此賦值的下標! 對于二維數組,賦值順序按照列進行賦值,注意此規律。三維也是一樣的。
c) *DIMCchar411
C1=a’,‘b’,‘c’,‘d
3)
利用*VEDIT命令或等價GUI utility menu——parameter——array parameters——define/edit定義數組(不能編輯字符型數組)
填入適當的值后選擇file——apply/quit,至此一個數組編輯完成
6
4)列表顯示數組參數)
通過*status
GUI list——parameters(與變量顯示一樣的操作!)實現!


5)曲線圖形顯示數組參數)
使用*VPLOT或通過GUI:utility menu——plot——array parameter繪制數值型數組參數的列矢量,由于array類型數組的數據是無序的故只能用柱狀圖;
*vplot,parx,pary,y2,y3,…y8;
其中,parxx軸上的列矢量名
Paryy2….y軸上映射的8個列矢量
例如:
*DIM,A,ARRAY,5,1,1
A(1)=1,2,3,4,5
*vplot,,A
6)刪除數組參數
刪除數組參數與刪除變量很類似,也可以用*set或“=“進行賦空值刪除,對于字符參數則賦值為‘’,刪除時只需刪除變量名及第一個元素的名稱,或使用utility menu——parameter——array parameter——define/edit
舉例:刪除一個一維數組A(12,1,1)命令如下:
A(1)=
*setA(1)

7)數組的儲存和恢復——此操作基本與變量相同,請參看變量的操作。

四.表參數的概念和定義
由于表參數(table)不同于一般數組,所以在這里著重的講講:
1.table表類型參數是數值型的數組參數,與array數組類似,但包含00(其他數組都是從1開始),每個面的下標值放在該面的00處。表的下標可以是遞增的整數或實數。表數組賦值是通過行和列的下標進行的,如果不賦值,程序自動賦最小值,表允許通過線性差值計算表數組中以定義元素之間的任意值!
注意:
1)每個面的00元素值為該面的下標,若表為一二維表,只有一個面則無需賦值
2
00列的下標只有在差只是才會使用

顯示(list)與數組規則相同注意imax1開頭,不包括00列。
對于表賦值建立建議使用GUI。若用APDL則為A(0,0,1)=….A(0,1,1)=…A(0,N,1)=…
可直接用*STATUSTABLE
1.曲線圖顯示表參數的列矢量:與ARRAY一樣使用*VPLOT,二者的差別是table類型數組的數據是有序的,采用曲線進行表示
2.表差值及表載荷應用9
表參數最大的特點就是提供按行列面的下標進行線性差值的功能。可以用于定義隨某一變量(如時間)變化的邊界條件載荷,相應譜曲線,壓力曲線,材料溫度曲線,磁性材料的B-H曲線。


五.使用函數加載器與編輯器
使用函數加載的必要性就不用多說了,直接開始教程:
函數編輯器定義一個函數的一般步驟:
1.打開函數編輯器,選擇菜單路徑utility——parameter——function
2.選擇函數類型:單個方程還是多值函數(分段函數),如果是后者,必須鍵入函數變量名,即狀態控制變量,同時六狀態也被激活。
3.選擇角度單位,度還是弧度。該選項僅決定方程如何被運算而不影響*AFUNC的設置
4.定義方程:利用基本變量,方程變量和按鍵定義單個方程表達式,或者定義最多6個不同定義域的方程表達式。
1)點擊regime1選項卡,首先指定狀態控制變量的最大和最小取值區間,然后定義該取值區間對應的方程表達式,可將每個狀態控制下的方程儲存起來,在其他狀態控制中重復使用。
2)同理對regime2進行設置,只需制定當前區間最大值
1.輸入一個注釋描述函數(可選),選擇菜單路徑function——file——command
2.保存函數editor——save and type in name 輸入文件名,.func為擴展名,如果需要這些被存儲的函數,首先將其加載到ansys中,并定義一系列的方程變量,以表參數名的形式給某個分析使用。
使用函數加載器:
1.打開函數載入器,選擇parameter——function——read from file 打開保存的函數
2.table parameter name 中輸入表變量名
3.對話框下部對應每個狀態的函數表達式和狀態表。單擊函數表,即顯示每個指定方程變量的數據輸入區,如果需要使用材料ID變量,可以在其輸入區輸入。
4.在每個定義的狀態中重復以上過程。
5.直到你為函數中所有的狀態的所有變量提供賦值,才能保存為表格式參數使用。
注意:ansys分析中用函數加載必須的兩個步驟:
1利用函數編輯器創建任意方程或函數
2在利用函數加載器加載函數,并以函數定義表參數



轉自:三維網。 作者:4kpolo
原帖鏈接:http://www.3dportal.cn/discuz/viewthread.php?tid=746468&extra=page%3D1%26amp%3Bfilter%3Ddigest
登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
3