4. 二维平面应力三角形单元刚度矩阵组装

问题对象与离散化

取一块 200 mm × 100 mm、中心带 φ40 mm 圆孔的平板,厚度 t = 5 mm,材料 E = 210 GPa、ν = 0.3,左端固定,右端受均布拉力 q = 100 N/mm。采用常应变三角形单元(CST)离散,每个节点有 u、v 两个自由度。CST 单元内应变恒定,因此网格越密,孔边应力集中越接近真实值。

单元刚度矩阵由下式给出:

k = t · A · Bᵀ · D · B

其中 A 为三角形面积,B 为 3×6 应变-位移矩阵,D 为平面应力弹性矩阵:

D = E/(1-ν²) · [[1, ν, 0],
                 [ν, 1, 0],
                 [0, 0, (1-ν)/2]]

单元几何与 B 矩阵

设三角形节点按逆时针编号 1、2、3,坐标为 (x₁,y₁)、(x₂,y₂)、(x₃,y₃)。定义:

b₁ = y₂ - y₃,  b₂ = y₃ - y₁,  b₃ = y₁ - y₂
c₁ = x₃ - x₂,  c₂ = x₁ - x₃,  c₃ = x₂ - x₁
A  = ½ |b₁c₂ - b₂c₁|

B 矩阵为:

B = 1/(2A) · [[b₁, 0, b₂, 0, b₃, 0],
              [0, c₁, 0, c₂, 0, c₃],
              [c₁, b₁, c₂, b₂, c₃, b₃]]

组装整体刚度矩阵

整体刚度矩阵 K 的维度为 2N × 2N(N 为节点总数)。对每个单元,将其 6×6 的 k 按节点自由度映射到 K 的对应位置并累加。以右端受拉为例,载荷向量在右端节点 v 方向施加 q·t·(节点间距) 的等效节点力。

边界条件:左端所有节点 u = v = 0。采用置大数法或行列划去法处理,求解 K·U = F 得到节点位移,再由 σ = D·B·uᵉ 计算每个单元的应力。

带孔平板 CST 网格 固定端 q = 100 N/mm 200 mm 100 mm 单元 k → 整体 K 组装 单元 k (6×6) k₁₁ k₁₂ … k₁₆ k₂₁ k₂₂ … k₂₆ ⋮ ⋮ ⋮ k₆₁ k₆₂ … k₆₆ 节点 i, j, m 映射 整体 K (2N×2N) K₁₁ K₁₂ … K₁ₙ K₂₁ K₂₂ … K₂ₙ ⋮ ⋮ ⋮ Kₙ₁ Kₙ₂ … Kₙₙ N 个节点 求解流程 ① 计算各单元 k ② 组装整体 K ③ 施加边界与载荷 ④ 求解 K·U = F ⑤ σ = D·B·uᵉ 孔边应力集中区

关键实现要点

  • 节点编号与自由度映射:节点 i 的 u 对应全局自由度 2i-1,v 对应 2i。单元节点 (n₁,n₂,n₃) 的 6 个局部自由度依次映射到 [2n₁-1, 2n₁, 2n₂-1, 2n₂, 2n₃-1, 2n₃]。
  • 面积符号:用行列式计算 2A = b₁c₂ - b₂c₁,取绝对值保证面积为正;若节点逆时针排列,行列式为正。
  • 组装累加:K[I,J] += k[a,b],其中 I、J 为全局自由度编号,a、b 为局部编号。多个单元共享节点时刚度自动叠加。
  • 边界条件:左端节点 u=v=0,采用行列划去法将对应行列从 K 中移除后再求解,避免置大数法引入数值误差。
  • 应力恢复:每个单元内 σ = D·B·uᵉ 为常值,孔边单元应力显著高于远场,需加密网格捕捉梯度。
CST 单元在孔边弯曲或应力梯度大的区域精度有限,建议在孔周布置更密的三角形网格,或改用后邻例中的四边形等参单元。