2. 一维单元类型与自由度定义
在有限元组装之前,必须先回答一个基础问题:每个单元究竟携带哪些自由度?自由度(Degree of Freedom, DOF)是节点上被独立求解的未知量,它决定了单元刚度矩阵的阶数、节点位移向量的长度,以及组装时各单元矩阵在总刚度矩阵中的“落位”方式。本节围绕一维问题中最常见的四类单元——杆单元、梁单元、弹簧单元和一般一维线性单元——说明它们的自由度约定、节点位移向量形式与位移插值函数,为后续组装建立统一的符号基础。
一、统一约定:局部坐标系与自由度编号
为避免正负号混乱,本节统一采用如下约定:单元局部坐标 x 从节点 1 指向节点 2,轴向位移 u 沿 x 正方向为正;横向位移 v 沿局部 y 正方向为正;转角 θ 以逆时针为正(右手法则,绕 z 轴)。所有单元的自由度按“先节点 1、后节点 2,节点内按 u、v、θ 顺序”排列,这一编号规则将直接决定单元矩阵元素与总矩阵行列的对应关系。
二、四类一维单元的自由度与插值
杆单元(桁架单元)。只承受轴力,每个节点仅 1 个自由度 u,单元共 2 个自由度,节点位移向量为 de = [u1, u2]T。采用两节点线性插值:
u(x) = N1·u1 + N2·u2
N1 = 1 - x/L, N2 = x/L (0 ≤ x ≤ L)
其应变 ε = du/dx 为常数,故杆单元是常应变单元,刚度矩阵为 2×2,元素只含 EA/L。
梁单元(Euler-Bernoulli 梁)。承受横向弯曲,每个节点有 2 个自由度:横向位移 v 与转角 θ,单元共 4 个自由度,节点位移向量为 de = [v1, θ1, v2, θ2]T。由于挠度需满足四次微分方程,插值必须用三次 Hermite 多项式,才能同时匹配两端的位移与转角:
v(x) = H1·v1 + H2·θ1 + H3·v2 + H4·θ2
H1 = 1 - 3ξ² + 2ξ³ H2 = L(ξ - 2ξ² + ξ³)
H3 = 3ξ² - 2ξ³ H4 = L(-ξ² + ξ³), ξ = x/L
注意 H2、H4 带长度量纲因子 L,这是转角自由度与位移自由度量纲不同所致,也是梁单元刚度矩阵中出现 L2、L3 项的根源。
弹簧单元。用于模拟弹性连接、支座刚度或构件间的弹性约束。其自由度数取决于使用方式:若只连接两个平动自由度,则为 2 自由度,de = [u1, u2]T,刚度矩阵直接为 k·[[1, −1], [−1, 1]];若一端接地,则退化为 1 自由度。弹簧单元没有插值函数概念,其“单元矩阵”由物理刚度直接给出,因此常被用作组装教学中最简明的示例。
一般一维线性单元。当问题为轴向拉压、热传导或一般二阶方程时,可采用任意节点数 n 的线性(或高次)单元,每个节点 1 个自由度,共 n 个自由度。以两节点线性单元为例,形函数与杆单元一致;若取三节点二次单元,则 de = [u1, u2, u3]T,形函数为 N1 = ξ(ξ−1)/2、N2 = 1−ξ²、N3 = ξ(ξ+1)/2(ξ ∈ [−1, 1]),应变沿单元线性变化,精度高于常应变单元。
三、自由度约定对组装的影响
自由度定义并非纯理论约定,它直接决定组装代码的写法。设结构共 N 个节点,若全部采用杆单元,则总自由度数 = N;若混用梁单元,则每个节点贡献 2 个自由度,总自由度数 = 2N。组装时,单元第 i 个局部自由度必须映射到全局自由度编号 g(i),再执行 Kgg += kij。以两节点杆单元为例,若节点 1、2 的全局编号分别为 a、b,则映射为 g = [a, b],四个元素分别累加到 (a,a)、(a,b)、(b,a)、(b,b) 位置。若同一节点同时连接杆单元与梁单元,则必须明确该节点是只取 u,还是同时取 u、v、θ,否则会出现自由度“错位”——这是初学者组装出错最常见的原因之一。
四、一个可手算的对照示例
取一根长度 L = 1 m 的水平构件,E = 200 GPa,截面 A = 1×10−4 m²,I = 8.33×10−10 m⁴(示例参数,仅用于说明量级)。若按杆单元建模,EA/L = 2×107 N/m,单元刚度矩阵为 2×2;若按梁单元建模,则需计算 4×4 矩阵,其中弯曲项量级约为 EI/L3 = 1.67×102 N/m,与轴向刚度相差五个数量级。这一对比说明:自由度类型不同,矩阵元素的物理量纲与数值量级完全不同,组装时不可混用,也解释了为什么梁单元矩阵中必须保留 L 的幂次因子。
五、插值函数的选取原则
插值函数的选择由单元的微分方程阶次决定:杆单元与一般线性单元对应二阶方程,采用 C0 连续线性(或二次)插值即可;梁单元对应四阶弯曲方程,必须采用 C1 连续的三次 Hermite 插值,才能保证相邻单元交界处挠度与转角同时连续。若对梁误用线性插值,交界处转角将不连续,弯矩计算结果会出现明显偏差。因此,“先定自由度、再定插值阶次”是单元定义阶段必须遵守的顺序。
综上,杆单元 2 自由度、梁单元 4 自由度、弹簧单元 2 自由度(可退化)、一般线性单元 n 自由度,构成了后续单元矩阵组装的全部“零件规格”。下一阶段将这些单元矩阵按全局自由度映射累加,即可得到总刚度矩阵。