2. 动力学建模基础:单自由度系统、多自由度系统、状态空间方程推导

做主动隔振,第一步就是建模。说白了,你得知道被控对象长什么样,它怎么动,力怎么传。我见过不少工程师一上来就调PID参数,结果系统抖得像筛子——原因很简单,模型没搞对。

这一章我们就把动力学建模这件事讲透。从最简单的单自由度开始,逐步过渡到多自由度,最后统一到状态空间方程。嗯,这部分是后面所有控制器设计的地基,地基不稳,楼盖得再高也得塌。

2.1 单自由度系统:隔振的起点

单自由度系统(SDOF)是最基本的振动模型。你想想看,一个质量块、一根弹簧、一个阻尼器,串联在一起,就是它了。

核心方程:

牛顿第二定律告诉我们:m·ẍ + c·ẋ + k·x = F(t)

其中:

  • m — 质量 (kg)
  • c — 阻尼系数 (N·s/m)
  • k — 弹簧刚度 (N/m)
  • F(t) — 外部激励 (N)

这个方程看着简单,但信息量很大。它描述了系统在任意时刻的受力平衡。惯性力、阻尼力、弹性力,加上外力,总和为零。

我在做精密光学平台隔振时,就遇到过这种情况。平台本身重达2吨,但允许的振动幅度只有微米级。当时我们用的就是单自由度模型来估算隔振器的刚度和阻尼比。你猜怎么着?模型预测的共振频率和实测只差了3%。

2.1.1 固有频率与阻尼比

从上面的方程,我们可以引出两个关键参数:

参数 符号 公式 物理意义
固有频率 ωn √(k/m) 系统自由振动的角频率
阻尼比 ζ c / (2√(mk)) 阻尼程度的无量纲指标

我的经验:主动隔振系统的阻尼比通常设计在0.3~0.7之间。太小了,共振峰压不住;太大了,高频隔振性能会下降。我曾经在一个项目中把阻尼比调到0.8,结果高频振动反而放大了——这就是过阻尼的代价。

2.1.2 传递函数与隔振率

对单自由度系统做拉普拉斯变换,得到传递函数:

G(s) = X(s) / F(s) = 1 / (m·s² + c·s + k)

隔振率(Transmissibility)定义为输出振幅与输入振幅之比:

T(ω) = |X(ω) / U(ω)| = √[(1 + (2ζ·r)²) / ((1 - r²)² + (2ζ·r)²)]

其中 r = ω/ωn 是频率比。

这里有个关键点:当 r > √2 时,隔振率才小于1,系统才开始隔振。换句话说,激励频率必须大于固有频率的1.414倍,隔振才有效。这个结论我反复验证过,错不了。

2.2 多自由度系统:现实世界的常态

单自由度系统是理想情况。实际工程中,一个隔振平台有六个自由度——三个平动、三个转动。你不可能只用一条弹簧就搞定所有方向的振动。

多自由度系统(MDOF)的方程写成矩阵形式:

M·ẍ + C·ẋ + K·x = F(t)

其中:

  • M — 质量矩阵 (n×n)
  • C — 阻尼矩阵 (n×n)
  • K — 刚度矩阵 (n×n)
  • x — 位移向量 (n×1)
  • F — 力向量 (n×1)

看着是不是比单自由度复杂多了?别怕,核心思想是一样的——每个自由度都满足牛顿第二定律,只不过现在要同时解一组方程。

注意:多自由度系统的矩阵M、C、K通常不是对角阵。这意味着各个自由度之间存在耦合。比如,你在x方向施加一个力,系统可能在y方向也有响应。这就是所谓的“交叉耦合”。我在做六自由度平台时,交叉耦合是最头疼的问题之一。

2.2.1 模态分析:解耦的艺术

多自由度系统之所以难处理,就是因为耦合。但有一个技巧——模态分析。通过求解特征值问题:

(K - ω²·M) · φ = 0

我们可以得到系统的固有频率ωi和模态振型φi。然后,用模态坐标变换,把耦合的物理方程变成一组独立的单自由度方程。

这个过程,说白了就是把一个复杂问题拆成几个简单问题。我当年做汽车发动机悬置设计时,就是用模态分析把六自由度系统解耦成六个独立的模态,每个模态单独设计隔振器,效果立竿见影。

2.3 状态空间方程:控制工程师的语言

传递函数适合单输入单输出系统。但主动隔振系统通常是多输入多输出的——多个传感器、多个作动器。这时候,状态空间方程是更好的选择。

状态空间方程的标准形式:

ẋ = A·x + B·u
y = C·x + D·u

其中:

  • x — 状态向量 (包含位移和速度)
  • u — 输入向量 (控制力)
  • y — 输出向量 (传感器测量值)
  • A — 系统矩阵
  • B — 输入矩阵
  • C — 输出矩阵
  • D — 前馈矩阵 (通常为零)

2.3.1 从二阶方程到状态空间

怎么把二阶的动力学方程变成一阶的状态空间?很简单,定义状态变量:

x₁ = x (位移)
x₂ = ẋ (速度)

那么:

ẋ₁ = x₂
ẋ₂ = (1/m) · (F - c·x₂ - k·x₁)

写成矩阵形式:

[ẋ₁]   [ 0     1  ] [x₁]   [ 0 ]
[ẋ₂] = [-k/m  -c/m] [x₂] + [1/m] · F

y = [1  0] · [x₁]
            [x₂]

你看,一个二阶系统变成了两个一阶方程。这就是状态空间的精髓——用一阶微分方程组描述任意阶系统。

我的建议:在实际项目中,我习惯用MATLAB的ss()函数直接从传递函数或质量-刚度-阻尼矩阵生成状态空间模型。但理解背后的推导过程很重要,否则你没法判断仿真结果是否合理。

2.4 知识体系总览

下面这张图总结了本章的核心逻辑:

动力学建模知识体系 物理系统(质量-弹簧-阻尼) 单自由度系统 (SDOF) 多自由度系统 (MDOF) 关键参数 固有频率 ωₙ · 阻尼比 ζ 传递函数 · 隔振率 分析方法 模态分析 · 解耦 矩阵方程 M·ẍ+C·ẋ+K·x=F 状态空间方程:ẋ = Ax + Bu, y = Cx + Du 控制设计的基础 MIMO系统必备

2.5 建模流程总结

在实际项目中,我一般按以下步骤建立隔振系统的动力学模型:

  1. 确定自由度 — 系统有几个独立运动方向?平动?转动?
  2. 建立物理模型 — 画出质量块、弹簧、阻尼器的连接关系
  3. 列写运动方程 — 对每个自由度应用牛顿第二定律
  4. 整理成矩阵形式 — 得到M、C、K矩阵
  5. 转换到状态空间 — 定义状态变量,写出A、B、C、D矩阵
  6. 验证模型 — 用仿真或实验数据校核模型精度

避坑提醒:我曾经在一个项目中忽略了阻尼矩阵的非对角元素,结果仿真结果和实测差了20%。后来才发现,系统的结构阻尼导致了明显的交叉耦合。所以,建模时别偷懒,该测的参数一定要测,该算的耦合一定要算。

好了,这一章的内容就到这里。动力学建模是主动隔振设计的根基,花时间把模型搞准了,后面的控制器设计才能事半功倍。记住,模型越接近真实系统,你的控制效果就越可靠。