程序的优化(精选11篇)
程序的优化 篇1
算法是解决问题的办法和法则。而计算机作为按照给定指令对数据进行操作的机器, 其运行过程是一系列离散的步骤, 而这正好符合算法的定义。虽然简单算法不需要依赖计算机;但是, 在多数情况下, 复杂的算法又必须通过计算机来实现, 并且算法是抽象的, 不会因计算机的不同而不同, 发展过时而过时。
解决一个问题, 算法不必是唯一的。对表示问题的数据的不同组织方式 (数据结构) , 解决问题的不同策略 (算法思想) 将导致不同的算法。解决同一问题的不同算法, 消耗的时间和空间资源量有所不同。算法运行所需要的计算机资源的量称为算法的复杂性。一般来说, 解决同一问题的算法, 需要的资源量越少, 我们认为越优秀。计算算法运行所需资源量的过程称为算法复杂性分析, 简称为算法分析。所以一个优秀的算法要考虑正确性分析、时空效率分析、时空特征分析。
正确性分析:一个算法必须正确才有存在的意义。但什么样的算法是正确的呢?正确的第一要素是能够终结, 能够终结意味着如果输入或输出有限, 则算法将在有限步骤内终结;如果输入或输出无限, 则算法也就无需终结。比如计算圆周率π的算法在正常情况下就不应该终结, 除非我们告诉这个算法仅就按到小数点后的某特定位。算法正确的第二个要素是能够得出合理的结果, 即这个结果能够与实际世界相符合, 或者至少不相矛盾。在一般情况下, 一个算法运行的结果是否正确比较容易判断。例如, 排序算法是否正确, 可以通过检查排好序后的数据是否真是按照非递增或非递减排列来判断。但也存在某些情况, 正确性的判断并不直接。还是用π作例子, 计算π的有效位的算法是否正确就不是一件简单的事情。因为π的正确值由无限位构成, 任何计算出有限位的算法都不正确, 但计算无限位的算法则无法终结, 也就不可能计算出最后的结果。
时空效率分析:一个算法只有正确性并无太多意义。一个让人等上几百年的算法。就是在正确, 也不会令我们满意。因此, 算法的速度是非常重要的, 甚至在广义上可以判为正确性的一部分。当然, 这里的速度是一个抽象概念, 指的是算法计算所需要的的步骤, 而不是具体的多少小时、多少分钟等。除了速度外, 一个算法在实现的时候需要占用的空间也是一个考虑的问题。这里的空间指的是内存, 可以是物理内存, 也可以是虚拟内存, 但不包括磁盘。空间的节省可能转换为时间的节省。在其他因素相同的情况下, 节省空间的算法更优。
可读性分析:时空特性分析也是我们要考虑的, 例如稳定性、健壮性、实现难易性等, 一个算法在实现主要目的的同时, 还能实现一些附加目的, 那么这种算法就比只实现主要目的的算法更优例如, 在排序时, 有的算法是稳定的, 即值相等的数据其相对位置保持不变;有的是不稳定的, 即相等数据的相对位置在排序的过程中有可能发生变化。那么稳定的属性就是一个附件属性。另外, 算法还应该考虑到现实的难易性问题。有的算法在抽象上非常精妙, 但在具体实现起来则可能存在诸如难以理解、难以在计算机上表示、编程困难等问题。这样的算法就不如那种容易理解、容易表示、容易编程的算法好。
前面我们讨论了算法分析的重要性及算法分析的三个方面, 那如何进行算法设计呢?在设计上必须注重下面几个问题:
正确性:通过设计算法的运算, 最后能得到正确的结果。要考察一个算法的正确性, 最简单的方法就是设置各种条件的测试数据去测试。
步骤尽可能少:对于解决同一问题的多种算法, 执行时间短的算法效率高。要考察一个算法的执行效率, 通常关注算法进行的基本操作次数。例如, 对于嵌套循环, 若能减少一层嵌套, 其内循环执行的次数经显著减少, 效率将提高。
实现尽可能简单:最简单的算法往往不是最高效的, 其执行时间可能较长。但算法的简单性使程序的可读性增强, 易于调试和维护。考察算法的简单性时, 应考虑大多数程序员都能很好地理解程序。
空间占用尽可能少:在运算空间极其稀缺的情况下, 一个算法如果占用太大的空间是不经济的。比如, 我们用计算机计算1到100的加法, 如果用常规算法, 以此累加结果为5050, 比较耗时资源和占用空间资源。当然了, 我们从感觉上体会不出来。而用一简单算法, 1+100=101, 2+99=101, 判断一下一共50个101, 用101*50=5050, 就得出正确结果。从空间和时间上都是经济的。
摘要:说到编程, 可能大家首先想到的就是程序设计语言。随着计算机软件技术的不断发展, 计算机程序设计语言层出不穷, 常见的如Basic、VB、C、C++、C#、Java、Pascal、Delphi、PB等。其实, 编程语言只是一个很初级的工具。熟练的掌握这些编程语言中的一门, 就好像学会了写字。在现实生活中, 会写字的人不见得会写出优秀文章, 同样道理, 学会了一门或多门编程语言不一定能编出优化程序。那么怎样才能编写出优化程序呢?单从程序设计角度看, 算法是程序设计的灵魂, 算法优化了, 程序也就优化了。
程序的优化 篇2
(一)被告答辩义务的不明确及答辩失权的缺失
根据最高人民法院《关于民事诉讼证据的若干规定》第32条,在答辩期满前被告应当提出书面答辩,答辩内容是对原告诉讼请求以及所依据的事实和理由的反驳意见。该条规定包含以下两层含义:
第一,对于答辩的性质,有三种观点:答辩只是被告的诉讼义务;答辩只是被告的诉讼权利以及答辩既是被告的一项诉讼义务又是其一项诉讼权利。法律对此并未明确进行说明,主流观点认为答辩是被告的诉讼权利。依据的理由是民事诉讼法第125条的规定,根据该条,原告起诉被告后,人民法院应在立案之日起五日内将起诉状副本送达被告,被告在收到起诉状副本后提出答辩状,人民法院在收到被告答辩状后,应在五日内将答辩状副本发送给原告。但是如果被告在此期间不提交答辩状,人民法院继续审理。因此,被告提不提交答辩状是其自主决定的,可以由其自由选择,不提交答辩状也不影响人民法院的审理。从这一方面讲,答辩单纯就是被告的诉讼权利。
诚然,被告可以针对原告起诉的诉讼请求及依据和理由进行答辩,从而维护自己的合法权益,其也可以选择不答辩,但是如果据此就认为答辩是被告的诉讼权利又会造成一些困境。在实践中经常出现被告在收到原告起诉状副本后不在规定期限内提交答辩状,不让对方知道自己的反驳观点,而在人民法院开庭审理过程中,对对方突然袭击,原告在没有任何准备的情况下仓促辩论,对原告权利是一大损害,而且也拖延了诉讼的进程,严重影响诉讼的公正和效率。
第二,我国法律中并没有规定答辩失权制度,答辩失权是指被告如果没有在法律规定的答辩期限内提交答辩状的,那么其在整个诉讼过程中就丧失了再进行答辩的权利。而根据我国法律的规定,被告在收到原告起诉状副本后的15日内没有提交答辩状的,人民法院继续审理,在庭审过程中,被告仍然可以继续对原告的诉讼请求和理由反驳,据此,被告不提交答辩状对被告没有任何后果。实践中被告往往不提交答辩状,而原告又必须要提交起诉状,显然地将导致诉讼地位不平等。
(二)法院依职权追加当事人
根据我国民事诉讼法规定,人民法院可以依职权追加当事人,包括共同诉讼的`原告和被告,也包括无独立请求权的第三人,这里就存在侵害当事人诉权的嫌疑。法院是公正审理案件的第三方,其依据职权追加原告或被告,当然目的是为了查明案件事实,但是却是在损害当事人权利的基础上,这样显然不合适。在追加共同原告的案例中,人民法院直接将未实施起诉权的主体追加进来而不管对方是否要通过诉讼方式维护自己的利益,这实际上是侵犯了原告对是否行使起诉权的选择权,人民法院用强制手段代替了原告行使。
而在追加共同被告的案例中,也侵犯了原告的起诉权,起诉谁要谁承担责任,这是原告的自由选择的问题,法院追加被告进入诉讼与原告的起诉初衷并不一致。根据人民法院的不告不理原则,原告不起诉的人民法院无权自主决定审理,但是法院依职权追加当事人的做法明显违背了这一原则。
(三)撤诉制度立法缺陷
第一,对于原告的撤诉申请,法院享有非限制的否决权,损害了当事人的处分权。根据民事诉讼法第145条规定,原告可以在人民法院宣判前申请撤诉,但是是否准许,由人民法院裁定。因此这条实际上赋予了人民法院在作出是否同意撤诉问题上享有绝对职权,但是基于什么样的理由准予撤诉,无论民事诉讼立法还是司法解释都没有给出一个明确的范围,在最高人民法院的《意见》第161条中规定,人民法院可以对当事人违反法律的申请撤诉行为不准撤诉。结合《意见》第109条规定,违反法律一般认为是当事人的撤诉损害了国家或集体的利益,社会公共利益以及他人合法权益,在这样的情况下,人民法院不予准许撤诉。
第二,原告申请撤诉,人民法院审查裁定是否准许撤诉,因此只要人民法院单方许可,撤诉就达到终结诉讼的目的,而整个撤诉过程无需被告的参与,欠缺对被告诉讼权利的保护。但是诉讼程序是因为原告起诉行为引起后被告参与进来的,被告被人民法院拉近诉讼程序中,此时被告已经享有诉讼上的一些权利了,但是如果一旦诉讼程序终结必然会影响到他的利益,可是原告撤诉人民院裁定准许,从而终结诉讼程序,整个过程根本不考虑被告的利益,这种做法有待商榷。
第三,当事人的撤诉权在实际行使过程中常常遇到障碍。撤诉权是原告享有的一项非常重要的权利,但由于我国法律规定不完善以及司法人员素质参差不齐,实践中当事人行使撤诉权并不顺利。司法实践中经常存在强迫和变相强迫原告撤诉的现象。撤诉是当事人自愿的诉讼行为,但是在实践中,人民法院有时为了偏袒被告或者为了避免做出错误的判决从而减少上诉判决被撤销的可能,积极动员原告撤诉,或者以作出判决驳回原告诉讼请求为威胁变相强迫原告撤诉。
(四)缺席判决法律规定漏洞
缺席判决是保护法庭审理正常进行的一种保障性的制度,目的在于防止和处理一方当事人不到庭情况的发生,维护人民法院的审判权威,保证诉讼的顺利进行,保护对方当事人的合法权益。一般认为,我国的缺席判决存在以下缺陷:
第一,根据我国法律规定,缺席判决由人民法院直接依据职权做出,而不论当事人是否同意,这样做缺乏对当事人主体地位的尊重。因为在一方缺席时,另一方当事人未必就希望人民法院通过缺席审判做出判决。
第二,我国缺席判决对原告和被告区别对待,违背了当事人地位平等原则。对原告,一般按撤诉处理,在被告缺席时,又可以缺席判决,这显然违反了当事人平等原则。
第三,缺席判决并不是对缺席一方的制裁手段,如果认为是制裁手段就违背了缺席判决制度的功能。因为到不到庭是当事人的诉讼权利,缺席实际上是当事人自己对其权利的一种处分。因此,缺席和妨碍诉讼进行是有根本不同的。
第四,立法上对缺席判决制度规定不完善,可操作性差。由于立法的粗疏,只规定了缺席判决的情形,缺乏对具体的适用条件和审理方式作出规定,导致其功能萎缩。审判实践中,审判人员对于可以适用缺席判决的因为心存顾虑而不敢适用,改为延期审理或再次传票传唤等等。
二、民事诉讼普通程序的完善
(一)建立答辩失权制度
根据最高人民法院《关于民事诉讼证据的若干规定》第32条规定,在答辩期满前被告应当提出书面答辩,答辩内容是对原告诉讼请求以及所依据的事实和理由的反驳意见。一般认为,该条规定了被告的答辩义务。根据该条规定,被告应当在答辩期满前提出书面答辩,换言之,被告的答辩义务必须在答辩期限内完成。为了和该证据规定相符合,民事诉讼中也应当做如下规定:
第一,被告应当在答辩期届满前提交答辩状,否则将导致答辩失权的后果。也就是说被告答辩权行使的法定条件是在答辩期间提交答辩状,如果不提交答辩状的后果就是直接承认原告的诉讼请求。这种规定虽然严格,但答辩对于被告而言,属于基本的义务,基于诚实信用原则,被告应当首先履行该义务。如果被告不答辩,后面的诉讼程序将无法进行。
第二,规定被告的答辩行为对以后的辩论行为具有约束力,也即是说,被告不得随意推翻自己在答辩状中陈述的内容,如果有违反者,变更后的答辩无效。否则,将会导致当事人采取虚假答辩从而侵犯原告方利益的情况出现。
第三,被告在答辩状中应当如实写明答辩的事实以及理由依据等,即对答辩状的内容有形式上的要求。
保证诉讼结果建立在案件事实基础之上,而不是靠当事人诉讼突袭等技巧。
(二)强化法院的释明义务
必须改革我国法院依职权追加案外当事人的做法,通过强化法院的释明义务,由有关利害关系人决定是否参加诉讼或者是否引入案外第三人。我国目前公民的诉讼意识还有待加强,在这种情况下,当正在进行的诉讼在事实和法律适用上影响到案外人的时候,法院应对当事人履行释明义务,对本案当事人进行说明,告知他们利害关系,引入案外第三人参加诉讼的可能后果等等,再由当事人通知、告知案外人参加诉讼或者由案外人申请参加诉讼,人民法院不行使追加权力,只是情况的说明和告知者。
(三)完善撤诉制度
第一,对原告撤诉,人民法院不得进行实质性审查,只进行程序性审查,如该诉讼行为是否程序合法,有无意思瑕疵等;第二,被告可以对原告撤诉的申请不予同意。原告申请撤诉,人民法院需要征求被告的意见,被告不同意的,诉讼继续进行;第三,完善民事诉讼法对撤诉的规定。一些具体的程序由立法加以明确。如原告撤诉对被告的通知义务,人民法院进行审查的期限,对被人民法院否决的撤诉,规定对原告的救济权等;第四,对当事人之间达成的撤诉合意,应当赋予诉讼法上的效力。当事人达成和解双方形成撤诉合意,该书面协议具有诉讼合意的效力,任何一方均可以要求撤诉。
(四)完善缺席判决制度
第一,我国应当建立以一方辩论主义为主的缺席判决制度。一方辩论主义能够更好实现程序公正和实体公正、公正与效率的平衡。
第二,缺席判决对双方当事人平等对待,对任何一方当事人缺席,一视同仁。对于原告不出庭且没有合法理由的,按照法律规定做撤诉处理剥夺了被告对应的诉讼权利,为其滥诉或逃避败诉提供了方便。因此,应平等对待原告和被告的缺席情况。
第三,人民法院在作出缺席判决前应经出席一方当事人的申请,也就是没有当事人申请的情况下,人民法院不能够依据职权做出缺席判决。
[参考文献]
[1]郭小东。浅议民事被告答辩行为之性质[J].当代法学,(11)。
转炉煤气自动回收及程序优化方法 篇3
【关键词】煤气回收;优化;程序;安全性;技术方案
1、总体思路
转炉煤气质量好坏及回收量的多少和转炉氧枪吹炼、一次除尘、转炉风机等设备有很大的关系,通过现场跟踪煤气回收过程,分析影响煤气回收的因素,从影响煤气的产生、流经路径、回收系统三个方面进行优化。通过修改PLC控制程序及画面组态程序,能够最大程度的多回收煤气并保证煤气回收系统的安全性。
2、技术方案
2.1可行性分析
本次主要是针对炉前冶炼和煤气回收过程,通过优化程序来达到多回收煤气的目的,以不增加设备为前提,程序的修改经过多方面的论证、不会对设备产生不良影响,不会产生安全隐患。同时通过对程序的优化还可以增加安全性。
2.2项目实施过程
(1)通过几天对煤气回收整个过程的全方位跟踪,转炉炼钢是产生煤气的源头,煤气质量和转炉氧枪吹氧量、氧枪枪位有很大的关系。为了提高煤气的质量、要让转炉冶炼人员能够实时的观测到转炉煤气的质量,这样就需要在转炉冶炼操作画面实时显示转炉煤气中一氧化碳和氧气的浓度在转炉冶炼气体中的百分比,冶炼操作人员在不影响正常冶炼的情况下,适当的可以调整吹氧流量和枪位,使冶炼气产生的气体能够尽早满足煤气回收的条件,从而增加煤气回收时间。实时画面如下:
(2)转炉开始吹炼前3-4分钟一氧化碳浓度低,不能进行煤气回收。通过分析原因是转炉没有烟罩,在吹炼开始阶段一氧化碳含量少,而且由于没有降罩和风机速度高吸进大量的空气从而使一氧化碳浓度降低,无法达到回收要求。通过实验和现场跟踪,适当降低一次除尘风机转速,一氧化碳浓度可以提前30秒钟满足回收条件。于是通过修改PLC控制程序将风机速度调整为在转炉开始吹氧前两分钟风机转速为900rpm/min,两分钟之后将风机转速调整为900rpm/min,这样既保证了转炉除尘的效果又提高了煤气的回收时间。
(3)转炉煤气回收的控制过程如下:当煤气回收条件满足时,进行煤气回收,水封阀先动作打开,当水封阀开到位后,三通阀才动作打开;当煤气回收条件不满足时,进行煤气放散,先关闭三通阀,三通阀关到位后,再关闭水封阀。转炉在吹炼前6分钟的时间内,由于吹炼过程中氧压不稳,煤气中一氧化碳的浓度经常发生波动,有时会使已经满足煤气回收的条件而再次出现不满足的情况,通过跟踪观察一氧化碳的不满足时间比较短,也就是在10秒钟以内,根据这种情况,在煤气自动回收过程当中,转炉开始吹炼前6分钟之内,如果一氧化碳波动不满足条件时间在10秒钟以内,煤气回收过程中的三通阀和水封阀不动作继续保持原位即打开状态,只有超过10秒钟的时候煤气回收中三通阀和水封阀才相继关闭,这样平均每炉就多回收煤气10秒钟。
(4)原转炉煤气回收是手动回收,当条件满足时,组态监控画面进行提示:煤气回收条件满足,同时声光报警器报警,岗位人员听到报警后,通过点击组态画面或是操作台回收按钮进行煤气回收。为了能够及时进行煤气回收,将手动回收煤气修改为全自动回收煤气,即通过修改PLC控制程序,当煤气回收条件满足时,系统自动进行煤气回收,这样不但降低了岗位工人的劳动强度,而且平均每炉可以多回收煤气5秒钟。
(5)转炉煤气是有毒的气体,安全是首要问题,在回收过程中由于转炉吹炼过程中意外情况的出现,转炉煤气回收条件会出现波动。由于转炉煤气回收是三通阀和水封阀相互配合的过程,在全自动回收过程中,当煤气回收条件波动的较频繁时,控制程序有时会出现三通阀打开而水封阀关闭的情况,这样与煤气回收的控制过程完全相反,而且也非常危险容易出现安全事故。通过分析,完善控制程序,当转炉煤气回收不满足条件进行放散的时候,只要水封阀动作就要等整个动作过程全部动作完毕才可以进行下一个动作,这样就使煤气回收安全性能得到提高。
(6)转炉吹炼结束后,转炉口至煤气回收三通阀之间有很长一段距离,虽然吹炼已经结束,可是管道中的煤气依然满足回收条件,为了能够延长回收时间,将煤气回收与氧气切断阀的连锁增加50秒的延时,能够将管道中的满足条件的煤气回收到煤气柜中,这样每炉平均可以增加煤气回收时间在30秒钟。
3、经济效益与社会效益分析
(1)项目投资使用原有设备,没有增加设备,只是对程序进行优化,投资为0。
(2)经济效益计算:通过修改控制程序,该钢厂转炉煤气回收平均每炉可以多回收80秒钟,以每秒钟回收煤气17立方米,平均每天冶炼60炉,煤气每立方米0.1元计算,每天经济效益为:80×17×60×0.1=8160元.
(3)社会效益:通过程序的优化,大大降低了向大气中排放有毒气体的量,提高了空气质量。
4、结束语
该钢厂与其他钢铁企业不同,有自己本身的特点。转炉煤气回收要結合本炼钢厂转炉冶炼的实际情况进行,通过本次对转炉煤气回收进行程序优化,取得了很好的效果,不但提高了煤气回收的时间,而且降低了工人劳动强度,同时也保证了系统的安全性。
作者简介
浅析程序的优化 篇4
程序优化指的是针对同一问题的不同程序进行比较、调整或修改,将程序变为语句比较少、内存占用量比较小、运行速度比较快的程序。优化是在时间与空间上尽可能达到一种平衡,它往往要以牺牲程序的可读性或者增加代码长度为代价。一般运行速度较快的算法需要较大的存储空间,而限制程序的存储空间往往会降低程序的运行速度。目前由于硬件的发展速度很快,一般程序对于所占内存空间要求不苛刻,因为内存容量完全可以满足程序的需求量,故本文的优化主要指的是在时间上的优化。当今嵌入式技术正进入快速发展期,大多数嵌入式软件开发中对于程序的执行速度有很高的要求,本文也是从这一出发点考虑优化程序的运行速度问题。以下通过一些具体实例讨论时间效率的改进策略及方法。
1 提取公共表达式
如果相同的表达式需要多次出现,那么应该增加变量来保存这一表达式的计算结果,从而可以避免多次相同的计算,在循环中更应该这样做。如 :
这个循环每次在判断条件时都需要重复计算sqrt(n),其中还涉及到库函数的调用,无谓地耗费了系统时间,应将结果恒定的计算提取到循环外面。改进后的代码如下 :
在访问二维字符数组时,常用列下标控制内循环,好多学生会写出下面的程序段 :
在内循环处的strlen(s[i]) 对于每一行也是固定值,不应该每次内循环都计算,应将其提到内循环之前,修改如下 :
2 将结果恒定的条件判断提到循环体外部
若循环体中存在分支语句,且其条件不随循环变化,则应将其移动到循环之前,可以避免多余的重复条件的判定,尤其是循环次数很多时优化效果明显。如 :
循环中的条件成立与否是不变的,将其置于循环体内增加了判定次数,应先判定条件再循环。这个优化是从运行速度角度进行的,但代码长度增加了。改进后的代码如下 :
3 将循环体展开
当循环体语句很少且循环次数较少时,可将循环体展开变成几条顺序结构的语句,从而节约了用于循环处理的开销。若原代码如下 :
循环只进行两次,循环体只有一条语句,可将其处理为如下顺序结构 :
a[0]=b[1]; a[1]=b[2];
又如想判定a[i] 是否连续大于其后面的三个数,若用循环处理如下 :
将循环比较改为一个分支语句中的多条件判定,不仅可以省去标志变量f的使用,还免去一层循环,必定可以提高运行效率。修改如下 :
if(a[i]>a[i+1]&& a[i]>a[i+2]&& a[i]>a[i+2])
……
4 用查表代替函数调用或复杂运算
如果程序中需要频繁使用某个功能,一般人们想到的是通过函数调用来实现,但如果可以有方法比函数调用更快,那将是好的选择。可以用一种以空间换时间的方法来提高速度,这就是很多程序员惯用的查表。查表就是先将多个运算结果存到一个数组中,然后在用的时候访问相应的数组元素。以下是计算阶乘的函数 :
使用查表的思想改写后如下 :
5 尽可能用低价操作完成运算
5.1使用平方运算代替开方运算
当开方运算出现在关系表达式中时,可以用平方代替开方运算得以变通,从而免去代价更大的开方运算,尤其是开方还得调用库函数,如i
5.2用移位完成乘除运算
左移一位相当于乘以2,相反地,右移一位等价于除以2,由于移位运算的执行速度要高于乘除运算,所以在需要进行乘除法的时候可以使用移位运算实现。如 :x=x*8; y=y/16;
可改为 :x=x<<3; y=y>>4;
若某个量 乘以或除 以2n,均可直接用移位法代替。如果是乘以任意整数,可以用移位与加减法配合得到结果,如 : n=n*9 ; 可改为 :n=(n<<3)+n ;
5.3将连除用乘法实现
除法在整数的运算中是最慢的,其运算时间相当于加法运算的28倍,乘法运算的21.5倍,故应尽量避免。如果是连除,可以将若干次除法的分母相乘,但由此可能会引起相乘时溢出的副作用,所以只能是在估计乘积不溢出时这样来处理。如: m = i / j / k;可改为m = i / (j * k) ;
5.4用指针访问数组
数组元素的引用有指针法和下标法两种,指针法方便灵活,数组法直观易懂,但经编译后用指针法比用下标法生成的目标程序短且效率高。若使用下标法,每次循环都要用数组起始地址与元素下标进行运算得出元素地址,然后访问对应元素。而指针法是用一个指针指向数组首元素,在循环中依靠指针下移指向每个元素对其进行访问,主要就是一个指针变量增1的简单运算。相比之下,显然指针法对于元素地址的计算要快得多。下面是一个典型的指针访问数组的函数。
5.5 减少循环层数、巧妙安排内外层循环
循环的层数越多时间复杂度越大,在复杂问题中,应尽可能将循环层数降到最少。在多层循环嵌套的程序中,内层循环开销要比外层大得多,所以次数少的尽量安排为外循环,次数多的尽可能安排到最内层,以减少内层循环的执行次数。
在杨辉三角形计算问题中第一列与对角线元素均为1,以下两种程序段都可以实现这个要求,显然单循环效率要高得多,而且还不需要多次的条件判定。
若题目要求用三个一位数构造出三位数,将三位数奇数中任两位相等的数输出,这个问题需要用到三层循环,控制百位数的变量bai从1取到9,控制十位数的变量shi从0取到9,控制个位数的变量ge从1取到9且为奇数,按照上述方法可用ge作为最外层循环控制变量,bai控制第二层,shi控制最内层,调整后的程序段如下 :
6 总结
每一个热衷学习程序设计的人都应该了解程序优化的一些常用方法和技巧,想要从事相关工作的人员更应该深入学习和研究各种优化手段。本文介绍的这些方法有可能会使降低程序的可读性,出现错误时调试难度会增加,但有一失必有一得,换来的是程序效率的提高。
摘要:学习程序设计的基础是掌握程序设计方法,进而可以自主完成算法的设计,在这一阶段应多角度考虑问题,尽可能思考出一个问题的多种解法,这样有利于开阔编程思路。在这多种解法中,对算法主体结构应分析其时间及空间复杂度,从中选出效率比较高的算法。在一种解法的具体实施过程中,也应对其深入分析进而优化得到运行效率较高的算法。文章通过若干实例论述了程序优化的部分方法,可以为教师进行算法设计或程序设计类课程的教学提供参考,也可以为学生或自学者深入学习程序设计提供指导。
程序的优化 篇5
一般数据分页方式有:
2.1.1、客户端(应用程序或浏览器)分页
将数据从应用服务器全部下载到本地应用程序或浏览器,在应用程序或浏览器内部通过本地代码进行分页处理
优点:编码简单,减少客户端与应用服务器网络交互次数
缺点:首次交互时间长,占用客户端内存
适应场景:客户端与应用服务器网络延时较大,但要求后续操作流畅,如手机GPRS,超远程访问(跨国)等等。
2.1.2、应用服务器分页
将数据从数据库服务器全部下载到应用服务器,在应用服务器内部再进行数据筛选。以下是一个应用服务器端Java程序分页的示例:
List list=executeQuery(“select * from employee order by id”);
Int count= list.size;
List subList= list.subList(10, 20);
优点:编码简单,只需要一次SQL交互,总数据与分页数据差不多时性能较好。
缺点:总数据量较多时性能较差。
适应场景:数据库系统不支持分页处理,数据量较小并且可控。
2.1.3、数据库SQL分页
采用数据库SQL分页需要两次SQL完成
一个SQL计算总数量
一个SQL返回分页后的数据
优点:性能好
缺点:编码复杂,各种数据库语法不同,需要两次SQL交互。
oracle数据库一般采用rownum来进行分页,常用分页语法有如下两种:
直接通过rownum分页:
select * from (
select a.*,rownum rn from
(select * from product a where company_id=? order by status) a
where rownum<=20)
where rn>10;
数据访问开销=索引IO+索引全部记录结果对应的表数据IO
采用rowid分页语法
优化原理是通过纯索引找出分页记录的ROWID,再通过ROWID回表返回数据,要求内层查询和排序字段全在索引里。
create index myindex on product(company_id,status);
select b.* from (
select * from (
select a.*,rownum rn from
(select rowid rid,status from product a where company_id=? order by status) a
where rownum<=20)
where rn>10) a, product b
where a.rid=b.rowid;
数据访问开销=索引IO+索引分页结果对应的表数据IO
实例:
一个公司产品有1000条记录,要分页取其中20个产品,假设访问公司索引需要50个IO,2条记录需要1个表数据IO。
那么按第一种ROWNUM分页写法,需要550(50+1000/2)个IO,按第二种ROWID分页写法,只需要60个IO(50+20/2);
2.2、只返回需要的字段
通过去除不必要的返回字段可以提高性能,例:
调整前:select * from product where company_id=?;
调整后:select id,name from product where company_id=?;
优点:
1、减少数据在网络上传输开销
2、减少服务器数据处理开销
3、减少客户端内存占用
4、字段变更时提前发现问题,减少程序BUG
5、如果访问的所有字段刚好在一个索引里面,则可以使用纯索引访问提高性能。
缺点:增加编码工作量
由于会增加一些编码工作量,所以一般需求通过开发规范来要求程序员这么做,否则等项目上线后再整改工作量更大。
如 果你的查询表中有大字段或内容较多的字段,如备注信息、文件内容等等,那在查询表时一定要注意这方面的问题,否则可能会带来严重的性能问题。如果表经常要 查询并且请求大内容字段的概率很低,我们可以采用分表处理,将一个大表分拆成两个一对一的关系表,将不常用的大内容字段放在一张单独的表中。如一张存储上 传文件的表:
T_FILE(ID,FILE_NAME,FILE_SIZE,FILE_TYPE,FILE_CONTENT)
我们可以分拆成两张一对一的关系表:
T_FILE(ID,FILE_NAME,FILE_SIZE,FILE_TYPE)
T_FILECONTENT(ID, FILE_CONTENT)
程序的优化 篇6
所以高中阶段的写作教学,应该化整为零,优化程序,步步攻坚,完成整合。
一、激活体验,养成写日记的习惯
如果能在学生时代写上几本日记,作文水平就能得到很大提高。因为日记是有感而发,是个人化的体验。这样的体验最真实,所以最感人,也最有生命的厚度。
二、课外阅读,要写读后随笔
所谓开卷有益,毕竟中学生生活中个人体验有限,书中特别是经典文学中包含着浓重的文化气息、深厚的思想内涵、强烈的生命意识。只要读书,定然心有所感,不妨以随笔的形式记下来——写下所有的思考感受。只有落实到笔下,才能沉淀为个人的体验,才能真正读有所得。
而读书,要读原著。那些所谓的二手文化,都经过了个人化的加工,有太多的个人色彩,读起来如同吃着别人嚼过的馒头——或许挡饱,但干涩无味,更无法咀嚼,只好囫囵吞枣全盘他化。于是,文学失去了个性,自己也失去了阅读的能力。所以,经典要靠自己去读,读了并有所感,写下来,就是自己的文学。
三、见缝插针,创造练笔机会
前两点说的是课下功夫,在课堂上,在新课学习过程中,也可见缝插针,给学生创造练笔的机会。
比如,在《鸿门宴》的教学结尾,可留下这样的问题:“有人说,成者王侯败者寇,坐观成败论英雄。你同意这一观点吗?请写一篇短文,谈谈你心中的英雄。”
再如,《我与地坛》中有这样一句话“死是一件不必急于求成的事,死是一个必然会降临的节日。”可以让学生即兴表达——中外经典中有很多关于生和死的名句:“人固有一死,或重于泰山,或轻于鸿毛”;“人生自古谁无死,留取丹心照汗青”;“生当作人杰,死亦为鬼雄”;“未知生,焉知死”;“向死而生”;等等。读了这些材料,请学生写一段文字,谈谈对文中这句话的理解。
四、整散结合,写作步步攻关
前文都是说,怎么样利用点滴的时间,调动情感与生命的体验,让书面表达成为一种生活,来提高学生的写作能力。但是,高考作文的写作,不是片段的情感体验,也不是精彩短文的简单组合,它是一系列的程序化的过程,是一个紧密结合的完全的整体。
所以,高考作文的写作,要化整为零,分成审题立意、文体特征、结构安排、材料运用、论证方法、人物刻画、哲理情感和文采训练等环节,分别进行练习。当然,教师在写作教学中还要化零为整,让学生写作整篇的文章,所谓整散结合,形成完整的写作教学程序。
这一方法,可在教学中进行尝试。以下就谈一下对审题立意和人物刻画两个方面的教学环节的处理。
具体到对学生进行课堂写作指导,教师选用的材料要新。材料新才吸引人,让学生关注,才更能激发学生的思维。在让学生耳目一新的同时,学生思考得会更活泛、更深入。如,练习材料作文的审题立意,可选用这样一首散文诗:
猫生病了,老鼠大声朗诵诗集,并修剪盆花;
猫生病了,老鼠慢慢刷牙洗脸,并打扫厨房;
猫生病了,老鼠倚在窗边欣赏夜色,并对流星许愿。
猫生病了,老鼠也病了,
它说:“我还是习惯那种时时紧张、处处小心、夜夜逃亡的生活。”
午夜,我听到老鼠在叹息,且不再读诗了。
虽然这一环节在整堂课中用时不多,但学生思维活跃,入题快,立意也深。有几个题目是这样拟的:《逍遥死》《不能没有你》《老鼠的幸福生活》《与猫共舞》。
材料也可以从经典中翻新。如,刻画人物形象、描写人物的心理活动的练习,可给学生出这样的题目:
“三顾茅庐”的故事众所周知,假设刘关张寻访的人才不是诸葛亮,是诸葛亮的好友庞统(此人相貌极丑,却也有经天纬地之才,刘备、孙权都对他不重用,只因他相貌怪异,刘备在张飞与孔明的推荐下才对其重用)。刘关张在“两顾”不见,第三次终于见到庞统,却也是在程门立雪多时的情况下。在见到庞统的一刻,这四人各自会有怎样的心理活动和表现?请学生从其中一人的角度,描写这个人物。
这一环节的设计,从当时学生的课堂表现来看,效果不错。但是,如果能够和阅读相结合,让学生先读《三国演义》中的相关环节,然后再练笔,效果就更好了。
汉字造字程序优化的研究与实现 篇7
日常工作中处理的文字很多, 有些字是各输入法打不出来的, 这就需要通过造字程序来造字解决[1]。 专用字符编辑程序是Windows系统自带的造字程序, 该程序能够帮你造出字符。 当你的电脑字库里没有某个字, 而你十分需要这个字的时候, 就可以用到专用字符编辑程序。 这个程序适用于警察部门、 计生部门等经常遇到生僻字的单位[1], 也适用于书法、美术等专业人士定义和设计一套特定的字体。 如果需要自定义一套自己的字体, 就必须利用造字程序逐个设计汉字。 目前专用字符编辑程序提供了一些工具来设计汉字, 但在一些细节处理上仍不能满足要求, 例如旋转, 只能旋转90 度, 180 度, 270 度, 水平翻转及垂直翻转, 不能根据用户需求旋转指定的角度, 例如5 度, 10 度等。 现在原有基础上设计出3 个工具, 分别是笔划放大, 笔划缩小及笔划旋转, 让使用者在设计汉字时可以更加灵活和细致地调整每一个笔划, 这些工具很适应设计者的需求, 同时减去反复的擦除修改工作, 使得设计工作更加便捷和高效。
2 造字程序
Windows系统提供了一个专用字符编辑程序, 通过它可以设计出所需要的文字, 尤其是遇到一些输入无法输出的生僻字的应用场合, 特别有用。 可以通过程序中提供的铅笔工具、刷子工具、 橡皮工具等, 逐个小格, 逐个笔划地设计出需要的汉字, 也可以通过参照已有汉字, 快速地设计出所需要的汉字, 设计完成后就可以把它复制应用到我们需要该汉字的文档资料中[2], 如图1 所示。
3 造字程序的优化
当需要设计出一些风格独特的自定义字体时, Windows自带的专用字符编辑程序就会显得有些不足。 它必须通过设计每小格, 每笔划方式来设计相应的汉字, 通过不断反复的笔划填充和擦除, 工作非常繁琐复杂。 经过优化后的造字程序, 使得设计各个笔划时简单化, 可以对笔划根据需要进行放大, 缩小, 旋转指定的任意数值, 或者可以先用画笔设计出小笔划, 此时无需考虑该笔划的大小, 角度, 然后再通过新增的3个工具, 对该笔划进行放大、 缩小以及旋转, 直至符合设计者的需要, 减去了反复的擦除修改工作, 使得工作更加便捷高效, 从而快速设计出各种独特风格的汉字。 如图2 所示。
3.1 笔划放大
启动汉字点阵设计程序, 选择 “文件———新建”, 从而新建一个文件, 通过画笔, 刷子工具设计出汉字 “恩”, 如图3所示。 从图3 中看出, 这个 “恩” 字的左边一个侧点笔划偏小, 使得整个汉字缺乏平衡, 若通过橡皮擦除修改, 会耗费不少的时间, 若设计一系列汉字, 这种误笔情况频频出现的话, 就需花费更多的时间去处理, 工作效率非常低下。 这里提供一个笔划放大工具可以大大简化这类操作。 具体操作方法如下: 选中 “选择” 工具, 利用拖动的方法选取该笔划, 点击 “放大” 工具, 所选中的笔划就沿着边沿放大了一格, 得到的结果如图3 所示。
3.2 笔划缩小
启动汉字点阵设计程序, 选择 “文件———新建”, 从而新建一个文件, 通过画笔, 刷子工具设计出汉字 “恩”, 如图4所示。 从图4 中看出, 这个 “恩” 字的左边一个侧点笔划偏大, 使得整个汉字缺乏平衡, 若通过橡皮擦除修改, 会耗费不少的时间, 若设计一系列汉字, 这种误笔情况频频出现的话, 就需花费更多的时间去擦除修改, 工作效率非常低下。这里提供一个笔划缩小工具可以大大简化这类操作。 具体操作方法如下: 选中 “选择” 工具, 利用拖动的方法选取该笔划, 点击 “缩小” 工具, 所选中的笔划就沿着边沿缩小了一格, 得到的结果如图4 所示。
3.3 笔划旋转
启动汉字点阵设计程序, 选择 “文件———新建”, 从而新建一个文件, 通过画笔, 刷子工具设计出汉字 “恩”, 如图所示。 从图5 中看出, 这个 “恩” 字的最后一个笔划角度不对, 导致整个汉字美观下降, 若通过橡皮工具擦除, 再用画笔补上这一笔, 会耗费不少的时间, 若在设计一系列汉字, 这种误笔情况频频出现的话, 就需花费更多的时间去处理, 工作效率非常低下。 这里提供一个笔划旋转工具可以大大简化这类操作。 具体操作方法如下: 选中 “选择” 工具, 利用拖动的方法选取最后一笔, 选择 “旋转” 工具, 程序弹出一个输入对话框, 如图5 所示。 在输入对话框中输入一个数值 (0—360, -360--0) , 该数值表示将要旋转的角度, 正数表示逆时针旋转, 负数表示顺时针旋转。 这里输入15, 再点击“ 确定” 按钮, 所选中的笔划就按逆时针方向旋转了15 度, 得到的结果如图5 所示。
4 结语
汉字造字程序的优化, 新增的这几个造字工具很符合设计者的需要, 让使用者可以更灵活便捷地设计和修改汉字的每一个笔划, 省去很多繁琐的擦除修改操作, 尤其当需要设计大量的汉字时, 可以节省很多宝贵的时间, 大大提高了工作效率。
参考文献
[1]陈其昌.汉字打印机设计原理[M].华中理工大学出版社, 1995, 2:13-15.
[2]汉字编码字符集 (基本集) 64点阵字型第2部分:黑体[M].中国标准出版社, 1900.
[3]阙向红.VISUAL BASIC程序设计教程[M].清华大学出版社, 2006.
数控车床零件加工程序的优化 篇8
可调式凸轮控制器零件度盘(以下简称度盘),根据图纸要求先分析一下工艺。编制数控机床加工零件程序主要是处理一系列的工艺问题。一般普通机床上零件加工的工艺,都是操作工人自行来决定,机床加工的切削用量、走刀路线、工序内的工步安排等。而数控机床是通过运行程序进行加工的。因此加工中的所有工序、工步、每道工序的切削用量、走刀路线、加工余量,以及所用刀具的尺寸、类型等都要预先确定好并编入程序中。这就要求由编程人员首先编出一个合格的工艺, 要达到此要求必须对数控机床的性能、特点和应用、切削规范和刀具系统非常熟悉,否则就无法做到全面、细致地考虑零件加工全过程,也无法正确、合理地确定零件加工程序。根据上图其加工工艺主要包括:合理选择切削用量、工序划分及安排、走刀路线、加工顺序等。
1.切削用量的选择
切削用量的选择:数控加工零件时,其切削用量都预先编到加工程序里面,在正常的情况下是人工不允许变动的。只有在试切削或是出现异常情况时, 才允许通过速度调节或是手摇轮调节其切削用量。因此程序中所选的切削用量一般是最合理、最优化的。这样才可以提高其数控加工机床的加工精度、刀具寿命和生产率,降低加工成本。
从实际生产中发现,影响数控加工切削用量的主要因素有:
(1)机床选用。切削用量的选择必须在机床主传动功率、进给传动功率、主轴转速范围之内。 机床刀具工件系统的刚性是限制切削用量的重要因素。选择合理的切削用量, 避免机床—刀具—工件系统发生较大的振动,影响加工。尽量选稳定性好、热变形小、刚性好的数控机床,适当加大切削用量。
(2)车刀选用。车刀材料是影响切削用量的又一重要因素。生产中常用的刀具材料不外乎高速钢、硬质合金、陶瓷和金刚石。金刚石刀片性能最好,允许很高的切削速度,耐磨性好,硬度高,硬度随温度变化小,但价格贵。数控机床所采用的刀具多是不重磨可换刀片俗称机夹刀片,机夹刀片的材料、形状和尺寸,必须与程序中切削速度和进给量相适应并存在刀具参数里面。目前市场有许多采用新工艺制造的表面涂层刀具,增强刀具硬度、耐磨性,阻挡刀具因受热而引起的化学成分互溶。
(3)工件材料。度盘的材料是ZL104,很容易粘刀 ,影响表面精度和尺寸精度。加工工件的材料不同,所选用的刀具角度也不同。度盘加工中注意加大前角,保持切削刃锋利。同时也要注意其毛坯铸造质量和加工的切削性。
(4)冷却液(切削液)。冷却液具有冷却和润滑的作用。冷却液能带走切削过程中产生的热量,降低工件、刀具、夹具和机床的升温,减少刀具与工件的摩擦与磨损,提高刀具寿命和工件的表面加工质量。使用冷却液还能提高切削用量。冷却液使用过程必须定期更换,以防变质有异味,腐蚀机床导轨或其他零件。
2.工序划分的选择
(1)刀具的集中分序法。采用单刀多刃来分工序加工。在一次装夹中, 用同一把刀完成零件上所有可以完成的加工表面。再用第二把刀、第三把刀完成可以完成的表面。这样可以减少换刀的次数,压缩空行程时间,减少定位误差产生。
(2)粗精加工分序法。可调式凸轮控制器零件度盘生产批量较大。对于同一批零件生产安排,建议先全部进行粗加工、半精加工,最后再进行精加工,且粗、精加工之间最好先隔一段时间以使粗加工后的零件的变形得到充分地恢复, 然后再进行精加工以提高零件的加工精度。
(3)按加工部位分序法。一般是先加工大端面和大外圆进行定位,再加工小外圆端各表面及螺纹,最后加工孔。
3.确定加工路线的选择原则及加工顺序
确定加工路线。加工路线是指数控机床加工过程中刀具的运动轨迹和方向。每一道工序的加工路线的确定都是非常重要的,因为它影响零件的加工精度及表面粗糙度。其加工路线的总体划分原则为:保证加工精度及粗糙度、使得空行程最少及加工路线最短、计算也要方便。但是在加工路线的确定中还要考虑以下几点:(1)应尽量减少进、退刀时间和其他辅助时间,采用单刀多刃分工序加工即可。 (2)选择合理的进刀位置和换刀点,尽量避免沿零件轮廓法向切入和进给中途停顿,防止加工干涉。 (3)加工路线一般是先加工外圆轮廓,然后再加工螺纹和内孔。
确定加工顺序。重点是为了保证定位的可靠性,确保加工精度。夹紧时工件的刚性。一般可按以下原则来进行:(1)上道工序加工不能影响下道工序的装夹(特别是定位表面)。 (2)以相同的装夹方式或同一把刀加工的工序尽可能采用集中的连续加工,减少重复装夹、更换刀具等辅助时间。 (3)同一次安装中的加工内容,以对零件刚性影响小的内容先加工。
一年多的生产实践证明,可调式凸轮控制器零件度盘采用以上加工程序优化改进措施,大大降低工人的劳动强度,减少机床使用时间,同时也降低刀具消耗,保证产品质量,故企业获得很好的经济效益。
摘要:本文以可调式凸轮控制器零件度盘的生产加工工艺为例,为保证加工精度降低废品率提高生产效率,从不同角度分析如何对数控车床加工程序优化的问题。
程序的优化 篇9
切削用量三要素包括切削深度、进给量、切削速度,在被加工的工件材料、刀具材料和刀具几何参数确定的情况下。切削力、切削功率、刀具磨损、工件和刀具强度和刚度等均为切削深度、进给量、切削速度的函数。切削用量的选择直接影响加工质量的好坏和生产效率的高低。目前工程师在加工工艺编制方面,是通过切削用量手册、实践总结或工艺试验来选择切削用量,并不是最优的切削用量。因此,在计算机发展的今天,如何合理选择切削用量,是金属切削重要问题。编制切削用量的优化计算求解是具有工程实际意义[1,2]。
1 切削用量选取的一般原则
根据金属切削原理,制订切削用量,就是在刀具材料和几何角度确定的基础上,合理确定切削深度ap、进给量f、和切削速度v,在充分利用刀具切削性能和机床性能,保证加工质量前提下,获高生产率和低加工成本切削用量[3,4]。
基本原则,使得切削加工的生产率高,加工相同体积所用时间tm最短:
式中,dw为车削加工前毛坯直径,lw为工件切削部分长度;Δ为加工余量;nw为工件转速。
限制条件包括:
(1)刀具耐用度满足要求条件
Tp计算刀具耐用度;T设定的刀具耐用度;CT为耐用度系数。
(2)切削功率条件
Pp为计算功率;PE为机床额定功率,η为机床效率。
(3)机床进给机构强度
(4)粗糙度指标
(5)另外切削深度、进给量和切削速度的边界限制条件:
2 基于加工时间最小的切削用量选取优化求解模型与程序设计
2.1 求解模型
若采用生产率为目标函数:;设计变量为z=[z1,z2,z3]T=[ap,f,v]T。其余条件均为约束条件。则切削用量选取的最优化问题模型可以描述为(1),该模型属于含不等式约束的优化模型。切削深度ap单位为mm、进给量f单位为mm/r、切削速度v单位为m/min,
2.2 程序设计框图
本文按随机搜索方法的优化程序设计[5],建立本文问题程序如图1。
3 算例分析
下面车削加工实例分析。
3.1 具体参数
(1)加工工件:材料45,σb=700MPa,毛坯dw=70mm,加工后dm=106mm,加工长度l=280mm,粗糙度Ra=3.2μm;粗车余量为
(2)所用车刀:刀杆B×H=16mm×25mm,刀片材料硬质合金YT15,刀片厚度4.5mm,车刀角度为κr=60°,κr′=10°,γ0=12°,α0=8°,λs=0°,rs=1mm。
(3)所用车床:CA6140:其主轴允许功率PE=5.9kW,最大转速nmax=230r/min,最大切削功率PE=5900W,切削效率η=0.8最大进给力为Fx=3530N,进给量范围fmax=1.59mm/r,fmin=00.82mm/r,转速范围为nmax=1200r/min,nmin=11.4r/min,切削深度:ap,max=7mm。
由切削用量手册:
优化模型(1)描述为(2):
由于粗车不必限制g4(z),且实际余量为Δ=4mm,综合
按随机优化方法
已经满足:(4)~(10),7个条件;只判断(1)~(3)
则:问题转化为:
取NN=500000,并考虑了ap=2mm,ap=4mm情况,列出表1~3,分别为不同切削用量的优化结果。表明粗车,若ap=4mm,f=1.57mm/r,v=35.35m/min,在保证约束条件下,生产率是最高的。此时切削时间为tm=1.112min。
若假设一次精车完成,其他参数不变,此时fmin=0.16mm/r。列出计算的前10个随机优化结果。
显然是ap=5mm,f=0.16mm/r,v=147.74m/min,生产率是最高的。此时切削时间为tm=2.082min。
4 结论
本文从切削原理出发,应用随机优化原理,提出了在满足被加工材料、刀具和机床等限定条件情况下的,加工时间最小的较为合理的切削用量的优化计算选择方法。通过实例分析车削加工的问题。给出了相应的结果。这种方法为高效切削加工问题的实现提供条件。
参考文献
[1]陈日曜.金属切削原理(第2版)[M],北京:机械工业出版社,2002.
[2]艾兴,肖诗纲.切削用量简明手册(第3版)[M],北京:机械工业出版社,1994.
[3]赵健.金属切削用量最优化值数学模型的建立[J],机械制造,2008,46(531):55~56.
[4]任小平,刘战强,万熠等.切削用量优化模型的建立及应用[J],工具技术,2010,44(15):39-42.
程序的优化 篇10
随着数控机床被广泛应用,CAD/CAM软件编程越来越广泛,手工编程仅局限于简单的零件。在数控机床螺纹的铣削加工时,采用自动编程是无法完成,但利用“宏程序”手工编程有其独特的效果。如果采用G84刚性攻丝是远远不能满足高精度、大公称直径的螺纹的要求,且手工编程有利于精度的调整。数控机床具有的宏程序功能,远远没有被用户掌握和使用。如果能熟练掌握数控加工和系统原理,对用户宏程序进行优化,不仅数控加工程序简单,加工时间短,且精度更易控制,数控技术人员更应该熟练掌握和应用好“宏程序”。
1 数控用户宏程序原理
1.1 螺纹的加工方法
1)螺纹的车削加工
在数控车床上加工螺纹,在位置控制、速度控制和精度控制能得到很好的保证,但是只用于回转体和易装夹、易找正的工件。其他箱体等难以装夹,难以找正的不规则工件,就不能保证螺纹加工的有效性。
2)刚性攻丝
在数控铣床上采用的刚性攻丝,只能对一些公称直径较小的螺纹,精度要求不高的螺纹,且是标准螺纹。其精度等级受到丝锥或板牙的限制,且尺寸也有一定的局限性,否则机床的力矩和刀具装夹都不能满足要求。
3)螺纹的铣削加工
螺纹的铣削加工具有的优点:
(1)大型零件上的螺纹加工,在加工好螺纹底孔后不用搬移的零件;
(2)非回转体且难装夹和找正的零件上的螺纹;
(3)非标准的螺纹加工,没有相对应的丝锥或板牙,螺纹铣刀都可以刃磨和修正;
(4)新产品试制时没有相应的丝锥或板牙,并且在试制过程中需要不断的更改,螺纹铣削能满足更改的要求;
(5)高精度螺纹只能应用铣削的方法,通过各种补偿,能满足高精度要求。
1.2 数控铣削螺纹实现原理
1)螺纹牙型
无论是英制螺纹,还是公制螺纹,单刃螺纹铣刀加工内螺纹的螺纹牙型,如图1所示。
2)螺纹的一个螺距铣削编程
按照数控铣床加工圆弧的原理,其插补指令用G17 G02 X_Y_I_J_Z_F_;走刀轨迹如图2所示。
螺纹的单个螺距铣削编程采用单个圆弧走刀程序G17 G02 X_Y_I_J_Z_F_;走刀轨迹如图3所示。
3)螺纹的多个螺距铣削编程
多个螺距铣削螺纹编程时,可以把完整的单个螺纹,每加工一个螺纹作为一次循环,在加工中只需判断铣削螺距的深度是否达到要求。通过改变螺纹螺距的数量,按螺距个数设置为变量。
G17 G02 I_J_ZB2 F_;
G17 G02 I_J_ZB1 F_;
G17 G02 I_J_ZBn F_;走刀轨迹如图4所示。
4)程序流程图,如图5所示。
采用宏程序编程时,按其加工工艺路线确定其流程图,根据流程图实施程序的编制。
1.3 用参数化编制编程
1)多个螺距的参数模型
根据螺纹的加工原理,实现多个螺距的螺纹加工,其参数模型如图6所示。
2)循环语句程序
3)多螺距的参数化编程
1.4 铣削螺纹的粗、精加工
1)螺纹零件的加工工艺要求:粗加工和精加工。参数与工艺如图7所示。
2)螺纹零件的加工粗加工、精加工程序
2 数控用户宏程序螺纹铣削加工
加工如图8所示内螺纹,毛坯初孔:Φ39,毛坯为110mm×110mm×18mm合金铝材,底孔(小径)为Φ40.3760+0.3,加工设备是KVC-1050A加工中心,采用平口钳装夹。
2.1 加工工艺分析
1)零件图分析
如图8所示,要在一工件材质为合金铝,
毛坯尺寸为110mm×110mm×18mm上加工图示的螺纹,
精度等级为6H,螺距为1.5mm。
2)编程思路
此零件加工的内容为内螺纹,可以将铣螺纹分为多个螺距铣螺纹的组合。每加工一个螺距作为一次循环,在加工中只需判断螺距的深度是否达到要求。如图4所示,为刀具刀位点运动的轨迹,根据精度要求分成几个点,当刀具到达A点后,进行X-Y面的整圆加工,再到下一点后,再进行整圆加工,直到B点完成整圆加工即可,如果精度达不到要求,可以再细分。坐标设计与基准设计如图9所示。
(1)参数设定说明
#1 42.0螺纹公称直径;
#8 1.0螺纹起点Z坐标值;
#2-20.0螺纹终点Z坐标值;
#3 13.5刀具回转半径。
(2)刀具的选择
选择镗孔刀、倒角刀和螺纹刀具,刀具编号如为:
T15—45°倒角刀;
T16—镗刀;
T17—单刃螺纹铣刀,回转半径13.5mm,螺纹刀的刀具系统如图10所示。
(3)加工工艺步骤
按照数控加工工艺安排加工路线,采用倒45°角—T15号刀;
毛坯初孔加工到Φ39,镗孔小径为Φ40.3760+0.3—T16号刀;
铣削螺纹—T17号刀(分三次加工:粗加工、半精加工、精加工)。
(4)加工工艺参数
单边加工余量=(42-40.376)/2=0.812,按三次加工分配加工余量,具体余量的分配为:第一次加工余量为0.512,粗加工;第二次加工余量为0.20,半精加工;第三次加工余量为0.10,精加工。
2.2 螺纹铣削加工程序的优化
1)螺纹零件的加工主程序:(FANUC系统)
2)螺纹零件的加工宏程序
2.3 螺纹零件加工参数与效果
按加工余量设置参数的变量,完成粗加工、半精加工和精加工。参数与效果图如图11~图13所示。
3 结论
依据数控加工原理,对原有程序进行参数化优化设计,即可通过不同的赋值加工形状相同而尺寸不同的螺纹,也可在此基础上作相应更改,加工外螺纹、内外圆角铣削等。宏程序编程中最为关键的问题是变量的选择,变量间的相互关系。找出加工对象结构的规律性,恰当选择变量,选择合理参数,可以很方便的通过函数、表达式对刀具轨迹进行描述,实现循环进给,即对宏程序的合理优化。
参考文献
[1]谢骐邓,奕彭浩,舸螺.纹数控加工方法及技巧[J].工具技术,2006,7.
[2]蔺小军,单晨伟,史耀耀.螺纹数控铣削加工技术研究[J].制造业自动化.2010,1.
程序的优化 篇11
1 现状
在实际工作中使用者往往对使用后的诊疗器械、器具和物品不进行初步的分类、处理, 而直接用包布将所有的物品 (包括可重复使用的诊疗器械、器具和物品, 一次性使用物品, 废弃物, 甚至针头、刀片等锐利器具) 包好放入回收整理箱中, 对被朊毒体、气性坏疽及突发原因不明的传染性病原体污染的诊疗器械、器具和物品也没有按“操作规范”要求进行正确处理。这样就造成CSSD工作人员在去污区进行清点核对时必须将包裹好的包布重新打开, 既增加工作量、降低工作效率, 又增加了污染环节及病原微生物扩散的机会, 而污染的敷料、锐利器具则加大了CSSD工作人员职业暴露的风险性。
2 优化管理
2.1 与临床使用科室充分沟通, 可组织全院医务人员学习《医院消毒供应中心清洗消毒及灭菌技术操作规范》, 让临床使用者掌握使用后的诊疗器械、器具和物品的初步分类、处理的知识, 同时认识到其重要性, 以取得使用者的配合。
2.2 制订临床科室使用后诊疗器械、器具和物品的初步处理流程, 为科室正确处理污染的诊疗器械、器具和物品提供专业的指导, 可在临床科室的处置室贴上使用后物品初步处理工作流程的温馨提示图 (见图1) 。
【程序的优化】推荐阅读:
嵌入式程序的优化08-30
程序优化02-27
系统程序优化08-09
宏程序优化02-06
程序运行优化设计研究08-04
ARM程序设计优化09-07
国家发展改革委、住房城乡建设部关于优化完善城市轨道交通建设规划审批程序的通知-国家规范性文件06-13
验证的程序01-28
立案的程序07-26
简易程序转为普通程序在司法实践中的变异03-02