登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 通信工程 > 正文

声呐湿端姿态三维可视化软件设计毕业论文

 2020-02-17 10:02  

摘 要

为了能清晰、直观的观测和监控水下姿态的变化,我们设计了一个声呐三维可视化应用程序。这个应用程序可以显示接收的姿态参数和实测水深,并根据姿态参数调整声呐湿端的姿态,根据实测水深调整声呐湿端的位置。

本次设计借助Visual Studio平台,结合Microsoft.NET Framework技术,用C#编程语言对声呐湿端进行三维可视化软件设计。首先在Visual Studio中导入三维声呐模型,然后通过串口通信接收姿态参数,将接收到的姿态参数对声呐三维模型进行控制,最后对应用程序进行简单二维图形界面设计。

研究结果表明该软件可以实现控制声呐姿态变化的功能,还能够在此基础上加上基本的软件功能,如初始化功能、清空功能、加载功能和输入错误提示功能。

本文的特色是利用四元数调整声呐湿端的姿态角变化。四元数旋转也是旋转的一种方式,和欧拉角(姿态角)旋转相比,四元数可以很好地避免万向锁问题。

关键字:三维可视化;声呐;姿态参数;Visual Studio

Abstract

In order to clearly and intuitively observe and monitor the underwater attitude changes, we designed a sonar 3d visualization application program. This application displays the received attitude parameters and the measured water depth. It adjusts the attitude of the sonar according to the attitude parameters and the position of the sonar according to the measured water depth.

This design uses Visual Studio platform to design 3d Visual software for sonar. It combines Microsoft.NET Framework technology and C# programming language.Firstly, the 3d sonar model was imported into visual studio, and then the attitude parameters were received through serial communication. The received attitude parameters were used to control the sonar 3d model, and finally the application program was designed with a simple 2d graphical interface.

The results show that the software can realize the function of controlling the attitude change of sonar, and can also add basic software functions, such as initialization function, clearing function, loading function and input error function.

The characteristic of this paper is to use quaternion to adjust the attitude Angle of sonar. Quaternion rotation is also a way of rotation, and compared with euler Angle (attitude Angle) rotation, quaternion can well avoid gimbal lock problem.

Key Words:3d visualization; Sonar ; Attitude parameters; Visual Studio

目 录

第1章 绪论 1

1.1 研究背景及意义 1

1.2 国内外研究现状 1

1.3 研究内容及目标 2

1.4 本文结构 3

第2章 开发平台及其技术 4

2.1 Visual Studio开发平台 4

2.2 .NET Framework技术 4

2.3 C#编程语言 5

第3章 软件设计与实现 6

3.1 三维声呐模型的导入 6

3.1.1 方案的选择 6

3.1.2 WPF设置三维场景 7

3.1.3 WinForm显示三维模型 9

3.2 串口通信接收姿态参数 10

3.2.1 串口通信原理 10

3.2.2 SerialPort串口控件 11

3.3 声呐模型姿态变化 12

3.3.1 姿态角简介 12

3.3.2 四元数简介 13

3.3.3 姿态角转四元数 14

3.4 可视化软件设计 15

3.4.1 可视化概念 15

3.4.2 基本控件简介 15

3.4.3 软件界面 16

第4章 软件功能与运行结果 18

4.1 软件功能 18

4.1.1 加载功能 18

4.1.2 清空功能 19

4.1.3 初始化功能 19

4.1.4 提示功能 20

4.2 结果分析 21

第5章 总结与展望 23

5.1 总结 23

5.2 展望 23

参考文献 24

致谢 25

绪论

研究背景及意义

为了能够侦测冰山,世界上第一部声呐诞生了,它是一种被动声呐。第一次世界大战后,声呐广泛用于军事方面,主动式声呐也在此期间诞生。冷战之后的海战场进入了信息化时代,声呐也由此进入了信息化的时代。

随着信息化时代的到来,人类更加憧憬对海洋世界的探索,茫茫大海充满了未知与危险。电磁波在水下的衰减速度非常高,不能将其作为侦查信号的方式,而以声波进行水下探测是目前最好的手段。声呐用声波进行探测和定位,大大减小了对海洋探索的风险,打开了深海探索的大门。

声呐在水中工作时,会缩短其探测距离,这是因为声波在介质不均匀的海水和海面上会发生折射、反射和散射现象,这些现象会使声波的传播路径发生改变。现代声呐根据海区声速—深度变化形成的传播条件, 可适当选择基阵工作深度和俯仰角, 利用声波的不同传播途径 (直达声、海底反射声、会聚区、深海声道) 来克服水声传播条件的不利影响, 提高声呐探测距离[1]

声呐是利用声波进行探测,所以工作人员在水下工作时,并不能直接观察到声呐的深度信息和姿态参数。为了能清晰、直观的观测和监控水下姿态的变化,我们进行了声呐湿端姿态三维可视化软件设计的研究。对声呐湿端进行三维可视化建模,并根据姿态检测得到的姿态参数调整声呐湿端的姿态,根据实测水深调整声呐湿端的位置,并显示对应的参数。本次设计可以直接在软件上观测和调整声呐的工作深度和姿态参数,给工作人员提供了很大的便利。

国内外研究现状

1950年左右,出现第一代艇首阵中频声呐;第二代声呐诞生于20世纪60年代,以低频主被动拖曳阵声呐为代表[2];时隔不到10年,第三代声呐被发明出来,它主要和第一代与第二代不同的技术是大孔径舷侧阵;20世纪80年代,进行综合处理的第四代声呐出现了,除了上述特征,它的主要特征还有多技术的一体化应用。近现代技术不断发展,声呐的功能和用途已经不仅仅是用作军事,其它方面的需求开始了大幅上涨,无人操作的第五代声呐也就随之发展,并且这也是今后科学家研究的重点方向之一。但是由于第三代和第四代的优秀表现,以及相对第五代低廉的价格,目前来说,它们依旧是各个国家在水下进行作战的主要装备之一。

现代计算机技术发展迅速,各种设备的信息处理能力也随之提高,声呐也不例外,技术相较于几十年前飞速发展。除此之外,声呐系统的功能也变得越来越完善,种类越来越多,集成度增加。新一代声呐具有识别、探测、通信、侦查、导航、跟踪、信息处理和鱼雷控制等多种功能,这种声呐兼具多种功能,很大程度地提高了声呐同时处理各方面问题的能力。

为了声呐能够在水下有良好的对抗能力,现代声呐使用自适应基阵处理,选择性接收某个方向的信号,抑制其它方向的干扰信号,降低杂波影响。为了潜艇能够探测得更加精准,作用距离更远,推出了一种频率低、功率大、孔径大的现代声呐。这两种声呐的优点能够结合起来,制作成一种效果更好的现代声呐,这种声呐同时具备水下对抗能力和战场感知效能。

随着声呐技术的发展,单基地声呐的缺点越来越明显,多基地协同探测的现代声呐成为研究的热点,运用也越来越广泛。多基地声呐的特点是使用多个声呐接收潜艇返回的信号,不仅如此,还用多个大功率光源进行照射,发射基地和接收基地还可以根据不同的环境选择不同的声呐对目标进行精确定位跟踪。和单基地声呐相比较,多基地声呐有更有优的探测能力和水下生存能力。

如果每种声呐都需要使用专用元器件,设计专用软件,那么将耗费大量的人力、物力资源。为了解决这个问题,声呐采用了开放式的体系架构,设计好的元器件和软件可供声呐系统使用,标准化模块化组件,由此提高了声呐的通用性。尽管如此,声呐的科研周期仍然很长,科研费用依旧损耗巨大。引进COTS技术之后,研究周期变短了,降低声呐研究的风险和成本。

由于声波在水中的传播性能比电磁波优越,声呐成为水下探测的主要设备。从声呐诞生发展到如今,不管是平台、体质、应用、功能,还是探测精度、覆盖范围和分辨率,声呐都有了跨越式的发展。尽管如此,声呐还是有自身局限性,它受到了噪声、多径效应等各种因素的影响,这些影响使得声呐至今都不能像雷达那样有更加强大的威力。新时代仍然推动着声呐继续发展,相信在不久的未来,声呐能够克服更多的局限性,迎来新一轮的发展。

研究内容及目标

本次设计采用C#语言编程,基于Visual Studio平台对声呐湿端姿态进行三维可视化建模,设计出一个能清晰、直观的观测和监控水下姿态变化的软件。利用惯性MEMS传感器检测声呐湿端姿态,研究多传感器数据融合算法,包括姿态的初始化设置,解算出声呐湿端水下姿态参数,提供给声呐湿端姿态三维可视化软件。对声呐湿端进行三维可视化建模,并根据姿态检测得到的姿态参数调整声呐湿端的姿态,根据实测水深调整声呐湿端的位置,并显示对应的参数在软件上。

本次设计内容主要分为4小步,分别是:在Visual Studio中导入三维声呐模型,经过三种方案对比研究,选择WPF加载三维模型,显示在WinForm窗口上;通过串口通信接收姿态参数,使用Visual Studio自带的SerialPort串口控件接收数据;将接收到的姿态参数转换成四元数,利用四元数控制声呐三维模型改变;对应用程序进行简单二维图形界面设计,使得姿态参数和声呐模型能实时控制。

本文结构

本文一共有五个章节,主要内容如下:

第一章是绪论部分,先介绍了本次设计研究的目的及意义,接着根据国内外现状进行分析,再说明此次设计的研究内容及目标,最后对本文结构进行简单说明。

第二章简单介绍了Visual Studio开发平台,说明为什么选用Visual Studio开发平台实现本次设计。接着介绍了.NET Framework技术和C#编程语言,阐述.NET Framework技术和C#编程语言对本次设计的便利之处。

第三章是本次设计最主要的部分,即进行三维可视化软件的设计。首先在Visual Studio中导入三维模型,然后通过串口接收姿态参数,根据接收到的姿态参数控制声呐模型的姿态变化,最后通过一些简单的控件设计应用软件的界面。

第四章主要介绍本次设计的软件测试和运行结果。首先对设计好的应用程序进行基本的测试,有:初始化测试、清空测试和输入错误测试,然后对运行结果进行分析与说明。

第五章是总结与展望。总结本次设计的成果,以及指出设计的不足之处,最后进行展望。

  1. 开发平台及其技术

Visual Studio开发平台

Visual Studio是微软公司的一个开发平台,是目前最流行的开发环境之一[3]。Visual Studio功能强大,可以创建各种Windows平台应用程序,如Windows窗体应用、WPF应用、Web浏览器服务等。Visual Studio是一套完整的开发工具,Visual Basic,Visual C 和Visual C#都使用相同的集成开发环境(IDE)[4]。有了完整的开发工具就可以很好地完成设计软件所需要的功能。

本次设计使用的是Visual Studio 2017版本,基于.NET Framework 4.6.1。我们使用Visual Studio中的C# Windows窗体应用,此窗体操作简单,显示直观,可用于创建三维可视化应用程序。Visual Studio新建项目页面如图2.1所示,点击Windows窗体应用即可创建我们需要的应用程序。

图2.1 Visual Studio新建项目页面

.NET Framework技术

Microsoft.NET Framework是在Windows操作系统下运行的托管代码编程模型[5]。由.NET Framework所创建的应用程序功能强大,视觉体验良好。

在程序爆炸的今天,应用程序的来源也是越来越丰富,它们一起可以进行各种各样的功能实现。但是就是因为程序的爆炸增长,不良甚至恶性应用程序代码也逐渐增多,所以信任是用户非常注重的一个需求,它的需求甚至在功能性和舒适性之上,因为我们谁也不想信息遭到他人恶意的获取和使用,人们宁愿使用低舒适性的程序,也希望自身信息安全得到保障。给予了通行的安全策略,不允许任何用户对程序拥有者的敏感信息进行不适当的访问,更不会将本地机器提供给不良或恶意程序,甚至是有非常常见的错误代码。

在过去的时候,一个好的安全结构,可以保证用户帐号之间的隔离,同时默认假定某些指定的操作者运行的代码,能够和程序拥有者有相同的信任度。但是,很不幸的是,如果所有的代码都代表某用户去运行,仅仅只是根据用户对于部分代码的简单操作和访问隔离,对于完全保护一个普通程序,以及使该程序可以不被其它的操作者去使用是远远不够的。在另一种情况下,如果有不被完全信任的代码,那么这些代码经常会被转移到一个密闭的"沙箱"模型中去运行,在这里运行,可以使得代码被隔离在标准环境以外,从而可以保证它不能够去访问绝大部分的基本服务。

现在,对于成功的甚至优秀的应用程序,想要的提供一套安全的解决方案,必须要能很好的在两个安全模型之间保持一定的平衡。程序要完成功能,那么它就必须要能够拥有对资源的访问权限,只有这样,它才能开展它的工作,同时,它还需要控制应用程序的安全性,来保证代码能够被识别。

C#编程语言

C#之所以能够成为.NET开发的常用语言,是因为这种语言不仅有VB可视化的优点,还具有C 高效率的优点。C#可以运行于.NET Framework和.NET Core,.NET提供了一系列的工具和服务来进行开发。作为面向组件的编程语言,它使得Windows窗口应用程序变得更加简单便捷,也在窗口应用方向越来越普及。

如果计算机上没有安装.Net Framework,那么创建好的应用程序并不能直接运行。C#所开发的程序源代码并不是能够直接在操作系统上执行的二进制本地代码它被编译成为中间代码, 通过.Net Framework的虚拟机执行[6]。在程序执行的过程中,为了使“.exe”的应用程序能够运行,需要有虚拟机将中间代码转换成二进制码。二进制代码存储在缓冲区,下次运行时,可以直接将缓冲区的代码运行,大大减少了运行时间,提高了运行速度。

  1. 软件设计与实现

三维声呐模型的导入

二维平面已经不能够满足需求,而三维模型能够全面立体地展示。市面上出现了很多三维建模软件,如autoCAD、3ds Max等,由这些软件设计出的三维模型都可以在Visual Studio中显示出来,其中文件格式有OBJ格式、STL格式、3DS格式等。本节重点分析如何在Windows窗体中导入三维声呐模型,使声呐模型能立体直观的显示在窗体上。

图3.1为本次设计选取的三维声呐模型,其文件格式是3DS格式。

图3.1 三维声呐模型

方案的选择

方案一是导入AnyCAD.Net SDK包。在项目中引用AnyCAD.Net SDK包中相关头文件,即可根据模型路径导入需要的三维模型,或者根据基本三维图形拼成简单模型。AnyCAD 是一个三维建模可视化平台,这个平台是基于 OpenCASCADE的,其建模功能可以满足基本的需求,支持STL、STEP、SKP格式文件。但是,这种方法中的声呐模型不能控制其姿态变化,达不到本次设计的要求,故舍弃。

方案二是使用Unity3D的方法。Unity3D是一个三维开发工具,使用此方法也可以加载三维声呐模型[7]。从Unity Store中下载需要的资源包,下载后,就可以在新建的工程中使用这些资源。声呐模型位置由俯仰角、横滚角、偏航角和高度决定,其中三个姿态角也叫欧拉角,Unity3D中有一个Quaternion(四元素)类,Quaternion类中调用Quaternion.Euler函数可以将欧拉角转化成四元素,由此可以通过改变欧拉角来改变四元素进而控制声呐模型的位置。此方案相对于方案一有改进,但是实际操作并没有成功,故舍弃。

方案三是WPF(Windows Presentation Foundation)利用HelixToolKit后台导入三维模型。前面两种方案是直接在WinForm中显示三维模型,而此种方法是在WPF中导入三维模型。WinForm开发上比WPF稍容易点,但WPF基于directX,所以对于3D的处理效果更好,画面也更加酷炫。WinForm的画面设计采用与开发语言相同的语言实现,并保存在相同的代码类型文件中,移植性不好。WPF的画面采用XML形式书写,保存在xml中,移植性更好,也更直观易懂。

综合考虑,选用方案三作为本次设计的方案。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图