一、模型辨识概述:从工程直觉到数学表达

各位工程师朋友,大家好。我是你们这门课的主讲人。今天咱们聊聊模型辨识——这个听起来有点学术,实际上每天都在用的技术。

先问个问题:你手头有个系统,比如一个电机、一个反应釜,或者一套飞行器。你想控制它,但不知道它的数学模型。怎么办?

有人会说:「查手册啊!」可手册上的参数往往和实际差一截。有人会说:「用物理公式推导!」可推导出来的模型常常复杂到没法用。

这时候,模型辨识就派上用场了。

1.1 什么是模型辨识?

模型辨识,说白了就是——用数据说话,让系统自己「交代」它的行为规律。

我个人的理解更直白:你给系统一个输入,看它怎么响应。然后你找一个数学公式,让这个公式的响应和真实系统的响应尽量接近。这个过程,就是模型辨识。

模型辨识的定义: 通过观测系统的输入输出数据,在某一类模型结构中,选择一个与观测数据拟合最好的模型。

嗯,这里要注意:不是随便找个模型就行。你得在「模型类」里选。比如你认定系统是线性的,那就别用非线性模型去硬套。这个后面会细讲。

1.2 模型辨识的工程意义

为什么要学这个?我讲三个真实场景。

  • 场景一:控制器设计。 你设计一个PID控制器,不知道系统的增益和时间常数,参数怎么整定?靠试?我曾经在一个化工项目里,就因为模型不准,PID参数调了整整两周。后来用辨识方法,半天搞定。
  • 场景二:故障诊断。 系统正常运行时有一个「标准模型」。一旦实际输出和模型预测偏差过大,说明出问题了。没有模型,你连「正常」是什么都不知道。
  • 场景三:仿真与预测。 很多系统不允许你做破坏性实验。比如航空发动机,你敢随便加个阶跃信号?有了辨识模型,你可以在电脑上随便试。

说白了,模型辨识就是给工程问题装上一双「眼睛」——让你看到系统内部那些看不见的动态特性。

1.3 模型辨识的三大要素

做模型辨识,你绕不开三个东西:数据、模型类、准则。我习惯把它们叫做「辨识三件套」。

1.3.1 数据——模型的「食物」

没有数据,辨识就是空谈。但数据不是随便采的。

  • 激励要充分。 你给系统一个微弱的输入,输出几乎没变化,能辨识出什么?我见过有人用直流信号做辨识,结果模型参数全都不收敛。记住:输入信号要「丰富」,比如PRBS(伪随机二进制序列)或者扫频信号。
  • 采样要合理。 采样太快,数据冗余;采样太慢,丢失动态。有个经验法则:采样频率至少是系统带宽的5~10倍。
  • 噪声要处理。 真实数据都有噪声。滤波、去趋势、剔除异常值——这些预处理步骤,我建议你花至少30%的时间在上面。

我的经验: 数据质量决定了辨识结果的上限。算法再好,也救不了烂数据。我曾经在一个项目中,花了三周优化算法,结果发现是传感器接线松动导致数据异常。从那以后,我每次辨识前都会先做数据可视化检查。

1.3.2 模型类——你的「假设空间」

模型类就是你打算用什么样的数学结构去描述系统。常见的包括:

模型类 典型形式 适用场景
线性模型 ARX, ARMAX, OE, BJ 工作点附近变化不大的系统
非线性模型 Hammerstein, Wiener, NARX 阀门、饱和、摩擦等非线性
状态空间模型 连续/离散状态方程 多变量系统、现代控制
传递函数模型 G(s) 或 G(z) 单变量系统、经典控制

选模型类有点像选工具。你修水管用扳手,拆电路用螺丝刀。模型类选错了,后面再努力也白搭。

我个人习惯是:先从最简单的线性模型开始。如果拟合效果不行,再逐步增加复杂度。千万别一上来就搞非线性——你想想看,线性模型都搞不定,非线性只会更麻烦。

1.3.3 准则——什么是「好模型」?

有了数据和模型类,怎么判断哪个模型更好?这就需要准则函数。

最常用的准则是最小二乘:让模型输出和真实输出的误差平方和最小。

J(θ) = Σ [y(k) - ŷ(k|θ)]²

其中 y(k) 是真实输出,ŷ(k|θ) 是模型预测输出,θ 是模型参数。

但注意:不是误差越小越好。为什么?

  • 过拟合: 模型把噪声也学进去了。训练数据上误差很小,但换一组数据就一塌糊涂。
  • 欠拟合: 模型太简单,连基本趋势都抓不住。

避坑指南: 我曾经犯过一个错误——只盯着训练集的拟合精度,结果模型在验证集上完全失效。后来我学乖了:一定要留一部分数据做交叉验证。如果训练集和验证集的误差相差很大,说明过拟合了。

除了最小二乘,还有极大似然估计、贝叶斯估计等准则。不同准则适用于不同场景。比如数据噪声是高斯分布时,最小二乘和极大似然等价。但如果噪声有重尾分布,你可能需要用鲁棒估计。

1.4 知识体系总览

下面这张图,是我自己总结的模型辨识知识框架。你可以把它当作整个课程的地图。

模型辨识知识体系 数据 模型类 准则 激励设计 采样与滤波 预处理 线性模型 非线性模型 结构选择 最小二乘 极大似然 验证与评估 辨识流程:实验设计 → 数据采集 → 模型结构选择 → 参数估计 → 模型验证 三大要素缺一不可,流程环环相扣 ⚠ 常见陷阱 数据不充分 · 模型结构错误 · 过拟合 · 忽略验证

这张图把整个知识体系串起来了。你注意看:三大要素是基础,辨识流程是行动路线,而常见陷阱是你需要时刻警惕的。

1.5 一个简单的例子

光说不练假把式。咱们看个最简单的例子——辨识一个一阶系统的增益和时间常数。

假设你有一个加热器,输入是电压(0~10V),输出是温度(℃)。你给一个阶跃输入,记录温度变化曲线。

数据:
时间(s):  0   1   2   3   4   5   6   7   8   9  10
温度(℃): 20  22  23.5 24.5 25.2 25.7 26.0 26.2 26.3 26.4 26.5

你假设模型是:

G(s) = K / (τs + 1)

其中 K 是增益,τ 是时间常数。

从数据看:稳态温度是 26.5℃,初始温度 20℃,所以增益 K = (26.5 - 20) / 10 = 0.65 ℃/V。

时间常数 τ:温度上升到稳态值的63.2%所需时间。稳态变化是 6.5℃,63.2% 就是约 4.1℃。从数据看,温度达到 20 + 4.1 = 24.1℃ 的时间大约是 2.5秒。所以 τ ≈ 2.5秒。

你看,不用任何复杂算法,用手算都能得到一个初步模型。当然,实际工程中数据更复杂,我们会用最小二乘等算法自动计算。

我的建议: 刚开始学辨识,别急着上复杂算法。先用手算或者Excel画图,直观感受一下系统的行为。这能帮你建立直觉,后面用算法时才知道结果合不合理。

1.6 本章小结

这一章我们聊了:

  • 模型辨识是什么——用数据找模型
  • 为什么重要——控制、诊断、仿真都离不开它
  • 三大要素——数据、模型类、准则,一个都不能少
  • 一个手算例子——让你感受一下辨识其实没那么神秘

下一章,我们会深入数据预处理——这可是辨识成败的关键一步。到时候我会分享一些我在现场踩过的坑,保证让你少走弯路。

可可精品资料库