
發(fā)布
注冊
/
登錄刪除變量ansys的案例
ABAQUS UMAT調(diào)用后為什么損傷變量出現(xiàn)負值?
ABAQUS UMAT調(diào)用后為什么損傷變量和單元刪除出現(xiàn)負值和大于1得值?
調(diào)用子程序后,計算復(fù)合材料損傷過程,損傷變量和單元刪除出現(xiàn)負值和大于1得值,真誠求助。附上子程序,請老師指教
20251203.txt
ANSYS中的變量
ANSYS中的變量總的來說分為兩大類:一類是標(biāo)量參數(shù);一類是數(shù)組參數(shù)。其意義與C語言中的參數(shù)和數(shù)組類似。標(biāo)量參數(shù)是指單個的變量,而數(shù)組則是由一系列具有相同意義的數(shù)據(jù)組成。
一:標(biāo)量參數(shù)
標(biāo)量參數(shù)分為兩種:數(shù)值型的和字符型的。
1:標(biāo)量參數(shù)的定義或修改:可以使用*SET命令或直接寫出賦值表達式。修改時,只需改變數(shù)據(jù)即可。
例如:
*SET,LENGTH,10 !定義了一個名為LENGTH的數(shù)值型變量,并且值為10
*SET,COMMENT,'DISP' !定義了一個名為COMMENT的字符型變量,并且賦值為DISP
以上兩句等價于:
LENGTH=10
COMMENT='DISP'
2:標(biāo)量參數(shù)的刪除:同樣可以使用*SET命令或直接寫出賦值表達式或使用*DEL命令。將需要刪除的變量賦空值,注意不是數(shù)字0或空格。
例如:我們將上面定義的兩個參數(shù)刪除。語句如下:
*SET,LENGTH,
*SET,COMMENT,
或:
LENGTH=
COMMENT=
又或:
*DEL,LENGTH
*DEL,COMMENT
3:標(biāo)量參數(shù)的GUI操作菜單。GUI路徑為:Utility Menu->Parameters->Scalar Parameters。標(biāo)量參數(shù)的定義,刪除和修改都可以在這個窗口中完成。
二:數(shù)組參數(shù)
數(shù)組參數(shù)按維數(shù)可分為:一維數(shù)組,二維數(shù)組和三維數(shù)組。
按存儲的數(shù)據(jù)類型可分為:
1)一般數(shù)組參數(shù),也成為ARRAY Parameter。是一種默認的數(shù)據(jù)類型,也就是說,如果用戶不聲明數(shù)據(jù)類型,系統(tǒng)就會自動使用該數(shù)據(jù)類型。該數(shù)組的行、列、面的索引均為從1開始的連續(xù)整數(shù),元素值可以為整數(shù)或?qū)崝?shù)。
2)字符數(shù)組參數(shù),又名CHAR Array Parameter。元素值為不多于8個的字符或數(shù)字組成。其行,列,面的索引值也是從1開始的連續(xù)整數(shù)。
展開 ANSYS APDL如何求變量的最大值
在其他語言中求最大值非常容易,比如有三個變量分別是MXS6,MXS7和MXS8,要求他們的最大值賦予MaxS,用到的函數(shù)往往只是一個函數(shù)MaxS=max(MXS6,MXS7,MXS8)。但是在ANSYS Parametric Design Language Guide第三章第8節(jié) Parametric Functions部分卻找不到這樣的函數(shù)。
無奈自力更生吧。
MaxS=MXS6
*if,MXS7,GT,MaxS,THEN
MaxS=MXS7
*ENDIF
*if,MXS8,GT,MaxS,THEN
MaxS=MXS8
*ENDIF
這是三個變量,如果有更多變量方法也是一樣的,變量太多就用個循環(huán),如果需要留言給我,我給大家把代碼寫出來。
展開 【ANSYS經(jīng)驗技巧】- 學(xué)會使用變量數(shù)組函數(shù)(轉(zhuǎn)載)
c) *DIM,C,char,4,1,1
C(1)=‘a(chǎn)’,‘b’,‘c’,‘d’
3)
利用*VEDIT命令或等價GUI utility menu——parameter——array parameters——define/edit定義數(shù)組(不能編輯字符型數(shù)組)
填入適當(dāng)?shù)闹岛筮x擇file——apply/quit,至此一個數(shù)組編輯完成
6
4)列表顯示數(shù)組參數(shù))
通過*status
或GUI list——parameters(與變量顯示一樣的操作!)實現(xiàn)!
5)曲線圖形顯示數(shù)組參數(shù))
使用*VPLOT或通過GUI:utility menu——plot——array parameter繪制數(shù)值型數(shù)組參數(shù)的列矢量,由于array類型數(shù)組的數(shù)據(jù)是無序的故只能用柱狀圖;
*vplot,parx,pary,y2,y3,…y8;
其中,parx是x軸上的列矢量名
Pary,y2….是y軸上映射的8個列矢量
例如:
*DIM,A,ARRAY,5,1,1
A(1)=1,2,3,4,5
*vplot,,A
6)刪除數(shù)組參數(shù)
刪除數(shù)組參數(shù)與刪除變量很類似,也可以用*set或“=“進行賦空值刪除,對于字符參數(shù)則賦值為‘’,刪除時只需刪除變量名及第一個元素的名稱,或使用utility menu——parameter——array parameter——define/edit。
舉例:刪除一個一維數(shù)組A(12,1,1)命令如下:
A(1)=
或*set,A(1)
7)數(shù)組的儲存和恢復(fù)——此操作基本與變量相同,請參看變量的操作。
四.表參數(shù)的概念和定義
由于表參數(shù)(table)不同于一般數(shù)組,所以在這里著重的講講:
1.table表類型參數(shù)是數(shù)值型的數(shù)組參數(shù),與array數(shù)組類似,但包含0行0列(其他數(shù)組都是從1開始),每個面的下標(biāo)值放在該面的0,0處。表的下標(biāo)可以是遞增的整數(shù)或?qū)崝?shù)。
展開 
ANSYS中的LDELE命令——刪除沒有劃分單元的線
1.命令格式
LDELE, NL1, NL2, NINC, KSWP
其中
NL1, NL2, NINC:刪除線號從NL1到NL2(默認等于NL1),增量為NINC(默認為1)的所有線。如果NL1=ALL,則刪除所有[LSEL]命令選擇的線,并忽略NL2與NINC的內(nèi)容。如果NL1=P,則激活圖形拾取功能,忽略命令的其它內(nèi)容。
KSWP:是否刪除線上包含的點,有如下選項
0——僅刪除線
1——刪除線以及附屬在該線上的點(同時附屬在其它線上的點不能刪除)。
注:除非先刪除面,否則附屬在面上的線不能刪除。
2.操作路徑
Main Menu> Preprocessor> Modeling> Delete> Line and Below
Main Menu> Preprocessor> Modeling> Delete> Lines Only
3.實例
輸入命令:
/PREP7
K,1,1,1,0
K,2,2,1,0
K,3,4,1,0
K,4,3,0,0
LSTR,1,2
LARC,2,3,4,1.5
LDELE,1,,,1
則生產(chǎn)的圖線如圖1所示,刪除了線1和關(guān)鍵點1
圖1 生產(chǎn)的圖形
4.參考資料
ANSYS HELP 15.0
展開 有相互依存關(guān)系的離散變量的ansys與workbench聯(lián)合優(yōu)化分析
需要說明的是對應(yīng)基于離散變量的優(yōu)化,采用不同的響應(yīng)面構(gòu)建方法和優(yōu)化算法,效率相差特別大。即使對于本問題節(jié)點數(shù)目5個,單元數(shù)目6個。選擇的響應(yīng)面構(gòu)建方法和優(yōu)化算法不同,也有可能計算幾個小時。對于本問題采用Latinhypercube sampling (LHS拉丁超立方體抽樣)生成試驗設(shè)計,采用神經(jīng)網(wǎng)絡(luò)方法來構(gòu)建響應(yīng)面,實際證明效率較高。
另外對應(yīng)基于離散變量的優(yōu)化分析,目前workbench只支持篩選法和混合整數(shù)序列二次規(guī)劃優(yōu)化算法。
另外,其實該問題也可以完全采用ansys經(jīng)典完成程序優(yōu)化設(shè)計,利用離散編碼陷阱實現(xiàn)從連續(xù)變量到離散變量的轉(zhuǎn)變。但是該方法也有很多缺點:
1.最終得優(yōu)化的變量依然是連續(xù)的,需要人為后處理,實現(xiàn)規(guī)格表的編碼。
2.最終得到的優(yōu)化結(jié)果,可能陷入局部最小陷阱。采用首次得到的優(yōu)化結(jié)果為初始值,然后縮小優(yōu)化變量的采用空間,可以一定程度上改善結(jié)果的精度。
3.規(guī)格表的離散區(qū)間步長對于求解的效率的影響非常大。因此,需要增大優(yōu)化迭代次數(shù)。
4.系統(tǒng)優(yōu)化過程中,可能多次在等效解處徘徊。影響求解效率。
5.人為將連續(xù)變量離散化后,基于偏導(dǎo)算法的一階優(yōu)化方法將不能處理該類問題。
6.最終解碼得到的材料規(guī)格往往需要返回到分析中去,才可以得到真實的狀態(tài)變量數(shù)值。
完全采用ansys優(yōu)化的具體方法這里不在提供。
這里順便說下ansys和workbench優(yōu)化分析的優(yōu)缺點:
1.采用ansys可以很方面的實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)的編程和變量提取后控制。對于類似問題,如果分析的模型更大,在workbench中建模可以說是一件極其痛苦的事情。
2.workbench提供了比ansys更多的優(yōu)化算法。自身就擁有離散變量的優(yōu)化功能。這也或許是現(xiàn)在ansys舍棄經(jīng)典優(yōu)化界面的一個很大原因。
展開 ansys優(yōu)化,因變量和目標(biāo)函數(shù)都沒有變化【急】【急】
ansys優(yōu)化,因變量和目標(biāo)函數(shù)都沒有變化【急】【急】
ansys優(yōu)化之后,為什么只有自變量發(fā)生了變化,而因變量和目標(biāo)函數(shù)都沒有變化,還是和初始值一樣?也進行了四五十次的迭代,也有顯示最優(yōu)解,只是因變量和目標(biāo)函數(shù)都沒有變化,疑惑中。
Ansys使用APDL 批量創(chuàng)建數(shù)組,一維數(shù)組名設(shè)置循環(huán)變量,與二維數(shù)組等效
APDL 批量創(chuàng)建數(shù)組,在一維數(shù)組名上做文章,實現(xiàn)其與二維數(shù)組近似相同效果
首先批量創(chuàng)建了8個一維數(shù)組,數(shù)組名中的循環(huán)變量j使用%j%
finish
/prep7*do,j,1,8
*dim,List%j%,array,10,1
*enddo
然后給八個數(shù)組里的每一個元素賦值,總共80個元素
并且以數(shù)組元素值作為節(jié)點編號,同數(shù)組的y坐標(biāo)值相同
*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
最終效果如下
注:轉(zhuǎn)自 https://blog.csdn.net/weixin_43717845/article/details/104567039
小白一枚,本為學(xué)習(xí)之余的記錄,希望能讓些跟我一樣的初學(xué)者少走彎路,寫的也不盡嚴(yán)謹(jǐn),有疏漏錯誤之處也請各位專家指出,不吝賜教……多謝
展開 APDL宏文件系列講解(三)
APDL中的變量與其他編程語言一樣,具有全局變量、局部變量和系統(tǒng)變量之分,一般情況下,我們定義的變量為全局變量,也即定義變量后,在刪除變量或者退出ANSYS之前,該變量一直存在于內(nèi)存中,可以隨時調(diào)用。而局部變量則一般用于宏文件中,其生命周期與宏文件的使用周期相同,當(dāng)宏文件運行完畢后,宏文件中的局部變量都會在內(nèi)存中消失,這里的局部變量包括兩種類型:
1、宏文件外部輸入的變量;
2、宏文件內(nèi)部定義的變量
宏文件內(nèi)部定義的變量很好理解,其實和我們平時定義變量雷同,只是其使用范圍僅限于宏文件整個運行周期而已。這里重點說下宏文件外部輸入的變量。
通過外部輸入變量,能實現(xiàn)很多參數(shù)化宏文件的定制,是宏文件使用的高級技巧,應(yīng)重點掌握。一個宏命令,可以同時輸入19個變量,變量代號分別是ARG1~ARG2,也即在創(chuàng)建過程中,如果需要外部輸入?yún)?shù),我們只需要以ARGn 的格式代替就行,變量類型包括但不僅限于數(shù)值型變量,使用格式如下:
!創(chuàng)建宏文件
*Create,File_name,mac
!========
………
!以創(chuàng)建矩形為例,定義長寬為外部輸入的參數(shù)
Blc4,,,ARG1,ARG2
!========
*enddo
!宏文件創(chuàng)建完畢
!===========
!宏文件調(diào)用
File_name,A1,A2
!其中A1、A2分別按順序賦值給ARG1、ARG2
下面以地震反應(yīng)譜分析為例,說明創(chuàng)建求解地震反應(yīng)譜的宏文件創(chuàng)作過程。
展開