第三章 数学基础(二):微分几何与曲面拟合

各位同学,欢迎来到第三章。上一章我们聊了向量、矩阵和优化,算是把工具包备齐了。这一章,我们要真正进入自由曲面的核心——微分几何和曲面拟合。

说实话,我刚入行那会儿,觉得微分几何就是数学家的玩具,跟我做光学设计有什么关系?直到有一次,我设计一个离轴三反系统,光线追迹怎么都收敛不了,折腾了两周。最后一位老前辈看了一眼我的曲面,说了一句:“你这高斯曲率都跳成什么样了,光线能追过去才怪。” 从那以后,我再也不敢小看这些“数学玩具”了。

3.1 曲面的第一基本形式

先问大家一个问题:你在曲面上量一段曲线的长度,怎么量?

你可能会说,用尺子量啊。但在数学上,我们需要一个工具来描述曲面上的“度量”。这就是第一基本形式。

假设我们有一个参数曲面 r(u, v),那么曲面上任意一点处的切向量可以表示为 rurv。曲面上一条曲线的弧长微元 ds 满足:

ds² = E du² + 2F du dv + G dv²

其中:

  • E = ru · ru
  • F = ru · rv
  • G = rv · rv

E、F、G 这三个系数,就是第一基本形式的系数。它们完全决定了曲面上的长度和角度度量。

我的经验: 在自由曲面优化时,我习惯先检查 E、F、G 是否连续。如果它们出现剧烈变化,说明曲面参数化有问题,后续的加工路径生成一定会出幺蛾子。

3.2 曲面的第二基本形式

第一基本形式告诉我们“怎么量”,第二基本形式则告诉我们“怎么弯”。

第二基本形式的系数定义为:

L = ruu · n
M = ruv · n
N = rvv · n

其中 n 是曲面的单位法向量。第二基本形式可以写成:

II = L du² + 2M du dv + N dv²

这个形式描述的是曲面在某个方向上的弯曲程度。说白了,就是曲面偏离其切平面的程度。

避坑指南: 我曾经设计过一个自由曲面,光学性能看起来完美,但一到加工环节就崩了。后来发现,曲面的第二基本形式在某条边界上发生了突变,导致刀具路径无法平滑过渡。记住:光学性能好不等于可加工!

3.3 主曲率与高斯曲率

有了第一和第二基本形式,我们就可以计算曲率了。曲率这东西,说白了就是曲面“弯”的程度。

在曲面上任意一点,沿着不同方向,弯曲程度是不一样的。其中有两个特殊方向,弯曲程度达到极值,这就是主方向,对应的曲率就是主曲率 κ1 和 κ2

主曲率可以通过求解以下方程得到:

(EG - F²)κ² - (EN + GL - 2FM)κ + (LN - M²) = 0

解这个二次方程,得到两个根,就是 κ1 和 κ2

高斯曲率 K 定义为两个主曲率的乘积:

K = κ₁ · κ₂ = (LN - M²) / (EG - F²)

高斯曲率是一个非常重要的量。为什么?因为它只依赖于第一基本形式,与曲面的参数化方式无关。这就是著名的“绝妙定理”。

核心要点: 在自由曲面设计中,我通常用高斯曲率来判断曲面是否“可展”。如果 K = 0,曲面是可展曲面,可以用平板材料直接弯曲成型。如果 K ≠ 0,就需要用模具或者数控加工了。

平均曲率 H 则是两个主曲率的平均值:

H = (κ₁ + κ₂) / 2 = (EN + GL - 2FM) / 2(EG - F²)

平均曲率在光学设计中也很重要。比如,反射镜的像散就与平均曲率的变化有关。

3.4 曲面拟合与插值算法

好了,理论讲完了。现在问题来了:我们设计自由曲面时,通常是用一系列离散的点来描述曲面形状的。怎么从这些离散点得到连续的曲面?这就涉及到曲面拟合。

我常用的方法有两种:最小二乘法和径向基函数。

3.4.1 最小二乘法

最小二乘法大家应该不陌生。它的核心思想是:找一个曲面,使得所有数据点到这个曲面的距离的平方和最小。

假设我们用多项式基函数来拟合:

z(x, y) = a₀ + a₁x + a₂y + a₃x² + a₄xy + a₅y² + ...

那么问题就转化为求解系数向量 a,使得:

min ||Φa - z||²

其中 Φ 是基函数矩阵,z 是数据点的高度值。这个问题的解是:

a = (ΦᵀΦ)⁻¹Φᵀz
我的建议: 用最小二乘法时,基函数的选择很关键。多项式阶数太低,拟合精度不够;阶数太高,容易过拟合,而且曲面会出现不必要的波动。我个人习惯先用 5 阶多项式试试,然后根据残差分析调整。

3.4.2 径向基函数

最小二乘法适合拟合比较平滑的曲面。但如果数据点分布不均匀,或者曲面局部变化剧烈,最小二乘法就不太够用了。这时候,我推荐用径向基函数。

径向基函数的形式是:

z(x, y) = Σᵢ wᵢ φ(||(x, y) - (xᵢ, yᵢ)||)

其中 φ 是径向基函数,常用的有:

  • 高斯函数:φ(r) = exp(-ε²r²)
  • 多二次函数:φ(r) = √(r² + c²)
  • 薄板样条:φ(r) = r² log(r)

权重 wᵢ 通过求解线性方程组得到:

Φw = z

其中 Φij = φ(||pi - pj||)。

避坑指南: 我曾经用径向基函数拟合一个非球面,结果曲面出现了奇怪的“鼓包”。查了半天才发现,是形状参数 ε 选得太大了。径向基函数的参数调优,真的需要耐心。我现在的做法是:先用交叉验证选参数,再可视化检查曲面形状。

3.5 知识体系总览

为了让大家更直观地理解本章的知识结构,我画了一张图:

第三章:微分几何与曲面拟合知识体系 微分几何基础 曲面拟合与插值 第一基本形式 第二基本形式 主曲率 高斯曲率 / 平均曲率 最小二乘法 径向基函数 多项式拟合 高斯 / 多二次 / 样条 应用:自由曲面光学设计 → 加工落地 核心逻辑:从曲面的数学描述 → 离散数据拟合 → 可加工的连续曲面 K = κ₁·κ₂ = (LN - M²) / (EG - F²) | min ||Φa - z||² | z(x,y) = Σ wᵢ φ(||p - pᵢ||)

3.6 本章小结

这一章的内容确实有点硬核。但请相信我,这些数学工具是自由曲面设计的基石。

  • 第一基本形式:告诉你曲面上的长度和角度怎么算
  • 第二基本形式:告诉你曲面怎么弯曲
  • 主曲率和高斯曲率:判断曲面是否可加工的关键指标
  • 最小二乘法:适合平滑曲面的全局拟合
  • 径向基函数:适合局部变化剧烈的曲面拟合

嗯,我记得有一次在项目评审会上,一个年轻工程师拿着他的设计报告,高斯曲率图上一片红。我问他:“你这个曲面,打算怎么加工?” 他愣住了。所以,学完这一章,我希望大家能养成一个习惯:设计完曲面,先看看它的曲率分布,再想想怎么加工。

下一章,我们会把这些数学工具真正用起来,开始讲自由曲面的参数化建模。到时候,你会发现今天的苦功夫都是值得的。

课后练习:

  1. 给定一个球面参数方程 r(θ, φ) = (R sinθ cosφ, R sinθ sinφ, R cosθ),计算它的第一、第二基本形式系数,以及高斯曲率。
  2. 用 Python 实现一个最小二乘法曲面拟合函数,输入是 (x, y, z) 数据点,输出是拟合曲面的系数。
  3. 思考:为什么高斯曲率为零的曲面可以用平板材料弯曲成型?

公众号:蓝海资料掘金营,微信deep3321