基于海洋环境数据库的潜器运动控制系统仿真软件设计.doc_第1页
基于海洋环境数据库的潜器运动控制系统仿真软件设计.doc_第2页
基于海洋环境数据库的潜器运动控制系统仿真软件设计.doc_第3页
基于海洋环境数据库的潜器运动控制系统仿真软件设计.doc_第4页
基于海洋环境数据库的潜器运动控制系统仿真软件设计.doc_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学 号 06041406 密 级 哈尔滨工程大学本科生毕业论文基于海洋环境数据库的潜器运动控制系统仿真软件设计院(系)名 称:自 动 化 学 院专 业 名 称:自 动 化学 生 姓 名:王 重 雷指 导 教 师:赵 玉 新 副教授2010年6月基于海洋环境数据库的潜器运动控制系统仿真软件设计 王重雷 哈尔滨工程大学哈尔滨工程大学本科生毕业论文基于海洋环境数据库的潜器运动控制系统仿真软件设计院 (系):自 动 化 学 院专 业:自 动 化学 号:06041406学 生 姓 名:王 重 雷指 导 教 师:赵 玉 新 副教授2010年6月哈尔滨工程大学本科生毕业论文摘要潜器在深海的开发和利用中作为一种高技术手段扮演着重要的角色,可用于多种重要而又特殊的任务。为了使潜器能顺利完成不同任务,对潜器的水下作业运动姿态有不同的技术要求,对潜器运动控制系统的设计显得尤为重要。为了设计出可用且效果良好的潜器运动控制器,并且避免在实际的潜器操纵过程中产生未知的严重后果,事先进行运动控制系统的软件仿真是不可或缺的。针对以上情况,本课题以电子海图显示与信息系统为基础平台,并利用相关分析、编程工具完成一水下潜器运动控制系统仿真软件。本文主要阐述了在Windows平台下,以现有的电子海图显示与信息系统为基础显示平台,利用仿真软件MATLAB为后台计算和分析工具,完成一个基于海洋环境数据库的潜器运动控制系统仿真软件。通过在VC.Net环境下Qt和MATLAB混合编程、调用MATLAB引擎,完成了仿真软件的关键功能仿真模块的设计与开发,并实现了二者功能和优势的良好结合。关键词:潜器;控制系统;仿真;Qt;MATLAB;混合编程ABSTRACTAs a high-tech instrument, underwater vehicle (UV) plays an important role in the deep-sea exploiture. It can also accomplish many important and special missions. To accomplish different missions, there are different technique requests to make of UVs underwater motion pitch. For this reason, higher requirements of control system for UV are brought forward. And it is indispensably for designing a usable and effective UV motion controller to have correlative simulation in advance.Contrapose the situations brought forward hereinbefore, this item intend to use ECDIS (Electronic Chart Display and Information System) as basic platform, use interrelated analyse and programme tools to complete a UV motion control system simulation software.This paper expatiates on Windows platform, how to use existing ECDIS as basic display platform, use the simulation softwareMATLAB as background calculate and analyse tools to complete a UV motion control system simulation software, which is based on real ocean environment database. This paper complete the key function of simulation softwaresimulation module by using mixed-programme of Qt and MATLAB, MATLAB engine in the VC.Net circumstance. It also realizes the function and predominance combination of Qt and MATLAB.Key words:UV ; control system ; simulation ; Qt ; MATLAB ; mixed-programme哈尔滨工程大学本科生毕业论文目录第1章绪论11.1课题研究的背景11.2课题研究的发展现状11.2.1传统潜器运动控制方法21.2.2本课题中使用的控制方法31.2.3潜器运动控制系统仿真的发展41.3课题研究的目的和意义41.4论文主要研究内容及结构安排5第2章仿真平台设计与开发的基础知识72.1平台开发的环境及语言72.1.1Windows平台软件开发集成环境Visual Studio .NET 200372.1.2Qt语言概述72.2后台分析工具MATLAB92.2.1MATLAB产品及语言概述102.2.2采用MATLAB作为后台分析工具的目的及意义132.2.3仿真平台使用的混合编程技术152.3电子海图显示与信息系统介绍162.3.1电子海图显示与信息系统概述162.3.2仿真平台依赖的电子海图显示与信息系统的功能说明172.4本章小结18第3章潜器运动控制203.1潜器悬浮运动模型203.1.1潜器悬浮运动垂直面动力学模型203.1.2潜器悬浮运动水动力模型243.1.3潜器悬浮动力学模型273.2潜器运动控制器模型293.2.1潜器悬浮运动的解耦控制303.2.2潜器悬浮控制器设计323.3本章小结33第4章仿真模块的分析与设计344.1仿真模块设计的基础知识344.1.1调用MATLAB引擎需要的环境设置344.1.2MATLAB引擎库部分函数说明354.2仿真模块人机交互界面的设计374.2.1人机交互界面的设计原则374.2.2人机交互界面的设计方案384.3仿真模块功能的分析与设计404.3.1模型选择及参数设置功能404.3.2仿真参数设置功能414.3.3航行仿真功能414.3.4各子功能模块之间的关联424.4本章小结42第5章仿真模块的开发与实现445.1模型选择及参数设置的开发与实现445.1.1人机交互界面445.1.2模型选择及参数设置功能465.2仿真参数设置的开发与实现515.2.1人机交互界面515.2.2仿真参数设置功能535.3航行仿真的开发与实现545.3.1人机交互界面545.3.2航行仿真功能555.4本章小结58结论59参考文献60致谢62第1章绪论1.1课题研究的背景海洋约占整个地球总表面积的71%,广阔的海洋不仅是自然资源的宝库,也是各国展示自己科技以及军事实力的新天地,二十一世纪将是人类全面认识、开发利用和保护海洋的时代。海洋开发利用的焦点在于深海高新技术,发展深海高新技术已成为世界新技术革命的重要内容,受到许多国家的高度重视;而水下潜器作为一种高技术手段,在深海的开发和利用中扮演着重要的角色,可用于海底地形地貌勘察、海洋资源及地质调查、海洋环境和水文参数测量、生物考察、航道量测、极区考查等不同任务1-2。20世纪70年代以来,随着科技的发展,世界上先后研制建造了一批先进的探测装置和各种类型的深潜器。同时为了使潜器完成上述各项任务,对潜器的水下作业运动姿态有不同的技术要求,对潜器运动控制系统的设计显得尤为重要。又考虑到实际海况对潜器控制的影响,这就对设计潜器控制系统提出了更为严格的要求。只有设计出性能稳定可靠的潜器运动控制系统,潜器在海洋开发利用中的作用才会真正体现出来,可以说潜器的运动控制系统是它的灵魂,为了得到真正满足使用要求的潜器控制系统,前期的设计和仿真是不可缺少的重要工作,这也正是本课题研究的意义所在。1.2课题研究的发展现状为了完成各种复杂的作业要求和安全航行,就必须使潜器按作业要求自动保持其位置和姿态在给定范围内,且能够有效地补偿风、浪、流等海洋环境要素的干扰影响。因而运动控制就成为潜器能否完成预定任务的一项关键性技术,是其完成指定任务的前提和保障。早在20世纪50年代,美国在其实施的“潜艇集中控制”(SUBIC)计划中,就设计了运动控制系统3。潜器的主要任务是垂直面的深度控制和水平面内的航向控制。通常在研究潜器的水下操纵性时,先假设其运动在无限深广的同一静水中,即不考虑波浪及周围海洋环境变化的影响。但是由于潜器的运动特性:控制对象的高度非线性,且由于在不同的工作点时(速度,深度,姿态角,周围环境等),系统模型会发生变化,故具有时变性和不确定性;各个自由度上存在强耦合,尤其是水平面运动参量与垂直面运动参量的相互耦合影响,容易引起运动模型的偏差。这就为控制器的设计以及控制精度的保持带来了难度。所设计的控制器必须能够容忍这些不确定性,并且具备对应建模误差及诸多参数变化的鲁棒性2。在运动控制系统仿真仿真方面,主要趋势是使用MATLAB作为分析仿真工具,通过搭建潜器运动模型并设置相关模型、仿真参数进行仿真,进而得到能够直观表现控制器效果的图像,便于对控制器进行分析和改进。1.2.1传统潜器运动控制方法应用于潜器运动控制的传统方法主要如下:1、经典控制理论的应用早期潜器运动控制中应用的一般是经典控制理论,即PID控制器。其最大的优势就是设计简单,各参数的作用、意义明确。同时PID控制有一定的鲁棒性,在一定的约束条件下能够达到不错的控制性能。2、现代控制理论的应用发端于上世纪50年代末至60年代初,以控制系统的状态空间描述形式为分析手段的现代控制理论,为潜器的运动控制研究提供了新的方法和手段。设计的控制器精度和可靠性大大提高,而且可以进行实时处理、操纵决策;有良好的执行机构,能够实现最佳机动。然而不管是经典的PID控制还是基于状态空间模型的最优控制,这些控制方法都是建立在控制对象的精确数学模型上的。由于潜器运动控制的特殊性和严重非线性,很难得到其精确的数学模型,且具有严重的非线性。各个运动自由度之间的强耦合作用,使其工作点范围变化较大,很难得到令人满意的线性化模型。再加上其工作环境的不确定性,导致以上基于控制对象线性化模型的控制策略,误差较大,且适应性和鲁棒性差。控制效果在实际海况中往往不能令人满意。3、变结构控制,鲁棒控制理论以及智能控制理论的应用变结构控制是上世纪50年代在苏联发展起来的、针对不确定动力学系统控制的一种重要方法。采用变结构控制的系统,对于状态空间的一个特定空间中的参数变化和外部抖动具有完全的或较高的鲁棒性和不变性。此外它还具有降阶、解耦、响应速度快、动态性能好和实现简易等优点。鲁棒控制理论继承了以往的鲁棒性研究方法,以基于使用状态空间模型的频率设计方法为主要特征,提出了从根本上解决控制对象模型不确定性和外界扰动不确定性问题的有效方法,不仅能够用于单输入单输出反馈控制系统的鲁棒分析和设计,而且可以成功地应用到多输入多输出的场合,能够设计出性能更优、鲁棒性更好的反馈控制系统。智能控制是在人工智能及自动控制等多学科基础上发展起来的前沿交叉学科,为处理不确定性系统的控制系统设计问题提供了新的思路和方法。主要用来解决那些用传统方法难以解决的复杂系统控制问题2。1.2.2本课题中使用的控制方法鉴于潜器在水中运动时,是具有6个自由度的运动刚体,是一个强耦合的非线性系统。同时潜器还具有耦合、非线性、时变等动力学特点,针对这样的非线性系统,本课题中在控制器的设计上采用了更合适具体情况的非线性控制方法。非线性是实际系统中普遍存在的现象,有些是由于系统本身的固有特性所产生的,有些是因系统变量之间的非线性关系而造成的,还有一些是人为引入的非线性环节。因此,非线性系统是具有一般性的系统。利用反馈的方法将非线性系统变换为线性系统,然后再按线性系统理论完成系统综合的方法称为反馈线性化方法4,是非线性系统控制研究方向的一次重要突破。经过近20年的发展,反馈线性化方法已经成为非线性系统控制理论中一种有效的方法,包括微分几何法和逆系统方法等。1.2.3潜器运动控制系统仿真的发展在实际制造潜器控制系统之前,必须对所设计的系统进行仿真,验证其能够满足设计目的、要求。传统的仿真方法基本上是在得到潜器运动模型之后,简单地通过MATLAB进行仿真,这样的方法简单实用,可以通过仿真得到潜器运动控制系统的直观表现,对所设计的控制器效果有全面的了解,便于进一步改正、优化。这样的方法也有不够严谨、便利的地方:不能够综合考虑海洋环境对潜器实际运动的影响作用;只是简单地使用MATLAB作为分析仿真工具,在仿真过程中有些不便,比如:对各个模型以及控制器的参数设置都比较繁琐,仿真结果的查看不够方便等。本课题中并不直接使用MATLAB对仿真结果进行观察,而是设计专门软件进行模型导入、参数设定以及结果显示,将MATLAB作为后台仿真工具,使得仿真过程大为简化,查看结果也方便很多。1.3课题研究的目的和意义在深海的开发和利用中,潜器作为一种高技术手段扮演着重要的角色,可用于多种重要而又特殊的任务。为了使潜器完成上述各项任务,对潜器的水下作业运动姿态有不同的技术要求,对潜器运动控制系统的设计显得尤为重要。通过查阅相关资料分析可知,潜器在水中运动时,是具有6个自由度的运动刚体,是一个强耦合的非线性系统。同时潜器还具有耦合、非线性、时变等动力学特点,使得其运动控制的难点有:很难确定潜器所受到的水动力影响;难以精确地建立其动力学模型1。又考虑到实际海况对潜器控制的影响,这就对设计潜器控制系统提出了更为严格的要求。为了设计出可用且效果良好的潜器运动控制器,并且避免在实际的潜器操纵过程中产生未知的严重后果,事先进行运动控制系统的软件仿真是不可或缺的。本课题结合科研项目、以电子海图显示与信息系统为基础平台,基于真实的海洋环境数据库并利用相关分析、编程工具完成一水下潜器运动控制系统仿真软件。方便地对搭建好的潜器运动控制系统进行仿真,并进行相关结果的查看。1.4论文主要研究内容及结构安排本课题主要是在Windows平台下,以现有的电子海图显示与信息系统为基础显示平台,利用仿真软件MATLAB为后台计算和分析工具,完成一个基于海洋环境数据库的潜器运动控制系统仿真软件。通过在VC.Net环境下Qt和MATLAB混合编程实现二者功能和优势的良好结合。通过调用MATLAB引擎,完成软件的关键功能模型及参数的选择设定、仿真参数的设定、仿真过程及结果体现的设计与开发。上述三项关键功能均属于软件的仿真模块部分:1. 模型及参数的选择设定功能完成对潜器模型的选择、模型内相关参数的导入;2. 仿真参数的设定完成在MATLAB后台进行仿真时的参数包括仿真时间、步长等的设置;3. 仿真过程及结果体现控制仿真开始,并将结果以响应曲线的形式绘制出来。这三项功能都属于软件的关键功能。具体来说,主要工作集中在以下几个方面:1. 了解潜器运动模型以及控制器模型的建立方法,理解模型各组成部分的意义;2. 熟练掌握Qt编程语言与VC.Net集成开发环境的使用;3. 学习掌握MATLAB仿真技术,主要包括Simulink仿真工具的使用,模型的搭建;4. 深入研究Qt、VC.Net与MATLAB的混合编程的方法,利用VC.Net集成开发环境及以上学习的知识,来完成仿真模块各个子功能的开发;5. 在Windows操作系统下的电子海图显示与信息系统基础平台上,完成整个仿真软件的设计与开发,最终达到功能完善、齐全,界面美观、人性,软件运行可靠等指标要求。论文主体结构为如图1.1所示。图1.1论文主体结构图第2章仿真平台设计与开发的基础知识本章将对课题研究中使用到的软件基础知识,包括Windows环境平台软件开发集成环境Visual Studio .NET 2003、Qt语言以及MATLAB进行介绍。还将对潜器运动控制系统仿真软件的基础平台电子海图显示与信息系统进行说明。2.1平台开发的环境及语言2.1.1Windows平台软件开发集成环境Visual Studio .NET 2003Visual Studio .NET 2003是Microsoft的第二代开发工具,用于构建和部署功能强大而安全的连接Microsoft .NET的软件。 Visual Studio .NET 2003 包含Windows .NET Framework的一个增强版本。Windows .NET Framework 1.1版在前一版本的基础上增添了新的能力、功能增强和文档改进。通过对.NET Compact Framework的集成支持,Visual Studio .NET 2003将移动和嵌入式设备,如 Pocket PC和其他采用Microsoft Windows CE .NET操作系统的设备,带入.NET。如今,开发人员能够使用同样的编程模型、开发工具及编程技能,来构建应用范围广泛从小设备到最大的数据中心的应用程序。Visual Studio .NET 2003包含了:Microsoft Visual Basic .NET,Microsoft Visual C+ .NET,Microsoft Visual C# .NET。用户可根据自己的需求选择不同的开发环境。2.1.2Qt语言概述1、Qt简介Qt是一个跨平台的C+图形用户界面库, 由挪威TrollTech公司出品,目前包括Qt,基于Framebuffer的Qt Embedded, 快速开发工具Qt Designe,国际化工具Qt Linguist 等。部分Qt支持所有Unix系统,当然也包括Linux,还支持Windows平台,具有优良的跨平台特性。Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个组件之间的协同工作变得十分简单。Qt包括多达250个以上的C+类,还替供基于模板的collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能,支持2D/3D 图形渲染,支持OpenGL。2、Qt关键技术(1)信号与槽机制(signals/slots)信号和槽用于对象间的通讯。信号与槽机制是Qt的一个中心特征,并且是Qt与其它工具包的最不相同的部分。较老的工具包使用一种被称作回调的通讯方式来实现同一目的。回调是指一个函数的指针,所以如果希望一个处理函数通知一些事件,可以把另一个函数(回调)的指针传递给处理函数。处理函数在适当的时候调用回调。但回调有两个主要缺点。首先它们不是类型安全的,从来都不能确定处理函数是否使用了正确的参数来调用回调。其次回调和处理函数是非常强有力地联系在一起的,因为处理函数必须知道要调用哪个回调。在Qt中有一种可以替代回调的技术使用信号和槽。当一个特定事件发生的时候,一个信号被发射。Qt的窗口部件有很多预定义的信号,总是可以通过继承来加入自己的信号,槽就是一个可以被调用处理特定信号的函数。Qt的窗口部件又很多预定义的槽,但是通常的习惯是可以加入自己的槽,这样就可以处理所感兴趣的信号。信号和槽的机制是类型安全的:一个信号的签名必须与它的接收槽的签名相匹配(实际上一个槽的签名可以比它接收的信号的签名少,因为它可以忽略额外的签名)。因为签名是一致的,编译器就可以帮助检测类型不匹配。信号和槽是宽松地联系在一起的:一个发射信号的类不必知道也不用注意哪个槽要接收这个信号。Qt的信号和槽的机制可以保证如果把1个信号和1个槽连接起来,槽会在正确的时间使用信号的参数而被调用。信号和槽可以使用任何数量、任何类型的参数。它们是完全类型安全的:不会再有回调核心转储(core dump)。从QObject类或者它的一个子类(比如QWidget类)继承的所有类都可以包含信号和槽。当对象改变它们的状态的时候,信号被发送,从某种意义上讲,它们也许对外面的世界感兴趣。这就是所有的对象通讯时所做的一切。它不知道也不注意有没有东西接收它所发射的信号。这就是真正的信息封装,并且确保对象可以用作一个软件组件。(2)元对象编辑器信号与槽机制是以纯C+代码来实现的,使用的过程中使用到了Qt开发工具包提供的预处理器和元对象编辑器(moc)。moc都缺少应用程序的头文件,并产生支持信号与槽的必要的代码。开发者没有必要编辑或是浏览这些自动产生的代码,当有需要的时,qmake生成的makefile文件里会显示的包含了运行moc的规则。Qt集成了很多C+类,所以编程起来方便简洁,可以做精美的图形用户界面。同时随着现在嵌入式技术的发展,也能够用到嵌入式系统的编程中,大大提高性能5。2.2后台分析工具MATLABMATLAB诞生于20世纪10年代,它的开发者是Cleve Moler博士和他的同事。当时Cleve Moler博士和他的同事开发了EISPACK和LINPACK的Fortran子程序库,这两个程序库主要是求解线性方程的程序库。但是,Cleve Moler发现学生使用这两个程序库时有困难,主要是接口程序不方便编写,很费时间。于是Cleve Moler自己动手,在业余时间里编写了EISPACK和LINPACK的接口程序。Cleve Moler给这个接口程序取名为MATLAB,意为矩阵(Matrix)和实验室(Laboratory)的组合。自1984年MathWorks公司正式把MATLAB推向市场以来,每一次新版本的推出都使MATLAB有长足的进步,界面越来越友好,内容越来越丰富,功能也更加强大6。2.2.1MATLAB产品及语言概述MATLAB长于数值计算,能处理大量的数据,而且效率较高。MATLAB是支持从概念设计、算法开发、模型仿真到实时实现的理想环境。无论进行科学研究还是工程应用,MATLAB都是必不可少的模型和算法仿真工具。一般而言,MATLAB的典型应用包括:1. 数据分析和可视化;2. 数值和符号计算;3. 建模、仿真和原型开发;4. 算法预设计与验证;5. 图形用户界面设置;6. MATLAB应用于C、C+、Java以及Web集成;7. 图像和视频信号处理;8. 一些特殊的矩阵计算应用,例如自动控制理论、统计、数字信号处理(时间序列分析)等。MATLAB由一组面向具体应用的工具箱组成,包含了完整的函数集,用来对数字图像、控制系统和神经网络等进行分析和设计。MATLAB的工具箱是开放的,因此MATLAB的工具箱越来越多,功能也越来越强大。用户可以编写自己的工具箱,使用时与使用MATLAB提供的工具箱一样。因此,出现了越来越多的免费或者商业MATLAB工具箱。1、MATLAB的主要产品构成(1)MATLAB集成开发环境MATLAB提供了一个集成的开发环境,方便用户开发自己的应用程序。它有一系列的工具和功能体,其中大部分具有图形用户界面,包括桌面(Desktop)、命令窗口、历史(History)窗口、工作空间(Workspace)、文件和搜索路径等。(2)MATLAB数学函数库MATLAB提供了强大的数学函数库,既包括最基本的矩阵运算函数,如矩阵求逆等,又包括一些特殊的数学函数,如贝塞尔函数等。数学函数库是MATLAB进行数据分析的基础。(3)MATLAB图形用户接口(GUI)MATLAB提供了图形用户接口函数,包括二维和三维图形显示、图像处理、动画和图形显示的高级命令。设计图形用户接口的工具包括布局编辑器、排列工具、属性观察器和菜单编辑器等。(4)MATLAB的专用领域工具箱MATLAB提供了一系列专用领域的工具箱,如模型仿真、神经网络、小波分析、信号处理、图像处理等,用于解决特定领域的工程问题。工具箱是开放和可扩展的,用户可以根据需要选择购买和选择安装需要的工具箱。(5)MATLAB CompilerMATLAB Compiler(编译器)提供了将MATLAB语言编写的M文件自动转换为C或C+格式文件的能力,支持用户进行独立应用开发。利用MATLAB Compiler,用户可以快速地开发出功能强大的独立应用。(6)MATLAB SimulinkMATLAB Simulink是一个对动态系统进行建模、仿真和分析的软件包。它既可以仿真线性系统,又可以仿真非线性系统,使得MATLAB的功能得到了进一步的扩展。1.实现了可视化建模,在Windows环境下,用户可以通过简单的鼠标操作建立直观的系统模型,进行仿真分析。2.实现了与MATLAB中M文件的数据共享,甚至可以与硬件实现实时信息交换。3.将理论研究与工程实际有机地结合在一起。(7)Stateflow与Simulink的模型框结合,描述复杂事件驱动系统的逻辑行为,驱动系统在不同之间进行切换。(8)Real-Time WorkshopReal-Time Workshop与Stateflow直接从Simulink模型与Stateflow框图中生成高效的可移植C代码或Ada代码。只需要简单的操作,用户无需繁琐的手工编程与调试就可以生成应用代码。2、MATLAB语言概述MATLAB易学易用,其函数名和表达很接近我们书写计算公式的思维表达方式,用MATLAB编写程序犹如在草稿纸上排列公式与求解问题。MathWorks公司将MATLAB称为第四代编程语言。同其他的程序设计语言一样,MATLAB语言提供了流控制、函数、数据结构、输入/输出功能以及面向对象的程序设计方法。MATLAB具有不同于其他语言(如Fortran、C语言等)的特点,被称为第四代计算机语言,又称为“草稿纸式”的语言。MATLAB把工程技术人员从繁琐的程序代码中解放出来,可以快速地验证自己的模型和算法。概括起来,MATLAB语言具有如下主要特点:(1)方便的矩阵和数组运算MATLAB是以矩阵为基础的,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。MATLAB有特殊矩阵专门的库函数,可以高效地求解诸如信号处理、控制、优化等问题。变量不需要预先定义,也不需要预先定义矩阵(包括数组)的维数。(2)编程效率极高MATLAB是一种面向科学和工程计算的高级语言。它以矩阵运算为基础,极少的代码即可实现复杂的功能。例如求矩阵的秩,MATLAB只需要一条语句det(),而C语言等则需要几十甚至上百条代码。(3)易学易用,简单方便MATLAB是一种解释性语言,不需要专门的编译器。具体地说,MATLAB运行时,可直接在命令行输入MATLAB语句,系统立刻处理,完成编译、链接和运行的全过程。因此,MATLAB语言不仅是一门语言,广义上是一种语言调试系统。(4)可扩充性强MATLAB有着丰富的库函数,在进行复杂的数学运算时可以直接调用。用户可以根据需要方便地编写和扩充库函数。为了充分利用Fortran和C语言资源,用户可以通过混合编程在MATLAB中调用Fortran和C语言的源程序,也可以在Fortran和C语言中使用MATLAB的数值计算功能。(5)方便的可视化MATLAB的绘图是十分方便的,它有一系列绘图函数,例如象限坐标、对数坐标、半对数坐标、极坐标等,君只需要调用不同的绘图函数,在图上标出图题、x轴和y轴标注、格绘制也只需要调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不同颜色的点、线、复线或多重线,这种为科学研究着想的设想,通过其他编程语言实现都是比较麻烦的。(6)可移植性好MATLAB本身是用C语言编写的,而C语言的移植性较好,MATLAB可以很方便地移植到C语言平台。除了内部函数以外,MATLAB的绝大部分函数和工具箱函数都是公开的,可以用文本编辑器打开6。2.2.2采用MATLAB作为后台分析工具的目的及意义MATLAB(Matrix Laboratory,矩阵实验室)是Math Works公司于1984 年推出的一款高性能数学软件,它优秀的数值计算和卓越的数据可视化使其脱颖而出,经过二十多年的发展,它已经被广泛应用于图像信号处理、时间序列分析、信号分析等许多涉及大量数值计算的工程领域,现已成为国际认可(IEEE)的最优化的科技应用软件。尽管如此优秀,但是由于一些先天性的缺陷如:MATLAB编程语言属于解释性执行语言,执行效率较低,运行速度较慢;MATLAB提供的用户界面操作太简单;不能实现网络编程,更难以实现一些底层的I/O操作等等。因而完全使用MATLAB编程语言来实现一个需要具有友好用户界面的大型应用软件几乎是不可能的。Visual Studio.NET是微软公司提供的一套完整的开发工具,不同的语言(如C/ C + + 、BASIC等)全都使用相同的集成开发环境(IDE),在生成大型的WEB 应用程序,桌面应用程序和移动应用程序方面,能实现很强的功能并具有很高的运行效率,因此在工程应用中将两者结合起来,充分发挥两者的长处,能缩短开发周期,提高工作效率,同时使产生的软件也更稳定可靠。利用MATLAB进行混合编程有如下优点:1、代码重用对于一个机构,甚至是对科研人员个人来说,在长期的研究与开发过程中,已经积累了相当数量的代码。这些代码大多已经在以往的课题研究实践中被证实能够正确完成其设计功能。能否在现在或者将来的开发过程中利用这些已有的成果显得非常重要。如果能够灵活地利用以往的开发成果,无疑将会给研发带来事半功倍的效果。反之,如果由于技术限制无法利用已有的代码,而需要重新开发相同的功能,则是一种资源浪费。MATLAB的接口技术提供了和其他主要编程语言相互调用的机制,将有助于开发过程中的代码重用。2、合理使用开发组资源软件开发的另外一个目标是快速完成开发任务。对于一些复杂应用程序的开发,往往需要一个团队的高度合作。团队成员的专业背景以及技术长处可能各不相同,如果团队领导在初期制定技术方案时能够考虑到各个开发人员的技术长处,根据实际问题以及各种编程语言、工具的特点,合理制定开发方案,必然将会加速整个开发过程,而且也更有可能开发出高效的软件。MATLAB的接口技术给开发者提供了多种和其他编程语言交互的使用途径,将有助于人们制定和实施高效的开发方案。3、方便发布传统的MATLAB应用软件多以一个或多个M文件组成,客户必须先安装MATLAB才能使用这些程序,这样做不是很方便。另外考虑到MATLAB的价格,这样做也不经济。MATLAB的接口技术给开发者提供了多种实用的应用软件发布手段。利用MATLAB接口技术,这些应用软件可以通过动态链接库(*.dll)、可执行文件(*.exe)、COM对象(*.dll或*.exe)等形式发布,这将有助于缩短产品从开始开发到推向市场所需的时间。4、提高程序的运行效率相比于其他需要编译的编程语言,如C/C+来说,MATLAB能够缩短开发时间。这主要得益于MATLAB所提供的丰富的矩阵运算功能,涵盖多个科技领域的工具箱,以及强大的图形显示功能等,MATLAB特别适合于开发小型应用,或者对算法的验证与开发。然而对于一些大型、复杂的应用程序来说,完全使用MATLAB开发的程序可能在执行时显得太慢。对于这种情况,一种可行的办法是利用MATLAB的MEX技术,使用C/C+来编写计算量繁重的功能,然后在MATLAB里直接调用MEX文件。实践证明这是一种有效的提高程序运行效率的方法7。2.2.3仿真平台使用的混合编程技术本仿真平台在进行Qt、与MATLAB混编时,使用了MATLAB引擎技术。MATLAB引擎函数库是MATLAB提供的一组接口函数,它允许用户在自己的应用程序中对MATLAB函数进行调用。因此,可将MATLAB作为一个计算引擎使用,让其在后台运行,这样可以简化前台用户程序的设计任务。当用户使用MATLAB引擎时,采用C/S(客户端/服务器)模式,相当于在后台启动了一个MATLAB进程。MATLAB引擎函数库在用户程序与MATLAB进程之间起桥梁作用,完成两者的数据交换和命令的传送。在Windows系统中通过ActiveX完成,MATLAB引擎(Engine)有以下典型的功能应用。1、调用MATLAB特有的强大数值计算和分析等函数进行运算数值计算如矩阵运算是MATLAB的强项,通过MATLAB计算引擎可以轻松地实现矩阵运算、图形显示等计算复杂度高的操作。2、可以为一个特定的任务构建一个完整的系统前台客户端可以采用诸如Visual C+之类的通用编程平台,通过Windows的动态控件与服务器MATLAB通信,向MATLAB Engine传递命令和数据信息,从MATLAB Engine接收数据信息。此时,MATLAB完成较复杂的数值计算、分析和可视化任务,因此,MATLAB Engine可以简化应用程序的开发,取得事半功倍的效果6。2.3电子海图显示与信息系统介绍为了显示潜器的航行信息,如:航线,航行位置以及实时海洋环境数据,本课题所要开发的潜器运动控制系统仿真软件以实验室开发完成的电子海图显示与信息系统作为依赖的基础平台。2.3.1电子海图显示与信息系统概述1、电子海图显示与信息系统的定义电子海图显示与信息系统(Electronic Chart Display and Information System. ECDIS)是随着航海事业及科技的发展而产生的一种集成式的实时导航信息系统,被认为是继雷达/ARPA之后近10年来在航海领域又一项伟大的技术革命。按照国际海道测量组织(IHO)的定义:ECDIS是一种将海图信息、定位信息、雷达信息、船舶动态参数集于一体的图文并茂的航海自动化系统。它由电子海图数据文件、控制显示设备、专用软件和外接传感器构成。作为地理信息系统(GIS)成功应用的电子海图发展到今天,已经完全可以取代纸质海图,完成航线设计、航线检查、航行作业、航行计算、航行标记、信息处理等航海功能8-9。2、ECDIS的特点ECDIS作为一种集成式导航信息系统,具有集成、信息以及导航三个突出特点:(1)其集成特点在于:系统将推算船位信息、卫星和无线电导航系统数据、海图信息和雷达信息集成在一起处理和显示,处理的结果传回到各种控制设备对船舶进行控制或以图像、语音等多媒体形式提示航海人员。(2)其信息特点在于:它能根据航海人员的需求为其提供海图物标的咨询信息,如航标、碍航物和航道等的特征,及整个航线上的航行条件信息。(3)其导航特点在于:它不仅能完成在传统纸海图上进行的作业,包括计划航线设计、距离和方位的计算和推算船位修改、定位计算、航迹显示等,而且还能解决新的问题,如船舶驶进危险区域时的自动报警、船舶避礁防浅、把电子海图同雷达图像叠加以提供更直观的避碰信息、海图的自动改正等。2.3.2仿真平台依赖的电子海图显示与信息系统的功能说明本课题所要开发的潜器运动控制系统仿真软件基于的电子海图显示与信息系统平台是在实验室开发的电子海图显示与信息系统的基础上,根据本仿真软件的特点完成的。本软件的主界面如图2.1所示。图2.1主界面作为潜器运动控制系统仿真软件显示平台的电子海图系统具有的主要功能模块如下:1、海图操作模块部分海图操作模块主要用来完成对海图的基本操作,包括换海图、海图分层显示、海图的比例尺缩放、移图以及夜视功能。2、仿真环境设设置模块部分仿真环境设置模块主要用来完成航线计划和垂向仿真环境设置。3、仿真功能模块部分,包含仿真参数设定模块和航行仿真模块两部分功能模块部分作为本课题研究的重点,将在第四章中进行详细说明,其主要用来完成软件中关键的仿真功能。2.4本章小结本章对仿真平台设计开发需要用到的基础知识进行了介绍,主要研究了Qt语言的基础知识、MATLAB特性及混合编程的相关知识,并说明了仿真平台所依赖的电子海图显示与信息系统的应用功能、特点。对这些知识的学习,为仿真模块的开发提供了理论基础。第3章潜器运动控制模型建立本课题所要开发的潜器运动控制系统仿真软件,涉及到潜器悬浮运动模型以及解耦控制器模型的建立,这是软件关键功能开发的基础这两个模型在利用MATLAB引擎进行仿真时是必需的。本章重点阐述潜器悬浮运动模型和解耦控制器模型的分析和建立。3.1潜器悬浮运动模型潜器在水下操纵运动,一般情况下可看作刚体在流体中的空间运动。由于空间六自由度运动的复杂性,考虑到潜器水下运动受控参数主要是航向、深度和潜器的纵向俯仰(纵倾角),因此在航速较低以及纵倾较小的弱机动情况下,潜器空间运动可分解为在两个平面内的四自由度运动:1. 水平面内的运动;2. 垂直面内的运动。上述对潜器运动状态的简化忽略了横滚面的运动(如横倾等),以及水平和垂直两个平面运动间的耦合作用影响,反映了潜器操纵运动控制的主要特征。又考虑到潜器悬浮运动主要是对潜器的下潜深度和纵倾姿态角的保持与改变,且其改变量较小,为明显弱机动。所以我们可以不考虑潜器在水平面内的运动状态,只需要分析其在垂直面内的动力学特性,且忽略水平面运动对垂直面运动的耦合影响。本节首先在无限深广静水条件下建立潜器垂直面四自由度运动模型,并根据潜器悬浮运动的特点,得到潜器水下悬浮运动系统的数学模型。3.1.1潜器悬浮运动垂直面动力学模型潜器的空间操纵运动相当于刚体在流体中受自身重力和水动力作用,运动问题包括运动学问题和动力学问题。由于运动的相对性,对于运动学问题,其参考坐标系的选择几乎不受什么限制;而动力学问题是以牛顿第二定律为基础的,必须是相对于惯性参考坐标系的。因此,我们采用国际拖曳水池会议(ITTC)推荐的和造船与轮机工程学会(SNAME)术语公报的坐标体系,在垂直面内对潜器运动进行动力学分析10,如图3.1所示。 图3.1潜器垂直面运动坐标系图3.1中,为大地惯性坐标系,坐标原点可以取为地面、海面或海中的任意一定点。轴的正向指向地心,轴在水平面内,正向可以任选,由于我们这里主要考虑潜器的垂直面运动,忽略其在水平面内的航向变化,故取潜器的前进方向为轴正向。为潜器的重心,坐标为,这里以点的运动状况代表潜器在垂直面内的运动,对重心进行动力学分析。在惯性参考坐标系中,根据牛顿第二定律可以建立潜器的动力学方程: (3.1)式中:、潜器所受到的合外力(包括重力、浮力以及作用在螺旋桨、舵和艇体上的水动力等)在惯性坐标系和轴上的分量;、潜器的运动速度分别在轴和轴上的分量;、潜器在外力作用下,在轴和轴上的加速度分量;、潜器的纵倾姿态角(轴和轴之间的夹角)、纵倾角速度和纵倾角加速度,;潜器所受到的合外力矩,是产生纵倾的外因,其方向满足右手定则与()垂直;潜器相对于惯性坐标系轴的转动惯量。上面的三个动力学方程在形式上非常简单,但在水动力等的表达上却十分不便。因为水动力的大小和方向取决于潜器与海水之间的相对运动,为此我们需要建立一个随艇运动的运动坐标系。一方面可以方便表达水动力,另一方面使得艇的转动惯量、惯性积在该运动坐标系下为常量。如图3.1所示,运动坐标系的原点取在潜器的重心处,且一般认为,是潜器的惯性主轴。纵轴在纵中剖面中,且平行于艇体基面指向艇艏;横轴与纵中剖面垂直;垂轴也在纵中剖面中,指向艇底。在上述随艇运动坐标系下,潜器垂直面四自由度运动的各物理意义非常明确,参见表3.1。表3.1潜器垂直面四自由度运动运动轴轴轴平移进退横移潜浮转动纵倾这里将式(3.1)所示的潜器动力学方程,映射到固联在艇体的运动坐标系上,可以表示为: (3.2)式中:、潜器运动速度在随艇坐标系和轴上的分量;、潜器在合外力作用下,在轴和轴上的加速度分量;、合外力在运动坐标系和轴上的分量;合外力矩,。式(3.2)中潜器所受合外力、力矩在运动坐标系上的分量、,可以分解为下面各项: (3.3)考虑到潜器水下悬浮运动为弱机动,其纵倾姿态角为微小量,因此可以简化方程为: (3.4)式中:、潜器与海水之间由于相对运动而产生的流体水动力;、推进器产生的纵向水平推力及其在轴上的作用点;为纵向浮正力矩,由于潜器所受重力和浮力不作用在同一铅垂线上,所以构成扶正力矩,式中为对应于水下全排水量的初稳心高;、分别为剩余静力和剩余静力矩,表示潜器所受重力与浮力之差,其中,为潜器所在海域的海水密度,为潜器的全容积排水量。当时,潜器所受重力大于浮力,艇重,将下沉;当时,潜器所受重力小于浮力,艇轻,将上浮;当时,潜器所受重力等于浮力,中性浮力,潜器处于理想的悬浮状态;但是,对于运动的潜器来说,在一定条件下上述结

温馨提示

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

评论

0/150

提交评论