4、时域辨识法:阶跃响应法、脉冲响应法、面积法求低阶模型

各位工程师朋友,今天我们来聊聊时域辨识法。说实话,这是我最喜欢的一类方法——为什么?因为直观。你给系统一个激励,看它怎么动,就能把模型摸个七七八八。我在现场调试时,很多时候连电脑都没有,就靠示波器看波形,照样能把PID参数调稳。

时域辨识的核心思想很简单:用特定的输入信号(阶跃、脉冲)去激励系统,然后从输出响应中提取模型参数。说白了,就是给系统“拍个X光片”,看看它内部长什么样。

核心要点:时域辨识法适用于开环稳定的低阶系统(一阶、二阶带延迟)。高阶系统或非最小相位系统需要谨慎处理。

4.1 阶跃响应法

阶跃响应法是最常用的方法。你给系统一个阶跃输入,记录输出曲线,然后从曲线上读特征参数。我个人习惯用这个方法做初步辨识,因为它快,而且结果直观。

一阶系统辨识:

一阶系统的阶跃响应是一条指数上升曲线。我们需要提取两个参数:增益K和时间常数T。

  • 增益K = 稳态输出变化量 / 阶跃输入幅值
  • 时间常数T = 输出达到稳态值63.2%所需的时间

举个例子:给一个加热器加10%的功率,温度从25°C升到45°C,花了30秒达到63.2%的温升(约12.6°C)。那么K = (45-25)/10 = 2,T = 30秒。

我的经验:实际系统中,输出往往有噪声。我建议多做几次阶跃实验,取平均值。另外,63.2%这个点容易受噪声干扰,可以用拟合法替代——用最小二乘拟合整条曲线,比单点读数靠谱得多。

二阶系统辨识:

二阶系统的阶跃响应可能有超调。我们需要提取:增益K、阻尼比ζ、自然频率ωn。

  1. 从稳态值读增益K
  2. 从超调量Mp计算阻尼比ζ:ζ = -ln(Mp) / sqrt(π² + ln²(Mp))
  3. 从峰值时间tp计算自然频率:ωn = π / (tp * sqrt(1-ζ²))

嗯,这里要注意:如果系统没有超调(ζ≥1),那就按一阶系统处理,或者用后面讲的面积法。

4.2 脉冲响应法

脉冲响应法本质上是阶跃响应的微分。你给系统一个窄脉冲,输出就是系统的脉冲响应。理论上,脉冲响应包含了系统的全部动态信息。

但实际中,我很少直接用脉冲响应法。为什么?因为理想的脉冲(无限窄、无限高)物理上无法实现。你想想看,给一个阀门一个无限短的开关信号,执行机构根本反应不过来。

避坑指南:我曾经在一个温度控制项目中用脉冲响应法,结果辨识出来的模型完全不靠谱。后来发现,脉冲宽度太宽(接近系统时间常数的1/10),已经不能近似为理想脉冲了。记住:脉冲宽度必须小于系统最小时间常数的1/5,最好在1/10以下。

如果非要用脉冲响应法,我建议用以下步骤:

  • 设计脉冲宽度为系统预估时间常数的1/10~1/20
  • 脉冲幅值要足够大,保证信噪比
  • 记录完整的响应曲线,包括上升段和下降段
  • 用数值积分计算脉冲响应面积,提取模型参数

4.3 面积法求低阶模型

面积法是我个人比较推崇的方法。它不依赖单个特征点,而是利用整条响应曲线的积分信息,抗噪声能力更强。

一阶加纯滞后模型(FOPDT):

这是工业中最常用的模型形式:G(s) = K * e^(-τs) / (Ts + 1)

面积法的步骤:

  1. 做阶跃实验,记录输出y(t)
  2. 计算增益K = y(∞) / u0
  3. 计算面积A0 = ∫[0→∞] (y(∞) - y(t)) dt
  4. 计算面积A1 = ∫[0→∞] t * (y(∞) - y(t)) dt
  5. 时间常数T = A1 / A0 - A0 / y(∞)
  6. 纯滞后τ = A0 / y(∞) - T

看着公式有点复杂?其实原理很简单:面积法把响应曲线“切”成几块,每块的面积对应模型中的一个参数。我在化工项目中用过这个方法,效果比读图法好很多。

实用技巧:面积法对噪声不敏感,因为积分运算本身就是低通滤波。但要注意:积分上限理论上无穷大,实际中取到稳态值的98%即可。采样频率要足够高,至少是系统带宽的10倍。

二阶系统面积法:

对于二阶系统,我们需要计算三个面积:

参数 计算公式 说明
增益K y(∞) / u0 稳态值比输入幅值
时间常数T1 由面积A0、A1、A2联立求解 需要解非线性方程
时间常数T2 同上 两个时间常数可能相等

具体计算时,我一般用数值方法(比如牛顿迭代)求解。手算太麻烦,现在都用MATLAB或Python搞定。

4.4 三种方法的对比与选择

说了这么多,到底该用哪种方法?我给大家一个选择指南:

  • 阶跃响应法:适合现场快速辨识,噪声不大时首选。我80%的现场工作都用它。
  • 脉冲响应法:适合系统不允许长时间加阶跃信号的场合(比如某些过程变量有安全限制)。但要注意脉冲宽度的选择。
  • 面积法:适合噪声较大、需要高精度模型的场合。实验室研究和离线分析的首选。

我的建议:如果你刚开始做辨识,先从阶跃响应法入手。等积累了经验,再尝试面积法。脉冲响应法可以放一放,实际中用得不多。

最后提醒一句:无论用哪种方法,都要做模型验证。把辨识出的模型和实际数据对比一下,看看拟合度如何。我见过太多人做完辨识就直接用,结果控制器投上去就震荡——嗯,那就是模型没辨识准。

时域辨识法知识体系 时域辨识法 阶跃响应法 脉冲响应法 面积法 一阶系统 二阶系统 脉冲宽度选择 FOPDT模型 二阶模型 选择原则:现场快速→阶跃法 高精度/噪声大→面积法

这张图把三种方法的关系和适用场景梳理清楚了。你可以把它当作一个快速参考——做辨识时,先看噪声水平,再看精度要求,然后选方法。

好了,时域辨识法就讲到这里。记住:方法只是工具,关键是对系统的理解。多动手、多对比,慢慢你就能一眼看出该用哪种方法。

课后练习:找一个实际系统(比如家里的热水器、空调),用阶跃响应法辨识它的模型。记录下你的步骤和结果,下次课我们可以讨论。

可可精品资料库