
發布
注冊
/
登錄程序實現的案例
newmark迭代的MATLAB程序實現
newmark迭代的MATLAB程序實現
% newmark方法的程序實現
clc
clear
m=[6/12,1/12;1/12,2/12];
k=[2*3,-1*2;-1*2,1*2];
f1=[0;1];
d2=inv(m)*f1;
b=0.25;
r=0.5;
dt=0.12;
a0=1/(b*(dt)^2);
a1=r/(b*dt);
a2=1/(b*dt);
a3=1/(2*b)-1;
a4=r/b-1;
a5=0.5*dt*((r/b)-2);
a6=dt*(1-r);
a7=r*dt;
pk=k+a0*m;
pk=inv(pk);
d0=[0;0];
d1=[0;0];
for i=1:10
t=0.12*i;
if t>0.5
f1(2)=0;
end
ff=0.0;
d00=0.0;
ff=ff+m*(a0*d0+a2*d1+a3*d2);
pf1=f1+ff;
d00=d00+pk*pf1;
d22=a0*(d00-d0)-a2*d1-a3*d2;
d11=d1+a6*d2+a7*d22;
d0=d00;
d1=d11;
d2=d22;
a(i)=d00(1);
b(i)=d00(2);
end
a
b
這個程序其實較好理解,先搞懂newmark方法,一般的動力學有關的書上會有newmark方法的編程思路,結合著看一下,應該十分鐘內您就會明白.
第一段是一些初值設置;第二段就是迭代算法!
批評指正,相互學習!
轉自 振動論壇
展開 [轉載]用戶子程序具體實現心得
結合論壇上各位大蝦的經驗和自帶幫助,前段時間動手試了一下用戶子程序的實現過程,現將自己的一些體會與大家共享,相信對做二次開發的新手有用
N;x
用戶子程序實現過程:
第一步:所需文件準備:把DEF_SIM目錄下的def_usr.f , DEF_SIM_USR_ABsoft70.gui , DEF_SIM_P4_USR_ABsoft70.gui , DEF_SIM_P4_USR_LIB.lib , DEF_SIM_USR_LIB.lib和lib目錄下的所有.lib文件拷到工作目錄下。備份DEF_SIM.exe ,DEF_SIM_P4.exe兩個文件。
第二步:編寫源程序。對于新手可以使用模版自帶的子程序,對于材料流動應力子程序模版里頭本身就自帶有一個,所以可以不需要自己編寫。
第三步:用absoft7.0或以上版本打開DEF_SIM_USR_ABsoft70.gui 文檔,指定好library files,用工作目錄下的lib文件來替換原來默認的lib文件(這一步很關鍵,試了好久才發現),要不然編譯可以通過,可是不能生成執行文件。上述做完后直接點build就ok了,自動生成了DEF_SIM.exe。重復上面的過程打開DEF_SIM_P4_USR_ABsoft70.gui 文檔生成DEF_SIM_P4.exe。
第四步:用生成的DEF_SIM.exe ,DEF_SIM_P4.exe替換原來的這兩個文件。
第五步,運行模型。對于流動應力子程序,只要在material那里選擇子程序就ok了。
展開 基于Abaqus的umat子程序實現三維編織復合材料疲勞性能預測
(1)在Umat子程序中選用三維Hashin準則進行纖維束的失效判斷,選用最大應力準則進行基體的失效判斷。
(2)確定單胞疲勞失效載荷、極限應變,和纖維束平均應力。
(3)計算時,計算模型需對界面和邊界條件采用一定的假設與簡化。提取加載點位移載荷數據。
圖1 單胞靜力分析載荷位移曲線
2.2 疲勞分析
(1)建立纖維束、界面、基體的疲勞折減模型,定義損傷因子,這些均在Umat子程序中加以實現。同樣的,在建立疲勞折減模型時也需引入一些的假設以簡化模型。在本此研究模型中,首先利用以下文獻中提供的單向復合材料疲勞壽命預測公式確定不同應力水平下纖維束的疲勞壽命:
(2)依據計算所得的疲勞壽命,在Umat子程序中實現不同應力水平下纖維束、界面和基體的剛度折減、強度折減。
(3)最后,利用子程序實現載荷步的循環加載,同時在每次循環中對單胞的疲勞狀態及失效狀態進行判斷,直至單胞達到最大疲勞壽命狀態。
2.3 結果展示
(1)單胞應力水平與疲勞壽命的關系
本文分別依據以上方法,進行了不同應力水平的單胞疲勞壽命預測,單胞應力水平與疲勞壽命的關系如圖2所示。
圖2 單胞疲勞壽命預測結果
(2)損失演化
其中,纖維束的損傷演化如圖3所示。
展開 多約束下桁架結構截面優化在MSC.Nastran上的程序實現(論文下載)
利用MSC/PCL語言將該算法在MSC.Nastran上進行了程序實現,開發出了優化模塊的新版本。將每一步優化迭代過程的初始值引入到用戶程序,經過有限次迭代即可得到最優設計結果,多個算例表明了程序的可靠性和精確性。
有需要的朋友可以去這里下載:
http://www.caenet.cn/paper/Paper.aspx?ID=381

Abaqus實現裂紋擴展相場法模擬-源程序出售(包含教學視頻) ¥49.9
Abaqus軟件實現裂紋擴展相場法模擬,包含8個典型案例與對應視頻教程,例如單邊拉裂紋擴展模擬,巴西圓盤裂紋擴展模擬,動態裂紋擴展模擬,接觸面裂紋擴展模擬等案例,模擬效果可看效果圖。此外還包括2篇論文和對應論文源程序案例,采用Abaqus用戶子程序實現相場法模擬。
教學視頻體積太大暫不上傳,已購買資源的可以聯系我qq872335684
注1:上述所有資料源于本人辛苦收集,這里僅收取部分資料查找費,大家按需下載。
注2:上述所有資料均不答疑,購買后不退不換。
注3:如有侵權,請聯系本人,將立即下架。
Marc中hypela子程序實現塑性應變疑問
1.用hypela2用戶子程序編寫的彈塑性材料本構關系計算程序,其中
分別計算了彈性應變和塑性應變,該子程序的形參中有e(ngens)存放
總應變,可以在后處理中顯示(Total strain)。但是對于內部的彈性
應變和塑性應變不知怎么樣更新讓它在后處理界面中顯示(elastic
strain和plastic strain),也就是說不知怎么樣在子程序中將計算
出來的彈性應變和塑性應變存放到系統中保存這兩個量的地方,可以
在每一步中更新;
2.用plotv也不行啊,
subroutine plotv(v, s, sp, etot, eplas, ecreep, t, m, nn, layer,ndi, nshear,
jpltcd)
etot:積分點處總塑性應變;
eplas:積分點處的塑性應變;
用了自己的本構后這里的eplas就是0,如果用計算出的塑性應變直接
在這里以user defined variable來顯示的話則全部單元顯示的塑性
應變都是同一個值。
3.在c卷table3-3的單元后處理代碼(Element post codes)中,代碼
301代表總應變張量(Total strain tensor),代碼321代表塑性應變
張量(plastic strain tensor),401代表彈性應變張量(elastic
strain tensor)。
后處理代碼1-6說是應變分量(components of strain),21-26代表
塑性應變分量(components o f plastic strain),那么這些應變分量
跟前面的對應的應變張量有什么區別呢?
4.用hypela子程序實現材料彈塑性本構關系,根據小變形彈塑性來
推導的公式,計算了應力應變。
展開 基于JC模型的umat子程序實例-Hopkinson壓桿的隱式求解器數值仿真實現 ¥8
眾所周知,Abaqus中自帶的JC模型只能應用于顯示求解器(Abaqus/Explicit),但是隱式求解器(Abaqus/Standard)通常具有更高的精度,而且隨著研究的進步JC模型也出現了新的修正形式,因此我們有必要基于Umat實現傳統的JC模型,以便有需要的朋友在此基礎上進一步創新,避免重復“造車”!本文基于JC模型的Umat子程序實現hopkinson壓桿的數值模擬,本文的一些參數設置和程序借鑒了盧劍鋒老師的碩士論文《沖擊載荷作用下材料和結構力學行為有限元模擬》,且沒有考慮溫度軟化。
裝配圖如下
JC模型的方程形式如下
試樣的材料參數如下
入力桿和出力桿使用線彈性材料,彈性模量和泊松比分別為200GPa和0.3。
在入力桿的一端施加應力脈沖
入力桿某點和出力桿某點上的應力波時程曲線如下
建議大家按照前面提到的論文自己獨立把程序走一遍,也歡迎大家下載本次的*.cae文件和*.for文件,后期打算基于JC模型的umat子程序做一個侵徹的案例,感謝持續關注!
展開 利用Abaqus用戶子程序實現制動盤熱分析中的熱源移動
在進行制動器熱分析時,若要分析整個制動過程或多次制動后的結果,直接采用接觸摩擦生熱的方式受到制動時間以及大位移接觸的影響,計算較困難,若采用結構靜態傳熱又無法實現隨制動盤的轉動熱源的移動。Abaqus中可通過對結構設置質量流率(MASS FLOW),采用熱傳導分析實現熱源移動。需要注意的是,MASS FLOW不支持CAE,需要通過關鍵字設置。下面以汽車制動盤熱分析說明整個過程及MASS FLOW的使用方法。
首先僅建立制動盤的模型即可,不需要制動片模型。如下圖所示:
分別設置制動盤的材料屬性,設置熱傳導分析步(Heat transfer)。邊界為初始溫度場,對流換熱、熱輻射等。載荷為表面熱流密度,施加在初始制動片與制動盤接觸的面積內。其中需要考慮熱流密度隨制動盤速度的變化,對流換熱系數隨速度的變化,以及對流換熱系數沿制動盤徑向的變化等。如下圖所示為熱流密度施加的區域。
接著設置質量流率(MASS FLOW),首先需要指定質量流率施加的區域,此模型中選擇制動盤的所有節點,將其設置為一個set,給定相應的name(后續將用到此set)。確認材料、分析步、邊界、載荷等設置正確后可輸出inp文件添加質量流率關鍵字或直接在CAE中添加關鍵字。
在step后添加關鍵字,如下圖所示。添加完成后保存inp文件。
接著是最關鍵的部分,質量流率需要使用用戶子程序實現,子程序中需要給出由制動盤速度變化引起的質量流率的變化,以及沿制動盤徑向的質量流率的變化,同時若為多次制動,需要區分制動、停止的過程,僅在制動過程施加質量流率。具體的用戶子程序如下所示:
用戶子程序
求解時調用此子程序計算即可。整個分析過程可看到熱源在制動盤上移動,計算后的溫度場結果如下圖所示。
來源:有限元在線的博客,版權歸作者所有。
展開 下加載面修正劍橋模型及其在Abaqus中umat子程序的實現
這 個基本特征給程序的編程工作帶來了很大的方便,因為當前的應力點都處于下 加載屈服面上,因此不需要判斷此時的應力狀態是否到達屈服面。
二。Abaqus的umat子程序實現
子程序編寫流程如下所示:
三。模型驗證
下面給出一個簡單的應用 UMAT 子程序的算例,將模型劃分為多個單元, 分別采用位移的加載方式和力的加載方式,并分別與試驗數據和 ABAQUS 自帶 的修正劍橋模型計算結果進行對比,以此說明 UMAT 子程序可以應用于多個單 元的模型,對于位移和力的加載方式均適用,并證明 UMAT 子程序適用于超固 結土體的力學特性分析和地基的固結沉降分析。
從而證明了編寫的子程序的有效性和實用性。
最后,大家有關于Abaqus二次開發的任何需求可以添加管理員微信號:CAE320,同時也歡迎大家關注“320科技工作室”的微信公眾號,掃一掃二維碼即可關注~~
展開 PID控制在ABAQUS中的程序實現 ¥15
VUAMP子程序又可對此行為進行閉環控制。結合ABAQUS的有限元屬性,因此其可以完成普通動力學軟件不能勝任的工作,如考慮繩索材料屬性的物理模型、流固耦合模型、復雜非線性問題的閉環控制實現。
PID作為工業界常用的控制手段,受其啟發,可以采用FORTRAN語言結合ABAQUS數據計算更新模式,在VUAMP子程序中編寫PID控制程序,實現在閉環控制下的動力學仿真驗證工作。
基于ABAQUS的VDLOAD子程序實現四輪小車移動
本貼就以VDLOAD子程序實現生活中常見的四輪小車移動,程序相對簡單,主要難點在于車輪的坐標控制,代碼開源。
對于四輪小車而言,假設車輪與地面的接觸區域為正方形,示意圖如下。
其中前后車輪間距為L1,并排車輪距離為L2。藍色區域為加載區,加載區長度為a*a。在ABAQUS中建模時,路面為XY平面,坐標原點位于路面模型的頂點。本模型默認整車位于路面的正中央,路面的長和寬分別為30mm和10mm,路面長的方向為X方向,寬為Y方向。初始時刻車輪距路面邊緣的距離分別為xm和ym。
先定義車身參數和運動參數。
!車身參數
L1 = 6
L2 = 3
a = 0.5
!運動參數
speed = 10000
t = steptime
distance = speed*steptime
!初始時刻車身距路面的距離
xm = 3
ym = 3
每個車輪對路面的壓強為:
pressure = 2000
主程序:
do k=1, nblock
!節點坐標
x = curCoords(k,1)
y = curCoords(k,2)
!上面一排車輪施加載荷
if (y >= ym .and. y <= ym+a)then
!第一個輪子
if (x >= xm+distance .and. x <= xm+distance+a) then
value(k) = pressure
!
展開 
PID控制在ABAQUS中的程序實現 ¥15
VUAMP子程序又可對此行為進行閉環控制。結合ABAQUS的有限元屬性,因此其可以完成普通動力學軟件不能勝任的工作,如考慮繩索材料屬性的物理模型、流固耦合模型、復雜非線性問題的閉環控制實現。
PID作為工業界常用的控制手段,受其啟發,可以采用FORTRAN語言結合ABAQUS數據計算更新模式,在VUAMP子程序中編寫PID控制程序,實現在閉環控制下的動力學仿真驗證工作。
VDISP、DISP子程序實現周期移動 ¥10
采用DISP子程序可以實現物體沿某一方向的周期運動,可用于磨損分析等對應的特殊工況。對循環次數進行判斷,當達到預定循環次數,調用 “xit” ,使分析終止。
平面磨損中,將DISP子程序和umeshmotion磨損子程序連用的效果如下:
位移變化:
實現鏈接:
https://www.yqgqt.org.cn/self?nagivator=course
------------------------------------------------------------------------------------------------------------------------------------------------
采用VDISP時,若需要限定速度、加速度或需要加載不同的邊界條件,需要手動修改inp文件的*BOUNDARY部分的邊界類型和邊界名稱(CAE輸出的inp將該信息注釋掉了,無法傳入子程序),inp文件的修改格式為
子程序幫助文檔介紹帖為:
https://www.yqgqt.org.cn/content/post/1200737
VDISP案例如下所示:
繩網四周小球在做圓周運動的同時,仍沿著z方向做周期運動(運動速度用公式自定義即可),同樣可以根據自定義的條件終止分析,這種采用子程序定義復雜邊界的方法具有一定的靈活性。
展開 abaqus用戶子程序如何實現當前溫度峰值的輸出?
請問各位大神abaqus用戶子程序如何實現當前溫度峰值的輸出?謝謝啦非常著急,謝謝
混凝土彈塑性損傷本構模型在Abaqus中vumat子程序的實現
vumat子程序的實現
本文作者根據上述本構,參考如下的子程序編寫流程可以實現vumat子程序的編寫。
從而可以模擬混凝土的塑性損傷,結果如下所示:
結果表明,本文所編寫的子程序準確有效。
參考文獻:
吳建營,《基于損傷能釋放率的混凝土彈塑性損傷本構模型及其在結構非線性分析中的應用》
最后, 如果您有abaqus二次開發相關需求或者擅長某一領域,都可以加入通過公眾號聯系我們~~
微信公眾號:320科技工作室