- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
用Matlab和VB实现光学实验仿真系统的开发
录入:edatop.com 点击:
2.2 详细设计说明
在各光学实验的具体模拟中,每个光学实验的模拟都含预习评价、实验内容、数据处理、思考练习等部分,同时还有实验扩展、技术应用等版块,方便老师和学生查阅、练习,提高学生的创新能力。
以仿真模拟光栅衍射实验为例介绍开发光学实验仿真模拟系统的过程。
3 光栅衍射实验的模拟
3.1 光栅衍射实验的数学模型
设λ为入射光波长;α为光栅上每一透光狭缝的宽度;d为光栅常数;φ为衍射角。一般光栅与光屏的距离D远大于衍射条纹在光屏上偏离光屏中心的距离ys,因此有:
sinφ△~y/D
光栅衍射可以看作是N个相干光形成的缝间干涉和单缝衍射共同作用的结果。对于光屏上任一点P的光强度,等于N个相干光在该点产生的干涉光强度与宽度为a的单缝夫朗和费衍射在该点产生的光强度的乘积,其强度可表示为:
其中:I0为屏中心的最大光强;[(sin a)/a]2为单缝衍射因子;(sin Nβ/sinβ)2。为多光束干涉因子;a=πa/λsinφ;β=πd/λsinφ。
3.2 编写Matlab程序
根据光栅衍射实验的数学模型,在Matlab环境下编写光栅衍射实验的raster.m函数文件。raster.m程序清单如下:
3.3 将Matlab程序转化为DLL文件
用Matcorn4.5将M一文件转化成DLL的操作步骤如下:
(1)启动运行Matcom,点击菜单File/(20mpile todll,选择要写好的raster.m文件。
(2)点击OK。这时在对应的I)ebtlg目录下,有许多编译生成的文件。在VB开发环境中需要用的文件有3个:raster.dll(DLL文件)、raster.bas(声明DLL的模块文件)、raster.cls(VB调用DLL的接口)。
3.4 在VB中调用DLL文件
(1)界面设计。在VB中新建一个工程,新建窗体。在窗体中添加控件并设置各控件的属性(如图2所示)。然后,通过编写简单程序建立文本框和相应滚动条之间的联系。
(2)导入MaxtrixVB库和DLL文件。为了能适应Matlab强大的矩阵运算功能,还必须将MaxtrixVB库加入到工程中,过程为:点击菜单Project,选择Ref—erence,在Reference对话框中复选Mmatrix,点击0K。
将raster.bas和raster.cls加入到工程中,将生成的raster.dll文件拷贝到System32目录下。这样就可以用raster.bas声明raster.dll,并通过mymfile.cls建立VB调用raster.dll的接口。
(3)主要程序代码设计
(4)调试通过,设置参数后可以看到如图2所示的效果。在VB中将程序生成可执行文件,再把相关的文件一起打包,制作成安装包,就可以脱离VB和Matlab而单独安装使用。
4 结 语
用动态链接库DLL方法成功实现了VB和Matlab的接口编程,并生成可执行程序,可以脱离VB和Mat—lab的环境单独运行。这样也隐藏了程序源代码,提高了程序的保密性。开发出基本光学实验的模拟系统,实现了在实验室做不出的实验效果演示。该集成的光学实验仿真系统可实现图像的动态显示,随入射光波长的实时改变动态显示光强分布的图像,较为逼真。实验窗口中的图像可以由实验者调试为单独显示模式,故而方便了实验者对光学图像的存储。本套光学实验仿真系统已经在中南大学物理实验室初步投入使用,弥补了光学实验在此方面的空缺,提高了教学质量。而且还将提供给其他高校物理实验室,辅助光学实验教学。
在各光学实验的具体模拟中,每个光学实验的模拟都含预习评价、实验内容、数据处理、思考练习等部分,同时还有实验扩展、技术应用等版块,方便老师和学生查阅、练习,提高学生的创新能力。
以仿真模拟光栅衍射实验为例介绍开发光学实验仿真模拟系统的过程。
3 光栅衍射实验的模拟
3.1 光栅衍射实验的数学模型
设λ为入射光波长;α为光栅上每一透光狭缝的宽度;d为光栅常数;φ为衍射角。一般光栅与光屏的距离D远大于衍射条纹在光屏上偏离光屏中心的距离ys,因此有:
sinφ△~y/D
光栅衍射可以看作是N个相干光形成的缝间干涉和单缝衍射共同作用的结果。对于光屏上任一点P的光强度,等于N个相干光在该点产生的干涉光强度与宽度为a的单缝夫朗和费衍射在该点产生的光强度的乘积,其强度可表示为:
其中:I0为屏中心的最大光强;[(sin a)/a]2为单缝衍射因子;(sin Nβ/sinβ)2。为多光束干涉因子;a=πa/λsinφ;β=πd/λsinφ。
3.2 编写Matlab程序
根据光栅衍射实验的数学模型,在Matlab环境下编写光栅衍射实验的raster.m函数文件。raster.m程序清单如下:
3.3 将Matlab程序转化为DLL文件
用Matcorn4.5将M一文件转化成DLL的操作步骤如下:
(1)启动运行Matcom,点击菜单File/(20mpile todll,选择要写好的raster.m文件。
(2)点击OK。这时在对应的I)ebtlg目录下,有许多编译生成的文件。在VB开发环境中需要用的文件有3个:raster.dll(DLL文件)、raster.bas(声明DLL的模块文件)、raster.cls(VB调用DLL的接口)。
3.4 在VB中调用DLL文件
(1)界面设计。在VB中新建一个工程,新建窗体。在窗体中添加控件并设置各控件的属性(如图2所示)。然后,通过编写简单程序建立文本框和相应滚动条之间的联系。
(2)导入MaxtrixVB库和DLL文件。为了能适应Matlab强大的矩阵运算功能,还必须将MaxtrixVB库加入到工程中,过程为:点击菜单Project,选择Ref—erence,在Reference对话框中复选Mmatrix,点击0K。
将raster.bas和raster.cls加入到工程中,将生成的raster.dll文件拷贝到System32目录下。这样就可以用raster.bas声明raster.dll,并通过mymfile.cls建立VB调用raster.dll的接口。
(3)主要程序代码设计
(4)调试通过,设置参数后可以看到如图2所示的效果。在VB中将程序生成可执行文件,再把相关的文件一起打包,制作成安装包,就可以脱离VB和Matlab而单独安装使用。
4 结 语
用动态链接库DLL方法成功实现了VB和Matlab的接口编程,并生成可执行程序,可以脱离VB和Mat—lab的环境单独运行。这样也隐藏了程序源代码,提高了程序的保密性。开发出基本光学实验的模拟系统,实现了在实验室做不出的实验效果演示。该集成的光学实验仿真系统可实现图像的动态显示,随入射光波长的实时改变动态显示光强分布的图像,较为逼真。实验窗口中的图像可以由实验者调试为单独显示模式,故而方便了实验者对光学图像的存储。本套光学实验仿真系统已经在中南大学物理实验室初步投入使用,弥补了光学实验在此方面的空缺,提高了教学质量。而且还将提供给其他高校物理实验室,辅助光学实验教学。