本科毕业论文扭矩测量下位机接收系统设计

上传人:仙*** 文档编号:61135013 上传时间:2022-03-10 格式:DOC 页数:43 大小:885KB
收藏 版权申诉 举报 下载
本科毕业论文扭矩测量下位机接收系统设计_第1页
第1页 / 共43页
本科毕业论文扭矩测量下位机接收系统设计_第2页
第2页 / 共43页
本科毕业论文扭矩测量下位机接收系统设计_第3页
第3页 / 共43页
资源描述:

《本科毕业论文扭矩测量下位机接收系统设计》由会员分享,可在线阅读,更多相关《本科毕业论文扭矩测量下位机接收系统设计(43页珍藏版)》请在装配图网上搜索。

1、西安石油大学本科毕业设计(论文)扭矩测量下位机接收系统设计摘要: MATLAB7.0的图形用户界面 (Graphical User Interface,GUI)设计功能较强,可以方便地实现图形化窗口界面的交互方式。利用这些用户界面,用户可以和计算机之间进行信息交流,并通过编写控件的回调函数(callback)完成特定的功能。本文利用MATLAB7.0自带的通信类(SERIAL)开发出通信与数据采集软件,通过人机界面完成对扭矩、工具面角、井斜角、速度等数据的采集,设计出具有较强的数据处理能力的数据接收系统。使用MATLAB7.0的GUIDE设计出旋转导向钻井数据采集系统用户界面,设计了菜单,安排

2、了串口选择、绘图、保存图形等控件,并进行相应的属性设计,为菜单、控件编写相应的回调函数(callback),实现了串口选择、串口参数选择、图形绘制、图形保存等功能,可以有效的监测和管理设备的运行。关键词:MATLAB;GUI;数据采集;串口通信;回调函数The Design of Torque Measurement Receiving SystemAbstract: MATLAB7.0 GUI (Graphical User Interface, GUI) design function is powerfull, can easily achieve the graphical inter

3、face of the interactive window. Using these interfaces, users can exchange information with computers, and through program the callback function of the controls to complete a specific function. In this paper, MATLAB7.0 own type of communication (SERIAL) developed a communications and data acquisitio

4、n software, through the Man-machine interface to complete acquisiting the data of the torque, tool angle, deviation angle, speed , designed with a strongly data-processing capacity of the data receiving system. The use of GUIDE to design MATLAB7.0 Rotary Steerable Drilling data acquisition system us

5、er interface, designing menu, arranging the controls of serial selection, drawing, saveing of graphical ,and designing of the corresponding attributes ,programing the corresponding callback function for menu and controls which to complete the choosing of serial, serial parameters and rendering of gr

6、aphics,saveing of graphics, etc.can be effective monitoring and management of the operation of equipment.Keywords: MATLAB; GUI; data acquisition; serial communication; callback function目 录1 绪论. 1.1 课题的意义. 1.2 国内外研究现状. 1.3 旋转导向钻井技术简介. 1.4 论文的主要工作.2 GUI开发图形用户界面. 2.1 MATLAB GUI概述 2.1.1 GUI基本概念 2.1.2 GU

7、I层次结构 2.2 MATLAB GUIDE设计方法. 2.3 使用GUIDE设计界面. 2.3.1 设计原则. 2.3.2 设计步骤. 2.3.3 构思草图.3 扭矩测量下位机接收系统设计. 3.1 总体界面设计. 3.1.1 绘制控件. 3.1.2 设置属性. 3.1.3 创建菜单. 3.1.4 对象浏览器. 3.1.5 Tab顺序浏览器. 3.2 模块编程. 3.2.1 数据接收. 3.2.2 参数设置. 3.2.3 数据处理. 3.2.4 绘图. 3.2.4 文件保存处理. 3.3 串行通信实现.4 结论.参考文献. 致谢.附录A.附录B.1 绪论1.1课题的意义随着计算机技术的广泛应

8、用,智能化,数字化技术的不断推广,利用单片机对数据进行现场采集,加工传输,存储,监控的智能化系统的应用几乎无所不在。智能化系统的应用不但使很多复杂的操作变得简单易行,而且在很大程度上提高了生产过程中由于人为疏忽而造成的生产事故的发生率。经过对旋转导向钻井工具的学习及对稳定平台地面测试系统的了解与认真分析,开发了对稳定平台地面测试的下位机数据采集系统。该系统使用MATLAB开发的GUI(人机交互界面)通过串口通信将上位机测得的钻头的转矩,转速,工具面角,井斜角这些参数进行实时采集,并可以实时绘制曲线图谱或数据表格,除此以外还提供了数据保存功能。该系统直观明了,实时性强,操作方便。1.2国内外研究

9、现状作为具有科学计算,符号运算和图形处理等多种功能的强有力实现工具,近年来MATLAB这一软件已得到业界的普遍认可,应用领域已扩展到数值计算,数据处理,统计分析,工程等各个方面,在各大公司,科研机构和高校得到广泛运用,其自身也因此得到迅速发展,功能不断扩充,现已发展到MATLAB 7.4。从当前软件发展趋势来看,友好的图形用户界面(Graphical User Interface, GUI)已成为应用程序的基本交互入口,MATLAB这一强大的计算机软件也应具备功能强大的GUI功能。为此,MATLAB提供了对GUI的支持,是MATLAB开发的程序可为越来越的用户接受。GUI 是 Graphica

10、l User Interface 的简称,即图形用户界面,准确来说 GUI 就是屏幕产品的视觉体验和互动操作部分。 GUI 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人机环境三者作为一个系统进行总体设计。 这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。 GUI 即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到 GUI 在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专

11、门从事 GUI 的研究与设计,同业间也成立了若干机构,以互相交流 GUI 设计理论与经验为目的。随着中国 IT 产业,移动通信产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们,从此不再需要死记硬背大量的命令,取而代之的是可用用通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。1.3旋转导向钻井技术简介1.3.1旋转导向

12、钻井系统旋转导向钻井系统的核心是井下旋转导向钻井工具系统。西安石油大学张绍槐带领的团队对调制式旋转导向钻井的工作原理及关键技术进行了研究,取得很大成绩。所研究开发的调制式旋转钻井导向钻井系统主要包括地面监控系统、双向通信系统、井下工具系统、井下测量系统及短程通信系统等五部分,原理图如图1.2所示。图1-1 旋转导向钻井原理示意图地面监控系统系统的主要功能可概括为以下几个方面:(1) 随钻监测旋转导向钻井工具在井下的工作状况,此即所谓的“监”;(2) 当实钻井眼轨迹偏离了设计轨道,能够及时分析和计算出轨迹的偏离程度,设计出新的待钻井眼轨道,并产生使旋转导向系统按新的井眼轨道钻进的控制指令,此即所

13、谓的“控”;(3) 把设计井眼轨道和实钻井眼轨迹以及其它相关的重要参数可视化地显示出来,便于现场工程技术人员直观地掌握和分析钻头所在位置以及旋转导向钻井工具对井眼轨迹的控制情况。1.3.2 旋转导向钻井工具地面测试系统简介地面调试实验是在地面模拟井下实验样机上进行,如图1-2所示。在模拟实验台架上用电动机通过齿轮带动上下发电机旋转来代替井下的压力泥浆所产生的动力。用力矩电机代替钻铤动力,用压力控制盘阀阻力大小来模拟井下条件。将电子仓骨架安装在模拟井下样机实验平台上,并组装好模拟井下实验平台其他部件如盘阀等,调整好实验样机的水平度、刚度,并将其挠度减小到最小,使实验条件尽可能的模拟工具井下工作环

14、境。图1-2 旋转导向钻井工具地面模拟实验台架1.4 论文的主要工作本论文在第二章中介绍了MATLAB GUI的基本概念、组成及操作,以及使用GUIDE的设计方法对以后的设计有所帮助。第三章主要是介绍扭矩测量下位机接收系统设计、总体界面设计、模块化编程以及串口通信实现。2 GUI开发图形用户界面 MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在科学领域中成为计算机辅助设计和分析,算法研究和应用开发的基本工具和首选平台。2.1 MATLAB GUI概述 2.1.1 GUI基本概念 如果

15、数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。但是如果想向别人提供应用程序,喜爱那个进行某种技术、方法的演示,想制作一个提供反复使用且操作简单的专业工具,那么图形用户界面也许是最好的选择。一个好的GUI能够使程序更加容易使用。它提供给用户一个常见的界面,还提供一些控件,例如按钮、列表框、滑块、菜单等。用户图形界面应当是最容易理解且操作是可以预告的,所以当用户进行某一项操作时,它知道如何去做。例如,当鼠标在一个按钮上发生了单击事件,利用消息驱动机制,用户图形界面初始化的操作,并在按钮的标签上对这个操作进行描述。创建MATLAB用户图形界面必须有以下3个基本元素:(1)

16、 组件在MATLAB GUI中的每一个项目(按钮、标签、边界框等)都是一个图形化组件。组件可分为3类:图形化控件(按钮、编辑框、列表、滚动条等) 、静态元素(窗口和文本字符串) 、菜单和坐标系。图形化控件和静态元素由函数uicontrol创建,菜单由函数uimenu和uicontextmenu创建,坐标系经常用于显示图形化数据,由函数axes创建。(2) 图形窗口GUI的每一个组件都必须安排在图像窗口中。在化数据图像时,图像窗口通常会被自动创建。但还可以用函数figure来创建图像窗口,空图像窗口经常用于放置各种类型的组建。(3) 回应如果用户用鼠标单击或用键盘输入一些信息,那么程序就要有相应

17、的动作。鼠标单击或输入信息是一个事件,如果MATLAB程序运行相应的函数,那么MATLAB函数肯定会有所反应。例如,如果用户单击一按钮,这个事件必然导致相应的MATLAB语句执行。这些相应的语句被称为回应。只要执行GUI的单个图形组件,就必须有一个回应。2.1.2 GUI层次结构实现一个GUI的过程包括两个基本任务:一是GUI的组建布局,另一个是GUI组件编程。另外,用户还必须能够保存并发布自己的GUI,使得用户开发的图形用户界面能够真正得到应用。所用这些功能都能通过图形用户界面弄好环境来完成。在MATLAB中GUIDE是一个组件布局工具集,能够生成用户所需的组件资源并保存在一个FIG文件;其

18、次,GUIDE还可以生成一个GUI初始化和发布控制代码的M文件,该文件为回调函数(用户在图形界面中激活某一控件时要执行的函数)提供了一个框架。事实上,用户也可以通过调用组件函数M文件来实现GUI中所有组件的布局,但是GUIDE交互式的组件布局将会大大减小工作量。GUIDE可以首先在布局GUI的同时生成以下两个文件:(1) FIG文件。该文件包括GUI的图像窗口和所有子对象(包括用户控件和坐标轴)的完全描述以及所有对象的属性值。(2) M文件。该文件包括用户用来发布和控制界面和回调函数(这里作为子函数)的各种函数。该文件中不包含任何组件的布置信息。 可以这样说,MATLAB图形界面程序的核心就是

19、句柄图形的应用,对句柄图形的充分了解将使得MATLAB图形界面程序的编写更加容易。 句柄图形是一组底层图形函数的名称,这此函数用来在MATLAB中生成图形,它提供了对图形的高级控制,其基本思想是:MATLAB的每一个可视部分就是一个对象,每个对象都有一个相应的唯一标识符,即句柄。通过对句柄图形的操作,就可以对该句柄图形所对应的对象进行控制,比如修改属性、调用其回调过程等。2.2 MATLAB GUIDE设计方法MATLAB的GUIDE开发工具为用户提供以下几种组件布局工具:(1) 组件布局编辑器:添加和安排图形窗口的对象;(2) 排列工具:排列对象的相对次序;(3) 属性编辑器:检查和设置属性

20、值;(4) 对象浏览器:观察本次运行图形对象句柄的层次关系;(5) 菜单编辑器:创建图形窗口菜单。这些工具集中在布局编辑器界面中,使用guide命令可以显示该界面,如图2-1所示。图2-1 GUIDE开始界面如果对一个已存在的GUI进行布局,可以使用菜单打开该GUI或使用以下命令装载已存的图形窗口(mygui):Guide mygui.fig创建一个新的GUI框架布局时,在添加需要布置的组建之前,应该使用GUIDE应用程序选项对话框对GUI进行组态。一般都通过组件不知编辑器Tools菜单的GUI Options选项来打开GUIDE应用程序选项对话框。在该对话框中,用户可以决定是否需要GUIDE

21、为GUI生成M文件以及其他选项,如图2-2所示。图 2-2 GUI Options选型窗口 组态完成后就可以使用组件布局工具来布置所需的组件。通过使用布局工具,用户可以添加所需的用户控件对象并设置所需的属性。布局完成并存盘后,所有的对象信息就保存在相应的FIG文件中了。下一步要对GUIDE生成的M文件进行编程来实现用户界面的交互功能,编程工作简单分以下几个部分:(1) 理解M文件。理解GUIDE创建的函数的意义,从而进一步编程。(2) 管理GUI数据。MATLAB提供一个句柄结构体来方便地访问GUI中的所有组件句柄,用户还可以使用这个结构体来存储M文件所需的全局数据。(3) 设计交叉平台的兼容

22、性。GUIDE提供一个设置方法来保证用户GUI在不同平台上的良好外观。(4) 回调函数编程与应用。用户对象的回调函数中有一些回调函数属性,用户可以通过设置这些属性来获得所需的操作。(5) GUI图形窗口行为控制2.3 使用GUIDE 设计界面 2.3.1 设计原则 由于要求不同,设计出来的界面也就千差万别了,设计好的图形界面需要考虑一下因素:(1) 简单性设计界面时,力求简洁、清晰地体现界面的功能和特征。删去可有可无的一些设计,保持整洁。图形界面要直观,减少窗口数目,避免在不同的窗口进行来回切换。(2) 一致性即要求界面的风格尽量一致,不要和已经存在的界面风格截然相反。 (3) 习常性设计界面

23、时,应尽量使用人们所熟悉的标志和符号。2.3.2设计步骤界面的制作包括界面设计和程序实现,其过程不是一步到位的,需要反复修改,才能获得满意的界面,一般制作步骤如下:【步骤1】 分析界面所要求实现的主要功能,明确设计任务;【步骤2】 构思草图,从使用者和功能实现的角度出发,并上机实现;【步骤3】 编写对象的相应程序,对实现的功能进行逐项检查。2.3.3 构思草图根据所要求实现的功能构思草图如图2-3。为实现串口选择的功能设计了串口选择区,串口的波特率、奇偶校验位这些参数都通过参数菜单来实现;这里只使用一个坐标轴使界面更为简洁,为了能在转矩、转速、工具面角、井斜角四幅图之间进行切换设计下拉菜单来实

24、现其功能;绘图开始按钮完成绘图工作,图形保存可以讲所绘图形保存至指定位置;帮助菜单可以帮助用户了解该界面的使用方法;当完成所有操作后可以点击退出按钮退出图形用户界面。图 2-3 界面构思草图3 扭矩测量下位机接收系统设计3.1 总体界面设计3.1.1 绘制控件打开GUI设计工具,选择空白模块,出现图3-1的图形设计界面。熟悉了各个交互控件的应用场合和功能,就可以在GUIDE界面设计自己的图形用户界面了。用户首先应该根据GUI界面的构思设计确定设计区域的大小,通过鼠标拖拽设计区域右下方的黑色方格位置就可以调整设计区域大小,保证能放下足够的控件。然后,可以像GUI界面中添加交互控件,有两种方法可以

25、实现:(1) 选择左侧栏面板中相应的交互控件,然后再设计区域中单击鼠标左键就可以把该控件添加到设计区域的相应位置。(2) 用户也可以单击鼠标选择某种交互式控件后,保持鼠标左键按下状态,拖拽移动鼠标到设计区域的相应位置后松开鼠标左键,这样该控件就被添加到设计区域的相应位置。用户可以通过鼠标操作改变交互控件的位置和大小。选择设计区域中的一个交互控件后,该控件四角会出现黑色小方块,通过移动鼠标拖拽这些小方块就可以实现对交互空间大小的调整。在控件的其他位置单击并拖拽鼠标可以改变控件在设计区域中的位置。 图3-1 GUI设计模版界面根据所绘草图将所需各个控件拖拽进设计区域相应的位置利用位置调整工具(Al

26、ignment Tool),可以对GUI对象设计区内多个对象的位置进行调整。从GUI设计窗口的工具栏上选择Align Objects命令按钮,或者选择Tools菜单下的Align Objects菜单项,就可以打开位置调整器对设计对象进行垂直对齐、水平对齐等调整,直到将各个按钮位置调到满意为止,调整控件界面如图3-2示。 图3-2 调整后GUI界面3.1.2 设置属性(1) GUI属性设置创建好GUI界面需要的各个交互控件并调整好大概位置后,就需要设置这些控件的属性,属性设置窗口如图3-3。选中对象或者双击对象,打开对象属性查看器(Property Inspector),在属性设置窗口下完成各个

27、控件的属性设置。首先把图形的名称属性设置为“suibianba”,在后面的程序中就是对名称为suibianba的图形对象进行编程,其属性设置如图3-3所示。 图 3-3 GUI属性设置(2) 按钮属性设置设置第一个按钮的String属性为“绘图开始”;Tag属性为“pushbutton1”,如图3-4所示。在MATLAB中每个对象有唯一的Tag属性,通过此属性来确定对象,进行程序设计。同理设定另外两个按钮的String属性,依次为“图形保存”,“退出”;Tag属性依次为“pushbutton2”,“ pushbutton3”。如图3-5 ,3-6所示。图 3-4 按钮绘图开始的属性设置 图 3

28、-5 按钮退出的属性设置 图 3-6 按钮图形保存属性设置(3) 下拉菜单属性设置设置下拉菜单中的各项,双击打开属性对话框,选中String属性的图标,打开String属性的编辑框,输入转矩、井斜角、工具面角和转速,如图3-7所示,再确认即可; 图 3-7 属性编辑框(4) RadioButton属性设置将两个RadioButton均拖入至Panel区域后,将Panel的Title设置为“串口选择”;将两个RadioButton的string分别改为“串口1”,“串口2”;tag分别设置为 “chuankoubutton1”,“ chuankoubutton2”。如图3-8所示。 图 3-8

29、Radiobutton 属性设置3.1.3 创建菜单利用菜单编辑器,可以创建、设置、修改下拉式菜单。从GUI设计窗口的工具栏上选择Menu Editor命令按钮,或者选择Tools菜单下的Menu Editor子菜单,就可以打开菜单编辑器,如图3-9所示。菜单编辑器的左上角有两个按钮,选择第一个按钮可以创建下拉式菜单,选择第二个按钮可以创建现场菜单。本文中只创建下拉式菜单。建立一级菜单菜单、参数、帮助和关闭,菜单的子菜单为“打开串口”;参数的子菜单为“波特率”与“奇偶校验类型”;帮助菜单为该GUI界面使用说明;设置结果如图3-10所示。 图3-9 菜单编辑器窗口 图 3-10 设计成型菜单3.

30、1.4 对象浏览器 利用对象浏览器,可以查看当前设计阶段的各个句柄图形对象。从GUI设计窗口工具栏上选择Object Browser命令按钮,或者选择View菜单下的Object Browse子菜单,就可以打开对象浏览器。利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值,通过对象浏览器工具,可以查看当前GUI界面下包含的所有控件、菜单项、快捷菜单项等,对象浏览器窗口还能显示这些对象的组织关系,如图3-11所示。从图3-11可见,最顶层是一个图形窗口对象figure,其中包括uicontrol、axes和uimenu等图形对象,这和前面创建过程是完全一致的。 图 3-1

31、1 对象浏览器3.1.5 Tab 顺序浏览器利用Tab顺序编辑器(Tab Order Editor),可以设置用户按键盘上Tab键对象被选中的先后顺序。选择Tools菜单下的Tab Order Editor菜单项,就可以打开Tab顺序编辑器,如图3-12所示,在GUI设计窗口中创建了4个具有Tab属性的对象,通过上下移动来改变与它们相对就的Tab顺序。 图 3-12 Tab顺序编辑器3.2 模块编程 3.2.1 数据接收本文中,将从旋转导向钻井稳定平台中获得的井斜角、工具面角、速度及控制输出等数据,从单片机发送到MATLAB串口。发送格式如图3-13:图 3-13上位机发送数据格式数据一位一位

32、发送,每次真正发送的是8位的数据,不发送起始位和停止位。单片机先发送一字节转矩、一字节井斜角,由于工具面角为1.5字节,所以先将其低八位发送后,再将后四位与转速的前四位拼为一字节发送,转速的后12位与控制输出的低四位拼为两字节依次发送,然后发送控制输出高八位。由于每8个字节为一组,而数据共为7字节,所以用0添加一字节构成一组数据进行发送。 图 3-14 MATLAB接收数据流程当设备发出数据后将8位数据通过串口将数据传入输入缓冲区,再通过MATLAB串口依次接收单片机发送的各个数据。接收数据格式与单片机发送数据格式相同,将数据移入计算机寄存器后,再将其放入输入缓冲区,最后以二进制形式读取数据并

33、保存在out中。接收数据后,只保存每字节中的数据位和奇偶校验位,不保存起始位和停止位。下面为下拉菜单回调函数编程:% - Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)global hexuan global ss4global ss1global ss2global ss3% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a fu

34、ture version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,String) returns popupmenu1 contents as cell array% contentsget(hObject,Value) returns selected item from popupmenu1val=get(hObject,Value);str=get(hObject,String);switch strval case 转矩 l

35、oad(F:matlabworkss4.txt) case 井斜角 load(F:matlabworkss1.txt) case 转速 load(F:matlabworkss3.txt) case 工具面角 load(F:matlabworkss2.txt)endhexuan=strval3.2.2 参数设置完成串口设置后开始设置各个参数。其中包括波特率、奇偶校验位、数据位、停止位等参数。下面是部分参数设置编程的程序:if scom=1 s1=serial(COM1); %创建串口1的设备对象s1 s1. ReadAsyncMode =continuous; fopen(s1); s1.Inp

36、utBufferSize=1024; %输入缓冲区为256B,缺省值为512B s1.OutputBufferSize=1024; %输出缓冲区为256B,缺省值为512B s1.Timeout=0.5; %Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10s Out=fread(s1);else s2=serial(COM2); %创建串口2的设备对象s2 s2. ReadAsyncMode =continuous; fopen(s2); s2.InputBufferSize=1024; %输入缓冲区为256B,缺省值为512B s2.OutputBufferSize=1024; %

37、输出缓冲区为256B,缺省值为512B s2.timeout=0.5; %Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10s Out=fread(s2);end3.2.3 数据处理3.2.4 绘图MATLAB串行通信系统设计中,接收旋转导向钻井系统的一些重要参数数据,其中包括井斜角、工具面角和速度等。以下就是将接收到的各个数据,利用MATLAB编程在GUI界面中绘制成曲线,使数据信息更为清晰、直观。在选择串口和串口的各种参数后将数据保存至ss1、ss2、ss3和ss4四个文本文档中以便调用,完成上述步骤后通过下述编程完成绘图:% - Executes on button press

38、in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)global hexuanglobal ss4global ss1global ss2global ss3 switch hexuan case 转矩 x=ss4; case 井斜角 x=ss1; case 转速 x=ss3; case 工具面角 x=ss2; end t=1:length(x); %t为从1到x长度的整数、plot(t,x,t,x,*) %绘制图形xlabel(时间(s),FontSize,9)ylabel(数据,FontSize,

39、9)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)通过改程序可以分别将四种数据分别绘出图形,通过对全局变量hexuan的选择决定所绘图形是哪一组数据。3.2.4 文件保存处理MATLAB保存图片有四种方法:(1) 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式。(2) edit-co

40、py figure,再粘贴到其他程序。(3) 用saveas命令保存图片。(4) 使用plot函数后紧接着用print函数。本文中使用saveas命令保存图片,具体程序如下:% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)global plot% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version o

41、f MATLAB% handles structure with handles and user data (see GUIDATA)saveas(plot,F:matlabworkssX.bmp,bmp) %将图形保存为bmp格式图形,图文件为ssX.bmp 绘图后保存图形如图3-15、3-16、3-17、3-18井斜角(度)图 3-15 井斜角图形(mpr)速转图 3-16 转速图形工具面角(度)图 3-17 工具面角图形(N/M)矩转图 3-18 转矩图形3.3 串行通信的实现MATLAB本身是一个跨平台的软件,并不具备直接访问硬件的能力。即使安装了驱动程序并能正常工作地硬件设备,MA

42、TLAB也没有统一的形式对其进行访问。但是MATLAB7.X的面相对象技术,已用一个对象把计算机串口封装起来。只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用Serial函数就可以创建串口对象。串口对象有很多属性,通过定义串口对象的属性,就能定义串口的通信模式,从串口对象属性也能了解串口的状态。要通过串口传输数据,还必须先用fopen打开串口。数据传输结束后要用fclose函数关闭串口。MATLAB对串行口的编程控制主要分为四个步骤:(1) 创建串口设备对象并设置其属性;scom=serial(com1);%创建串口1的设备对象scom(2) 打开串口设备对象;fopen(sco

43、m);(3) 读写串口操作;初始化并打开串口调协对象之后,现在可以对串口设备对象进行读写操作,串口的读写操作支持二进制和文本(ASCII)两种方式。当Matlab通信数据采用西方(ASCII)方式时,读写串口设备的命令分别是fscanf、fpritf;当Matlab通信数据采用二进制方式时,读写串口设备的命令分别是fread、fwrite。(4) 关闭并清除设备对象。fclose(scom);%关闭串口设备对象delete(scom);%删除内存中的串口设备对象clear scom; %清除工作空间中的串口设备对象当不再使用该串口设备对象时,顺序使用以上3条命令,可以将所创建的串口对象对象清除

44、,以免占用系统资源。下面是串口设置编程的完整程序:if scom=1 s1=serial(COM1); %创建串口1的设备对象s1 s1. ReadAsyncMode =continuous; fopen(s1); s1.InputBufferSize=1024; %输入缓冲区为256B,缺省值为512B s1.OutputBufferSize=1024; %输出缓冲区为256B,缺省值为512B s1.Timeout=0.5; %Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10s Out=fread(s1);else s2=serial(COM2); %创建串口2的设备对象s2 s

45、2. ReadAsyncMode =continuous; fopen(s2); s2.InputBufferSize=1024; %输入缓冲区为256B,缺省值为512B s2.OutputBufferSize=1024; %输出缓冲区为256B,缺省值为512B s2.timeout=0.5; %Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10s Out=fread(s2);endswitch B %波特率选择 case 1 if scom=1 s1.BaudRate=1200; else s2.BaudRate=1200; end case2 if scom=1 s1.Baud

46、Rate=2400; else s2.BaudRate=2400; end case3 if scom=1 s1.BaudRate=4800; else s2.BaudRate=4800; end case4 if scom=1 s1.BaudRate=9600; else s2.BaudRate=9600; endend if scom=1 %关闭串口 fclose(s1); delete(s1); clear(s1); else fclose(s2); delete(s1); clear(s2); end4 结 论MATLAB是一款集高性能数值计算与高度可视化于一身的计算机软件。使用该软件

47、来实现与上位机的串行通信,不但可以发挥出其数据处理的强大能力,而且还将其可视化这一能力运用的淋漓尽致。可以使用户非常方便的实时观察数据与处理数据。本文主要实现了以下功能:1. 通过对串行通信技术的研究与对MATLAB控制串口技术的研究,以及对旋转导向钻井技术的初步了解,掌握了整个传输过程的数据传送方式;2. 使用MATLAB GUIDE 设计出了较为方便的用户图形界面;3. 通过编程实现了与上位机的通信,从而将数据显示与图形用户界面上;4. 通过编程将图形用户界面所显示图形保存。由于时间紧迫,并且个人水平有限,所以本课题有待提高的地方仍然有很多,可以归纳为如下几点:1. 图形用户界面可以更为方

48、便及友好;2. 串行通信过程可以使用中断方式进行串行通信,这样数据的实时性更为突出;3. 编程可以更为简练与有效。参考文献1. 王玲,王正林,毛涛涛等. 精通MATLAB GUI设计M. 北京:电子工业出版社.,2008:1-2.2. 薛钧义 张彦斌. MCS51 96系列单片微型计算机及其应用M.西安:西安交通大学出版社,2005:80-94.3. 汤楠,霍爱清,汪跃龙,等.旋转导向钻井工具稳定平台控制功能试验研究J.石油学报,2008,028(02):1-2.4. 丁旭东,周静,李炳剑.基于MATLAB GUI的钻井工具姿态采集处理系统J.电子测试,2008,06:6-8.5. 王巧花,叶

49、平,黄民. 基于MATLAB的图形用户界面(GUI)设计J.煤矿机械,2005,03:60-62. 6. 张秋红,李玉忍. 用MATLAB制作图形用户界面J. 电脑开发与应用,2003,03:10-14.7. 唐庆菊,卜迟武,徐克飞. 食品双螺杆挤压机GUI操作界面设计J.哈尔滨商业大学学报,2005,06:766-768. 8. 李显宏. MATLAB7.X 界面设计与编译技巧M. 北京:电子工业出版,2006:225-240.9. 曾祺. 面向对象嵌入式GUI的技术与实现D. 湖南:湖南大学,2007.10. 纪元法,孙希延,施浒立. MATLAB的两种图形用户界面参数输入方法J. 电脑知

50、识与技术,2008,03:728-731.11. 赵云鹏. MATLAB串口通信在数据才集中的应用J. 微计算机信息,2006,01:109-112.12. 王明伟,李茜,汤伟. 基于MATLAB串口通信的数据采集系统设计J. 微计算机信息,2005,23:89-91.13. 施晓红,周佳. 精通GUI图形界面编程M. 北京:北京大学出版社,2003:10-13.14. 陈怀琛. MATLAB及其在理工课程中的应用指南M. 西安:西安电子科技大学出版社,2000:13-20.15. 王洪元. MATLAB语言及其在电子信息工程中的应用M. 北京:清华大学出版社,2004:17-18.16. 王

51、正林,刘明. 精通MATLAB7 M. 北京:电子工业出版社,2003:50-60.17. 陈小平,李长杰.MATLAB及其在电路与控制理论中的应用M. 合肥:中国科学技术大学出版社,2004:31-32.18. 张金生,马中华. 单片机在钻头扭矩及转速传感系统中的应用D. 甘肃:兰州大学,2001.19. Delores M.Etter,David C.Kuncicky,Holly Moore. MATLAB 7及工程问题解决方案M. 北京:机械工业出版社,2006:17-19.20. 蒲俊,吉佳峰.MATLAB工程数学解题指导M. 上海:浦东电子出版社,2001:44-56.致 谢 本论文是在霍爱清老师精心指导下完成的。本文从选题,GUI界面设计,到编写回调函数,设置各种参数等,自始至终都凝聚着霍老师的辛勤汗水。在这几个月的毕业设计中,霍老师一直耐心解答我在设计中遇到的问题,帮助我开拓设计思路,并鼓励我将论文完成得更好。此外,霍老师一丝不苟的工作作风,严谨求实的态度以及丰富的经验,都是我学习的榜样,都使我获益匪浅,终身受益,相信这些都会成为我人生非常宝贵的财富。在此,特向我的老师致以深深的谢意和崇高的敬意。最后,请在毕业设计过程中所

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!