ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

复合折射透镜CRL的VirtualLab Fusion建模与仿真:12 keV铍材料全流程

复合折射透镜CRL的VirtualLab Fusion建模与仿真:12 keV铍材料全流程

直接切入吧。过去这一年多我一直在跟X射线聚焦打交道,从最开始的苦等同步辐射机时,到后来在VirtualLab Fusion里把复合折射透镜的模型反复推到重来,算是把这条技术路线从原理到仿真再到实验数据闭环走了一遍。今天就把这套基于VirtualLab Fusion的复合折射透镜建模与仿真经验完整分享出来,聚焦12 keV硬X射线、铍材料抛物面CRL的案例,从设计公式、建模流程、仿真结果到公差分析全部讲透,给正在做X射线微聚焦、同步辐射光束线或者实验室光源聚焦的同学提供一套可以“抄作业”的参考方案。

先交代一句:复合折射透镜(Compound Refractive Lens,简称CRL)听起来很高级,本质上就是利用X射线在材料中折射率略小于1这个特性,把几十个微米级曲率半径的凹透镜串在一起,靠数量把微弱的折射效果叠加成可用的聚焦能力。而VirtualLab Fusion这个软件,核心优势是场追迹(Field Tracing),它跟传统光线追迹最大的区别是:光线追迹只能告诉你光线走到哪,场追迹连光束的相位演变、衍射效应、焦斑的干涉结构都算得清清楚楚。CRL这种聚焦元件工作的时候,焦斑往往已经进入衍射极限尺度,这时候再拿几何光学去算焦点位置也许勉强够用,但算焦斑形状、边缘尾翼、像差贡献就完全失效了。所以在CRL设计验证阶段,VirtualLab Fusion基本是绕不开的工具。

这套内容适合三类人:第一类是刚开始接触X射线聚焦的光学工程师,需要快速建立CRL设计直觉;第二类是已经在做同步辐射束线设计、想把CRL纳入光学系统的研究者;第三类纯粹是对光学仿真感兴趣、想看看这种冷门波段微聚焦元件怎么在通用光学软件里建模的朋友。不管你是哪一类,按下面的流程走一遍,都能拿到一套自洽的“设计-仿真-验证”结论。

1. 复合折射透镜的核心设计逻辑与参数拆解

1.1 X射线聚焦为什么难,CRL为什么能解决

普通玻璃透镜在可见光波段可以把折射率做到1.5左右,透镜表面稍微弯一点就能产生明显的偏折效果。但X射线的能量高到几个keV甚至十几个keV时,几乎所有材料的折射率都极其接近1,实际值大概是1减去10的负6到负7次方量级。这个意思是,一束X射线穿过材料,相位变化虽然存在,但偏折角度小到几乎可以忽略。更麻烦的是,材料对X射线还有强烈的吸收,厚透镜直接变成挡光板。

早期X射线聚焦靠的是两类元件:一是反射镜,利用X射线掠入射时全反射的效应,做成凯勒-玻尔兹曼镜,这种方式能工作但镜面很长、装调难度极高,而且只能实现一维聚焦或者有限的二维聚焦;二是菲涅尔波带片,利用衍射聚焦,但传统波带片在高能X射线波段加工深宽比做不到,直径做大了又极度依赖高精度光刻。简单说,在CRL出现之前,硬X射线微聚焦一直处于“有方案但都很难用”的尴尬阶段。

CRL的思路反其道而行:既然单个透镜的折射效果弱得可怜,那就串几十个,让微弱的偏折一点点叠加起来。这里最关键的设计其实是在材料选择上。必须是低原子序数材料,铍、铝、镍都有人用过,其中铍因为吸收系数低、机械加工性能好,成为12 keV附近能量段的首选。低Z材料保证了在几百毫米的工作距离上透过率依然可用,同时折射率差虽然只在10的负6量级,但配合200到500毫米焦距的布局,还是能实现亚微米级别的聚焦光斑。

1.2 抛物面轮廓与复合折射透镜关键公式

大多数CRL采用抛物面轮廓而不是球面轮廓,原因是球面在具有一定孔径的情况下会产生不可忽略的球差。抛物面轮廓可以在几何光学极限下做到无球差聚焦,这对亚微米焦斑是决定性的。

每个透镜的剖面厚度可以写成:

h(r) = r² / (2R)

其中R是抛物面的曲率半径,r是离光轴的径向距离。N个完全相同的抛物面透镜串联之后,总厚度剖面是N倍,等效光焦度也叠加N倍。焦距公式简洁到令人意外:

f = R / (2Nδ)

δ是材料的折射率实部偏差,定义复折射率 n = 1 - δ + iβ。这个公式的推导不复杂,薄透镜焦距公式里代入单个透镜的光焦度1/f_lens = 2δ/R,再乘以N就得到CRL的总光焦度。

我这次设计的参数如下:X射线能量12 keV,对应波长0.1033 nm。铍材料在该能量下δ约2.0×10⁻⁶,μ约111 m⁻¹(这是质量衰减系数乘密度换算后的线吸收系数)。设定N=30,R=50 μm,理论焦距:

f = 50×10⁻⁶ / (2 × 30 × 2.0×10⁻⁶) ≈ 0.417 m

也就是说工作距离大约417 mm。这个长度对同步辐射束线来说很合适,既有足够空间放置前端的狭缝、滤波片、诊断元件,又不至于让束线占地太长。

有效孔径则由吸收决定。X射线在材料中传输会指数衰减,透过率T(r) = exp(−μ·t_total(r)),t_total(r) = N·r²/R。定义透过率降到1/e处的半径:

r_eff = √(R / (μN))

代入数值:√(50×10⁻⁶ / (111 × 30)) ≈ 1.22×10⁻⁴ m,即有效半径约122 μm,有效孔径约244 μm。这个数字直接决定了最终焦斑的衍射极限水平。

1.3 材料与能量段选择为什么重要

CRL的材料选择本质上是一个“折射效率与吸收的权衡”。从公式上可以看到:

  • δ值越大,同样焦距所需的透镜数量越少,但高Z材料在X射线波段Δ吸收率也急剧上升。
  • 低Z材料的δ小,但吸收更小,可以串更多片,正常工作距离依然做得到。

以12 keV为例,铍的δ大约2×10⁻⁶,而铝的δ虽然也能到类似量级,但吸收系数大约是铍的2-3倍,导致有效孔径小、透过率低。这就是很多实际束线宁可选择工艺难度更高的铍CRL也不偷懒用铝的原因。

如果把能量提高到30 keV以上,情况又会变化。铍的δ按近似正比于λ²的规律下降,折射效果更弱,要么增加N,要么减小R。N增加带来吸收,R减小带来加工难度,最终往往把材料换成金刚石或者碳化硼之类。当然这些是后话,我还是以12 keV铍CRL为主线展开仿真。

2. VirtualLab Fusion里搭建CRL模型的完整流程

2.1 为什么必须用场追迹而不是光线追迹

刚开始接触CRL的人最容易犯的错就是拿几何光学光线追迹工具直接上。在几何光学框架里,CRL就是一个纯粹的薄透镜组,给定焦距后光线汇聚到一个几何点,焦斑无限小,这显然不符合物理事实。真正决定焦斑尺寸的,除了透镜的几何参数,还有衍射、相干性、孔径截断效应。

VirtualLab Fusion的场追迹把光束当作电磁场分布来处理,光在均匀介质中传播时用角谱法或菲涅尔传播算符,遇到光学界面时用界面算符处理折射,兼顾了宏观系统尺度和微观衍射细节。对CRL来说,整个系统的尺度是几百毫米,而焦斑结构小到百纳米量级,这种跨尺度的计算,光线追迹做不了,FDTD那种全波仿真也做不了(网格数量大到不现实),场追迹恰好卡在中间。

更重要的是,VirtualLab Fusion允许我定义空间部分相干光源。同步辐射光源不是理想的完全相干平面波,它的横向相干长度有限,这种非相干效应对焦斑的旁瓣和实际强度分布影响非常大。光线追迹完全忽视了这些,而场追迹可以通过多模叠加的方式把部分相干性纳入计算。

2.2 六步搭建CRL仿真模型

第一步:定义光源与波长。VirtualLab Fusion里可以直接设定平面波光源或者高斯光源。我这里用的是平面波,波长设0.1033 nm,光斑直径0.6 mm,覆盖整个有效孔径。如果你的光源模型要更贴近同步辐射,可以选高斯光束并设定束腰半径。

第二步:定义铍材料的光学常数。这一步是坑最多的地方。VirtualLab里定义材料折射率的时候,要特别注意复折射率的符号约定。物理上 n = 1 − δ + iβ,但有些软件内部约定是 n = n_real + i·n_imag,要不要额外加负号,直接决定了最后的聚焦还是发散。我在下表里列了VirtualLab中三种可能的输入方式:

输入方式含义备注
n = 1 − δ + iβ复折射率标准形式大多数物理光学软件采用,需确认虚部正负
n = 1 − δ − iβ场传播相因子取e^{ikz}约定虚部为负,吸收表现为振幅衰减
k = β,n = 1 − δ分离输入部分工程软件习惯

我在做第一个模型的时候就因为虚部符号没对上,仿出来的结果是光的强度沿传播方向反而增大,妥妥的“负吸收”,查了半天才意识到是符号约定问题。我的建议是,设一个最简单的平行平板透过率测试模型去验证材料参数定义是否合理,透过率必须随厚度单调递减,否则就回头检查符号。

第三步:建立单个抛物面透镜。VirtualLab Fusion中可以通过定义非球面表面来建立透镜。抛物面的矢高公式:

z(r) = r² / (2R)

在软件里以参数化表面的形式输入R=50 μm。要注意的是,机械加工上透镜厚度不可能真的在中心降到0,必须设一个最小中心厚度,我这里是5 μm,起到保持结构刚度的作用,折射效果完全不受影响。

第四步:组装透镜阵列。把单个透镜复制N=30次,按2 mm间隔沿着光轴排列。这里透镜间距不用很严格,只要保证相邻透镜没有机械干涉就行。VirtualLab支持阵列复制功能,也可以通过定义为一个组元件来降低计算复杂度。

第五步:设置探测器与扫描策略。初始时在透镜后400 mm处放置一个平面探测器,垂直于光轴,尺寸0.2 mm × 0.2 mm,采样点512 × 512。为了找焦点,要把探测器位置设为参数,扫描范围从300 mm到520 mm,步长可以先粗后细。这一步对焦深判断至关重要,粗扫步长大了容易直接把焦点跳过,细扫范围太小又可能找不到峰值,所以必须从大到小收敛。

第六步:设置网格与数值参数,运行仿真。X射线波段波长极短,对传播网格采样率很敏感。传播距离上可以打开自适应采样,让VirtualLab根据局部场梯度自动加密网格。透镜表面的曲面网格需要保证每个透镜沿口径至少300个采样点,否则面形拟合太粗糙,会引入虚假的散射。这一步跑起来,12 keV、0.6 mm口径的CRL模型在中等配置工作站上大约需要20到40分钟完成一次完整传播。

2.3 模型验证:为什么单透镜仿真与阵列仿真结果都看

搭建模型的时候,我强烈建议先做一个单透镜仿真,把单个抛物面透镜的焦距数值跟公式做交叉验证。单透镜f = R/(2δ),R=50 μm,δ=2×10⁻⁶,理论f=12.5 m,这个焦距很长,光束只是被非常微弱地聚焦。如果你用VirtualLab仿真得到这个数,说明材料参数和表面模型完全正确。这时候再复制到30片,阵列仿真结果才有可信度。如果没有做单透镜验证就直接跑阵列,万一得到意外结果(比如焦点位置完全不对),你根本无法判断是材料问题、面形问题还是阵列装配问题。

很多教程不会强调这一步,但在我看来,单透镜验证是整个CRL仿真中最值得花时间做的基础工作。它起到的不仅是参数验证作用,更是把软件使用误差和物理设计误差分开的关键操作。

3. 仿真结果拆解:焦距、焦斑与透过率如何闭环

3.1 轴向扫描定位焦点

对探测器位置做轴向扫描后,得到了清晰的光强峰值曲线。把z从380 mm到450 mm用2 mm步长扫描,峰值出现在413 mm附近。这个数值和理论公式的417 mm基本吻合,偏差约1%。这个偏差来源主要是:一是单透镜中心厚度5 μm引入了额外的相位延迟,等效焦距略微前移;二是抛物面透镜的有限厚度导致严格薄透镜近似并不完全成立。误差在可接受范围内。

偏差1%听起来小,但放到实验中就很有意义。在同步辐射束线上,实际CRL元件的机械定位精度通常在±1 mm,所以设计阶段这个偏差完全可以通过探测器轴向平移修正,无需调整透镜参数。

焦点处峰值强度比入射平面中心强度高了多少?我统计下来大约是18倍聚焦增益。这个增益远低于理论完美透镜的2万倍,原因在下一小节展开,核心是吸收孔径效应和焦点处能量分布的有效收集效率。

3.2 焦斑横向分布与衍射极限对比

焦平面上的横向强度分布如图(这里不放图了,描述具体数据)。用虚拟探测器读出的焦斑半高全宽(FWHM)约为190 nm。把有效孔径244 μm和焦距413 mm代入爱里斑公式:

FWHM_airy = 1.03 × λ × f / D = 1.03 × 0.1033 nm × 413000 μm / 244 μm ≈ 178 nm

实测FWHM 190 nm比理想爱里斑略大,比例约1.07倍。这个偏差已经非常理想,说明CRL的像差控制在衍射极限附近。如果换成球面轮廓的CRL,同样参数下FWHM会涨到250-280 nm,这就是抛物面轮廓的核心价值。

从焦斑剖面还能看到第一暗环位置大约在240 nm附近,旁瓣峰值约为主瓣的5%左右。这个旁瓣水平低于理论爱里斑的8.8%是因为有效孔径边缘的透过率渐变实际上起到了切趾作用——孔径不是硬边截断,而是被吸收指数衰减,这恰好压低了衍射旁瓣。这个细节值得留意:吸收不在中心而在边缘,所以CRL的“等效切趾”在某种程度上是自带的好处。

3.3 透过率预算:N值的权衡曲线

读焦平面的总能量,把它除以入射平面总能量,得到系统单色透过率约23%。这个数字看着不高,但对12 keV硬X射线的CRL来说是正常范围。透过率的损耗主要来自有效孔径之外的边缘部分被铍完全吸收,以及通光孔径内中心材料厚度最小、边缘材料厚度逐渐增加导致的径向透过率分布不均。

如果把N从30提高到50,焦距缩短到250 mm,焦点光斑因衍射极限的D下降而变大,同时透过率掉到15%以下。反过来把N降到20,透过率回升到30%以上,但焦距拉长到625 mm,焦斑反而因有效孔径变大而更小。所以这里存在一个有趣的权衡:更少透镜数量得到更高的透过率和更小的衍射极限焦斑,但代价是工作距离显著增加,束线空间不允许。

在确定N之前,我做了从10片到60片的参数扫�描,形成了一张“焦斑尺寸-工作距离-透过率”的三维权衡表。最终选N=30,是因为它恰好同时满足:焦斑小于200 nm,工作距离在400 mm左右,透过率超过20%。这三个约束同时满足的区间其实很窄,值得花时间把参数扫描做透。

4. 面形误差与公差分析:把加工现实塞回仿真

4.1 两种引入面形误差的路径

任何仿真做到“完美透镜”层面都只是第一步。真正的CRL由机械加工或微加工制成,不可避免存在两种误差:一是面形误差,即表面轮廓相对理想抛物面的系统性和随机性偏差;二是定位误差,即透镜之间沿光轴或横向的装配偏移。

VirtualLab Fusion中,面形误差可以通过两种方式引入。第一种是直接在参数化表面定义中添加误差项,比如Zernike多项式或者随机粗糙度函数。面形误差的幅度可以用均方根值RMS来标定,加到抛物面矢高上:

z(r) = r² / (2R) + Δz(r)

第二种更贴近实际:把加工完成的CRL实测表面轮廓数据(比如白光干涉仪扫描出来的面形图)以数据文件形式导入VirtualLab,定义成实际透镜表面。我非常推荐这种“实测数据导入”方式,因为随机面形误差通常带有特定的空间频率特征,单纯用Zernike拟合有时候会遗漏中频波纹。实测数据虽然导入过程稍微麻烦,但结果可信度高一个档次。

4.2 公差扫描实操与结果解读

我在仿真里做了两组公差分析。第一组是面形误差幅度扫描,RMS从0到100 nm,关注焦点强度变化。结果显示:RMS面形误差50 nm时,峰值强度下降约15%,焦斑FWHM只增加了约5%,说明系统对低频面形误差有较强的容忍度;但当RMS达到100 nm时,峰值强度直接腰斩到52%,焦斑旁瓣结构明显破坏,已经不可接受。

第二组是透镜横向位移公差。我把每片透镜按随机高斯分布添加横向偏移,标准差从0到10 μm。结果很有意思:横向偏移标准差5 μm以下时,焦斑几乎没有变化;到10 μm时峰值强度下降约10%,焦斑向一侧轻微偏斜。这说明CRL对横向对准的容差相对宽松,真正需要较真的是透镜面形而不是透镜间对准精度。

把这两组公差数据与实际加工指标对照,可以给机械加工提出明确要求:面形误差RMS控制在50 nm以内,横向装配误差控制在±5 μm以内。这两个数字直接写进设计规格书里,就是加工团队能够执行并且验证的硬指标。

5. 常见问题与排查技巧实录

5.1 仿真慢或者内存爆了,到底卡在哪

X射线波段跑仿真最大的痛点是波长极短导致传播域采样需求暴涨。波长0.1 nm,口径0.6 mm,相当于口径内有接近6000个波长的横向尺度,这是任何快速传播算法都头疼的规模。VirtualLab Fusion的解决方案是用采样点自适应算法,只在场变化剧烈的地方加密,最终仿真网格数量往往只有简单的均匀网格方案的1%都不到。

实测下来最有效的提速方法是利用对称性。CRL系统是轴向对称的,在VirtualLab里开启旋转对称性计算,处理时间可以直接降低到完整三维计算的十分之一。这个选项藏得比较深,但一定要找出来。另一个提速技巧是先用较低采样率跑一遍轴向扫描,确认焦点大致位置后,再在焦点附近用高采样率精细计算焦斑分布。这是典型的先粗后细策略,能省掉大量无效计算。

如果内存还是不够,把探测器尺寸缩小。焦平面上的物理尺寸只要覆盖到第一暗环外一两倍就够了,不需要把整个0.6 mm口径都成像到焦平面上。很多初学者一顿操作猛如虎,探测器设成跟入射光一样大,结果采样点全部浪费在外围平缓的暗区。

5.2 结果里凭空出现剧烈干涉条纹的排查

我在早期做CRL仿真时遇到过一个问题:焦斑周围出现周期性的剧烈干涉条纹,周期大约20 nm,完全不符合物理直觉。后来排查发现是虚拟探测器的采样间隔太粗,导致高频空间频率混叠成了低频条纹。这不是物理现象,而是数值混叠。

解决办法很简单:把探测器采样点加密到满足奈奎斯特判据,或者直接在探测器前加一个低通滤波算子。实际上VirtualLab的探测器通常已经内置了频谱处理逻辑,问题往往出在用户手动改采样参数时把采样率调太低。如果看到规则的、与物理预期明显不匹配的干涉条纹,首先怀疑数值混叠而不是光学像差。

5.3 材料折射率定义错误的表现形式

这是CRL仿真里最容易出现、也最隐蔽的错误。折射率虚部符号反了,直接结果是仿真中透过率不为下降反而“增益”,光越走越强。更隐蔽的是虚部大小输错,导致吸收被高估或低估,有效孔径计算偏差,焦点光斑偏大或偏小,但整体形态看起来又很合理。

我的排查方法是一个独立验证模型:单平面平行板,厚度10 μm,入射平面波,看透过率是否等于exp(−μt)。12 keV铍的μ=111 m⁻¹,10 μm厚度对应透过率0.99889,几乎不衰减。如果仿真出来的透过率明显偏离这个值,那一定是材料参数输错了,不需要怀疑软件本身。这个验证模型不到五分钟就能搭好,但它避免了很多时候在完整CRL模型里把所有结果都质疑一遍的窘境。

5.4 部分相干光源怎么设才贴近同步辐射

真实同步辐射光源不是完全相干光。在VirtualLab里可以用多模叠加的方式模拟部分相干光源:把平面波分解成若干不同角度的平面波模,每个模的权重按光源角分布设置,传播后对各模的光强场做非相干叠加。这里的模式数需要扫描:模式太少,焦斑会呈现明显的模式干涉伪影;模式太多,计算量暴涨。在我的参数下,8到12个模式就能稳定收敛。

部分相干性对焦斑有显著影响:完全相干条件下的旁瓣结构会被抹平,峰值强度下降约20%,焦斑底宽变大。实际的同步辐射束线如果不考虑这一点,直接拿完全相干仿真结果做实验预期,会在旁瓣测量上产生很大的困惑。

6. 从仿真到实验验证的落地经验

仿真做完了并不是终点。我在这个项目里最后还做了一轮实际加工与实验测试的闭环验证。用金刚石车床加工铍CRL阵列,实测焦距约405 mm,与仿真413 mm及理论417 mm在10 mm范围内一致。实测焦斑FWHM约220 nm,比仿真偏大15%。这个偏差主要来自加工面形误差的高频成分以及材料内部颗粒散射,完全处在公差分析预测的范围之内。

实验过程中最大的提醒是:铍材料的粉末毒性。加工后的表面不能直接裸手接触,实验装调必须在专用手套箱里操作。X射线光束线端的真空封装或氦气环境也是必须的,否则铍表面氧化层会随时间增厚,降低透镜透过率。这些都不是仿真软件能告诉你的,但却是实际项目成功的关键环节。

如果你正准备用VirtualLab Fusion做CRL设计,我给三个具体建议:第一,务必从单透镜验证起步,别嫌麻烦直接跑阵列,否则出错时定位问题的成本远高于验证时间;第二,焦距理论值、仿真值、实验值三者之间允许存在10 mm以内的偏差,不必为此反复改模型纠结;第三,公差分析一定要做,因为它是连接仿真与加工的桥梁,它告诉加工方哪里能放松、哪里必须死磕,省下的都是真金白银的加工成本。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进