3. 锚杆测力计荷载-时间曲线基线漂移识别

为什么锚杆测力计的“荷载上升”不一定是真荷载

锚杆测力计(测力锚杆/锚杆测力环)长期监测时,输出的是振弦频率或电阻应变换算出的荷载值。真实荷载增长来自围岩变形对锚杆的拉伸;而基线漂移来自传感器本身:振弦式测力计受温度影响频率基准偏移,应变式测力计受零点漂移、桥路温漂和电缆电阻变化影响。两者在曲线上都表现为“荷载缓慢上升”,仅看单条曲线无法区分,必须引入温度同步记录与无荷载参考段做对照。

本节采用“双通道对照 + 分段斜率”的判读方法:把测力计荷载曲线与同断面温度曲线放在同一时间轴上,比较两者的相关性与斜率比;再用安装初期(围岩尚未明显变形、温度已稳定循环)的数据段估计温漂系数,从而把观测荷载拆成“温度相关分量”和“残余荷载分量”。

判读逻辑:从原始曲线到修正荷载

原始观测序列 P_obs(t):测力计荷载 T(t):同断面温度 t:采样时间(日) 采样间隔 1 h,日均值参与判读 判据一:温度相关性 计算 ΔP 与 ΔT 的相关系数 r |r| ≥ 0.7 且斜率同号 → 疑温漂 r 接近 0 → 荷载与温度解耦 用日温差循环段做回归,避免季节项干扰 判据二:分段斜率比 k_P = dP/dt,k_T = dT/dt β = k_P / k_T(单位 kN/℃) β 稳定 → 温漂主导;β 突变 → 真荷载 按 7 d 滑窗分段,剔除降雨/爆破日 判据三:零点参考段 安装后 0–14 d 视为无荷载段 P0 = 该段均值,σ0 = 该段标准差 |P_obs − P0| > 3σ0 才判为有效变化 参考段须覆盖至少一个完整日温循环 温漂修正 P_corr = P_obs − β·(T − T_ref) β 由参考段回归得到 T_ref 取参考段平均温度 修正后曲线应消除日周期波动 结论判读 P_corr 平稳、β 稳定 → 温漂/零点漂移 P_corr 持续上升、β 突变 → 真实荷载增长 P_corr 阶跃 → 检查电缆/接头/零点重标 结论须与位移、离层数据交叉验证 判读顺序:先看温度相关性 → 再算分段斜率比 β → 最后用参考段 3σ0 门槛确认,三者一致才下结论

用一段示例数据走完判读

假设某测力锚杆安装于运输巷顶板,量程 200 kN,采样间隔 1 h,取日均值。安装后 0–14 d 围岩尚未明显变形,作为参考段;第 15–60 d 为观测段。示例数据如下(均为教学假设值,非实测):

时段P_obs 均值 (kN)T 均值 (℃)说明
0–14 d(参考段)52.4,σ0 = 0.918.5无荷载段,含完整日温循环
15–30 d54.121.0温度上升,荷载同步缓升
31–45 d55.022.4温度继续上升,荷载继续缓升
46–60 d55.623.1温度趋稳,荷载仍略升

计算分段斜率:15–30 d 段 k_P ≈ (54.1−52.4)/15 ≈ 0.113 kN/d,k_T ≈ (21.0−18.5)/15 ≈ 0.167 ℃/d,β ≈ 0.68 kN/℃;31–45 d 段 β ≈ (55.0−54.1)/(22.4−21.0) ≈ 0.64 kN/℃;46–60 d 段 β ≈ (55.6−55.0)/(23.1−22.4) ≈ 0.86 kN/℃。三段 β 在 0.64–0.86 kN/℃ 之间,量级一致,且 ΔP 与 ΔT 同向,相关系数 r 约为 0.93(示例值),说明荷载上升主要由温度驱动。

用参考段回归得到 β ≈ 0.66 kN/℃、T_ref = 18.5 ℃,则第 60 d 修正荷载:P_corr = 55.6 − 0.66×(23.1−18.5) ≈ 55.6 − 3.04 ≈ 52.6 kN。与参考段均值 52.4 kN 相比仅差 0.2 kN,小于 3σ0 = 2.7 kN,因此判定为温漂主导,无有效荷载增长。

可执行的判读脚本(Python)

下面脚本读取两列 CSV(t_day, P_obs, T),完成参考段统计、分段 β、相关系数与修正荷载计算,并输出判读结论。数据为示例,可直接替换为现场导出文件。

import numpy as np
import pandas as pd

# 读取日均值:列名 t_day, P_obs, T
df = pd.read_csv("anchor_load_daily.csv").sort_values("t_day").reset_index(drop=True)

REF_END = 14.0          # 参考段截止日
SEG = 15.0              # 分段长度(天)
SIGMA_K = 3.0           # 有效变化门槛倍数

ref = df[df.t_day <= REF_END]
P0, T_ref = ref.P_obs.mean(), ref.T.mean()
sigma0 = ref.P_obs.std(ddof=1)

# 参考段温漂系数:对 (T - T_ref) 回归 P_obs
beta_ref = np.polyfit(ref.T - T_ref, ref.P_obs, 1)[0]

# 分段斜率比
rows = []
start = REF_END
while start + SEG <= df.t_day.max():
    seg = df[(df.t_day > start) & (df.t_day <= start + SEG)]
    if len(seg) >= 3:
        kP = np.polyfit(seg.t_day, seg.P_obs, 1)[0]
        kT = np.polyfit(seg.t_day, seg.T, 1)[0]
        beta = kP / kT if abs(kT) > 1e-6 else np.nan
        rows.append((start, start + SEG, kP, kT, beta))
    start += SEG

seg_df = pd.DataFrame(rows, columns=["t0", "t1", "kP", "kT", "beta"])

# 观测段相关系数与修正荷载
obs = df[df.t_day > REF_END]
r = np.corrcoef(obs.P_obs, obs.T)[0, 1]
P_corr = df.P_obs - beta_ref * (df.T - T_ref)
last = P_corr.iloc[-1]
delta = last - P0

print(f"P0={P0:.2f} kN, sigma0={sigma0:.2f} kN, T_ref={T_ref:.2f} C")
print(f"beta_ref={beta_ref:.3f} kN/C, r={r:.3f}")
print(seg_df.round(3).to_string(index=False))
print(f"P_corr(last)={last:.2f} kN, delta={delta:.2f} kN, 3sigma0={SIGMA_K*sigma0:.2f} kN")

if abs(r) >= 0.7 and seg_df.beta.std() < 0.15 and abs(delta) < SIGMA_K * sigma0:
    print("结论:温漂/零点漂移主导,无有效荷载增长")
elif abs(delta) >= SIGMA_K * sigma0 and seg_df.beta.std() >= 0.15:
    print("结论:存在真实荷载增长,建议加密监测并核对位移")
else:
    print("结论:证据不足,需补充温度记录或检查传感器")

运行后应看到 beta_ref 与各段 beta 量级接近、r 接近 1、delta 小于 3σ0,脚本输出“温漂/零点漂移主导”。若把示例数据中第 46–60 d 的 P_obs 改为 62 kN(模拟真实荷载增长),则 delta 会明显超过 3σ0,且该段 β 显著偏离参考段,脚本转为“存在真实荷载增长”。

判读前必须确认:温度传感器与测力计处于同一断面、同一环境;若温度探头被风流直吹或靠近热源,T 不能代表测力计本体温度,β 会被系统性高估或低估。此外,电缆接头受潮、振弦激励电压不足也会造成零点漂移,这类漂移与温度不相关,表现为 r 低而 P_corr 缓慢单向漂移,应优先排查线路而非修正数据。
现场快速复核:把修正前后曲线叠在同一张图上,若修正后日周期波动基本消失、且长期趋势变平,说明温漂模型有效;若修正后仍存在与温度无关的持续上升,则应按真实荷载增长处理,并与顶板下沉、离层数据对照,判断是否进入需要加密监测的阶段。