4、XY多项式基础:二元多项式的一般形式与截断阶次选择

好,咱们进入第四讲。前面聊了自由曲面怎么从球面一步步演变过来,现在该碰一碰最核心的数学工具了——XY多项式。

说实话,我刚入行那会儿,看到一长串多项式就头疼。总觉得这东西是数学家搞出来的,跟工程没啥关系。后来做第一个自由曲面照明项目,被导师按着头把每一项的系数调了一遍,才真正明白:XY多项式就是自由曲面的“基因编码”。你选哪些项、截断到几阶,直接决定了曲面长什么样、能不能加工。

4.1 二元多项式的一般形式

先看最通用的写法。一个二元多项式,说白了就是x和y两个变量的幂次组合,再配上系数:

Z(x, y) = Σ C_{ij} · x^i · y^j

这里i和j都是非负整数,C_{ij}就是我们要优化的系数。i+j的值决定了这一项属于“几阶”。

举个例子:

  • 0阶项:C_{00} —— 常数项,代表曲面的基准高度
  • 1阶项:C_{10}·x + C_{01}·y —— 倾斜项,控制曲面在x和y方向的斜率
  • 2阶项:C_{20}·x² + C_{11}·xy + C_{02}·y² —— 二次曲面,球面、柱面、双曲面都藏在这里
  • 3阶及以上:高阶像差校正项,自由曲面的灵魂所在

关键认知:每一项的物理意义都很明确。C_{20}和C_{02}决定两个方向的曲率,C_{11}控制像散,高阶项则对应各种像差。不是瞎选的。

我习惯把多项式写成展开形式,这样调试时心里有数:

Z(x,y) = C00
       + C10·x + C01·y
       + C20·x² + C11·xy + C02·y²
       + C30·x³ + C21·x²y + C12·xy² + C03·y³
       + C40·x⁴ + C31·x³y + C22·x²y² + C13·xy³ + C04·y⁴
       + ...

看到规律了吗?每一阶的项数 = 阶数 + 1。所以N阶完整多项式,总项数是:

总项数 = (N+1)(N+2)/2

比如4阶多项式,总项数 = 5×6/2 = 15项。这个公式你记一下,后面选阶次时经常要用。

4.2 截断阶次的选择策略

问题来了:到底取到几阶合适?

我见过不少新手,一上来就取到10阶、12阶,觉得项越多越灵活。结果呢?优化出来的曲面像心电图一样剧烈抖动,加工出来全是废品。

为什么会这样? 因为高阶项对局部变化太敏感了。你想想看,x⁸在|x|>1时增长极快,稍微调一点系数,边缘就翘上天了。

我个人总结了一套选阶原则,分享给你:

应用场景 推荐阶次 典型项数 说明
简单照明(均匀光斑) 4~6阶 15~28 够用,加工友好
成像系统(像差校正) 6~8阶 28~45 平衡性能与复杂度
高端投影/光刻 8~10阶 45~66 需要精细控制
非对称自由曲面 6~8阶 28~45 注意奇偶项搭配

我的经验:从4阶开始试,逐步往上加。如果4阶就能满足性能,别贪心。每加一阶,优化时间翻倍,加工风险也翻倍。

4.3 奇偶项与对称性

这里有个坑,我踩过好几次。

如果你的系统是旋转对称的(比如传统球面透镜),那只需要偶次项:x²、y²、x⁴、y⁴、x²y²……奇次项(x、y、x³、y³)会破坏对称性。

但自由曲面往往就是靠打破对称性来校正像差的。所以:

  • 旋转对称系统:只保留偶次项,i+j为偶数
  • 双面对称系统:保留所有偶次项 + 部分奇次项(如x²y、xy²)
  • 完全非对称:所有项都可以用,但要小心控制

我曾经在一个投影系统里,为了追求极致性能,把奇次项全开了。结果曲面在x方向出现奇怪的“波浪”,怎么调都调不平。后来发现是C_{30}和C_{12}互相耦合,产生了非物理的振荡。从那以后,我养成了一个习惯:先关掉所有奇次项,优化一轮,再按需逐个打开。

4.4 归一化与数值稳定性

还有一个容易被忽略的问题:数值稳定性。

当你的曲面口径是100mm时,x⁴项的值是100⁴ = 1e8。而C_{40}系数可能只有1e-8。两个极端数值相乘,在计算机里很容易丢精度。

我的做法是:对坐标做归一化。

u = x / R
v = y / R

其中R是曲面的半口径。这样u和v都在[-1, 1]之间,所有项的值都在可控范围内。系数C_{ij}的量级也差不多,优化器跑起来舒服多了。

归一化后的多项式形式不变,只是把x、y换成u、v:

Z(u, v) = Σ C_{ij} · u^i · v^j

嗯,这里要注意:归一化后,系数的物理意义变了。C_{20}不再直接代表曲率,而是归一化后的曲率系数。最终计算实际矢高时,要记得乘回来。

4.5 知识结构图

下面这张图帮你理清本章的核心逻辑:

XY多项式知识结构 XY多项式 一般形式 Z=ΣC_{ij}·x^i·y^j 截断阶次选择 奇偶项与对称性 0阶:常数项 C00 1阶:倾斜项 C10·x + C01·y 2阶:二次曲面项 3阶+:高阶像差校正项 4~6阶:照明系统 6~8阶:成像系统 8~10阶:高端应用 从低阶开始,逐步增加 旋转对称:仅偶次项 双面对称:偶次+部分奇次 完全非对称:全项可用 注意奇偶耦合振荡 核心原则:够用就好,宁低勿高,归一化保精度

4.6 实战建议

最后,给你几条实在的建议:

  1. 从4阶起步。不管什么系统,先用4阶跑一轮,看看性能瓶颈在哪。
  2. 逐阶增加。每次只加一阶,对比性能提升。如果提升不到5%,就别加了。
  3. 监控曲面梯度。高阶项多了,曲面梯度会剧烈变化。梯度超过加工极限(通常0.1~0.3 rad),立刻砍项。
  4. 归一化是必须的。不归一化,优化器跑出来的系数可能差几个数量级,数值稳定性堪忧。
  5. 奇次项慎用。除非系统明确需要非对称性,否则先关掉。

我个人的工作流:先写一个脚本,自动生成从4阶到10阶的多项式模板。优化时一键切换,对比结果。这样既快又不会漏掉最优解。

好了,XY多项式的基础就聊到这。记住:多项式是工具,不是目的。选对阶次、控好系数,才能做出真正可用的自由曲面。