2. 数学基础回顾:线性代数、微积分、概率论

各位同学好。这一章咱们聊聊数学基础。我知道很多人一听到数学就头疼,觉得跟实际控制算法离得太远。其实不然。我在做自适应控制项目时,踩过的坑十有八九都是数学基础不牢导致的。今天我就把这三块核心内容——线性代数、微积分、概率论——用我自己的理解方式讲给你听。

2.1 线性代数:矩阵与向量空间

线性代数说白了就是研究“线性关系”的数学工具。在机器人控制里,我们天天跟矩阵打交道。比如一个机械臂的关节空间到末端执行器空间的映射,本质上就是个线性变换。

2.1.1 矩阵运算

矩阵乘法是基础中的基础。我建议你记住一个口诀:前行后列。什么意思?就是前一个矩阵的行,乘以后一个矩阵的列。

核心公式:

C = A × B
C[i][j] = Σ A[i][k] × B[k][j]

我在项目中遇到过一个问题:两个矩阵维度不匹配,结果程序跑出来全是NaN。排查了半天才发现是矩阵乘法的顺序搞反了。记住,矩阵乘法不满足交换律,A×B 和 B×A 通常不一样。

2.1.2 向量空间与基

向量空间这个概念,你想想看,其实就是一组向量的集合,这些向量可以任意线性组合。在机器人运动规划里,我们经常需要找一组基来表示关节空间。

  • 线性无关:一组向量中,任何一个都不能被其他向量线性表示
  • :能张成整个空间的最少线性无关向量组
  • 维度:基中向量的个数

我的小技巧: 判断一组向量是否线性无关,直接算行列式。行列式不为0,就是线性无关。我在做冗余机械臂逆解时,经常用这个来判断雅可比矩阵是否满秩。

2.1.3 特征值与特征向量

特征值和特征向量是线性代数的精华。为什么?因为它们揭示了矩阵的本质——矩阵作用在特征向量上,只是拉伸,不改变方向

A × v = λ × v

其中 λ 是特征值,v 是特征向量。在自适应控制中,我们经常用特征值来分析系统的稳定性。如果所有特征值的实部都小于0,系统就是稳定的。

避坑指南: 我曾经在分析一个四足机器人的步态稳定性时,忽略了特征值的虚部。结果仿真看起来稳定,实际跑起来却震荡发散。后来才发现,虚部不为0意味着系统有振荡模态,需要额外处理。

2.2 微积分:梯度与雅可比矩阵

微积分是研究变化的数学。在机器人控制里,我们关心的是:输入变化一点点,输出会怎么变? 这就是微分的核心思想。

2.2.1 梯度

梯度是一个向量,指向函数增长最快的方向。在优化问题中,我们沿着梯度的反方向走,就能找到函数的最小值——这就是梯度下降法。

梯度公式:

∇f = [∂f/∂x₁, ∂f/∂x₂, ..., ∂f/∂xₙ]ᵀ

我记得第一次做轨迹优化时,用了最简单的梯度下降法。结果收敛特别慢,迭代了几千步还没到最优。后来改用牛顿法(用到了海森矩阵),收敛速度快了十倍不止。所以,选对优化方法很重要

2.2.2 雅可比矩阵

雅可比矩阵是梯度的推广。梯度处理的是标量函数,雅可比矩阵处理的是向量函数。在机器人运动学里,雅可比矩阵把关节速度映射到末端执行器速度。

ẋ = J(q) × q̇

其中 J(q) 就是雅可比矩阵。这个公式太重要了,几乎所有的运动控制算法都离不开它。

应用场景 雅可比矩阵的作用
正运动学 关节速度 → 末端速度
逆运动学 末端速度 → 关节速度(求伪逆)
力控制 关节力矩 → 末端力(转置)
奇异性分析 判断雅可比矩阵是否满秩

避坑指南: 雅可比矩阵的伪逆计算在奇异点附近会出问题。我曾经在调试一个六轴机械臂时,遇到奇异点附近关节速度突然变得很大,差点把电机烧了。后来加了阻尼最小二乘法(DLS)才解决。

2.3 概率论:高斯分布与贝叶斯定理

概率论处理的是不确定性。在复杂环境中,传感器有噪声,模型有误差,控制有扰动。怎么处理这些不确定性?概率论给了我们一套完整的框架。

2.3.1 高斯分布

高斯分布,也叫正态分布,是概率论里最重要的分布。为什么?因为自然界很多现象都服从高斯分布,而且它数学性质好,方便计算。

高斯分布的概率密度函数:

p(x) = (1 / √(2πσ²)) × exp(-(x-μ)² / (2σ²))

其中 μ 是均值,σ² 是方差。在机器人定位里,我们通常用高斯分布来表示机器人位置的不确定性。均值就是最可能的位置,方差就是不确定度。

  • 一维高斯:用均值和方差描述
  • 多维高斯:用均值向量和协方差矩阵描述
  • 协方差矩阵:对角线是各维度的方差,非对角线是维度间的相关性

我的经验: 在卡尔曼滤波中,我们假设过程噪声和观测噪声都是高斯分布。这个假设在大多数情况下是合理的。但如果遇到非高斯噪声(比如多模态分布),卡尔曼滤波的效果就会变差。这时候可以考虑粒子滤波。

2.3.2 贝叶斯定理

贝叶斯定理是概率论里最优雅的公式之一。它告诉我们:如何根据观测数据更新我们的信念

P(A|B) = P(B|A) × P(A) / P(B)

其中:

  • P(A) 是先验概率——我们事先对A的信念
  • P(B|A) 是似然——在A成立的情况下,观测到B的概率
  • P(A|B) 是后验概率——观测到B后,对A的更新信念

说白了,贝叶斯定理就是用新数据来修正旧认知。在机器人控制里,几乎所有状态估计算法(卡尔曼滤波、粒子滤波、SLAM)都基于贝叶斯定理。

贝叶斯滤波的递归形式:

Bel(xₜ) = η × p(zₜ|xₜ) × ∫ p(xₜ|xₜ₋₁, uₜ₋₁) × Bel(xₜ₋₁) dxₜ₋₁

其中 Bel(xₜ) 是t时刻的置信度,η是归一化常数,p(zₜ|xₜ)是观测模型,p(xₜ|xₜ₋₁, uₜ₋₁)是运动模型。

避坑指南: 贝叶斯定理要求先验概率不能为0。如果先验概率为0,无论观测数据怎么支持,后验概率永远是0。我曾经在做一个目标跟踪项目时,初始先验设错了,导致滤波器永远收敛不到正确位置。后来检查了半天才发现是这个问题。

2.4 知识体系总览

下面这张图总结了本章的数学知识体系,以及它们在自适应控制中的应用关系:

数学基础在自适应控制中的应用体系 线性代数 微积分 概率论 矩阵运算 向量空间 特征值/特征向量 梯度 雅可比矩阵 海森矩阵 高斯分布 贝叶斯定理 卡尔曼滤波 自适应控制核心应用 运动学建模 轨迹优化 状态估计 参数辨识 图2-1:数学基础与自适应控制应用的关系图

这张图把三大数学模块和它们在自适应控制中的具体应用串起来了。你可以看到,线性代数支撑运动学建模,微积分支撑轨迹优化,概率论支撑状态估计和参数辨识。它们不是孤立的,而是相互配合的。

好了,数学基础就讲到这里。这些内容看起来多,但你在实际项目中用几次就熟了。记住,数学是工具,不是目的。我们学数学是为了更好地解决控制问题。


专注资料整理