欢迎来到天天文库
浏览记录
ID:34061689
大小:55.24 KB
页数:4页
时间:2019-03-03
《基于matlab及c#混合编程实现光干涉仿真》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于MATLAB及C#混合编程实现光干涉仿真摘要:本文对光的双缝干涉进行了分析,利用MATLAB与C#混合编程,实现了光的干涉仿真。关键词:MATLABC#混合编程光学规律干涉仿真1•开发背景光学是物理学教学和实验的重要组成部分。而光学实验需要用到复杂贵重的实验仪器,一般的中学不具备这样的实验条件,另外教师上课时做演示实验也不太方便,而利用计算机进行仿真,就可以解决以上问题,使得一些抽象的概念形象化,更易于学生接受,具有很好的教学效果。MATLAB是由MathWorks公司开发的一种主要用于数值计算及可视化图形处理的工程语言,是当今最优秀的科技应用软件之一。它将数值分析
2、、矩阵运算、图形图像处理、信号处理和仿真等诸多强大的功能集成在较易使用的交互式计算机环境中,为科学研究、工程应用提供了一种功能强、效率高的编程工具,但是MATLAB有界面开发能力较差、执行速度不高、局限于MATLAB运行环境等缺点。C#是针对.NET平台而设计的,是微软.NET计划中的主要开发语言。利用C#开发的系统具有界面友好、执行速度快、易维护和升级等优点,能够生成可执行文件,有效地保护算法和数据,并可脱离编程环境运行。但是在工程计算方面和MATLAB相比编程显得复杂。2•数学模型两束频率相同的单色光在空间某点相遇时,讨论光强和干涉条纹的分布规律。根据波的叠加理论,
3、两束同频率单色光在空间某一点光矢量的大小为E=Ecos(st+O),E=Ecos(3t+①),(1)其中,E和E分别是两个光矢量的振幅,①和①分别是初相。如果两个光矢量的方向相同,合成的光矢量为E=Ecos(31+①),(2)其中,振幅和初相分别为E=,(3a)①二arctan。(3b)在一定时间内观察到的平均光强I与光矢量的平方的平均值成正比I二a二a[++2EE],(4)其中a是比例系数。对于普通光源,两光波之间的相位差①-①是随机变化的,平均值为零,因此I=a+a=I+Io(5)这就是光的非相干叠加,总光强等于两束光各自照射时的光强之和。如果两束光的相位差恒定,则
4、合成光强为I=I+I+2cos△①,(6a)其中△①二①-①,第三项是干涉项。这就是光的相干叠加。如果1=1,则合成光强为1=21(1+cos△①)=41coso(6b)当两个光源的强度相等时,相对光强为I==2+2cosAO=4coso(7)3•仿真实现(1)首先在MATLAB中写下Interference,m程序,实现绘图。functioninterference(n,dphi)%n条纹的最高阶数dphi相差的增量%两束相干光的干涉强度和干涉条纹(2)使用MATLAB的deploytool工具,将m文件编译成Matlab_Optical.dll文件。(3)创建C#项
5、目,添加引用MWArray.dll和MatlabOptical.dll文件。usingMathWorks.MATLAB.NET.Utility;usingMathWorks.MATLAB.NET.Arrays;usingMatlabOptical;仿真代码:Opticaldr=newOptical();MWArrayn=(MWArray)Convert.ToDouble(textBox1.Text);(textBox2.Text);dr.Interference(n,dphi);Bitmapbp=newBitmap(”interference・jpg");this.pi
6、ctureBox1.Imoge二bp;(4)仿真结果。4.结论本文对光的双缝干涉进行了分析,应用C#与MATLAB混合编程,画出光强的曲线和干涉图样,掌握了光的干涉的规律,计算机模拟不但能够再现实验过程和结果,而且有利于理解和掌握光学规律。参考文献:[1]庄建.基于Matlab的光学实验仿真平台.成都大学学报,2006,25(3).[2]王娟.C#.net与Matlab混合编程的快速实现.科技资讯,2006,33.
此文档下载收益归作者所有