




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 液压c a i ( c o m p e e ra s s i s t e di n s t r u c t i o n ) 教学软件是一种专门用于液压传 动系统计算机辅助教学的工具,以计算机技术的发展为依托,近几年来得到了长 足的发展。作为液压传动课程的一个现代化的教学工具,c a i 软件在液压教学中 发挥着越来越重要的作用。 本文介绍了一种用于液压传动教学的可视化c a i 软件的开发。该软件是以 新编的液压传动教材为研究对象,结合了计算机发展的最新技术,以w i n d o w s 操作系统为基础,选用v i s u a lc + + 6 0 为开发平台,应用面向对象的编程技术、 数据结构原理、专家系统的原理、数据库技术、多媒体技术等,实现了液压元件 库的抽象定义,液压系统原理图的构建、自动识别、存储和智能纠错,系统的动 作仿真以及部分液压c a i 实验等功能模块。软件的开发吸收了国内许多的液压 c a i 仿真软件的优点,具备w i n d o w s 平台所特有的优秀的功能和强大的人机对 话能力,同时利用v c + + 强大的开发功能,与其它应用程序建立了接口,方便 今后的扩展及完善,具有一定的智能水平。 该软件可以作为液压教学的辅助工具,帮助学生在计算机上更好地学习和理 解液压传动的知识。 关键词:液压,c a i ,面向对象,专家系统,仿真 a b s t r a c t h y d r a u l i cc a i ( c o m p u t e ra s s i s t e di n s t r u c t i o n ) t e a c h i n gs o f t w a r ei sak i n do f t o o lt h a ti ss p e c i a l l yu s e df o r t h ec o m p u t e r - a s s i s t e dh y d r a u l i cs y s t e mt e a c h i n g u p o n t h ep r o g r e s so fc o m p u t e rt e c h n o l o g y , i th a sb e e nd e v e l o p i n gq u i c k l y a sam o d e m t e a c h i n gt o o lo fh y d r a u l i cl e s s o n ,h y d r a u l i cc a ii st a k i n gm o r ea n dm o r ei m p o r t a n t r o l ei nt h eh y d r a u l i ct e a c h i n gp r a c t i c e t h i sp a p e ri n t r o d u c e st h ed e v e l o p m e n to f v i s u a lh y d r a u l i cc a is o f t w a r eu s e df o r t h eh y d r a u l i ct e a c h i n g t h i ss o f t w a r et a k e st h en e wh y d r a u l i cs y s t e mt e a c h i n g m a t e r i a la st h er e s e a r c ho b j e c t b a s e do nw i n d o w sc o m p u t e ro p e r a t i n gs y s t e ma n dt h e l a t e s tc o m p u t e rt e c h n o l o g y , i tc h o o s e sv i s u a lc + + 6 0p r o g r a mt o o la sd e v e l o p i n g p l a t f o r ma n da p p l i e so b j e c t o r i e n t e dp r o g r a m m i n gt e c h n o l o g y , d a t as t r u c t u r et h e o r y , e x p e r ts y s t e mt h e o r y , d a t a b a s et e c h n o l o g ya n d m u l t i m e d i at e c h n o l o g ye t c t or e a l i z e f o l l o w i n gf u n c t i o n a lm o d u l e :t h ea b s t r a c ta n dd e f i n i t i o no fh y d r a u l i ce l e m e n t ,t h e c o n s t r u c t i o n ,a u t o m a t i c a l l yi d e n t i f y i n g ,s t o r i n ga n di n t e l l i g e n tc o r r e c t i n go fh y d r a u l i c s y s t e m a t i cp r i n c i p l ed r a w i n g ,a c t i o ns i m u l a t i o na n dh y d r a u l i cc a ie x p e r i m e n t s t h e s o f t w a r ea b s o r b st h ea d v a n t a g e so fm u c hc i v i lh y d r a u l i cc a is i m u l a t i o ns o f t w a r ea n d h a se x c e l l e n tf u n c t i o n st h a tw i n d o w sp a r t i c u l a r l yo w l l sa n dp o w e r f u la b i l i t yo f m a n m a c h i n ec o n v e r s a t i o n m e a n w h i l e i tm a k e su s eo f t h es t r o n gf u n c t i o n so f v c + + t os e tu pi n t e r f a c ew i t ho t h e ra p p l i e ds o f t w a r e s oi ti sv e r yc o n v e n i e n tt oe x p a n da n d p e r f e c tt h i ss o f t w a r e a l s ot h es o f t w a r eh a sc e r t a i ni n t e l l i g e n c et ob s e 、t h i sc a is o f t w a r ec a nb ea sa na s s i s t e dt o o lf o rh y d r a u l i ct e a c h i n ga n dh e l p s s t u d e n t st os t u d ya n du n d e r s t a n dt h eh y d r a u l i ck n o w l e d g eo nc o m p u t e r k e yw o r d s :h y d r a u l i c ,c a i ,o b j e c t - o r i e n t e d ,e x p e r ts y s t e m ,s i m u l a t i o n j i 上海大学硕士学位论文 第一章绪论 第一章绪论 1 1 引言 自从计算机问世以来,人们就将它应用于各个领域。随着计算机技术的飞速 发展和普及,计算机在教育教学中的应用范围日益广泛,已辐射到学校、社会和 家庭等各个方面,形成了一种具有现代教育特色的新型教育方式,并具有强大的 生命力。计算机辅助教学( c o m p u t e ra s s i s t e di n s t r u c t i o n 简称c a d ,是计算机 应用于教学领域的主要方面。c a i 以计算机为工具替代或辅助教师执行全部或部 分教学任务,模拟教师的教学行为,形成有序的教学信息,向学习者传授知识, 达到激发学习者的学习积极性和创造性,提高教学效率和增强教学效果的目的。 典型的c a i 系统是在学习者和计算机之间的一系列交互活动中展开教学的。由 于早期的计算机受到技术方面的限制,如运行速度慢、存储空间小等,特别是软 件的发展水平还不能很好的满足教学的需要,因而极大制约了c a i 的发展。近 几年来,计算机的运算速度大为提高,大容量硬盘和光盘等存储设备的出现,软 件的快速发展,都为c a i 的发展提供了新的契机。作为教学与研究的重要工具, c a i 在各个学科领域得到了广泛应用。特别是在液压传动c a i 中,运用计算机 技术对液压系统的分析、综合与设计是十分有效的。 近年来,液压与气动技术的发展非常迅猛,要求液压与气动技术的教学的方 式和方法也需要更新和发展。当前,我国各类学校正在进行着深入地教学改革。 教学改革的目标就是要逐步实现教学现代化,提高教学质量,提高教学效率和教 学效益。要实现教学现代化,必须要教学观念现代化,教学内容现代化,教学手 段现代化,教学管理现代化。而教学过程就其本质而言,是教师运用一定的媒体 向学生传播知识的活动。传统的教学方式主要是通过黑板、教科书等媒体进行教 学,这些媒体在承载消息的种类和能力,使用的方便程度上都有较大的局限性。 在教育领域中,计算机不仅是一门学科,而且正逐渐成为有效的教学媒体和 教育管理的有力工具。自9 0 年代以来,计算机在教育领域中的应用得到了迅速 的发展。计算机辅助教学( c a i ) 的应用,不但是教学手段的一种改变,而且可 以成为教学整体改革的突破口,这是信息革命在教育领域内的反映。 教育技术的现代化是教育现代化的重要组成部分,计算机辅助教学不仅是促 第】页共6 7 页 上海大学硕士学位论文第一章绪论 进教育与教学改革的重要途径,也是当前世界教育技术发展的重要趋势。计算机 辅助教学软件是一种根据教学目标设计的,表现特定的教学内容,反映一定策略 的计算机辅助教学程序。要实现计算机辅助教学,除了要有良好的教学环境外, 设计和编制符合教学需要的计算机辅助教学软件包是一个非常关键的问题。因 此,国内外都很重视,并投入大量的资金开发研制,成为计算机应用领域中的一 个新的发展方向。 一门课程的多媒体c a i 的成功开发和运行,标志着该课程的建设朝着现代 化、科学化的方向迈进了一大步。液压与气动是机械类专业必修的一门专业 基础课,因此开发一套有关的计算机辅助教学软件是非常有必要的。液压系统仿 真软件可以用直观的方式将液压传动内容表示出来,克服了液压系统教学中的抽 象复杂不易讲清楚的缺点,是一种很好的教学工具。国外教材体系与我国相差太 大,故不适用。国内也出现了一些计算机辅助教学软件,但这些软件大部分或者 是偏重于实际工业的应用,或者是偏重于教学中的某个方面,并不真正实用于液 压系统教学实践,尤其是缺少适用于学生使用的面向液压系统原理图的,具有可 视化特点的并能充分调动学生学习积极性的液压系统c a i 软件包。结合我校承 担国家原机械工业部重点教材液压与气动的改编工作,上海大学液压教研室 正在开发一种基于面向对象思想的液压系统智能计算机辅助教学软件,并且经过 几年的努力,有了很大的进展,取得了阶段性的成果。 1 2 液压系统c a i 软件包的国内外发展情况 液压传动系统因其众多优点,在工业中应用越来越广泛。随着电子技术和计 算机技术的飞速发展,液压系统已经渗入到机电一体化产品中去。液压系统的学 习、设计与分析的智能化也得到了很大发展,许多高校和研究所都在液压系统 c a i 方面投入了很大的努力。特别是计算机软件的快速发展,为液压c a i 的发 展提供了更有力的支持,面向对象的思想和可视化编程等技术的出现也为c a i 提供了更宽的思路。 国外在这方面起步较早,已经有一些较成熟的软件包,如德国亚琛大学研制 的d s h ( d i g i t a ls i m u l a t i o no f h y d r a u l i cs y s t e m ) 软件包,英国巴斯大学的h s a p ( h y d r a u l i cs y s t e m a u t o m a t i cs i m u l a t i o np r o g r a m ) 软件包。日本机械学会,日本 油压学会研制的仿真软件包b g s p ( b o n dg r a p h ss i m u l a t i o np r o g r a m ) ,可以对复 第2 页共6 7 页 上海大学硕士学位论文 第一章绪论 杂系统做数学模型处理,并进行仿真。 国内方面,厦门集美大学采用v b 软件编制的液压实验仿真系统,将几个基 本液压系统原理的实验动态地进行演示,有很好的教学效果;华中理工大学研制 的面向液压系统原理图的动态仿真软件,利用面向对象的思想,采用c + + 语言, 实现了计算机上液压原理图的自动建模和仿真;北京航空航天大学研制的液压系 统计算机辅助设计软件,利用a u t o c a d 的模块技术建立了液压图形库,进行液 压系统设计,并直接生成工程上可应用的原理图,具有较强的实用性;上海交通 大学编制的h y c a d 软件包,可以将要仿真的液压系统原理图自动生成一个描述 该系统的f o r t r a n 源程序,然后进行编译,再从元件库中把元件算法调入进行组 装,从而得到仿真该液压系统的特定程序,既可用于系统仿真,也可用于元件仿 真。南华大学的液压传动c a 实验课件软件,在w i n d o w s 平台上,利用v b 将 动画技术和可视化编程结合,把液压传动课程实验的过程生动地展示出来,具有 很好的教学效果。 从国外和国内的情况来看,液压c a i 方面的研究已有了较广泛的研究,但 仍未出现较理想的面向学生的液压c a i 软件,在这方面仍有很大的发展空间。 1 3 课题研究的主要内容 我所要开发的“面向对象的液压系统智能教学软件的研究”,是以新编的教 材为依据,根据最新的液压系统标准,结合计算机技术的发展,目前已经有了一 定的研究基础,最初的研究采用d e l p h i 软件,在w i n d o w s 环境下,采用面向对 象的编程思想编制而成。根据本课题的目的和内容,在前人研究的成果基础上, 该软件采用v i s u a lc + + 和a c c e s s 软件作为开发平台。v i s u a lc + + 是迄今为止 m i c r o s o f t 公司推出的最优秀的编程软件,它以c + + 语言为基础,界面优美,功 能强大,可以开发w i n d o w s 的各种3 2 位应用程序,充分发挥c + + 语言的易扩展、 继承性、灵活性等特点。v i s u a lc + + 提供的m f c 类库和功能完美的资源编辑器, 可视化开发工具,可以方便的开发软件;同时,它还易于同数据库及多媒体等软 件的动态链接和接口。a c c e s s 是o f f i c e 2 0 0 0 办公软件系列中的一部分,它功能强 大,灵活性强,易于同v c 建立接口,方便编程。在本软件中v c 抖将使用a d o 技术同a c c e s s 数据库建立动态链接。 该软件的设计目标是使学生利用该软件中的各种标准液压元件库自行设计 第3 页共6 7 页 上海大学硕士学位论文第一章绪论 液压系统,并在系统的智能纠错功能的帮助下,更好地学习液压传动的知识,虽 终能进行计算机上的液压系统的动作仿真;同时,该软件包将代替液压传动课程 中的部分实验,使学生在计算机上进行模拟实验,达到实际实验的效果,充分调 动学生的兴趣,更好的学习液压系统和元件的特性。 具体来说,本课题可分为以下几个内容: 1 、基于c + + 语言面向对象的思想将液压元件抽象成类,并根据标准定义液 压元件图形符号库。对液压系统的元件的描述及定义其内部固有行为特征采用封 装技术,而对同一类元件中的不同类型的描述采用继承技术,同时,在同类元件 执行功能的函数的定义上采用多态性技术,使整个元件库中的液压元件既独立又 有相互联系:每使用一个元件,就产生一个该元件的对象,可通过界面对元件的 参数进行调整; 2 、根据数据结构的原理,对液压系统原理图中的元件进行遍历,自动识别 系统各元件的连接关系,将系统辨识的信息以定的格式存储,并自动识别系统 的基本类型和功能。 3 、根据人工智能理论中专家系统的思想,实现液压系统智能辩识纠错的功 能,基于专家系统的故障诊断方法的原理框图如下图1 - 1 所示,数据库中存放的 是经人为提取的一些故障诊断规则,反映各种故障的因果关系,推理机控制整个 问题的求解过程,实际上是一种算法,它将规则库中的规则拿来与事实匹配,然 后利用适当的控制算法启用最合适的规则结论,并且知识获取程序还可以使操作 人员修改和增加规则库中的规则,它的运行效果影响着整个程序的智能程度,此 模块的建立是个不断改进的过程,根据实际需要而不断的调整和拓展。使用 m i c r o s o f ta c c e s s 软件构建知识库,采用一定的算法进行判断,建立v c + + 同 a c c e s s 的数据接1 3 ,达到既能使知识库独立于v c h 应用程序,便于对知识库的 操作,又能方便地为纠错功能服务,提高整个软件包的智能化水平。 4 、对构建的液压系统原理图进行动作仿真,动作仿真具有直观、易学的特 点,通过修改各元件的参数,得到不同的仿真动画效果,并可得出系统的主要参 数如压力、流量等结果,便于学生理解。本软件中实现了多缸动作系统和顺序动 作系统等的动作仿真。 第4 页共6 7 页 上海大学硕士学位论文第一章绪论 图1 1专家系统的原理图 5 、代替液压传动课程中的部分实验,在计算机上仿真实验达到实验要求的 目标,方便教学。利用系统中的液压实验界面平台,操作者根据实验要求在计算 机上演示,按实验要求进行操作,所得结果数据自动存入a c c e s s 数据库中,实 验完毕可由v c 程序调入数据生成图表或曲线,进行实验分析。 第5 页共6 7 页 上海大学硕士学位论文 第二章基于c + + 语言的液压元件库的建立 第二章基于c + + 语言的液压元件库的建立 2 1 概述 c + + 语言是一种面向对象的语言。在面向对象的程序设计( o b j e c to r i e n t e d p r o g r a m m i n g ,o o p ) 中,主要采用类( c l a s s ) 的概念来描述和解决问题。类就是对具 有相同属性类别的对象的抽象描述,而对象就是在这一描述下的一个具体的物体 或实例,在面向对象的语言中,类具有三个重要的特性:封装性、多态性和继承 性。 封装性,是将数据和对该数据进行合法操作的函数封装在一起作为一个类的 定义,另外,封装还提供一种对数据访问严格控制的机制。在c + + 中,类是支持 数据封装的工具,对象则是数据封装的实现。 多态性,是指相同的语言结构可以代表不同类型的实体或者对不同类型的实 体进行操作。在v c + + 开发环境中,就是指发出同样的消息被不同类型的对象接 收时导致完全不同的行为。这里的消息是指对类的成员函数的调用。c + + 允许一 个相同的标识符或运算符代表多个不同实现的函数。 继承性,一个类可以根据需要生成派生类。继承性是面向对象程序设计中最 重要的机制。派生类继承了基类的所有方法,另外派生类自身还可以定义所需要 的不包含在父类中的新方法。一个子类的每个对象包含从父类那里继承来的数据 成员以及自己所特有的数据成员。 另外,c + + 中定义了友元类可以访问类的私有成员。 2 2 液压元件的描述 液压系统是由一组液压元件组成,每个元件都有自己的结构特点和功能,几 个元件组成的系统又可以实现一些特定的功能,同时液压元件库可归纳为结构相 似、功能相近的几大系列,这些特点决定了使用面向对象的方法来描述液压元件。 将液压系统中的每个元件看成是不同的对象,液压系统是不同对象的组合,每种 元件被定义成类,元件的参数和属性被定义成类的数据成员,封装起来通过成员 接口函数实现功能并与外界作用。充分利用面向对象技术来正确描述液压元件是 液压系统c a i 软件开发的基础,根据液压元件的特点,对每一元件的内部固有 行为特征的描述采用封装技术,而对同一种元件的不同类型描述采用了继承技 第6 页共6 7 页 上海大学硕士学位论文 苎三里至! 生堕童塑望垦墨壁壁塑堡皇 术,对不同类型但属于同一系列元件的相似成员函数采用多态性技术实现。 2 2 1 封装性的实现 在面向对象的建模中,数据与对数据操作的方法的结合称为封装。封装其本 身就具有模块性,在液压系统中对液压元件的对象进行封装分析,这样就使液压 系统的可维护性和可重用性得到很好的改善。本课题中,对一种元件定义为类, 类是对一组具有相同数据结构的操作对象的描述,它是建立一个对象的模板。元 件的常用参数如流量、压力、位置、行程等作为类的数据成员,是该元件所特有 的,代表了该元件的特点,应被封装起来,外部不能直接访问,同时,元件的特 性及对元件的操作如截面面积、液压缸的有效作用面积、修改元件参数、各参数 的获得等通过定义成员函数来实现,这些成员函数可以对内部数据成员操作,是 类与外界联接的接口。这样,类的定义使每个元件既有自身的私有特征参数,又 可以通过成员函数与系统中的其它元件相互作用。以本课题中的液压缸元件为 例,以下为单作用缸的类定义: c l a s sc s c y l i n d e r :p u b l i cc a l l 单作用缸定义声明 p r o t e c t e d :以下为被保护封装的成员 i n tm _ d ,1 1 1 _ d ;活塞杆、液压缸直径 d o u b l em _ l o n g ;活塞的行程 c p o i n tm _ p l ,m _ p p i s t o n ;液压缸左端口的坐标和活塞的坐标 d o u b l em _ q ,m _ l p r e ;液压缸的流量、缸左腔的压力 p u b l i c :以下为外界可以访问的成员函数 v o i ds e t p l ( c p o i n ta ) ;设置缸的左端口的坐标 d o u b l eg e t l p 0 ;获得缸左腔的压力 c p o i n tg e t p l 0 ;h 获得缸左端口的坐标 v i r t u a ld o u b l eg e t r v o ;# 获得活塞右行速度 ) ; 从定义中可以看出,缸的自身参数属性被封装起来,而一些对参数的操作和 第7 页共6 7 页 上海大学硕士学位论文 苎三兰至主生堕童塑望垦墨堡壁塑塞皇 特性的成员函数可以实现与外界的作用,既将元件定义成模块,可以方便地组成 系统,又保证了元件在系统中的功能实现。 2 2 2 继承性的实现 继承是类的一大特点,通过继承可直接获得被继承者的性质和特征。这样只 需一次定义公共属性和方法,然后子类扩展这些属性为自身具体的情况。这种归 纳、演绎式的方法既可以采用由底向上的形式,也可以采用由顶向下的形式。由 底向上法就是先从最底层开始研究,然后提取出其共同特征放入上一层中,逐层 处理至顶层即最上层的父类。而由顶向下法正好相反,从最顶层开始研究,归纳 出本层的一般特征,然后带入下一层子类进行研究,逐层至底层。在这里,采用 的方法是先由底层向顶层的方法分析和归纳,然后具体编程实现时用由顶向下的 方法来定义,从父类到子类层层继承和定义。在液压系统中,有几大类元件:动 力元件如泵、执行元件如液压缸、液压马达,控制元件如控制阀和各种辅助元件, 每一类元件有相似的结构特征和功能,不同的类型和系列,应用面向对象的继承 技术可以有效地来描述不同元件,每一系列元件都有一个父类( 基类) 和继承下来 的子类( 派生类) 。液压系统中的总基类是c l a s sc a l l ,它定义了所有的元件的公共 参数如元件位置,元件标识等,具体定义如下所示: c l a s sc a l l 液压总基类的定义 p u b l i c :公有成员 c h a r + n a m e ;,液压元件名标识 c p o i n tm _ p o i n t t o p l e f t ;图标的左上角的坐标 c b i t m a p + mb i t m a p ;元件的位图成员 p u b l i c :公有成员函数 v i r t u a ld o u b l eg e t p o ;获得元件的压力 v i r t u a ld o u b l eg e t q o ;获得元件的流量 v i r t u a lv o i ds e t p a r a m e t e r o ;设置元件的参数 v i r t u a lc p o i n tg e t p o s i t i o n ( c s t r i n ga ) ;获得元件某端口的坐标 第8 页共6 7 页 上海大学硕士学位论文 苎三皇墨主! 兰堕童笪望垦垂堡壁塑堡皇 ) ; 下一层中如液压控制阀类中的二位二通换向阀类就是从c a l l 继承而来: c l a s sc t t v a l v e :p u b l i cc a l l 二位二通阀,从总类中继承 ( p r o t e c t e d :被封装的数据成员 i n tm _ n ;阀芯的位置 c p o i n tmp a ,m _ p p ;h 阀的端口a 和p 的坐标 d o u b l em q ,m _ p ;阀的流量和压力 p u b l i c :h 损函数 v o i ds e t p ( d o u b l eb ) ;,设置阀的压力 v o i ds e t q ( d o u b l ea ) ;设置阀的流量 c p o i n tg e t p a o :,获得端口a 的坐标 v o i ds e t n ( i n ta ) ;,设置阀芯的位置 ; 二位二通阀既拥有了c a l l 总类的属性和特征。又具体定义和封装了自身的 属性和操作。而二位三通阀同样是以二位二通阀为父类继承而来,因为二位二通 阀所具有的属性二位三通阀同样可以具有: c l a s sc t t h r e e v :p u b l i cc t t v a l v e ,二位三通阀,从二位二通阀继承 p r o t e c t e d :被封装的成员 c p o i n tr n _ p b ;阀端口b 的位置坐标 p u b l i c :h 公共的与外界进行接口的成员函数 c p o i n tg e t p b 0 ;获得端i z lb 的坐标 v o i ds e t p b ( c p o i n ta ) ;设置端口b 的坐标 ) ; 可以看到,二位三通阀既继承了c a l l 总类的属性,又继承了二位二通阀的 属性,既与同类阀有公共的特征,又定义了自身的特点。 第9 页共6 7 页 上海大学硕士学位论文 第二章基于c + + 语言的液压元件库的建立 以下的图表2 - 1 就是反映了本课题中所建立的液压元件的分类和继承关系 图2 - l 液压元件库的继承关系图 2 2 3 多态性的实现 多态性的应用建立在继承性的基础上的,在本课题的程序中,有一些液压元 件的函数的功能和名称,从父类到子类是相似的,但是具体执行中是不同的,在 第1 0 页共6 7 页 上海大学硕士学位论文 苎三童墨王唑堕童墼翌里垂竺塞竺堡皇 该系统中,多态性的应用主要在以下几种情况下:对元件的参数的操作上,如对 二位二通阀和二位三通阀读取参数、修改参数;对元件的链接与辨识搜索上( 这 在后续的章节中介绍) ,如不同的元件内部的油路走向等;对例如由三位四通阀 派生出来的具有不同的中位机能的子类阀的不同功能的实现。在面向对象技术 中,多态性是靠虚函数的方法来实现的,只要类中的成员函数被说明成虚函数, 这就意味着该成员函数在派生类中可有不同的实现。实际的运行中c + + 是采用的 动态联编的方式,即在程序运行时确定将要调用的函数,也就是对需要操作的类 中的函数进行调用。如在程序中的定量泵和变量泵的参数流量的获取: c l a s sc p u m p :p u b l i cc a l l ,定量泵的声明,从液压总类中继承 p r o t e c t e d :h 以下为泵的成员参数,被封装保护 d o u b l em _ q ,mp ;h 流量、压力定义 c p o i m m _ p l ;泵的出口的坐标 p u b l i c :以下为公有成员函数,是泵的特性和功能的实现 v i r t u a ld o u b l eg e t p ( ) _ 获得泵的压力,关键字v i r t u a l 定义为虚函数 v i r t u a ld o u b l eg e t q ( ) ;,获得泵的流量,关键字v i r t u a l 定义为虚函数 ) ; 在泵的定义中获得流量和压力的函数被声明为虚函数,而变量泵是从定量泵 继承而来: c l a s sc v a r i p u m p :p u b l i cc p u m p ,变量泵定义,从泵类继承 p r o t e c t e d :被封装韵元件参数 d o u b l en ;,变量系数 p u b l i c :公有的成员函数 v i r t u a ld o u b l eg e t p ( ) 获得变量泵的压力,关键字v i r t u a l 定义为虚函数 v i r t u a ld o u b l eg e t q ( ) ;获得变量泵的流量,关键字v i r t u a l 定义为虚函数 第1 1 页共6 7 页 上海大学硕士学位论文 第二章基于c + + 语言的液压元件库的建立 ) ; 从中可以看出,变量泵中同样定义了名称和功能相同的虚函数,这样在设计 液压系统中,程序并不知道系统的动力源是定量泵还是变量泵,只有在运行时, 发出相应操作的消息,由于动态联编的机制,程序会运行实际的泵元件类的成员 函数,例如想获得压力的值,实际用的是定量泵,则调用定量泵的函数,保证了 调用的正确性,使液压系统的建立更具灵活性,程序的运行效率也大大提高。 2 3 液压元件库的建立 由于本c a i 软件的开发是旨在帮助学生熟悉和学习液压传动基本回路的组 成和工作原理等的辅助教学软件,因此液压元件库的建立是基本按照教材的使用 范围内进行的。 按照液压传动课程的内容,我们选择了一些常用的液压元件作为常用回路的 元件库,基本组成是按照前面图2 1 所示的元件来建立的,在窗口的快捷工具栏 和菜单项中都有选项,同时考虑到以后程序的可扩展性,可根据需要随时扩展新 的元件类和液压回路。元件库中的元件是一些基本的液压元件,在使用的过程中, 完全可以在已有的元件的定义的基础上继承出新的元件定义。 由于我们的原则是将每一个元件看作一个对象,因此对每一个元件都建立相 应的类,在v c + + 开发环境中每一种元件的定义都做成了h 文件( 类的声明文件) 和c p p 文件( 类的函数的实现文件) ,这样在整个软件系统中有利于程序的修改和 维护,实现程序的模块化,避免主程序中的内容重复过多,便于液压元件类的扩 展。这些文件之间的调用及在程序中的关系可以用下面的图2 2 来表示: 图2 2 程序中各部分的调用关系 第1 2 页共6 7 页 上海大学硕士学位论文第二章基于c - h - 语言的液压元件库的建立 图中的元件库元件的声明文件是实现文件的前提,当用户选择一个元件时, 程序会调用声明文件( h ) 中的定义来产生一个元件对象,然后当程序使用这个 元件的功能及参数时,通过实现文件( c p p ) 中的函数来操作。而用户的界面和 内存管理与主程序之间是协调的对应的。这种模式是充分体现了元件库建立的过 程中c + + 的面向对象操作的特点。 第1 3 页共6 7 页 上海大学硕士学位论文第三章液压系统的建立和原理图的识别 第三章液压系统的建立和原理图的识别 3 1 概述 选择液压元件来建立系统是c a i 的一个基本功能,除了应具有所需的基本 元件,还要求软件的功能完善和方便,界面的合理,在选择元件构建系统的过程 中,设计了必要的功能如修改参数、移动元件、连接油路等。产生的元件和油路 是在软件运行过程中的具体对象,在内存中是要有一定的数据结构来管理的,以 便于其它的操作;同时,所建立的系统的原理图可以自动识别,就是说要依据一 定的算法和工具将液压系统各元件之间的连接关系识别清楚,并将识别的元件信 息、连接信息记录在设计的数据结构中。原理图的识别是本软件中的重要功能, 只有正确的识别,才能对系统进行纠错和动作仿真。 3 2 液压系统的建立 为了简化液压系统的表示方法,本软件中采用了图形职能符号来构建液压系 统原理图。职能符号脱离了液压元件的具体结构,只表示元件的职能,用来表达 系统中元件的作用和整个系统的工作原理,简单明了,便于绘制。元件库中的每 一个类都有对应的职能符号,且是按新国标g b t 7 8 6 1 9 3 的规定都已标准化。 如下图所示为元件库的快捷按扭界面: 图3 - 1 元件库快捷界面 选择相应的元件,点击图标,然后在窗口中适当的位置单击,所选的元件职 能符号就会出现在点击的位置上,。在窗口中设计液压系统原理图,是依靠对液 压元件的一系列操作来进行的,包括元件的生成、删除、元件端口之间油路的连 接和删除、元件参数的设置及修改等,下面将进一步的介绍: 3 2 1 液压元件对象的生成与删除过程 在程序中建立一个数组a l l ,每产生一个元件对象就加入到该数组中。元件 在程序中的生成过程分为如下阶段: l 、选择元件,调用该元件类的构造函数进行初始化,产生一个该元件的对 第1 4 页共6 7 页 上海大学硕士学位论文 墨三! 堡垦墨墼塑塞兰塑垦堡璺些望型 开始 0 用鼠标右键单击要删除的元件,选择删除选项 l 标记与该元件相连的油路并删除,调整油路数组p i p e 中的其它油路的序号 i 调整油路数组中由于元件删除而变化的油路的参数 j 在元件数组中删除元件对象,调整相关的元件序号,释放内存并刷新窗口 l 0 结束 囝3 3 兀件对象的删际过程 3 2 2 液压元件之间油路的连接 各元件之间油路的连接是通过“连线对话框”操作的,单击“油路”菜单项 或是快捷按扭栏的“”按扭,就会出现连线对话框,如图3 4 所示,根据需要输 入要连接的两个元件的序号、端口名,也可选择线型,即可实现油路的连接,油 路也被视为一个类,一条油路是一个具体的对象。在本程序中,对于整个油路也 建立了一个油路数组p i p e c ,所有产生的油路都存放于数组中,集中管理和操作。 图3 4 油路连接的对话框 第1 6 页共6 7 页 上海大学硕士学位论文第三章液压系统的建立和原理豳的识别 程序会将油路的起始和终点信息存入油路对象中作为该对象的私有参数,同 时为下一步的系统识别提供了路径的信息。如果输入的元件序号和端口名称错 误,则此次连线失败。 如果需要,对元件图标的位置进行移动,则相应的油路会自动随着元件的移 动而移动,保持系统原理图的正确与完整。也可点击鼠标右键来选择删除油路选 项删除已建立的油路。 3 2 3 元件的参数设置 一般产生一个元件后,系统会自动在该元件初始化过程中设置默认的参数 值,如果需要,可以随时修改元件的参数,只要双击相应的图标,系统会自动根 据图标的坐标在元件数组中寻找被选中的元件对象,并调用相应的函数,显示该 元件的参数对话框,对每一种元件我们都设计了相应的参数对话框。 例如双击双作用双杆缸的图标可产生下图的对话框,就可以对相应参数进行 相应的修改: 图3 - 5 双作用双杆缸的参数对话框 3 2 4 液压系统原理图文件的存取 一个完整的软件是应该具有文件的存储功能的,在液压c a i 软件中,考虑 到使用者在构建液压回路后可以将系统形成文件保存,以便在今后随时调出来使 用和查看,我们设计了应用在本c a i 软件上的文件格式,其后缀为+ h y d r a u 的文 件,存储时通过调用系统程序中主文档类及各个元件类的s e r i a l i z e ( c a r c h i v e & a n 序列化函数,来实现元件及系统信息的存储,在形成文件的过程中,我们主要保 第1 7 页共6 7 页 上海大学硕士学位论文 第三章液压系统的建立和原理图的识别 存了元件的对象数组( 元件的位置坐标、元件个数、元件对象名称、元件的编号、 参数等) 的信息,油路数组( 线路的参数,线路条数等) 信息,以及相应于原理 图的系统的存储结构信息( 后面会介绍) 。这样调出文件时,系统会自动的根据 存储时的顺序,先创建元件及油路的对象数组,将元件的参数等信息提取出来, 再根据元件在存储中的位置坐标信息( 包括油路的坐标信息) 来显示整个系统图, 之后再取出关于系统的数据结构的信息存于程序的内存中。 3 3 液压系统的自动识别 所建立的液压系统图只是在程序中产生了相应的元件对象,是关于各元件及 油路的离散信息,对于整个系统,必须通过一定的算法来识别各元件之间的连接 关系,并记录在一定的数据结构的记录中,才能对所设计的系统进行操作。通常 液压系统的各元件之间的连接关系是比较复杂的,但是我们知道在液压回路中从 动力元件到执行元件是系统的主油路,而其它的油路是支油路和控制油路,搞清 这些就可以识别整个系统,因此将系统原理图中的主油路和支油路搜索清楚是算 法要解决的问题。 由于有的液压元件有多个端口,因此将系统描述成元件与元件之间的连接是 不能清楚的反映逻辑关系的,在这种情况下,我们以元件的端口为搜索对象,通 过端口之间相通的油路来作为搜索路线,以一定的规则寻找主油路和支油路,这 样可以将元件之间的关系更明确。为此,定义一个端口类来描述各元件的端口的 信息如:压力、流量、所属的元件号、端口名称及编号等,具体定义如下所示: c l a s sc v e r t e x :p u b l i cc o b j e c t 端1 3 类,适用于所有的元件端口 p r i v a t e :以下为端口的私有信息 c h a r + mn a m e ;胂嵩口所属元件名 d o u b l emp ;端口的压力 d o u b l emq ;,端口的流量 i n tm n ;端口所属元件号 c s t r i n gm _ p o r t n a m e ;端口号 i n t n ;端口的编号 ) ; 其中端口的编号是标记相通的端1 3 的,例如某元件的一个端口与不同的两个 元件的端口有油路相连,在程序中这两个被相连的端口是没有线路直接相连的, 但实际上是相通的,这时如果为这几个实际上是相通的端口做上相同的编号,则 第1 8 页共6 7 页 上海大学硕士学位论文 第三章液压系统的建立和原理图的识别 在搜索的过程中可以认为是相通的。 同时,元件内部各端口之间的关系是由其具体的结构和状态来决定的,为此 每个元件的类都有相应的函数来实现。下面我们来介绍液压系统原理图的存储结 构和搜索过程。 3 3 1 液压系统的存储结构 选择合适的存储结构要与液压元件的特点相结合,要能够正确反映使用者创 建的系统原理图的结构。根据实际需要,我们设计了两种存储结构来管理和操作 元件和油路对象,一种是对象数组,如元件数组a l l 和油路数组p i p e ,这在前 面已经介绍,但数组的建立只是为了记录和管理所产生的元件和油路,当生成或 删除一个液压元件对象时,程序将自动完成对元件和油路数组的成员的增加和删 除,其主要目的是对整个系统原理图的管理,如元件参数、元件符号、图标坐标、 油路的信息等,整个系统的界面管理和操作就是以这类对象数组为基础来进行 的。另一种是结构是将液压系统原理图中的各元件端口的信息及它们之间的连接 关系记录下来,程序在辨识系统搜索油路的过程中对这个数据结构来进行操作, 在这种情况下,采用第一种结构是不能灵活的反映元件之间的连接关系的;另一 方面,该结构的建立要适于程序对其进行搜索,综合考虑,我们采用了数据结构 中图的存储结构来表达这种关系。 图是一种非线性的数据结构,简单地说图是由顶点集合( v e r t e x ) 及顶点间 的关系集合组成的一种数据结构。g r a p h = ( v e ) 其中v 代表了顶点的集合,e 代表了顶点之间关系的集合。在软件中,就是用元件端口的概念来作为图中顶点 的概念来具体操作的,图的特点是它的每一个顶点可以与多个其它顶点相关联, 各顶点间的关系是任意的,这一特点是与液压系统的特点相符的。常用的图的存 储方式有:邻接矩阵、邻接表、邻接多重表和边集数组等,经过对几种方式的分 析对比,我们采用了邻接表( a d j a c e n c y l i s t ) 形式的存储结构,它是图的一种链 式存储结构,它对图中的每个顶点( 端口) 建立一个邻接关系的单列表 n o d e t a b l e 1 ,即表头是顶点的描述,其后的链表是与之相关联的顶点所建立的边 ( 油路) 的描述,表头指针用向量的形式存储。此外,在这种结构中,把同一个 顶点( 端口) 的所有边( 相连的油路) 链接在一个单链表中,可以大大方便图的 操作。邻接表的结构特点如下图所示: 第1 9 页共6 7 页 上海大学硕士学位论文 苎三兰壁垦墨堑竺壁兰塑堕里里塑望型 0 1 2 n o d c t a b l c 表边的链表 图3 - 6 邻棒壶的亮示 在本软件中图是作为一个特殊的类来说明的,既包含了邻接表的存储,又包 含了对邻接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国融通集团融通科研院春季专项招聘笔试题库历年考点版附带答案详解
- 2025铜型材采购协议合同
- 2025吉林省城市规划技术服务委托合同书
- 电信租机协议书
- 养猪合同协议书
- 违约利息协议书
- 协议书工社保
- 委托投资协议书
- 协议书出让合同
- 购房转让协议书
- 医学细胞生物学细胞的内膜系统
- 《孕前和孕期保健》课件
- 肾病科糖尿病肾病(DKD)与终末期肾病血液透析(ESRD-HD)单病种质量控制统计表
- 空间设计教学大纲 室内设计教学大纲(五篇)
- 促单技巧及话术大全
- 车辆司法鉴定申请书
- 塑料原料名称中英文对照表
- 二年级应用题大全800题二年级上册数学乘法应用题
- 第十四杂环化合物
- GB/T 5454-1997纺织品燃烧性能试验氧指数法
- GB/T 11186.2-1989涂膜颜色的测量方法第二部分:颜色测量
评论
0/150
提交评论