一种交通工具作文(共14篇)
一种交通工具作文 篇1
2009年年中开始准备GRE、TOEFL,背了一遍GRE单词之后,有幸听了周纯老师关于学习英语的讲座。
他并没有像其他“英语专家”一样大谈各类五颜六色的学习方法,而是语重心长地对我们讲:“虽然我搞了一辈子外语,但我却劝你们学理工科的不要把太多时间放在学英语上。中国未来需要的高技术人才肯定从你们当中出,你们把1/3甚至一半的时间用来学外语,在专业课上不就比外国理工科的学生落后了吗?
但我不是否认英语的重要性,而是说对你们理工科学生来讲,英语是个工具,不是学问。学习使用工具是有方法的,不能像学习一门学问一样钻研,而是要使用、再使用。”(大意如此)
听了周老师一席话以后,我反复思考“英语当成工具而不是学问”这句话。思考的结果是把之前买的所有英语考试的资料全都卖了,因为这些考试书(单词书、阅读、作文、听力等等)无一不是把英语当成一门学问,还如临大敌地总结各类经验、技巧,美之名曰战略、战术。但一位普渡大学ME的美国学生讲:“很多GRE 单词我不认识,也不知道什么考试技巧,但我毫无准备地去考,也能考得比你们高。”这又何解呢?
后来我干脆再也不再上各类论坛,再也不理什么“x经”,更不消说在网上下载某著名辅导班的视频,或是花大钱去上这些辅导班了。
但我并没有停止学习英语。我开始专注于专业研究,大量阅读英语的论文和写论文;看国外大牛们的博客、网站;参加学校和网上的各种英文讲座、课程、研讨会;也曾花1000+块钱买我最喜欢的数学游戏专家Martin Gardner的原版书来读;甚至厚者脸皮去给在交大读MBA的职场中人当过收费口语老师(同时还学到了他们的职场经验);还曾跑去一个国际夏令营,给日本朋友做过中英口译,与波多黎各、加拿大的朋友们“侃大山”;后来在一次国际会议上,为了熟悉各国口音,专门找印度、葡萄牙、意大利、日本、西班牙、法国等国的与会者讨论问题;我甚至跑到过五星级宾馆装外国人,吓得服务人员连忙把英语最好的叫出来招待我。这些,在我看来,才算是把英语当作工具来学。
而且事实证明,这样学习英语是轻松且有效的。2010年6月要考GRE的时候,英语已经“荒废”了半年多了,但硬者头皮上考场竟然考了1400+;我一下子有了信心,干脆完全不理英语了。2010年11月考TOEFL,我只是在考前花2小时熟悉了一下考试软件,也考了100+;一下子考上瘾了,心想把IELTS也考了吧。找了几个BBC Documentary熟悉了一下英式口音,两周后(11月底)就去考了,考了7.5;
之间还参加过外研社英语演讲比赛,我为了挑战自己的恐惧与紧张,故意不做任何准备就上,全靠现场发挥。结果3分钟之内大家笑声不断,讲完评委老师们都乐了,说你这哪里是Speech,压根就是Random Talk啊。并问我:“你知道我们的下一轮比赛是要上电视的,如果让你进下一轮,你会不会做一个正式的演讲。”但当时忙着赶一篇国际会议论文,就说:“让不让进下一轮随你们,做什么演讲随我。”结果可想而知。但我很满意了,因为我挑战自己的恐惧与紧张的目的已经达到了,自此,再也不怕英文演讲了。
说到这里,我不禁又想到了我学习英语的历史。
高中时,迷上了柯南〃道尔、狄更斯的小说与莎士比亚的戏剧、十四行诗,且觉读原版方有趣味,完全不理一个它们不适合英语初学者的说法。后来参加全国中学生英语竞赛,竟轻松过初赛、复赛,得了个全市第1,全省前5。连我自己都觉得纳闷:为什么我的英语竞赛成绩比高考成绩还好?
大学时迷上了“娱乐数学Recreational Mathematics”,连专业课都荒废了2年,更不消说英语了。我记得自己在考四级、六级及参加全国大学生英语竞赛的时候,在开考前仍
拿着Martin Gardner的数学游戏书在读,环顾四周大家或拿着英语书、或拿着小纸片加紧复习,还有的闭目养神深呼吸,觉得自己实在是“大逆不道”。现在想想感到离谱的是,我在听听力的空隙在思考着考前看的书里面的数学问题。结果四级530+,六级580+,两次全国大学生竞赛一等奖。并不高,但我很满意。
考研复习时,我决定完全不复习英语,只是在闲时像背诗一样摇头晃脑地读诵新概念上的课文。在考场上还在试验听力左耳听与右耳听的效果优劣,做阅读时练习影像记忆(即试着像照片一样记忆),作文在考场上现场构思,故意不按流行的结构写(花了一个多小时)。结果70+,不高,但我也很满意。
研究生分级考试,我感觉这个考试不太重要,干脆把试卷翻转过来做阅读,听力时试验闭上眼睛,整个听完之后再做题,结果导致没时间写作文,只是匆匆写了几句话(句句是肺腑之言)。结果竟然是A+,至今不知为何,难道是因为改卷老师看“模板作文”看腻了,冷不丁地出现了我这一个只有几句话的作文,也看不出有啥结构(我自己的都不知道),感叹终于有学生不受“模板作文”的毒害了?
回想这么多年学习英语与考试经历,我很欣慰,因为虽然这些考试都很重要,但我以“玩耍”的态度对待它们,结果却也不差。而且每当回忆这些记忆片断时,总是不自觉地扬起嘴角:我的人生原来这么有意思。
在如今,学习英语是避不开的。不仅要有英语交流的实力,还要有通过各类考试的能力。但如果不是英语专业,就不要把英语当成学问来学,而要当成工具,愈用愈熟练。谁规定的通过英语考试,或是参加英语竞赛、演讲比赛一定要准备?别太认真,永远不要让英语进入你的噩梦。在考场上和考题、改卷的人开开玩笑,也未尝不可。
最后用一个故事说明英语其实不是那么重要。知道一个学生,高中没考上,去中专学厨师。20岁左右在国际厨艺比赛获大奖,现在上海某五星级酒店做首席。他不懂英语,但处处受人尊重,经常被邀出国,而随从翻译是上海外国语毕业的优等生。
一种交通工具作文 篇2
汽轮机总装是汽轮机产品在制造厂生产的最后一个阶段, 该阶段的目的是将各个零件产品进行制造厂的预装配及部分调整, 使得产品的各项装配指标在制造厂内基本调整合格, 在产品进入到客户电厂时的调整工作量变小, 进行安装及轻微调整后即可满足汽轮机组各方面的安装指标, 满足机组运行的要求。
1 目前国内汽轮机汽缸总装阶段常规找中心的方法综述
目前在国内外, 找中的基本形式为采用拉钢丝或者架假轴的方式进行, 对于有轴承的产品, 可以通过将假轴架在轴承体内, 通过假轴进行找中, 对于没有轴承的产品, 通常在产品的两段用两个拉线支架在内部拉钢丝, 通过钢丝来进行找中, 两者的实际原理一样, 整体原理的示意图如图1所示。
按照图1所示, 在找中的时候, 在汽缸内部装入假轴 (钢丝) , 将其两侧固定, 使得满足工艺要求后, 用内径尺测量图中所示的上、下、左、右4个值, 对比左右可以得出汽缸左右的偏心, 对比天地可以得出汽缸上下的偏心, 通过偏心调整键或者调整销可以对以上上下、左右的偏心进行调整, 多次调整后使得其满足整体的工艺要求。
2 一种汽缸找中心工具的设计理念及结构简述
常规的机组找中心工具, 其操作有一定的不方便性, 对于不同形式的尺寸需要使用多种规格的内径尺进行测量, 且大直径的内径误差比较大, 本文着力讲述一种新型的找中心工具。
2.1 工具的设计理念
1) 工具本身有固定的支架以使其满足多种形式机组的通用性, 不需要分类别采用架假轴或者拉钢丝的方法, 对汽缸产品的依赖性低。
2) 工具自身有一定的调整功能, 使得找中的时候即可以调整工具, 也可以调整产品, 采用该种粗调整的方式, 效率会高很多。
3) 工具自身带有上述上、下、左、右尺寸的测量装置, 不用依据多种尺寸分类选用内径尺, 避免了操作的繁琐性及不可操作性。
2.2 工具的设计结构
工具的结构如图2所示, 具体结构分析如下:
1) 工具设计有整体中心轴支架, 支架底部带有可调平面千斤顶, 用以调整制作的位置, 重心轴支架上部带有轴承, 用以支撑中心轴。
2) 中心轴为一根空心结构的轴, 该轴上一侧有滑动轨道, 该轨道上有滑块可以与测量传感器支撑装置联接。
3) 测量传感器支撑装置上部已经有滑轨, 滑轨上配有滑块, 滑块上安装光栅尺, 可以测出滑块沿着传感器移动导轨的位移量。
4) 测量传感器采用的是直线位移传感器, 可以沿着轴转动时得出在不同位置传感器的尺寸变化值, 上下方向的变化值即为上下方向的偏心值, 左右方向的尺寸变化值即为左右方向的偏心值。
以上工具在使用时, 通过将中心轴支架落在地基上, 调整中心轴支架使得假轴可以落入, 调整传感器测量支架上的滑块, 使得传感器显示的尺寸与要测量的半径尺寸一致, 即可开始测量。
3 优缺点分析
通过找中心工具, 分析可以得出该种工具有如下的优点:1) 整体设备通用性好, 对于不同规格的产品, 能够适用;2) 整体设备的调整比较方便, 采用微调与粗调相结合的方式进行调整, 比较方便;3) 测量方法比较简便, 采用数显的方式, 相比于内径尺测量的方式要准确很多。
但是由于整体设备的集成性好, 整体设备成本要略高一些。
摘要:文中主要设计一种用于汽轮机总装阶段机组找中心的工具, 该工具能够满足在汽轮机总装阶段汽缸的调中心及各个内部部套的中心调整。介绍了该种工具的设计理念及设计结构, 同时将该种找中心工具与传统的找正工具进行比较, 阐述这一新型的测量工具在汽轮机产品生产加工中的可应用性、可推广性。
手机只是一种工具 篇3
跟同事或朋友说起此事时,原来所有人都有这种倾向,只是程度不同而已。
记得刚开始买这个手机时,为花这点钱能享有这么多方便而迅速的功能而惊而喜,觉得极为合算,现在想想,如果由着自己的习惯,这手机将在很大的程度上控制自己的思想与时间,真是太不合算了!
像我这样三十多岁才开始使用智能手机的人,尚对手机有这样的迷恋与依赖,那些从小就接触手机,并且以后将拥有更为先进快捷手机的下一代,对手机又会有怎样的依赖呢?这样想想,觉得有点可怕。
太好的东西,都有其可怕性。说这话时,突然意识到自己的观念有点滞后,像所有的老朽一样,对自己预料不到也控制不了的事情有些恐惧,也有些担心。
一种交通工具作文 篇4
串联亲和纯化技术:一种极具潜力的分离、鉴定蛋白复合体的工具
大多数细胞的生物学功能都是由蛋白复合体而非单一蛋白来完成的,所以识别和分析蛋白复合体的组分是研究蛋白功能所必需的.串联亲和纯化技术(TAP)能在生理条件下有效地分离、鉴定蛋白复合体,而无需知道复合体的组成或功能,目前已成功地应用于酵母及其他生物体中的蛋白复合体的.成分分析.与质谱技术联合应用可以识别与目的蛋白相互作用的蛋白,进而揭示蛋白质相互作用网络及其功能.
作 者:狄文娜 花芳 彭小忠 DI Wen-na HUA Fang PENG Xiao-zhong 作者单位:中国医学科学院,中国协和医科大学,基础医学研究所,医学分子生物学国家重点实验室,北京,100005刊 名:基础医学与临床 ISTIC PKU英文刊名:BASIC & CLINICAL MEDICINE年,卷(期):26(3)分类号:Q816关键词:串联亲和纯化(TAP) 蛋白复合体
作文交通工具一年级 篇5
五千多年前,人们发现用圆柱体非常利用滚动,就发明了用滚木托运,用来托运大的物体,这时人们又想:如果有一种物体可以把我们带动到别的地方那就好啦。于是,人们又发现动物可以驯服,又开始驯服马儿,来保证自己的出行。可是人们毫不放弃自己的目标,他们想:如果一匹马儿可以多拉几个人那就更好啦,于是人们又发明了马车,来保证多人可以出远行。
但是人们还想,如果能把速度加快就更好了,于是瓦特发明了蒸汽机,把它安装在车上就可以带动车子飞快行走,这就是蒸汽机车。
随着科技的发展,蒸汽机满足不了人们的需要,又发明了内燃机车、电力机车、还有更快的磁悬浮列车。
人们还在不停的完善着交通工具,我相信未来的交通工具会更快捷更安全更舒适的。
一种基于视频的交通状况检测方法 篇6
1 现有的交通状况检测技术
目前, 常用的交通状况检测方法[2]主要有光流法[3]、检测线圈法、超声波雷达检测法、GPS浮动车检测法等。然而, 这些方法均存在许多问题。其中, 光流法存在着计算量大、检测延迟大等问题;检测线圈法对路面破坏性较大, 其安装维护并不方便, 且由于外界因素影响容易导致数据采集失败;超声波雷达检测法可以全天使用, 但由于其检测功能的单一性, 并不能满足人们对道路环境实时检测的需求;GPS浮动车一般都集中在市中心区域, 故实际有效数据覆盖范围不够, 且由于GPS系统本身容易受到外界因素的影响, 从而造成信息获取不准确以及缺失。
与上述方法相比, 本文所采用的视频检测[4]方法具有实时性强、准确性高、稳定性好、易于维护等优点, 因其具有独特的优势而得到广泛应用。
2 基于视频的交通状况检测概述
2.1 道路交通状况判别标准及分类
道路交通服务水平起源于美国的HCM (Highway Capacity Manual) [5], 目前, 多数国家关于道路交通状况分类的研究都是在该基础上展开的。但是, 该标准不易被大众理解, 且不能直观地描述道路的拥挤状况。
为了使交通状况判别具有良好的效果, 所选择的判别标准应具有直观和可靠的特点。常用的交通状况分类指标有交通流量[6]、占有率、密度及速度等。其中, 车速与道路交通流关系最为密切, 因为在不同的交通状况下, 车辆的行驶速度会有明显差异, 所以根据速度可以准确地反映出道路交通状况。因而, 本文以速度为特征, 提出了基于视频的道路交通状况检测方法, 将交通状况从总体上划分为3级, 分别为畅通、饱和、拥挤。
对于一般城市道路, 各种交通状况的实际意义及其对应平均速度如下:
1) 畅通:车辆较少, 可顺利通行, 道路平均车速大于30 km/h;
2) 饱和:车辆较多, 但是仍在缓慢前行;该状态属于过渡状态, 道路平均车速大于15 km/h, 小于30 km/h;
3) 拥堵:车辆几乎停驶, 排队等待通行, 道路平均车速小于15 km/h。
因此, 在统计出当前的道路平均车速后, 即可方便地判断出交通状况, 该方法简单, 准确性高, 实时性好。
2.2 道路交通状况各状态转换关系
各交通状态之间的转换关系如图1所示。各交通状态之间是相互关联的, 但车辆在正常行驶情况下, 道路的畅通和拥堵状态之间不可能直接跳跃, 也就是说, 交通状况不会从畅通状态直接跳跃到拥堵状态, 也不会从拥堵状态直接跳跃到畅通状态, 而必须经过饱和的过渡状态。
3 基于视频的交通状况实时检测原理
3.1 单个车辆平均速度估算
单个车辆的瞬时速度由于具有即时性, 因此并不能用来表征车辆在某一段时间内的运动特征, 所以需要计算车辆平均速度。
本文根据车辆外接矩形的中心点位置来计算车辆在一段时间内的平均车速[7]。一般而言, 摄像机的架设方向为正对路面, 车辆行驶方向为由远及近面向摄相机镜头运动。因此计算平均车速时只需考虑车辆沿道路方向 (即图像的Y轴方向) 的速度, 车辆在图像Y轴方向速度为。根据车辆在视频序列中的速度来计算其实际速度需要对摄像机进行标定, 根据一种“像素—距离”映射关系, 可以将图像中像素距离转换为实际道路上的距离, 从而求得单个车辆在一段时间内的实际平均速度。
3.2 道路平均速度统计
在交通状况判别过程中, 单个车辆的平均速度并不具有太大的研究意义, 因为它一般不能全面地反映出车辆群体的速度特征, 进而也不能反映出当前道路的拥堵状况[8]。而统计意义上的平均车速才是研究的重点, 因此必须统计一段时间内道路上车辆群体的平均速度, 将其作为该段时间内的道路平均速度, 才能较全面地描述当前的道路交通状况。在本文中, 每一分钟统计一次道路平均速度, 由此来统计一次交通状况判断。
本文采用统计直方图法来估算道路平均速度。统计直方图法采用频数的概率分布对所求变量进行计算, 计算公式为
式中:v为所求道路一分钟内统计平均速度;vi为第i辆车在1 min内的平均速度;m为1 min内车辆的数量;pi为各平均速度对应的概率值。
对西安市某路段进行测试, 1 min内车辆平均速度及其对应频数和频率如表1所示。
从上表可知, 这1 min内共统计了166辆车, 由式 (1) 可得, 该时间内道路统计平均速度为16.24 km/h, 根据2.1节中交通状况划分标准可得:道路状态为饱和状态。
3.3 基于视频的交通状况实时发布原理
由于环境影响以及实验误差的存在, 并不能将上述1 min内的判断结果作为实际交通状况进行发布, 因为这只是很短时间内的瞬时交通状况。只有当该状态持续一段时间后, 才可以将其发布为道路的当前状态, 然后接着进行下一状态的判断。理论上, 某一状态持续的时间越长, 判断的准确性越高, 但实际上, 随着时间的延长, 检测的实时性会逐渐减小。因此在实际检测时需要选取合理的测试时间。
经过大量的实验测试, 最终本文选取3 min作为各状态发布的持续时间, 即当道路在连续3 min内保持同一状态时, 则发布该状态为道路当前状态信息;否则, 道路状态信息不更新, 即维持前一个道路交通状态。
4 测试结果
根据本文提出的方法进行了大量的实验测试, 测试结果表明, 该方法能够很好地实现交通状况检测, 在多种情况下的测试结果均达到令人满意的效果。图2为西安市南二环某路段的交通状况检测结果, 其中, 从上到下两条曲线分别表示当前道路交通状况和当前道路统计平均速度。
从图2可以看出, 当道路处于畅通状态时, 道路统计平均速度值比较大;当道路处于饱和状态时, 道路统计平均速度明显减小, 但车辆仍可以缓慢移动;而当道路进入拥堵状态时, 此时道路统计平均速度极小, 车辆几乎不能前行。由此可见, 本文所提出的方法检测结果与事实相符, 检测精度很高。该方法已经在多种情况及环境下进行过测试, 均达到了较好的效果, 可以准确地进行交通状况实时检测。
5 结论
视频交通检测技术因其诸多优点, 目前正在逐步代替传统检测技术, 成为智能交通领域的研究热点。本文所提出的基于视频的交通状况检测方法有着重要的意义, 对城市道路、高速公路、隧道桥梁等路况的预警及控制都有着积极的作用, 且在实际应用中可减少漏检、误检等问题。实验证明, 本文所采用的方法具有算法简单稳定、实时性强、准确性高等优点, 能够准确地进行交通状况检测, 因而具有广阔的应用前景。
在道路交通状况检测的基础上, 可进行及时交通预警以及交通安全检测等, 这些都将成为今后的研究热点, 最终达到交通事件自动检测、平衡路网流量、方便交通出行的目的。
参考文献
[1]梁琳.浅谈我国智能交通系统的发展[J].计算机与信息技术, 2008 (10) :58-89.
[2]侯宏录, 李宁鸟, 刘迪迪, 等.智能视频监控中运动目标检测的研究[J].计算机技术与发展, 2012, 22 (2) :49-52.
[3]LODATO C, LOPES S.An optical flow based segmentation method for objects extraction[C]//Proc.Conference of the World Academy of Science Engineering and Technology.Vienna, Austria:[s.n.], 2006:41-46.
[4]HUANG M C, YEN S H.A real-time and color-based computer vision for traffic monitoring system[C]//Proc.IEEE Intelligent Conference Multimedia Expo.[S.l.]:IEEE Press, 2004:2119-2122.
[5]National Research Council.Highway capacity manual[M].Washington DC:TRB, 2000.
[6]巨永锋, 朱辉, 潘勇.基于计算机视觉的车流量检测算法[J].长安大学学报:自然科学版, 2004, 24 (1) :92-95.
[7]魏武, 张起森.基于计算机视觉和图像处理的交通参数检测[J].信息与控制, 2011 (3) :257-261.
互联网只是一种工具 篇7
马云问雷军,你手机做的再大,空气问题你解决了吗?环境问题你解决了吗?所以,我讲每一个人在每一个行业有他的贡献,但是不能代表全部,或者你否定所有的人。这个是不对的。我当时在会场的时候,曾经问过雷军一句话,5年以后你超过格力,也许会超过,但是我觉得一个真正有价值的企业,不是收入上的多少,更重要的是你企业的内涵,你创造了什么,你改变了什么,这才是一个真正伟大的企业。
在浙江的一个会上,我问台下有多少人用小米手机,有两个人举手。今天这个场合又有几个用小米手机的,一个。为什么用小米手机呢?因为苹果、华为贵,小米便宜。我买一个便宜货,我不是买了高品质的产品,概念上还是要清楚的。
我在网上看了一篇文章,作者说小米和美的合作了,董明珠有点急。我急什么?如果有一天你的专利比我多,你的质量比我好,我才是真的有点急,我得改变自己,我要加油。
为什么中国制造是低质低价的代名词?我们说因为别人没有正视我们。为什么别人没有正视我们?举一个例子。南方机车在印度本来已经中标,结果是废标。为什么是这样的情况呢?南车自己讲了非常感慨的话:一个是国际社会对我们不公平,第二个不是我们自己导致别人对我们不公的影响。
人家买过中国的皮鞋,一个星期就坏了。皮鞋一个星期就坏了,别的東西还能做的好吗?
我们可能说,我们走向世界了,我们在哪个市场占多少比例,结果回头一看不是你的产品,是贴牌加工的,那么,你的销量再大,也不是你的东西。所以,我一直致力于带领中国格力走向世界,一定要走自己的品牌。
我们在中东推了8年格力的商标。结果那次我去了以后,经销商跟我说,我们卖了8年的格力空调,每年都有相对应的配件给我,我没用过,因为到仓库拿以往的零配件一样可以解决问题。所以,我认为中国格力能够走向世界,让别人另眼相看,说明中国有好品质,好技术的产品。
还有一年,我陪同总书记出访,他让外国人对格力空调提意见。对方说,格力空调什么都好,就是太安静了。因为安静而成为的意见,实际上这是对你的赞许。
有一天我到我们的技术部门,那天是晚上9点多,快10点了。我一看灯都亮着。我有的时候真的被他们感动。格力电器培养的最重要的就是一条,一个企业要想成功,一定要自己培养人才。
格力电器有一个广告叫掌握核心科技。过去,我们压缩机是别人的,电机是别人的,控制器是别人的。现在,通过研究和设计,核心的关键部件全部是自己制造,所以我们能做出最好的产品。
管理这个最核心部门的人是1982年出生的,我挺以他为自豪的。那天来一个人参观,看我们管的这么精细,我们的核心部件误差只有一根头发丝的百分之一,问这个小伙子是哪个学校毕业的?那个小伙子腼腆,红脸了,不敢讲。他不好意思说,我说你可以告诉他,你是格力大学毕业的。我非常的自豪。现在90后的孩子,在我们那里,来了一两年,优秀的,我就提拔到领导岗位。格力电器的技术,刚才讲了那么多都是技术。我告诉你格力电器是有企业文化的,每个人就是这个企业的细胞,每一个细胞都是创新的。
我们还有一个员工把叉车开到了极致。原因是,他和同事在一起吃饭时,别人打火机把啤酒盖打开,他就想我用叉车头把啤酒瓶打开行不行?他回去不知道买了多少啤酒,终于有一天,叉车能打开啤酒瓶,后来叉车穿针引线,他两次获得中央电视台的吉尼斯记录。现在我们的叉车工已经不算优秀了,为什么?我们所有进来的叉车工必须能开啤酒瓶,能穿针引线才能到叉车岗位,这就是创新的文化。
茶杯没有了,只有互联网,你还能喝到茶吗?不能。所以互联网只是一种工具。而把互联网用足用好了,我们就一定能成为赢家。2011年,我们人均产值99万,但是今年,我们人均产值达到了180万。这就是互联网给我们带来的竞争力。
未来的交通工具作文 篇8
未来的人,未来的建筑,未来的事物,都让我们充满了期待与好奇心。未来是一个什么样的世界呢?想着想着我就睡着了。一睁开眼发现现在已经是40了。两千年过去了,现在的人类已经步入了超科技时代。两千年前的问题现在也已经早已解答。我一脸吃惊的看着周围的环境,建筑和人来人往的人群。人群到和我们两千年前的今天没有什么变化。而最让我吃惊的是冲破云霄的建筑和快到模糊的车辆。一辆快速的车,飞一般地驶向了我,我下意识的挡了一下,才发现原来所有的车辆都可以凭空穿梭人的身体。我带着好奇心探索起了这个世界。首先吸引我的是到处可见的机器人,每一个人的手上仿佛都握着一个遥控器,控制着自己的机器人。就像是如今的我们和小动物的和平相处一样。随后我便将好奇心转移到了汽车的身上,如今的汽车无疑是交通工具中的霸主。但是经过两千年的进化,汽车已经是无所不能了,在陆地上行驶、在空中变成直升飞机、在水里变成潜水艇、甚至可以穿梭过任何事物,就像我刚刚一样。这样一来难道汽车不会有杂无序吗?
哈哈,现在可是4019年了。两千年前的交通指挥员,如今已经变成了可爱的机器人。大概四五百米处就会有一个机器人在那里指挥着。人们再也不需要红绿灯了,只要有车辆随意穿梭和超速行驶,它的下面便会出现一个黑洞一般的大窟窿。掉下去后原来地下还有一个交通世界。但是在那个世界里车辆无法动弹,人们需要在地下世界里上一课交通法则课,上完课才能回来。如果不听,你将无法再使用任何车辆。当然在4019年的世界里,汽车也不是原来的形状了。他们可以随意改造造型。上天入地无所不能。有了他们,人们也可以继续探索海洋的奥秘,更加接近海洋生物。在4019年的世界里所有人都做着自己喜欢的事情。世界也会随之变得更加发达,污染会减少,树林会增加,沙漠会变成绿洲,污水会变成清池。
在4019年的世界里科技是那么的发达,环境是那么的美好,你有没有对此而心动呢?我想着想着便被突如其来的铃声吵醒。
未来的交通工具作文 篇9
咦?怎么感觉到自己在往下降?我睁开惺忪的双眼,被眼前的景物给紧紧地“吸”住了。最吸引我眼球的是那条让我说不出名的鱼儿,它有一身五颜六色的鳞片,在水中是最耀眼的一个!这个时候,我才反应过来,我正乘坐着交通工具呢!怎么潜到水里去了呢?哇,这个“车”正喷射出一种高离子光线,把湛蓝湛蓝的海水变得绚丽多彩,再加上鱼儿们的尽情舞蹈,我就好像在欣赏综艺节目一样。这个时候,窗户的玻璃缓缓地放了下来,我甚至可以亲手抚摸到哪些蠕动的海底生物。看着它们那憨态可掬的样子,我情不自禁地伸出手,轻轻地抚摸着,滑滑的,嫩嫩的,软软的,手感真不错!我这才感觉到有所不对劲:我现在到了海底,玻璃也放了下来,可是,却没有水漫进来。
随着节目的开始到结束,我已经不知不觉到了另一个景点:星际宇宙。自从看了杨利伟叔叔的登入太空之后,上太空一直是我的一个梦想。没想到梦想竟然实现了!看着星光闪闪的天河;望着雄伟壮观的八大行星,我激动不已。喜出望外的我完全忘记自己在“车”中了,直接奔向太空。让我惊讶的是,自己居然可以在太空中运转自如。原来是那“车”散发出的一种保护膜,那保护膜为我提供氧气和地球引力。
为了保险,我还是回到“车”中乖乖地坐着。更让我惊诧的是,这“车”居然在太空的边际遨游了一圈,每看到一处景点,就用广播一一介绍,就像导游一样。而乘客,就像在体会诗人笔触下诗的意境一样泰然。后来,我又坐着这个神奇的“车”到了很多很多让人流连忘返的地方……
一种交通工具作文 篇10
关键词:井下工具 便携式 手动 压油泵
现有手动压油泵,主要用于机械输油,或作为其它工具的配套液压供给装置,通过操纵手柄,将机械能转换为液压动力源。
文中所述手动压油泵主要针对某类地面油管控制石油井下工具,该类石油井下工具在油井完井过程或正常生产时,工具内部阀板机构处于开启状态,井下油管柱保持全通。当井内出现高压或异常时,需要对油井进行紧急关闭处理。通常此类工具连接有地面液控管线,通过向液控管线内输入液压油,推动井下液控类工具的阀板机构,迅速关闭工具阀板,以保护地面设备和井场安全。
现有压力输入设备可通过控制台控制方式等,控制方式可靠,但液压站及控制柜等造价费用高,对液压、电子设备运输,控制程序稳定性提出了更高要求,设备维护费用也提高了。使用现有手动压油泵,油井压力升高时,存在密封不住,高压状态压油费力、费时、压油困难等缺点,难以得到有效应用。
1 现有技术的缺陷
现有井下液控工具液控管线压力输入设备可通过控制台控制,电子或液控方式等,这种控制方式可靠,可通过电子,数字仪器仪表显示压力级别,自动化程度高。但液压站及控制柜等设备造价费用高,对液压、电子设备运输,特别是油田野外钻井场上设备管理提出了更高要求。在控制程序稳定性、设备维护方面难度也较大,一旦设备程序出现故障,调试不方便。
而现有手动压油泵主要应用在农业抽水,日常机械的输油、吸油等方面,石油井下工具领域应用涉及较少。因石油井下工具配套用手动压油泵在压力等级、密封要求上,与日常应用方面存在很大差距,由于使用环境,使用要求不同,对手动压油泵本身的要求也不一样。
现有手动压油泵在高压时,密封要求很难达到15000psi或更高。在泵体内出现高压时,压油也较为困难,随着压力的增高,手柄压油就越来越耗力、费时。
2 发明目的或要解决的技术问题
现有手动压油泵承压级别低,高压密封性能不好。本发明的目的:从操作、维护方便性,应用环境特殊性上出发,设计一种石油井下液控工具用手动压油泵,整体式紧凑结构,携带方便,手动压油,操作简单,满足石油井下液控工具高压力下手压泵密封性,高压状态下使用更省力、省时的要求。
现有手动压油泵要应用到石油井下液控工具上,具体解决技术问题如下:
①提高手动压油泵使用方便性,操作更便捷,使用安全,符合人力学设计。②提高泵体耐高压强度,保证使用密封可靠。③泵体高压状态下,达到手动压油省力的效果。④油箱进出油口连接接头换装方便、快速。
3 技术方案
本文所述手动压油泵与现有手动压力泵存在一些技术相同之处,包括手柄、连接杆、压油活塞、压油活塞杆、泵体、单向阀等结构或部件。
但本文所述手动压油泵由于使用上为石油井下液控工具配套,提出了更高的要求,改进之处包括泵体凹槽与侧板焊接构成油箱,再与底板焊接后构成整体式泵体结构;底部进油口采用双级单向球阀结构实现吸油、排油的换向。球阀密封部位采用了密封效果更好的高精度球面密封,加工粗糙度达到0.8。泵体使用了双级吸油活塞结构,大活塞采用“T”型密封,并在活塞末端增设防尘圈防尘。泵体顶部设计为滑杆阀密封结构,此密封腔内部两段式,两段直径不同,小径顶部与油箱开一个小孔连通,另在小径处靠近此腔室锥面密封部位开一个垂直小孔与泵体大活塞腔连通,滑杆阀密封住大直径与小直径腔,安装后,在大密封腔和小密封腔之间,存在一通道与出油口连接,出油口与进油口连接部位采用UNF型密封锥管螺纹。
4 有益效果
①改进的手动压油泵,本体侧面开凹型腔体,将本体底部与底部固定板焊接,侧面与侧板焊接固定,侧板与本体侧面凹型腔体构成泵体油箱,泵体油箱的整体式结构,大大提升了泵体承高压能力。②特别是在底部油箱处的双级单向阀高精度圆弧面密封结构,顶部滑杆阀锥面、锥面密封结构,实现了密封阀密封位置的高压密封性,密封试验压力达到15000Psi不泄露,为手动压油泵应用与井下液控工具的高压状态提供了密封保障。③双级大小活塞、活塞杆结构,成倍增加了吸油、压油效率。④底部进油腔的双级大、小单向球阀结构,实现油箱吸油、排液的换向功能,结构简单,巧妙。⑤顶部滑杆阀、大小直径段密封结构,高压状态下退开滑杆阀,实现高压液体回流油箱,减小回压阻力,压油省力。
参考文献:
[1]庄磊,成城,武尚,姜睿.论井下工具的可靠性设计[J].科技与企业,2013(14).
[2]古纯勇.井下工具仿真平台的开发研究[D].大庆石油学院,2008.
一种鲁棒的交通标志检测方法 篇11
随着社会经济的发展,交通安全和交通阻塞问题日益严重,同时也造成了惊人的损失,于是智能交通系统(Intelligent Transportation System,ITS )便应运而生,并迅速发展。ITS是一个集检测、通信、控制和计算机等技术为一体并结合人工智能理论的综合信息系统,利用计算机视觉系统采集环境信息是ITS获取外界信息的主要来源,而道路交通标志本身包含着重要的交通信息。如何利用图像检测及其处理技术,实现在复杂环境下的道路交通标志识别(Traffic Sign Recognition,TSR)成为ITS的热点也是难点问题[1]。此问题的解决对自动驾驶系统和辅助驾驶系统的设计具有重要的现实意义。
道路交通标志是交通系统的重要组成部分,具有规范交通,警告驾驶员,提供有用信息等作用。道路交通标志识别总体上来说分为两个步骤,即标志的检测;标志的分类与识别。从拍摄的图像中快速准确地获取交通标志的位置,这是正确识别标志的前提,也是关键性的一步,同时也是TSR中比较困难的一步。交通标志检测的研究,大体上可以分为对灰度图像和对彩色图像的研究。文献[2]首先对灰度图像中圆形和三角形的几何边界进行提取,进而结合三角路标中几何形状的特点,检测三角形路标,并用hough变换的方法,检测圆形路标,该方法的鲁棒性较好,但步骤较为复杂,对彩色图像的分割步骤基本遵循由粗到细的原则。文献[3,4,5]首先对彩色图像进行颜色空间的转换,并结合路标本身的颜色性质对图象进行粗分割。细分割时,文献[3]运用了形态学和hough变换的方法,实现了八边形停止标志的检测;文献[4]运用了模板匹配的方法对圆形和三角形标志进行检测;文献[5]运用了遗传算法对图像上满足一定大小的区域中像素点(相对于标准模板的仿射变换参数)进行基因编码,并选择基于点集间Hausdoff测度的适应度函数。
目前的交通标志检测问题主要存在以下几个难点:首先,由于光照条件的复杂性,导致交通标志的颜色失真;其次,拍摄角度的不同,不可避免地导致交通标志出现不同程度的几何失真;最后,由于路面情况的复杂性,交通标志可能被遮挡、污染,造成检测失败。这些不确定因素的存在都给交通标志的检测与识别带来了一定的困难[1]。
本文首先分析了我国交通标志的颜色与形状特点,然后根据颜色与形状特点进行交通标志的检测与分类。为了准确快速地根据颜色提取交通标志区域,提出了一种突出颜色转换方法,无需设置阈值,就可以高效地提取可能包含交通标志的区域。为了快速准确地确认交通标志区域,采用基于仿射不变矩的形状测度,有效地检测出矩形、三角形、圆形和八角形标志。结合颜色和形状特征,可以准确地检测和定位交通标志,进而对交通标志进行分类。实拍图像的实验结果表明,本方法在不同尺寸、光线变化、旋转变形的情况下,能够依然表现出良好的交通标志检测和分类性能。
1 我国交通标志的颜色与形状特点
我国直接与道路交通安全有关的交通标志分为三大类,共有113种(不包括可派生的标志)。其中,禁令标志42个,指示标志29个,警告标志42个[6]。各类标志的颜色和形状特点如表1所示。
由表1可知,我国交通标志主要由五种颜色构成:红、黄、蓝、白、黑。每一种标志由两种或三种颜色构成,同一类型的标志具有大致相同的颜色。在形状方面,绝大多数交通标志的外轮廓都具有规则的形状,即圆形、顶角向上的等边三角形、矩形。其他形状,即八角形、叉形、顶角向下的标志分别各有一个。禁令标志的颜色、形状构成比较复杂,而指示标志、警告标志的颜色形状构成相对简单。
由以上分析可知,可以根据图像区域轮廓的颜色和形状来进行交通标志的检测。按此思路,将我国交通标志的特点归纳为以下五条规律:
规律1:如果区域轮廓为蓝色,内部为蓝色和白色,形状为圆形或矩形,则为指示标志。
规律2:如果区域轮廓为黑色,内部为黄色和黑色,形状为三角形,则为警告标志。
规律3:如果区域轮廓为黑色,内部为白色和黑色,形状为圆形,则为禁令标志。
规律4:如果区域轮廓为红色,内部为白色、黄色、黑色、红色,形状为圆形、或三角形、或八角形,则为禁令标志。
规律5:如果区域轮廓为红色,内部为白色和红色,形状为叉形,则为警告标志。
以上几条规律是本文交通标志检测的出发点。
2 基于区域颜色和形状的交通标志检测
2.1 突出颜色转换
颜色是交通标志的重要属性,相对于背景区域,其颜色大都是鲜明醒目的,与周围区域形成较强的颜色对比。由于彩色图像中原始RGB色彩空间各颜色分量间相关性较高,对光照变化较敏感,不易确定各种目标颜色的取值范围,因此在实际中常常将RGB色彩空间转换到其他色彩空间,将颜色属性中的亮度和色度、饱和度分离,使得阈值选取更容易。
本文提出一种突出颜色转换方法,对于我国交通标志中常见的彩色(红、蓝、黄),可以实现有效的提取,而且不受光照的影响。该颜色的转换表达式为:
式中:ε是为了避免计算时分母为零而引入的一个小常数。由式(1)可知,对于三基色R,G,B,当其中一个分量大于其他两个分量时,则呈现出该种基色;对于混合色,如黄色,当组成该混合色的基色占优势时,则表现出该颜色。这与人眼的视觉感受一致,因而能较有效地提取出交通标志区域,且不受光照变化的影响,如图1所示。图1(e)表明,用提出的优势颜色转换方法转换后,交通标志与背景的对比度更强烈,优于图1(f)采用HIS方法的转换结果。对于黑色轮廓,则根据强度I是否小于某个预设的阈值来判定。
2.2 数学形态学处理
经过突出颜色转换之后,得到四幅突出颜色转换图像fR,fB,fY和fK。在每一幅转换图像中,感兴趣的颜色按照与目标颜色的相关程度被保留,与目标颜色差别较远的颜色被滤除,并且与目标颜色相关程度越高,转换响应值越高。对各通道转换值进行二值化,就可以分割出交通标志区域。但这些区域不完全是交通标志区域。如图1(b)中,同为红色的城市雕塑也被提取出来。这时就需要通过形状特征来确认。
为了采用基于矩的形状度量确认交通标志,需要填补交通标志区域的孔洞,另外还有一些小块区域被提取出来,这些区域一般不是交通标志,即使是交通标志,由于其面积太小,也难以用于识别。所以可在分类之前将小于一定面积的区域去除。
填补区域孔洞,去除面积较小区域等功能可以采用数学形态学方法实现。本文方法中逐次采用以下形态学算法:
(1) 删除小面积区域。其方法如下,先进行连通区域标记,然后计算每一个连通区域的面积即像素个数,如果面积小于某一个给定值,则将该区域标记为背景。在Matlab中,此功能用函数bwareaopen来完成。
(2) 闭运算操作。先膨胀后腐蚀,弥合区域中的小裂缝。
(3) 填充孔洞。交通标志区域内部往往有一些图案,这些图案在区域中表现为孔洞,不利于区域矩的计算,因此需要填充。在Matlab中用函数imfill来完成。
(4) 连通区域标记。经过以上形态学处理,形成了一个或多个具有一定面积且连通的区域。将这些区域分别作标记,以便计算形状度量。在Matlab中用函数bwlabel来完成。
2.3 三种形状测度
Hu不变矩在形状识别中作为有效的统计特征而被广泛使用。通常采用7个低阶Hu不变矩构成矩组,作为图像特征向量,用于图像识别[7]。Hu矩组反映了图像的本质属性,并且具有平移、旋转、镜像和尺度不变性。
采用7个Hu不变矩进行交通标志的形状识别显然会增加运算复杂度。由于受到成像几何关系的影响,交通标志一般会有变形。在仿射不变矩[8]的基础上,针对交通标志中常见的三种形状,定义三种度量。仿射不变矩定义为:
式中:μ20,μ02和μ11为二阶中心矩;μ00为目标面积。为了更精确地区分各种形状,应采用高阶不变量。然而,高阶不变量的可靠性低,并且对噪声敏感,相反,I1稳定,所以更加实用。
2.3.1 圆形度
采用式(3)度量圆形度E:
圆形度E的取值范围为0~1,圆的圆形度为1。证明如下:
为推导方便,设圆的半径为R,以圆心作为坐标原点,建立直角坐标系。设圆内点的值为1,圆外点的值为0,则式(2)中的各中心矩计算如下:
由于圆关于x轴和y轴均对称,所以有:
将这些中心矩代入式(2)得,圆的仿射不变矩为1/16π2。代入式(3),则得圆的圆形度为1。
2.3.2 三角形度
用同样的方法可以刻划三角形。三角形度的测度T定义为:
三角形度的取值范围也是0~1。对于等边三角形,设其边长为a,以底边为x轴,以底边中点为坐标原点建立直角坐标系,则式(2)中的各中心矩为:
代入式(4),则得等边三角形的三角形度为1。
2.3.3 矩形度
类似地,矩形度R定义为:
矩形度的取值范围也是0~1。可以很容易地推导出矩形的矩形度为1。
2.3.4 八角形度
八角形度定义为:
八角形度的取值范围为0~1。用前文方法可证明正八角形的八角形度为1。
2.4 区域形状判别
根据三种形状测度判断颜色分割和形态学处理后的区域是否为交通标志,并确认该区域的形状。其规则是:
设M=argmax(R,T,E,O)且M≥th,则该区域为交通标志,且形状为M类。其中,th为预设的阈值。
此规则的含义是,如果R,T,E,O中最大的一个大于预设的阈值,则可以判定该区域为最大形状测度所对应的形状。
2.5 交通标志进行粗分类
对区域进行提取和筛选之后,就根据原始图像对应区域内的颜色组合和2.4节中判别的形状对交通标志进行粗分类,即将交通标志分为禁令标志、指示标志、警告标志三大类中9个子类之一,以利于后面的识别。识别规则如表2所示。
其中,第一、二列是判别条件,两列条件之间是“与”的关系,第三列是粗分类的子类类别,第四列是子类对应的交通标志个数。由于叉形符号只有一种,其形状用不变矩度量不是很有效,因此暂且不予考虑。从表2中可以看出,有的子类类别数较少,如禁令标志2和4,只有1个子类,可直接给出交通标志的名称。
3 实验结果
本文算法采用Matlab 7.0实现。图2给出对图1(b)的处理的各步结果,预设形状确认阈值为0.95。图2(a)中阈值取优势颜色转换后最大值的1/3。图2(b)中当区域面积小于80个像素时,将被去除。图2(c)中闭运算的结构元素采用圆饼状。图2(e)中从左至右、从上到下5个不同区域标记的最大形状测度分别为:标记1,最大测度T=0.858 9;标记2,最大测度E=0.999 8;标记3,最大测度T=0.814 0;标记4,最大测度T=0.461 44;标记5,最大测度T=0.761 5。只有标记为2的区域最大形状测度圆形度大于预设的阈值0.95,因此区域2确认为圆形交通标志。
为验证本文算法的性能,对不同场景、天气情况做了大量实验,交通标志检测与粗分类的准确率达到92%,获得较为满意的效果。由图3可以看出,算法可适应不同尺度(图3(d)与(f))、不同光照(图3(a))、多目标(图3(b))、变形(图3(e))、旋转(图3(f))和复杂背景(图3(b))等条件下的交通标志检测和定位,具有较好的鲁棒性,说明提出的突出颜色转换方法和形状测度用于交通标志的检测是有效的。检测正确的交通标志均得到了准确的粗分类。
但是,测试中也发现了一些漏检、误检的情况,主要原因有:由于遮挡和标志残缺,影响了区域分割和形状确认,造成漏检;由于仅根据颜色组合而不是根据图案进行检测和粗分类,而且未应用有关交通标志位置和背景的先验信息,有时会造成误检。这些都是要进一步研究的问题。
4 结 语
突出颜色转换可以快速有效地提取感兴趣颜色的区域,而且不受光照影响。四种形状测度对尺度大小具有不变性, 对一定范围内的变形也不敏感, 从而克服了模板匹配类方法的缺点。这两点确保了本文方法在不同尺寸、光线变化、旋转变形的情况下良好的交通标志检测和分类性能。今后将研究在遮挡和标志残缺情况下的检测和识别,并克服车辆振动、行驶速度对交通标志检测和识别的影响。
参考文献
[1]朱双东,陆晓峰.道路交通标志识别的研究现状及展望[J].计算机工程与科学,2006,28(12):50-53.
[2]Piccioli G,de Micheli E,Parodi P,et al.Robust Method forRoad Sign Detection and Recognition[J].Image and VisionComputing,1996,14(3):209-223.
[3]Kehtarnavaz N,Griswold N C,Kang D S.Stop-sign Recogni-tion Based on Color/Shape Processing[J].Machine Visionand Applications,1993,6(4):206-208.
[4]Liou Yi Sheng,Jyh Der,Chen Shu Yuan,et al.A FastMethod to Detect and Recognize Scaled and Skewed RoadSigns[A].ACIVS 2005[C].Berlin:Springer-Verlag,2005.
[5]De la Escalera A,Armingol J M,Mata M.Traffic Sign Rec-ognition and Analysis for Intelligent Vehicles[J].Image andVision Computing,2003,21:247-258.
[6]GB 5768-1999.道路交通标志和标线[S].2005.
[7]Hu M K.Visual Pattern Recognition by Moment Invariant[J].IEEE Trans.on Information Theory,1962(8):179-187.
[8]Janfluser,Tomassuk.Pattern Recognition by Affine MomentInvariant[J].Pattern Recognition,1993,26(1):167-174.
[9]Perez F,Koach C.Toward Color Image Segmentation inAnalog VLSI:Algorithm and Hardware[J].Computer Vi-sion,1994,12(1):17-42.
未来的交通工具小学作文 篇12
我心目中未来的交通工具应该是三个地方通用的。分别可以在天空,陆地,海洋行驶。它的形体在天空中是鹰形的,在陆地上是跑车型的,在海洋中则是蓝鲸形的。它的动力也很环保,是靠太阳能发动。在不用的时候它会自动关机,不会消耗一点电量。这个交通工具最神奇的一点就是声控配置,想让它干什么只要对它发出口令就行。它不仅能正常的像普通车一样的行驶,还能当房车,各种家具电器样样都有,既舒适有方便。
这个交通工具安全性能很高。能自动识别危险情况,即使真出现事故,如果是在空中,驾驶位也会自动弹落,并迅速打开降落伞,保证驾驶人员及乘客的安全;如果是海洋事故,它会放射一个水上迅速撤离救生艇,让人能跳入艇上厉害危险区域;如果是陆地事故,车门会在一秒之内打开,让人逃生。
这样的交通工具真是太实用了,我真的希望未来的交通工具会更发达,更便捷。在方便人们的出行的同时,价格也不要太贵,让每一户人家都有一个这样的交通工具。
未来的交通工具想象作文 篇13
在我心中希望的未来交通工具,它的形状像飞机,却有4个轮子,一个螺旋桨,不仅能在空中飞翔,还可以像汽车一样在地上行驶,而且还能像潜艇一样在海底游行。
有一天,我开着它去旅行,飞翔在空中,伸手就能摸到软绵绵的白云,速度如风一样快。忽然,空中下起了倾盆大雨,而且雷电交加,天气非常恶劣,导致不能正常飞行。这时,它摇身一变,变成了一辆金光灿灿的汽车,我会带上路上所有没带伞的行人一起旅行。才开了不一会儿,前面就有一条大河挡住了我们大家的去路,这时,它又摇身一变,变成了一艘最先进的潜艇,它不需要人驾驶,只要说想去哪儿就去哪儿。
你们想要乘坐我这种交通工具吗?不管什么天气,什么地方,只要你说出来想到哪去,它就会按你的吩咐准时到达地点,可以给你带来最方便和舒适的旅行。
一种交通工具作文 篇14
软件系统正越来越多的应用到生活的方方面面,但是开发一个没有缺陷的软件系统通常是非常困难的,因此软件有时会失效,失效的后果可能只是造成一些不方便(比如电视机遥控器不能用),也可能是灾难性的(比如商业飞机上的软件故障)[1]。为了使软件系统在出现失效时能够继续运行,提出了容错技术,容错是保障软件可靠性的重要方式。文献[2]讲述了一些当前的容错技术,包括恢复块,N版本编程等。异常处理是构建高可靠性容错系统的一个重要方面。异常处理最早是由John Goodenough在1975年在文献[3]中提出来的。现在异常通常都被定义为在程序执行过程中影响程序正确行为的特殊事件。程序语言的设计者经常忽略异常机制,这就让开发异常处理代码的开发者觉得开发一个好的异常处理代码是困难的,容易出错的,而且效率不高。并且,对异常处理不完美的程序来说,当程序出现异常,系统就会停止运行,极大影响了程序可靠性和用户体验,所以异常处理在高可靠系统的实现中有着重要的作用。
本文给出一个工具,该工具通过对抽象语法树静态分析的信息来定位异常和判定异常信息,由此选择异常恢复策略,结合AOP技术,工具实现自动生成异常捕获代码,生成AspectJ程序模板,并且通过分析代码定义了常见异常的通用处理模式,同时支持用户自定义异常处理方式。
1 背景介绍
Java的异常处理机制包含三部分:Throws说明可能抛出的异常,调用该方法必须处理这些事件;将可能抛出异常的代码放在try块中,处理放在catch块中,finally用于恢复系统状态;Throw后面跟异常对象类型,说明抛出的异常。对于Java异常可分为检查异常和未检查异常。本文主要处理检查异常。文献[4]中研究表明,程序员并不常书写代码处理异常,更多时候是采取忽略或者简单返回一个缺省值并终止程序的方式来处理,而不是真正的去规划恢复策略,书写恢复代码。而很多时候对异常恢复策略的规划是有意义的。由于异常处理可能引发的控制流复杂性和异常本身的复杂性,比如即使是同一个异常,处理策略也经常是各不相同的,这就给异常处理策略的规划增加了难度。
由于异常分布的散乱性,直接在系统中书写异常代码会和已有代码交缠在一起,因而在异常处理中引入面向方面的思想是有意义的。面向方面的编程是面向对象编程的有效补充,提供了新的语言特性来增强模块化和分离关注点,可以以非侵入方式改变程序的执行方式,极大地降低了异常处理代码和原代码的耦合性[5]。但是面向方面能否增加系统的模块化仍然是一个值得探讨的问题。文献[6]中指出,如果异常处理代码很大程度上是上下文相关的,那么使用面向方面技术带来的好处就有限,但是如果能事先规划好,面向方面会是一个很好的补充。所以本文通过工具提供了自动的代码生成,同时也提供了一定的灵活性,与上下文相关的内容,我们允许开发者自己定义。通过自定义的代码生成工具生成方面文件,对已有的程序进行打补丁式的补充,增强了程序的异常处理和容错能力。
2 工具介绍
为了实现容错处理,就必须能先对异常定位并分析异常,并给出相应的恢复策略,我们开发了一个工具。这个工具结合抽象语法树静态分析的信息生成恢复策略,然后自动生成AspectJ文件,实现异常的修复,达到容错效果。
2.1 工具框架介绍
工具的运行过程主要包含两个部分。第一部分,利用抽象语法树来获取异常所在的方法位置信息、方法参数和方法返回类型等信息。第二部分,是一个自动生成方面文件的工具。工具从抽象语法树分析工具分析的结果出发,对异常和异常所在的方法进行分析,利用string template工具,把抽象语法树中的分析得到的信息设置到要生成的方面文件中,对每个异常生成一个默认的方面文件。方面文件动态切入源代码中实现了默认的异常恢复策略,由于默认异常恢复策略不能保证对所有的异常处理都有正确的效果,所以工具也允许用户自定制异常恢复策略,更加灵活和个性化。
2.2 抽象语法树分析工具
抽象语法树SAT(Abstract Syntax Tree)是源代码经过词法分析和语法分析得到的产物,作为程序的一种中间表示形式,能够包含编译单元的完整表示,可以比较直观地展示整个程序的语法结构,语法树的建立是在词法分析、语法分析、语义分析的过程中逐渐产生的。其中词法分析对源程序进行分析,并形成符号表,作为下一步语法分析做准备,接着语法分析初步形成具有相应语法结构的中间节点的抽象语法树。最后语义分析,把名字和操作符进一步处理,产生具有表示类型信息的对象和符号表的标准的抽象语法树。这时语法树就是完整的抽象语法树了,它包含了程序结构的基本信息。如图1所示。
抽象语法树在程序分析和程序开发等诸多领域有广泛的应用,比如经常用来做代码克隆检测、程序数据流,控制流的分析等。
为了定位异常产生的位置和异常所在方法和其他方法的调用关系,这里使用抽象语法树的分析工具来得到程序结构的基本信息。该工具是一个Eclipse插件,用来做静态代码结构分析,使用工具可以得到代码中异常的种类,异常所在的类,异常所在的方法和异常是被catch还是被throw,工具如图2所示。
通过该工具可以分析出每个类的方法、参数,抛出的异常以及每个类之间方法的调用关系,这些信息对于后面生成方面文件是必不可少的。抽象语法树工具是对源码的静态分析,但是由于运行时的上下文信息是比较难以获取的,所以我们这里只对代码做静态分析。根据静态分析得到的信息生成异常处理代码,正如文献[7]提出的指导原则之一,异常处理必须提供上下文信息,这里开发者可以利用工具进行进一步的自定制来获取上下文信息,实现相应的恢复。
2.3 设置工具描述
我们开发了一个设置工具,工具中定义了处理异常的面向方面文件模板,根据模板,利用模板生成工具String Template生成用于对当前系统做异常处理的方面文件。图3是工具的一个使用界面。
首先,选择一个已经用抽象语法树分析过的项目,比如图3的jforum;然后,由于异常经常是分散在程序中的不同位置,因此对于抽象语法树分析的结果,我们按照异常的类型来进行分类,因为同一类型的异常处理方法总是相对于不同类型异常的处理方法要相似的多;当在ExceptionSetting框中选中特定异常类型后,抛出这个异常的所有方法,都在第三个框中列出来。包括类名、方法名、方法参数类型和返回类型。这些信息是生成面向方面文件的必要信息。
2.4 策略的描述
文献[8]提出了一个面向方面的框架来支持Web服务的监控和恢复,主要是致力于Web服务的运行时监控,以及根据监控信息来合成Web服务。在恢复的时候,提到三个通用的恢复策略分别是重试、忽略、可选,但是对于通用策略的代码自动生成仍然没有做,我们文章试图在通用策略的自动代码生成上做些尝试。通用恢复策略如图4所示。一般来说,如果重试不成功,可以忽略(skip)当前异常,或者选用其他可选的方式再重新尝试,也就是上文所说的可选(alternative)。
对于异常类型和策略的对应关系是一种多对多的关系,同样是使用的retry策略,但是处理的可能是两种不同的异常。比如IOException的产生可能是由于远程资源访问不到,而SQLException可能是数据库的访问出现问题,截然不同的两种异常,却可以使用同一种retry策略。反过来,当前数据库出现错误, retry通常只能修复那些瞬时性错误,对于非瞬时性的错误更有效的方法是采取alternative策略自己定制。异常和策略之间的对应关系是复杂的多对多关系,对这种关系中知识的提取是将来的一个研究方向。
重试、忽略、可选是通用的异常处理策略,所以我们针对这三种方法分别设计了一个AspectJ模板,如图5所示。
图5中用$号括起来的是模板生成工具的语法符号,表示用该模板生成代码的时候这些内容将被具体的内容替代。该模板是为了生成方面文件的,所以要遵循面向方面编程的语法,下面我们逐个介绍模板中的元素:
$package$:该异常类所在的包名。
$RetryAspectName$:该方面的方面名。
$declearVar$:用于只带一个参数的方法的参数声明。
$parmDeclearItems$:用于多个参数的参数声明。
$classNameWithoutDot$$methodName$:为了区别每一个pointcut的名字,用类名和方法名的连接来唯一标识。
$parmsWithVars$:用来描述带有变量的参数。
$metWithDeclear$:指明调用的方法。
$onlyParms$:指明传递的参数。
$ParmsSetItems$:迭代的参数赋值。
该模板包括两个部分,第一部分是获取异常对象当前的方法,并取得当前的参数,实现方式是通过第一个pointcut,在方法调用前,将方法参数捕获并将其值传入AspectJ中定义的相应变量中,这就方便了获取一些运行时的对象信息,开发人员可以在这里获取自己想要的上下文信息;第二部分,根据当前的对象t和传递过来的参数列表,对该方法重新执行。如图5所示t.$methodName$($onlyParms$)就是指对当前对象t,执行方法$methodName$,具体方法信息可以从抽象语法树分析出的程序结构得知当前对象中抛出异常的方法名字。这里retry模板的advise是重新执行方法。
如图6所示,Skip模板中的advice可以设置为简单抛出一个运行时异常,相应的,在面向方面中提供了一种弱化异常的方法,来把方面中抛出的异常继续以运行时异常抛出到原来程序中,继续运行。Skip可以有三种方式,比如,记录日志并抛出异常;把返回值设置为默认值;抛出一个运行时异常。由于不同点在于程序具体的执行和返回状态,文献[7]中指出,开发人员经常都会倾向于认为,如果当前异常不会影响继续运行,那很多时候我忽视它是不会产生什么问题的。
alternative的模板和retry差别在于advice的设置,retry模板的advice中代码实现方法重新执行,而alternative模板的advice中代码实现备选方案。实现alternative策略需要用户(即程序的设计人员)提供备用数据库或者资源文件等的连接信息。当用户选择alternative的恢复策略时,用户可以手动书写恢复策略代码。
3 案例分析
一个开源的论坛系统JForum被选作为实验对象,来验证工具和方法的可行性。首先,将JForum源代码通过抽象语法树分析,然后通过工具生成实现了容错策略的方面文件。其次,启动系统,让系统在正常运行环境中运行。同时一个不带有异常恢复代码的源程序也在相同环境下运行。在系统抛出异常时,我们对比两个版本的运行时程序的不同反应,来验证我们方法的可用性。
在没有做任何恢复处理系统中如果抛出了SQLException和NullPointerException,用户会在在浏览器中看到如图7的画面。用户可能认为该网站出现了严重的错误,已经不可用了。
然而,通过工具处理的程序在运行时,如果遇到了相同的问题,由于加入了retry恢复策略后,如图8所示。
如果retry策略没有效果,系统就会采用skip策略,通过把当前异常封装为运行时异常抛出。如图9所示。
如果用alternative,则需要用户自己写一个方法,比如连接到其他的数据库去执行。如图10所示。
在设置工具中,可以选择想要使用alternative策略,则用户可以在自己写恢复代码,这里的例子如图10所示,是指当前数据库不可用后,连接到备份数据库中重新尝试,执行成功后,用户就能正常登录。
对于用户自己定义的异常,也可以用工具定制恢复代码,和上下文相关的可以手动加入,比如当用户发帖失败时,当前由于数据库异常导致我们无法发帖,但自己配置了恢复策略后,我们就可以将作者发帖的所有信息存为文件,这些内容是在运行时才能获取的,所以静态分析无法获取,只能先让开发者写部分代码以获取这些上下文内容,等数据库恢复正常时再将发帖内容恢复,这里就不一一描述。我们将在将来进一步完善工具动态运行时对上下文信息的感知和提取。
4 将来工作
本文通过对系统源代码的静态分析,获取到发生异常所在的方法以及方法传递的参数,方法返回类型等相关信息,对抛出的异常做了相应的恢复处理以保障系统的可靠性,实验结果说明方法是可行的。容错技术仍然是很重要的研究领域,还存在着大量的问题。在未来的工作里,我们将考虑异常传播时的容错策略设计,对于异常传播过程中[9]策略的选择和容错策略的自动推理。我们希望将来能进一步丰富策略的内容,并利用SWRL(Semantic Web Rule Language)来做一些规则的推理,并且试图去获取异常抛出的动态上下文,这样就可以在获取运行上下文的信息下自动的推理寻找合适的容错策略,增强容错工具的自动化能力。
5 结 语
随着技术进步和科研的深入,容错处理方面的各种问题将会进一步得到解决。容错处理作为构建高可靠性系统的一个重要方面,仍然是一个研究的热点,本文在分析当前系统的异常位置情况下,自动生成具有容错能力的文件插装到系统中,实现一定的容错处理,并且提供用户一定的灵活性,自己定制恢复策略。为容错中异常处理的问题提出了一个解决方案,一定程度上提高了软件的容错能力。
摘要:容错是保障软件可靠性的重要手段。该目标是利用对软件系统静态分析的信息,生成具有容错能力的方面文件来增强软件系统的容错能力。首先利用抽象语法树的分析工具,来获得一些有用信息,比如异常类型和抛出异常的方法。然后通过模板生成工具生成相应的恢复代码,利用面向方面机制,将代码动态编织入系统中。最后做一个案例证明方法在实现容错增强方面的可行性。
关键词:软件容错,面向方面,工具
参考文献
[1]W einstock C B.A Perspective on the State of Research in Fau lt-Toler-ant System s[R].Software Engineering Institute,Special Report CMU/SE I-97-SR-008,June 1997.
[2] Wilfredo,Torres Pomales.Software Fault Tolerance:A Tutorial[M].NASA STI Program Office,2000.
[3] John B Goodenough.Exception handling:issues and a proposed notation[J].ACM,1975,18(12).
[4] Cabral B,Marques P.Exception Handling:A Field Study in Java and .NET[C]//(ECOOP ‘07) LNCS 4609,Springer-Verlag,2007.
[5]L ippertM,Lopes C V.A study on exception detection and hand ling u-sing aspect-oriented programm ing[C]//ICSE 2000:418-427.
[6]Fernando Castor F ilho,Nelio Cacho,RaquelMaranh~ao,et al.Excep-tions and Aspects:The D evil is in the D etails,2006.
[7] Wirfs Brock R.Toward Exception-Handling Best Practices and Patterns[J].IEEE Software,2006,23(5).
[8]Huang Tao,W u Guoquan,W ei Jun.Runtim e mon itoring composite webservices through statefu l aspect extention[J].Journal of Computer Sci-ence and Technolgy,2009(2).