
發布
注冊
/
登錄ansys查詢變量的案例
Abaqus后處理插件——云圖場變量查詢器 ¥50
基于Python對Abaqus進行后處理的二次開發,形成了場變量查詢插件,寫論文寫報告的實用小工具,話不多說直接上圖。
其實Abaqus后處理模塊本身具有場變量查詢功能(Tools-Query-Probe values),可以滿足使用需求,但其顯示效果非常不友好,以節點(單元)編號+場變量值的形式顯示,理工科氣息十足。不得不說,Abaqus在操作體驗方面而言和Workbench還是有一些差距。
PS:常規的二次開發通過fieldvariable.getsubset方式查詢到的場變量為節點直接插值的計算結果,即節點上的值是從相鄰單元插值后未經過平均化的值,是離散的,而結果顯示云圖默認是按75%平均化處理后的結果,更接近實際。
本插件查詢到的場變量為平均化之后的結果,和云圖的顯示的值一致。
展開 ANSYS中的變量
ANSYS中的變量總的來說分為兩大類:一類是標量參數;一類是數組參數。其意義與C語言中的參數和數組類似。標量參數是指單個的變量,而數組則是由一系列具有相同意義的數據組成。
一:標量參數
標量參數分為兩種:數值型的和字符型的。
1:標量參數的定義或修改:可以使用*SET命令或直接寫出賦值表達式。修改時,只需改變數據即可。
例如:
*SET,LENGTH,10 !定義了一個名為LENGTH的數值型變量,并且值為10
*SET,COMMENT,'DISP' !定義了一個名為COMMENT的字符型變量,并且賦值為DISP
以上兩句等價于:
LENGTH=10
COMMENT='DISP'
2:標量參數的刪除:同樣可以使用*SET命令或直接寫出賦值表達式或使用*DEL命令。將需要刪除的變量賦空值,注意不是數字0或空格。
例如:我們將上面定義的兩個參數刪除。語句如下:
*SET,LENGTH,
*SET,COMMENT,
或:
LENGTH=
COMMENT=
又或:
*DEL,LENGTH
*DEL,COMMENT
3:標量參數的GUI操作菜單。GUI路徑為:Utility Menu->Parameters->Scalar Parameters。標量參數的定義,刪除和修改都可以在這個窗口中完成。
二:數組參數
數組參數按維數可分為:一維數組,二維數組和三維數組。
按存儲的數據類型可分為:
1)一般數組參數,也成為ARRAY Parameter。是一種默認的數據類型,也就是說,如果用戶不聲明數據類型,系統就會自動使用該數據類型。該數組的行、列、面的索引均為從1開始的連續整數,元素值可以為整數或實數。
2)字符數組參數,又名CHAR Array Parameter。元素值為不多于8個的字符或數字組成。其行,列,面的索引值也是從1開始的連續整數。
展開 ANSYS APDL如何求變量的最大值
在其他語言中求最大值非常容易,比如有三個變量分別是MXS6,MXS7和MXS8,要求他們的最大值賦予MaxS,用到的函數往往只是一個函數MaxS=max(MXS6,MXS7,MXS8)。但是在ANSYS Parametric Design Language Guide第三章第8節 Parametric Functions部分卻找不到這樣的函數。
無奈自力更生吧。
MaxS=MXS6
*if,MXS7,GT,MaxS,THEN
MaxS=MXS7
*ENDIF
*if,MXS8,GT,MaxS,THEN
MaxS=MXS8
*ENDIF
這是三個變量,如果有更多變量方法也是一樣的,變量太多就用個循環,如果需要留言給我,我給大家把代碼寫出來。
展開 ANSYS 中查詢單元類型
在 ANSYS 中查詢單元類型有多種方法,下面將針對經典 APDL 界面和 Workbench 界面分別展開介紹。
經典 APDL 界面
1. 使用命令查詢
在 APDL 的命令輸入窗口輸入特定命令即可查詢單元類型。
查詢所有單元信息:使用ELIST命令能列出所有單元的詳細信息,其中包含單元類型。輸入命令后按回車鍵,程序會在輸出窗口顯示單元的編號、節點編號以及單元類型等信息。

【ANSYS經驗技巧】- 學會使用變量數組函數(轉載)
5.直到你為函數中所有的狀態的所有變量提供賦值,才能保存為表格式參數使用。
注意:在ansys分析中用函數加載必須的兩個步驟:
1利用函數編輯器創建任意方程或函數
2在利用函數加載器加載函數,并以函數定義表參數
轉自:三維網。 作者:4kpolo
原帖鏈接:http://www.3dportal.cn/discuz/viewthread.php?tid=746468&extra=page%3D1%26amp%3Bfilter%3Ddigest
有相互依存關系的離散變量的ansys與workbench聯合優化分析
需要說明的是對應基于離散變量的優化,采用不同的響應面構建方法和優化算法,效率相差特別大。即使對于本問題節點數目5個,單元數目6個。選擇的響應面構建方法和優化算法不同,也有可能計算幾個小時。對于本問題采用Latinhypercube sampling (LHS拉丁超立方體抽樣)生成試驗設計,采用神經網絡方法來構建響應面,實際證明效率較高。
另外對應基于離散變量的優化分析,目前workbench只支持篩選法和混合整數序列二次規劃優化算法。
另外,其實該問題也可以完全采用ansys經典完成程序優化設計,利用離散編碼陷阱實現從連續變量到離散變量的轉變。但是該方法也有很多缺點:
1.最終得優化的變量依然是連續的,需要人為后處理,實現規格表的編碼。
2.最終得到的優化結果,可能陷入局部最小陷阱。采用首次得到的優化結果為初始值,然后縮小優化變量的采用空間,可以一定程度上改善結果的精度。
3.規格表的離散區間步長對于求解的效率的影響非常大。因此,需要增大優化迭代次數。
4.系統優化過程中,可能多次在等效解處徘徊。影響求解效率。
5.人為將連續變量離散化后,基于偏導算法的一階優化方法將不能處理該類問題。
6.最終解碼得到的材料規格往往需要返回到分析中去,才可以得到真實的狀態變量數值。
完全采用ansys優化的具體方法這里不在提供。
這里順便說下ansys和workbench優化分析的優缺點:
1.采用ansys可以很方面的實現網絡結構的編程和變量提取后控制。對于類似問題,如果分析的模型更大,在workbench中建模可以說是一件極其痛苦的事情。
2.workbench提供了比ansys更多的優化算法。自身就擁有離散變量的優化功能。這也或許是現在ansys舍棄經典優化界面的一個很大原因。
展開 ansys優化,因變量和目標函數都沒有變化【急】【急】
ansys優化,因變量和目標函數都沒有變化【急】【急】
ansys優化之后,為什么只有自變量發生了變化,而因變量和目標函數都沒有變化,還是和初始值一樣?也進行了四五十次的迭代,也有顯示最優解,只是因變量和目標函數都沒有變化,疑惑中。
ANSYS 查詢函數(Inquiry Function)(很有用)
ANSYS 查詢函數(Inquiry Function)
資料來源:www.iccae.com
在ANSYS操作過程或條件語句中,常常需要知道有關模型的許多參數值,如選擇集中的單元數、節點數,最大節點號等。此時,一般可通過*GET命令來獲得這些參數。現在,對于此類問題,我們有了一個更為方便的選擇,那就是查詢函數 — Inquiry Function。
Inquiry Function類似于ANSYS的 *GET 命令,它訪問ANSYS數據庫并返回要查詢的數值,方便后續使用。ANSYS每執行一次查詢函數,便查詢一次數據庫,并用查詢值替代該查詢函數。
假如你想獲得當前所選擇的單元數,并把它作為*DO循環的上界。傳統的方法是使用*GET命令來獲得所選擇的單元數并把它賦給一個變量,則此變量可以作為*DO循環的上界來確定循環的次數
*get, ELMAX,elem,,count
*do, I, 1, ELMAX
…
…
*enddo
現在你可以使用查詢函數來完成這件事,把查詢函數直接放在*DO循環內,它就可以提供所選擇的單元數
*do, I, ELMIQR(0,13)
…
…
*enddo
這里的ELMIQR并不是一個數組,而是一個查詢函數,它返回的是現在所選擇的單元數。括弧內的數是用來確定查詢函數的返回值的。第一個數是用來標識你所想查詢的特定實體(如單元、節點、線、面號等等),括弧內的第二個數是用來確定查詢函數返回值的類型的(如選擇狀態、實體數量等)。
同本例一樣,通常查詢函數有兩個變量,但也有一些查詢函數只有一個變量,而有的卻有三個變量。
展開 Ansys使用APDL 批量創建數組,一維數組名設置循環變量,與二維數組等效
APDL 批量創建數組,在一維數組名上做文章,實現其與二維數組近似相同效果
首先批量創建了8個一維數組,數組名中的循環變量j使用%j%
finish
/prep7*do,j,1,8
*dim,List%j%,array,10,1
*enddo
然后給八個數組里的每一個元素賦值,總共80個元素
并且以數組元素值作為節點編號,同數組的y坐標值相同
*do,i,1,10
*do,j,1,8
List%j%(i,1)=(i-1)*10+j
n,List%j%(i,1),i,j
*enddo
*enddo
最終效果如下
注:轉自 https://blog.csdn.net/weixin_43717845/article/details/104567039
小白一枚,本為學習之余的記錄,希望能讓些跟我一樣的初學者少走彎路,寫的也不盡嚴謹,有疏漏錯誤之處也請各位專家指出,不吝賜教……多謝
展開