2. 温度传感器一阶惯性环节的孪生模型参数辨识

温度传感器一阶惯性环节的孪生模型参数辨识 学习卡片

一阶惯性环节的物理含义与辨识目标

温度传感器(如铂电阻、热电偶)的感温元件存在热惯性,其温度响应通常可用一阶惯性环节描述:

T_s(t) = T_0 + K · ΔT · (1 − e^(−t/τ))

其中 T_s 为传感器输出温度,T_0 为初始温度,ΔT 为阶跃幅值,K 为静态增益(理想情况下接近 1),τ 为时间常数。辨识任务就是从阶跃响应实验数据中提取 K 和 τ,使孪生模型输出与实测曲线一致。

阶跃响应实验与数据采集

将传感器从室温环境快速移入恒温水浴(或热源),记录其输出随时间的变化。典型实验条件如下:

参数示例值说明
初始温度 T_025.0 °C室温稳定值
阶跃幅值 ΔT50.0 °C水浴温度 75.0 °C
采样周期 Ts0.5 s保证 τ 附近有足够采样点
记录时长60 s覆盖 3~5 倍 τ

采集到的离散序列记为 {(t_i, T_meas,i)},i = 0,1,…,N。为便于辨识,先做归一化处理:

y_i = (T_meas,i − T_0) / ΔT

理想一阶模型归一化后为 y(t) = K · (1 − e^(−t/τ))。

两点法与最小二乘辨识

两点法利用阶跃响应达到 63.2% 和 86.5% 稳态值的时间点快速估算 τ:

  • 当 y = 0.632K 时,t = τ;
  • 当 y = 0.865K 时,t = 2τ。

取实测数据中首次越过这两个阈值的时间点,可得到两个 τ 估计值并取平均。该方法简单但对噪声敏感。

最小二乘法更稳健。对一阶系统离散化(零阶保持):

y[k] = a · y[k−1] + b · u[k−1]

其中 a = e^(−Ts/τ),b = K(1 − a),u 为阶跃输入(归一化后 u = 1)。由 a 反解 τ = −Ts / ln(a),再由 b 求 K = b / (1 − a)。

构造回归矩阵:

import numpy as np

# 示例:归一化后的实测阶跃响应(模拟数据,非实测)
Ts = 0.5
t = np.arange(0, 60 + Ts, Ts)
K_true, tau_true = 1.0, 8.0
y_meas = K_true * (1 - np.exp(-t / tau_true))
# 加入小幅测量噪声
rng = np.random.default_rng(42)
y_meas += rng.normal(0, 0.005, size=y_meas.shape)

# 构造回归数据
y_k = y_meas[1:]          # y[k]
y_km1 = y_meas[:-1]       # y[k-1]
u_km1 = np.ones_like(y_km1)  # 阶跃输入归一化为 1

# 最小二乘求解 [a, b]
Phi = np.column_stack([y_km1, u_km1])
theta, *_ = np.linalg.lstsq(Phi, y_k, rcond=None)
a_hat, b_hat = theta

# 反解 tau 和 K
tau_hat = -Ts / np.log(a_hat)
K_hat = b_hat / (1 - a_hat)
print(f"tau_hat = {tau_hat:.3f} s, K_hat = {K_hat:.4f}")

运行上述代码(示例数据)可得到 τ ≈ 8.0 s、K ≈ 1.0 附近的估计值。实际使用时替换为真实采集的 y_meas 即可。

孪生体复现与拟合误差评估

将辨识得到的 K_hat、τ_hat 代入孪生模型,生成仿真曲线并与实测对比。常用评价指标:

  • RMSE:均方根误差,反映整体偏差;
  • 最大绝对误差:反映最坏情况;
  • 拟合优度 R²:越接近 1 越好。
y_sim = K_hat * (1 - np.exp(-t / tau_hat))
rmse = np.sqrt(np.mean((y_meas - y_sim) ** 2))
max_err = np.max(np.abs(y_meas - y_sim))
ss_res = np.sum((y_meas - y_sim) ** 2)
ss_tot = np.sum((y_meas - np.mean(y_meas)) ** 2)
r2 = 1 - ss_res / ss_tot
print(f"RMSE={rmse:.5f}, MaxErr={max_err:.5f}, R2={r2:.5f}")

若 RMSE 明显大于噪声水平,说明一阶模型不足以描述该传感器(可能存在纯滞后或二阶特性),需要扩展模型结构。

温度传感器一阶惯性环节参数辨识流程 实验对象 温度传感器 恒温水浴 75°C 室温 25°C 阶跃响应数据 Ts = 0.5 s 时长 60 s 归一化 y = (T−T₀)/ΔT 参数辨识 两点法:y=0.632K → t=τ;y=0.865K → t=2τ 最小二乘:y[k]=a·y[k−1]+b·u[k−1] τ = −Ts/ln(a),K = b/(1−a) 数字孪生模型 T_sim(t) = T₀ + K_hat · ΔT · (1 − e^(−t/τ_hat)) 输出仿真温度曲线 拟合误差评估 RMSE、最大绝对误差、R² 判断一阶模型是否充分 阶跃响应曲线对比 时间 t (s) 归一化温度 y 0.25 0.50 0.75 0.00 0 20 40 60 实测(含噪声) 孪生模型仿真 t = τ ≈ 8 s K ≈ 1.0

辨识结果判读与模型修正

根据示例数据(τ_true = 8.0 s,K_true = 1.0,噪声 σ = 0.005),最小二乘辨识通常可得到 τ_hat 在 7.8~8.2 s、K_hat 在 0.99~1.01 范围内,RMSE 约 0.005~0.008,R² 大于 0.999。若实际数据出现以下情况,需考虑模型修正:

  • RMSE 远大于噪声水平:可能存在纯滞后,需在模型中增加 e^(−Ls) 项;
  • 初始段拟合差:传感器可能有二阶或分布参数特性;
  • 稳态增益偏离 1:检查归一化是否正确或传感器存在系统偏差。
采样周期建议取 τ 的 1/10 ~ 1/20。若 τ 未知,可先以 0.5 s 快速采集,粗估后再调整。
辨识所用数据必须来自真实实验或明确标注的仿真数据。不得将仿真结果冒充实测结果用于模型验证。