4. 单自由度系统建模:弹簧-质量-阻尼系统的动力学方程、传递函数与状态空间表示
各位工程师朋友,大家好。今天我们聊一个非常基础但又极其重要的内容——单自由度系统的建模。说白了,就是那个经典的弹簧-质量-阻尼系统。你别看它结构简单,我做了十几年运动控制,发现很多复杂的多轴系统、柔性机械臂,归根结底都能拆解成若干个这样的单自由度模型来分析。
我个人习惯,在讲任何控制算法之前,先把被控对象的数学模型搞透。模型不准,后面调参就是瞎忙活。今天我们就从三个角度来解剖这个系统:动力学方程、传递函数、状态空间。这三种表示方法,各有各的用处。
4.1 物理模型与动力学方程
先看一个最典型的场景。一个质量为 m 的物体,通过一个刚度为 k 的弹簧和一个阻尼系数为 c 的阻尼器,连接在固定端。物体受到外力 f(t) 的作用,产生位移 x(t)。
核心公式:牛顿第二定律
m·ẍ(t) + c·ẋ(t) + k·x(t) = f(t)
这就是单自由度系统的动力学方程,也叫二阶常微分方程。
为什么会这样?很简单。物体受到的力有三个:
- 惯性力:m·ẍ(t),质量乘以加速度
- 阻尼力:c·ẋ(t),与速度成正比,方向相反
- 弹性力:k·x(t),与位移成正比,方向相反
这三个力的合力,等于外力 f(t)。
实战经验:我在做伺服电机驱动刚性负载时,经常忽略阻尼项,认为它很小。结果有一次做高精度定位,系统总是有微小的震荡收敛不了。后来一查,是导轨的粘滞阻尼在低速时不可忽略。所以,阻尼项要不要简化,得看你的精度要求。
4.2 传递函数表示
动力学方程是时域的,做控制设计时我们更喜欢用频域的工具——拉普拉斯变换。把时域方程变换到 s 域,假设初始条件为零,得到:
m·s²·X(s) + c·s·X(s) + k·X(s) = F(s)
整理一下,传递函数就出来了:
传递函数:
G(s) = X(s) / F(s) = 1 / (m·s² + c·s + k)
这个形式太经典了。你想想看,它本质上就是一个二阶低通滤波器。分母的系数决定了系统的动态特性。
我们通常把它写成标准形式:
G(s) = (1/m) / (s² + 2·ζ·ωₙ·s + ωₙ²)
其中:
| 参数 | 表达式 | 物理意义 |
|---|---|---|
| ωₙ (无阻尼自然频率) | √(k/m) | 系统固有的振荡频率 |
| ζ (阻尼比) | c / (2·√(m·k)) | 描述系统衰减快慢 |
避坑指南:我曾经在调试一个高速龙门架时,发现系统在某个速度下剧烈抖动。用传递函数一分析,发现阻尼比 ζ 只有 0.05,接近无阻尼状态。后来加了主动阻尼补偿才稳住。记住,ζ 小于 0.7 时,系统会有明显的超调和振荡。
4.3 状态空间表示
传递函数适合单输入单输出系统,但现代控制理论(比如 LQR、MPC)更喜欢用状态空间。状态空间的好处是能处理多变量、非线性、时变系统。
怎么从二阶方程变成状态空间?我教你一个通用套路。选状态变量:
- x₁ = x (位移)
- x₂ = ẋ (速度)
那么:
- ẋ₁ = x₂
- ẋ₂ = (1/m)·(f - c·x₂ - k·x₁)
写成矩阵形式:
状态空间方程:
| ẋ₁ | | 0 1 | | x₁ | | 0 |
| | = | | | | + | | · f
| ẋ₂ | | -k/m -c/m| | x₂ | | 1/m |
y = | 1 0 | · | x₁ |
| x₂ |
这就是标准的状态空间形式:
- 状态矩阵 A = [[0, 1], [-k/m, -c/m]]
- 输入矩阵 B = [[0], [1/m]]
- 输出矩阵 C = [1, 0]
- 前馈矩阵 D = 0
我的习惯:做前馈控制时,我更喜欢用状态空间。因为你可以把期望的轨迹(位置、速度、加速度)直接作为参考输入,然后设计前馈补偿。比如加速度前馈,就是直接补偿惯性力 m·a_desired。这在传递函数里反而不直观。
4.4 三种表示方法的对比
这三种方法,什么时候用哪个?我简单总结一下:
| 表示方法 | 优点 | 适用场景 |
|---|---|---|
| 动力学方程 | 物理意义最直观 | 参数辨识、物理分析 |
| 传递函数 | 频域分析方便 | PID调参、稳定性分析 |
| 状态空间 | 适合现代控制算法 | 前馈控制、最优控制 |
4.5 知识体系结构图
下面我用一张图来总结本章的核心逻辑。从物理模型出发,衍生出三种数学表示,每种表示对应不同的控制设计方法。
4.6 实战中的一点感悟
最后说点题外话。很多刚入行的工程师喜欢直接套用传递函数,觉得状态空间太复杂。但我的经验是,如果你要做高性能运动控制,比如半导体设备、机器人关节,状态空间几乎是绕不开的。因为前馈控制的核心就是模型逆,而状态空间能让你清晰地分离出位置、速度、加速度的前馈分量。
嗯,今天就到这里。记住,模型是控制的基础。模型建得准,后面的事就顺了。