船舶航向实验系统及航向控制器的设计与仿真课设报告Word文档下载推荐.docx
- 文档编号:14852334
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:14
- 大小:73.19KB
船舶航向实验系统及航向控制器的设计与仿真课设报告Word文档下载推荐.docx
《船舶航向实验系统及航向控制器的设计与仿真课设报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《船舶航向实验系统及航向控制器的设计与仿真课设报告Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
该航向控制器通过实物仿真,帮助学生更直观地理解航向控制的过程,增强感性认识,培养学生的研究能力、综合应用能力和创新能力;
同时本课程设计所设计的船舶航向控制器是一个开放的平台,有兴趣的同学可以根据需要添加相应的程序来实现所需功能。
文中基于Matlab/GUI的串口通信功能的编程实现表明利用Matlab/GUI可以进行包含一般界面元素的界面开发,在此基础上,加入串口通信功能,实现数据的实时采集与分析处理,并进行图形化显示。
在实物仿真中通过串口将计算机与船舶模型连接构成闭环船舶航向控制系统,利用Simulink中的控制器控制船舶模型,此控制器可直接使用工具箱中的控制器和也可使用设计好的控制器,更换方便,操作简单,易于实现。
图形用户界面(GraphicalUserInterface,简称GUI)是提供人机交互的工具和方法。
Matlab用一个包含多种不同风格用户控件对象的图形窗口代表用户界面。
用户必须对每一个对象进行编程,使用户在GUI中的行为能够达到相应的目的。
Matlab/GUI是一种新型的图形用户界面开发方式,特别适合能够熟练运用Matlab语言进行仿真但是对VC界面开发了解不够深入的科技工作者。
本课程设计所设计航向控制器为PID自整定控制器,控制器部分是利用Matlab逻辑工具箱进行设计,此方法设计步骤简单,易于实现,可直接与Simulink工具箱连接进行仿真,并且以该控制器为核心的仿真图也可与仿真实验平台进行完美的连接,因此可以通过仿真实验平台验证控制器的性能。
关键词:
GUI航向控制PID实物仿真
第一章概论
1.1引言
本课程设计所设计的船舶航向控制器采用Matlab环境中的Simulink仿真工具箱和GUI界面。
Matlab是Mathworks公司推出的一款功能强大的数学软件。
它集数值分析、矩阵计算、信号处理和图形显示于一身,包含大量高度集成的函数可供调用,命令语句功能强大为科学研究,工程设计及众多学科领域提供一种简洁、高效的编程工具,并在图像处理、控制设计、信号检测、金融建模设计等领域得到广泛应用。
因此在制作各种教学软件或信号处理软件时,在Matlab提供的GUI(GraphicalUserInterface)上利用Matlab语言编写核心代码并构建框架是一种不错的选择这不但减少了代码编写的工程量而且制作出的软件同时具有界面友好和能够方便进行各种数据处理及图像分析等特点。
随着信息社会的不断推进,具有不同功能的应用软件已成为人们生活、学习及工作中不可缺少的一部分。
比如,工作中经常用到的文字处理软件、图形图像软件等,对于这些软件的设计,程序员大多习惯于选择VC、Java、VB等高级编程语言编写代码,因为这些编程语言制作出的软件界面友好,功能强大。
然而在对大量数据进行各种复杂分析和处理时,相比于Matlab编程语言而言,这些高级语言则处于明显的劣势。
Matlab不仅具有强大的科学计算功能,还具有界面设计开发功能。
Matlab图形用户界面是有别于VC界面和Java界面的是一种新型界面开发方式。
对于熟悉Matlab而不想编写大量VC代码的科研人员来说,Matlab/GUI无疑是一个最佳选择。
它既能嵌入已有的仿真程序,又能把仿真的图形化结果以人机交互的动态方式展现给操作者,给人深刻的印象,同时仿真代码的不可见性为一些不熟悉Matlab的操作者提供了操作界面的可能。
在基于Matlab/GUI制作的软件中关键需要解决三大问题:
1、界面功能;
2、界面外观的优化;
3、不同GUI之间的调用。
因此,本课程设计给出一个利用Matlab/GUI制作的仿真控制器的实例。
此仿真控制平台是为了满足学生船舶控制实验的需要。
本课程设计在设计仿真控制平台中涉及到航向控制器的设计,航向控制器是仿真平台的基础,在航向控制器的基础之上实现仿真平台上的相关功能。
1.2图形用户界面概述
Matlab是一套高性能的数值计算和可视化软件,它作为新兴的逻辑语言和可视化工具,有着其他编程语言所不能比拟的优势,如Fortran语言是一种专门用于科学计算的语言,但其图形界面的功能比较弱,利用其开发的程序,用户界面不友好,使用起来不方便。
而VisualBasic,VisualC等可视化编辑语言开发出来的程序界面友好,但由于其不是专门用于科学计算的语言,因此其科学计算功能较弱。
由于Matlab强大的应用功能,用户越来越多。
Matlab的应用可让用户不再需要了解大量底层与开发无关的工作,极大地提高了开发效率。
Matlab为解决用户开发和客户交互的局限,提供了一个全新的GUI设计方案。
图形用户界面(GUI,GraphicalUserInterface)是提供人机交互的工具和方法。
GUI是使用图形对象(例如按钮、文本框、滚动条和菜单等)创建的用户界面,这些对象对计算机用户而言都有明确的含义,例如移动滚动条将会改变数值,按下OK按钮将完成并应用用户的设置,同时设置对话框消失。
当然用户必须保证这些不同对象间能够协调地工作。
Matlab用一个包含多种不同风格的图形窗口代表用户界面。
Matlab的GUI为开发者提供了一个不脱离Matlab的开发环境,更有益与Matlab程序的GUI集成。
在Matlab6.5中,图形用户界面是一种包含多种图形对象的界面,典型的图形界面包括图形显示区域、功能按钮空间以及用户自定义的功能菜单等。
为了让界面实现各种功能,需要对各个图形对象进行布局和编程。
这样,当用户激活对应的GUI对象时,就能执行相应的行为。
最后,必须保存自己创建的GUI,使得用户可以应用GUI对象。
在Matlab中,所有对象都可以使用M文件进行编写。
GUI也是一种Matlab对象,因此,可以使用M文件来创建GUI。
使用M文件创建GUI的方法也是最基础的,使用其他方法创建GUI图形界面时,实现图形控件的各种功能时,也需要编写相应的程序代码。
除了使用M文件来创建GUI对象之外,Matlab还为用户开发图形界面提供了一个方便高效的集成开发环境:
Matlab图形用户界面开发环境(Matlabgraphicaluserinterfacedevelopmentenvironment)简称GUIDE,其主要是一个界面设计工具集。
Matlab6.5将所有GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。
除了可以使用GUIDE创建GUI之外,还可以将设计好的GUI界面保存为一个FIG资源文件,自动生成对应的M文件。
该M文件包含了GUI初始化代码和组建界面布局的控制代码。
使用GUIDE创建GUI对象执行效率高,可以交互式地进行组件布局,还能生成保存和发布GUI的对应文件。
本课程设计选择用Matlab的图形用户界面设计是因为不需要编写大量的代码,它既能嵌入已有的仿真程序,又能与仿真环境相结合。
第二章GUI的创建
从MatlabS.X版本开始,为了方便用户制作图形界面Matlab提供了一个交互式的设计工具GUIDE。
但是从Matlab6.X以来,GUIDE的设计界面己经发生变化,本论文采用的是Matlab6.5的GUIDE。
GUIDE实际上是一套Matlab的工具集,它由版面设计工具、属性编辑器、菜单编辑器、调整工具、对象浏览器、TAB次序编辑器六部分组成。
2.1GUI设计概述
在GUI设计程序前,首先考虑设计对象的结构和开发流程。
不同的要求设计出来的GUI也不同。
一个优秀的界面基本符合易用性、统一性、规范性和合理性的标准。
为了高效率的开发一个GUI,必须按照一定的开发步骤,下面给出一般步骤图(如图2.1):
图2.1GUI设计步骤图
2.2GUI实现
GUI编程实现主要分为三大块:
组件的布局、属性的编辑和回调函数的编辑。
1、组件的布局
在GUIDE的界面设计区添加组件的方法很简单,只要用鼠标从组件面板里点击并拖拉组件即可实现。
添加菜单有专门的菜单编辑器来完成。
完成添加后可使用GUIDE的特征工具调整组件的位置和使用TAB次序编辑器调整TAB次序达到最优化配置,来完成布局。
2、属性编辑
通过属性编辑可以改变当前组件的属性值,在菜单编辑里可改变菜单的属性值。
当改变组件属性值时,可能会影响到界面的整体效果,因此在改完属性值滞后还要对组件的布局进行优化。
GUI实现的关键还在于回调函数的处理。
3、回调函数
在Matlab6.5里回调函数直接在M文件中编辑,这样的事件管理模式,便于用户的理解和编辑。
当一个图形对象发生特殊事件时,GUI传递要执行的子函数名到M文件中,该子函数称为回调函数(也称callback函数)。
用户对控件操作(如鼠标单击、双击或移动、键盘输入等)的时候,控件对该操作进行响应,指定执行的函数,就是该控件的回调函数。
该函数不会主动运行,只在用户对控件执行特定操作时执行。
2.3采用GUIDE创建GUI
采用GUIDE创建一个完整的GUI图形界面,步骤如下:
1,GUI对象布局
2、设置对象的相应属性
3、编写回调函数
2.3.1GUI组件介绍
1、触控按钮(PushButton)
在PushButton双击,调用属性查看器,可以设置PushButton的属性。
2、静态文本(StaticText)
StaticText通常用于显示其他对象的数值、状态等。
3、可编辑文本框(EditText)
EditText允许用户修改文本内容,用于数据的输入显示。
4、单选按钮(RadioButton)
RadioButton用于显示一组互斥的状态。
其对象之多只有一个的value值为l。
5、坐标轴(Axes)
Axes用于数据的可视化,即显示图形或者图像。
Axes是核心图形对象的容器,它包含下列GUI核心图形对象:
image,light,lint,patche,rectangle,surface和text对象。
2.3.2菜单编辑器
菜单编辑器生成可以为每个菜单选项生成空回调函数的子函数,包括菜单名,其主要用于建立菜单栏(MenuBar)和右键菜单(ContextMenus。
若窗口的MenuBar属性值为none,则只显示用户设计的菜单;
若MenuBar属性值为Figure则用户设计的菜单出现在标准菜单之后。
2.3.3创建GUI模型
图2.3为GUI模型图。
图2.3GUI模型图
界面有两个发送单元,分别为航令和航向发送,航令为控制船舶转速的大小,航向为设定的角度,输入相应的数值,点击发送,则船舶模型会相应的转动。
建立一个GUI模型之后,相应的会出现源程序代码,以下为其中的发送接收程序:
functionpushbutton1_Callback(hObject,eventdata,handles)
globalcount;
count=0;
s=serial('
COM1'
)%建立串口
s.BytesAvailableFcnMode='
terminator'
;
%'
byte'
s.BytesAvailableFcnCount=22
s.BytesAvailableFcn=@rxd_mycallback;
%{'
mycallback'
};
fopen(s);
%打开串口
a=get(handles.edit1,'
S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 船舶 航向 实验 系统 控制器 设计 仿真 报告