
發布
注冊
/
登錄ansys輸入變量的案例
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輸入文件轉到marc輸入數據文件的APDL程序 ***
最好在ansys前處理器環境下進行轉換操作,還要注意下面的命令要采用批處理方式輸入,不要復制粘貼.
/COM, ==========================================================
/COM,
/COM, Beijing University of Technology
/COM,
/COM, Beijing, 100022, P.R. China
/COM,
/COM, WITH HONEYCOMBS MODEL EXAMPLE
/COM, Apr. 2006
/COM, ANSYS 10.0/MARC.2005R2
/COM,
/COM, ==========================================================
/COM,
/COM, MA LIANHUA
/COM, School of Mechanical Engineering,
/COM, Beijing University of Technology
/COM, QQ: 29128203
/COM, Email:mark@emails.bjut.edu.cn
/COM,
/COM, ==========================================================
!因為MARC的輸入文件格式是用行與格來明確定義它所表示的內容,所以它不能有任意的空白行或空白鍵出現,否則會發生讀取資料有誤的情況.
!
展開 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之——地震波的輸入和求解
對于地震波的輸入,可以把荷載記錄做成文件,利用apdl的讀取功能讀入倒數據庫中。下面的例子是自己編的一個小文件。修改一下可以更簡潔。有用到的朋友自己作一下把。
fini
/config,nres,1000
*dim,aceX,TABLE,3000,1
*dim,aceY,TABLE,3000,1
*dim,aceZ,TABLE,3000,1
*creat,ff
*vread,aceX(1,1),acex,txt,,1
(e16.6)
*vread,aceX(1,0),ACETT,,,1
(e17.6)
ACEX(0,1)=1
*end
/input,ff
*creat,ff
*vread,aceY(1,1),acey,txt,,1
(e16.6)
*vread,aceY(1,0),ACETT,,,1
(e17.6)
ACEY(0,1)=1
*end
/input,ff
*creat,ff
*vread,aceZ(1,1),acez,txt,,1
(e16.6)
*vread,aceZ(1,0),ACETT,,,1
(e17.6)
ACEZ(0,1)=1
*end
/input,ff
!地震波時程記錄分成了3個文件,每個文件是一列。分別記錄x,y,z方向的加速度。acett是時間記錄。
這樣就可以把加速度記錄讀取倒ansys數據庫中作為數組。
也可以把加速度記錄做成一個文件,這樣程序就簡單多了。大家可以試看看修改一下。
下面是計算部分語句:
/SOLU
ANTYPE,trans
!
展開 
【ANSYS經驗技巧】- 學會使用變量數組函數(轉載)
可以用于定義隨某一變量(如時間)變化的邊界條件載荷,相應譜曲線,壓力曲線,材料溫度曲線,磁性材料的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.在每個定義的狀態中重復以上過程。
展開 ANSYS非線性分析MISO模型數據輸入的問題
在ANSYS10.0及以前版本中,即便有下降段也可以繼續計算,但ANSYS12.0以后版本遇到下降段就無法計算了。這是因為老版本軟件只是把這個錯誤忽略掉,實際上并未解決,新版本軟件則老老實實地通知了用戶而已。
如何解決這個問題呢?
用上面的實例來說,就將最后的*0.85去掉即可,即把曲線的下降段換做水平段。
以上材料定義的案例,來自王新敏老師著《ANSYS工程結構數值分析》,因為也看到有人在論壇里發帖說書中命令流材料定義有問題,試過之后確認書中內容準確可用。
———————-補充 —————
可能是上面沒有圖,不形象,所以有的同學沒能完全理解。
所以這里還是針對上面的命令流,用圖形來表達。
設置好MISO屬性后,可以利用TBPLOT命令把這條曲線繪制出來:
tbplot,miso,1 ; 繪制材料1的miso曲線
在修改前,即最后一行為“tbpt,,0.0033,fc*0.85”的時候,繪制出來的曲線如下:
因為有下降段,所以在進行分析的時候悲催的遇到了下面的錯誤提示:
于是,將最后一行的0.85改成1以后,不要下降段,材料曲線變成了這樣的:
調整后,就可以計算了。
那么,“第1點的斜率”呢?
看到圖上的編號了吧,第一點的斜率,就是fc*0.19/0.0002,讓這個數等于彈性模量就OK了。
更多優質精彩內容,請關注公眾號:十千牛
展開 有相互依存關系的離散變量的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使用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
小白一枚,本為學習之余的記錄,希望能讓些跟我一樣的初學者少走彎路,寫的也不盡嚴謹,有疏漏錯誤之處也請各位專家指出,不吝賜教……多謝
展開