偏振成像 超构透镜模型 超表面 FDTD仿真 复现论文:2019年 APL Midinfrar...
偏振成像 超构透镜模型 超表面 FDTD仿真 复现论文:2019年 APL Midinfrared real-time polarization imaging with all-dielectric metasurfaces 论文介绍:全介质实时偏振聚焦成像超构透镜模型,可以实现X Y RCP LCP四个偏振态的实时分离和聚焦的功能,通过四个强度的计算可以得到入射光场的偏振信息 超构透镜由硅纳米柱构成,通过偏振复用和空间复用原理同时调控四个偏振态的光场相应 案例内容:主要包括硅纳米柱的单元结构仿真、相位和透射率的参数化扫描,偏振复用超构透镜的偏振解耦合相位计算代码,空间复用的超构透镜模型建模脚本,以及多偏振聚焦的超构透镜模型,和对应的远场电场分布计算; 案例包括fdtd模型、fdtd建模脚本、Matlab计算相位代码和模型仿真复现结果,以及一份word教程,超构透镜的偏振复用和解耦合相位计算代码可用于任意偏振调控设计,具备可拓展性
一、代码工程背景与核心目标
本代码工程围绕“长波红外实时偏振成像”技术展开,基于全介质超构表面原理,通过线偏振复用与圆偏振复用机制,结合空间插空排列方法,实现对x偏振、y偏振、左旋圆偏振(LCP)、右旋圆偏振(RCP)四种偏振态的独立聚焦与实时探测。工程核心目标是通过标准化的代码流程,完成从单元结构仿真、相位参数计算到超构透镜模型构建与性能验证的全链路设计,最终输出可实现四种偏振态空间分离聚焦的超构透镜结构参数,为红外偏振成像设备的研发提供可复用的技术方案与代码工具。
二、代码工程结构与文件功能划分
整个代码工程按功能逻辑分为三大核心文件夹:Nanofins文件夹(单元结构仿真)、Matlab文件夹(相位计算与参数匹配)、FDTD文件夹(超构透镜建模与性能验证),各文件夹下代码文件各司其职,通过.mat格式数据文件实现数据流转,形成闭环设计流程。
2.1 Nanofins文件夹:单元结构仿真核心
2.1.1 核心功能定位
Nanofins文件夹的核心功能是完成超构透镜基本组成单元——硅纳米柱(Nanofins)的电磁特性仿真,获取不同几何尺寸(长度、宽度)下纳米柱对长波红外光(10.6μm)的透射率(Tx)与相位(phix)数据,为后续相位单元筛选提供基础数据支撑。该文件夹是整个工程的“数据源头”,其仿真结果的准确性直接决定后续超构透镜设计的精度。
2.1.2 关键代码操作与功能细节
- 模型参数初始化
代码首先调用预设的nanofins模型,该模型已根据文献参数完成基础配置:衬底与单元结构材料均设为硅(Si),适配10.6μm长波红外波段的光学特性;单元周期固定为4.7μm,平衡结构分辨率与衍射干扰;单元高度设定为10μm,确保相位调控范围覆盖0-2π。代码通过读取模型预设参数,避免重复配置,保证仿真一致性。
- 扫参(sweep)任务执行
代码核心逻辑之一是运行扫参任务,以纳米柱的长度和宽度为变量,在预设范围内(通常为1-4μm,步长50nm)进行遍历仿真。每一组长宽参数对应一次电磁仿真,计算该结构下x偏振光的透射率(Tx)与相位(phix)。扫参过程中,代码实时记录数据,确保每个参数组合都有对应的光学特性结果,形成完整的“长宽-透射率-相位”映射关系数据集。这一步是后续筛选特定阶数相位单元的基础,扫参范围与步长的设置直接影响数据密度与后续计算精度。
- 数据保存脚本(SAVE)功能
扫参任务完成后,代码调用SAVE脚本,将仿真得到的透射率(Tx)与相位(phix)数据转换为.mat格式文件并保存。.mat格式是MATLAB的专用数据格式,可完整保留数据的维度与结构,方便后续Matlab文件夹中的代码直接读取与处理。代码在保存过程中会对数据进行初步整理,去除冗余信息,确保数据格式统一,避免后续计算中出现数据解析错误。这一步实现了从仿真数据到可计算数据的转换,是连接单元结构仿真与相位计算的关键环节。
2.2 Matlab文件夹:相位计算与参数匹配核心
2.2.1 核心功能定位
Matlab文件夹是整个工程的“计算中枢”,负责基于Nanofins文件夹输出的仿真数据,完成8阶(圆偏振复用)与64阶(线偏振复用)相位单元的筛选、四种偏振态目标相位的计算,以及目标相位与单元结构参数的匹配,最终输出超构透镜各单元的具体几何参数,为FDTD文件夹的建模提供参数支持。
2.2.2 关键代码文件功能解析
- phase_unit代码:相位单元筛选功能
- 数据预处理与读取:代码首先读取
Nanofins文件夹输出的phix.mat(x偏振相位数据)与Tx.mat(x偏振透射率数据),并根据对称性原理,通过数据转置得到y偏振光的相位(phiy)与透射率(Ty)数据(假设纳米柱结构在x、y方向具有对称性,简化计算)。代码会对相位数据进行归一化处理,将其统一映射到0-2π范围,避免因相位数值范围不一致导致的筛选误差。 - 8阶相位单元(圆偏振复用)筛选:根据圆偏振复用理论,仅需x偏振相位(phix)覆盖0-2π即可满足需求。代码预设8个离散相位点(间隔π/4),遍历扫参得到的“长宽-相位”数据集,对每个离散相位点,筛选出相位误差最小且透射率满足阈值(通常>80%)的纳米柱长宽参数。筛选过程中,代码会计算每个候选参数的相位偏差,优先选择偏差最小、透射率最高的结构,确保筛选出的8阶单元具有良好的光学性能。最终,代码将筛选出的8组长宽参数保存为
length&widthunitCP.mat(CP即Circular Polarization,圆偏振),形成圆偏振复用专用的相位单元库。 - 64阶相位单元(线偏振复用)筛选:线偏振复用要求x偏振相位(phix)与y偏振相位(phiy)均覆盖0-2π,因此需要64个离散相位组合(x方向8个、y方向8个)。代码采用类似的筛选逻辑,对每个相位组合,计算x、y方向相位误差之和,筛选出总误差最小、透射率达标的纳米柱长宽参数。筛选完成后,代码将64组参数保存为
length&widthunitLP.mat(LP即Linear Polarization,线偏振),形成线偏振复用专用的相位单元库。 - 结果验证与输出:代码会生成透过率振幅与相位分布的可视化图表,与文献结果进行对比,验证筛选出的单元参数是否符合理论预期。若结果偏差较大,代码会提示重新调整筛选阈值或扫参范围,确保相位单元库的可靠性。
- target_phase代码:目标相位计算功能
- 聚焦原理与数学模型:代码基于几何光学聚焦理论,目标相位的核心作用是使特定偏振光在空间预设位置聚焦。其数学模型为:目标相位 = -2π/λ × [√((x-x0)²+(y-y0)²+f²) - f],其中λ为工作波长(10.6μm),(x,y)为超构透镜单元坐标,(x0,y0)为预设焦点坐标,f为焦距。代码通过该模型计算每个单元的目标相位,确保光线经超构透镜后能汇聚到指定位置。
- 四种偏振态目标相位计算:代码根据空间插空排列规则,将超构透镜分为两行区域:一行用于x偏振与y偏振光聚焦,另一行用于LCP与RCP光聚焦。针对每个偏振态,代码设定独立的焦点坐标(如x偏振焦点为(x1,y1),y偏振焦点为(x2,y2)等),代入上述数学模型,计算出该偏振态下所有单元的目标相位分布。计算过程中,代码会对相位进行周期性调整,确保其始终在0-2π范围内,避免相位突变导致的光损耗。
- 结果保存与可视化:代码将四种偏振态的目标相位分布分别保存为
.mat文件(如phasex.mat、phaseLCP.mat等),同时生成相位分布热力图,直观展示各单元的相位数值,方便后续检查相位分布的平滑性与合理性。若相位分布出现明显突变,代码会提示调整焦点坐标或焦距,优化相位设计。
- phase2length代码:相位与结构参数匹配功能
- 数据关联逻辑:该代码的核心逻辑是建立“目标相位-相位单元库-纳米柱结构参数”的映射关系。对于线偏振区域,代码读取
targetphase输出的x/y偏振目标相位,与phaseunit生成的64阶相位单元库进行匹配,找到与目标相位最接近的单元,提取其对应的纳米柱长宽参数;对于圆偏振区域,代码除了匹配目标相位与8阶相位单元库,还需结合几何相位原理,计算纳米柱的转角参数(确保LCP与RCP光的独立聚焦)。 - 参数匹配与优化:代码采用“最小误差匹配法”,对每个单元的目标相位,遍历对应的相位单元库,计算相位差值,选择差值最小的单元作为匹配结果。若存在多个单元相位差值相近,代码会优先选择透射率更高的单元,平衡相位精度与光学效率。对于圆偏振区域的转角计算,代码根据几何相位与转角的关系(转角 = 几何相位/2),将目标相位分解为传输相位与几何相位,进而得到纳米柱的转角参数,确保转角在0-180°范围内(转角具有周期性,180°与0°效果一致)。
- 最终结构参数输出:代码将匹配得到的所有单元的长宽参数(线偏振与圆偏振区域)、转角参数(圆偏振区域)整合为超构透镜的整体结构参数,保存为统一的
.mat格式文件(如lens_structure.mat)。该文件包含超构透镜每个单元的具体几何信息,是FDTD文件夹构建模型的直接输入数据,代码会对输出参数进行格式校验,确保参数符合FDTD建模的要求(如尺寸单位、数据维度等)。
2.3 FDTD文件夹:超构透镜建模与性能验证核心
2.3.1 核心功能定位
FDTD文件夹(FDTD即Finite Difference Time Domain,时域有限差分法)是整个工程的“模型构建与性能验证终端”,负责将Matlab文件夹输出的结构参数转化为三维超构透镜模型,并通过电磁仿真验证四种偏振态的聚焦效果,判断设计是否达到实时偏振成像的要求。
2.3.2 关键代码脚本功能解析
- structure_lens脚本:超构透镜模型构建功能
- 结构参数读取与解析:脚本首先读取
Matlab文件夹输出的lens_structure.mat文件,解析出每个单元的长度、宽度、转角参数,以及超构透镜的整体尺寸(如单元数量、排列周期等)。解析过程中,脚本会对参数进行单位转换(确保与FDTD仿真环境的单位一致,通常为米),并检查参数是否在合理范围内(如长度、宽度不超过单元周期,避免单元重叠)。 - 三维模型构建:脚本按照解析后的参数,在FDTD仿真环境中逐步构建超构透镜模型:
- 衬底构建:创建硅衬底,尺寸覆盖整个超构透镜区域,厚度通常为2μm(确保结构稳定性,减少背景光干扰),材料设置为硅(Si),与单元结构材料一致;
- 纳米柱阵列构建:根据单元坐标,逐一创建纳米柱,每个纳米柱的长度、宽度、高度(10μm)按解析参数设置,圆偏振区域的纳米柱还需设置转角参数;构建过程中,脚本会自动避开单元重叠区域,确保阵列排列整齐;
- 仿真区域与边界设置:设置仿真区域大小,确保覆盖超构透镜及聚焦区域(通常为透镜尺寸的1.5倍),边界条件设为吸收边界(减少边界反射对仿真结果的干扰),网格精度设为波长的1/20(10.6μm波长对应网格尺寸约0.53μm,保证仿真精度)。
- 光源与监测器设置:脚本设置宽频带平面光源(中心波长10.6μm,带宽0.1μm),光源偏振态可切换(用于分别仿真x、y、LCP、RCP光入射);在聚焦平面(预设焦点所在平面)设置2D功率监测器,用于记录不同偏振光入射后的光强分布,监测器的分辨率与超构透镜单元数量匹配,确保能清晰捕捉焦点位置的光强变化。
- 偏振态切换与仿真功能
脚本支持手动或自动切换入射光偏振态,分别对x偏振、y偏振、LCP、RCP光进行单独仿真。每次切换偏振态后,脚本重新初始化仿真环境,运行时域有限差分计算,模拟光线在超构透镜中的传播与聚焦过程。仿真过程中,脚本实时记录监测器数据,包括光强分布、焦点强度、背景光强等关键指标,确保数据采集的完整性。
- 聚焦效果分析与验证功能
仿真完成后,脚本自动读取监测器数据,对聚焦效果进行分析:
- 焦点位置验证:脚本提取光强最大值所在的坐标,与预设焦点坐标对比,判断实际焦点是否与设计一致,偏差通常要求小于1μm;
- 光强分布分析:脚本生成光强分布热力图,观察焦点区域的光强是否显著高于其他区域(通常要求焦点强度是背景强度的10倍以上),同时检查正交偏振区域的光强(如x偏振光入射时,y偏振焦点区域的光强应接近0,确保偏振隔离度);
- 结果输出与判断:脚本将光强分布数据、焦点位置偏差、偏振隔离度等指标保存为报告文件,若所有指标满足设计要求(如焦点偏差<1μm、偏振隔离度>20dB),则判定超构透镜设计成功;若指标不达标,脚本会提示可能的问题原因(如相位匹配误差、模型构建错误等),指导用户回溯调整前序代码参数。
三、代码工程功能亮点与应用价值
3.1 功能亮点
- 全流程自动化:从单元结构仿真到超构透镜性能验证,代码工程实现了数据自动流转与功能自动执行,减少人工干预,降低操作误差,提高设计效率。
- 模块化与可复用性:三大核心文件夹功能独立,代码模块间通过标准化
.mat文件交互,用户可根据需求单独修改某一模块(如更换单元材料、调整焦点坐标),无需重构整个工程,提升代码复用性。 - 理论与仿真结合紧密:代码严格遵循偏振复用、几何光学聚焦等理论,每个功能模块的实现都有明确的理论支撑,同时通过仿真验证理论应用的正确性,确保设计方案的科学性。
- 结果可视化与故障排查:各代码模块均包含结果可视化功能,生成相位分布、光强分布等图表,方便用户直观检查设计问题;同时,代码包含错误提示与日志记录功能,帮助用户快速定位故障环节(如扫参数据异常、相位匹配偏差等)。
3.2 应用价值
- 技术落地支撑:代码工程输出的超构透镜结构参数可直接用于微纳加工,为红外偏振成像设备的研发提供可落地的技术方案,缩短研发周期;
- 教学与科研工具:代码流程清晰,理论与实践结合紧密,可作为超构表面、偏振成像领域的教学案例,帮助学生理解核心原理;同时,科研人员可基于该代码拓展研究(如探索其他波段、优化偏振复用机制);
- 性能优化基础:代码工程提供了完整的性能验证指标(如焦点偏差、偏振隔离度),用户可基于这些指标进一步优化代码参数(如调整相位单元阶数、优化扫参步长),提升超构透镜的成像质量。
四、代码工程使用注意事项
- 参数一致性:各模块间的关键参数(如工作波长、单元周期、焦距)需保持一致,若修改某一参数(如将工作波长改为9.6μm),需同步更新所有相关代码(如
Nanofins模型的波长设置、target_phase的波长参数),避免参数不匹配导致的设计错误; - 仿真资源配置:
Nanofins文件夹的扫参任务与FDTD文件夹的建模仿真对计算资源要求较高,建议配置高性能计算机(如CPU为Intel i7及以上,内存16GB及以上),同时合理设置仿真时间步长与迭代次数(避免过度消耗资源或仿真不收敛); - 数据备份与版本控制:由于代码工程涉及多轮数据生成与修改,建议定期备份关键数据文件(如
phix.mat、lens_structure.mat),并采用版本控制工具(如Git)管理代码,避免数据丢失或代码版本混乱; - 理论基础要求:使用该代码工程需具备一定的电磁仿真(FDTD)、偏振光学、超构表面理论基础,理解相位复用、几何相位等核心概念,才能准确解读仿真结果,合理调整代码参数。
通过以上对代码工程各模块功能的深度解析,可清晰掌握红外偏振成像超构透镜从设计到验证的完整代码逻辑,为后续代码使用、功能拓展与技术落地提供坚实的理论与实践基础。

偏振成像 超构透镜模型 超表面 FDTD仿真 复现论文:2019年 APL Midinfrared real-time polarization imaging with all-dielectric metasurfaces 论文介绍:全介质实时偏振聚焦成像超构透镜模型,可以实现X Y RCP LCP四个偏振态的实时分离和聚焦的功能,通过四个强度的计算可以得到入射光场的偏振信息 超构透镜由硅纳米柱构成,通过偏振复用和空间复用原理同时调控四个偏振态的光场相应 案例内容:主要包括硅纳米柱的单元结构仿真、相位和透射率的参数化扫描,偏振复用超构透镜的偏振解耦合相位计算代码,空间复用的超构透镜模型建模脚本,以及多偏振聚焦的超构透镜模型,和对应的远场电场分布计算; 案例包括fdtd模型、fdtd建模脚本、Matlab计算相位代码和模型仿真复现结果,以及一份word教程,超构透镜的偏振复用和解耦合相位计算代码可用于任意偏振调控设计,具备可拓展性



AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)