平面应力问题
平面应力问题的平面应力应变关系
⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩σxxσyyτxy⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭=E1−γ2⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣1γ0γ1000(1−γ)2⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩εxxεyyγxz⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
平面应变问题的应力-应变关系
⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩σxxσyyτxy⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭=E(1+v)(1−2v)⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣1−v−v0−v1−v000(1−2v)2⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩ϵxxϵyyγxy⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
小变形下的应力-位移关系
εxx=∂u∂xεyy=∂ν∂yγxy=∂u∂y+∂ν∂x
写成矩阵形式
⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩εxxεyyγxy⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣∂∂x00∂∂y∂∂y∂∂x⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎧⎪⎨⎪⎩uν⎫⎪⎬⎪⎭
简写
{ϵ}=[L]U
对于n节点的单元,未知位移的节点近似插值函数为
u=N1u1+N2u2+⋯+Nnunν=N1ν1+N2ν2+⋯+Nnνn
矩阵形式
{uv}=[N10|N20|…|Nn00N1|0N2|…|0Nn]⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩u1ν1ν2u2ν2⋮unνn⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
简写
{U}=[N]{a}
用上式中U代替 {ϵ}=[L]U中的U
{ϵ}=[L]U=[L][N]{a}=[B]{a}
其中
[B]=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣∂N1∂x0|∂N2∂x0|…|∂Nn∂x00∂N1∂y|0∂N2∂y|…|0∂Nn∂y∂N1∂y∂N1∂x|∂N2∂y∂N2∂x|…|∂Nn∂y∂Nn∂x⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
矩阵[B] 被称为应变矩阵,可以通过插值函数Ni(x,y)求导得到
为了得到单元单元上的载荷与节点位移之间的关系,我们用虚功原理
∫Veδ{ϵ}T{σ}dV=∫Veδ{U}T{b}dV+∫Γeδ{U}T{t}dΓ+∑iδ{U}T({x}={¯¯¯x}){P}i
式中:
{ϵ}为应变矢量;{σ}为应力矢量;{U}为位移矢量
{b}为体力矢量;{t}为表面力矢量
{P}i为作用在 {x}={¯¯¯x} 处的集中力矢量
dV为单元体积;dΓ 为表面力{t}所作用单元的单元边界
应变的变分 δ{ε}和位移的变分 δ{U} 可以分别表示为
δ{ϵ}=δ([B]{a})=[B]δ{a}δ{U}=δ([N]{a})=[N]δ{a}
应力应变关系
{σ}=[D]{ϵ}=[D][B]{a}
代入虚功原理方程
∫Veδ{a}T[B]T[D][B]{a}dV=∫Veδ{a}T[N]T{b}dV+∫Γeδ{a}T[N]T{t}dΓ+∑iδ{a}T[N((x)=(¯x))]T{P}i原方程∫Veδ{ϵ}T{σ}dV=∫Veδ{U}T{b}dV+∫Γeδ{U}T{t}dΓ+∑iδ{U}T({x}={¯¯¯x}){P}i
注意,对于平面单元,单元体积 dV和单元边界 dГ 可以分别写成 dν=tdA和 dΓ=tdl ,式中t
为单元的厚度,dA为单元的无限小面积,dl为单元的无限小边界长度。
由于δ{a} 是节点位移的变分,因此关于坐标独立,可以把它从积分符号中拿出来并消除,方程就变为
⎡⎢⎣∫Ac[B]T[D][B]tdA⎤⎥⎦{a}=∫Ac[N]T{b}tdA+∫Lc[N]T{t}tdl+∑i[N({x}={¯¯¯x})]T{P}i
写成矩阵形式
[Ke]{a}=fe
[Ke]=⎡⎢⎣∫Ae[B]T[D][B]tdA⎤⎥⎦
上式为刚度矩阵,其中
{fe}=∫Ae[N]T{b}tdA+∫Le[N]T{t}tdl+∑i[N((x)={¯¯¯x})]T{P}i
上式为单位力矢量
空间离散
常应变三角形(CST)单元
单元的插值函数
N1(x,y)=m11+m12x+m13yN2(x,y)=m21+m22x+m23yN3(x,y)=m31+m32x+m33y
其中
m11=x2y3−x3y22Am12=y2−y32Am13=x3−x22Am21=x3y1−x1y32Am22=y3−y12Am23=x1−x32Am31=x1y2−x2y12Am32=y1−y22Am33=x2−x12A
A=12det⎡⎢⎣1x1y11x2y21x3y3⎤⎥⎦
位移场
三角形单元的位移场可以表示为
u=N1u1+N2u2+N3u3ν=N1ν1+N2ν2+N3ν3
矩阵表示
{uν}=[N10|N20|N300N1|0N2|0N3]⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩u1ν1u2ν2u3ν3⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
简写为
{U}=[N]{a}
应变矩阵
{ϵ}=[B]{a}
其中
=⎡⎢
⎢
⎢
⎢⎣∂N1∂x0|∂N2∂x0|∂N3∂x00∂N1∂y|0∂N2∂y|0∂N3∂y∂N1∂y∂N1∂x|∂N2∂y∂N2∂x|∂N3∂y∂N3∂x⎤⎥
⎥
⎥
⎥⎦
代入得
[B]=⎡⎢⎣m120|m220|m3200m13|0m23|0m33m13m12|m23m22|m33m32⎤⎥⎦
备注:矩阵[B]与笛卡儿坐标系的x和 y 坐标无关,它只是节点坐标的函数,并且在整个单元内为常量,因此在整个单元内应变矢量也是常量。这就是为什么这种单元被称为“常应变三角形单元”的原因,本书中将常应变三角形单元简称为 CST(Constant Strain Triangle)单元。
由于矩阵[B]和[D]都是常数矩阵,因此刚度矩阵可表示为
[Ke]=[B]T[D][B]tAe
其中 Ae为单元的面积
单位力矢量
体力
考虑体力{b}是重力引起的,因此
∫Aϵ[N]T{b}tdA=t∫Aϵ⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣N100N1N200N2N300N3⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎧⎪⎨⎪⎩00−ρg⎫⎪⎬⎪⎭dA=t⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣0−∫AϵN1ρgdA0−∫AϵN2ρgdA0−∫AϵN3ρgdA⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
这里采用式(8.18)和式(8.19)给出的三角形积分公式,计算在整个单元上的插值函数的积分。运用这些公式,可将积分结果整理如下:
∫AeN1ρgdA=ρg∫AeN11N02N03dA=ρg1!0!0!(1+0+0+2)!2Ae=ρgAe3∫AeN2ρgdA=ρg∫AeN01N12N03dA=ρg0!1!0!(0+1+0+2)!2Ae=ρgAe3∫AeN3ρgdA=ρg∫AeN01N02N13dA=ρg0!0!1!(0+0+1+2)!2Ae=ρgAe3
代入得
∫Ae[N]T{b}tdA=−t3⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩0ρgAe0ρgAe0ρgAe⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
可以发现,单元自重在各节点是平均分配的。
表面力
如图 所示的单元作用有大小为q的均布载荷,该均布载荷作用在单元的边 2-3 上,并
且与 x 轴的夹角为θ 。因此,表面力矢量可以表示为{t}={−qcosθ,−qsinθ}T∘
则表面力可以表示为
∫Ln[N]T{t}tdl=∫L23⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣0000N200N2N300N3⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎧⎪⎨⎪⎩−qcosθ−qsinθ−qsinθ⎫⎪⎬⎪⎭tdl=t∫L23⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩00−N2qcosθ−N2qsinθ−N3qcosθ−N3qsinθ⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭dl
注意,在边 2-3 上 N1=0
采用式(8.18)给出的沿三角形边长的积分公式来计算沿长度方向的积分。运用这个公式上式可以表示为
∫Le[N]T{t}tdl=t⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩00−qcosθL2−3/2−qsinθL2−3/2−qcosθL2−3/2−qsinθL2−3/2⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
从上式可以看出,节点2和节点3平均分配了作用在它们之间的均布载荷qL2−3。
集中力
%
%
global nnd nel nne nodof eldof n
global geom connec dee nf Nodal_loads
format short e
nnd = 21;
nel = 24;
nne = 3;
nodof = 2;
eldof = nne * nodof;
geom = zeros(nnd, 3);
connec = zeros(nel, 3);
# ... 此处省略了具体的元素连接信息 ...
E = 200000.;
vu = 0.3;
thick = 5.;
dee = formdsig(E, vu);
nf = ones(nnd, nodof);
n = 0;
for i = 1:nnd
for j = 1:nodof
if nf(i, j) ~= 0
n = n + 1;
nf(i, j) = n;
end
end
end
Nodal_loads = zeros(nnd, 2);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人