1.1.2 Matlab软件介绍
Matlab全称matrix laboratory,是美国Mathworks公司推出的数学软件,用于算法开发、数值计算、数据分析以及数据可视化的高级技术计算语言和交互式环境。
该软件可进行矩阵运算、实现算法、绘制函数、创建用户界面、[3]连接其他编程语言的程序等。对于光学方面而言,Matlab的功能也非常强大,通过这个平台,编写相应的算法程序,不仅能帮助我们分析光学系统的成像质量,进行图像处理等工作,还能进行光学仿真。
本文旨在研究Matlab与Zemax数据传输接口,前面也提到过,Matlab可连接其他编程语言的应用程序。[2]Matlab的应用程序接口(API)是一个使Matlab语言能与C、Fortran等其它高级编程语言进行交互的函数库。该函数库的函数通过调用DLL(动态链接库)实现与Matlab文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。API的实现主要有以下几种方式:
一、 C语言编写MEX文件,为现有的C程序编写接口程序,使之成为MATLAB函数文件;运用这种技术,读者可以把积累的优秀C程序改造成可在MATLAB中方便调用的指令;
二、 C语言编写MAT文件,MATLAB文件与其他编程环境的数据交换是通过MAT文件来实现的;
三、 MATLAB引擎技术展开。借助这种技术,前台可以是各种外部应用程序编写的界面,而后台计算则可完全交由MATLAB进行;
四、 应用ActiveX实现MATLAB与外部应用程序的通信;
五、 借助DDE技术在MATLAB与其他外部程序间进行通信。
承上所说,如果能够实现Zemax与Matlab之间的动态交互,也就是本课题所研究的这两个软件数据传输接口,那么对于我们用Zemax光学设计软件来仿真而言,能帮助我们及时分析设计的光学系统的优势与不足,进而做出改善。
1.2 DDE技术原理
DDE,即动态数据交换,全称Dynamic Date Exchange。它是建立在Windows内部消息系统、全局原子和共项全局内存基础上的一种协议,需要两个Windows应用程序来实现通讯,协调Windows应用程序之间的数据交换和命令调用,其中一个应用程序充当服务器提供信息,另一个则作为客户机访问信息。通常DDE主要用来传递那些不需要用户经常干涉的数据流。在建立原始链路后,有关的应用程序即将其接管过去,而无需用户进一步的介入。DDE所提供的是一种更加集成的工作环境。
对于每一个DDE对话,会话双方要指定或专门建立文护会话的不可见DDE窗口以负责对 DDE消息的处理。一个DDE对话是由参与会话的窗口句柄来标识的。正因如此,任何一个窗口都不应当参与与其他窗口多于一个的DDE对话。如果在一个客户和服务器之间存在多个对话过程,必须为每一个新的对话过程在一对一的基础上提供一个附加窗口。在任何通信中,通信双方都必须统一所交换数据的标识和格式。DDE协议采用的是由服务、主题和项目组成的一个三级层次命名来对DDE所传数据单元进行标识。一个特定的DDE会话唯一地由其服务名和主题名进行定义。在初始化一个DDE对话时,由DDE客户询问此特定DDE服务器的应用程序名和主题名。通常是将使用服务器应用程序的可执行文件名作为服务名。DDE的主题分类是一个包含多个数据项的普通数据类型。有效的主题及项目的选择由DDE服务器任意设置。由于客户和服务器窗口一起来识别一个DDE对话,因此在对话过程中不能改变应用程序或主题。但却可以在需要的时候对项目名称进行更改。
Zemax和Matlab正好可以构成这样的一对应用。Zemax是可以允许其他应用使用汇编语言如C++,Matlab等编程实现两软件通信的服务器方,当我们打开Zemax时,软件就开始等待客户机来连接,来发出访问请求。 MATLAB与ZEMAX软件数据传输接口的研究(3):http://www.751com.cn/tongxin/lunwen_10700.html