在我国经济组成中,汽车产业对促进国民经济发展和社会进步具有重要的战略意义。下面是我为大家精心推荐的关于汽车的科技3000字论文,希望能对大家有所帮助。汽车的科技3000字论文篇一:《试谈汽车超载监测系统》 摘 要: 为了实时识别各种车型的超载车辆,该系统基于开源计算机视觉库(OpenCV),先根据车辆照片库建立车型分类器,然后使用数字摄像机拍摄进入监控区域的车辆,在视频中使用分类器识别车型,根据所识别得到的车型去查询数据库获得该车型的核载,再通过动态称重技术获得车辆的实际载重,及时判别车辆是否超载。此 方法 可避免过去使用统一重量衡量不同车型是否超载的弊端,并可同时免线圈测量车速。测试结果表明系统能快速准确地识别出车型。配合动态称重系统,就能实时得出所通过的车辆是否超载,对公路养护和道路交通安全有相当大的实用意义。 关键词: 超载监测; 视频识别; OpenCV; 动态称重 超载车辆的危害很大,主要表现在加速道路损坏和危害道路交通安全,人们都深知其危害性,所以治理超载一直是公路监管部门的工作重点。传统的自动超载信息系统都是使用统一标准,对所有车辆都应用同一个整车重量划分是否超载,这样会遗漏部分实际上已经超过该车型核载的超载车辆。实际上,这部分车辆对道路交通同样造成严重影响。鉴于此,本系统首先识别出车辆的车型,再查询得到该车型的核载重量,对比实测重量,便得知是否超载。理论上能够适用于所有车型。 利用摄像机较长的视域,附加设计了一个测速系统,能方便地得出超速数据,以便作为超速监测和供给动态称重系统作参考。 1 系统构成 系统方案 系统主要工作过程为:车辆驶入摄像机监视范围,视频流通过以太网传输到后台处理系统,处理系统通过处理视频识别出车辆的车型,然后根据车型从数据库中查出相应的核载重量;同时,安装在地面的动态称重设备测出车辆的实际载重。两个数据对比即可得出车辆是否超载。系统流程如图1所示。 为了加快处理速率,在程序设计过程中多处使用了多线程并行处理。 OpenCV及其分类器介绍 传统的图像处理软件大多为Matlab,用于开发算法最为快捷,但是其处理速度慢,难以跟上视频处理的需求,所以选用了Intel牵头开发的开源计算机视觉库(OpenCV)。新版的OpenCV已经在易用性上已经接近Matlab,再加上其开源性,很多算法均已公开,加快了开发进程。另外,目前OpenCV已经提供C,C++,Python等语言接口,且支持Windows,Linux,Android和IOS等主流平台,资源相当丰富。对于计算机平台,OpenCV支持多线程并行计算和图形处理器(GPU)计算,这将能大大加快计算速率,用其开发本系统的demo是首选。 图1 系统流程图 为了从视频流中识别出车型,需要使用分类器[1]。所谓分类器,是利用样本的特征进行训练,得到一个级联分类器。分类器训练完成后,就可以应用于目标检测。分类器的级联是指最终的分类器是有几个简单分类器级联组成。每个特定的分类器所使用的特征用形状、感兴趣区域中的位置以及比例系数来定义(如图2所示)。 图2 特征分类 首先使用弱分类器分出货车和客车等车型,然后再分出大中小型货车,最后再精确分类,获得准确的车型。新版本的OpenCV已经支持多种特征的分类器,如SVM,LBP,PBM等。因为系统实时性要求较高,这里选取训练和分类速率都较高的LBP特征分类器。 训练分类器 使用分类器的需要首先训练,即让分类器“认识”目标,为了训练分类器,需要准备样本,样本包括正样本和负样本。正样本即包含目标的灰度图片,而且每张图片都要归一化大小,负样本则不要求归一化,只需要比正样本大即可(使得可以在负样本中滑动窗口检索)。 OpenCV提供了专门的工具用以整理训练样本的原始数据,只需准备好正、负样本,归一化然后转成灰度图,再使用两个描述文件分别记录这些样本集合,然后输入程序即可整理出原始数据。为了准备正样本,借助OpenCV提供的HighGUI模块,在此专门编写了一个GUI截图工具,界面如图3所示。为了能从不同角度识别车辆,准本正样本时需要准备从一定角度范围描述车辆的样本。 图3 GUI截图工具界面 接下来就是训练分类器,这部分工作直接关系到系统的鲁棒性。同样,OpenCV提供了专门工具训练分类器,既有旧版也有新版,为了有更多特性,在此选择新版本的训练程序。 由于这是基于统计的方法,要对大量数据进行处理,如果选择Haar特性,训练周期会比较长,不利于系统的搭建,所以选择用LBP特性训练分类器。从机器性能方面考虑训练时间,使用英特尔线程构建模块(TBB)重新编译OpenCV,就能得到多核加速,且有利于接下来的程序性能。分类器分为三级,分别为:货车、客车分类器,大、中、小型货车分类器和具体车型分类器。由于客车按载客数区分是否超载,车辆总重不会对公路造成严重损坏,所以本系统无需对客车作出具体车型区分。但若然具体管理部门需要统计车型信息,可以进一步加上客车车型分类器。实际使用时,由于要应对车辆车身的喷漆变化或者小范围合法改装等情况,分类器的分类除了在系统筹建的时候大规模训练外,在系统运行时也应继续训练分类器,增加统计数据,使得识别结果更加精确。 识别车型及获得核定载重 训练好分类器后,最直观的测试方法是直接输入测试视频,检查识别效果。新版本OpenCV提供一个C++类CascadeClassifier,该类封装了基本的目标识别操作,使得只需要使用该类的实例加载训练好的XML文件,然后逐帧检测即可。若发现目标,结果将会存放在C++标准模板库(STL)容器vector中。但直接对每帧图像使用CascadeClassifier::detectMultiScale方法将会大大加重系统的工作量并且在多车辆的情况下无法区分开各车辆,为此,首先需要发现车辆,然后区分不同的车辆目标,再对每一个目标单独进行分类识别。 具体的主要操作的顺序为: (1) 系列的图像预处理操作,降低图像噪音。 (2) 图像差分,发现车辆轮廓[2],得到运动掩码。图像差分有两种主要方式,分别是帧间差分和背景差分。帧间差分速度快,但容易产生空洞,且无法分离出缓慢运动的车辆;背景差分速度慢,但分离效果好。考虑到如果车辆是缓慢进入测速区,则称重数据可靠性高,而且没有超速,进入识别点的效果好,所以选择帧间差分,这里使用能有效减小前景空洞的三帧差分算法[2]。 (3) 结合运动掩码更新历史运动图像、计算历史运动图像的梯度。 (4) 分割运动目标,得到一辆一辆的车,并跟踪。为区分开图像中的每一辆车,需要对其进行标记,这里使用的方法为: [Mkx,y=ID ifMk-1x,y≠0&k-1≠10 ifMk-1x,y=0 ] 式中:Mk(x,y)为分割出来的单独车辆目标的第k帧感兴趣区域矩形。这种方法虽然鲁棒性较好,但是因为重复计算量大,运算速度有限,所以在确定每辆车的ID后,使用OpenCV提供的更为快速的Camshift算法[3]继续跟踪。 (5) 计算每辆车的运动方向。这部分关系到运动目标筛选,在部分场合,摄像机的视野可能会涉及逆向车道。在这种情况下,可以通过筛选符合主要行驶方向的车辆来排除其他车辆或无关运动目标的干扰。 (6) 车辆进入测速区,开始测速。 (7) 车辆离开测速区,结束测速并计算速度。使用TBB进行并行分类识别车型。由于OpenCV新版矩阵结构Mat的所有操作使用原子操作,大大减轻了多线程编程的工作量,所以这里使用多线程并行操作是最佳选择。 (8) 根据所安装动态称重系统的车速要求,判断是否需要引导车辆到检测站进行检查。 获得实际载重 在视频分析中发现车辆后,对比动态测重模块中测得的实际载重。这里需要把应用场合分为两种情况:高速测重和低速测重,至于高低速的阀值,这根据不同动态称重系统的性能而定[4],在系统安装时根据动态称重系统参数设置即可。由于目前高速测重技术的精度未达到作为证据的要求,所以在高速测重的场合,所得车重数据只能作为初步判断,若初步发现车辆超载,需要进一步引导车辆到大型地磅再次静态测量,并作其他处理。在低速测重场合,测得的动态数据可靠,可直接作为证据使用。所以系统的运行需要测速模块的配合。 无论高速场合与低速场合,本系统都能实现视频测速功能,可以直接用作超速抓拍系统,降低了公路部门的重复投入成本。 测速方法 测速测量车辆通过测速区所用的时间,然后用测速区长度除以时间而粗略估计得到。考虑到摄像机视域限制,设定的测速区域并不长,只有20 m左右,而且速度是用于参考载重信息是否有效的,所以无需太精确,因而可认为车辆是直线经过测速区域的。测速区的长度需在系统安装时手工进行长度映射。另外,确定通过测速区域的时间差使用帧率和帧计数得出,这样在多线程处理的情况下,可以排除系统时钟和处理速率的干扰,得出准确时间差。 2 测量结果 为快速测试系统性能,直接使用测试视频替代摄像机输入。使用微软Visual Studio 2010 MFC + OpenCV 编写一个即时处理程序,界面如图4所示。 图4 运行在Windows平台上的系统 测试使用一台Intel Core i5M处理器(主频 GHz+智能变频技术)、6 GB内存、 操作系统 为Windows 7 64 b的普通 笔记本 计算机,测试代码尚未使用图形处理器(GPU)计算,但代码在识别部分应用了TBB进行多核并行加速计算。 测试视频共两段,分别在两个不同的场景拍摄,第一段只有一辆公交车,场景较为简单;第二段则是多车多人环境,并且有车辆并行的情况,场景较为复杂,干扰较多。 第一段视频主要用于测试系统的极限性能,在测试开始前,先用转码工具把同一段视频转成不同帧率和分辨率的几段视频,其中视频的宽高比不变。输入视频测试后的结果如表1所示。 视频原始长度为6 s,双斜线为该场景的称重和测速区域。 测试结果表明:系统能实时处理标清视频流,但对高清视频还需进一步优化。 第二段视频主要测试系统的车型识别能力,测试数据如图5所示。 表1 输入视频测试后结果 图5 多车并行时能够准确区分 第二段视频夹杂较多无关目标,如行人、抖动的树枝横向行驶的车辆等,其中双白线之间区域为本场景的称重测速区域。 通过测试,可以看出无关目标能被全部排除,体现了车辆筛选很好的鲁棒性。视频中共通过9辆汽车,所有车辆均本正确识别车型。 3 结 语 通过测试数据可以看出,本系统提出的车型识别算法能适应不同场景和一定的环境变化,具有较高的效率和鲁棒性。随着计算机及其他数字信号处理(DSP)设备的信息处理能力不断提高,应用实时视频处理技术促进智能交通的能力将更大更稳定。若本系统能真正应用在智能交通系统上,有望对遏制道路超载超速现象做出贡献。 参考文献 [1] LIENHART Rainer, MAYDT Jochen. An extended set of Haar?like features for rapid object detection [J]. IEEE ICIP, 2002 (1): 900?903. [2] 徐卫星,王兰英,李秀娟.一种基于OpenCV实现的三帧差分运动目标检测算法研究[J].计算机与数字工程,2011(11):141?144. [3] BRADSKI G R. Computer vision face tracking for use in a perceptual user interface [EB/OL]. [2010?12?02]. [4] 张波,鲁新光,邓铁六,等.动态车辆称重物理模型与提高动态称重准确度研究[J].计量学报,2009(5):426?430. [5] 唐双发.基于OpenCV的车辆视频检测技术研究[D].武汉:华中科技大学,2009. [6] 詹群峰.基于OpenCV的视频道路车辆检测与跟踪[D].厦门:厦门大学,2009. [7] 郭旭,张丽杰.运动目标检测视频监控软件的设计与实现[J]. 计算机技术与发展,2010,20(8):200?207. [8] 周品,李晓东.Matlab数字图像处理[M].北京:清华大学出版社,2012. [9] 陈胜勇,刘盛.基于OpenCV的计算机视觉技术实现[M].北京:科学出版社,2008. [10] 刘瑞祯,于仕琪.OpenCV教程基础篇[M].北京:北京航空航天大学出版社,2007. [11] 范伊红,彭海云,张元.基于SVM 的车型识别系统的设计与实现[J].微计算机信息,2007,23(5):296?297. [12] 李庆忠,陈显华,王立红.一种视频运动目标的检测与识别方法[J].模式识别与人工智能,2006,19(2):238?243. [13] [美]REINDERS J, 聂雪军. Intel Threading Building Blocks编程指南[M].北京:机械工业出版社,2009. [14] 刘慧英,王小波.基于OpenCV的车辆轮廓检测[J].科学技术与工程,2010,10(12):2987?2991. 汽车的科技3000字论文篇二:《试谈现代科技在汽车焊接工艺中的应用》 摘 要:随着我国汽车保有量的不断增加,汽车售后市场呈现了井喷式的发展趋势,与汽车相关的售后市场服务行业开始兴起。其中汽车维修是后市场比较火爆的行业,汽车的使用必然会涉及汽车的维修。因此,为了能够更好的实现汽车维修效率,提高汽车维修的质量,应该加强对于汽车维修行业的行业监管以及对汽车维修技术的提升。目前,诸多的现代化技术开始不断的应用到汽车维修之中,其中尤其以焊接工艺为主。因此,本文重点对汽车焊接工艺中现代科技的应用进行分析,从而探讨其未来的发展趋势。 关键词:现代科技;汽车;焊接技术;工艺 引言 汽车加工与制造以及汽车维修领域,都会涉及汽车的焊接技术。目前,随着技术的不断发展,尤其是汽车生产制造业的蓬勃发展,已经可以实现汽车车身以及车辆配件的无缝焊接技术。车身的加工甚至采用模具化加工的形式,从而减少了因为焊接造成的不足。因此,目前,焊接工艺在汽车后市场应用比较广泛,尤其是在汽车的维修市场中,当汽车出现事故的时候,就会采用焊接技术进行维修,从而让汽车能够保证正常的使用。此外,在汽车的加装方面,焊接技术更加的适用,并且通过引进先进的现代科技,从而让焊接效果与质量都更加完善。 一、汽车焊接工艺的应用领域分析 在汽车领域中,由于越来越多的高新技术被应用,是的汽车生活更加丰富。对于我国而言,随着汽车保有量的不断增加,汽车售后市场出现了井喷的状态。在汽车售后市场中,汽车的维修与保养占据着非常重要的地位,也让汽车的服务产业有了较大的发展。对于汽车的焊接工艺而言,最早是应用于汽车的车身焊接。但是,随着技术的发展以及车身制造工艺的发展,汽车车身开始使用模具制作,从而降低了因为焊接而造成的车身问题。那么,下面就对现代化的汽车的焊接工艺主要应用领域进行分析: 1、在汽车的维修领域中有非常广泛的应用;汽车维修属于汽车售后市场领域,由于汽车驾驶的过程中,难免会出现碰撞的现象,从而造成了汽车车身或者是相关配件的损坏。因此,在这种情况下,就可以使用汽车的焊接工艺,将损坏的部分采用焊接的方式,从而进行汽车的维修工艺。 2、人们对于汽车的装饰和改装越来越感兴趣。虽然在汽车检测的过程中,对于擅自改装会进行处罚,但是有车一族们仍然热衷于对于汽车的改装和装饰。其中,对于汽车尾翼的安装非常常见。汽车安装尾翼以后,就显得非常运动动感,有一种非常霸气的感觉。因此,为了让汽车的外观更加个性鲜明,需要对汽车的外观进行相关的改装,从而实现车主所需要的效果。而对于尾翼的加装而言,就一定要采用焊接技术,从而使得汽车的尾翼牢固坚实。因为安装尾翼还是存在一定的风险的,当车速达到一定程度的时候,就需要保证汽车的尾翼的稳定性。 3、对于汽车的车身配件的焊接工艺;汽车在使用的过程中,经常需要在配件方面进行焊接,此外对于在配件之间的结合方面,也需要在适当的情况下使用汽车焊接技术。因此,对于汽车的焊接工艺而言,主要在车身焊接、汽车改装以及汽车配件之间主要进行应用。 二、现代科技在汽车焊接工艺中的应用 随着现代科技的不断发展,汽车焊接工艺中也不断的引入了现代的科技技术。其中最为重要的就是计算机技术,计算机的单片机远程通信技术以及3Dmax等技术开焊接始不断应用到汽车的焊接工艺中。由于人工焊接技术容易在焊接的过程中出现失误,无法实现循迹操作,从而造成焊接的不完美。因此,采用计算机单片机技术,可以进行程序编译,将需要焊接的部分利用3Dma x的进 行仿真,从而保证在焊接的过程中,其能够实现完美的循迹焊接,降低了焊接过程中出现的失误。 此外,在焊接的工艺方面,又引入了一些工艺以及化工技术。传统的高温焊接技术,不仅仅容易造成伤害,更是对操作人员有一定的影响。因此,使用现在的氩弧焊焊接技术,虽然温度更高,但是焊接的质量有所提高。对于焊接的接口以及焊面的平整度,都有了显著的提高。因此,随着现代科技的不断发展,促进了多个行业工艺的提升。对于汽车的焊接工艺而言,引入计算机技术并且实现真正的智能化以及自动化焊接,从而让焊接工艺更加安全方便,有效的提升焊接的效率,保证在焊接的过程中,达到质量的提升以及客户的满意提升。总之,要充分适应时代的发展,让更多的现代科技不断的应用到汽车的焊接工艺之中,从而保证其在不断的发展过程中,符合现有时代的发展理念,满足客户不断提升的硬性要求,实现现代化的汽车焊接工艺。 三、机器人焊接工艺是现代汽车焊接技术的发展前景 汽车焊接最主要的是车身的焊接。在汽车制造公司车身的主要焊接方法为弧焊、点焊、二氧化碳保护焊等。随着社会的发展,人民生活水平的提高,用户个性化需求的日益强烈,对汽车的安全性、美观性与舒适性的要求越来越高,同时汽车制造企业为了追求更大的经济效益,对焊接精度、焊接质量和焊接速度等的要求越来越高,因此建立一条现代化的生产流水线就显得非常重要。而焊接机器人的应用促进了现代化流水线的建立。现代化的焊接流水线主要是满足多车型、多批次的市场需求,提高车身车间生产能力的柔性和弹性。因此现代焊接线必须具有柔性。那么如何才能使焊接线具有柔性呢?普通的焊接线是刚性的,主要由焊接夹具、悬挂点焊机、弧焊机和多点焊机等组成。 这种焊接线一般只能焊接一种车型的车身,那么为了满足市场多元化的需求,就需要重新建立焊接流水线。这对企业来说是非常不利的,企业是追求利润为目的的,并且重新建立流水线造成了财力、人力、物力的浪费。于是建立柔性化焊接生产线摆在了企业面前。机器人的出现与应用满足了汽车企业的现代化的需求,实现了焊接生产线的柔性化。那么在车身焊接线上应用的机器人主要有几种:点焊机器人、弧焊机器人和激光焊机器人。这些机器人的应用,使焊接实现了机器人代替工人工作。 1、点焊机器人:主要进行的是点焊作业,在点与点之间移位时速度比较快,从而减少了移位的时间,通过平稳的动作、长时间的重复工作和准确的定位,取代了笨重、单调、重复的体力劳动,更好地保证了焊点质量,使工作效率得到了很大的提高。它是柔性自动生产系统的重要组成部分,增强了企业应变能力。 2、弧焊机器人:弧焊过程比点焊过程要复杂得多,对焊丝端头的运动轨迹、焊枪姿态、焊接参数都要求精确控制。具有较高的抗干扰能力和高的可靠性。能实现连续轨迹控制,并可以利用直线插补和圆弧插补功能焊接由直线及圆弧所组成的空间焊缝,还应具备不同摆动样式的软件功能,供编程时选用,以便作摆动焊,而且摆动在每一周期中的停顿点处,机器人也应自动停止向前运动,以满足工艺要求。此外,还应有接触寻位、自动寻找焊缝起点位置、电弧跟踪及自动再引弧功能等。 3、激光焊接机器人:激光焊接是与传统焊接本质不同的一种焊接方法,是将两块钢板的分子进行了重新组合,使两块钢板融为了一体变为一块钢板,从而提升了车身结构强度。同时在焊接过程中焊接工件变形非常小,一点连接间隙都没有,焊接深度/宽度比高,焊接质量高。从而提升了车身的结合精度。可见机器人的应用,实现了焊接流水线的智能化,实现了焊接生产线的自动化与现代化。 结束语 汽车维修行业中的汽车焊接行业,其技术要求相对较高,并且直接影响着汽车的维修效果。焊接技术,一般是针对出现重大事故或者是问题车辆等进行焊接。为了让焊接的痕迹最小化,实际上就是为了能够更好的实现高精度焊接,需要不断引入现代科技技术。计算机技术的引入,让焊接工艺能够以一种循迹的方式进行,从而避免了焊接过程中出现的认为失误。此外,在汽车的生产以及制造的过程中,依然需要不断的引入高新科学技术,让焊接工艺更加精湛,从而实现汽车的高精度和高密度,实现汽车质量的全面提升。 参考文献 [1]刘鸣斌.煤层气发动机爆震的检测与控制[J].内燃机与动力装置,2011(02):45-46. [2]吴扬帆.汽油发动机爆震分析与控制[J].传动技术,2010(13):36-38. [3]高玉明.点燃式发动机临界爆震控制及其特性[J].吉林大学学报,2012(14):77-79. >>>下一页更多精彩的“汽
怎么写开题报告呢?首先要把在准备工作当中搜集的资料整理出来,包括课题名称、课题内容、课题的理论依据、参加人员、组织安排和分工、大概需要的时间、经费的估算等等。第一是标题的拟定。课题在准备工作中已经确立了,所以开题报告的标题是不成问题的,把你研究的课题直接写上就行了。比如我曾指导过一组同学对伦教的文化诸如“伦教糕”、伦教木工机械、伦教文物等进行研究,拟定的标题就是“伦教文化研究”。第二就是内容的撰写。开题报告的主要内容包括以下几个部分:一、课题研究的背景。 所谓课题背景,主要指的是为什么要对这个课题进行研究,所以有的课题干脆把这一部分称为“问题的提出”,意思就是说为什么要提出这个问题,或者说提出这个课题。比如我曾指导的一个课题“伦教文化研究”,背景说明部分里就是说在改革开放的浪潮中,伦教作为珠江三角洲一角,在经济迅速发展的同时,她的文化发展怎么样,有哪些成就,对居民有什么影响,有哪些还要改进的。当然背景所叙述的内容还有很多,既可以是社会背景,也可以是自然背景。关键在于我们所确定的课题是什么。二、课题研究的内容。课题研究的内容,顾名思义,就是我们的课题要研究的是什么。比如我校黄姝老师的指导的课题“佛山新八景”,课题研究的内容就是:“以佛山新八景为重点,考察佛山历史文化沉淀的昨天、今天、明天,结合佛山经济发展的趋势,拟定开发具有新佛山、新八景、新气象的文化旅游的可行性报告及开发方案。”三、课题研究的目的和意义。课题研究的目的,应该叙述自己在这次研究中想要达到的境地或想要得到的结果。比如我校叶少珍老师指导的“重走长征路”研究课题,在其研究目标一栏中就是这样叙述的:1、通过再现长征历程,追忆红军战士的丰功伟绩,对长征概况、长征途中遇到了哪些艰难险阻、什么是长征精神,有更深刻的了解和感悟。2、通过小组同学间的分工合作、交流、展示、解说,培养合作参与精神和自我展示能力。3、通过本次活动,使同学的信息技术得到提高,进一步提高信息素养。四、课题研究的方法。在“课题研究的方法”这一部分,应该提出本课题组关于解决本课题问题的门路或者说程序等。一般来说,研究性学习的课题研究方法有:实地调查考察法(通过组织学生到所研究的处所实地调查,从而得出结论的方法)、问卷调查法(根据本课题的情况和自己要了解的内容设置一些问题,以问卷的形式向相关人员调查的方法)、人物采访法(直接向有关人员采访,以掌握第一手材料的方法)、文献法(通过查阅各类资料、图表等,分析、比较得出结论)等等。在课题研究中,应该根据自己课题的实际情况提出相关的课题研究方法,不一定面面俱到,只要实用就行。五、课题研究的步骤。课题研究的步骤,当然就是说本课题准备通过哪几步程序来达到研究的目的。所以在这一部分里应该着重思考的问题就是自己的课题大概准备分几步来完成。一般来说课题研究的基本步骤不外乎是以下几个方面:准备阶段、查阅资料阶段、实地考察阶段、问卷调查阶段、采访阶段、资料的分析整理阶段、对本课题的总结与反思阶段等。六、课题参与人员及组织分工。这属于对本课题研究的管理范畴,但也不可忽视。因为管理不到位,学生不能明确自己的职责,有时就会偷懒或者互相推诿,有时就会做重复劳动。因此课题参与人员的组织分工是不可少的。最好是把所有的参与研究的学生分成几个小组,每个小组通过民主选举的方式推选出小组长,由小组长负责本小组的任务分派和落实。然后根据本课题的情况,把相关的研究任务分割成几大部分,一个小组负责一个部分。最后由小组长组织人员汇总和整理。七、课题的经费估算。一个课题要开展,必然需要一些经费来启动,所以最后还应该大概地估算一下本课题所需要 的资金是多少,比如搜集资料需要多少钱,实地调查的外出经费,问卷调查的印刷和分发的费用,课题组所要占用的场地费,有些课题还需要购买一些相关的材料,结题报告等资料的印刷费等等。所谓“大军未动,粮草先行”,没有足够的资金作后盾,课题研究势必举步维艰,捉襟见肘,甚至于半途而废。因此,课题的经费也必须在开题之初就估算好,未雨绸缪,才能真正把本课题的研究做到最好。
基于VHDL语言的汽车尾灯控制电路的设计摘要:本课题主要是基于可编程逻辑器件,使用硬件描述语言VHDL,采用“自顶向下”的设计方法编写程序实现汽车尾灯的控制,并对控制器进行编程下载,它的体积小,功耗低,成本低,安全可靠,能实现控制器的在系统编程,其升级与改进极为方便。关键词: VHDL 汽车尾灯控制 时钟信号1. 尾灯控制电路总框图,根据电路总框图的描述,我们大概可以了解到整个汽车控制尾灯的工作原理,从中我们可以发现当左右转信号同时有效时,6盏灯的闪烁是通过一个与非门实现的。并且可以获知本次设计的汽车尾灯控制电路主要分为三个模块,即控制模块,左转LFTA模块和右转RITA模块。了解到这几点,就可以对本次设计作较为详尽的解释。2.模块KONG。模块KONG如图所示,此为整个程序的控制模块。程序如下:Library ieee;Use ;Entity kong isPort(left,right:in std_logic;Lft,rit,lr:out std_logic);End kong;Architecture kong_logic of kong isBeginProcess(left,right)Variable a:std_logic_vector(1 downto 0);BeginA:=left & right;Case a isWhen”00”=>lft<=’0’;Rit<=’0’;Lr <=’0’;When”10”=>lft<=’1’;Rit<=’0’;Lr <=’0’;When”01”=>rit<=’1’;Lft<=’0’;Lr <=’0’;When other=>rit<=’1’;lft<=’1’;lr<=’1’;end case;end process;end kong_arc;控制模块首先使用了库说明语句:library ieee;Use 使用ieee库中的std_logic_1164程序包的全部资源。此控制模块定义的实体名为kong。在程序中要求实体名与存储的文件名一致。实体名为kong,则存储的文件名为。且此段程序包有5个端口,其名称分别为left. Right. Lft. Rit. Lr 。left 和right的端口方式是输入,lft, rit, lr 是输出,他们的端口类型都是std_logic的数据类型。实体说明部分结束以后,就是结构体的说明部分。结构体是整个VHDL语言中至关重要的一个组成部分,这个部分给出模块的具体说明,指定输入与输出之间的行为。结构体对实体的输入输出关系可以用三种关进行描述,即行为描述,寄存器传输描述和结构描述。只不过结构体的框架是完全一样的。本结构体中包含有一个进程语句,进程语句中又包含有两个敏感量process(left ,right),从begin开始到end process结束是一组顺序执行语句,ieee标准数据类型“std_logic_vector”定义了两位位矢量1downto 0,变量为a。程序往下把left和right的与赋值给a,下面便执行case语句了 ,case语句是无序的,所以所有条件表达式的值都是并行处理的。当条件表达式的值为”00”时则把lft ,rit ,lr,都变为0,所有信号都无效。当条件表达式为”10”时,左转信号lft有效,其它信号都无效,当条件表达式的值为”01”时右转信号rit有效,其余的无效。若条件表达式为其它的情况的话,那么就将rit ,lft ,lr 全部置1,即全部有效。最后结束case语句 end case .结束进程和结构体语句。3. 模块LFTA源程序:Library ieee;Use ;Entity lfta isPort(en,clk,lr:in std_logic;L2,l1,l0:out std_logic);End lfta;Architecture lft_arc of lfta isBeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr=’1’ thenTmp:=”111”;Elsif en=’0’ thenTmp:=”000”;Elsif clk’event and clk=’1’ thenIf tmp=”000” thenTmp:=”001”;ElseTmp:=tmp(1 downto 0) & ‘0’;End if ;End if;L2<=tmp(2);L1<=tmp(1);L0<=tmp(0);End process;End lft_arc;模块LFTA同样使用了ieee库语句,定义的实体名为lfta,其共分为六个端口即en,clk,lr,l2,l1,l0,其中en,clk,lr为输入,l2,l1,l0的端口方式为输出,而它的端口类型同样也为std_logic数据类型。LFTA程序中结构体名为lft_arc,实体名为lfta 。结构体中包含有一个进程,共定义了三个敏感量clk,en,lr,设变量名tmp为2 downto 0 的三位位矢量。当左右开关同时接通时lr有效,即lr=1,此时tmp:=”111”右边的三盏灯全亮起来,当tr=1时但en=0则左边三盏灯全灭不亮。而如果这两种情况都不是的话,那么lr=’0’时当时钟上升沿脉冲到来时,如果tmp=”000”则左边第一盏灯亮,否则就将tmp(1 downto 0)和’0’的与赋值给tmp,那么依次左边的三盏灯就能实现从左到右按次序亮灭了。最后将tmp(2)送到l2,tmp(1)送到l1,tmp(0)送到lo,结束程序和结构体。这就是在实现左转弯的时候执行的程序的全过程。通过对左转的理解,右转弯就很容易了,其执行的过程和左转弯的时候非常相似的 。我们也可发现LFTA模块的功能是当左转时控制左边的三盏灯,当左右转信号都有效时,输出为全’1’。下面来看一下右转弯控制模块。4.模块RITA源程序:Library ieee;Use ;Entity rita isPort(en,clk,lr:in std_logic;R2,r1,r0:out std_logic);End rita;Architecture rit_arc of rita isBeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr=’1’ thenTmp:=”111”;Elsif en=’0’ thenTmp:=”000”;Elsif clk’event and clk=’1’ thenIf tmp=”000” thenTmp:=”100”;ElseTmp:=’0’ & tmp(2 downto 1);End if;End if ;R2<=tmp(2);R1<=tmp(1);R0<=tmp(0);End process;End rit_arc;和左转弯时候的相同,右转弯时再次使用了ieee的库说明,这样我们可以很清楚的理解了右转弯的原理,此时库定义的实体名为rita,对于实体名前面已经讲过了不再重复了,同样的程序包中还是使用了6个端口en ,clk,lr,r2,r1,r0. en ,clk, lr的端口方式是输入,r2,r1,r0的端口方式是输出。结构体中和左转时相同引入一个进程同时和三个敏感量:clk,en,lr。变量tmp为2downto 0的三位位矢量。当左右开关同时接通时lr=’1’,那么此时变量tmp=’111’,即右面的三盏灯都有信号,三盏灯全亮。否则lr=’0’,当en=’0’时,tmp=’000’,即三盏灯全灭掉。Elsif clk’event and clk=‘1’即当时钟脉冲上升沿到来时,en=’1’,如果tmp=”000”,就把”100”送到tmp 此时右边的第一盏灯亮。否则就把’0’和tmp(2 downto 1)的与送到tmp,则依次为右边第一盏灯,第二盏,第三盏亮。然后结束if语句。这个之后就和左转的程序是一样的了,将tmp(2)中的数值送到r2,将tmp(1)中的数值送到r1,将tmp(0)中的数据送到r0,然后结束进程语句和整个结构体语句。那么到这里整个汽车尾灯的VHDL程序控制就结束了。5.结论:本次设计用到了硬件描述语言VHDL实现了对汽车尾灯的控制,总结整个设计程序我们可以发现一些问题;设计中的优点:基本实现了汽车在运行时候尾灯点亮方式的各种情况。设计中的不足:由于在行车的时候都是用开关控制的,所以每一个开关应该有一个消除机械振动的装置,可以利用基本RS触发器来实现,所以在条件允许的情况下可以对整个设计进行进一步的改进。6.参考资料:王振红 《VHDL数字电路设计与应用实践教程》 机械工业出版社 2006年1月彭容修 《数字电子技术基础》 武汉理工大学出版社 2005年9月潘松 黄继业 《EDA技术与VHDL》 清华大学出版社 2006年11月 ieee;use ;entity ZHUKONG isPort(left,right:in std_logic;Lft,rit,lr:out std_logic);end;architecture kong_arc of ZHUKONG isbeginProcess(left,right)Variable a:std_logic_vector(1 downto 0);BeginA:=left & right;Case a isWhen"00"=>lft<='0';Rit<='0';Lr <='0';When"10"=>lft<='1';Rit<='0';Lr <='0';When"01"=>rit<='1';Lft<='0';Lr <='0';When others=>rit<='1';lft<='1';lr<='1';end case;end process;end kong_arc;library ieee;use ;entity LFTA isPort(en,clk,lr:in std_logic;L2,l1,l0:out std_logic);end;architecture lft_arc of LFTA isbeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr='1' thenTmp:="111";Elsif en='0' thenTmp:="000";Elsif clk'event and clk='1' thenIf tmp="000" thenTmp:="001";ElseTmp:=tmp(1 downto 0) & '0';End if;End if;L2<=tmp(2);L1<=tmp(1);L0<=tmp(0);End process;end lft_arc;library ieee;use ;entity RITA isPort(en,clk,lr:in std_logic;R2,r1,r0:out std_logic);end;architecture rit_arc of RITA isbeginProcess(clk,en,lr)Variable tmp:std_logic_vector(2 downto 0);BeginIf lr='1' thenTmp:="111";Elsif en='0' thenTmp:="000";Elsif clk'event and clk='1' thenIf tmp="000" thenTmp:="100";ElseTmp:='0' & tmp(2 downto 1);End if;End if ;R2<=tmp(2);R1<=tmp(1);R0<=tmp(0);End process;end rit_arc;
211 浏览 3 回答
190 浏览 4 回答
292 浏览 3 回答
234 浏览 3 回答
327 浏览 4 回答
214 浏览 4 回答
95 浏览 4 回答
295 浏览 3 回答
336 浏览 5 回答
329 浏览 6 回答
357 浏览 4 回答
156 浏览 3 回答
304 浏览 3 回答
296 浏览 4 回答
316 浏览 3 回答