有限元基础教程(曾攀)算例4.6.3(2)Matlab程序实现


算例4.6.3(2)

如图所示为一个平面4节点四边形等参元,试采用4点Gauss积分计算该单元的刚度矩阵。材料的弹性模量为E=30×106MPa,泊松比为μ=0.3,厚度为t=0.1m。
在这里插入图片描述

解题步骤

  1. 输入单元信息
>>X0=[1;2;2.25;1.25];
>>Y0=[0;0;1.5;1];
>>E=3E13;nv=0.3;t0=0.1;
  1. 计算雅可比矩阵及其相关参量
>> [N_cxi,N_eta,JA,dt_JA,inv_JA]=Jacobian(X0,Y0);

输出如下:
N_cxi =[eta/4 - 1/4, 1/4 - eta/4, eta/4 + 1/4, - eta/4 - 1/4]
N_eta =[cxi/4 - 1/4, - cxi/4 - 1/4, cxi/4 + 1/4, 1/4 - cxi/4]
JA =[1/2, eta/8 + 1/8]
[1/8, cxi/8 + 5/8]
dt_JA =cxi/16 - eta/64 + 19/64
inv_JA =[(8*(cxi + 5))/(4cxi - eta + 19), -(8(eta + 1))/(4cxi - eta + 19)]
[-8/(4
cxi - eta + 19), 32/(4*cxi - eta + 19)]

  1. 计算弹性系数矩阵
>>D=Quad2D4Node_D(E,nv,t0,X0(1),Y0(1),X0(2),Y0(2),X0(3),Y0(3),X0(4),Y0(4),1)

输出如下:
D =
1.0e+13 *
3.2967 0.9890 0
0.9890 3.2967 0
0 0 1.1538

  1. 求解单元刚度矩阵
>>KE=Quad2D4Node_KE(D,X0,Y0,t0)

输出如下:

在这里插入图片描述

函数文件

主函数(main)

clc;clear;
X0=[1;2;2.25;1.25];
Y0=[0;0;1.5;1];
E=3E13;nv=0.3;t0=0.1;
[N_cxi,N_eta,JA,dt_JA,inv_JA]=Jacobian(X0,Y0);
D=Quad2D4Node_D(E,nv,t0,X0(1),Y0(1),X0(2),Y0(2),X0(3),Y0(3),X0(4),Y0(4),1)
KE=Quad2D4Node_KE(D,X0,Y0,t0)

函数文件

  1. Jacobian.m
function [N_cxi,N_eta,JA,dt_JA,inv_JA]=Jacobian(X0,Y0)
%根据四个结点坐标,推算雅可比矩阵、雅可比行列式、雅可比逆阵
%输入参数:4个结点坐标值,列向量
%返回值:带有符号的表达式——形函数对局部坐标导数、雅可比矩阵、雅可比行列式、雅可比逆阵
syms cxi eta
%定义符号参量
%形函数对无量纲局部坐标偏导数
N_cxi=[-(1-eta),(1-eta),(1+eta),-(1+eta)]/4
N_eta=[-(1-cxi),-(1+cxi),(1+cxi),(1-cxi)]/4
%计算雅可比矩阵
JA=[N_cxi*X0,N_cxi*Y0;N_eta*X0,N_eta*Y0]
%计算雅可比行列式
dt_JA=det(JA)
%计算雅可比逆阵
inv_JA=inv(JA)
return 

  1. Quad2D4Node_D.m
function D=Quad2D4Node_D(E,NU,~,xi,yi,xj,yj,xm,ym,xp,yp,ID)
%该函数计算单元的刚度矩阵
%输入弹性模量E、泊松比NU和厚度h
%输入4个节点i,j,m,p的坐标xi,yi,xj,yj,xm,ym,xp,yp
%输入平面问题性质指示参数ID(1为平面应力,2为平面应变)
%输出单元弹性矩阵D(8*8%-----------------------------
syms s t;
a=(yi*(s-1)+yj*(-1-s)+ym*(1+s)+yp*(1-s))/4;
b=(yi*(t-1)+yj*(1-t)+ym*(1+t)+yp*(-1-t))/4;
c=(xi*(t-1)+xj*(1-t)+xm*(1+t)+xp*(-1-t))/4;
d=(xi*(s-1)+xj*(-1-s)+xm*(1+s)+xp*(1-s))/4;
B1=[a*(t-1)/4-b*(s-1)/4 0;0 c*(s-1)/4-d*(t-1)/4;c*(s-1)/4-d*(t-1)/4 a*(t-1)/4-b*(s-1)/4];
B2=[a*(1-t)/4-b*(-1-s)/4 0;0 c*(-1-s)/4-d*(1-t)/4;c*(-1-s)/4-d*(1-t)/4 a*(1-t)/4-b*(-1-s)/4];
B3=[a*(t+1)/4-b*(s+1)/4 0;0 c*(s+1)/4-d*(t+1)/4;c*(s+1)/4-d*(t+1)/4 a*(t+1)/4-b*(s+1)/4];
B4=[a*(-1-t)/4-b*(1-s)/4 0;0 c*(1-s)/4-d*(-1-t)/4;c*(1-s)/4-d*(-1-t)/4 a*(-1-t)/4-b*(1-s)/4];
Bfirst=[B1 B2 B3 B4];
Jfirst=[0 1-t t-s s-1;t-1 0 s+1 -s-t;s-t -s-1 0 t+1;1-s s+t -t-1 0];
J=[xi xj xm xp]*Jfirst*[yi;yj;ym;yp]/8;
B=Bfirst/J;
if ID==1
    D=(E/(1-NU*NU))*[1 NU 0;NU 1 0;0 0 (1-NU)/2];
elseif ID==2
    D=(E/(1+NU)/(1-2*NU))*[1-NU NU 0;NU 1-NU 0;0 0 (1-2*NU)/2];
end
  1. Quad2D4Node_B.m
function [B,dt]=Quad2D4Node_B(cxi,eta,X0,Y0)
%定义符号参量
%计算形函数对局部坐标的导数
N_cxi=[-(1-eta),(1-eta),(1+eta),-(1+eta)]/4;
%形函数对无量纲局部坐标偏导数
N_eta=[-(1-cxi),-(1+cxi),(1+cxi),(1-cxi)]/4;
%计算雅可比矩阵
JA=[N_cxi*X0,N_cxi*Y0;N_eta*X0,N_eta*Y0];
%计算行列式
dt=det(JA);
%计算H
H=[JA(2,2),-JA(1,2),0,0;
    0,0,-JA(2,1),JA(1,1);
    -JA(2,1),JA(1,1),JA(2,2),-JA(2,1)]/dt;
%计算Q
for i=1:1:4
    Q(1:4,(2*i-1):2*i) = [ N_cxi(i),0;
                            N_eta(i),0;
                            0,N_cxi(i);
                            0,N_eta(i)];
end
B=H*Q;
return
  1. Quad2D4Node_KE.m
function KE=Quad2D4Node_KE(D,X0,Y0,t0)
%t0为厚度
KE=zeros(8);
gx=[-0.577350269189626,0.577350269189626];
%2*2高斯积分点和权系数
w=[1,1];
%将gs、w输入不同阶次数据,适用相应阶次高斯积分
n0=length(w);
%确定积分阶数,可根据w的元素个数,自行调整积分阶次
for i=1:n0
    for j=1:n0
        %调用函数计算几何矩阵、雅可比行列式
        [B,dt]=Quad2D4Node_B(gx(i),gx(j),X0,Y0);
        KE=KE+t0*transpose(B)*D*B*dt*w(i)*w(j);
        %一个高斯点的单刚
    end
end
return

参考文献

有限元基础教程(曾攀)

总结

这里对文章进行总结:
书中关于雅可比行列式的计算似乎有误,故计算结果与书中相比有出入,如有错误,还请指正!

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本书的第1 章简要地介绍了 MATLAB 的基本知识和编程中常用的语句及函数 , 使者能够阅读本书各章节中的程序。 第2 章系统地介绍了有限元的理论基础———微分方程的近似解法。 这部分内容在一的有限元书籍中是很少介绍的 , 它不仅可以使我们了解有限元的发展过程 , 也能够使读者加深对有限元方法的理解。 第3 章介绍了广义坐标有限元方法。 它是物理坐标下的直接方法 , 读者可以通过该章的学习了解和掌握有限元方法的一般步骤。 第4 章简要介绍了有限元编程方法。 与大多数有限元书籍不同的是 , 用其他高级语言编写有限元程序时所需的一般编程技巧在 MATLAB 中不再需要 , 因此 , 本书不再赘述。 第5 章详细讨论了构造单元和插值函数的原则和方法 , 并着重讨论了在实际中有着广泛应用的等参数单元的构造方法和表达格式 , 以及与广义坐标单元的变换方法。 第6 章和第7 章讨论了杆系结构有限元问题。由于杆系结构与一般的二维和三维弹性体结构有较大的区别 , 因此 , 杆系结构的单元及其插值函数是区别于一般二维和三维单元的特殊单元 , 同时 , 桁架的杆单元和框架的梁单元也是完全不同的两类单元。 第8 章详细讨论了一般弹性力学问题的有限元方法 , 包括稳定问题和动力学问题。 第9 章讨论了板问题的有限元方法 , 其中介绍了多种类型和不同位移模式的板单元 ,包括用于复合材料结构的层状单元。 第10 章介绍了系统建模、 线性系统分析及结构振动控制的基础知识 , 并详细地介绍了如何用 MATLAB 来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yangtze20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值