MATLAB应用下的光学设计.docx
《MATLAB应用下的光学设计.docx》由会员分享,可在线阅读,更多相关《MATLAB应用下的光学设计.docx(12页珍藏版)》请在冰豆网上搜索。
MATLAB应用下的光学设计
课程设计说明书
题目:
MATLAB应用下的光学设计
所属课程:
应用光学
姓名:
学号:
班级:
指导教师:
中文摘要:
本论文是在现有光学理论分析的基础上,利用MATLAB编程语言进行常见的光学仿真实验,旨在以一种更加直观的形式对现有理论和现象进行对比分析与研究。
具体内容如下:
(1)利用MATLAB绘制一个球面;
(2)根据应用光学近轴光路计算公式,编写一个从轴上点光源发出的11条特征光线(u=±1.0,±0.85,±0.707,±0.5,±0.3,0)的近轴成像光线追迹;
(3)利用过渡公式,设计一个透镜(由两个单球面组成),并画出其光线追迹图;
(4)在2-3的基础上,编写实际光线的追迹,分析轴上物点的球差;
(5)利用MATLAB的GUI(图形用户界面),设计一个可实时改变光路参数的GUI界面;
(6)画出理想焦点附近的星点图,理解球差的存在;
(7)用uitable函数以列表的形式给出参数和结果说明。
关键词:
MATLAB;光线追迹;球差;GUI界面;unitable函数
Abstract:
Thisthesisisbasedontheanalysisoftheexistingtheoryofoptical,usingMATLABprogramminglanguagetosimulateseveralkindsoffamiliaropticalexperiments.Thepurposeofitistomakecomparativestudyandanalysisofexistingtheoryandphenomenonbyamoreintuitiveform.Specificcontentasfollows:
(1)UsingMATLABtodrawasphericalsurface;
(2)Accordingtoparaxialopticalpathcalculationformula,writeaprogramtodraw11specialparaxiallightraytracingfromepaxialpointlight(u=±1.0,±0.85,±0.707,±0.5,±0.3,0).
(3)Dependontransitionformula,designaopticallens(includetwosinglesphericalsurface)anddrawinglightraytracing;
(4)Basedon2and3,writeaprogramaboutactuallightraytracing,andanalyzingepaxialpoint’ssphericalaberration;
(5)AccordingtoMATLAB,designaGUI(GraphicalUserInterface)canchangetheparametersofopticalpath;
(6)Understandtheexistofsphericalaberrationbydrawingcometaroundidealfocus;
(7)Givetheresultsandparametersinalistbyuitablefunction.
Keywords:
MATLAB;lightraytracing;sphericalaberration;GUI;unitablefunction
中文摘要................................................Ⅰ
Abstract................................................Ⅱ
第一章绪论..........................................1
1.1光学仿真的研究现状..............................1
1.2光学仿真的研究意义..............................2
1.3本论文主要研究内容..............................2
第二章光学仿真实验.....................................3
2.1球面绘制..................................3
2.2光路计算与光线追迹...............................3
2.2.1近轴光线追迹...............................6
2.3图形用户界面GUI的设计...........................6
2.4光学像差(球差)仿真...............................6
2.5uitable函数......................................7
总结.....................................................9
致谢....................................................10
参考文献................................................10
附录....................................................11
第一章绪论
1.1光学仿真的研究现状
在计算机科学飞速发展的今天,光学仿真受到越来越多科研工作者和教育工作者的关注。
其应用方向主要有两个:
首先是在科学计算方面,利用计算机仿真软件模拟实际的实验过程,减少或避免贵重仪器的损伤,实验结果也更精确;第二是在光学教育方面,将抽象难懂的概念及规律以一种更加直观地形式进行表述,让学生可以寓学于乐。
在教育方面,国外专门介绍光学仿真的教材有很多,内容也相对完善。
其中不仅详细介绍了几何光学、物理光学、光学成像技术以及图像处理技术,而且利用现阶段常用的仿真软件MATLAB对它们进行了系统的仿真。
目前,我国在运用计算机仿真方面还相对落后,相关教材还十分匮乏。
随着近年来,国家光学产业的不断发展,光学实验仿真必将得到更多的关注以及飞速的发展。
1.2光学仿真的研究意义
21世纪是信息时代,信息学科和信息产业的迅猛发展促使传统的光学仪器科学向光电信息学科扩展。
现代光电信息学科及其产业的发展要求新一代的科学研究人员与工程技术人员除了具有扎实的理论基础,还应具有应用所学理论建模并仿真求解光电信息学科及现代光学中各种问题的能力,成为知识结构新和创新能力强的高层次人才。
光波导和激光是现代光电信息科学中两个举足轻重研究方向。
以这两个方向的光学内容为基础,从基本的物理概念出发,建立相应的理论模型,并将这些光学问题归纳为特征方程求根、积分求解、常微分方程求解等几类数值求解问题,在对相应的数值分析方法进行简要介绍的基础上结合MATLAB强大的数值计算和图形显示功能,完成光学问题的仿真计算并给出图形化的显示结果。
也就是通过光学仿真计算,利用MATLAB编程来完成现代光学典型问题的模型求解,通过数据和图形来展示现代光学问题的本质,力求形成理工结合、经典理论与现代数值方法紧密结合的新体系。
长期以来,由于光学课程中的概念繁多、物理规律较为抽象,理论教学对实验的依赖性较强,特别是其中的一些光学现象和规律缺乏细致的数学推导,再加上授课教师一直沿袭传统的口授笔演的教学方式,这些都给学生学习该门课程带来了诸多困难。
1.3本论文主要研究内容
本论文的主要研究方向是基于MATLAB所进行的光学仿真实验,目的是掌握MATLAB的使用环境以及用程序语言实现结果的可视化,并通过实验对现有的光学理论进行深层次的理解。
具体的研究内容如下:
首先,第一章绪论中包括三部分内容,MATLAB的简介、光学仿真的研究方向以及光学仿真的研究意义,从宏观上对光学实验仿真有一个清醒的认识。
第二章,主要讨论了近轴光线和实际光线的光路计算以及光线追迹;借助理想焦点附近的星点图,理解球差的存在;设计一个可以改变光路参数的GUI界面,观察在不同参数条件下的光线追迹图;最后,利用uitable函数给出参数和结果说明。
最后,总结课程设计当中所遇到的一些困难和所用到的思想方法。
第二章光学仿真实验
2.1球面绘制
图1
2.2光路计算与光线追迹
实际光线的光路计算:
计算光线经过单个折射球面的光路,就是已知球面曲率半径r、介质折射率n和
及光线物方坐标L和U,求像方光线坐标
。
如图2.1所示,在
中,应用正弦定律,有
于是
(2-1)
在E点应用折射定律,有
(2-2)
由图2.1可知,
由此得像方孔径角
为
(2-3)
在
中应用正弦定律
于是,得像方截距
(2-4)
特别指明:
式2-1到式2-4为实际光线的光路计算公式,可用于实际的光路计算。
图2
近轴光线的光路计算:
当孔径角U很小时,
都很小。
这时,光线在光轴附近很小的区域内,这个区域称为近轴区,近轴区内的光线称为近轴光线。
由于近轴光线的有关角度量都很小,在式(2-1)--式(2-4)中,将角度的正弦值用其相应的弧度值来代替,并用相应小写字母表示,则有:
(2-5)
(2-6)
(2-7)
(2-8)
上述公式即为近轴光线的光路计算公式,适用于近轴光路计算。
对于一个由k个面组成的光学系统,在进行光路计算时,还需要解决由前一个面到下一个面的过渡问题,这时就要用到一组过渡公式:
(2-9)
(2-10)
(2-11)
光线追迹:
在实际处理光学系统成像问题(光学设计)时,最直接的方法是把折射定律准确地应用于每一个折射面,追迹具有代表性的光线通过光学系统的准确路径。
其方法一般有两种:
一种是光学图解法;一种是计算法。
后者由于计算机的发展、普及已普遍应用,有专门的应用程序并配以立体显示,可以说完全替代了前者,已成为当今光学设计的主要工具和方法。
2.2.1近轴光线追迹
图3
2.3图形用户界面GUI的设计
图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。
人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。
运用MATLAB设计图形用户界面GUI,目前已被广泛运用到实验教学当中。
MATLAB为广大用户提供了一个方便、高效的集成开发环境GUIDE(GraphicalUserInterfaceDevelopmentEnvironment)并将所有的GUI控件都集成在这个环境中而且提供了相应的设置方法。
利用MATLAB的GUI界面,用户可以更加方便地改变图形参数,可视化程度更高。
2.4光学像差(球差)仿真
近轴光学系统只适用于近轴的小物体以细光束成像。
对任何一个实际光学系统而言,都需要一定的相对孔径和视场。
因此,实际的光路计算,远远超过近轴区域所限制的范围,物像的大小和位置也与近轴光学系统计算的结果不同。
这种实际像与理想像之间的差异就称为像差。
单色光成像产生的像差有五种,球差、彗差(正弦差)、像散、场曲和畸变,统称为单色像差。
复色光成像产生的像差有两种,位置色差和倍率色差,统称为色差。
球差(Sphericalaberration)称球面像差。
轴上物点发出的光束,经光学系统后交光轴于不同位置,因此,在像面上形成一个圆形弥散斑,这就是球差。
一般是以实际光线在像方与光轴的交点相对于近轴光线与光轴交点(即高斯像点)的轴向距离来度量。
对于单色光而言,球差是轴上点成像时唯一存在的像差。
轴外点成像时,存在许多种像差,球差只是其中的一种。
除特殊情况外,一般而言,单个球面透镜不能校正球差。
正透镜产生负球差,负透镜产生正球差。
因此,以适当形状的正、负透镜组合成的双透镜组或双胶合镜组是可以消除球差的一种简单结构。
保持透镜的焦距不变而改变透镜形状,是光学设计校正像差时常用的技巧。
2.5uitable函数.
在MATLAB当中,表格是由uitable函数创建的,用于数据的可视化。
其常见属性如下表所示:
表2.5.1
属性
属性描述
有效属性值(n为表格单元的列数)
BackgroundColor
表格单元背景色或条纹色
1×3或2×3阶RGB矩阵,值在0,1之间
CellEditCallback
修改表格单元值时执行的回调函数
函数句柄、函数句柄和附加参数组成的单元数组、可执行字符串
CellSelectionCallback
表格单元格被选中时执行的回调函数
函数句柄、函数句柄和附加参数组成的单元数组、可执行字符串
ColumnEditable
指定用户是否可以编辑列
1×n的逻辑矩阵、标量逻辑值、{空矩阵}
ColumnFormat
表格单元的显示格式
字符串单元数组,默认值为空矩阵
ColumnNames
指定表格列名,默认为1、2、3......
1×n的字符串单元数组、{‘numbered’}空矩阵
ColumnWidth
表格每列的宽度,单位为像素
1×n的单元数组、{‘auto’}
Data
表格数据
数值矩阵、逻辑值矩阵、数值单元数组、逻辑值单元数组、字符串单元数组
Enable
使能或禁用表格
{on}、inactive、off
ForegroundColor
单元内文本的颜色
1×3的RGB颜色矩阵、颜色字符串
KeyPressFcn
当在表格上按下任意键时执行回调函数
可执行字符串或函数句柄
Position
指定表格的大小和位置
[左底宽高],单位由units指定
RearrangeableColumns
指定表格数据是否可按列重新排列
On、{off}
RowName
表格的行头名称
1×n的字符串单元数组、{‘numbered’}空矩阵
RowStriping
指定表格的行是否采用彩色条纹模式
{on}、off
Tag
表格对象的标识符
字符串
UIContextMenu
表格对象的右键菜单
右键菜单句柄
Units
表格位置的计量单位
{pixels}、inches、normalized、points、characters、centimeters
Visible
指定表格是否可见
{on}、off
总结
正所谓“纸上得来终觉浅,觉知此事要躬行。
”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。
因此在学期末来临之际,我们迎来了MATLAB应用下的光学设计课程设计。
通过这次课程设计,我对MATLAB有了更进一步的认识和了解。
在这段时间里,我通过自己摸索,查阅资料,并且在指导老师的指导下完成了:
光线追迹、GUI界面、unitable函数等,并最终完成了这个课程设计报告。
在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。
虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。
致谢
在本论文完稿之际,我要衷心感谢我的指导老师。
在完成课程设计的过程中,我遇到了很多困难,是老师的悉心指导和不断鼓励使我最终完成了该设计。
老师知识渊博、作风朴实、治学严谨,不仅教会我们知识,更教会我们许多为学处世的道理。
在此,我要再次向老师表示感谢。
此次课程设计的所有研究成果都是在各位成员的共同努力下完成的,如果没有他们的帮助和扶持,我无法在那么短的时间内完成如此繁重的任务。
最后,我要感谢我的父母,他们是最爱我的人。
是他们一直默默地鼓励我、支持我,让我能够安心学习,实现自己的梦想。
参考文献:
[1]郁道银,谈恒英.工程光学[M].北京:
机械工业出版社,2013:
107-115.
[2]孙绪保.光学实验与仿真[M].北京:
北京理工大学出版社,2009.
[3]尚涛,石端伟.工程计算可视化与MATLAB实现.武汉:
武汉大学出版社,
2002:
202-216
附件(源程序)
1.球面绘制
alpha=0.65*pi:
pi/20:
1.4*pi;%角度[0,2*pi]
R=2.5;%半径
x=R*cos(alpha)+3.25;
y=R*sin(alpha);
plot(x,y)
axisequal
2.近轴光线追迹
L=2;r1=2;r2=5;n1=2;n2=0.3;
a=[1-10.85-0.850.707-0.7070.5-0.50.3-0.30];
fori=1:
11
u=a(i);
I=((L-r1).*(u)/r1);%入射角
Ip=(n1*sin(I)/n2);%折射角
phi=u+I;%入射点相对于圆心C1的张角
up=phi-Ip;%像方孔径角
xp=r1*(1+(Ip)./(up));%像方截距%光线与曲面的交点坐标
yh1=r1*(phi);%y坐标
xh1=0.75+r1-r1*cos(phi);%x坐标
line([0xh1],[0yh1],'color','r');%画入射光线
line([xh1xp+4],[yh1,0]);
end
holdon
holdon
alpha=0.65*pi:
pi/20:
1.4*pi;%角度[0,2*pi]
R=2.5;%半径
x=R*cos(alpha)+3.25;
y=R*sin(alpha);
plot(x,y)
axisequal