第二章:系统与模型基础
各位同学,大家好。我是你们的老朋友,一个在控制领域摸爬滚打了十几年的工程师。今天咱们来聊聊模型辨识的基石——系统与模型基础。说实话,这部分内容看着有点理论,但你要是真搞懂了,后面实操起来会顺手很多。
我个人习惯,在开始任何辨识工作之前,先问自己三个问题:这个系统是线性的吗?它随时间变化吗?我该用哪种模型来描述它? 这三个问题,就是咱们今天要解决的核心。
2.1 线性时不变系统(LTI)
线性时不变系统,英文叫 LTI,是模型辨识里最亲密的伙伴。为什么?因为它简单、成熟、好用。
线性,说白了就是两个特性:齐次性和叠加性。你给它一个输入,它给你一个输出。输入加倍,输出也加倍。两个输入同时作用,输出就是各自输出的和。嗯,这很符合直觉。
时不变,意思是系统的特性不随时间改变。你今天测它,和明天测它,结果一样。我在项目中遇到过最典型的例子,就是老化的传感器。刚装上去时是线性时不变的,用了两年后,漂移就出来了,变成了时变系统。所以,LTI 是一个理想化的假设,但也是我们最常用的起点。
核心要点: 大多数工业过程,在某个工作点附近,都可以近似为 LTI 系统。这是模型辨识的“安全区”。
2.2 非线性系统
现实世界,其实是非线性的。你想想看,摩擦力、饱和、死区、滞环……这些玩意儿到处都是。
非线性系统有个特点:不满足叠加原理。你给它一个正弦波,它输出可能就不是正弦波了,会多出很多谐波。我曾经调试过一个液压伺服系统,输入是小信号时,响应很漂亮;输入一大,系统就开始抖,怎么调 PID 都没用。后来一分析,是阀的流量饱和特性在作怪。
处理非线性系统,常用的招数有几种:
- 局部线性化:在工作点附近用泰勒展开,近似成 LTI 模型。这是最常用的工程方法。
- 分段线性化:把整个工作范围切成几段,每段用一个 LTI 模型。
- 非线性模型结构:比如 Hammerstein 模型、Wiener 模型,专门用来描述某些特定类型的非线性。
我的建议: 做辨识时,先假设它是线性的。如果残差分析发现不对劲,再考虑非线性。别一上来就搞复杂模型,容易把自己绕进去。
2.3 三种核心模型形式
模型辨识,最终要输出一个数学表达式。常用的有三种:传递函数、状态空间、脉冲响应。它们之间可以互相转换,但各有各的脾气。
2.3.1 传递函数模型
传递函数,是经典控制理论的灵魂。它用拉普拉斯变换,把微分方程变成了代数方程。形式很简单:
G(s) = Y(s) / U(s) = (b_m s^m + ... + b_0) / (s^n + a_{n-1} s^{n-1} + ... + a_0)
我个人习惯,用传递函数来理解系统的频率特性。比如,一个一阶惯性环节,它的带宽、时间常数,一眼就能看出来。在项目里,我经常用阶跃响应测试,直接拟合出传递函数的参数,又快又准。
| 模型类型 | 优点 | 缺点 |
|---|---|---|
| 传递函数 | 直观、物理意义明确、适合频域分析 | 只适用于 SISO 系统、处理多变量麻烦 |
| 状态空间 | 适合 MIMO 系统、便于计算机求解 | 物理意义不直观、参数多 |
| 脉冲响应 | 非参数模型、无需假设结构 | 参数多、需要长数据 |
2.3.2 状态空间模型
状态空间模型,是现代控制理论的核心。它用一组一阶微分方程来描述系统内部状态的变化:
dx/dt = A x + B u
y = C x + D u
这里 x 是状态向量,u 是输入,y 是输出。A、B、C、D 是矩阵。
状态空间模型最大的好处,是能处理多输入多输出(MIMO)系统。我记得有一次做飞行器姿态控制,三个轴互相耦合,用传递函数根本搞不定。换成状态空间模型,把耦合项放到 A 矩阵里,一下子就清晰了。
注意: 状态空间模型的状态变量,不一定有物理意义。它只是数学上的一个抽象。所以,辨识出来的状态空间模型,可能需要做相似变换,才能对应到实际的物理量。
2.3.3 脉冲响应模型
脉冲响应模型,是最“原始”的模型。它不假设任何结构,直接记录系统对单位脉冲输入的输出响应。在离散时间下,就是一组系数:
y(k) = sum_{i=0}^{N-1} g(i) * u(k-i)
这里的 g(i) 就是脉冲响应系数。说白了,它就是系统的“记忆”。
脉冲响应模型的好处是无偏,不需要你猜系统的阶次。但坏处也很明显:需要的数据量很大,而且对噪声敏感。我在做化工过程辨识时,经常先用脉冲响应模型看看系统的“长相”,再决定用几阶的传递函数去拟合。
2.4 知识体系总览
为了让大家更直观地理解这些概念之间的关系,我画了一张图。你可以把它当作本章的“导航图”。
这张图展示了本章的核心逻辑:从系统特性出发,选择合适的模型形式,最终服务于具体的应用场景。你可以在后续的学习中,随时回来看看这张图,确认自己走到了哪一步。
2.5 避坑指南
最后,分享几个我踩过的坑:
- 不要盲目追求高阶模型:模型越复杂,参数越多,需要的辨识数据也越多。有时候,一个一阶加纯滞后模型,比一个五阶模型好用得多。
- 注意采样时间:采样太快,数据冗余;采样太慢,会丢失动态信息。我一般建议,采样频率是系统带宽的 5-10 倍。
- 先做数据预处理:去掉趋势项、滤除高频噪声、剔除异常值。这一步做不好,后面全是白费。
好了,第二章的内容就到这里。记住,模型辨识不是一锤子买卖,而是一个迭代的过程。先假设,再验证,不行就换个模型。这才是工程师的思维。