ABAQUS子程序USDFLD使用案例講解
1 次觀看·2026年11月11日
AI 生成·可能包含錯誤
視頻概述
AI 生成本视频详细演示了在 Abaqus 静态分析中使用 USDFLD 子程序定义自定义场变量(User Defined Field)的完整流程。通过一个简单的圆柱体功能梯度材料案例,讲解了如何实现材料属性(如杨氏模量)随空间位置(半径)连续变化的仿真模拟。
大家好,終於又可以坐下來講一期阿博克斯的應用案例了,
今天我們要講的是一個關於阿博克斯當中應用自程序的這麼一個案例,
用的是USDFLD,也就是自定義場面量,
當然了,我們講的是USDFLD,也就是我們精力學分析當中的一個自程序,
我們還是如往常一樣,以比較簡單的一個案例,
帶大家熟悉一下USDFLD它的使用,
那我們就從這次呢,因爲模型比較簡單,
我就是從模型的建立,把整個流程的給大家演示一下,
我們比如說先創建一個零件,
就叫part1,不管它了,這個都默認,
一個圓柱,它的半徑40,再回一個圓50,拉伸就默認20吧,
就簡單的做一個示例,做一個示範,
創建完成之後,我們就到了一個材料屬性,
這個地方呢,就是在材料屬性設置的過程當中,
我們就需要去定義有關自定義場變量的一些參數,
比如說我們先創建一個簡單的材料1,
我們這個地方呢,就需要先去勾選上這個user defined field,
就是用戶自定義場變量,
如果我們想去用這個USDFLD,這個地方是一定要勾選上的,
然後我們再去定義這個變量,
比如說我已經知道,
我的裏面只有一個狀態解的變量,
那麼就只選擇1就可以了,
如果你是兩個三個四個,
你只需要你設置的這個數值大於等於你的程序當中的一個狀態,
這個變量就可以了,
然後我再去定義一個材料的一個彈性參數,
那這個地方呢,我想我的場變量呢,
就是洋式模量的一個變化,
那我就只有一個場變量,
這個模型當中只有一個場變量,
我就需要勾選這個地方是1,
那如果你的模型當中比較複雜,
你需要自定義的場變量比較多,
那你就可以勾選兩個三個,
這個因爲只是示範嘛,
所以說我就只定義一個,
也就是說僅僅演示作用,
如果你的需要兩個,
那你去勾選兩就可以了,
那這個呢,
你們就可以輸上這個材料的洋式模量,
波松比,
以及這個定義場變量,
這個定義場1,
那這個呢,
我們就可以直接把我已經提前這個數據呢,
這個複製過來,
然後它自動呢,
就會這個這個這個號數呢,
就會增加,
這個應該操作過的同學都會了解這一部分,
也就是我們要定義的場變量,
我們可以看一下這個啊,
我就是相當於呢,
這個是我剛纔在創建什麼,
創建我的零件當中啊,
它的一個內徑是40對吧,
內徑是然後外徑是50,
那這樣呢,
我就是這樣定義,
也就是對於這個材料,
我想確定它就是隨着它的內徑40,
這個地方的材料的屬性就是啊,
166三個零,
然後隨着這個啊,
之間的增大,
然後它的洋式模量呢,
就是越來越大,
就相當於我們在啊,
做材料的一個同學呢,
啊,
可以需要去了解的,
就是說我做的,
比如是功能材料啊,
功能梯度材料,
或者功能梯度圖層,
甚至你做的是激光融附啊,
兩種不同的材料啊,
你需要用到它的一個屬性的變化,
你就可以去啊,
採用這個自定義場邊量的這個方式來實現,
比如這個地方,
我就簡單其他的,
我就只是做演示嘛,
我就不去再輸入其他的一些參數了,
我就首先要定義好這個user defined field,
然後選擇你的狀態啊,
這個解,
然後選擇一個要大於等於你的,
在程序當中的個數就可以了,
然後選擇,
比如說我要定義的場邊量啊,
點選yes,
OK,
然後我再創建一個截面屬性,
我就不再去特意命名了,
我就默認就可以,
因爲只有一個零件一種材料,
對吧,
OK,
這樣我的材料的屬性就賦予了,
那我就可以到裝配,
OK,
默認即可,
我們可以看一下,
就是相當於我的這個基準面,
是以這個圓滑的啊,
後面的這個基準面啊,
這樣看過來是後面的基準面是零點,
創建完成之後,
我們就到step啊,
創建一個我們說的,
因爲USDFLD相比於VUSDFLD呢,
它是在這種什麼精力學當中啊,
來應用,
所以說我們這個地方就啊,
默認啊,
爲了快速的完成分析,
我就默認,
那這個地方呢,
就跟我當時啊,
講過VUSDFLD是一樣的,
此時呢,
我們也需要在這個場邊量輸出的過程當中呢,
要去額外的勾選兩個變量,
也就是在這個state field user time,
這一個選項裏面要選擇SDV1,
因爲我們已經定義了一個什麼,
狀態變量嘛,
就是state variables,
OK,
那下一個呢,
就是FV,
我們已經預定義了一個場邊量,
對吧,
那我就勾選上,
OK,
其他的我就採取默認的一個選項,
創建完成之後,
我們只有一個零件,
不需要去設置額外的相互作用,
當然如果大家的範例啊,
實際上在使用過程當中,
一定會存在一些更多的這個這個選項,
可能你就需要用到相互作用,
那你就去做你對應的這個條件下的一個相互作用的定義即可,
這個地方我就只有一個零件沒有定義,
我就說直接跳過到這個load,
load模塊,
我們先對這個零件進行一個約束,
比如說我不讓他有任何的移動,
先選這個面,
比如說是這個是Z方向,
對吧,
我們可以讓他沿着一個Z方向,
嗯,
不能有移動,
那我就限制他用其他的方向,
根據我們施加的一些載合呢,
可以發生一個變化,
然後我再去施加,
比如說這是一個功能提速材料,
他有一個內部給他一個壓強,
我選擇一個壓力,
均補壓力,
然後ok,
然後選擇內表面,
那我選擇是數之一,
也就是一個兆帕,
因爲我們採用的單位呢是毫米加兆帕,
這個對應,
那我就給他一個一兆帕的向外,
可以看到我正的話就是這個壓力是向外的,
如果你給上負的呢,
同理就說明這個壓力是向內的,
我們是這個內部,
比如說有氣體或者有什麼東西,
對這個管的內壁呢進行了一個壓強,
創建完成之後,
我們就可以到mesh,
mesh模塊,
比如說我可以根據我這個,
是11個目標,
那我就劃分成11個網格吧,
先默認,
先默認吧,
可以先劃分一下網格,
這個其實存在一個問題,
對於這種迴轉體儘量的是先把它分割開,
我們先回到這個parts裏邊吧,
或者是這個,
我們先對它進行一個分割,
它一會兒當然就會失效,
那我們先不管它,
我們現在採用三個點,
來對這個零件進行分割,
OK,
然後再選擇這個,
加這個,
再選擇three point,
這個,
OK,
這樣我們就分成了四部分,
我們再回到我們的mesh模塊,
這樣呢,
其實對於迴轉體來說,
你想採用這個標準的六面體,
一般我們是要求它的一個,
這個對應的,
圓形的角度是不超過90度的,
所以說我就進行了一個劃分,
然後再回到parts,
默認選擇小一點吧,
剛纔是有點大,
我們總共是十個,
選擇這個降調5吧,
OK,
劃分,
這樣在深度方向上,
也就是它只分成了兩個,
那我們進行了一個局部的劃分,
剛纔我們有11組數據,
我們就給它11個,
同理我們也給到一個check,
直接給到11,
OK,
這樣,
然後我們再去重新劃分一下,
這樣就可以看到123456789,
是11個網格,
我們這樣劃的這個前提呢,
是爲了跟我們這個數據對應,
倒不是說一定要去對應,
實際上我們在反正的過程當中,
我們還是需要網格越細越好,
這是爲了跟我們的數據去做一個,
很好的一個對應,
讓大家有一個更直觀的感受,
定義完成之後,
我們其實就可以賦予它一個單元類型,
就是我們採用的,
硬幣,
C3D8,
OK,
那就可以到這個job模塊了,
我們就可以創建一個job,
然後再去選擇我們的user subroutine file,
選擇我們創建的這個,
我已經創建好了,
OK,
實際上呢,
我們就可以去進行一個仿真了,
這個事呢,
我可以就是啊,
這個它整體比較簡單,
比如這個啊,
這部分大家是通過它的那個啊,
子程序啊,
幫助文件就可以獲得的,
中間這一塊呢,
是需要大家去編寫的,
因爲這個比較簡單,
那我是相當於對我的整個模型,
是關於一個座標的一個函數,
那就是我定義了x座標,
是吧,
啊,
座標1付給了x,
座標2付給了y,
這實際上是一對應的,
你要三的話就付給z,
然後呢,
計算我們的一個圓弧半徑,
圓柱的半徑,
然後呢,
我們的啊,
隨着半徑的增大,
我們相對來說,
常變量嘛,
是陽師模量,
那就是隨着半徑的增大,
陽師模量是逐漸增大的啊,
就是這樣,
然後我將我的狀態變量2,
也就是我的半徑,
嗯,
作爲一個狀態變量1啊,
進行一個輸出,
這樣方便大家做一個直觀的對比,
嗯,
比較簡單啊,
相當於我其實整個程序就這麼幾行,
然後想表達的意思就是說,
我整個材料是一個功能梯度材料,
或者是啊,
材料屬性是漸變的,
那你就可以啊,
通過這麼一個方程來表達啊,
去代表某一個區域啊,
從啊,
比如說我們從內徑到外徑,
它的一個厚度的變化,
導致它材料屬性的一個變化,
那我們就可以進行一個啊,
提交,
我們可以等待運行一下啊,
嗯,
因爲我們花費的網格相對來說比較少,
啊,
其實大家是可以啊,
應該一會就可以分析完成,
當然我們也講過這種迴轉體的模型,
你可以去做啊,
只做四分之一啊,
啊,
都是沒有任何問題,
因爲它是屬於一個圓周對稱啊,
這樣都是可以的,
好,
現在我們可以看到呢,
這個照本已經分析完成了,
我們來看一下它的結果,
首先這是它的一個硬力的分佈狀態,
首先呢,
我們是硬力是加在了管壁的內側,
所以說內壁的壓力值是最大的啊,
那我們可以看到我們定義的F位1,
F位1是對應的我們程序當中的話,
Field1,
也就是說我們隨着我們這個啊,
管壁的厚度的增加,
實際上它的什麼,
它的陽射膜量是增加的,
因爲這個方程在此對吧,
它是一個增加的過程,
那我們可以看到它最外側啊,
最外側是219700對吧,
可以看到219700和我們啊,
輸入當中材料參數22啊,
四個零是非常接近的,
同理我們是16600,
這個地方是165800啊,
所以說呢,
我們可以看到這個通過程序和我們輸入的數值呢,
是基本一一對應的,
也就是我們實現了對這個管壁啊,
由薄到厚,
由內到外一個啊,
陽射膜量的一個梯度啊,
梯度定義,
同理呢,
我們也可以看一下我們輸入的一個狀態變量,
我說的是半徑的一個變化對吧,
那就是半徑小,
我們可以是39961,
也就是我們從半徑是從40開始的,
對吧,
基本上是一致的,
然後49950啊,
49.95和我們定義的最大半徑是50啊,
也是一一對應的,
也就是我們定義的常變量啊,
是我們半徑的函數,
以及我們輸出的半徑是一個狀態變量啊,
也都在我們的這個雲圖當中,
很直觀的展示了出來,
比如說我們去輸出一下這個啊,
常變量啊,
我們先可以去定義一個什麼,
定義一個路徑,
對吧,
我們先去note,
然後我們再去輸出我們的數據,
是通過我們的自定義的路徑,
對吧,
然後呢,
哎,
我們就可以看到和我們啊,
隨着這個直徑的由小變大,
我們可以看到我們輸出的啊,
彈性膜量值也是直線增加的,
這與我們定義函數是一樣的,
就是2200,
對吧,
我們實際上也是到2200,
然後最小的是從那一百七啊,
半徑啊,
直徑是零到十,
相對那這個地方相當,
它是相當於是從四十到五十嗎,
相當於是它啊,
各減去四十,
相當於是從零開始,
也就是深度的四十默認的是零,
是這樣的一個分佈狀態,
那這就是我們整個啊,
的一個簡單案例的一個事例講解,
也就是說我這個USDFLD制定一場變量,
在靜地學分析當中如何使用,
特別是對於這種研究材料的同學啊,
剛入門的同學來說是起到一定幫助作用的,
那對於大神們來說呢,
這就是小無見大物了啊,
大家可以直接忽略跳過就可以了啊,
我們其實現在隨着這個這個這個材料的不斷發展啊,
包括我們可能做這個啊,
加工啊,
增材製造啊,
都存在這種材料的意志性,
對吧,
那就是我想去怎麼做仿生的過程中,
要充分考慮材料一個屬性的變化,
那你就可以啊,
考慮是用這個啊,
是程序的方式來實現它啊,
不同區域啊,
或者是不同厚度,
它一個材料屬性的一個定義,
但如果我是比如說我是做增材製造的,
或是激光融合的,
我分了兩層內部呢,
是一個機體外部呢,
是另一種材料,
那我其實就可以什麼,
在這個地方通過分段函數,
對吧,
在通過一個判斷語,
就是當這個厚度低於多少的時候啊,
它是什麼樣的一個材料屬性,
當厚度超過多少,
然後是賦予一個材料屬性,
這樣對於這個做啊,
這個激光融合增材製造的同學來說呢,
其實也是一個很好的一個啊,
一個點去啊,
更真實的模擬自己的這種啊,
符合材料吧,
這種符合材料,
好,
那關於這個USDFLD的一個使用案例呢,
我就簡單講解到這兒,
算是拋磚引玉,
對於特別是我講的案例都比較簡單啊,
主要是對於初學者來說,
有問題呢,
歡迎大家啊,
積極的留言討論,
嗯,
最後呢,
拋出一個問題吧,
就是啊,
我們看着視頻的同學,
有沒有對這個ansys,
因爲ansys相對於abacus嘛,
它都是兩種大型通用軟件,
有沒有人這個同學呢,
可能是ansys特別精通,
但是對abacus不精通,
嗯,
可以留言啊,
就說你可以私信我,
也可以留言,
就說你很精通ansys啊,
特別是對這個APDL啊,
也就是它的一個腳本語言編寫非常擅長啊,
我現在呢,
啊,
遇到一點難題,
在因爲現在最近這個又要用ansys,
但是呢,
ansys是在碩士期間學的,
基本上已經都都丟乾淨了啊,
需要重新撿起來,
比如說你對APDL語言這個腳本非常熟悉,
然後又熟悉這個啊,
單元的一個節點的排序啊,
然後對節點的載合進行這個,
對這個畫分發網格之後,
對節點進行一個載合的施加啊,
甚至你可以懂得這個單元的生死啊,
當然是是基於ansys,
因爲基於abacus的呢,
這個啊,
我是都會的啊,
所以說如果有同學對啊,
基於ansysAPDL語言去實現啊,
單元的排序啊,
單元的節點載合的加載,
以及單元生死的控制,
那希望留言啊,
這個告訴我想請教一點問題,
或者是我們再交流一下啊,
好吧,
那今天的這個算是一個題外話啊,
歡迎這個交流好,
那今天就講到這,
我們下個視頻再見。

