碧波液压网 欢迎你,游客。 登录 注册

混合编程在实时超声无损检测中的应用

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  0 引 言

  在超声无损检测中提取信号特征,使用模式识别判断缺陷类型等方法,使检测结果更准确可靠,相对于有丰富经验的专业人员人工观察检测波形,减少了人为因素对检测结果的影响。

  大量超声检测数据的分析处理中需要用到各种复杂的数学算法。MATLAB是一个完整的数学平台,作为当今世界上应用最为广泛的数学软件,具有非常强大的数值计算、数据分析处理、系统分析、图形显示甚至符号运算的能力[1]。用户只需简单的代码就可以实现十分复杂的功能,大大提高了工程分析、计算的效率。但是MATLAB的强大功能只能在它所提供的平台上才能使用,即用户必须在安 装MATLAB软件的计算机上才能执行*.m文件。

  超声检测中常用PCI接口的检测卡采集超声数据。VC++是当前Windows下的主要编程语言之一,它能方便地形成应用软件中所需要的各种友好用户界面和工具,并可以直接与系统及底层硬件交换数据。用VC++开发的软件具有容易维护升级、界面友好、代码效率高、执行速度快等一系列优点[2]。

  而将MATLAB下开发好的复杂算法、程序或函数直接应用 到VC+ +开发的程序中,并且可以不依赖MATLAB软件运行,在VC++中充分发挥MATLAB的数值计算功能,这就是MATLAB与VC++的混合编程问题。本文讨论了如何使用MATLAB的DeploymentTool将*.m函数编译为COM组件提供给VC++调用的方法,实现超声检测信号数据的实时处理和缺陷类型的智能识别。

  1 MATLAB与VC++混合编程

  在编写超声实时检测软件时,可以在VC++下做出友好的人机界面和与超声检测卡的接口驱动,而把复杂的数值处理交给MATLAB去做,这样可以大大减轻编程的负担,减少软件开发的时间。

  1.1 MATLAB与VC++接口编程方式

  MATLAB与VC++结合的方法有多种,但其实用程度与范围不同。常用的方法有[3-4]:

  1)Matlab Engine方式

  Matlab Engine采用C/S模式,Matlab作为后台服务器,而C程序作为前台客户机,通过Windows的动态控件与服务器通信,向Matlab Engine传递命令和数据信息,从Matlab Engine接受数据信息。用户可以在前台应用程序中调用这些接口函数,实现对Matlab Engine的控制。采用这种方法几乎能利用MATLAB全部功能,但是需要在机器上安装MATLAB软件,而且执行效率低。

  2)MATLAB自带的Matlab Compiler

  Matlab Compiler的作用是将M文件转化成C/C++代码,这种源代码需要用C/C++编译器编译连接成独立应用程序,在将M文件转成独立应用程序的过程中生成的C/C++文件,原则上是可以被其它的C/C++代码调用的,编译器可以通过设置mcc命令的选项,将M文件编译成动态链接库文件、C/C++文件、可执行文件等一系列文件。但此方法不支持对MATLAB部分工具箱函数的编译。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签: MATLAB
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论