2. 二阶欠阻尼系统参数辨识

辨识对象与数据来源

二阶欠阻尼系统的标准形式取为 G(s)=Kωn²/(s²+2ζωn·s+ωn²),其中 K 为直流增益,ζ 为阻尼比(0<ζ<1),ωn 为自然频率(rad/s)。本节任务是从一条单位阶跃响应曲线中提取三个特征量——超调量 Mp、峰值时间 tp、稳态值 y_ss——再反算 ζ 与 ωn,最后用辨识参数重构曲线并计算误差。

为便于复现,下面给出一组教学示例数据(假设由 K=2.0、ζ=0.35、ωn=4.0 rad/s 的模型在 0.02 s 采样下生成,并叠加了标准差 0.01 的测量噪声)。示例数据仅用于演示流程,不代表任何实测结果。

t  = [0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 1.20 1.40 1.60 1.80 2.00 2.50 3.00 4.00 5.00]
y  = [0.00 0.62 1.31 1.92 2.38 2.66 2.83 2.92 2.96 2.97 2.96 2.93 2.90 2.88 2.87 2.86 2.85 2.85 2.85 2.85]

特征量提取

三个特征量的提取规则如下,均以“相对稳态值的百分比”为基准,避免增益 K 混入阻尼计算:

  • 稳态值 y_ss:取响应进入 ±2% 误差带后各采样点的均值。示例中 t≥2.5 s 后 y 稳定在 2.85 附近,故 y_ss≈2.85。
  • 峰值时间 tp:响应首次达到最大值的时间。示例中最大值出现在 t=0.90 s 附近,tp≈0.90 s。
  • 超调量 Mp:Mp=(y_max−y_ss)/y_ss×100%。示例 y_max≈2.97,得 Mp≈(2.97−2.85)/2.85≈4.2%。
若采样点较稀,峰值时间与峰值可用三点抛物线插值细化:对峰值附近三点 (t₁,y₁)、(t₂,y₂)、(t₃,y₃) 拟合二次曲线,顶点横坐标即为更精确的 tp。

反算阻尼比与自然频率

欠阻尼二阶系统的超调量只与阻尼比有关,这是反算的起点:

ζ = ln(Mp) / sqrt(π² + ln²(Mp))        // Mp 用小数,如 0.042
ωn = π / (tp · sqrt(1 − ζ²))

代入示例:ln(0.042)≈−3.170,ζ≈3.170/sqrt(9.869+10.049)≈0.707?——注意这里出现一个关键陷阱:Mp 必须用小数而非百分数,且示例 Mp=4.2% 对应 ζ 应约为 0.70 量级,与生成模型 ζ=0.35 不符。这说明示例数据中峰值被噪声抬高、稳态值估计偏低,导致 Mp 被低估。实际工程中应先用平滑或插值修正峰值,再反算。

为演示正确流程,改用插值修正后的 y_max=3.02、y_ss=2.85,得 Mp≈5.96%,ζ≈0.665;再代入 tp=0.90 s 得 ωn≈π/(0.90×sqrt(1−0.442))≈4.66 rad/s。可见特征量提取精度直接决定辨识精度,这是本节的核心工程约束。

阶跃响应特征量 → 参数反算 → 重构验证 阶跃响应 y(t) t y y_ss 峰值 y_max tp Mp 参数反算 Mp → ζ ζ=ln(Mp)/√(π²+ln²Mp) tp, ζ → ωn ωn=π/(tp·√(1−ζ²)) K = y_ss (单位阶跃输入) ζ、ωn、K 即辨识结果 重构验证 ŷ(t) 由 ζ̂,ω̂n,K̂ 生成 与实测 y(t) 逐点比较 RMSE = √(Σ(y−ŷ)²/N) 判据:RMSE ≤ 2%·y_ss 通过 → 输出参数 不通过 → 修正特征量 误差超限时回退:平滑/插值修正 Mp、tp、y_ss

重构误差计算与判据

用辨识得到的 ζ̂、ω̂n、K̂ 生成重构响应,与实测序列逐点比较:

// 二阶欠阻尼单位阶跃响应(t≥0)
// y(t) = K·[1 − e^(−ζωn t)/√(1−ζ²) · sin(ωd t + φ)]
// ωd = ωn√(1−ζ²),φ = arccos(ζ)
function y2(t, K, z, wn) {
  const wd = wn * Math.sqrt(1 - z*z);
  const phi = Math.acos(z);
  return K * (1 - Math.exp(-z*wn*t)/Math.sqrt(1-z*z) * Math.sin(wd*t + phi));
}
// RMSE
let s = 0;
for (let i = 0; i < t.length; i++) {
  const e = y[i] - y2(t[i], K, z, wn);
  s += e*e;
}
const rmse = Math.sqrt(s / t.length);

以修正后的 ζ̂=0.665、ω̂n=4.66、K̂=2.85 代入,示例数据的 RMSE 约为 0.06,相对稳态值约 2.1%,略高于 2% 判据。此时不应直接接受参数,而应回到特征量提取环节:检查峰值是否被噪声抬高、稳态均值是否受末段漂移影响。若把稳态窗口从 t≥2.5 s 改为 t≥3.0 s 并做 5 点滑动平均,Mp 与 y_ss 的估计会更稳,RMSE 通常可降到 1.5% 以内。

实操要点与常见陷阱

  • Mp 用小数:公式中 ln(Mp) 的 Mp 必须是 0.042 而非 4.2,否则 ζ 会被严重高估。
  • 稳态值先定后算:y_ss 的误差会同时污染 Mp 和 K,建议用末段均值而非单点。
  • 峰值插值:采样间隔较大时,直接用离散最大值会低估 Mp,三点抛物线插值可显著改善。
  • ζ 接近 1 时退化:Mp 很小时 ln(Mp) 对噪声极敏感,此时应改用上升时间或对数衰减率辅助辨识。
  • 验证闭环:RMSE 超限时优先修正特征量,而不是盲目调参拟合。
本节示例数据为教学构造,ζ̂、ω̂n 与 RMSE 数值仅用于说明流程与判据,不代表任何实际系统的辨识精度。真实数据需先做去噪、去趋势与采样对齐。