基于Python语言的汽车振动噪声分析软件的界面设计毕业论文
2020-02-17 20:29:01
摘 要
汽车振动噪声作为影响汽车舒适性的重要因素之一,一直以来研究人员都将分析振动噪声产生机理作为研究的重点。目前课题组主要从汽车主减速器方向分析了振动噪声的产生原理。分析中主要利用UG、Matlab、Adams等软件进行相关建模分析,获得相关实验数据。通过前期的积累,课题组获得了大量的实验研究数据。为总结研究成果,进一步提高研究效率,以前期大量实验数据为基础,设计一款汽车振动噪声分析软件显示界面程序。Python作为一种方便易用的编程语言,拥有良好的开发设计图形用户界面的功能,在众多GUI开发的Python库中,选择PyQt作为开发工具,通过学习,掌握编程方法,结合课题组的实验数据,开发了一套可视化界面。
关键词:振动噪声;用户界面;Python;GUI;PyQt
Abstract
As one of the important factors affecting the comfort of automobiles, automobile vibration noise has always been the focus of research on the mechanism of vibration noise generation. At present, the research group mainly analyzes the principle of vibration noise generation from the direction of the main reducer of the car. In the analysis, UG, Matlab, Adams and other software are mainly used for relevant modeling analysis, and relevant experimental data are obtained. Through the accumulation of the previous period, the research team obtained a large amount of experimental research data. In order to summarize the research results and further improve the research efficiency, based on a large number of experimental data in the previous period, a vehicle vibration and noise analysis software display interface program will be designed. As an easy-to-use programming language, Python has a good function of developing and designing a graphical user interface. Among many GUI development of Python libraries, PyQt is selected as a development tool. Through mastering programming methods, combined with experimental data of the research group, developed a visual interface.
Keywords: Vibration and Noise, User Interface, Python, GUI, PyQt
目录
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景 1
1.2 传动链振动研究现状 2
1.3 Python界面设计现状 2
1.4 设计内容 3
第2章 开发工具 5
2.1 Python语言 5
2.1.1 Python特点 5
2.1.2 Python的IDE环境搭建 6
2.2 Python GUI工具库比较 8
2.2.1 TKinter 8
2.2.2 WxPython 8
2.2.3 PyQt 9
2.3 PyQt 5模块 9
2.3.1 PyQt 5的GUI环境搭建 9
2.3.2 PyQt5的安装测试 10
第3章 数据模型 11
3.1 汽车主减速器振动分析 11
3.2 准双曲面齿轮模型 11
3.3 轴-传动系统的非线性动力学模型 13
3.4 结果讨论 15
第4章 系统结构与功能 17
4.1 系统需求分析 17
4.2 系统设计 19
4.3 系统实现 22
第5章 总结与展望 27
5.1 总结 27
5.2 展望 27
参考文献 29
致谢 30
绪论
研究背景
汽车传动链是由具有弹性、阻尼和转动惯量的动力总成、齿轮、变速器、传动轴、驱动桥等组成。在车辆动力传递系统的前端,汽车发动机为整个身体系统提供动力,而在中间的驱动轴具有调速和转矩传递的功能,与后驱动桥可以保证汽车的正常驾驶功能[2]。作为汽车发动机动力装置与车轮负载间的动力传递装置,汽车传动链在传递动力的同时, 当外部激励频率与动力传动链的固有频率相近时, 整个车身都会发生共振[3]。噪声因为是由振动而产生的,所以两者是有着极高的联系的,而且有着相同的特征量。由汽车产生的振动和噪声水平不仅是用于评价车辆的舒适性能的重要指标,同时也是用于评价车辆的设计和制造水平的重要指标。因此,优化由传动链产生的噪声显得尤其重要。
长期以来,汽车行业作为我国重点开发的工业产业已经取得了一定的发展成绩,单从整个汽车市场的规模上看,我国毫无疑问已经成为世界上最大的汽车制造和消费大国。然而,另一方面,中国汽车市场仍面临诸多矛盾--缺乏核心技术,缺乏自主创新等问题依然突出,现在用户已经不仅在汽车的动力性,自动化等方面提出了更高的性能需求,同时也提高了对于舒适性,稳定性,安全性等汽车其他方面的要求。降低汽车的噪声、振动已经成为提升汽车产品在市场上的竞争能力和评估汽车产品设计成功与否的重要指标之一。[4]
课题组在研究了汽车传动链的各项影响要素并获得了大量的实验研究数据后,为总结研究成果,进一步提高研究效率,可以以前期大量实验数据为基础,设计一款汽车振动噪声显示分析结果的界面软件程序。图形用户界面(GUI)是指利用图案形状的,以显示计算机软件操作的用户界面。与以前早些时候计算机所使用的命令行界面相比较,对于计算机的用户来说,图形界面从视觉上是更加容易被接受的。然而如果要是让软件界面显示在显示器的特定位置上,以各种符合人的审美而又不会单调的视觉信息去提示用户关于“状态的改变”,则必然是要比单纯的字符信息呈现,调用更多的计算机运算能力,以计算要去改变计算机显示器哪些像素点,哪些色彩。因为用户的需求是具有多样性和且是在不断变化的,因而GUI也就处在一个不断变更和修改的状态。因此,具有敏捷开发的功能Python语言可以实现GUI开发的这种开发需求。Python这一动态脚本语言,虽然目前只有超过20年的发展历程,但是由于其众多优越的特性,受到了众多程序开发人员的喜爱,比如开源、简易便学、面向对象、多平台、可扩展、丰富的库、解释性强等等。就GUI开发方面来说,Python作为一种粘合型语言,它的快速开发功是它最大的优势,它能够嵌入到各种高级语言中,配合其种式繁多的GUI工具包,能够在Windows、linux、unix、macOS平台上进行方便、快捷的GUI用户图形界面开发。
传动链振动研究现状
国内外对于汽车传动链的各个部分都有很多的研究,驱动桥、十字万向节、变速器中的齿轮振动都被广泛而深入的研究过。郑煜圣等人[5]通过分析驱动桥振动噪声,改进了减振和降噪措施,全面研究了驱动桥产生的振动和噪声问题。提出了结合有限元与边界元的模拟振动噪声的方法,并提出了改进降噪减振的措施,通过对驱动桥的研究,为研究和控制整车其他部件的振动和噪声提供了重要的参考。研究结果表明,主减速器齿轮的激励模式为脉冲激励;驱动桥振动是周期性的,驱动桥的壳体中心位置在Z方向的振动最为严重;驱动桥120公里每小时恒定速度下的工作情况比80公里每小时下的振动更加剧烈。
对于由十字万向节传动轴的激励引起的汽车振动和噪声问题, 赵骞等人[6]通过分析激励—传递路径—响应,探究了从激励到传递路径再到响应这些方面的优化。一种用于十字万向节传动轴激励引起的车辆振动和噪声问题的方法和一系列的分析历程。以在加速行驶状态下4驱的微型车的方向盘共振现象为例,应用上述过程解决了这种传动轴激励引起的方向盘共振现象,以及进行了前桥支撑刚度对前桥刚体模态和方向盘共振的灵敏度研究。
研究发现变速器产生的振动噪声主要来自于非承载齿轮的敲击噪声和承载齿轮的啸叫噪声。朱敏如等人[7]研究发现:(1)在降低敲击振动方面有很多种方法:减小输入转速的改变量,增大非承载齿轮与齿轮轴之间的阻尼,设计尽可能小的齿侧间隙,减小从动齿轮的转动惯量,这些都可以降低变速器非承载齿轮的敲击振动噪声水平;而承载齿轮的负载扭矩则对齿轮敲击没有什么影响。(2)通常条件下,齿轮啸叫随着输入转速的增大而增大;在转速不变的时候,负载扭矩越大,齿轮啸叫也随之增大;同时设计得较为柔软的齿轮也能降低齿轮啸叫的情况;负载端阻尼的下降也可以减弱齿轮啸叫噪声的水平。(3)在变速地过程中敲击噪声和啸叫噪声同时存在,而且变化趋势保持了一致。这样的实验结果和仿真计算地分析在趋势上保持了一致。而且齿轮敲击会激励起变速器发生共振。降低变速器的敲击噪声和啸叫噪声对于改善汽车振动噪声水平有着明显的作用。
Python界面设计现状
Python最初被认为是一门脚本语言,但经过不断地发展,其越来越被主流的程序开发所青睐。在GUI开发方面,诸如豆瓣,Google Driver,YouTube等诸多成功网站客户端都是用的Python进行开发设计,其拥有着众多优势导致了程序员的热爱。在Python可视化软件编程开发方面,陈蒙等人[8]在分析研究了当前主流命令行界面技术与CASA软件命令行的一些弊端不足的前提上,综合了中国新一代太阳射电日像仪(CSRH)数据处理系统开发的需求,最终设计并且实现了一套基于Python语言的CSRH CLI用户界面软件。详细介绍了系统的实现框架和整体流程,并重点讨论了一些技术难题的攻关,进而通过软件开发中一个实际命令说明了在命令行框架下的模块开发方法,最终给出了相关的运行界面与操作案例。该项研究成果现已应用于太阳射电日像仪数据处理软件的开发中,整个系统对其它相关软件开发都有较好的参考价值。
陈怡海等人[9]也使用Python作为编程开发语言,后端数据库选择了MySQL数据库。为了分析和研究Moodle学习平台的访问数据,设计了Moodle课程平台的可视化分析系统。该系统能对用户访问数据、课程数据和平台访问数据进行图表化的展示。
基于Python和Django框架,严婷等人[10]设计了一个具有数值分析、案例探讨以及算法学习等功能的可视化数据分析程序平台,意图帮助没有算法基础的用户快速地进行数据分析,并且迅速获得可视化的分析结果。该平台同时还可以作为数据挖掘课程的辅助教学工具以及进行数据分析的多功能科普平台。
通过Python语言和自选的GUI模块进行编程,王世华、沈卫超[11]开发了一套主机安全监控系统,安全管理员的监控界面是通过设计主机的安全监控系统的整体框架及关键功能,而开发的,并详尽地阐释了其中的几个关键技术,以达到强化主机系统安全性的目的。
刘海燕,马振涛[12]详细介绍了构建Python GUI网络编程环境的过程,其中IDE没有使用自带的IDLE,而是选择了PyCharm,界面GUI也是放弃了TKinter而选择PyQt。最后通过一个完整的TCP通信案例,实现了基于多线程的通信程序。
在Python界面可视化开发的领域,康计良[13]也对此做了透彻的了解。他从Python语言和wxPython库进行深入了解,再分析公司业务的需求,分别设计系统的整体框架和功能模块,然后用编码设计实现各项功能。
设计内容
本文的研究内容以对汽车传动链的振动噪声分析综述、当前Python GUI开发相关进展研究综述和一款基于研究组实验成果而进行的软件开发方案设计为主,包含汽车振动噪声产生的原因以及相关实验,主减速器的齿轮模型建立,轴-传动系统的非线性动力学模型,Python语言PyQt库的介绍和环境搭建,程序设计要求的分析,程序的功能实现以及程序的检测方法。通过对其他人的研究成果的讨论,找出需要的研究方向,并对各种研究方法给予一定的考虑。
第一章主要对汽车传动链振动噪声的国内外研究情况进行了一个大致的介绍,对汽车振动有了一个初步的认识。并且综述了汽车振动实验相关的内容,介绍了别人的实验方案和结果,对汽车传动链振动噪声产生的原理加深了理解。同时对Python界面开发做出的成果进行学习,并以此为自己的开发设计找到工具和方法。
第二章主要介绍了开发工具,并初步搭建了计算机程序开发的环境。包括对于开发语言Python的简介,它的开发优势。同时对比了主流的GUI开发库,TKinter,WxPython,PyQt。最终选择了PyQt并进行了环境的搭建,以及一些敏捷开发插件的使用。
第三章主要介绍了传动轴角度对主减速器振动响应的影响。通过对主减速器中一对齿轮的分析,了解其振动分析的原因。传动轴的角度对与齿轮三个方向振动的影响通过动力学模型的建立,定量的分析。通过Matlab的建模仿真,对于传动轴角度影响给出了精确的数学分析模型。
第四章则是开发设计环节的描述。首先分析开发的需求,通过改变传动轴间的角度以获得一对齿轮在三向方向的振动位移。程序开发便是为此设计一个直观的界面,以达到前述的要求。首先通过Qt Designer的直观化设计大致布局最终的效果图,然后生成ui代码,并进行转化成py源文件的命令行操作。接下来便是通过信号槽的机制来完成拓展的功能,最终的代码便可以调试运行,在Python shell下评估生成的成果。
第五章则是对整体的过程进行了回顾总结,发现不足,找到今后的工作目标。
开发工具
Python语言
多·范罗苏姆(Guido van Rossum)--Python之父在1991年设计的一款多范式的高级编程语言Python,其特点是面向对象、指令式、函数式且过程式,属于通用型编程语言。可以把它看作为一种改良版的LISP(LISt Processor)。作为一种解释型语言,Python的设计理念强调优雅、易读性和易于理解的语法(例如,使用空格缩进,而不是使用大括号或关键字划分代码块),为此被粗略地称为一门脚本语言。相比于C 、C#或Java,Python能够允许程序员能够用更少的代码表达更多的想法,Python这个编程语言试图让程序的结构清晰明了。此外,Python 解释器本身的另一个优点是,它可以运行在所有主流的操作系统平台。Python同时也启发影响了众多的高级编程语言,例如C、C 、Java、Go、Ruby、JavaScript。Python的应用范围也很广泛,可以用于网络应用程序进行Web开发,使用GUI包进行跨平台的桌面软件开发,作为众多操作系统的标准系统组件,同时还能编写科学计算程序。
Python特点
作为一名入门的程序员,Python被公认为是非常适合进行学习开发的。它有以下几个特点,一:简单易学 Python入门门槛较其他老牌编程语言来说是比较低的,对于完全没有学习过其他编程语言的入门学习者也能够很快地进行掌握。 相比于其他主流开发语言,比如C ,Java,Python可以称的上是一款非常入门友好的主流编程语言,阅读一个编程风格良好的Python程序段,有如在进行简单的英文文章阅读,但可能这篇英文语法还是过于严格的。因此Python也被称为是代表着优雅简练主义的动态语言。而类似于伪代码的这种性质是Python语言巨大的优势之一。表明程序员可以将心思花在解决实际问题而不是纠结于搞懂复杂的编程语言的语法。
二:解释性 和编译性语言如C语言相比来说,由于在开发过程中没有进行编译这一环节,Python因此也被称为一门解释性语言。作为编译性语言来说,他们的一个优势就是可以将写的程序用编译器以及各种不同的标记和选项将源文件转换成计算机内部使用的0、1代表的二进制代码,从而快速执行。当编译性语言编写的程序运行的时候,将直接从硬盘的程序复制到内存中进行运行。而Python语言编写的程序进行运行的时候将会跳过编译这一过程,它并不需要将高级语言编写的代码先转换成计算机使用的二进制代码,而是直接从源代码进行运行。计算机中,解释器会先将源代码转换成字节码,然后将其转换成计算机使用的机器代码运行。因此Python程序不需要担心如何编译程序,如何保证到连接正确的库等等,只需要将Python程序复制到另外一台计算机上,它就会工作了,正是这种特性,使Python程序更加易于移植。随着计算机硬件的更新换代和设计理念的创新,解释型语言越来越流行。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: