您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MATLAB论文-MATLAB与VC混合编程技术在数控机床动态特性监测分析中的应用
MATLAB论文-MATLAB与VC混合编程技术在数控机床动态特性监测分析中的应用专业:物理与电子技术学院08自动化学号:08118071姓名:张鹏1.MATLAB简介1.1MATLAB概述MATLAB最初是作为矩阵实验室(MatrixLabora2tory)用来提供通往LINPACK和EISPACK矩阵软件包接口的。后来,它逐渐发展成为通用科技计算和图视交互系统的程序语言,其数据的基本单元是矩阵。它的指令表达与数学、工程中常用的习惯形式十分相似,从而使许多用C或Fortran实现起来十分复杂和费时的问题用MATLAB就可以轻松地解决。MAT2LAB的典型应用包括:数学计算、算法研究、数据分析和计算结果可视化、建模与仿真等。1.2MATLAB的特点MATLAB有三大特点:一是功能强大。主要包括数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算。二是界面友好,编程效率高。MATLAB是一种以矩阵为基本单元的可视化程序设计语言,语法结构简单,数据类型单一,指令表达与标准教科书的数学表达式相近。三是开放性强。MATLAB有很好的可扩充性,可以把它当成一种更高级的语言去使用。使用它很容易编写各种通用或专用应用程序。1.3MATLAB的图像处理工具概述MATLAB6.1(R12.1)提供了20类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示;图像文件I/O;图像算术运算;几何变换;图像登记;像素值与统计;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。1.4线性控制系统的分析1.控制系统的计算机辅助控制系统的计算机辅助技术是一门以计算机为工具进行的的控制系统设计分析的技术。20世纪80年代后,基于MATLAB的仿真软件包Simulink成为控制系统设计仿真软件中最受欢迎的软件系统。2.利用Simulink进行线性控制系统的时域分析时域分析方法是经典控制理论中常用并且实用的方法。这种方法主要用控制系统对阶跃信号的响应曲线来了解系统的动态特性,借助Simulink的分析,我们可以分析并观察到简单二阶系统的阶跃信号曲线。例1:二阶系统的闭环传递函数可以写成如下形式G(s)=nnnnSS2222其中:ξ为阻尼比,ωn表示无阻力情况下的震荡频率。随着阻尼比的不同,系统闭环极点的位置也不同,从而有不同的祝你特性:当0﹤ξ﹤1时,为欠阻尼情况当ξ=1时,为临界阻尼情况当ξ﹥1,过阻尼情况当ξ=0,无阻尼情况为了能够演示这四种情况,在ωn=1即无阻力情况下的震荡频率为1Hz的情况下,去ξ=0,0.4,0.8,1.0,1.4五种情况,对二阶系统的闭环传递用simulink进行仿真。仿真的框图如下:用step产生阶跃信号,并把初始阶跃时间设置为1;用多个transferFcn表示ξ在取不同值的时候的二阶系统闭环函数;Mux模块将5个取值情况下产生的信号整合,同时发送给scope示波器。仿真结果如下:从仿真的结果来看,二阶系统随着阻尼比的减小,震荡的幅度越来越大,在无阻尼情况下出现了等幅振荡,而在过阻尼情况下,二阶系统的过渡曲线单调上升。在ξ=0.4到0.8时,系统的过渡过程不仅具有较短的响应时间,而且振荡幅值较小,这是二阶系统一般的理想工作状态。2.MATLAB与VC混合编程技术在数控机床动态特性监测分析中的应用2.1数控机床动态特性监测分析系统介绍图1为机床状态测试分析系统工作流程图,通过传感器获取运行设备的状态信息,对采集数据进行分析处理,识别出设备当前的状态,通过分析软件做出诊断决策,进而对机床进行技术调整,通过这一反馈过程[3],可以提高机床的特性,从而提高加工质量和生成效率。美国NI公司在这个技术领域处于世界领先水平,图2为NIPXI-9230实物图。本课题中所开发的监测系统通过采集设备的振动信号,加速度信号,温度信号,对设备进行实时监测,并通过采集得到的数据对设备进行特性分析和诊断,根据数控机床动态特性监测分析系统的功能,选择合适的硬件,包括传感器,数据采集卡,上位机。最为核心的部分为数控机床动态特性监测分析系统软件的设计,按功能需要,该系统软件的总体结构如图3所示:系统按工作过程划分为三个层次:第1层次:数据采集与信号调理。传感器获取的信号较微弱,通过对电流或电压信号进行放大、滤波处理后,用采集设备将模拟信号转化为数字信号传输给计算机保存。第2层次:实时监视与状态识别。对设备进行信号采集后,即获得了设备运行状态信息,通过便携式计算机实时显示监测过程中的振动波型、频谱分析图形、轴心轨迹等。在线信号分析过程主要包括常见的典型的时域、频域等分析内容。第3层次:在线分析与智能诊断。根据获取的设备运行状态信息,如典型特征值提取,结合基于已有的故障诊断方法来评价设备当前的状态,如果可能存在故障,能反映出故障的相关信息。其中第3层次功能模块的实现是本系统设计的重点也是难点,选择合适的程序开发手段是解决这个问题的关键,故障分析与智能诊断模块功能的核心算法可以选择使用MATLAB编程语言(M代码)开发,利用VC可以设计出人性化的界面,所以选择VC与MATLAB混合编程,下面将重点介绍混合编程技术的研究。2.2VC++与MATLAB混合编程的实现方法MATLAB与C语言的接口技术即MATLAB与VC混合编程技术,它是通过应用程序接口(API)[5]实现的。一般而言,MATLAB与VC混合编程的实现方法有以下三种:1)通过引擎(Engine)[6],采用客户机服务器的计算模式,通过Window的ActiveX通道和MATLAB进行连接。具体应用时,往往在VC中设计程序框架,以编译的程序作为前端客户机;通过调用MATLAB引擎在后台实现与服务器的连接,实现动态通信;2)应用MATLAB数学函数库,MATLAB中包含了内容丰富的函数库,而且还提供了与VC的数学函数接口,用户可以方便的在VC的IDE(集成开发环境)中调用;3)通过DLL[7]实现VC与MATLAB的混合编程。DLL是一个可执行的二进制文件。把很多通用的功能放在DLL中,可以供多个应用程序调用,这样可以很好的减少外部存储空间的占有量,并实现代码的共享。2.3VC++与MATLAB混合编程各方法的对比与选择第一种方法对调用MATLAB的工具箱很实用,用这种方法进行编程开发,方便结合MATLAB命令窗口调试程序,能充分发挥MATLAB编程语言简洁容易掌握的优点,可以更好实现MATLAB工程计算优势,便于复杂的数学算法在工程实践中的应用。第二种方法开发软件对程序员要求较高,要同时对两款软件都很熟悉,对于大型复杂算法来说,这种方法将使程序开发工作量过大。用户不能在基于MATLAB、C/C++数学函数库的应用程序中使用eval()和input(),不能调用MATLAB图形句柄系统的函数,不能调用MATLAB工具箱函数,MATLAB中的一些方法在C/C++中得不到支持,这种方法不能发挥MATLAB的巨大优势。第三种方法实用于小型软件的开发,可以整体减少文件外部存储空间的占有量,但是对于大计算量的程序而言,这种方法开发的软件稳定性差。介于数控机床动态特性监测分析系统的复杂性,特别是该系统中应用到了很多复杂的故障诊断算法,如粒子群优化算法[8],自适应共振理论的混合智能诊断算法[9]等等。但是这些繁杂的算法利用MATLAB实现起来比较方便,采用MATLAB引擎的方式实现混合编程,使程序开发工作量明显减少,便于软件维护,提高故障监测诊断分析的速度与精度。体会与心得1.MATLAB作为当前空寂控制技术界最流行的面向工程与科学计算的高级语言,他可以轻易地再现C语言几乎全部的功能。从本次的实验看来,在线性控制系统的分析和仿真中,MATLAB拥有非常方便快捷的数据处理能力。2.对于复杂算法,特别是涉及到大型数据计算时,文中所提的混合编程方法能更好的发挥MATLAB工程计算的优点,同时也增强了程序整体的稳定性。3.MATLAB和其他的程序语言一样,“3分课本7分上机”一定要动手才行,不能光看。多想、多思考、多尝试,就能熟练的运用它。找不到得模型多查help,既能很快的找到要的图形,又能知道在什么地方,下次更方便找到。查考文献《VC++与MATLAB混合编程之引擎操作详解》-杜鸿飞.《数控机床进给系统动态特性辨析与分析方法研究》-胡峰《simulink建模与仿真》-姚俊编著
本文标题:MATLAB论文-MATLAB与VC混合编程技术在数控机床动态特性监测分析中的应用
链接地址:https://www.777doc.com/doc-2882273 .html