基于混合编程的结构状态检测研究

2013-07-20 09:40雷玉锦陶以政
微处理机 2013年4期
关键词:结构件控件串口

雷玉锦,陶以政

(中国工程物理研究院计算机应用研究所,绵阳 621900)

1 前言

在工业自动化领域系统常见的通信编程多为串并口通信编程。计算机串并口编程常用的工具有VC++、Delphi、VB 等开发工具,VC ++由于其适用性广、效率高,同时也得到Microsoft 系统的最好支持,因此常使用VC++作为开发工具,实现计算机与硬件设备的通信。MATLAB是一套高性能的数值计算和可视化软件,已广泛应用于数字信号处理、图像处理、系统识别等领域[1]。VC ++与Matlab 在软件开发和数值计算方面各有其优势,因此,实现VC++与Matlab的混合编程,能够集中两者的优势,提高软件开发效率[2-3]。

根据结构动力学原理,任何一个结构件的动力学特性都由其自身的质量、刚度、阻尼决定,因此,每一个不同的结构件,其动力学特性都是不同的,而能够反映结构状态特性的非参数模型(即频响函数或传递函数、脉冲响应函数),可以通过振动测量的方法得到。通过搭建专用的测试系统,采用声音扫频激励的方法测试结构件的响应,以区分不同结构的状态。

2 结构状态检测原理

一般的振动问题都是由激励、结构体和响应三部分组成,根据研究目的的不同,可以有选择的选取测试内容,通过采用已知激励和响应信号来分析结构体的状态。由于选择使用声音进行激励,因此需要使用声学换能器将电信号转换为声信号,为了保证激励信号的相位不变,使用SR830 锁相放大器作为信号发生器,同时也具有接收信号的功能。搭建的测试系统原理框图如图1 所示。

其工作原理为:首先由计算机控制锁相放大器生成正弦扫频信号经功率放大器放大,驱动换能器(声波换能器)作用在测试对象上;响应换能器(声波换能器)接收测试对象产生的共振信号(被测结构件的共振频率),经电荷放大器对响应信号放大,然后信号传回锁相放大器;计算机利用软件实现与锁相放大器之间的异步通讯来读取测试数据。

图1 测试系统原理框图

3 基于VC ++与Matlab 混合编程在结构状态检测中的实现

3.1 基于VC++的硬件控制

计算机与外设之间需经过接口进行连接,常见的接口类型有并行接口、串行接口、磁盘接口、SCSI接口、USB 接口等,用户可根据外设的接口类型选择相应的连接方式。SR830 锁相放大器与计算机之间使用的是RS232 串口通信,因此重点论述串口通信的实现方法。

目前Win32 中基于VC++的常用串口通信[4-7]方式有MSComm 控件、使用Windows API 函数编程和TAPI 编程等方式。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通信功能,MSComm 控件在串口编程时非常方便,程序员不必去花时间了解较为复杂的API 函数。MSComm是Microsoft 公司提供的简化Windows 下串行通信编程的ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简便方法。

首先打开VC ++6.0 集成开发环境,建立一个基于MFC的应用程序工程,命名为JgZtJcTEST,在VC++ 主界面上点“工程”→“增加到工程”→“Components and Controls”,在出现的对话框中选择“Microsoft Communication Control”,单击插入按钮,即可将通信控件插入该工程,然后在对话框窗口中添加需要的控件,如需要设置的仪器参数Sensitivity,Scan Length,Phase Shift,Reference Mode,Sweep Fraq.Range 等。

MSComm的属性很多,用户可根据需要对控件的属性进行设置。首先要对串口进行初始化,一般来说要完成通信端口号的设定,通信协议的设定,传输速率等参数的设定等等。

由于SR830 内嵌有自身的函数命令,只需将设定的参数通过计算机传给SR830 即可,这里就用到了串口读写操作,通过对MSComm 类中的读写函数GetInput()和SetOutput()的设定实现信息传输。

3.2 VC++与Matlab 混合编程

VC++与Matlab 混合编程有很多种方法[8],目前常用的几种方法是:VC++调用matlab 引擎、基于数据文件交换的方法、基于COM 技术的方法、使用MATCOM 方法、基于ActiveX 控件的方法和使用Matlab Add-in 等混合编程方法。该测试系统软件使用基于COM 技术的方法完成VC ++与Matlab的混合编程。

首先使用Matlab 软件创建数据处理的M 文件(实现对测试数据的绘图和计算分段相关系数),并将文件保存为shujuhuitu.m。

然后通过Matlab 创建COM 组件,包括配置Matlab COM 编译器,编译生成的M 文件,在VC ++的工作目录下复制编译产生的.h,.dll,.lib 文件,添加头文件,添加路径,完善代码等等。

4 结构状态检测应用实例

通过搭建的测试系统,使用配套的测试软件(如图2 所示)完成对Fe,Cu,Al,Wu 四种材料结构件(外形尺寸一样)的状态检测,结果如图3 所示。

图2 结构状态检测系统软件

图3 四种材料结构件状态检测结果

从图3 可以看出,四个结构件虽然外形体积相同,但由于材质不同,其共振频率存在明显的差异,计算得到Fe、Cu 两种材料测试结果的分段相关系数,分别为0.1514,0.9939,0.7627,…,0.2037。相关系数越接近于1,则说明两种材料越接近,有可能是同种材料;反之则说明是不同种类的材料。

5 结束语

为实现不同材料结构件的状态检测,通过使用VC++与Matlab 混合编程的方法,设计了专用的测试系统软件及数据处理程序,能够实现对不同材料结构的共振频率检测,并能够应用于状态识别领域。由于混合编程的方式很多,因此应根据自身工作需要,选择合适的方式。

[1]王周益,刘继兴,柳长安.VC ++与MATLAB 混合编程研究及开发实例[J].计算机应用研究,2006(5):154-155.

[2]毛文,孙伟嵩.VC ++ 与Matlab 混合编程方法研究[J].电脑知识与技术,2009,5(18):4772-4774.

[3]李健,韩国栋,孙志鹏.VC ++调用Matlab的方法[J].计算机与现代化,2009(7):151-154.

[4]王华,岳丽全,岳志高.MSComm 控件在VC ++6.0 串口通信中的应用[J].长春工程学院学报(自然科学版),2009,10(1):72-73.

[5]吉翔,李永全.VC++下MSComm 控件的串口通信方法[J].电脑开发与应用,2009,22(12):34-35.

[6]陈细军,谭民.VC 编程中的串口通信技术[J].计算机应用,2001,21(9):94-95.

[7]王正强.VC 中应用MSComm 控件实现串口通信[J].电子测试,2010(5):73-76.

[8]张文军,万宇.基于COM的Matlab 混合编程技术常见问题分析[J].计算机与现代化,2011(4):153-155.

猜你喜欢
结构件控件串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于.net的用户定义验证控件的应用分析
基于PLC的飞机结构件变夹紧力柔性夹具研究
关于.net控件数组的探讨
KWSP为Uniti One提供碳纤维复材底盘结构件
一种航空薄壁结构件的加工应用
钛合金结构件变进给工艺分析
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式