
發布
注冊
/
登錄ansys隨機函數的案例
如何利用ANSYS的隨機分布函數功能
作者:水哥ANSYS
來源:本文源于ANSYS結構院,上海安世亞太授權轉載
隨機分布在材料微觀力學分析中扮演著重要角色,例如混凝土骨料力學、新型材料纖維力學分析等內容,提及隨機分布,更多的同學可能會聯想到采用第三方軟件如Matlab來生成,并導入ANSYS計算,其實ANSYS本身自帶隨機分布功能,只是功能略有限制。
ANSYS中產生隨機分布的一個重要函數是 *VFILL,該函數主要的作用是對數組進行填充賦值,而在賦值的過程中,用戶既可以選擇自定義數據內容,也可以選擇利用隨機函數產生數值,ANSYS Help中*VFILL說明如下:
該函數主要輸入參數為數組名稱以及輸入數據的函數,當選擇為data時,表示用戶自定義數據進行填充,當選擇其他選項時,則根據函數類型進行填充。
*VFILL隨機數生成支持均勻分布(Rand)、高斯分布(GDIS)、三角分布(TRIA)、貝塔分布(BETA)、伽馬分布(GRMM),*VFILL用于批量生成,如果需要單獨生成數據,則可以分別使用函數:
1) num=Rand(con1,con2)
2) num=Gdis(con1,con2)
3) num=Tria(con1,con2,con3)
4) num=Beta(con1,con2,con3,con4)5) num=Gram(con1,con2,con3)
上述con1~con4分別表示函數參數,例如針對均布分布,con1和con2分別表示分布的下限和上限。
下面分別以均布分布、高斯分布、伽馬分布為例進行演示。
1、均布分布
APDL代碼:
finish
/clear
/prep7
numA=1000
!
展開 Abaqus子程序隨機函數添加
Abaqus dload中子程序怎么添加隨機函數,讓他實現初始位置隨機呢?
生成不同填充率的模型-隨機函數的使用 ¥299
每次生成一個新的隨機圓心坐標時,計算該圓心與已生成的圖形圓心之間的距離。
使用循環和條件語句來判斷這個距離是否大于兩個圖形的半徑之和。如果是,則該圓心坐標有效;否則,該坐標無效,需要重新生成新的圓心坐標。
根據有效的圓心坐標和隨機生成的半徑來繪制圖形。
四、隨機函數的生成
在ANSYS APDL中,我們可以使用RAND函數來生成隨機數。例如,RAND(MIN_CIRCLE_RADIUS, MAX_CIRCLE_RADIUS)函數可以生成一個在最小半徑和最大半徑之間的隨機半徑值。通過這種方式,我們可以實現圖形大小和形狀的隨機性。
五、案例分析與應用
以一個簡單的平面案例為例,假設我們需要在一個100x100的區域內隨機生成圓形加強骨料,填充率為0.2。首先,我們可以使用APDL編寫一個循環來不斷生成隨機的圓心坐標和半徑,直到達到設定的填充率為止。在每次生成圓形時,都需要檢查是否與已生成的圓形發生干涉。如果有干涉,則需要重新生成新的圓形。最后,將生成的模型導出為所需的格式進行后續的模擬和分析。
通過這種方法,我們可以有效地在材料內部隨機生成加強骨料或缺陷孔隙等結構,為更準確地模擬材料的真實行為提供有力支持。同時,這種方法也可以應用于其他類似的隨機生成問題中,具有廣泛的應用前景
以下為apdl的完整命令,請付費后學習
finish
/clear
! 定義參數
PI = 3.141592653589793
PLANE_HEIGHT = 100 ! 平面高度
PLANE_WIDTH = 100 ! 平面寬度
MIN_CIRCLE_RADIUS = 0.2 !
展開 ANSYS隨機骨料 纖維混凝土 三維隨機纖維骨料 隨機纖維 隨機裂縫 隨機幾何模型
1、ANSYS三維纖維骨料混凝土:
2、ANSYS球形試件隨機模型:
3、ANSYS隨機裂縫巖石節理裂隙
建模插件:
CAD隨機幾何3D插件

從形函數與函數的連續可導性到ansys結果中的節點解與單元解的差異
如題,《從形函數與函數的連續可導性到ansys結果中的節點解與單元解的差異》,形函數對結果的影響大部分人都能聯想到二次單元比線性單元求得的結果更精確,但該文要表達的不僅如此,而是從更一般地討論怎么從單元的形函數來理解節點解與單元解之間的差異。
首先討論單元的階次。作為基礎我們應該明白網格與單元的區別,網格是將幾何體離散化后的結構,即組成幾何體的微元,單元是這些微元的幾何、物理或數學屬性(這里我們并不打算詳細討論單元的這些屬性,但是這些知識會方便對本文的理解)。我們經常在使用ansys或其他CAE軟件時經常會遇到單元的選擇以及單元階次的選擇,一般一種單元包括線性單元和二次單元甚至更高級的單元,比如在ansys中經常被使用的shell181(左)和shell281(右),線性單元使用的形函數是一次的多項式,高次單元使用的形函數是高次的多項式,形函數用于描述相鄰節點之間的位移場,所以高次的單元可以更好的描述形狀復雜的幾何體。
不同于常規材料力學中通過平衡方程求解(首先求得的解是力解),有限元方式求解的特點是首先求解出的結果是節點的位移解,即displacement of nodes,所有的節點位移形成了位移場,在空間上位移場一定是連續的,但是不一定是平滑的。哎哎,是不是特別熟悉的感覺,正是和高數中函數的連續性和可導性兩個性質非常相似,不用奇怪,位移場本來就是用函數描述的,所以自然就存在函數的性質,所以用函數的性質來理解就可以方便解釋一些現象了,下圖分別是用兩種形函數描述的位移場,在有限元求解后得到的首先是節點位移解,即圖中5個節點的位移,假如每個節點的位移用坐標x\y\z的函數來表示,然后通過形函數插值得到相鄰節點之間的位移(也是xyz的函數),上圖是用一次形函數插值,下圖是用二次形函數插值。
展開 利用ANSYS隨機振動分析功能實現隨機疲勞分析
利用ANSYS隨機振動分析功能實現隨機疲勞分析
[日期: 2005-5-19 13:05:51]
來源: 作者:
[字體:大 中 小]
ANSYS隨機振動分析功能可以獲得結構隨機振動響應過程的各種統計參數(如:均值、均方根和平均頻率等),根據各種隨機疲勞壽命預測理論就可以成功地預測結構的隨機疲勞壽命。本文介紹了ANSYS隨機振動分析功能,以及利用該功能,按照Steinberg提出的基于高斯分布和Miner線性累計損傷定律的三區間法進行ANSYS隨機疲勞計算的具體過程。
1.隨機疲勞現象普遍存在
在工程應用中,汽車、飛行器、船舶以及其它各種機械或零部件,大多是在隨機載荷作用下工作,當它們承受的應力水平較高,工作達到一定時間后,經常會突然發生隨機疲勞破壞,往往造成災難性的后果。因此,預測結構或零部件的隨機疲勞壽命是非常有必要的。
2.ANSYS隨機振動分析功能介紹
ANSYS隨機振動分析功能十分強大,主要表現在以下方面:
1. 具有位移、速度、加速度、力和壓力等PSD類型;
2. 能夠考慮a阻尼、b阻尼、恒定阻尼比和頻率相關阻尼比;
3. 能夠定義基礎和節點PSD激勵;
4. 能夠考慮多個PSD激勵之間的相關程度:共譜值、二次譜值、空間關系和波傳播關系等;
5.
展開 『分享』利用ANSYS隨機振動分析功能實現隨機疲勞分析
利用ANSYS隨機振動分析功能實現隨機疲勞分析
ANSYS隨機多面體骨料 三維多面體投放 隨機骨料混凝土細觀模型
模型采用CAD隨機多面體3D插件建立并導入ANSYS軟件。
在ANSYS內進行網格劃分。
ANSYS隨機多面體骨料模型,采取精確的干涉判斷,采用多面體相交判別程序,不同于常見的球體干涉,本程序可達到更好的隨機度,以實現大粒徑與小粒徑的匹配度。
ANSYS混凝土三維隨機骨料 混凝土細觀 隨機球體 顆粒增強復合材料建模
研究進展
通過ANSYS進行混凝土細觀模型的構建是進行混凝土性能分析的有效方法,在ANSYS內構建混凝土細觀模型是分析的前提?,F階段在ANSYS內進行隨機混凝土模型構建的主流方法是通過APDL命令流等形式,這要求研究者應具有一定的程序設計能力。
為了方便快捷的構建出混凝土細觀幾何模型,這里提出另一種建模方案,通過AutoCAD模型導入的方式,實現無編程構建混凝土隨機骨料。
模型構建
1、CAD模型生成
首先采用CAD隨機球體顆粒插件在AutoCAD內構建三維球體幾何模型:
插件可指定生成隨機分布的不相交的球體顆粒,同時生成與球體顆粒裝配的帶有孔洞的長方體基體。同時對顆粒的粒徑大小、比例等都能進行控制。
將生成的三維球體幾何模型導出為.sat格式文件備用。
2、ANSYS Workbench 導入
打開ANSYS Workbench,在幾何內進行導入預先保存的.sat文件:
后續進行網格劃分等操作,在ANSYS Workbench內進行即可:
插件下載
建模用到的CAD插件下載:
CAD隨機球體顆粒插件
展開 ANSYS 內部函數
VLNEXT(N)
Next higher volume number above N in selected set (or zero if none
found).
30.距離函數
DISTND(N1,N2) Distance between nodes N1 and N2.
DISTKP(K1,K2) Distance between keypoints K1 and K2.
DISTEN(E,N) Distance between the centroid of element E and node N.
Centroid is determined from the selected nodes on the element.
31.角度函數 (缺省單位為弧度,單位變換用 *AFUN 命令)
ANGLEN(N1,N2,N3) Subtended angle between two lines (defined by
three nodes where N1 is the vertex node). Default is in
radians.
ANGLEK(K1,K2,K3) Subtended angle between two lines (defined by
three keypoints where K1 is the vertex keypoint). Default is in
radians.
32.最近實體函數
NNEAR(N) Selected node nearest node N.
KNEAR(K) Selected keypoint nearest keypoint K.
ENEARN(N) Selected element nearest node N.
展開 ansys的取值函數
有關實體狀態的取值函數
NSEL(N)
ESEL(E)
KSEL(K)
LSEL(L)
ASEL(A)
VSEL(V)
表示某個實體狀態,其返回值-1,沒有選中,0,沒有定義,1,被選中
有關下一個被選實體的取值函數
NDNEXT(N)
ELNEXT(E)
KPNEXT(K)
LSNEXT(L)
ARNEXT(A)
VLNEXT(V)
表示編號大于N,E,K,L,A,V的下一個被選實體
有關實體位置的取值函數
CENTRX(E)
CENTRY(E)
CENTRZ(E)
單元E在中心位置的X,Y,Z的坐標系(直角坐標系),有所選的節點決定
NX(N)
NY(N)
NZ(N)
KX(K)
KY(K)
KZ(K)
節點N或關鍵點K在激活坐標系中X,Y,Z的坐標值
LX(L,LFRAC)
LY(L,LFRAC)
LZ(L,LFRAC)
線段L在長度比率為LFRAC(0~1)時的X,Y,Z的坐標值
有關最靠近某位置的節點或關鍵點編號的取值函數
NODE(X,Y,Z)
KP(X,Y,Z)
被選擇的節點嘴靠近X,Y,Z位置的節點或關鍵點編號(在激活的坐標系下,如果存在多個節點或關鍵點,那么取其最小值)
有關距離的取值函數
DISTND(N1,N2)
DISTKP(K1,K2)
節點或關鍵點兩點之間的距離
DISTEN(E,N)
單元E的中心點與節點N之間的距離,中心點將由單元上被選擇的節點確定
有關角度的取值函數
ANGLEN(N1,N2,N3)
ANGLEK(K1,K2,K3)
節點或關鍵點兩條邊之間的夾角,缺省時單位為弧度,其中所選擇的3個節點中,N1或K1是頂點
有關最靠近實體的節點,關鍵點和單元的取值函數
NNEAR(N)
最靠近節點N的被選節點
KNEAR(K)
最靠近關鍵點K的被選關鍵點
ENEARN(N)
最靠近節點N的被選單元,單元的位置將由被選節點確定
有關面積的取值函數
展開 
Ansys workbench正弦駐頻轉隨機窄帶PSD譜的方式 ¥10
問題:
在Ansys Workbench進行隨機振動分析時,有時為了評估結構共振條件下是否可以滿足要求。需要將環境PSD譜,疊加共振頻率的駐頻進行振動仿真。當使用Ncode進行計算時可以實現同時輸入環境PSD譜和正弦駐頻。但是在Ansys Workbench進行隨機振動分析時,確不能同時輸入PSD譜和正弦駐頻。此時需要將正弦駐頻轉為窄帶隨機PSD譜,再將環境PSD與窄帶PSD的疊加譜輸入到Ansys Workbench進行隨機振動分析。
實現方法:
將正弦駐頻轉為窄帶隨機,可以依據1、能量等效原則。通過正弦信號的均方值等于窄帶隨機信號的均方值來換算。2、也可以通過兩種激勵狀態下結構的最大加速度響應幅值相等來換算。本文參考周炬老師《Ansys workbench有限元分析實例詳解-動力學》中給出的公式進行轉換。具體講解請參考教程。這里僅是將教材的轉換方法結合工作需求轉化為可以方便使用的excel工具。
應用介紹:
Excel工具表如下。
以下是進行PSD換算所需的輸入信息:
? 首先環境PSD譜線信息。
? 然后根據結構的模態仿真結果,確定結構固有頻率為駐頻點。
? 正弦激勵幅值:通常依據頻率值所在范圍有相對應的激勵幅值要求。
? 窄帶帶寬:通常由指定寬度、共振頻率的百分比等。
完成以上輸入信息后,點擊左上角“組合”按鈕即可得到,正弦駐頻轉窄帶隨機PSD+環境PSD的疊加結果。
將疊加后的PSD譜直接復制到Ansys Workbench中,再進行輸入Improved fit后即可進行正常隨機振動仿真。
示例:
1.模態疊加法隨機振動分析,計算結構模態。
展開 ANSYS的“get”函數列表
自己收藏并與大家分享,來自于ANSYS的help
“get函數”可用于某些項,并可用于代替*get命令。函數返回值并在函數被輸入的地方使用它,繞過了用參數名存儲值和在要使用值的地方輸入參數名的需要。
例如,假設要計算兩個節點的平均X位置。使用*GET命令,參數L1可以指定節點1的X位置,參數L2可以指定節點2的X位置。然后,可以從mid=(L1+L2)/2計算mid位置:
*GET,L1,NODE,1,LOC,X
*GET,L2,NODE,2,LOC,X
MID=(L1+L2)/2
但是,使用返回節點N的X位置的節點位置“get ”函數NX(N),可以直接計算MID,而不需要中間參數L1和L2:
MID=(NX(1)+NX(2))/2
除非另有說明,否則Get函數返回活動坐標系中的值。
Get函數參數本身可能是參數或其他Get函數。get函數NELEM(E,NPOS)返回元素編號E的NPOS位置的節點號。組合函數NX(NELEM(E,NPOS))返回該節點的X位置。
下表列出了按功能分組的可用get函數。*GET命令還列出GET函數作為*GET items的替代項(如果適用)
Table 1: *GET - Get Function Summary
"Get Function" Summary
Entity Status Get Function Description
NSEL(N) Status of node N: -1=unselected, 0=undefined, 1=selected.
ESEL(E) Status of element E: -1=unselected, 0=undefined, 1=selected.
展開 Ansys Wrokbench分段復雜函數載荷,加載方式記錄 ¥10
問題:
Ansys Workbench的載荷加載形式有三種,constant/table/function。Constant是在載荷步內給定恒定值;table形式較為便捷,可以在定義每個子步的載荷大??; function形式可以輸入以time/X/Y/Z為變量的簡單方程。
但是仍有某些形式的載荷較難輸入,例如分段復雜函數載荷等。
解決方法:
需要使用Ansys經典界面的function功能編輯分段載荷獲得ADPL載荷命令;再利用Workbench中command的形式施加載荷。
操作方式:
1. Ansys經典中function公式編輯器輸入分段函數。
在function頁卡中選著變量time,在Regime頁卡中逐個定義分段函數;
定義完成后點擊保存,并輸入函數名“TEST3.func”
2. 再次點擊標題欄的Parameters>Functions>Read From files>找到剛才保存的TEST3.func。并在Table Parameter Name中給編輯導入的分段函數命名PForce。此后分段函數即被公式編輯器編譯為表格數組形式,數組的名稱為:PForce。
3. 提取分段函數數值的ADPL命令形式,用于Workbench使用。
完成分段函數導入和命名后,在下拉列表中的File>List>Log file中可以查看經典界面GUI操作對應的ADPL命令。在這里可以將上述function公式編輯器導入的分段函數數組對應ADPL命令顯示出來。(有時log file顯示不及時,再重復一次即可)
4. 在Workbench內創建加載remote point點,并設定加載點的ADPL name為“LoadPoint“,用于加載。
展開 ANSYS知識普及4——如何施加函數變化的表面載荷 (ANSYS專家編輯,非原創,歡迎轉摘)
本人準備出一個ANSYS知識普及系列,將有用的網上資料歸攏,由于知識水平有限,不對之處請諒解。也歡迎各位網友提供好的資料分享,讓我們共同完成這個ANSYS知識普及系列。
編輯人:技術鄰ANSYS專家
業務咨詢網址:http://www.yqgqt.org.cn/content/other/402981
(打個小廣告)
聲 明:1、ANSYS知識普及系列中所有資料均來自網上;
2、如侵犯知識產權,請聯系ANSYS專家本人或者技術鄰,我將第一時間刪除。
小技巧:加本人關注,可以及時觀看本人發布的技術貼
ANSYS具有函數加載功能,可以很方便地在模型表面施加函數變化的各種載荷,在ANSYS中,也可以通過變通的方式來實現此功能,其思路是:
首先選定所要施加函數變化表面載荷的表面上的節點,利用ANSYS的參數數組和嵌入函數知識寫一簡單的命令流,定義好相應節點位置的面載荷值,然后通過在節點上施加面載荷來完成。
下面以在一圓柱表面施加函數變化載荷為例:
/prep7
et,1,45
cyl4,,,0.5,,,,3
vsweep,all
asel,s,loc,y,0.01,1
nsla
!
*get,nmax,node,,num,max,
*get,nmin,node,,num,min,
*afun,deg
*dim,t1,array,nmax,1,1,
csys,1
*do,k,nmin,nmax
*if,nsel(k),eq,1,then
t1(k)=1000*sin(ny(k))
*else
t1(k)=0
*endif
*enddo
!
sffun,pres,t1(1)
sf,all,pres,0
展開