0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于六面體單元熱應(yīng)力問題的Matlab有限元編程求解

8XCt_sim_ol ? 來源:仿真秀App ? 作者:SimPC ? 2022-11-17 11:10 ? 次閱讀

導讀:上一篇《彈性地基梁matlab有限元編程,以雙排樁支護結(jié)構(gòu)計算為例》引起了Matlab有限元編程學習者的共鳴。今天我想和大家討論一下熱應(yīng)力問題(六面體單元)matlab有限元編程問題。

本案例主要介紹熱應(yīng)力問題的matlab有限元編程及原理。熱應(yīng)力也叫溫度應(yīng)力,后文提到的熱應(yīng)變也叫溫度應(yīng)變。這里需要與傳熱問題的有限元分析進行區(qū)分:可以認為傳熱分析是進行熱應(yīng)力分析的前提條件,通過傳熱分析來確定溫度場,在獲得溫度場的基礎(chǔ)上,計算所產(chǎn)生的熱應(yīng)力。所以本文為闡述熱應(yīng)力問題前提是假定溫度場是已知的,我們并不關(guān)心溫度場是如何得到的,那是熱傳導要解決的問題,在這個已知的溫度場作用下,由于熱脹冷縮會產(chǎn)生響應(yīng)的熱應(yīng)變進而產(chǎn)生熱應(yīng)力,如何求解這個熱應(yīng)力,這就是我們這次課程要解決的問題。

如圖1所示,本案例的分析對象為一個兩端固定約束的四棱柱受不同方向的熱應(yīng)變作用下產(chǎn)生的應(yīng)力應(yīng)變,在用有限元方法求解熱應(yīng)力問題時,溫度作用可以等效為一個節(jié)點載荷進行求解,因此熱應(yīng)力問題本質(zhì)上還是一個固體力學問題的有限元求解,而我們剛才提到的傳熱問題的有限元求解其實是在求解傅里葉傳熱偏微分方程,其與固體力學偏微分方程是完全不同的兩套理論。

因此,本文首先重點講解的溫度作用產(chǎn)生的節(jié)點等效溫度荷載有限元列式的推導,六面體單元剛度矩陣、雅各比矩陣、應(yīng)變矩陣有限元列式的推導,溫度應(yīng)力應(yīng)變的后處理有限元列式,此外還包括上述有限元列式對應(yīng)的matlab代碼實現(xiàn)過程。

54219788-659d-11ed-8abf-dac502259ad0.png

圖1 兩端固定約束的四棱柱受單位熱應(yīng)變作用下的應(yīng)力

假定通過傳熱分析我們可以得到,相對于原來狀態(tài)溫度升高了544361ba-659d-11ed-8abf-dac502259ad0.png,對于各向同性材料,溫度升高545cbde0-659d-11ed-8abf-dac502259ad0.png會產(chǎn)生一個均勻的應(yīng)變(通俗地講,就是熱脹冷縮原理,物體會發(fā)生膨脹),應(yīng)變大小與材料的線膨脹系數(shù)54760660-659d-11ed-8abf-dac502259ad0.png有關(guān),54760660-659d-11ed-8abf-dac502259ad0.png表示材料在單位溫度升高所引起的長度的變化值,一般情況下,在一定范圍內(nèi)可以假定線膨脹系數(shù)為常數(shù)。若物體能夠自由變形,則由溫度變化引起的應(yīng)變不會產(chǎn)生應(yīng)力。溫度應(yīng)變一般被表示為初應(yīng)變的形式

54a81c7c-659d-11ed-8abf-dac502259ad0.png? ??(1)

對應(yīng)的應(yīng)力-應(yīng)變關(guān)系為

54b9e0ec-659d-11ed-8abf-dac502259ad0.png? ? ? ? (2)

接下來將公式(2)的應(yīng)力應(yīng)變關(guān)系代入到有限元分析列式中,利用虛功原理進行推導。其中虛應(yīng)力和虛應(yīng)變場函數(shù)的有限元列式如下式

54d6ee6c-659d-11ed-8abf-dac502259ad0.png? ? ? ? ? ?(3)

將公式(2)利用虛功原理,可得到下述虛功方程

54eec794-659d-11ed-8abf-dac502259ad0.png? ? ? (4)

將公式(3)代入公式(4)所示的虛功方程中,并對其進行簡化處理,可以得到

55002d40-659d-11ed-8abf-dac502259ad0.png? ??(5)

因為虛位移存在任意性,因此可以除掉公式(5)中的虛位移,進而得到

553e89a0-659d-11ed-8abf-dac502259ad0.png? ? ?(6)

其中Ke為剛度矩陣,表達式為

555513f0-659d-11ed-8abf-dac502259ad0.png? ? ? ?(7)

556e1a08-659d-11ed-8abf-dac502259ad0.png為單元節(jié)點載荷,表達式為

558662b6-659d-11ed-8abf-dac502259ad0.png? ? ??(8)

為等效溫度載荷,是由熱應(yīng)力引起的節(jié)點處等效溫度載荷,表達式為

559985a8-659d-11ed-8abf-dac502259ad0.png??? ? ? (9)

因此,對于溫度應(yīng)力問題,核心就是求解等效溫度載荷。因為公式中包含了B矩陣,即應(yīng)變矩陣,對于六面體單元應(yīng)變矩陣的推導過程如下圖所示。

55c7b7de-659d-11ed-8abf-dac502259ad0.png

圖1 應(yīng)變矩陣與剛度矩陣的推導公式

基于圖1所示的應(yīng)變矩陣的推導過程,公式(9)中等效溫度載荷對應(yīng)的matlab代碼如下所示,此外本段代碼同樣包含了單元剛度矩陣的編程實現(xiàn),因為等效溫度載荷和單元剛度矩陣的求解公式中均有B矩陣和D矩陣參與。

for X=1:2
for Y=1:2
for Z=1:2
GP1=GaussCoordinate(X); GP2=GaussCoordinate(Y); GP3=GaussCoordinate(Z); %高斯點坐標
% 計算形函數(shù)對總體坐標的導數(shù)(NDerivative)及雅可比矩陣行列式(JacobiDET)
[~,NDerivative, JacobiDET] = ShapeFunction([GP1 GP2 GP3], ElementNodeCoordinate);
Coefficient=GaussWeight(X)*GaussWeight(Y)*GaussWeight(Z)*JacobiDET;
%計算B矩陣  利用形函數(shù)對總體坐標的導數(shù)(NDerivative)對B進行計算
B=zeros(6,24);
for I=1:8
COL=(I-1)*3+1:(I-1)*3+3;
B(:,COL)=[NDerivative(1,I) 0         0;
0         NDerivative(2,I) 0;
0         0         NDerivative(3,I);
NDerivative(2,I) NDerivative(1,I) 0;
0         NDerivative(3,I) NDerivative(2,I);
NDerivative(3,I) 0         NDerivative(1,I)];
end
Ke=Ke+Coefficient*B'*D*B;  %疊加剛度陣
P_dT=P_dT+Coefficient*B'*D*epsilon0; %等效溫度荷載
end
end
end

上述代碼中,求解雅各比矩陣行列式和形函數(shù)導數(shù)的ShapeFunction函數(shù)的matlab代碼如下所示:

function [N,NDerivative,JacobiDET] = ShapeFunction(GaussPoint,ElementNodeCoordinate)
%等參元坐標  每一列代表一個點的坐標
ParentNodes=[-1 1  1 -1 -1  1  1 -1;
-1 -1  1  1 -1 -1  1  1;
-1 -1 -1 -1  1  1  1  1];
N=zeros(8,1); %初始化形函數(shù)矩陣8*1
ParentNDerivative=zeros(3,8);%初始化形函數(shù)對局部坐標的導數(shù)矩陣3*8
%計算形函數(shù)及形函數(shù)對局部坐標導數(shù)
for I=1:8
XPoint = ParentNodes(1,I);
YPoint = ParentNodes(2,I);
ZPoint = ParentNodes(3,I);
ShapePart = [1+GaussPoint(1)*XPoint 1+GaussPoint(2)*YPoint 1+GaussPoint(3)*ZPoint];  %定義中間變量
N(I) = 0.125*ShapePart(1)*ShapePart(2)*ShapePart(3);
ParentNDerivative(1,I) = 0.125*XPoint*ShapePart(2)*ShapePart(3);
ParentNDerivative(2,I) = 0.125*YPoint*ShapePart(1)*ShapePart(3);
ParentNDerivative(3,I) = 0.125*ZPoint*ShapePart(1)*ShapePart(2);
end
Jacobi = ParentNDerivative*ElementNodeCoordinate;%計算雅可比矩陣
JacobiDET = det(Jacobi);%計算雅可比行列式
JacobiINV=inv(Jacobi);%對雅可比行列式求逆
NDerivative=JacobiINV*ParentNDerivative;%利用雅可比行列式的逆計算形函數(shù)對結(jié)構(gòu)坐標的導數(shù)3*8
end

單元剛度矩陣和等效溫度載荷求得之后,將其裝配到整體剛度矩陣和荷載向量中通過高斯消去法實現(xiàn)節(jié)點位移的求解,求解之后的節(jié)點位移按照下圖中的后處理流程和對應(yīng)的公式,即可求解得到高斯積分點處的應(yīng)力應(yīng)變值,需要注意的是如公式(2)所示單元應(yīng)力的求解公式中包含了溫度應(yīng)變;下一步再通過插值函數(shù)矩陣將高斯積分點處的應(yīng)力應(yīng)變插值到每個節(jié)點再進行磨平處理,即可得到節(jié)點的應(yīng)力應(yīng)變。具體matlab實現(xiàn)代碼如下所示:

InterpolationMatrix=zeros(8,8);%求解節(jié)點應(yīng)力應(yīng)變的插值矩陣
%循環(huán)高斯點
for X=1:2
for Y=1:2
for Z=1:2  
E1=GaussCoordinate(X); E2=GaussCoordinate(Y); E3=GaussCoordinate(Z);
GaussPointNumber = GaussPointNumber + 1;
% 計算局部坐標下的形函數(shù)及形函數(shù)導數(shù)
[N,NDerivative, ~] = ShapeFunction([E1 E2 E3], ElementNodeCoordinate);
ElementNodeDisplacement=U(ElementNodeDOF);
ElementNodeDisplacement=reshape(ElementNodeDisplacement,Dof,8);
% 計算高斯點應(yīng)變 GausspointStrain3_3 3*3的應(yīng)變矩陣
GausspointStrain3_3=ElementNodeDisplacement*NDerivative’;%3*8  8*3
%把高斯點應(yīng)變矩陣改寫成6*1
GausspointStrain=[GausspointStrain3_3(1,1) GausspointStrain3_3(2,2) GausspointStrain3_3(3,3)…  
GausspointStrain3_3(1,2)+GausspointStrain3_3(2,1)…
GausspointStrain3_3(2,3)+GausspointStrain3_3(3,2) …
GausspointStrain3_3(1,3)+GausspointStrain3_3(3,1)]';
% 計算高斯點應(yīng)力
GausspointStress = D*GausspointStrain-D*epsilon0;%總應(yīng)變-溫度應(yīng)變
GaussStrain(:,GaussPointNumber)=GausspointStrain;
GaussStress(:,GaussPointNumber)=GausspointStress;
InterpolationMatrix(K,:)=N;
K=K+1;
end
end
end
%求得節(jié)點應(yīng)力應(yīng)變
Temp1=InterpolationMatrix(GaussStrain(1:6,GaussPointNumber-7:GaussPointNumber)');
NodeStrain(1:6,INODE+1:INODE+8)=Temp1';
Temp2=InterpolationMatrix(GaussStress(1:6,GaussPointNumber-7:GaussPointNumber)');
NodeStress(1:6,INODE+1:INODE+8)=Temp2';

上述便是熱應(yīng)力問題的整個求解過程,以一個兩端固定約束的四棱柱為例,其在不同單位熱應(yīng)變的作用下的求解結(jié)果如下圖所示

56307800-659d-11ed-8abf-dac502259ad0.png

以上就是筆者本期要分享的內(nèi)容。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    180

    文章

    2952

    瀏覽量

    229843
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3541

    瀏覽量

    93460
  • 熱應(yīng)力
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    10776

原文標題:基于六面體單元熱應(yīng)力問題的Matlab有限元編程求解

文章出處:【微信號:sim_ol,微信公眾號:模擬在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【PDF】matlab有限元法計算分析程序編寫

    【PDF】matlab有限元法計算分析程序編寫附件:
    發(fā)表于 02-28 11:04

    MATLAB有限元分析與應(yīng)用

    有限元分析和應(yīng)用。另外,本書還提供了大量免費資源。 第1章引言 1.1有限元方法的步驟 1.2用于有限元分析的MATLAB函數(shù) 1.3MATLAB
    發(fā)表于 02-28 11:07

    封裝中的界面熱應(yīng)力分析

    電子封裝集成度的不斷提高,集成電路的功率容量和發(fā)熱量也越來越高,封裝體內(nèi)就 產(chǎn)生了越來越多的溫度分布以及熱應(yīng)力問題 文章建立了基板一粘結(jié)層一硅芯片熱應(yīng)力分析有限元模。利用有限元法分析
    發(fā)表于 02-01 17:19

    有限元仿真分析軟件的三種算法模型格式介紹

    ;另一方它對使用者要求較高,需要有”編程”的知識;  “純文本格式”  大部分有限元軟件都提供純文本格式,www.featech.com.cn如Nastran的.bdf文件、Abaqus的.inp文件等
    發(fā)表于 07-07 17:18

    有限元法的原理

    1有限元法原理有限元法是以變分原理為基礎(chǔ)的一種數(shù)值計算方法。把所要求解的邊值問題轉(zhuǎn)化為相應(yīng)的變分問題,利用剖分、插值和離散化,把變分問題轉(zhuǎn)化為普通多元函數(shù)的極值問題,得到一組多元代數(shù)方程組,
    發(fā)表于 09-06 08:08

    OptiMode:矢量有限元法-精度及優(yōu)勢

    的主要原因之一是其近似幾何的方式。ADI和FD采用小矩形進行折射率采樣,這導致了對角線或曲線的階梯式近似。理論上,矩形晶可以縮小至階梯式以進行一個很好的近似,但在實踐中它仍然會導致相當大的誤差。有限元
    發(fā)表于 10-22 09:17

    求解時步有限元系統(tǒng)方程的改進非線性算法_劉慧娟

    求解時步有限元系統(tǒng)方程的改進非線性算法_劉慧娟
    發(fā)表于 01-08 13:58 ?1次下載

    不可壓縮Navier-Stokes方程并行譜有限元求解

    針對不可壓縮Navier-Stokes( N-S)方程求解過程中的有限元法存在計算網(wǎng)格量大、收斂速度慢的缺點,提出了基于面積坐標的三角網(wǎng)格剖分譜有限元法( TSFEM)并進一步給出了利用OpenMP
    發(fā)表于 12-07 10:32 ?0次下載
    不可壓縮Navier-Stokes方程并行譜<b class='flag-5'>有限元</b>法<b class='flag-5'>求解</b>

    n型結(jié)構(gòu)膜盤聯(lián)軸器型設(shè)計與有限元分析

    針對膜盤聯(lián)軸器型設(shè)計和型在不同類型載荷下的應(yīng)力分布等問題,將有限元分析技術(shù)應(yīng)用到膜盤聯(lián)軸器設(shè)計中。提出了一種以n型結(jié)構(gòu)連接的雙膜盤結(jié)構(gòu)膜盤聯(lián)軸器。根據(jù)等強度近似理論設(shè)計了膜盤型
    發(fā)表于 03-16 14:09 ?1次下載

    如何使用Matlab進行有限元分析和硬盤的選購與使用資料說明

    介紹了Matlab 語言特點,給出了Matlab 環(huán)境下實現(xiàn)有限元的步驟。并以一個具體實例說明如何使用Matlab 進行有限元分析。使用該方
    發(fā)表于 07-24 16:27 ?5次下載
    如何使用<b class='flag-5'>Matlab</b>進行<b class='flag-5'>有限元</b>分析和硬盤的選購與使用資料說明

    六面體網(wǎng)格生成和優(yōu)化的研究綜述

    文中總結(jié)了近十幾年來六面體網(wǎng)格生成和優(yōu)化的研究進展。首先概述六面體網(wǎng)格生成的研究進展,將其歸為整體生成方法和基于模型分解的生成方法2類,并指出各類方法的優(yōu)缺點;然后概述六面體網(wǎng)格優(yōu)化的研究現(xiàn)狀包括幾何優(yōu)化和拓撲優(yōu)化;最后闡述
    發(fā)表于 04-27 15:21 ?6次下載
    <b class='flag-5'>六面體</b>網(wǎng)格生成和優(yōu)化的研究綜述

    六面體網(wǎng)格復(fù)雜層插入操作的優(yōu)化設(shè)計

    拓撲操作在六面體網(wǎng)格生成、編輯和優(yōu)化中至關(guān)重要,而層操作是最直接有效、應(yīng)用最廣泛的拓撲修改操作,其中以層插入操作最為關(guān)鍵和復(fù)雜。針對現(xiàn)有的層插入操作仍無法有效地處理自相交、自貼合、多層整體生成等
    發(fā)表于 04-27 15:25 ?9次下載
    <b class='flag-5'>六面體</b>網(wǎng)格復(fù)雜層插入操作的優(yōu)化設(shè)計

    使用MATLAB有限元建模材料

    使用MATLAB有限元建模材料說明。
    發(fā)表于 05-27 09:39 ?0次下載

    基于Matlab有限元編程的變截面懸臂梁分析

    近日我注冊并認證了仿真秀專欄,將在仿真秀官網(wǎng)和App給平臺用戶帶來Matlab有限元編程、復(fù)雜函數(shù)擬合和matlab繪圖相關(guān)內(nèi)容。此外還會帶來隔震建筑Abaqus建模仿真分析等內(nèi)容。本
    的頭像 發(fā)表于 09-08 11:11 ?3758次閱讀

    如何用matlab實現(xiàn)針對四面體單元劃分的三維結(jié)構(gòu)進行有限元編程

    主要內(nèi)容涉及四面體單元有限元基本理論的推導,主要是單元剛度矩陣的推導,此外還包括等參單元和Hammer數(shù)值積分以及三維問題的后處理計算。
    的頭像 發(fā)表于 10-12 18:11 ?5905次閱讀