matlab gui lunwen,用MatlabGUI模拟圆环和矩形环夫琅禾费衍射

论文导读::为动态反映圆环和矩形环夫琅禾费衍射光强随波长、衍射屏的几何特征等重要参数的变化,利用Matalab 图形用户界面的设计和开发功能,结合真实的可见光谱,制作了圆环和矩形环夫琅禾费衍射的交互式图形仿真界面。仿真结果图形细致逼真,使该过程的物理规律直观形象,有助于学生理解衍射过程中的物理规律。

论文关键词:物理光学,Matlab,仿真,夫琅禾费衍射

衍射是光学教学中一个非常有趣和令人激动的内容。在当前的教学中,教师在黑板上推导出光强度公式后,根据该公式在黑板上画出光强分布曲线,或利用PPT将预先准备好的光强分布图片投影在屏幕上。经验表明并不是所有的学生都能通过这种静态的结果去理解衍射的中的物理规律。随着计算机性能的提高及模拟仿真技术的发展,在课堂上利用计算机软件对光学过程进行仿真已经成为一种可能。

当单位振幅的平面波透射过该衍射屏,在远离该屏的观察平面上产生的夫琅禾费衍射光强分布为:

我们用imread命令读入图4所示的可见光谱,并将光谱保存在color_spectrum这个变量中,该变量是一个3维数组,前面2维对应着空间的行、列坐标,第3维对应该坐标下像素点的红、绿、蓝颜色值。每个像素点的颜色就是由这三个值混合而成[7]。为仿真不同波长所对应的色彩,我们先将该波长的衍射光强与该波长所对应的红、绿、蓝的颜色值分别相乘,然后再将结果混合起来,最后用imagesc命令即可得到与该波长相对应的颜色的光强分布图。

处理光谱的代码如下:

spectrum= imread(‘VisibleColorSpectrum.jpg’);

color_spectrum= double(squeeze(spectrum(5,:,:)));

3.3 回调的处理

图5为圆环的仿真界面,界面右边自上而下的三个滚动条分别控制入射光波长,圆环外径和内径,因此涉及到三个回调函数。第一个回调函数是对波长改变的响应。代码如下:

functioncallback_slider_wavelength(hObject,eventdata,handles)

% 从滚动条获取当前的波长值

lambda = get(hObject,’Value’);

%在滚动条上面的静态文本标签中以两位小数的浮点数显示当前波长值,

set(text_wavelength,’string’,[‘Wavelength:’,num2str(lambda,’%3.2f’),’nm’])

%从光谱中取出与当前波长对应的颜色

color= color_spectrum(round((lambda-380)/370*1834)+1,:)/255;

lambda = lambda * 1e-9;

%用自定义的函数fraun_obsuration计算圆环衍射,输出振幅和光强分别保存在A_pattern和 %I_pattern两个变量中。

[A_pattern, I_pattern] = fraun_obsuration(lambda,w1,w2);

% 将光强和颜色信息联系在一起

I_pattern_color(:,:,1)= I_pattern * color(1);

I_pattern_color(:,:,2) = I_pattern * color(2);

I_pattern_color(:,:,3)= I_pattern * color(3);

% Pc是初始化时通过imshow命令产生的图像对象的句柄。CData中保存着该图像的颜色信息

set(Pc,’CData’,I_pattern_color);

axis square

end

后面两个回调函数是对外径改变的响应职称论文,颜色信息以及调用fraun_obsuration计算光强与上面的callback_slider_wavelength函数一样。不同的是这两个回调函数获取的是内外径的当前值。具体代码是:

Er = get(hObject,’Value’) ;

set(text_External_radius,’string’,[‘ExternalRadius: ‘,num2str(Er,

‘%3.1f’),’mm’])

对应外径的改变。

Ir = get(hObject,’Value’) ;

set(text_Internal_radius,’string’,[‘InternalRadius: ‘,num2str(Ir,

‘%3.1f’),’mm’]);

对应内径的改变。

以上两个模拟在内径为零时,可分别仿真圆孔和矩形孔的夫琅禾费衍射光强分布。结果如图7、图8所示。

4 结论

参考文献:

[1]P.Marchand , O.Thomas Holland. Graphicsand GUIs with MATLAB ( third edition)

[M]. New York: CRC p ress, 2003.

相关资源:小禾帮排课系统-排课软件-免费排课-自动排课_小禾帮源码-管理软件…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月19日
下一篇 2021年2月20日

相关推荐