当前位置:文档之家› LABVIEW在智能车上的应用

LABVIEW在智能车上的应用

LABVIEW在智能车上的应用

摘要

清华大学承办的第五届“飞思卡尔”杯全国大学生智能车大赛,要求参赛者在提供的模型车体及主控制器芯片基础上,设计制作具有自主道路识别能力的智能赛车,在赛道上以最快速度完成赛程者为优胜。

本课题以智能车比赛为背景,以缩短智能车控制算法的开发周期为目的,基于虚拟仪器LabVIEW开发了智能车仿真软件,为智能车比赛提供可以离线验证控制算法的软件平台。

本文首先对智能车仿真模拟系统的运行模型进行了分析,主要包括赛道设计、赛车设计、进行仿真和结果回放四个部分,然后根据这几部分进行软件开发,但在实际开发中并没有完成所有功能,只完成了其中智能车仿真系统的一部分,并对该部分的开发过程进行了详细的分析。

关键词:LabVIEW 仿真智能车虚拟仪器

ABSTRACT

Tsinghua University hosted the firth college student competition, the "Freescale" Cup. The participants are required to provide the intelligent vehicle model capacity of the self-road-recognize based on the designed model-car and the micro-controller chip. The winner was the first one finished the race on the right road.

Based on this competition, this paper, aims at reducing the development period of the control algorithm, provides the software platform for the off-line test of the race car control algorithm by using LabVIEW.

This paper firstly intelligent vehicle simulation system operation model are analyzed, a simulation analysis system has four functions, namely the circuit design, the car carries on the simulation, and design, and then according to the results of playback software development, but the framework in developing and not finished all the functions of intelligence, only completed the car mode, and the system in the development process of parts are analyzed in detail.

Key word: LabVIEW; simulation; Intelligent vehicle; Virtual instrument

目录

摘要 ..................................................................................................... I ABSTRACT ..................................................................................... II 1.绪论. (1)

1.1课题研究的背景 (1)

1.2本课题研究的内容和意义 (1)

1.3中国大学生智能车设计竞赛 (3)

2.智能车仿真系统的开发软件 (5)

2.1 开发工具LabVIEW概述 (5)

2.2 LabVIEW的基本概念 (6)

2.3 LabVIEW的操作模板 (9)

2.4 LabVIEW中的基本数据类型及其相互转换 (17)

2.5 LabVIEW平台的特点 (21)

3.仿真软件的设计 (23)

3.1建立赛道功能模块 (23)

3.2建立智能车功能模块 (25)

3.3仿真功能模块 (26)

3.4数据分析功能模块 (28)

4.智能车仿真系统程序 (29)

4.1 流程图介绍 (29)

4.2程序代码及注释 (30)

5.总结与展望 (51)

5.1本文主要研究成果 (51)

5.2下一步的研究方向 (52)

5.3展望 (53)

参考文献 (54)

致谢 (56)

附录 (57)

1.绪论

1.1课题研究的背景

近年来,随着经济的发展和社会的进步,道路的通行能力、交通的安全性、能源的损耗、环境污染等问题越来越突出。车辆在交通拥挤的市区行使驾驶人员必须完成大量的换档和踩离合器的工作,大约在每分钟完成20~30个手脚协调动,繁重的驾驶工作和驾驶人员的疲劳是交通事故频发的重要原因。随着经济的发展,车辆拥有量的增加,非职业驾驶人员的人数增多,是导致交通事故频繁发生的又一重要原因。交通问题已经成为全球范围令人困扰的严重问题,因此,如何提高交通安全性己经成为急需解决的社会性问题。道路偏离系统、疲劳检测系统、自动巡航控制等都可以大大减轻驾驶人员的驾驶工作,提高交通系统的安全性。这些问题的解决引发了新的研究和应用的热点,比如自动车辆驾驶,通过计算机控制、人工智能和通信技术实现更好的通行能力和更安全的行驶[1][2]。

从汽车出现的时候起,人们就有了汽车自动驾驶的设想。随着相关学科的不断发展,使得人类的这一梦想逐渐成为现实。上海交大的CyberC3项目组,开展了面向城市环境的无人自动驾驶车辆研究,目的是为未来的城市提供一种灵活、高效、安全、环保的新型公共交通工具。另外,美国国防远景研究规划局从2004年开始,每年举办无人车大奖赛,赛车需要自主地穿越沙漠地带,总行程达240公里。2006年8月在清华大学举办的智能车大赛就是在这样的背景下应运而生的。

1.2本课题研究的内容和意义

在智能车的实际设计过程中,面临着如下几个问题:第一,为了测试

赛车在不同的赛道上都有稳定的发挥,就不得不制作出各种形式的赛道来测试赛车的性能,但是在实际中,不可能为智能车设计各种各样的比赛赛道来试验智能车的比赛效果,在经济上和效率上都是不能被接受的;第二,一个控制算法的实现和验证也需要有一个周期,在比赛设计的有限时间里,选择合适的控制算法,并且试验它的有效性,是一个比较艰巨的任务,如何快速验证我们所设计的控制算法,缩短开发周期,在有限的时间里尽可能开发出最好最优的控制算法,对我们提出了挑战;第三,分析车的运行过程进而分析车的控制方法是分析和优化控制算法的一个有效途径,实际上车的运行是一个快速的过程,是转瞬即逝的,很难把车的实际运行过程复现出来的,这样就缺失了有效的分析方法。这些问题都是能够顺利完成比赛的不可避免的障碍。

基于以上的问题,为了能够快速的验证智能车的设计方案,缩短其开发周期,让参赛队伍有充足的时间来研究更合适的方案和策略,需要有一个软件仿真平台。

本文对智能车的运行过程进行分析,研究了智能车整体运动过程,对其运动过程的各环节建立了数学模型,并且利用了虚拟仪器软件LabVIEW为智能车比赛开发了一个比赛仿真以及理论实验平台,以此实现以下几个部分的功能:

1)赛道建模:可以根据实际赛道的尺寸大小建立起软件的比赛

赛道。

2)赛车建模:对赛车基本参数的设置以及路径检测方案的设计。

3)控制算法的仿真实验:可以设计好自己的控制算法对赛车进

行运行仿真。

4)比赛仿真的后期分析:可以根据运行过程中保存的数据对运

行过程分析,可以对控制算法进行优化。

最后对赛车转弯时间最优问题进行了研究,提出三种转弯策略,通过仿真比较给出了缩短比赛时间,提高比赛成绩的较好的转弯策略。

1.3中国大学生智能车设计竞赛

在学习韩国大学生智能汽车竞赛后,我国也组织了自己的大学生智能汽车竞赛,以加强大学生实践能力、创新能力和团队精神的培养。飞思卡尔半导体公司作为比赛的协办单位,从而成立里“飞思卡尔”杯大学生智能汽车设计竞赛。所设计的智能车模型如图1.1所示。

图1.1智能车模型

1.3.1中国大学生智能车设计竞赛简介

我国大学生“飞思卡尔”杯智能汽车竞赛,是在统一汽车模型平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,自主构思控制方案进行系统设计,包括传感器信号采集处理、动力电机驱动、转向舵机控制以及控制算法软件开发等,完成智能车工程制作及调试,于

指定日期与地点参加各分赛区的场地比赛,在获得决赛资格后,参加全国决赛区的场地比赛。参赛队伍之名次(成绩)由赛车现场成功完成赛道比赛时间为主、技术报告和制作工程质量评分为辅来决定[3]。

1.3.2中国大学生智能车设计竞赛的意义

全国大学生智能汽车竞赛是教育部为了加强大学生实践、创新能力和团队精神的培养,在己举办的全国数学建模、电子设计、机械设计、结构设计等4大专业竞赛的基础上而设立的第五项大学生设计竞赛。该竞赛与已举办的教育部4大专业竞赛不同,是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创意性比赛,这对进一步深化高等工程教育改革,培养本科生获取知识、应用知识的能力及创新意识,培养硕士生从事科学、技术研究能力,培养博士生知识、技术创新能力具有重要意义。

2.智能车仿真系统的开发软件

2.1 开发工具LabVIEW概述

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化的程序开发环境,由美国国家仪器(National Instrument)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言来编写程序,产生的程序是框图的形式。在开发过程中,用图标就可以代替应用系统的硬件部分,这样就可以省去了很多购买硬件的资金,以节省大量的研发资金。LabVIEW中尽可能的利用了工程师们所熟知的术语、图标和概念,是一个工业标准的开发环境。它结合了图形化编程方式的高性能和灵活性以及专为测试、测量与自动化控制应用设计的高端性能和配置,能为数据采集、仪器控制、测量分析与数据显示等各种应用提供必要的开发工具,这能帮助工程师们提高工作效率[4]。

LabVIEW广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数,这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面

向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。

虚拟仪器(Virtual Instrumentation)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。

虚拟仪器实际上是一个按照仪器需求组织的数据采集系统,虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本[4]。

它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便快捷,是相当于软件即硬件。

2.2 LabVIEW的基本概念

2.2.1 VI的概念

用LabVIEW开发出的应用程序被称作VI (Virtual Instrument的英文简写,即虚拟仪器),它的表现形式和功能类似于实际的仪器,也很容易改变设置和功能。VI是由图标、连线以及框图构成的应用程序,有Front Panel(前面板)、Block Diagram(后面板)以及图标/连结器(Icon Connector)

三部分构成。

前面板是应用程序的界面,是人机交互的窗口,主要由Controls(控制量)和Indicators(显示量)构成。当程序运行时,用户通过控制量(例如用户输入数据的文本框以及一些按钮、开关灯)输入数据和控制程序的运行,而显示量(例如显示波形的示波器控件灯)则主要用于显示程序运行的结果。如果将VI程序比作一台仪器的话,那么,控制量就是仪器的数据输入端口和控制开关,用于给程序提供输入数据和控制信号,而显示量则是仪器的显示窗口,用于显示经过程序分析、处理后的结果,如图2.1所示,显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。

图2.1前面板界面

流程图提供VI的图形化源程序,在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结

构和连线等。图2.2是一个随机信号发生器的流程图,从中可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个WhileLoop循环,由开关控制这一循环的结束。如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图卜的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。

图2.2随机信号发生器的流程图

2.2.2子VI与子程序

和其他编程语言一样,在LabVIEW中也存在子程序的概念,在LabVIEW中的子程序被称作子VI。在程序中使用子VI有以下优点:

1)将一些代码封装成为一个子VI(即一个图标),可以使程序的结构变得更加清晰、明了。

2)将整个程序划分为若干模块,每个模块用一个或者几个子VI实现,易于程序的编写和维护。

3)将一些常用的功能编制成一个子VI,在需要的时候可以直接调用,不用重新编写这部分程序,因而子VI有利于代码复用。

2.3 LabVIEW的操作模板

在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Eontrols)模板和函数(FunetionS)模板[5]。这些模板集中反映了该软件的功能与特征,对LabVIEW程序的创建、设计和调试具有重要的作用。

2.3.1工具模板(Tools Palette)

具模板如图2.3所示,该模板包含各种用于创建、修改LabVIEW中的对象,并可对VI程序进行调试。一般在启动LabVIEW时,该模板就会出现,如果该模板没有出现,则可以在Windows菜单下选择Show Tools Palette命令以显示该模板。当从模板内。选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。

图2.3工具模板

当从Windows菜单下选择了Show HelpWindow功能后,把工具模板内选定的任种工具光标放在流程图程序的子程序(SubVI)或图标上,就会显示相应的帮助信息。工具模板中各种不同工具的图标及其相应的功能如表2.1所示。

表2.1工具模板图标、名称及功能

2.3.2控制模板(Controls Palette)

该模板用来给前面板设置各种所需的控制量(Controls)和显示量(Indicators),主要用来创建前面板中的对象,构建程序的界面。每个图标代表一类子模板。如果控制模板不显示,可以用城Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板,如图2.4所示。

图2.4控件模板

控件模板包括如下所示的一些子模板。子模板中包括的对象,在功能方面用文字简要介绍[6],如表2.2所示。

表2.2控件面板的图标、名称及功能

2.3.3函数模板(Functions Palette)

函数模板是创建流程图程序的工具,包含了编写程序的过程中会用到的函数和VI程序,主要用于构建后面板的对象。该模板上的每一个顶层图标都表示一个子模板。若函数模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。函数模板如图2.5所示。

图2.5函数面板其子模块

函数模板包括如下所示的一些子模板。子模板中包括的对象,在功能方面用文字简要介绍(个别不常用的子模块未包含)[6],如表2.3所示。

表2.3函数面板的图标、名称及功能

相关主题
文本预览
相关文档 最新文档