基于MATLAB的光学像差仿真平台设计

/ 2

基于MATLAB的光学像差仿真平台设计

董佳坤,郑莹,高春辉,周照林,张杰

沈阳理工大学   辽宁省沈阳市  110158

摘  要:在光学设计领域,人们通过对研究对象建立模型的方法得到运算结果,从而实现对整个实验系统的运行,而这一方法是通过编写的计算机程序来实现的。由于计算机仿真具有较直观,受外界影响因素少、运算能力较高的特点,因此计算机仿真具有良好的可控制性、不具破坏性、易观察性和经济性等特点。光学系统仿真通过使用Matlab软件对光学像差规律再现,为理论分析、实验研究和光学设计提供了光学实验方面的参考。

关键词:光学像差;实际光学系统;光学设计;Matlab;仿真平台

引言:光学实验是普通物理实验的重要内容,做好光学实验仿真不仅是在光学实验方面取得进展,也是在为物理实验迈向新的研究方向。由于在研究室内做光学实验需要实验人员精心操作,相对精密的仪器调不准,所以我们利用计算机进行模拟,很大程度上减少了人力物力,夯实了做好光学实验的基础。在光学仪器设计和优化过程中,校正光学像差是设计人员的主要目的,但前提是对像差的理解和掌握程度,直接决定着光学系统的设计结果。像差是指实际光学系统中由于材料的特性的表面几何形状引起的实际像与理想光学系统所成的偏差。本项目利用Matlab仿真软件对光学像差进行仿真,以形象直观地认识实际光学系统与理想光学系统的差异。本文提出了利用Matlab软件中的Gui功能设计了光学像差仿真平台,设计一个可以改变光路参数的GUI界面,观察在不同参数条件下的光线追迹图。最终分析理想光学系统与实际光学系统成像的差异,出结论。

1.理论与方法

1.1球差

近轴光学系统只适用于近轴的小物体以细光束成像。需要一定的相对孔径和视场,用于任何实际光学系统。因此,远超过近轴区域所限制范围的实际光路计算,与近轴光学系统计算的结果不同。这种实际像理想像之间的差异就称为像差。

单色光成像产生的像差有五种,彗差(正弦差)、像散、球差、场曲和畸变,统称为单色像差。通过复色光成像产生的位置色差和倍率色差两种像差,统称为色差。

球差称球面像差,物点发在轴上发出的光束经过光学系统后,交光轴于不同位置,所以在像面上形成了圆形弥散斑,即球差。一般以近轴光线与光轴交点的轴向距离来衡量实际光线在像方与光轴的交点。

对于单色光来说,只有在轴上点成像时,才会出现球差的现象。在对轴外点成像时,像差的种类很多,而球差仅仅是其中的一种。个别球面镜片除特殊情况外,一般情况下无法校正球差。正透镜产生负球差,负透镜产生正球差。因此,能够消除球差的一种简单结构,就是将形状合适的正负镜头组合在一起的双镜组或双胶合镜组。光学设计校正图像较差时,保持镜片焦距不变,改变镜片形状是常用的方法。

运行脚本文件,得到光路图如下:

1675648352728

图1为Matlab模拟几何光学中的球差的像差

由上图可以直观地看出:

不同孔径角的光线,其像点的位置不同;孔径增大时,交点的位置将会愈发偏离高斯像点(即傍轴光线的像点);

运行脚本文件,得到分析图如下:

图2为球差的Ray Fan图

即当入射光线偏离主光线一段距离时(该段距离在子午、弧矢面上分别记为PX、PY),其出射光线打在高斯像面上的像点与高斯像点之间的偏移量(该段距离在子午、弧矢面上分别记为EX、EY);

由图像可以看出:

1、当;而当;这表明了对于球差而言,正透镜将会恒产生负球差;

2、EX/EY的数值将会随PX/PY的增长呈现指数形式的上升;这与球差的展开式:

相符;

SA_Fit2SA_Fit

图3为球差的点列图

其表示当入射光线偏离主光线一段距离时,其出射光线打在高斯像面上的像点的位置;

由图像可以看出:

1、随着孔径的增大,弥散圆的半径增大;说明球差是与孔径相关的函数;

2、随着孔径的增大,弥散圆的半径呈指数级别地增大;原理同上,与球差的展开式相符;

1.2计算实际光线及近轴光线的光路

图为实际光线的光路图

已知球面曲率半径r、介质折射率n、n,以及光物方坐标l、u,求像方光坐标l、u,计算光经过单个折射球面的光路。

              

                       

                          

                            

                      

根据以上公式推导,利用正弦定律和折射定律可以得到像方截距

                          

同理u、u'、i、i'都很小,我们把它的弦值换成弧度值,用小写字母表示,因此计算近轴光线的光路如下:

2.仿真平台的设计

2.1界面设计

GUI(Graphical User Interfaces,图形用户界面)是一个用户界面,由窗口、光标、按钮、菜单、文字说明等物体组成。用户使计算机产生某种动作或变化,通过一定的方法对这些图形物体进行选择和激活。在Matlab命令行中输入guide命令,打开设计工作台启动窗口,然后设计好创建界面,主要思路是这样的:

(1)模拟界面需设计可编辑或可调整的组件作为实验变量的输入口,并有文本框作为输出口,使用文字进行提示和解释。

(2)运行时,实验原理图直接显示在平台界面上;变量参数输入后,需要在相应的输出口有相关的按钮组件显示输出实验数据才能启动执行修正程序。

(3)以某一调节元件为起动开关的球差校正前后曲线图像,执行回调程序,要求曲线图像实时输出,跟随元件输入参数的变化而变化。

(4)修改界面控制元件的属性和放置位置,编写回调器,使用户界面更协调,美观大方,操作更加简便。

界面设计

图2为Matlab Gui仿真界面平台

界面设计完成后,界面会被保存下来,并且Matlab会自动生成带有界面框架程序的M文件。鼠标光标左键选择组件点击右键,找到Callbacak选项即可在回调中查看,点击后会自动定位到组件的程序下,回调函数继续在这个程序下编写。图中的控制组件包括4个输入滑动条、4个输出按钮、6个图像坐标轴以及一个静态文本框架。

微信图片_20230210094607

图3为gui编写程序部分代码

特别需要注意的是,对于不同坐标轴的图像,需要对同一滑动条组件进行控制。选择组件找到回调功能,将特定的坐标轴设置为当前,返回到组件对应的程序下,然后对绘图编码进行编辑。如果第一个坐标轴可以像Axes(Handles.Axes1)一样使用一个语句调用,并在该语句之后编辑一个作图代码,那么程序运行之后就会将相应的图像显示在被调用的Axes1上。M文件和仿真平台界面在完成所有组件的回调功能后保存。

点击运行M文件,球差正透镜模块中的滑动条在移动仿真平台界面输入光线入射高度(即孔径)滑动条左侧的文本框可以实时显示滑动条输入的参数点击输出结果按钮,输出数据就会显示在按钮左侧的文本框上,也就是正透镜的负球差。移动负镜头模块中的滑动条,输入负镜头右面的曲率半径(双胶合镜头的最后一个折射面),此时两个坐标轴分别画出相关的曲线图,对前后的球差进行校正。输出结果按钮点击,校正后的球差就会显示在文本框里。同理可以运行色差模块,实验数据和相关图像可以通过执行程序获得。

2.2仿真平台模拟结果及结论

成品2

图4仿真平台模拟示例

实验以双胶合薄透镜形式校正单镜,正透镜采用冕牌玻璃,校正球差负透镜采用火石玻璃,校正色差负透镜采用重火石玻璃,设计参数为:光线入射高度H=10mm,R为镜面曲率半径,D为镜头厚度,ND为镜头折射率,NF紫光为镜面折射率,其中NF紫光为镜面折射率,NF紫光为镜面NC是镜头中的红光折射率。设计初始数据L1=L1=±U1=U1=0,如表1所示为实验参数,图4所示为实验数据和图像。

R/mm

d/mm

n0

nF

nc

60.71

4.0

1.68271

1.627

1.498

-47.62

2.5

1.73854

1.759

1.646

表1仿真实验参数

3.结束语

分析像差理论后,实验将单正镜片以双胶合薄镜片的形式进行校正,并以MATLABGUI为基础构建光学像差实验模拟平台。通过校正前后数据和图像的对比,该平台可以直观地观察到光线入射高度对球差和色差的影响,并将曲率半径调整到合适的数值,由此可以看出双胶合镜头对单镜的球差和色差都有校正的效果。这一仿真平台的搭建,直观地展现了双胶合镜头矫正图像差的功能,为相关领域的研究提供了有效的实验参考,为理论学习提供了更为直观和丰富的帮助。

参考文献

[1]孙运周,毕浩,胡中华等.基于MATLAB的物理光学衍射实验平台的仿真与设计[J].教育现代化,2018,5(10):151-153.DOI:10.16541/j.cnki.2095-8420.2018.10.052.

[2]许晓赋,杨秀珍,郑飞杰等.基于Zemax软件的光学仿真实验平台的设计探究[J].洛阳师范学院学报,2022,41(05):27-30.DOI:10.16594/j.cnki.41-1302/g4.2022.05.012.

[3]英昌盛.基于MatlabGUI的数字图像信息统计[J].长春师范大学学报,2017,36(08):55-58.

[4]于萌,王鹏,李良.多模型集成平台的MATLAB GUI设计[J].火控雷达技术,2016,45(03):21-24.DOI:10.19472/j.cnki.1008-8652.2016.03.005.