4. 单元载荷向量与等效节点力

在有限元方程 K·u = F 中,刚度矩阵 K 描述结构抵抗变形的能力,而载荷向量 F 描述外部作用如何被“分配”到各个节点上。上一节我们完成了单元刚度矩阵的组装,本节要解决的是右端项:如何把作用在单元内部任意位置的分布载荷、集中载荷和体力,转换成只作用在节点上的等效节点力。这一步做错,位移和应力结果会整体偏移,而且往往不易从云图上察觉。

一、为什么必须做等效转换

有限元位移法的未知量是节点位移,形函数只在节点上取单位值。真实载荷可能作用在梁的跨中、板的表面或整个体积内,而求解器只认识节点自由度。因此需要构造一组节点力,使它在形函数所张成的位移场上所做的虚功,与真实分布载荷所做的虚功相等。这就是虚功等效原理,也是所有一致载荷向量的统一来源:

∫_Ve (δu)^T · f dV + ∫_Se (δu)^T · t dS = (δd)^T · F_e
其中 δu = N · δd,代入后得到
F_e = ∫_Ve N^T · f dV + ∫_Se N^T · t dS

关键点在于被积函数中出现的是形函数矩阵 N 的转置,而不是简单的面积或体积平均。这意味着载荷向节点的分配比例由形函数在单元内的分布决定,不同单元类型、不同阶次会得到不同的分配结果。

二、三类载荷的一致载荷向量构造

分布载荷最常见于梁上均布荷载、板面压力。以一维两节点杆单元承受轴向均布载荷 q(单位长度力)为例,形函数为 N₁=1−x/L、N₂=x/L,则

F_e = ∫₀^L [N₁ N₂]^T · q dx = qL/2 · [1, 1]^T

即总载荷 qL 平均分配到两个节点。对于承受横向均布载荷 q 的两节点梁单元,形函数为三次 Hermite 插值,积分结果为 [qL/2, qL²/12, qL/2, −qL²/12]^T,除节点力外还出现了等效节点弯矩。这正是“一致”二字的含义:它不仅分配力,还分配与形函数匹配的力矩,因而在网格加密时收敛更快。

集中载荷的处理更直接。若集中力 P 作用在单元内 x=a 处,则等效节点力为 F_e = N(a)^T · P。对杆单元,若 a=L/2,则两节点各得 P/2;若 a=L/4,则节点1得 3P/4、节点2得 P/4。可见集中力并非简单放在“最近的节点”上,而是按形函数在该点的取值分配。工程实践中常把集中力直接移到最近节点,这会引入局部误差,只有在网格足够细、载荷位置靠近节点时才可接受。

体力(自重、离心力、电磁力)作用于整个体积,其等效节点力为 F_e = ∫_Ve N^T · ρg dV。对等截面杆单元,体力 ρgA(单位长度力)的分配方式与均布轴向载荷完全相同,仍为每节点一半。对二维三角形常应变单元,三个节点各得总体力的三分之一,这是常形函数带来的均匀分配特性。

三、一致载荷向量与集中载荷向量的取舍

两种构造方式各有适用场景,不能一概而论:

对比项一致载荷向量集中载荷向量
构造依据形函数加权积分按静力等效或经验分配
是否含等效弯矩梁单元含,杆单元不含通常不含
收敛性随网格加密单调收敛,精度高收敛较慢,局部应力可能偏差
实现成本需单元积分,代码稍复杂简单,可直接写入节点
典型用途分布压力、体力、精细分析快速估算、载荷靠近节点、简化模型

实践建议是:分布载荷和体力优先采用一致载荷向量;集中力若位置明确且网格较粗,可先按形函数分配,再在结果后处理中检查载荷作用点附近的应力集中是否合理。对于梁单元承受跨中集中力的情况,若强行把力放到节点上,跨中弯矩会被明显低估,这是初学者常犯的错误。

四、组装流程中的位置与符号约定

单元载荷向量与刚度矩阵遵循同一套自由度编号和组装规则。设单元 e 的局部载荷向量为 F_e,全局自由度映射为 LM,则对每个局部自由度 i,执行 F(LM(i)) += F_e(i)。需要注意三点:其一,分布载荷的方向必须与全局坐标系一致,若单元局部坐标与全局坐标不同,需先做坐标变换 F_global = T^T · F_local;其二,梁单元的等效弯矩与转角自由度对应,组装时不能漏掉转动自由度;其三,多个单元共享节点时,各单元贡献的等效节点力在共享节点处叠加,这与刚度矩阵的叠加规则完全一致。

检查技巧:组装完成后,对载荷向量各分量求和,应等于外载荷的合力(力和力矩分别校核)。若总和不符,多半是形函数积分系数、坐标变换或自由度映射出了错。

五、一个可手算的示例

取一根长 L=2 m 的两节点梁单元,承受横向均布载荷 q=3 kN/m,同时在距左端 0.5 m 处作用集中力 P=4 kN。按一致载荷向量计算:均布部分为 [qL/2, qL²/12, qL/2, −qL²/12] = [3, 1, 3, −1](单位 kN、kN·m)。集中力部分,梁单元横向位移形函数在 a/L=0.25 处的取值为 N₁=0.84375、N₂=0.140625(对应两个横向位移自由度),相应的等效弯矩项由形函数导数给出。将两部分叠加即得该单元的完整载荷向量,再按自由度映射写入全局向量。手算这个例子可以直观看到:均布载荷贡献了不可忽略的节点弯矩,而集中力按形函数比例分配而非对半平分。

单元载荷向等效节点力的转换与组装 真实载荷(单元内) 节点1 节点2 均布载荷 q 集中力 P x = 0.5 m 体力 ρgA(自重) L = 2 m 虚功等效积分 Fₑ = ∫ Nᵀ·f dV + ∫ Nᵀ·t dS 形函数加权分配 等效节点力(组装后) N1 F₁ = qL/2 + N₁(a)P M₁ = qL²/12 N2 F₂ = qL/2 + N₂(a)P M₂ = −qL²/12 共享节点叠加规则 F_global(i) += Fₑ(i) ΣF = 外载荷合力(校核) ΣM = 外载荷合力矩 一致载荷向量:Fₑ = ∫ Nᵀ·f dV + ∫ Nᵀ·t dS | 集中力:Fₑ = N(a)ᵀ·P | 体力:Fₑ = ∫ Nᵀ·ρg dV

把上图与手算示例对照可以看出,载荷向量的组装在结构上与刚度矩阵完全平行:单元级积分得到局部向量,自由度映射写入全局向量,共享节点自动叠加。真正需要额外注意的是形函数的阶次、坐标变换和转动自由度的对应关系。完成本节后,K 与 F 都已就位,下一阶段即可进入边界条件的施加与方程求解。