第2章:不确定性建模——参数不确定性、未建模动态、有界不确定性
各位工程师朋友,咱们接着聊。上一章我讲了为什么要关注模型不确定性,这一章咱们就深入进去,看看不确定性到底长什么样,怎么把它“抓”出来建模。
说实话,我刚入行那会儿,总觉得建模就是搞一套漂亮的微分方程。直到有一次,我设计的一个飞行器控制器,仿真跑得飞起,一上实物就抖得像筛糠。后来一查,原来是忽略了执行机构的弹性模态——这就是典型的未建模动态。从那以后,我对不确定性建模再也不敢马虎了。
2.1 参数不确定性:最直观的不确定性
参数不确定性,说白了就是模型结构我知道,但里面的系数拿不准。比如一个弹簧-质量-阻尼系统,方程是:
m·ẍ + c·ẋ + k·x = F
质量m、阻尼c、刚度k,这些参数可能因为温度、老化、制造公差而变化。你想想看,同一个批次的电阻,阻值能差出5%。
怎么建模? 我习惯用两种方式:
- 区间形式:参数在某个范围内波动,比如 m ∈ [0.9, 1.1] kg
- 百分比形式:标称值 ± 百分比,比如 m = 1.0 ± 10%
在鲁棒控制里,我们通常把参数不确定性写成这样:
m = m₀ · (1 + δ_m · Δ_m), |Δ_m| ≤ 1
这里的 δ_m 是最大偏差比例,Δ_m 是归一化的不确定性。嗯,这里要注意,Δ_m 可以是时变的,也可以是定常的,取决于你的物理认知。
2.2 未建模动态:看不见的“幽灵”
未建模动态,这是最让人头疼的。你明明建了模型,但总有些高频动态、非线性、时滞被你忽略了。比如:
- 执行器的二阶动态(你当它是理想比例环节)
- 传感器的采样延迟
- 结构的高频谐振模态
- 摩擦、间隙等非线性
我做过一个机械臂项目,建模时只考虑了刚体动力学,结果低频控制还行,一上高频就振荡。后来加了柔性模态的未建模动态模型,才把问题压住。
怎么建模? 最常用的是乘性不确定性:
G(s) = G₀(s) · (1 + W(s) · Δ(s)), ‖Δ‖∞ ≤ 1
这里的 G₀(s) 是标称模型,W(s) 是权重函数,它描述了不确定性随频率的变化。Δ(s) 是归一化的不确定性,范数有界。
为什么用乘性?因为未建模动态在高频更严重。你想想看,低频段你的模型很准,高频段基本是瞎猜。W(s) 通常设计成高通滤波器:
W(s) = (τ·s + 1) / (τ·s / α + 1)
α 是高频不确定性的幅值,τ 是转折频率。我一般根据实验数据或经验来定这两个参数。
2.3 有界不确定性:范数有界与结构奇异值μ
前面两种不确定性,最终都要归结到“有界”这个框架里。鲁棒控制的核心思想就是:不确定性再大,也不能超出某个界。
2.3.1 范数有界不确定性
这是最常用的形式。我们把所有不确定性打包成一个块 Δ,要求它的范数不超过1。比如:
- H∞范数有界:‖Δ‖∞ ≤ 1,适用于频域不确定性
- H2范数有界:‖Δ‖₂ ≤ 1,适用于能量有界扰动
我个人的经验是,H∞范数有界用得最多,因为它和频域设计天然契合。你设计一个鲁棒控制器,本质上就是在和这个“范数球”做博弈。
2.3.2 结构奇异值μ:更精细的分析工具
范数有界虽然好用,但太粗糙了。你想想看,实际系统中的不确定性是有结构的——参数不确定性是实标量,未建模动态是复传递函数,它们混在一起,用一个大Δ块去描述,会引入不必要的保守性。
这就是μ分析的价值所在。它把不确定性拆成多个块:
Δ = diag(Δ₁, Δ₂, ..., Δₙ)
每个块有自己的结构和范数界。μ值衡量的是:在保持系统稳定的前提下,这个块状不确定性最大能放大多少倍。
我做过一个航电系统的鲁棒性评估,用传统的H∞方法算出来稳定裕度只有0.3,但用μ分析一算,实际裕度有0.7。为什么差这么多?因为H∞把参数不确定性和未建模动态混在一起,而μ把它们分开处理,大大降低了保守性。
2.4 知识体系总览
下面这张图是我自己总结的不确定性建模框架,帮你理清思路:
2.5 实战建议
说了这么多理论,最后给几条实在的建议:
- 先辨识,后建模:别拍脑袋定不确定性界。做几次实验,看看模型和实际数据的偏差有多大,再定界。
- 保守性要适度:界定得太宽,控制器性能差;定得太窄,鲁棒性不够。我一般留20%的余量。
- 能用μ就别用H∞:如果你的系统有多个不同类型的不确定性,μ分析能帮你省下不少性能。
- 权重函数W(s)是关键:它决定了不确定性在频域上的分布。多花点时间调W(s),比调控制器参数更有效。
好了,这一章就到这里。不确定性建模是鲁棒控制的基石,搞懂了它,后面的控制器设计才能有的放矢。