1. 模型辨识概述
1.1 什么是系统辨识?
系统辨识,说白了就是给一个未知系统“拍X光片”。
你有一个黑箱子,往里面灌信号(输入),看它吐出什么(输出)。然后你根据这些数据,猜出黑箱子里面长什么样——也就是它的数学模型。
我刚开始做控制那会儿,总觉得这玩意儿玄乎。后来在调试一个老旧的液压伺服系统时,厂家给的图纸早就丢了,电路板也改得面目全非。怎么办?硬着头皮上呗。我接上信号发生器,录了几组输入输出数据,跑了个辨识算法,嘿,模型出来了。用这个模型设计的控制器,一次上电就稳了。
所以,系统辨识就是:用实验数据,反推系统模型。
它和机理建模的区别在于:机理建模是从物理定律出发(牛顿定律、基尔霍夫定律),一步步推导。而辨识是从数据出发,让数据“说话”。
核心思想: 系统辨识 = 数据 + 模型结构 + 优化准则
1.2 辨识的三大要素
搞了这么多年辨识,我总结下来,就三个东西绕不开:数据、模型类、准则。缺一个,这事儿就干不成。
1.2.1 数据——辨识的“食材”
数据质量决定模型上限。你想想看,用烂数据能辨识出好模型吗?不可能。
数据要求:
- 充分激励:输入信号要“够劲儿”,能把系统的各个模态都激发出来。我习惯用PRBS(伪随机二进制序列)或扫频信号。
- 信噪比高:噪声太大,辨识出来的模型可能全是噪声的“形状”。
- 采样率合适:太快了数据冗余,太慢了丢失动态信息。
我的经验: 做辨识前,先花70%的时间处理数据。去趋势、滤波、剔除野点。数据干净了,辨识就成功了一半。
1.2.2 模型类——辨识的“菜谱”
你得先决定用哪种模型来描述系统。是线性还是非线性?是连续还是离散?是参数模型还是非参数模型?
常见的模型类:
| 模型类型 | 典型代表 | 适用场景 |
|---|---|---|
| 参数模型 | ARX、ARMAX、状态空间 | 需要物理可解释性、模型用于控制设计 |
| 非参数模型 | 脉冲响应、频率响应 | 初步分析、系统特性摸底 |
| 非线性模型 | Hammerstein、Wiener、神经网络 | 强非线性系统、大范围工况 |
我个人习惯:先试线性模型,如果残差分析通不过,再上非线性。别一上来就搞复杂模型,容易过拟合。
1.2.3 准则——辨识的“尺子”
有了数据和模型类,怎么判断模型好不好?得有个量化指标。
最常用的准则是:预测误差最小化。也就是让模型输出和实际输出的误差平方和最小。
数学上就是:
J(θ) = Σ [y(k) - ŷ(k|θ)]²
其中θ是模型参数,y是实际输出,ŷ是模型预测输出。
我曾经在一个温度控制项目中,用了不同的准则函数对比。用最小二乘准则,模型在低频段拟合得很好,但高频段一塌糊涂。后来改用加权准则,把高频段的权重提高,模型才全面可用。
注意: 准则函数的选择直接影响模型特性。如果你关心低频特性,就加大低频误差的权重。如果你关心预测能力,就用多步预测误差准则。
1.3 辨识的工程意义与应用场景
你可能会问:我直接机理建模不行吗?为什么非要搞辨识?
嗯,这里要注意。机理建模有两个硬伤:
- 太复杂:很多工业系统,机理模型写出来几十个微分方程,参数根本测不准。
- 太理想:摩擦、间隙、迟滞、老化……这些机理模型很难精确描述。
辨识正好补上这个短板。它直接从数据出发,模型是“长”出来的,不是“推导”出来的。
应用场景太多了,我随便列几个:
- 控制器设计:MPC、自适应控制,都需要一个准确的模型。我做过一个化工精馏塔的MPC,模型就是靠辨识得到的,投运后节能15%。
- 故障诊断:模型残差可以反映系统是否异常。比如电机轴承磨损,辨识出来的模型参数会漂移。
- 数字孪生:用辨识模型构建虚拟副本,做预测性维护。
- 系统分析:辨识出来的传递函数,可以直接分析稳定性、带宽、阻尼比。
一句话总结: 系统辨识是连接“数据”和“模型”的桥梁。没有它,很多现代控制方法就是空中楼阁。
1.4 本章知识体系图
下面这张图,把本章的核心逻辑串起来了。你看一眼,心里就有谱了。
这张图你看懂了吗?从上到下,就是系统辨识的完整流程:先有数据,再选模型类,然后用准则去优化。最后,模型落到工程应用上。
好了,第一章就到这里。记住这三个要素,后面每一章都会围绕它们展开。