4. 确定性抛光技术:抛光原理与 Preston 方程、抛光模设计与材料选择、驻留时间算法与实现、抛光路径规划策略

确定性抛光,说白了就是把「磨」这件事从玄学变成科学。我早年刚入行时,老师傅们抛光全靠手感——「多磨两下」、「这里再蹭蹭」。结果呢?同一批镜片,十片十个样。后来接触了确定性抛光,才明白核心就四个字:可控、可算。

这一章我们重点拆解四个环节:抛光原理与 Preston 方程、抛光模设计与材料选择、驻留时间算法与实现、抛光路径规划策略。每个环节都是坑,我一个个说。

4.1 抛光原理与 Preston 方程

抛光的本质是什么?是材料去除。你想想看,抛光模压在镜片上,带着磨料相对运动,表面材料一层层被带走。这个过程能不能定量描述?能。1927 年 Preston 给出了一个经验方程:

MRR = K · P · V

其中:

  • MRR:材料去除率(单位时间去除深度)
  • K:Preston 常数(与磨料、工件材料、环境有关)
  • P:抛光压力(单位面积上的正压力)
  • V:相对速度(抛光模与工件表面的瞬时相对速度)

这个方程简单到让人怀疑——真的就这么回事?我在项目中遇到过,刚开始用这个公式算去除量,结果实际抛光后偏差很大。后来发现,K 值不是常数,它受温度、磨料浓度、抛光垫状态影响很大。所以 Preston 方程只能作为基础框架,实际工程中必须做标定实验。

核心理解:Preston 方程告诉我们,要控制去除量,要么调压力,要么调速度。但两者都有物理极限——压力太大伤表面,速度太快温升失控。

还有一个容易忽略的点:Preston 方程是线性模型,它假设去除率与压力、速度成正比。但实际抛光中,当压力超过某个阈值,去除率会非线性增长。嗯,这里要注意,做高精度非球面时,压力最好控制在 0.1~0.5 kgf/cm² 范围内,超出这个区间,线性假设就靠不住了。

4.2 抛光模设计与材料选择

抛光模就是那个「磨头」。它的形状、硬度、材料,直接决定了抛光效果。我见过不少工程师,花大价钱买设备,却随便买个抛光模凑合——这是典型的「好马配破鞍」。

抛光模设计要考虑三个维度:

  1. 形状匹配度:抛光模工作面必须与非球面面形吻合。初始贴合度越高,抛光效率越高。
  2. 硬度与弹性:太硬容易产生高频误差,太软则去除效率低、边缘效应严重。
  3. 耐磨性:抛光模本身也会磨损,磨损后形状变化,去除函数就变了。

常用抛光模材料对比:

材料类型 硬度 弹性模量 耐磨性 适用场景
聚氨酯 中 中 好 粗抛、中抛
沥青 软 低 差 精抛、超光滑表面
聚四氟乙烯 软 低 中 特殊材料抛光
金属基复合 硬 高 好 高去除率、粗加工

我个人习惯,做非球面精抛时,首选沥青抛光模。虽然它耐磨性差,但流动性好,能自适应贴合非球面。我曾经用聚氨酯模抛一个陡峭的非球面,结果边缘始终抛不到——因为模子太硬,贴不上去。换成沥青模后,问题迎刃而解。

小技巧:沥青抛光模使用前,最好在 60~80°C 下预热 30 分钟,让它充分软化,再压合到镜片上成型。冷却后形状保持度会好很多。

4.3 驻留时间算法与实现

驻留时间算法,是确定性抛光的「大脑」。它的逻辑很简单:已知当前面形误差,已知抛光模的去除函数,求抛光模在每个位置需要停留多久。

数学上,这是一个卷积反问题:

E(x,y) = R(x,y) * T(x,y)

其中:

  • E(x,y):面形误差分布(测量得到)
  • R(x,y):去除函数(单位时间的材料去除分布)
  • T(x,y):驻留时间分布(待求解)
  • *:二维卷积运算

求解 T(x,y) 就是反卷积。常用的方法有三种:

  1. 傅里叶变换法:将卷积转换到频域,直接相除。速度快,但对噪声敏感。
  2. 迭代法:如 Richardson-Lucy 算法,逐步逼近最优解。鲁棒性好,但计算量大。
  3. 正则化法:在反卷积中加入平滑约束,抑制高频噪声。工程中最常用。

我给你们看一段我常用的迭代法核心代码(Python 伪代码):

def compute_dwell_time(error_map, removal_function, iterations=100):
    # error_map: 面形误差矩阵
    # removal_function: 去除函数矩阵
    # 初始化驻留时间为均匀分布
    dwell = np.ones_like(error_map)
    for i in range(iterations):
        # 正向计算:当前驻留时间产生的去除量
        predicted = convolve2d(dwell, removal_function, mode='same')
        # 计算残差
        residual = error_map - predicted
        # 更新驻留时间
        dwell = dwell * (convolve2d(residual, removal_function[::-1, ::-1], mode='same') / predicted + 1)
        # 限制驻留时间非负
        dwell = np.maximum(dwell, 0)
    return dwell

避坑指南:我曾经在迭代法中忘记加非负约束,结果算出来的驻留时间出现负值——这在物理上意味着「要往回长材料」,显然不可能。所以每次迭代后一定要做 clamp 操作。

实际工程中,驻留时间算法还要考虑机床的加减速特性。算出来的驻留时间如果变化太剧烈,机床跟不上,实际抛光效果会大打折扣。我一般会在算法输出后加一个低通滤波,平滑掉高频抖动。

4.4 抛光路径规划策略

路径规划,决定了抛光模怎么走。路径不同,去除效果、加工效率、表面质量都不同。常见的路径类型有:

  • 光栅扫描:沿 X 或 Y 方向往复运动。简单、易实现,但会在路径转折处产生驻留误差。
  • 螺旋扫描:从中心向外螺旋运动。适合圆形工件,但中心区域速度变化大。
  • 伪随机路径:路径随机分布,避免周期性痕迹。适合超精密抛光。
  • 自适应路径:根据面形误差分布动态调整路径密度。误差大的区域多走几遍。

我个人的经验是:粗抛用光栅,精抛用螺旋,超精抛用伪随机。为什么?光栅扫描效率高,但会留下明显的「栅格纹」;螺旋扫描能消除方向性痕迹,但中心区域容易过抛;伪随机路径最均匀,但编程复杂、加工时间长。

下面这张图展示了三种路径的对比:

三种典型抛光路径对比 光栅扫描 效率高,有栅格纹 螺旋扫描 ← 上一章 📖 返回目录 下一章 →