为什么Pancake仿真很好,样机装出来却完全不是一回事?——从“理想模型”进入“真实产品”,中间到底发生了什么?
很多光学团队都经历过这样的阶段Pancake设计完成之后仿真结果很好。MTF不错畸变可控Eye Box符合要求偏振链路也已经建立Ghost分析没有发现特别严重的问题。于是开始加工镀膜采购PBS贴合波片组装显示屏。最后把第一台样机装起来。然后发现不对。亮度比仿真低左右眼颜色不一样中心清楚边缘开始发虚Eye Box某些位置突然变暗Ghost比模型严重甚至同一批零件装出来的两台样机表现都不完全一样。于是项目开始进入一个非常熟悉的循环是不是镜片加工精度不够是不是PBS有问题是不是波片贴歪了是不是显示屏批次不一致是不是装配公差太大是不是仿真软件不准这些问题都有可能。但更重要的问题其实是我们仿真的到底是不是最后真正被制造出来的那套系统仿真中的Pancake通常太“完美”了先看一个典型的设计模型。镜片理想材料-理想曲率-理想中心厚度-理想位置。膜层设计曲线。PBS设计消光比。QWP理想90°延迟。显示屏理想平面-理想发光角-理想偏振。机械结构完全同轴-没有应力-没有胶层变化-没有温度变化-没有制造批次。从数学上看这是一套非常漂亮的Pancake。问题是现实中并不存在这台Pancake。真正进入工厂以后每一个“理想参数”都会变成一个分布。第一件发生的事情镜片不是设计值而是制造值设计模型中的镜片可能是R 35.000 mm中心厚度CT 4.000 mm偏心0倾斜0°真实加工完成以后它可能变成R 35.018 mmCT 3.973 mmDecenter 0.03 mmTilt 0.06°这些数字单独看都不大甚至全部处于图纸公差范围之内。但Pancake是一个高折叠、高NA、强偏振耦合系统。多个小误差同时存在时最终看到的不是“某个参数偏了一点”。而是整个光束在后续系统中的位置、角度和偏振工作条件都发生了变化。于是一个原本只是几何公差的问题开始影响MTFDistortionEye BoxPBS入射角波片工作角度膜层光谱响应Ghost Path。这就是Pancake与很多传统镜头不同的地方。几何误差最终可能变成偏振误差和能量误差。第二件事情装配误差不是“最后加上去”的很多设计流程是先把光学设计完成然后做Tolerance最后交给结构团队。这在传统系统中非常常见。但Pancake中有一个危险装配误差会改变偏振元件的实际工作状态。例如PBS倾斜了一个很小的角度。你可能认为只是位置误差实际上它同时改变了入射角。↓膜层响应。↓s/p分量。↓消光比。↓泄漏能量。↓Ghost。再比如QWP旋转了一点它不只是一个机械角度误差。它改变的是偏振转换。所以在Pancake中Mechanical Tolerance并不只属于Mechanical。它最终会进入Optical Polarization Stray Light。第三个问题往往藏在胶里胶是一个特别容易被低估的东西。设计模型中两个元件贴合以后我们通常会给胶层一个折射率一个厚度。但真实胶层可能存在厚度不均匀固化收缩局部应力气泡楔角折射率批次变化温度相关变化。如果只是普通保护玻璃这些变化可能影响有限。但如果胶层靠近PBS/QWP/偏振膜/高折射率界面的话问题就复杂了。尤其是固化产生的机械应力它可能让原本各向同性的材料产生Stress-Induced Birefringence——应力双折射。也就是说一个原本“不应该改变偏振”的透明层现在开始改变偏振。应力双折射为什么值得特别警惕这类问题最麻烦的地方在于镜片尺寸可能完全合格表面面形可能完全合格装配位置也可能完全合格但系统偏振表现仍然不对。因为材料内部已经出现空间变化的双折射。光穿过不同区域时获得不同的相位延迟。于是原本设计好的线偏振经过这里以后可能变成轻微椭圆偏振。接下来进入PBS。有限消光比开始把这个小误差转换成泄漏。然后亮度发生变化Ghost黑位抬升以及颜色变化。所以我们又一次看到Pancake中非常典型的误差传播Mechanical Stress↓Birefringence↓Polarization Error↓PBS Leakage↓Stray Light / Ghost↓Eye Box Performance一个机械问题最后表现成了视觉问题。第四个问题设计膜层 ≠ 制造出来的膜层光学设计阶段我们经常直接调用设计得到的膜层数据。例如R(λ,θ)T(λ,θ)甚至Rs、Rp、Ts、Tp。但真正镀膜以后情况可能发生变化。原因包括膜厚误差。材料折射率误差。设备均匀性。基片曲率。沉积角度。温度。工艺批次。所以真正应该进入系统模型的不应该永远是Designed Coating。在样机阶段更重要的是Measured Coating。也就是实际测出来的膜层。尤其是Pancake。因为光不是只以一个角度经过膜层、不同视场、不同Eye Box位置、不同RGB波长等都可能对应不同入射角。因此真正需要的是R/T(λ, θ, Polarization)而不是“550 nm反射率是多少”为什么中心视场很好边缘突然不对这类问题非常常见。轴上测试不错。中心Eye Box不错。人眼稍微移动或者看向大视场亮度就开始变化颜色也开始变化Ghost开始出现。为什么因为边缘视场同时改变了很多条件入射角改变。↓膜层响应改变。↓波片等效延迟改变。↓PBS消光比改变。↓主能量与泄漏能量重新分配。所以Field不是一个单纯的几何变量。在Pancake中Field实际上同时改变GeometryCoatingPolarizationEnergy这也是为什么只看传统Spot Diagram或者MTF很难完整评价Pancake。第五个问题元件“全部合格”系统仍然可能不合格这是制造阶段最容易引发争议的问题。Lens供应商说镜片合格。PBS供应商说PBS合格。Wave Plate供应商说延迟量合格。Coating供应商说膜层合格。Display供应商说屏幕合格。机械团队说装配尺寸也在公差范围。那么为什么整机不合格答案可能非常简单因为每个供应商保证的是Component Specification。但用户最终看到的是System Performance。假设每一个元件都刚好落在公差允许范围的某一侧单独看全部Pass。组合起来以后这些误差却可能朝同一个方向累积。于是五个合格元件组成了一台不合格系统。这不是矛盾这是系统工程。公差分析真正应该分析什么传统Tolerance经常回答某个参数变化以后。MTF下降多少焦点移动多少像差增加多少这些当然仍然重要。但Pancake应该再增加几类Tolerance。Geometry Tolerance包括RadiusThicknessDecenterTiltAir Gap。关注MTF、Distortion、Eye Box。Polarization Tolerance包括QWP RetardanceFast AxisPBS ERPolarizer Orientation。关注Efficiency、Leakage、Ghost。Coating Tolerance包括R/T变化s/p响应光谱漂移角度漂移。关注RGB、Efficiency、Ghost。Assembly Tolerance包括胶层楔角应力贴合角度模组位置。关注系统耦合变化。最后还需要一个最重要的System Tolerance也就是所有误差同时发生。因为真实产品从来不会只出现一个误差。Monte Carlo为什么在这里开始变得重要假设Lens Tilt有一个分布。QWP Axis有一个分布。PBS ER有一个分布。Coating有一个分布。Display位置有一个分布。如果我们每次只改变一个参数。得到的是Sensitivity。但工厂真正制造的是这些变量随机组合后的产品。因此真正的问题应该变成生产1000台。有多少台MTF合格有多少台亮度合格有多少台Ghost合格有多少台Eye Box合格最重要的是有多少台同时全部合格这才是Yield。从“最好的一台”转向“能不能稳定制造”研发阶段经常会出现一台非常漂亮的Golden Sample。工程师花很多时间调出来。MTF很好。Ghost很好。亮度很好。然后量产。结果发现第二台不一样。第三台又不一样。于是继续调。这说明系统可能具有很高的Sensitivity。真正成熟的产品设计不应该只追求Best Performance。还应该追求Robust Performance。也就是参数发生合理变化以后。系统仍然工作。这可能意味着某个设计的理论MTF不是最高。但制造良率更高。另一个设计理论性能非常漂亮。但QWP只要偏1°就快速恶化。对于量产产品来说。前者可能才是更好的设计。仿真与样机真正应该怎样闭环这一步非常关键。传统流程经常是Design↓Simulation↓Manufacturing↓Prototype↓Test如果不符合。回去修改设计。但真正高效的工程流程应该多一步Measured Data Back to Model。也就是设计模型↓加工↓实测元件↓把实测数据重新放回系统模型↓重新仿真↓与样机测试比较↓定位差异来源例如镜片实际面形。导入。PBS实测ER曲线。导入。膜层实测R/T。导入。波片实测Retardance。导入。Display实测角度分布。导入。然后重新运行系统。如果仿真开始接近样机。说明模型正在接近现实。如果仍然不一致。再继续寻找应力。散射。装配。表面粗糙度。热效应。这才是真正意义上的Digital Prototype → Physical Prototype → Calibrated Digital Prototype。为什么这一步会改变研发效率因为没有这个闭环时样机出现Ghost。团队可能开始换PBS。换膜。换波片。重新装配。每一次都是试试看。但是。如果能够建立经过实测校准的系统模型。问题就变成Ghost G017。主要来自Cover Glass后表面反射QWP延迟偏差PBS在28°入射下ER下降。那么工程团队就不需要把所有元件重新优化。而可以直接针对最主要的误差路径。这就是系统级仿真的真正价值。不是让模型更漂亮。而是减少真实研发中的试错。一个新的工程概念Error Chain前几篇我们建立了Ghost Path。Energy Path。这一篇我建议再增加一个Error Chain——误差链因为Pancake中的很多问题都不是一个误差 → 一个结果。而是一个误差 → 改变另一个元件的工作条件 → 再产生新的误差 → 最后形成视觉问题。例如QWP安装角误差↓偏振态变化↓PBS泄漏增加↓返回能量增加↓Display Reflection增加↓Ghost进入Eye Box↓黑位抬升这就是Error Chain。以后分析样机问题。我们不应该只建立Error List。而应该建立Error Network。写在最后当Pancake仿真很好样机却不好时。不要急着得出结论“仿真不准。”也不要急着认为“某个供应商的元件有问题。”更应该先问仿真模型描述的那台Pancake和我们手里真正制造出来的这台Pancake到底差在哪里因为从设计文件到真实产品之间。发生了很多事情制造。镀膜。贴合。胶合。装配。应力。温度。批次变化。这些变化不会独立存在。它们会沿着整个光学系统继续传播。最后共同决定亮度。MTF。Ghost。颜色。Eye Box。以及最终的人眼体验。所以真正成熟的光学仿真不应该停留在“设计模型”。它最终必须不断逼近那台真正被制造出来的机器。工程师带走什么Takeaway下一次样机结果和仿真不一致时。不要马上问哪个元件错了先问三个问题模型里用了多少“理想参数”有哪些实测数据还没有回填这些制造误差之间会不会形成一条Error Chain因为单个元件合格不代表系统一定合格。而仿真与实物之间真正需要建立的不是一次验证而是一个持续校准的闭环。一个工程误区Engineering Myth误区“只要所有零件都满足图纸公差整机性能就应该满足设计要求。”事实元件公差描述的是单个参数允许变化的范围。系统性能取决于这些变化如何组合。如何耦合。以及它们是否沿着同一条Error Chain被放大。真正需要验证的不是每一个零件有没有Pass。而是这些Pass的零件组合以后整机还有多少概率Pass。