第12章:系统辨识与参数估计
系统辨识是连接仿真与现实的关键桥梁。本章深入探讨如何从实验数据中准确估计物理系统参数,包括质量、惯性、摩擦系数等关键物理量。我们将从经典的最小二乘方法出发,逐步深入到贝叶斯框架下的参数估计,并特别关注接触参数的标定问题。这些技术对于构建高保真度的数字孪生系统至关重要,是实现仿真到现实成功迁移的基础。
12.1 最小二乘辨识
12.1.1 线性参数化模型
在机器人系统中,动力学方程往往可以重新整理为参数的线性形式:
$$\mathbf{Y}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}}) \boldsymbol{\theta} = \boldsymbol{\tau}$$ 其中 $\mathbf{Y}$ 是回归矩阵(regressor matrix),$\boldsymbol{\theta}$ 是待辨识的参数向量,包含:
- 质量 $m_i$
- 质心位置 $\mathbf{r}_{c,i}$
- 惯性张量元素 $I_{xx,i}, I_{yy,i}, I_{zz,i}, I_{xy,i}, I_{xz,i}, I_{yz,i}$
对于第 $i$ 个连杆,其最小参数集表示为: $$\boldsymbol{\theta}_i = [m_i, m_i r_{cx,i}, m_i r_{cy,i}, m_i r_{cz,i}, I_{xx,i}, I_{yy,i}, I_{zz,i}, I_{xy,i}, I_{xz,i}, I_{yz,i}]^T$$
12.1.2 激励轨迹设计
系统辨识的成功很大程度上取决于激励轨迹的质量。理想的激励轨迹应该:
- 持续激励条件:确保回归矩阵满秩
- 覆盖工作空间:遍历机器人的典型运动范围
- 激发动力学耦合:包含加速、减速、方向变化
常用的激励轨迹形式: $$q_j(t) = \sum_{k=1}^{N_f} \left[ a_{jk} \sin(\omega_k t) + b_{jk} \cos(\omega_k t) \right]$$ 其中频率 $\omega_k$ 的选择需要避免共振,通常选择为基频的整数倍。
优化激励轨迹的目标函数: $$\min_{\mathbf{a}, \mathbf{b}} \text{cond}(\mathbf{Y}^T\mathbf{Y})$$ 其中 $\text{cond}(\cdot)$ 是条件数,用于衡量数值稳定性。
12.1.3 递归最小二乘(RLS)
对于在线参数估计,递归最小二乘提供了计算高效的更新方式: $$\hat{\boldsymbol{\theta}}_{k+1} = \hat{\boldsymbol{\theta}}_k + \mathbf{K}_{k+1} (\boldsymbol{\tau}_{k+1} - \mathbf{Y}_{k+1} \hat{\boldsymbol{\theta}}_k)$$ 其中增益矩阵: $$\mathbf{K}_{k+1} = \mathbf{P}_k \mathbf{Y}_{k+1}^T (\lambda + \mathbf{Y}_{k+1} \mathbf{P}_k \mathbf{Y}_{k+1}^T)^{-1}$$ 协方差矩阵更新: $$\mathbf{P}_{k+1} = \frac{1}{\lambda} (\mathbf{I} - \mathbf{K}_{k+1} \mathbf{Y}_{k+1}) \mathbf{P}_k$$ 遗忘因子 $\lambda \in (0, 1]$ 用于处理时变参数。
12.1.4 物理一致性约束
辨识得到的参数必须满足物理约束:
- 质量正定性:$m_i > 0$
-
惯性张量正定性: $$\mathbf{I}_i = \begin{bmatrix} I_{xx} & I_{xy} & I_{xz} \\ I_{xy} & I_{yy} & I_{yz} \\ I_{xz} & I_{yz} & I_{zz} \end{bmatrix} \succ 0$$
-
三角不等式: $$I_{xx} + I_{yy} \geq I_{zz}, \quad I_{yy} + I_{zz} \geq I_{xx}, \quad I_{zz} + I_{xx} \geq I_{yy}$$ 带约束的最小二乘问题可以表述为半定规划(SDP): $$\begin{aligned} \min_{\boldsymbol{\theta}} & \quad |\mathbf{Y}\boldsymbol{\theta} - \boldsymbol{\tau}|^2 \\ \text{s.t.} & \quad \mathbf{I}_i(\boldsymbol{\theta}) \succeq \epsilon \mathbf{I}_3, \quad \forall i \\ & \quad m_i \geq \epsilon_m \end{aligned}$$
12.2 贝叶斯参数估计
12.2.1 概率框架
贝叶斯方法将参数估计问题转化为后验分布的推断: $$p(\boldsymbol{\theta} | \mathcal{D}) = \frac{p(\mathcal{D} | \boldsymbol{\theta}) p(\boldsymbol{\theta})}{p(\mathcal{D})}$$ 其中:
- $p(\boldsymbol{\theta})$ 是先验分布,编码了对参数的先验知识
- $p(\mathcal{D} | \boldsymbol{\theta})$ 是似然函数,描述观测数据的生成过程
- $p(\boldsymbol{\theta} | \mathcal{D})$ 是后验分布,包含了参数的不确定性信息
对于动力学辨识,似然函数通常假设为高斯噪声模型: $$p(\boldsymbol{\tau} | \mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}}, \boldsymbol{\theta}) = \mathcal{N}(\mathbf{Y}\boldsymbol{\theta}, \boldsymbol{\Sigma}_{\tau})$$
12.2.2 共轭先验
选择共轭先验可以得到解析的后验分布。对于高斯似然,正态-逆威沙特分布是共轭先验: $$p(\boldsymbol{\theta}, \boldsymbol{\Sigma}) = \text{NIW}(\boldsymbol{\mu}_0, \boldsymbol{\Lambda}_0, \nu_0, \boldsymbol{\Psi}_0)$$ 后验更新公式: $$\begin{aligned} \boldsymbol{\mu}_n &= \frac{\boldsymbol{\Lambda}_0 \boldsymbol{\mu}_0 + n\bar{\boldsymbol{\theta}}}{\boldsymbol{\Lambda}_0 + n} \\ \boldsymbol{\Lambda}_n &= \boldsymbol{\Lambda}_0 + n \\ \nu_n &= \nu_0 + n \\ \boldsymbol{\Psi}_n &= \boldsymbol{\Psi}_0 + \mathbf{S} + \frac{n\boldsymbol{\Lambda}_0}{n + \boldsymbol{\Lambda}_0}(\bar{\boldsymbol{\theta}} - \boldsymbol{\mu}_0)(\bar{\boldsymbol{\theta}} - \boldsymbol{\mu}_0)^T \end{aligned}$$
12.2.3 马尔可夫链蒙特卡洛(MCMC)
对于复杂的后验分布,MCMC方法提供了通用的采样框架。Hamiltonian Monte Carlo (HMC) 特别适合高维参数空间:
动量变量引入: $$p(\boldsymbol{\theta}, \mathbf{p}) = p(\boldsymbol{\theta}) p(\mathbf{p}) = p(\boldsymbol{\theta}) \mathcal{N}(\mathbf{0}, \mathbf{M})$$ 哈密顿动力学: $$\begin{aligned} \frac{d\boldsymbol{\theta}}{dt} &= \mathbf{M}^{-1} \mathbf{p} \\ \frac{d\mathbf{p}}{dt} &= -\nabla_{\boldsymbol{\theta}} U(\boldsymbol{\theta}) \end{aligned}$$ 其中 $U(\boldsymbol{\theta}) = -\log p(\boldsymbol{\theta} | \mathcal{D})$ 是势能函数。
12.2.4 变分推断
变分推断通过优化寻找最接近真实后验的分布: $$q^*(\boldsymbol{\theta}) = \arg\min_{q \in \mathcal{Q}} \text{KL}(q(\boldsymbol{\theta}) | p(\boldsymbol{\theta} | \mathcal{D}))$$ 对于平均场近似: $$q(\boldsymbol{\theta}) = \prod_i q_i(\theta_i)$$ 坐标上升更新: $$\log q_j^*(\theta_j) = \mathbb{E}_{q_{-j}}[\log p(\boldsymbol{\theta}, \mathcal{D})] + \text{const}$$
12.3 接触参数标定
12.3.1 摩擦系数辨识
摩擦参数的辨识需要特殊设计的实验。对于库仑摩擦模型: $$\mathbf{f}_t = \begin{cases} -\mu_s |\mathbf{f}_n| \frac{\mathbf{v}_t}{|\mathbf{v}_t|} & \text{if } |\mathbf{f}_t^{\text{trial}}| > \mu_s |\mathbf{f}_n| \\ \mathbf{f}_t^{\text{trial}} & \text{otherwise} \end{cases}$$ 标定实验设计:
-
倾斜平面法:测量临界倾角 $\theta_c$ $$\mu_s = \tan(\theta_c)$$
-
拉力测试:施加水平力直到滑动 $$\mu_s = \frac{F_{\text{critical}}}{mg}$$
-
振荡运动:通过能量耗散估计动摩擦系数 $$E_{\text{lost}} = \mu_k mg \cdot d$$
12.3.2 恢复系数测量
恢复系数 $e$ 定义了碰撞前后的相对速度关系: $$e = -\frac{v_{\text{sep}}}{v_{\text{app}}}$$ 标准测量方法:
-
垂直跌落测试: $$e = \sqrt{\frac{h_{\text{bounce}}}{h_{\text{drop}}}}$$
-
摆锤碰撞:通过角度测量 $$e = \frac{\cos(\theta_{\text{min}}) - \cos(\theta_0)}{\cos(\theta_{\text{max}}) - \cos(\theta_0)}$$
-
高速摄像分析:直接测量碰撞前后速度
恢复系数的速度依赖性模型: $$e(v) = e_0 \cdot \exp(-\alpha v)$$
12.3.3 接触刚度与阻尼
柔性接触模型(Hunt-Crossley)的参数辨识: $$\mathbf{f}_n = k_n \delta^n - c_n \delta^n \dot{\delta}$$ 其中:
- $k_n$ 是接触刚度
- $c_n$ 是接触阻尼
- $n$ 是非线性指数(通常 $n = 1.5$ 对应赫兹接触)
通过力传感器数据拟合: $$\min_{k_n, c_n, n} \sum_i |\mathbf{f}_{\text{measured},i} - \mathbf{f}_{\text{model},i}(k_n, c_n, n)|^2$$ 使用Levenberg-Marquardt算法求解非线性最小二乘问题。
12.3.4 接触面积与压力分布
对于面接触,压力分布的测量对于验证接触模型至关重要:
- 压力敏感膜:提供二维压力分布
- 触觉传感器阵列:高分辨率接触信息
- 光学方法:基于变形的压力推断
接触面积与法向力的关系(对于弹性接触): $$A = \pi \left(\frac{3FR}{4E^*}\right)^{2/3}$$ 其中有效弹性模量: $$\frac{1}{E^*} = \frac{1-\nu_1^2}{E_1} + \frac{1-\nu_2^2}{E_2}$$
12.4 动力学模型验证
12.4.1 交叉验证策略
将数据集分为训练集和验证集,评估模型的泛化能力:
- k折交叉验证:
将数据分为k个子集
for i = 1 to k:
使用除第i个子集外的所有数据训练
在第i个子集上验证
计算平均性能指标
-
留一法(LOO-CV):k = n的特殊情况
-
时间序列分割:保持时间顺序的连续性
12.4.2 预测误差分析
定义归一化预测误差: $$\text{NPE} = \frac{1}{N} \sum_{i=1}^N \frac{|\boldsymbol{\tau}_{\text{pred},i} - \boldsymbol{\tau}_{\text{meas},i}|}{|\boldsymbol{\tau}_{\text{meas},i}|}$$ 频域分析通过传递函数评估: $$H(\omega) = \frac{\mathcal{F}\{\boldsymbol{\tau}_{\text{pred}}\}}{\mathcal{F}\{\boldsymbol{\tau}_{\text{cmd}}\}}$$ 相位和幅值裕度提供稳定性指标。
12.4.3 轨迹跟踪验证
在闭环控制下验证模型:
-
位置跟踪误差: $$e_p = \sqrt{\frac{1}{T} \int_0^T |\mathbf{q}_{\text{ref}}(t) - \mathbf{q}(t)|^2 dt}$$
-
力矩预测误差: $$e_{\tau} = \sqrt{\frac{1}{T} \int_0^T |\boldsymbol{\tau}_{\text{model}}(t) - \boldsymbol{\tau}_{\text{real}}(t)|^2 dt}$$
-
能量一致性: $$\Delta E = |E_{\text{model}} - E_{\text{real}}|$$
12.4.4 统计检验
使用统计方法验证模型假设:
-
残差白度检验(Ljung-Box test): $$Q = n(n+2) \sum_{k=1}^h \frac{r_k^2}{n-k}$$ 其中 $r_k$ 是滞后k的自相关系数
-
正态性检验(Shapiro-Wilk test): 验证残差的高斯分布假设
-
异方差性检验(Breusch-Pagan test): 检测误差方差的非恒定性
12.4.5 模型选择准则
平衡模型复杂度与拟合质量:
-
赤池信息准则(AIC): $$\text{AIC} = 2k - 2\ln(L)$$
-
贝叶斯信息准则(BIC): $$\text{BIC} = k\ln(n) - 2\ln(L)$$
-
最小描述长度(MDL): $$\text{MDL} = -\ln(L) + \frac{k}{2}\ln(n)$$ 其中 $k$ 是参数数量,$L$ 是似然值,$n$ 是样本数。
12.5 RL应用:真实机器人参数的获取
12.5.1 Sim-to-Real的参数鸿沟
仿真与现实之间的参数差异是策略迁移失败的主要原因之一。典型的参数不确定性来源:
- 制造公差:实际质量与CAD模型的偏差可达5-10%
- 装配误差:连杆长度、关节零位的微小偏差
- 磨损与老化:摩擦系数随使用时间变化
- 负载变化:抓取物体改变系统动力学
12.5.2 在线自适应辨识
强化学习训练过程中的参数自适应:
初始化: θ_sim 从制造商规格
while 训练进行中:
1. 在真实机器人上执行探索动作
2. 收集状态-动作-力矩数据 (q, q̇, q̈, τ)
3. 使用RLS更新参数估计 θ̂_real
4. 计算参数不确定性范围 Δθ = |θ̂_real - θ_sim|
5. 在仿真中使用 θ ∼ Uniform(θ̂_real - Δθ, θ̂_real + Δθ)
6. 训练策略对参数变化的鲁棒性
12.5.3 元学习框架下的快速适应
使用MAML(Model-Agnostic Meta-Learning)加速参数辨识: $$\theta^* = \arg\min_\theta \sum_{i=1}^N \mathcal{L}(\theta - \alpha \nabla_\theta \mathcal{L}_i(\theta))$$ 其中每个任务 $i$ 对应不同的机器人实例或工作条件。
12.5.4 主动学习策略
设计信息量最大的探索动作: $$\mathbf{u}^* = \arg\max_{\mathbf{u}} I(\boldsymbol{\theta}; \mathbf{y} | \mathbf{u}, \mathcal{D})$$ 其中 $I(\cdot;\cdot)$ 是互信息,衡量动作 $\mathbf{u}$ 对参数 $\boldsymbol{\theta}$ 的信息增益。
实践中使用近似方法:
- 不确定性采样:选择预测方差最大的区域
- 期望改进:平衡探索与利用
- 贝叶斯优化:高斯过程指导的实验设计
12.6 历史人物:Åström与1971年自适应控制理论奠基
Karl Johan Åström(1934-)是现代控制理论的奠基人之一,他在1970年代开创性地将统计方法引入控制系统设计。
主要贡献
-
自适应控制理论(1971): - 提出了自校正调节器(Self-Tuning Regulator) - 将系统辨识与控制设计统一在一个框架下 - 证明了双重控制(Dual Control)的最优性
-
最小方差控制(1970): - 针对随机系统的最优控制策略 - 奠定了预测控制的理论基础
-
确定性等价原理(1973): - 分离估计与控制的理论依据 - 简化了自适应控制器的设计
对现代机器人学的影响
Åström的工作直接影响了:
- 在线参数估计:RLS算法在机器人实时控制中的应用
- 自适应控制:处理负载变化和参数不确定性
- 随机最优控制:强化学习的理论基础之一
他的名言:"All models are wrong, but some are useful"深刻影响了系统辨识领域的哲学思考。
12.7 高级话题:神经系统辨识与物理引导学习
12.7.1 物理信息神经网络(PINN)
将物理定律作为神经网络训练的约束: $$\mathcal{L} = \mathcal{L}_{\text{data}} + \lambda \mathcal{L}_{\text{physics}}$$ 其中物理损失项: $$\mathcal{L}_{\text{physics}} = |\mathbf{M}(\mathbf{q})\ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) - \boldsymbol{\tau}|^2$$
12.7.2 神经常微分方程(Neural ODE)
将动力学建模为连续时间系统: $$\frac{d\mathbf{x}}{dt} = f_\theta(\mathbf{x}, t)$$ 其中 $f_\theta$ 是神经网络参数化的向量场。
优势:
- 内存高效的反向传播(伴随方法)
- 自然的不规则时间序列处理
- 保证的李雅普诺夫稳定性(通过构造)
12.7.3 哈密顿神经网络
保持能量守恒的神经网络架构: $$\begin{aligned} \frac{d\mathbf{q}}{dt} &= \frac{\partial H_\theta}{\partial \mathbf{p}} \\ \frac{d\mathbf{p}}{dt} &= -\frac{\partial H_\theta}{\partial \mathbf{q}} \end{aligned}$$ 其中 $H_\theta(\mathbf{q}, \mathbf{p})$ 是神经网络表示的哈密顿量。
12.7.4 高斯过程动力学模型
使用高斯过程捕获模型不确定性: $$\mathbf{f}(\mathbf{x}) \sim \mathcal{GP}(m(\mathbf{x}), k(\mathbf{x}, \mathbf{x}'))$$ 核函数选择:
- RBF核:平滑动力学假设
- Matérn核:可调节的平滑度
- 周期核:捕获循环运动模式
稀疏高斯过程用于大规模数据: $$q(\mathbf{f}) = \int p(\mathbf{f} | \mathbf{u}) q(\mathbf{u}) d\mathbf{u}$$ 其中 $\mathbf{u}$ 是诱导点。
12.7.5 可解释的混合模型
结合物理模型与数据驱动补偿: $$\boldsymbol{\tau} = \boldsymbol{\tau}_{\text{physics}}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}}, \boldsymbol{\theta}) + \boldsymbol{\tau}_{\text{residual}}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}})$$ 其中:
- $\boldsymbol{\tau}_{\text{physics}}$ 是基于第一性原理的模型
- $\boldsymbol{\tau}_{\text{residual}}$ 是神经网络学习的残差
这种方法保持了可解释性,同时提高了预测精度。
本章小结
系统辨识是连接理论模型与实际系统的关键技术。本章介绍了从经典最小二乘到现代贝叶斯方法的参数估计技术,强调了物理一致性约束的重要性。关键要点:
- 最小二乘辨识提供了计算高效的参数估计方法,但需要精心设计激励轨迹
- 贝叶斯框架不仅给出点估计,还量化了参数不确定性
- 接触参数的准确标定对仿真保真度至关重要
- 模型验证需要多角度的评估,包括预测精度、能量一致性和统计检验
- 神经网络方法为复杂系统提供了灵活的建模工具,但需要与物理知识结合
核心公式回顾:
- 线性参数化:$\mathbf{Y}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}}) \boldsymbol{\theta} = \boldsymbol{\tau}$
- 贝叶斯后验:$p(\boldsymbol{\theta} | \mathcal{D}) \propto p(\mathcal{D} | \boldsymbol{\theta}) p(\boldsymbol{\theta})$
- 库仑摩擦:$\mathbf{f}_t = -\mu |\mathbf{f}_n| \text{sign}(\mathbf{v}_t)$
- 恢复系数:$e = -v_{\text{sep}}/v_{\text{app}}$
练习题
基础题
练习 12.1:最小二乘辨识 一个2自由度机械臂的动力学方程可以写成线性参数形式 $\mathbf{Y}\boldsymbol{\theta} = \boldsymbol{\tau}$。给定100组测量数据 $(q_i, \dot{q}_i, \ddot{q}_i, \tau_i)$,如何判断激励轨迹是否充分?
Hint:检查回归矩阵 $\mathbf{Y}$ 的秩和条件数。
答案
- 构建回归矩阵 $\mathbf{Y}$ (100×10 对于2DOF机械臂)
- 计算 $\text{rank}(\mathbf{Y})$,应该等于参数个数(10)
- 计算条件数 $\kappa = \sigma_{\max}/\sigma_{\min}$
- 如果 $\kappa < 100$,激励充分;$\kappa > 1000$ 表示数值问题
- 检查 $\mathbf{Y}^T\mathbf{Y}$ 的最小特征值,应远大于机器精度
练习 12.2:递归最小二乘 推导遗忘因子 $\lambda = 0.95$ 时,历史数据的有效窗口长度(即多少步之前的数据权重降到原来的5%)。
Hint:权重按 $\lambda^k$ 指数衰减。
答案
设第k步前的数据权重为 $\lambda^k$,要求: $$\lambda^k = 0.05$$ $$k = \frac{\ln(0.05)}{\ln(0.95)} = \frac{-2.996}{-0.0513} \approx 58.4$$ 因此约59步前的数据权重降到5%,有效窗口约60个采样点。
练习 12.3:摩擦系数测量 设计一个实验测量机器人关节的粘性摩擦系数。假设摩擦模型为 $\tau_f = b\dot{q}$,其中 $b$ 是粘性摩擦系数。
Hint:考虑恒速运动时的力矩平衡。
答案
实验设计:
- 让关节以不同恒定速度 $\dot{q}_i$ 运动(如 0.1, 0.2, ..., 1.0 rad/s)
- 测量维持恒速所需的力矩 $\tau_i$
- 在恒速下,$\tau_i = b\dot{q}_i$(忽略重力)
- 用最小二乘拟合:$b = (\sum \dot{q}_i^2)^{-1} \sum \dot{q}_i \tau_i$
- 检查线性关系的R²值验证模型假设
挑战题
练习 12.4:贝叶斯参数估计 假设机器人连杆质量的先验分布为 $m \sim \mathcal{N}(1.0, 0.1^2)$ kg。经过n次测量后,后验分布为 $m \sim \mathcal{N}(\mu_n, \sigma_n^2)$。推导需要多少次独立测量才能将不确定性(标准差)降低到0.01 kg?
Hint:使用贝叶斯更新公式,假设测量噪声标准差为 $\sigma_m$。
答案
对于高斯先验和高斯似然: $$\frac{1}{\sigma_n^2} = \frac{1}{\sigma_0^2} + \frac{n}{\sigma_m^2}$$ 其中 $\sigma_0 = 0.1$,要求 $\sigma_n = 0.01$: $$\frac{1}{0.01^2} = \frac{1}{0.1^2} + \frac{n}{\sigma_m^2}$$ $$10000 = 100 + \frac{n}{\sigma_m^2}$$ $$n = 9900 \sigma_m^2$$ 如果测量噪声 $\sigma_m = 0.05$ kg,则需要 $n = 9900 \times 0.0025 = 24.75 \approx 25$ 次测量。
练习 12.5:物理一致性约束 证明对于任意刚体,其惯性张量必须满足三角不等式。提示:考虑主轴坐标系。
Hint:在主轴坐标系中,惯性张量是对角的。
答案
在主轴坐标系中,惯性张量: $$\mathbf{I} = \text{diag}(I_1, I_2, I_3)$$ 根据定义: $$I_1 = \int (y^2 + z^2) dm, \quad I_2 = \int (x^2 + z^2) dm, \quad I_3 = \int (x^2 + y^2) dm$$ 显然: $$I_1 + I_2 = \int (x^2 + y^2 + 2z^2) dm > \int (x^2 + y^2) dm = I_3$$ 同理可证其他两个不等式。物理意义:刚体不能退化为一维线段。
练习 12.6:主动学习 设计一个基于高斯过程的主动学习策略,用于机器人动力学模型的在线改进。定义获取函数(acquisition function)并说明其物理意义。
Hint:考虑预测不确定性和模型改进的权衡。
答案
获取函数设计: $$a(\mathbf{x}) = \sigma^2(\mathbf{x}) + \beta \cdot |\mu(\mathbf{x}) - f_{\text{physics}}(\mathbf{x})|$$
其中:
- $\sigma^2(\mathbf{x})$:GP预测方差(探索项)
- $|\mu(\mathbf{x}) - f_{\text{physics}}(\mathbf{x})|$:与物理模型的偏差(利用项)
- $\beta$:权衡参数
物理意义:
- 高方差区域:模型不确定,需要更多数据
- 大偏差区域:物理模型不准确,需要数据驱动补偿
- 结合两者实现高效的数据收集
实施步骤:
- 在状态空间采样候选点
- 计算每个点的获取函数值
- 选择值最大的点进行实验
- 更新GP模型
- 重复直到满足精度要求
练习 12.7:开放性思考题 在仿真到现实迁移中,是否应该让仿真参数完全匹配真实系统?讨论过度拟合真实参数可能带来的问题。
答案
不应该追求完全匹配,原因:
-
过拟合风险: - 完美匹配特定机器人,策略可能对微小变化敏感 - 失去对其他机器人的泛化能力
-
参数时变性: - 摩擦随温度、磨损变化 - 负载变化改变动力学 - 固定参数无法捕获这些变化
-
测量局限性: - 某些参数难以准确测量(如内部摩擦) - 测量本身有噪声和偏差
-
更好的方法: - 使用参数分布而非点估计 - 域随机化训练鲁棒策略 - 在线自适应补偿参数变化 - 学习对参数不敏感的策略
-
实践建议: - 核心参数(质量、长度)尽量准确 - 不确定参数(摩擦、阻尼)使用范围 - 保留10-20%的参数随机化 - 定期重新标定关键参数
常见陷阱与错误
1. 数值问题
问题:回归矩阵病态导致参数估计不稳定
症状:
- 参数估计值异常大或振荡
- 微小的数据变化导致巨大的参数变化
- 条件数 > 10^6
解决方案:
# 使用SVD进行稳健求解
U, S, Vt = np.linalg.svd(Y)
# 截断小奇异值
threshold = 1e-6 * S[0]
S_inv = np.where(S > threshold, 1/S, 0)
theta = Vt.T @ np.diag(S_inv) @ U.T @ tau
2. 物理不一致
问题:辨识得到的参数违反物理定律
常见情况:
- 负质量或负惯性
- 惯性张量非正定
- 摩擦系数 > 1(某些材料组合除外)
预防措施:
- 在优化中加入约束
- 使用参数的物理表示(如Cholesky分解保证正定性)
- 后处理投影到可行域
3. 激励不充分
问题:某些参数无法辨识或辨识精度差
诊断方法:
# 计算Fisher信息矩阵
FIM = Y.T @ Y
# 检查可辨识性
eigenvalues = np.linalg.eigvals(FIM)
if min(eigenvalues) < 1e-6:
print("参数不可辨识")
改进激励轨迹:
- 增加频率成分
- 覆盖更大的工作空间
- 包含加速和减速阶段
4. 模型偏差
问题:使用错误的模型结构
例子:
- 忽略关节柔性却用刚体模型
- 线性摩擦模型用于存在库仑摩擦的系统
- 忽略齿轮传动的非线性
检测方法:
- 残差分析(应该是白噪声)
- 交叉验证误差异常大
- 系统性的预测偏差
5. 过度自信
问题:忽略参数估计的不确定性
后果:
- 控制器设计过于激进
- 仿真与实际差异被低估
- 安全边界设置不当
正确做法:
- 报告置信区间而非点估计
- 在控制设计中考虑最坏情况
- 使用鲁棒控制方法
最佳实践检查清单
实验设计
- [ ] 激励轨迹覆盖预期工作空间
- [ ] 采样频率至少是系统带宽的10倍
- [ ] 数据采集时间足够长(至少100个时间常数)
- [ ] 包含静态和动态实验
- [ ] 多次重复实验评估可重复性
- [ ] 记录环境条件(温度、湿度)
数据预处理
- [ ] 低通滤波去除高频噪声
- [ ] 检查并去除异常值
- [ ] 时间同步多传感器数据
- [ ] 数值微分使用适当的平滑
- [ ] 数据归一化避免数值问题
参数估计
- [ ] 检查回归矩阵的条件数
- [ ] 验证物理一致性约束
- [ ] 使用多种初始值验证收敛性
- [ ] 计算参数的置信区间
- [ ] 对比不同估计方法的结果
模型验证
- [ ] 使用独立数据集验证
- [ ] 检查不同工作点的预测精度
- [ ] 分析预测误差的频谱特性
- [ ] 验证能量守恒(对于保守系统)
- [ ] 测试对扰动的响应
文档记录
- [ ] 记录所有实验条件和参数
- [ ] 保存原始数据和处理脚本
- [ ] 说明模型假设和局限性
- [ ] 提供参数的物理解释
- [ ] 包含验证结果和误差分析
实施集成
- [ ] 参数更新的版本控制
- [ ] 定期重新标定计划
- [ ] 在线监测参数漂移
- [ ] 异常参数值的报警机制
- [ ] 与控制系统的接口测试