您好,欢迎访问三七文档
自动程序设计自动程序设计的含义自动程序设计,是指采用自动化的手段进行程序设计的技术。后引申为采用自动化手段进行开发的技术和过程。其目的是提高生产率和产品质量,并且它在软件工程、流水线控制等领域均有广泛的运用。自动程序设计的含义按广义和狭义,横向和纵向,可以分成几个类型。广义含义按照广义的理解,自动程序设计是尽可能借助计算机系统,尤指自动的程序设计系统进行工程开发的过程。这里的开发指的是,从问题的非形式描述,经形式的软件功能规格说明、设计规格说明,到可执行的程序代码、调试,及至确认、交付使用的全过程。狭义含义按照狭义的理解,自动程序设计指的是从形式的功能和规格的说明,到可执行的程序代码的这个过程的自动化。纵向理解按纵向理解,低级的自动化指从设计规格说明,到可执行的程序代码这一过程的自动化,系统只是起到了程序员的作用;中级的自动化指的是从除了设计还有功能的规格说明,到可执行的程序代码的过程的自动化,系统除了起到程序人员的作用外,还起设计员、系统分析员的作用;高级的自动化则解决了从非形式的描述到可执行的代码当中整个过程的自动化问题,系统除了起程序员、设计员、系统分析员的作用外,还起到了领域专家的部分作用。横向理解按横向理解,在上述各种纵向理解级别上,根据人工干预的程度,又可区分各种不同的自动化级别。自动程序设计的任务是设计一个程序系统,它接受关于所设计的程序要求实现某个目标非常高级描述作为其输入,然后自动生成一个能完成这个目标的具体程序。在某种意义上说,编译程序实际上就是去做“自动程序设计”的工作。编译程序是接受一段有关干某件事情的源码说明(源程序),然后转换成一个目标码(目的程序)程序去完成这件事情。而这里所说的自动程序设计相当于一种“超级编译程序”,它要求能对高级描述进行处理,通过规划过程,生成的到所需的程序。因而自动程序设计所涉及的基本问题与定理证明和机器人学有关,要用到人工智能的方法来实现,它也是软件工程和人工智能相接合的课题。自动程序设计的关键技术从关键技术来看,自动程序设计的实现途径可归结为演绎综合、程序转换、实例推广,以及过程实现等4种。①演绎综合。其理论基础是,数学定理的构造式证明可等价于程序推导。对要生成的程序,用户给出它的输入、输出数据必须满足的条件,条件以某种形式语言(如谓词演算)陈述。对于所有这些满足条件的输入,要求定理证明程序证明存在一个满足输出条件的输出,从该证明中析取出所欲生成的程序。这一途径的优点是理论基础坚实,但迄今只析取出一些较小的样例,较难用于较大规模的程序。②程序转换。将一规格说明或程序转换成另一功能等价的规格说明或程序。从抽象级别的异同来看,可区分纵向转换与横向转换。前者是由抽象级别较高的规格说明或程序转换成与之功能等价的抽象级别较低的规格说明或程序;后者是在相同抽象级别上的规格说明或程序间的功能等价转换。③实例推广。借助反映程序行为的实例来构作程序,一般有两种方法。一种是输入/输出对法:借助给出一组输入/输出对,逐步导出适用于一类问题的程序。另一种是部分程序轨迹法:通过所给实例的运行轨迹,逐步导出程序。这一途径的思想诱人,为用户称道,但欲归纳出一定规模的程序,难度颇大。④过程实现。在对应规格说明中的各个成分,其转换目标的相应成分明确,而且相应的转换映射也明确的前提下,该映射可借助过程实现。目前一般采取设计甚高级语言(如SETL),其中含有全称量词,存在量词等,以便于书写软件设计规格说明的成分。但是,SETL本身还不能算是功能规格说明语言,不能算是功能性语言。这一途径的实现效率较高,困难点在于从非算法性成分到算法性成分的转换。因此,迄今采用这一途径的系统一般自动化程度不高,很难实现从功能规格说明到可执行的程序代码的自动转换。此外,其关键的技术还包括了程序综合,程序验证,以及对程序调试的概念的推广。程序综合指的是自动编出的一份程序来获得某种指定结果的任务,程序验证指论证一份给定的程序将获得某种指定结果的任务两者是紧密相关的,许多自动程序设计系统将产生一份输出程序的验证作为额外的收益。把程序调试的概念推广到作为问题求解的策略,是自动程序设计研究的一项重要内容。实践已显示出,对与程序设计或机器人的控制的问题,先产生一个代价不太高的有错误的解,然后再进行修改的作法,要比坚持要求第一次得到的解就完全没有缺陷的作法,通常效率要高的多。自动程序设计的内容在计算机技术发展初期,编译程序的出现被认为是自动程序设计方面的一大进展。1956年,美国国际商业机器公司(IBM)建立的第一个编译程序FORTRAN就曾被称为自动程序设计系统。随着技术的进步,自动程序设计的内容在不断变化。已建立的实验系统包括规格说明、目标语言、问题范围和采用方法四方面基本内容。规格说明解决的问题是:以某种方式告知计算机,所需要的是什么样的程序,要求这一程序做什么。提交规格说明的方式有如下三种。①形式规格说明:可以认为是由一种超高级的程序语言书写的文件。这种语言的语法和语义是精确的、无歧义的,精确而完全地指出程序所要做的工作。一般形式规格说明通常不采用人-机交互对话方式,个别系统也有例外。②示例陈述:试图通过足够多的例子表明某一程序所要做的工作。系统根据这些例子自动构造出符合这些要求的程序。陈述中可包括程序的输入-输出性能,也可包括程序对某一输入的处理轨迹。这种方法还存在不少困难,方法很少是完备的。因为仅仅通过若干个例子,并不能充分描述在所有情况下程序的性态。③自然语言:用户使用自然语言陈述程序要做的工作。这种方法常采用交互对话方式。目标语言自动程序设计系统用以表示最后构造成的程序的语言。有一些系统往往采用如LISP、PL/I、GPSS等高级语言作为目标语言。问题范围所欲生成的程序应用的范围。例如NLPQ系统处理的问题都是有关排队方面的程序;PSI系统处理的则是有关符号计算(包括表处理、搜索和排列、数据的存放和检索等)。问题范围与规格说明有关,并对系统采用的方法有很大影响。采用方法各种实验系统采用的方法不尽一致,可归纳为下列几个方面。①定理证明:对要生成的程序,用户给出它的输入、输出数据必须满足的条件。条件以某种形式语言(如谓词演算)陈述。对于所有这些满足条件的输入,要求定理证明程序给出证明,即证明存在一个满足输出条件的输出,从该证明中析取出所欲生成的程序。②程序转换:研究如何将某一程序的规格说明或描述等价转换为另一种描述。转换的目的是将一个用超高级语言(容易写)的程序,转换为用低级(易于实现)的语言表示的程序。③知识工程:这种方法同样适用于自动程序设计以外的人工智能的许多应用范围。它涉及到知识识别和编码问题,通常是指将一些有关的知识以一种特殊的规则形式的数据结构加以表示,以便加入知识库或从知识库中撤除。④传统的问题求解方法:应用人工智能的一般方法以目标为指导来选择和应用一系列算子。在自动程序设计方面已有一些不同的实验性的系统。例如,NLPQ是第一个使用自然语言对话的系统,它可以解答用户提出的有关排队模拟等方面的问题。PSI系统包括一些子系统,它强调将不同的进程和知识来源整体化,应用范围为符号程序设计(非数值)。DEDALUS系统要求用户一开始就给出有关所需程序的完备描述。系统从一个拥有许多转换规则的知识库中,重复使用这些规则,产生一系列描述,直至最后生成目标程序。自动编程的含义与内容自动编程是相对与手动编程而言的。它是利用计算机专用软件来编制数控加工程序。编程人员只需根据零件图样的要求,使用数控语言,由计算机自动地进行数值计算及后置处理,编写出零件加工程序单,加工程序通过直接通信的方式送入数控机床,指挥机床工作。自动编程使得一些计算繁琐、手工编程困难或无法编出的程序能够顺利地完成。与手工编程相区别,自动编程使用CAD软件制作零件或产品模型,再利用软件的CAM功能生成数控加工程序,称为自动编程。在数控编程方面,数控编程是指从零件图纸到获得合格的数控加工程序的过程,主要内容包括:分析零件图样、确定加工工艺过程、数学处理、编写零件加工程序、输入数控系统、程序检验及首件试切。根据问题复杂程度的不同,数控加工程序可通过手工编程或计算机自动编程来获得。目前计算机自动编程采用图形交互式自动编程,即计算机辅助编程。这种自动编程系统是CAD(计算机辅助设计)与CAM(计算机辅助制造)高度结合的自动编程系统,通常称为CAD/CAM系统。为适应复杂形状零件的加工、多轴加工、高速加工,一般CAD/CAM系统所要涉及的方面有:1、零件的几何建模对于基于图纸以及型面特征点测量数据的复杂形状零件数控编程,其首要环节是建立被加工零件的几何模型。2、加工方案与加工参数的合理选择数控加工的效率与质量有赖于加工方案与加工参数的合理选择,其中刀具、刀轴控制方式、走刀路线和进给速度的优化选择是满足加工要求、机床正常运行和刀具寿命的前提。3、刀具轨迹生成刀具轨迹生成是复杂形状零件数控加工中最重要的内容,能否生成有效的刀具轨迹直接决定了加工的可能性、质量与效率。刀具轨迹生成的首要目标是使所生成的刀具轨迹能满足无干涉、无碰撞、轨迹光滑、切削负荷光滑并满足要求、代码质量高。同时,刀具轨迹生成还应满足通用性好、稳定性好、编程效率高、代码量小等条件。4、数控加工仿真由于零件形状的复杂多变以及加工环境的复杂性,要确保所生成的加工程序不存在任何问题十分困难,其中最主要的是加工过程中的过切与欠切、机床各部件之间的干涉碰撞等。对于高速加工,这些问题常常是致命的。因此,实际加工前采取一定的措施对加工程序进行检验并修正是十分必要的。数控加工仿真通过软件模拟加工环境、刀具路径与材料切除过程来检验并优化加工程序,具有柔性好、成本低、效率高且安全可靠等特点,是提高编程效率与质量的重要措施。5、后置处理后置处理是数控加工编程技术的一个重要内容,它将通用前置处理生成的刀位数据转换成适合于具体机床数据的数控加工程序。其技术内容包括机床运动学建模与求解、机床结构误差补偿、机床运动非线性误差校核修正、机床运动的平稳性校核修正、进给速度校核修正及代码转换等。因此后置处理对于保证加工质量、效率与机床可靠运行具有重要作用。与手工编程相比,自动编程具有的主要特点包括了具有强大的数学处理能力,能快速和自动地生成数控程序,具备灵活的后置处理程序,具有较强的自检、纠错能力,以及便于实现与数控系统的通讯等。交互式图形自动编程系统的原理交互式图形自动编程系统采用图形输入方式,通过激活屏幕上的相应菜单,利用系统提供的图形生成和编辑功能,将零件的几何图形绘制到计算机上,完成零件造型。同时以人机交互方式指定要加工的零件部位,加工方式和加工方向,输入相应的加工工艺参数,通过软件系统的处理自动生成刀具路径文件,并动态显示刀具运动的加工轨迹,最终生成适合指定数控系统的数控加工程序。并通过通讯接口,把数控加工程序送给机床数控系统完成加工。这种编程系统具有交互性好,直观性强,运行速度快,便于修改和检查,使用方便,容易掌握等特点。因此交互式图形自动编程软件已成为国内外流行的CAD/CAM软件所普遍采用的数控编程方法。在交互式图形自动编程系统中,需要输入二种数据以产生数控加工程序:零件几何模型数据和切削加工工艺数据。交互式图形自动编程系统实现了从图样-模型-数控编程和加工的一体化,它的三个主要处理过程是:零件几何造型、生成刀具路径文件、生成零件加工程序。1.零件几何造型交互式图形自动编程系统(CAD/CAM),可通过三种方法获取和建立零件几何模型:软件本身提供的CAD设计模块;其他可转换的CAD/CAM系统生成的图形;三坐标测量机数据或三维多层扫描数据。2.生成刀具路径在完成了零件的几何造型以后,交互式图形自动编程系统第二步要完成的是产生刀具路径。其基本过程为:首先确定加工类型(轮廓、点位、挖槽或曲面加工),用光标选择加工部位,选择走刀路线或切削方式。选取或输入刀具类型、刀号、刀具直径、刀具补偿号、加工裕留量、进给速度、主轴转速、退刀安全高度、粗精切削次数及余量、刀具半径长度补偿状况、进退刀延伸线值等加工所需的全全部工艺切削参数。软件系统
本文标题:自动程序设计
链接地址:https://www.777doc.com/doc-2051316 .html