毕业设计基于MATLAB的伺服系统在线监控平台设计.docx

上传人:b****6 文档编号:6389615 上传时间:2023-01-06 格式:DOCX 页数:12 大小:107.98KB
下载 相关 举报
毕业设计基于MATLAB的伺服系统在线监控平台设计.docx_第1页
第1页 / 共12页
毕业设计基于MATLAB的伺服系统在线监控平台设计.docx_第2页
第2页 / 共12页
毕业设计基于MATLAB的伺服系统在线监控平台设计.docx_第3页
第3页 / 共12页
毕业设计基于MATLAB的伺服系统在线监控平台设计.docx_第4页
第4页 / 共12页
毕业设计基于MATLAB的伺服系统在线监控平台设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

毕业设计基于MATLAB的伺服系统在线监控平台设计.docx

《毕业设计基于MATLAB的伺服系统在线监控平台设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于MATLAB的伺服系统在线监控平台设计.docx(12页珍藏版)》请在冰豆网上搜索。

毕业设计基于MATLAB的伺服系统在线监控平台设计.docx

毕业设计基于MATLAB的伺服系统在线监控平台设计

1总体介绍

基于MATLAB的在线监控平台是指通过MATLAB软件和USB转CAN总线实现单片机上的数据接收和发送,从而实现伺服系统速度、电流的采集及波形显示;实现对速度的控制。

下文将先介绍MATLAB/GUI界面和USB-CAN总线串口通信技术,然后分析基于MATLAB的GUI设计方法,最后设计一个GUI界面。

随着计算机技术的发展,计算机在信号处理中的应用越来越广泛,并且变得越来越重要,它能使得各种复杂的处理算法得以实现。

但是数据采集到计算机后要进行各种处理,使用VC、VB等编程语言就显得不方便。

由于MATLAB提供功能强大的各种计算,只要几个语句就能实现诸如各种方法的滤波、系统辨识、小波变换等,因此采用MATLAB软件非常适合。

Matlab不仅具有强大的科学计算功能,还具有满足一般要求的数据采集以及,界面设计开发功能。

MatlabGUI(GraphicUserInterface)就是内置于Matlab的进行图形界面开发的模块。

本文利用MatlabGUI设计通过串口进行数据发送和接收的界面,基于Matlab的串口通信通过USB-CAN总线实现串口数据发送与接收功能。

2MATLAB及相关技术

2.1MATLAB的发展现状

MATLAB产品系列被广泛地应用于包括信号与图像处理、控制系统设计、通讯、系统仿真等诸多领域,是集数学计算结果可视化和编程于一体,能够方便地进行科学计算和大量工程运算的数学软件。

它的一大特性就是数据采集,报告生成,和依靠MATLAB语言编程产生独立C/C++代码等等。

其在信号处理中的应用显得越来越重要,使得各种复杂的处理算法得以实现。

MATLAB提供了众多外部函数接口,本文从中选择MEX文件接口作为MATLAB对外界进行读写通道,首先USBCAN接口卡进行设计,接下来以这个接口卡为通道,实现了MATLAB对于硬件的访问。

2.2图形用户界面(GUI)

GUI是由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。

MATLAB中的图形用户界面设计向导包括以下6个工具:

1.布局编辑器(LayoutEdtor)——在图形窗口中创建及布置图形对象。

布局编辑器是可以启动用户界面的控制面板,上述工具都必须从布局编辑器中访问,用guide命令可以启动,或在启动平台窗口中选择GUIDE来启动布局编辑器

2.几何排列工具(AlignmentTool)——调整各对象相互之间的几何关系和位置;

3.对象浏览器(ObjectBrowser)——用于获得当前MATLAB图形用户界面程序中的全部对象信息,对象的类型,同时显示控件的名称和标识,在控件上双击鼠标可以打开该控件的属性编辑器;

4.属性查看器(PropertyInspector)——查询并设置属性值;

5.菜单编辑器(MenuEditor)——创建、设计、修改下拉式菜单和快捷菜单;

6.Tab顺序编辑器(TabOrderEditor)——用于设置当用户按下键盘上的Tab键时,对象被选中的先后顺序。

2.3GUI控件对象类型及描述

控件对象是事件响应的图形界面对象。

当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback)。

控件对象及其功能:

1.按钮(PushButtons):

执行某种预定的功能或操作;

2.开关按钮(ToggleButton):

产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback中的内容;

3.单选框(RadioButton):

单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;

4.复选框(CheckBoxes):

单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项;

5.文本编辑器(EditableTexts):

用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;

6.静态文本框(StaticTexts):

仅仅用于显示单行的说明文字;

7.滚动条(Slider):

可输入指定范围的数量值;

8.边框(Frames):

在图形窗口圈出一块区域;

9.列表框(ListBoxes):

在其中定义一系列可供选择的字符串;

10.弹出式菜单(PopupMenus):

让用户从一列菜单项中选择一项作为参数输入;

此外还有坐标轴(Axes)用于显示图形和图像。

MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。

一种为静态控件,是一种不产生响应的控件,如文本框等。

每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。

属性由两部分组成:

属性名和属性值,它们必须是成对出现的。

2.4控件对象的属性

控件对象属性:

第一类是所有控件对象都具有的公共属性,第二类是控件对象作为图形对象所具有的属性。

1.控件对象的公共属性

Parent取值为某个图形窗口对象的句柄,该句柄表明了控件对象所在的图形窗口;

Children取值为空矩阵,因为控件对象没有自己的子对象;

Tag取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象;

UserDate取值为空矩阵,用于保存与该控件对象相关的重要数据和信息;

Visible取值为no或off。

2.控件对象的基本控制属性

BackgroundColor取值为颜色的预定义字符或RGB数值;

ForegroundColor取值为颜色的预定义字符或RGB数值;

Enable取值为on(缺省值),inactive和off;

Extend取值为四元素矢量[0,0width,height],记录控件对象标题字符的位置和尺寸;

String取值为字符串矩阵或数组,定义控件对象标题或选项内容;

Max,Min取值都为数值;

Callback取值为字符串,可以是某个M文件名或一小段MATLAB语句,当用户激活某个控件对象时,应用程序就运行该属性定义的子程序;

Style取值可以是pushbutton,radiobutton,checkbox,edit,text,slider,frame,popupmenu或listbox;

Value取值可以是矢量,也可以是数值,其含义及解释依赖于控件对象的类型。

3.Callback管理属性

BusyAction取值为cancel或queue;

ButtDownFun取值为字符串,一般为某个M文件名或一小段MATLAB程序;

Creatfun取值为字符串,一般为某个M文件名或一小段MATLAB程序;

DeletFun取值为字符串,一般为某个M文件名或一小段MATLAB程序;

HandleVisibility取值为on,callback或off;

Interruptible取值为on或off。

此外还有控件对象的修饰控制属性和控件对象的辅助属性。

3MATLAB串口通信技术

3.1MATLAB外部函数接口简介

MATLAB具有良好的扩展性以及强大的数据分析能力和处理能力,且拥有一套完整的、功能齐全的编程环境,。

但在某些情况下,与外部环境的数据和程序进行实时交换是非常重要的。

但MATLAB只支持串口和很少一部分硬件,不能实现对数据的实时采集,它所处理的数据必须是现成的。

因此它不能很好地用于需要在现场对数据进行分析和处理。

MATLAB本身是一个跨平台的软件,并不具备直接访问硬件的能力。

即使安装了驱动程序并能正常工作的硬件设备,MATLAB也没有统一的形式对其进行访问。

所以对于USBCAN接口卡的设计完成后,需要选择一种MATLAB的外部接口函数,以便于MATLAB通过USBCAN接口卡对于CAN总线上的数据进行接收和发送。

通过定义串口对象的属性,就能定义串口的通信模式,从串口对象属性也能了解串口的状态。

表1串口对象属性

串口属性  含义

BaudRate定义传输波特率

DataBits定义每帧数据的比特位数

Parity定义奇偶校验类型

StopBits定义用于表示帧结束的比特位数

Terminator定义结束字符

ReadAsyncMode定义异步读操作为连续方式还是手工方式

BreakInterruptFcn定义中断事件的回调函数

PinStatusFcn定义当串口的CD,CTSC,DSR或RI针状态变化时触发的回调函数

3.2USB-CAN总线

本课题设计的CAN-USB转接卡的功能是:

采集CAN总线上的数据,通过USB总线和上位控制站之间进行数据传输。

在通讯方面,一方面要满足CAN总线的协议标准,实现开放性,互操作性,在高速通信的情况下做到拥有较好的抗干扰性能;另一方面,转接卡兼容USB2.0总线,转接卡可以通过USB连接到PC机。

其主要设计参数如下:

数据传输速率:

波特率在5KBPS~1MPS范围内;USB总线标准:

满足USB2.0协议的标准支持CAN2.0B协议(兼容CAN2.0A协议);运行环境:

WindowsXP

设计的具体实现是采用单片机通过控制USB控制芯片,与PC机进行通信,从PC机得到采集数据的指令和向PC机上传数据的指令。

同时,要从CAN网络读取数据分析,所以单片机通过不同的片选信号控制,两个CAN控制芯片,分别能够从两路CAN总线上采集数据,和将从PC机得到的数据通过两个CAN控制芯片分别发送出去。

4GUI设计方法

4.1GUI设计标准

一个优秀的界面基本上符合下面的标准:

1.易用性:

设计界面时力求简洁、直接、清晰的反映界面的功能和特征。

组件名称易懂,用词准确,与同一界面上的其他组件相区分,做到顾名思义。

2.规范性:

通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、按钮、右键快键菜单”(GUI设计)的标准格式。

3.统一性:

统一性包括使用标准的组件,也指使用相同的信息表现方法,如在字体、标签风格、颜色、术语、显示错误信息等方面保持一直。

4.合理性:

界面大小合适布局简洁、有序、易于操作。

在MATLAB命令行中输入Guide,弹出如图1所示的GUI设计向导控制面板。

MATLAB为GUI设计准备了四种模板,分别为BlankGUI(Default)、GUIwithUicontrols(带控件对象的GUI模板)、GUIwithAxesandMenu(带坐标轴与菜单的GUI模板)与ModalQuestionDialog(带模式问话对话框的GUI模板)。

创建一个MATLAB用户图形界面的基本步骤为:

1.决定这个用户图形界面需要什么样的元素,每个元素需要什么样的函数。

在纸上手动粗略地画出组件的布局图。

2.调用MATLAB工具guide对图像中的控件进行布局。

图像窗口的大小,排列和其中的控件布局都可以利用它进行控制。

3.我们可以用MATLAB属性编辑器(propertyinspector)给每一个控件起一个名字(Tag),还可以设置每一个控件的其他特性,例如颜色,显示的文本等。

4.把图像保存到一个文件中。

当文件保存后,程序将会产生两个文件,文件名相同而扩展名相同。

fig文件包括你创建的用户图形界面,M文件包含加载这个图像的代码和每个GUI元素的主要响应。

5.编写代码,执行每一个与回调函数相关的行为。

4.2创建用户图形界面

选择默认模板,生成如图2所示的模板界面。

在设计界面左边的控件对象区选取所需对象,拖拽到右侧空白区要放置的地方创建该对象。

按照此方法,在空白界面下分别放置了俩个Pop-upMenu(列表框),九个StaticText(静态文本框),九个PushButton(命令按钮),六个EditText(文本编辑框)和四个Frames(边框),调整对象的位置,一个RadioButton(单选按钮)调整对象的位置,形成如图3所示的GUI界面。

图1GUI向导控制面板

 

图2默认的模板界面

 

图3创建的模板界面

4.2.1控件的设计

在绝大多数的图形用户界面中都包含控件。

控件是图形对象,它与菜单一起用于建立图形用户界面。

通过使用各种类型的控件,可以建立起操作简便,功能强大的图形用户界面。

与菜单对象一样,可以通过命令行方式与GUI设计工具两种方式来建立控件。

在命令行方式下,可以通过函数uicontrol来建立控件对象。

该函数的调用格式为:

controlhandle=uimenu('PropertyName1',PropertyValue1,…)

controlhandle是创建的控件对象的句柄值;PropertyName1是控件的某个的

属性名,PropertyValue1是与属性名相对应的属性值。

对象属性编辑器在GUI设计向导控制面板中按下PropertyEditor按钮可打开对象属性编辑器。

对象属性编辑器界面分为2个部分:

上部是图形对象列表,列出了所有根对象下的子对象。

包括每个图形窗口对象以及窗口对象中的各控件对象。

用户可以在此选择自己所需要设置的图形对象。

下部的是图形对象的属性列表。

列出了用户所选中的图形对象的所有属性名称以及属性的值。

当用户选中一个属性,则在两个文本框中会分别显示出属性的名称和当前的属性值,可以利用此对其属性的修改。

4.2.1回调函数的编写

回调程序编辑器的打开有如下方法:

A.在GUI设计向导控制面板中按下CallbackEditor按钮。

B.在图形窗口中的Toolw菜单下选择CallbackEditor选项。

一个GUI应用软件的实现,最终是要通过对控件对象的操作来完成,而这些操作必定是通过MATLAB中函数代码的执行来完成的。

函数代码的编制既可以通过编写回调函数完成,然后在编写时可以把该控件的函数代码直接书写在Callback中;也可以把函数代码放在一个自定义的。

M文件中,而在Callback中只将其文件名写上。

在编写回调函数时,handles是一个特别有用的结构数组,它以图形窗口中的所有对象的Tag值为域,存储着所有图形对象的句柄,通过handles可以方便地进行数据调用。

再利用所有对象都具有的UserData属性来进行数据存储、传递,编写一个完美的回调函数就是一件轻而易举的事了。

对控件执行默认操作时,matlab自动执行按钮的callback下的代码。

     比如按钮,就是单击按钮一下。

所以对于编程的新人来说,只用在相应函数下,添加自己期望执行的操作代码就可以了。

比如说希望鼠标在控件上单击时执行某写代码,那将代码添加在ButtonDownFcn下就好。

希望在控件销毁(比如说某窗口)时,执行一些代码,那可以把代码添加在DeleteFcn下面。

控件是否支持“单击”,“鼠标划过”“鼠标松开”等等,可以去help查看它的Fcn有哪些。

在控件上右键选择viewcallbacks就可以看见它所支持的常用的回调函数callbacks。

需要对什么进行反应,直接点进去,添加自己的代码就可以了。

5.系统设计

5.1图形功能分析

1.用MATLAB为串口数据采集系统设计界面完成串口参数设置,串口数据采集的开关以及数据读写;

2.设计界面配置数据采集系统的参数,曲线显示界面与图形变换与处理。

5.2软件界面

系统的界面包括了链接设备区,CAN波特率选择下拉菜单,ID方式选择下拉菜单例的滚动条,使用滤波屏蔽滤波单选按钮,链接及释放设备按钮;发送接收测试区发送接收按钮读写数据框;详细设计如图4所示。

图4运行界面窗口

5.3主界面的实现

5.3.1串口选择

使用下拉菜单方式让使用者方便的进行选择设置。

1.CAN波特率选择范围5KBPS~1MPS,如图5所示;

图5波特率选择

2.ID方式选择包括2515方式,SJA方式,右对齐方式。

如图6所示;

图6ID方式选择

5.3.2串口数据参数设置

硬件设备USB-CANA2

Qm_usb.dll是接口DLL;

Qm_usb.dll放置在应用软件Exe文件所在目录下。

函数说明

初始化设备函数:

Init_can(com_NUM,Model,CanBaudRate,SET_ID_TYPE,FILTER_MODE,RXF,RXM)

说明:

本函数用于初始化USB接口,并对CAN总线进行基础设置。

参数:

CanBaudRate:

CAN波特率

com_NUM:

设备连接的端口。

0:

自动选着,其他值:

端口号

Model:

设备类型1:

A1型2:

A2型3:

A3型

SET_ID_TYPE:

意义

0

2512方式

1

SJA1000方式

2

右对齐方式

示例

Init_can(com_NUM,Model,CanBaudRate,SET_ID_TYPE,FILTER_MODE,RXF,RXM)

varret:

integer;

REF,RXM:

array[0..3]ofBYTE;

ret:

=Init_can(0,2,20,0,2,@REX,@RXM);//初始化函数演示

5.3.2接收和发送数据函数

发送数据

函数:

Can_sent(IDbuff;Databuff;FreamType,Bytes)

IDbuff:

ID缓冲区四字节数组

Databuff:

数据缓冲区八字节数组

FreamType:

发送的帧类型。

接收数据

函数:

Can_receive(IDbuff;Databuff;FreamType,Bytes)

在连接设备按钮的回调函数callback中写入程序

tt2=handles.text2;

loadlibrary('QM_USB.dll','qm_usb.h')

fm=calllib('QM_USB','Init_can',0,2,400,1,0,[0000],[0000]);

iffm==0

set(tt2,'String','已连接');

set(tt2,'ForegroundColor',[0.20.40.3]);

else

set(tt2,'String','未连接');

set(tt2,'ForegroundColor','red');

end

在释放按钮的回调函数callback中写入程序

tt2=handles.text2;

fm=calllib('QM_USB','Quit_can');

unloadlibrary('QM_USB')

iffm==0

set(tt2,'String','未连接');

set(tt2,'ForegroundColor','red');

end

设计总结

致谢

 

参考质料

[1]李显宏.MATLAB7.x界面设计与编译技巧[M].北京:

电子工业出版社,2006.

[2]秦襄培.Matlab图像处理与界面编程宝典[M].北京:

电子[J].中国制造业信息化,2008,15(23):

15-18.

[3]李炎新.用Matlab实现高速数据采集自动化[J].测控技术,2007.11.9-13.

[4]余成波,杨箐.数字信号处理及Matlab实现[M].清华大学出版社,2005:

87-126.

[5]陈矗光,毛涛涛,王正林,等.精通MatlabGUI设计[M].北京:

电子工业出版杜。

2008.

[6]刘秀.用Matlab实现硬件端口采集的方法[J].兵工自动化,2007,(3):

1-7.

[7]王彦良.基于MATLAB绘制各种根轨迹的图形用户接口设计[J].教育教学论坛,2010,(20):

2-5.

[8]王明伟,李茜,汤伟.基于MATLAB串口通信的数据采集系统的设计[J].微计算机信息,2009,(8).6-9.

[9]杨佳,王英志.柳彦春.GUI设计在数字信号处理课程中的应用[J].商情,2010,(8):

1-3.

[10]程伟,程文波,李灿平.基于MATLAB的实时数据采集与分析研究[J].电子测量技术,2008,(8).

[11]张立炎,张天贺,黄亮,等.燃料电池空气供给系统建模及基

参考文献于MatlabGUI仿真界面设计[J].系统仿真技术,2008,10.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1