




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第17章油门控制系统引子你开过车吗?听过这些关键词吗?离合器油门踏板刹车油门控制系统压力变化数据采集计算踩踏量步进电机修正指示灯修正信号生成17.1项目目标本次项目要求用应变桥传感器、步进电机、编码器和指示灯设计实现汽车油门控制系统的模拟。要求实现:当油门踏板被踩下或松开后,汽车转速有变化,并有相应指示。本次项目要求实现模拟油门控制系统,实现如下要求:(1)应变梁所受压力的变化来表征当前油门踏板的踩踏量。压力越大,表示踩踏量越大,发动机进气量越大,则汽车速度越快。(2)根据应变桥输出电压的大小控制步进电机的转速高低。用光电编码器来测速。(3)使用多个发光二极管垂直(横向)排列,作为当前油门踏板踩踏量的变化的指示或者说表征当前车轮转速高低(或者说发动机进气量的多少)。通过本项目的设计、实施,要求学生:(1)掌握使用NI-DAQmx实现多任务(模拟信号采集、数字信号输出、角度测量)数据采集程序设计;(2)了解双循环如何实现数据传递;(3)了解主从结构、掌握生产者/消费者结构的使用。17.2项目分析由项目目标知本项目涉及的相关传感器有:应变桥传感器、步进电机、编码器和发光二极管。用应变桥传感器输出变化来模拟油门踏板的踩踏量;步进电机运转来模拟车速,编码器来检测速度快慢;用六个发光二极管来提示进气量的大小(或速度快慢);其中步进电机的转动与应变桥所受压力的关系为:(1)当压力增大时,步进电机转速逐渐增大,期间,编码器读取已发脉冲数值,判定转速是否达到设定的最大值。发光二极管随着进气量的增大,其点亮的个数逐渐增多,到全亮;当超过规定的进气量(车速),则六个发光二极管进行闪烁作为报警。(2)当压力变小时,步进电机转速逐渐减小直到0。发光二极管随着进气量的减小,其点亮的个数逐渐减少,到全灭。(3)当压力为0且无任何操作时,发光二极管不亮。本项目相关的硬件设计已在前面的章节中说明,从以上的项目分析中知:在软件设计中同时需涉及模拟量的输入(应变传感器信号检测)数字量的输出(步进电机控制、发光二极管的亮灭)计数器输入(编码器检测步进电机转过的角度)在完成整个程序设计前可以首先完成对各部分的软硬件调试,继而对其进行整合。整个程序架构可考虑用状态机、生产者消费者结构等。17.3项目实现17.3.1生产者消费者结构17.3.2前面板设计17.3.3程序框图设计1.双循环结构2.生产者消费者设计模式17.3项目实现在前几章项目实现中多采用了状态机架构或带事件结构的状态机架构,无论哪一个在任何时刻只能有一个状态在运行。大多数比较复杂的应用至少应该有“菜单”和“采集”两个状态,如果数据采集程序在运行时仍然希望系统能够处理菜单的事件,这是在传统的状态机或者事件结构中无法实现的。因为无论是状态机结构还是事件结构,都是由一个循环组成的,不同的状态是无法同时被响应和处理的。因LabVIEW本身就是一种多线程的程序设计语言,要解决这个问题是比较简单,如可以再加一个循环或者另外开一个程序独立运行。但是这样也会带来一些新的问题,比如:(1)两个循环(程序)之间如何交换和共享数据。(2)两个循环(程序)都有着独立的错误处理系统,它们之间是如何协调的。(3)两个循环如何分工呢?应该以哪种方式对状态进行分类以将不同的状态放置在不同的循环(程序)中?(4)一个程序如何控制另一个程序的运行和停止。本项目首先使用“多循环”来解决程序并行运行的问题,两个循环采用全局变量或局域变量进行数据交互和共享。但当两个循环执行的速率不相等时,必然会造成数据的丢失或重复。多循环之间可能使用LabVIEW提供的队列操作函数,在数据的发送者和接受者之间建立一条缓冲通道,这样就避免了循环不同步所带来的影响,即生产者消费者结构。17.3.1生产者消费者结构
NILabVIEW中提供了六种最基本的设计模式:标准状态机、队列消息处理器、生产者/消费者设计模式(事件)、生产者/消费者设计模式(数据)、用户界面事件处理器、主/从设计模式。其中状态机和生产者/消费者设计模式应用最为广泛,而主/从设计模式与生产者/消费者设计模式结构上极为相似,两者的区别就是通知器和队列之间的区别;本小节主要介绍生产者/消费者设计模式。生产者消费者模型如同生活中的供水系统,在数据产生/采集端(供水局)产生数据后,并不直接向终端用户供水,因为前者产生水的速率与后者消耗水的速率并不相同。此时需要建造蓄水池将供水局产生的水放入到蓄水池中,同理获取的数据也放入该缓冲区中。当终端用户需要用水时,直接从蓄水池中获取就可以了,同理在进行数据显示和分析时直接从数据缓冲区中获取就可以了。LabVIEW中的队列函数提供了一种很好的方式规避了这个问题,由于队列中的元素是“先进先出”的,因此确保了接收到的数据是有序的。在LabVIEW的队列操作中(元素入队列和元素出队列函数),提供了timeout选项以处理数据缓冲区的溢出或不足。当数据溢出时,元素入队列函数(数据进入队列)将停止发送数据(处于等待状态),直到缓冲区存在数据空间或者达到了timeout设置的时间;而当数据不足时,元素出队列函数(数据流出队列)将停止接收数据(处于等到状态),直到缓冲区进入了新的数据或者达到了timeout设置的时间。值得注意的是,使用队列最后一定要用释放队列引用函数将内存释放,否则程序会因内存泄露而报警。基于事件的生产者/消费者模式与基于数据的生产者/消费者模式没有本质上的区别,只是数据的来源不同。基于事件的生产者/消费者模式是用户在前面板上进行操作,从而触发了生产者中的事件结构。获取队列引用函数将数据传递给元素入队列函数,通过队列的执行顺序关系,元素出队列函数将数据传递给消费者,执行相应的程序。17.3.2前面板设计油门控制系统前面板如图17-5所示。使用波形图表查看测得的应变量。使用仪表控制查看速度,用6个布尔控制指示速度等级,当超速时6个布尔控制一起闪烁进行报警。17.3.3程序框图设计1.双循环结构
当用手指按压应变桥悬臂梁,压力越大(进气量大),电机转速(车速)越快,亮灯盏数越多;当减小压力(进气量)时,电机转速(车速)减缓,指示灯盏数减少。2.生产者消费者设计模式双循环中可以利用全局变量或局部变量传递数据,但是当两个循环执行的速率不相等时,会造成数据的丢失或重复。因此可以考虑用生产者消费者模式,尽管本系统是相对较为简单的数据处理,使用生产着消费者模式,有一点点大材小用,但对于该程序设计模式进一步深入了解掌握是有好处的。生产者负责采集应变梁的应变信号,使用队列函数传递踩踏量,传递至消费者循环,在消费者循环中,根据踩踏量,做相应处理。思考题17-1同步VI和函数除了队列还有哪些?17-2LabVIEW有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车尾气净化设备合作协议书
- 二零二五地皮转让中介费结算标准合同模板
- 二零二五年度新能源电动汽车充电桩电气安装合同
- 2025年环保项目贷款担保合同
- 穴位贴敷护理课件
- 2025年度房屋抵押贷款合同借款人资质审查范本
- 二零二五年代签商务合同代理协议
- 2025版电商行业数据共享与保护合作协议
- 二零二五年度乐器租赁与音乐制作版权保护协议
- 二零二五年度智能电网建设电力设备安装工程承包合同
- 国内旅拍合同协议
- 马工程西方经济学(精要本第三版)教案
- 农业新质生产力:发展意义与实践要点探讨
- 海油云系统的建设实践与未来发展
- 金属电梯门套施工方案
- 岗位职责安全生产责任制签订协议书6篇
- 《煤矿工作面机械设备选型及供电设计》11000字
- 中国食物成分表标准版第6版
- 移动应用安全开发规范-洞察分析
- 《员工形象礼仪》课件
- 印章交接表(可编辑)
评论
0/150
提交评论