机械振动测量及球杆定位控制系统实验 - 图文 下载本文

机械振动测量实验

一、实验目的

1、熟悉并掌握MATLAB的基本操作以及调试器的使用方法

2、理解图形句柄的含义,熟悉MATLAB界面设计的常用函数和设计方法 3、 熟悉Simulink的使用,理解一些常用模块的功能和含义,并熟悉通过Simulink进行动态系统建模和仿真的流程,特别是子系统的创建与封装 4、进行数据采集程序的设计,能够将通过采集卡采集到的数据显示到界面中 5、掌握用MATLAB对机械振动信号进行信号频谱分析的方法,初步了解简单滤波器的设计。

二、实验原理和设计思路

该自主实验的硬件平台是转子实验台,设置合适的通道数,即可通过采集卡对转子的机械振动信号进行采集。

Simulink是MATLAB的重要软件包,是一种用来实现计算机仿真的软件工具,用于对动态系统建模和仿真,它采用系统模块直观地描述系统典型环节,方便建立系统模型。它是MATLAB 的一个附加组件,可用于实现各种动态系统(包括连续系统、离散系统和混合系统)的建模、分析和仿真。由Simulink建立动态仿真模型,即可获得采集到的振动信号。

为了使采集到的振动信号以及信号处理结果能够更好地呈现出来,需要搭建图形交互界面。MATLAB提供了丰富的绘图功能,在MATLAB中,图形对象的名字叫做句柄,它是图形对象的标识代码(唯一的身份),标识代码含有图形对象的各种必要的属性信息。其中,根屏幕的句柄为0,图形窗口的句柄为正整数,其它对象的句柄为对应的双精度浮点数。可以通过这个“句柄”,得到或者修改图形对象的属性。同时,MATLAB还提供了很多图形对象属性函数,能够很方便地对一些图形或控件进行属性设置。

具体设计思路如下:

我们设计的这个“机械振动测量”软件平台主要包括四个模块,即Simulink

1

动态仿真模块、数据采集模块、图形界面绘制模块、信号处理模块。

1、Simulink动态仿真模块

该模块为shilei1.mdl文件。通过S-Function,用户可以将自己的模块加入Simulink模型中,从而可以实现用户自定义的算法或者与硬件设备交互等。在该模块中,能够设置采样频率等相关参数,从而获得不同采样频率下的机械振动信号。

2、数据采集模块

该模块为shilei.cpp文件,功能是实现采集卡的数据信号采集。因为我们所使用的转子实验平台中,振动加速度信号是从通道1中采集,所以在对应采集函数中要将通道设置为通道1。然后通过采集卡初始化函数ADCardInit()、采集函数DAQ1()、读取采样数据函数ReadDaq()等,实现机械振动信号的采集。

3、图形界面绘制模块

该模块主要是在jixiezhendong.m文件中实现,能够将采集到的机械振动信号绘制到图形界面中,同时能够提供人机交互的一些控件,方便用户进行机械振动测量的相关操作,并获取频谱分析图、振动频率和振动加速度等相关信息。

4、信号处理模块

该模块主要包括getdata.m,callradio1.m,callradio2.m三个M文件。由于采集到的机械振动信号中混杂有噪声信号,要想得到准确的振动信号和振动参数,需要通过滤波来滤掉高频的噪声信号,只留下低频的机械振动信号,所以首先需要进行滤波器的设计。

其次,关于机械振动测量有两个重要参数,即振动频率和振动加速度。其中,振动频率为幅值最大的波对应的频率,振动加速度为最大幅值电压通过一个转换得到的加速度。所以,在频谱分析的基础上,通过数据处理即可得到振动频率和振动加速度这两个参数。

三、设计过程

1、复习MATLAB的一些基本指令和操作。

2

比如数值数组及其运算、控制流、M文件等,同时还有MATLAB调试器的相关操作使用,以及MATLAB的图形绘制操作。

2、“机械振动测量”界面的设计。

参照《DRVI快速可重组虚拟仪器实验平台》中的《转子实验台——加速度传感器振动测量实验》的测量界面,如上图所示,了解机械振动测量所需要得到的数据和结果。然后结合老师课堂讲解和实验指导书中关于界面设计的内容,进行“机械振动测量”界面的设计。

3、数据采集程序设计。

参考实验指导书中数据采集的步骤介绍,进行数据采集程序的设计,同时还有Simulink仿真模块的搭建。从而,实现通过采集卡对转子振动信号的采集,同时能够使振动信号在设计的界面中显示出来。

4、机械振动信号的数据处理。

获得机械振动信号后,就要对信号进行处理,主要包括频谱分析、低通滤波、参数计算等部分。通过低通滤波滤掉高频的噪声信号,通过参数计算获得振动频率和振动加速度两个机械振动参数。

四、Simulink模型

下图为本系统的Simulink模型(shilei1.mdl)

3

其中,Constant模块表示的是采样频率,通过修改该常数的值,即可设置不同的采样频率。To Workspace模块的功能是把输出的数据写入工作空间,以便于getdata.m文件对输出信号进行读取,并绘制到界面中。Scope模块的功能是将输出的信号实时显示出来。

五、代码及注释

1、C++代码及注释

shilei.cpp文件的主要功能包括Simulink模型的输入输出通道的设置,以及采集卡的初始化、开启、更新以及退出等功能,可以生成动态链接库,是能够实现对通道信号进行采集的重要文件。

以下是shilei.cpp文件的代码及注释

/*

* sfuntmpl_basic.c: Basic 'C' template for a level 2 S-function. *

* ------------------------------------------------------------------------- * | See matlabroot/simulink/src/sfuntmpl_doc.c for a more detailed template | * ------------------------------------------------------------------------- *

4