强华pcb数控钻孔机机长度检测,测不到是怎么回事

森玛德分享:如何保证数控钻孔机的精准度要求
  数控钻孔机的精度要求也是很多钻孔加工件客户的考核标准,一些要求高精度的加工件很多厂家都做不了,而本司的钻孔机的精度可以控制在0.02mm以内,下面给大家解析一下怎么样才能保证数控钻孔机的精度要求。
滑轨丝杆的固定,这个也是控制整个钻孔机的有效行程范围的主要配件,滑轨丝杆固定的时候一定要拧紧螺丝,也需要进行百分表测量精度确保滑轨丝杆的精准度,这里一定要用品牌的滑轨丝杆,切勿假货,本身的配件都不标准,又如何保证钻孔机的精准度呢?
钣金与机座的固定,钣金是为了固定伺服电机而制,这类的钣金固定座都是通过普通的摇臂钻床进行加工的,在制作钣金与机座的过程中打孔攻丝需要认真仔细把误差降低到最小,在装配的时候测量标准与拧紧螺丝。
伺服电机的按照配备,很多钻孔机厂家没更换成伺服电机而导致公差而很大,这种装配步进电机的钻孔机误差大、容易损害,一般应用于工程打孔,误差要求不高的,所以一般这种钻孔机售价不会很高。
  上述的三大因素也是数控钻孔机本身产生的精度要求,只要做到以上几点要素就可以减少数控钻孔机的误差,但精度要求为零的几乎不可能,所以客户选择需要认真考虑。
  以上就是森玛德的技术人员为大家介绍的自动钻孔机的性能优势,主要有以上两点,作为优质的数控加工中心厂家,我们主要的产品有:高速钻攻机、石墨机、高速石墨机、高速石墨加工中心机、高速龙门石墨加工机、高速数控雕铣机等;可登陆我们的官网:http://www.dg-smd.com解更多相关资讯
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点集成电路数控系统提高了数控系统的可靠性
时间: 14:50:11
中图分类号:TP273学科分类号:080202&&&&&&&&论文编号:-S119&&&&&&&&硕士学位论文&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&研究生姓名学科、专业研究方向指导教师&&&&&&&&郭钊机械电子工程机电控制及自动化游有鹏教授&&&&&&&&南京航空航天大学&&&&研究生院机电学院&&&&二О一二年一月&&&&&&&&&&&&NanjingUniversityofAeronauticsandAstronauticsTheGraduateSchoolCollegeofMechanicalandElectricalEngineering&&&&&&&&ResearchandDevelopmentofPC-basedCNCforPCBDrillingMachine&&&&&&&&AThesisinMechanicalandElectricalEngineeringbyGuoZhaoAdvisedbyProf.YouYoupengSubmittedinPartialFulfillmentoftheRequirementsfortheDegreeofMasterofEngineering&&&&&&&&January,2012&&&&&&&&&&&&承诺书&&&&本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本人授权南京航空航天大学可以有权保留送交论文的复印件,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文。(保密的学位论文在解密后适用本承诺书)&&&&&&&&作者签名:日期:&&&&&&&&&&&&南京航空航天大学硕士学位论文&&&&&&&&摘&&&&&&&&要&&&&&&&&随着消费类电子产品更新换代越来越快,PCB市场需求旺盛,对PCB数控钻孔机等相关制造设备的性能要求不断提高。数控系统作为PCB数控钻孔机核心部分,直接影响钻孔机的加工精度、加工效率及可靠性。本文对PCB钻孔机数控系统研发中的若干关键技术展开研究,并开发出一套基于PC的PCB钻孔机数控系统样机。为了便于实现数控系统的开放,采用“PC+运动控制卡”的数控系统结构。通过分析PCB钻孔机数控系统的需求,规划了系统的总体结构,设计了系统硬件,并重点对上位机软件和运动控制DSP软件各主要模块进行了详细设计开发。优化PCB钻孔走刀路径可以缩短PCB钻孔走刀定位时间,提升钻孔加工效率。为此,建立了PCB钻孔最佳走刀路径模型,并提出一种基于聚类分区的蚁群算法,有效解决了PCB钻孔走刀路径优化问题,显著提高了优化效率,具有良好的工程应用价值。为提高机床运动平稳性,保证PCB高速钻孔加工的精度,将S曲线加减速方法应用于PCB钻孔机数控系统,给出了具体实现方法;同时还提出了一种分数次幂多项式加减速算法,能够保证加减速过程中加加速度的连续,进一步改善系统的运动平稳性。在钻孔机上对开发的PCB钻孔机数控系统进行了测试,验证了路径优化算法和加减速控制算法以及系统样机的有效性和正确性。&&&&&&&&关键词:印刷电路板,钻孔机,数控系统,路径优化,数字信号处理器,加减速规划&&&&&&&&I&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&ABSTRACT&&&&Withthereplacementofconsumerelectronicproductsfasterandfaster,PCBmarketdemand,andmaketheperformancerequirementsofPCBdrillingmachineandotherrelatedPCBmanufacturingequipmentcontinuetoincrease.CNCisthecorepartofPCBdrillingmachine,anddirectlyaffectsthemachiningaccuracy,processingefficiencyandreliabilityofthedrillingmachine.Therefore,thepaperhasresearchedonanumberofkeytechnologiesindevelopmentofCNCforPCBdrillingmachineanddevelopedaprototypeofPC-basedCNCforPCBdrillingmachine.InordertoimprovetheopeningofCNC,usethePC+motioncontrolcardarchitecturefortheCNC.ByanalyzingtherequirementsofCNCforPCBdrillingmachine,plannedtheoverallstructureandthehardwareofthesystem,anddesignedthemainmodulesofthehostcomputersoftwareandmotioncontrolDSPsoftwareindetail.PCBdrillingtoolpathoptimizationcanreducethePCBdrillingtoolpathorientationtimeandincreasedrillingefficiency.Tothisend,establishedabesttoolpathmodelofPCBdrilling,andproposedanantcolonyoptimizationalgorithm,whichisbasedonclustering.ThealgorithmisaneffectivesolutiontothePCBdrillingtoolpathoptimization,andcanimprovetheoptimizeefficiencysignificantly.Toimprovethemachinetoolmotionstabilizationandensuretheaccuracyofhigh-speedPCBdrilling,theS-curveaccelerationanddecelerationmethodisappliedtotheCNCforPCBdrillingmachine,giventhespecificimplementation.Inaddition,thepaperproposedafractionalpowerpolynomialaccelerationanddecelerationalgorithm,whichcanensurethecontinuityofjerkintheprocessofaccelerationanddecelerationandfurtherimprovethesmoothmotionofthesystem.TheCNCdevelopedforPCBdrillingmachinewastestedinadrillingmachine,andprovedtheprocessingpathoptimizationalgorithm,theaccelerationanddecelerationcontrolalgorithmandthesystemprototypetobeeffectiveandcorrect.&&&&&&&&Keywords:Printedcircuitboard(PCB),drillingmachine,computernumericalcontrol(CNC),pathoptimization,digitalsignalprocessor(DSP),accelerationanddecelerationplanning&&&&&&&&II&&&&&&&&&&&&南京航空航天大学硕士学位论文&&&&&&&&目&&&&&&&&录&&&&&&&&第一章绪论..........................................................................................................................................11.1数控系统的发展历程..............................................................................................................11.2基于PC的数控系统结构.......................................................................................................21.3PCB数控钻孔机的发展与现状..............................................................................................31.3.1国外PCB数控钻孔机的发展现状.............................................................................31.3.2国内PCB数控钻孔机的发展.....................................................................................31.4PCB数控钻孔机发展趋势......................................................................................................41.5研究目的及内容......................................................................................................................51.5.1研究目的.......................................................................................................................51.5.2研究内容.......................................................................................................................5第二章系统总体结构设计...................................................................................................................72.1需求分析.................................................................................................................................72.2系统总体结构设计..................................................................................................................72.3系统硬件规划..........................................................................................................................92.3.1运动控制卡...................................................................................................................92.3.2I/O接口卡...................................................................................................................122.3.3模拟量接口卡.............................................................................................................132.4系统软件规划........................................................................................................................142.5本章小结...............................................................................................................................14第三章上位机软件设计.....................................................................................................................153.1软件开发工具........................................................................................................................153.2上位机软件总体结构............................................................................................................153.3文件接口模块........................................................................................................................163.3.1文件格式.....................................................................................................................163.3.2文件翻译.....................................................................................................................173.3.3重孔检查与去除.........................................................................................................203.4钻孔路径优化模块................................................................................................................213.4.1建立最佳走刀路径模型.............................................................................................213.4.2最佳走刀路径的求解方法.........................................................................................22&&&&&&&&III&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发3.4.2.1TSP问题...........................................................................................................223.4.2.2基本蚁群算法..................................................................................................223.4.2.3基于聚类分区的蚁群算法..............................................................................243.4.3走刀路径优化的软件实现.........................................................................................263.5刀具管理模块........................................................................................................................293.5.1刀具参数管理.............................................................................................................303.5.2刀具长度检测.............................................................................................................303.5.3自动换刀.....................................................................................................................323.6钻孔加工模块........................................................................................................................333.7本章小结...............................................................................................................................35第四章运动控制DSP软件设计.......................................................................................................374.1软件开发工具........................................................................................................................374.2DSP软件总体结构................................................................................................................374.3DSP与上位机通信交互........................................................................................................384.3.1双口RAM的划分.....................................................................................................384.3.2通信协议.....................................................................................................................384.4RTEX实时以太网通信.........................................................................................................394.4.1RTEX通信介绍..........................................................................................................394.4.2RTEX通信的实现......................................................................................................404.5DSP主函数流程....................................................................................................................414.6DSP钻孔加工模块................................................................................................................434.6.1DSP与上位机钻孔数据传递.....................................................................................434.6.2钻孔加工处理.............................................................................................................434.6.3快钻功能实现.............................................................................................................444.7本章小结...............................................................................................................................45第五章PCB数控钻孔机的加减速控制............................................................................................465.1常用加减速方法....................................................................................................................465.1.1直线加减速方法.........................................................................................................465.1.2指数加减速方法.........................................................................................................465.2S曲线加减速方法.................................................................................................................475.2.1S曲线加减速原理......................................................................................................475.2.2算法讨论.....................................................................................................................50&&&&&&&&IV&&&&&&&&&&&&南京航空航天大学硕士学位论文5.2.3算法实现.....................................................................................................................525.3分数次幂多项式加减速方法................................................................................................525.3.1加减速数学模型的建立.............................................................................................535.3.2算法讨论.....................................................................................................................565.3.3算法实现.....................................................................................................................585.4算法仿真与分析....................................................................................................................585.5本章小结...............................................................................................................................60第六章试验验证及分析.....................................................................................................................616.1试验平台...............................................................................................................................616.2路径优化算法验证................................................................................................................626.3加减速控制方法验证............................................................................................................656.4本章小结...............................................................................................................................67第七章总结与展望............................................................................................................................687.1全文总结...............................................................................................................................687.2研究展望...............................................................................................................................68参考文献..............................................................................................................................................70致谢..................................................................................................................................................73&&&&&&&&在学期间的研究成果及发表的学术论文...........................................................................................74&&&&&&&&V&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&图表清单&&&&图2.1系统总体结构图.................................................................................................................8图2.2上位机和DSP通信示意图.............................................................................................10图2.3工业实时以太网接口原理图...........................................................................................11图2.4开关量信号输入原理图...................................................................................................12图2.5开关量信号输出原理图...................................................................................................13图3.1上位机软件总体结构.......................................................................................................16图3.2文件翻译的程序流程图...................................................................................................18图3.3钻孔加工数据信息存储组织结构...................................................................................19图3.4重孔示意图.......................................................................................................................20图3.5重孔检查与去除程序流程图...........................................................................................20图3.6走刀定位路径示意图.......................................................................................................22图3.7孔聚类分区总体流程图...................................................................................................26图3.8K均值聚类分区程序流程图............................................................................................27图3.9子区路径优化程序流程图...............................................................................................29图3.10刀具参数管理界面.........................................................................................................30图3.11刀具长度检测装置原理图.............................................................................................31图3.12刀具长度检测控制界面.................................................................................................31图3.13刀具长度检测程序流程图.............................................................................................32图3.14换刀参数设置界面.........................................................................................................32图3.15自动换刀流程图.............................................................................................................33图3.16TDrillThread线程程序流程图.......................................................................................34图3.17钻孔加工监控界面.........................................................................................................35图4.1DSP程序开发流程...........................................................................................................37图4.2DSP软件总体结构...........................................................................................................37图4.3中断命令格式...................................................................................................................38图4.4XINT1中断处理函数流程图...........................................................................................39图4.5RTEX周期性工作的时序图............................................................................................39图4.6DSP主函数流程图...........................................................................................................41图4.7位置补偿流程图...............................................................................................................42&&&&&&&&VI&&&&&&&&&&&&南京航空航天大学硕士学位论文图4.8钻孔加工处理流程图.......................................................................................................43图5.1直线加减速的速度、加速度曲线...................................................................................46图5.2指数加减速的速度、加速度曲线...................................................................................47图5.3S曲线加减速方法............................................................................................................47图5.4S曲线加减速算法程序流程图........................................................................................52图5.5分数次幂多项式加减速方法...........................................................................................53图5.6直线加减速仿真结果.......................................................................................................58图5.7S曲线加减速仿真结果....................................................................................................59图5.8分数次幂多项式加减速仿真结果...................................................................................59图6.1双轴PCB数控钻孔机.....................................................................................................61图6.2伺服驱动器的以太网接线...............................................................................................61图6.3系统硬件连接实物图.......................................................................................................62图6.4系统人机交互界面...........................................................................................................62图6.5优化前的钻孔路径...........................................................................................................63图6.6本文提出的方法优化后的路径.......................................................................................63图6.7基本蚁群算法优化后的路径...........................................................................................64图6.8优化路径长度曲线...........................................................................................................64图6.9优化时间曲线...................................................................................................................65图6.10钻孔加工实物图.............................................................................................................66&&&&&&&&表2.1TMS320F28335外设资源..................................................................................................9表2.1(续)................................................................................................................................10表3.1NCDrill文件的坐标指令值格式.....................................................................................17表4.1双口RAM地址分配.......................................................................................................38表5.1三种加减速方法比较.......................................................................................................59表6.1算法优化效果比较...........................................................................................................64表6.2钻孔加工参数...................................................................................................................66表6.3三种加减速方式下钻孔速度比较...................................................................................66表6.4孔位精度Cpk检测结果..................................................................................................67&&&&&&&&VII&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&注释表&&&&Ttotal&&&&总走刀时间走刀等效距离TSP问题规模两城市间的信息素残留量两城市间的距离蚂蚁总数两城市间的蚂蚁转移概率启发函数信息素启发因子期望启发因子信息素残留系数两城市间的信息素增量每次循环蚂蚁释放的信息素总量每次循环中蚂蚁的路径总长蚁群算法迭代次数&&&&&&&&K&&&&&&&&分区数聚类中心允许误差分区平均规模分区限制规模过渡点时刻局部时间坐标各阶段持续运行时间最大加加速度最大加速度最大减速度最大运动速度运动段长度加速段长度减速段长度变加减速段的时间&&&&&&&&D*&&&&&&&&?&&&&M&&&&&&&&n&&&&&&&&?ij(t)&&&&dij&&&&&&&&MLimittk&&&&&&&&m&&&&Pkij(t)&&&&&&&&?k&&&&Tk&&&&&&&&?ij&&&&&&&&J&&&&A&&&&&&&&?&&&&?&&&&?&&&&ij&&&&&&&&D&&&&&&&&V&&&&L&&&&SaSdTm&&&&&&&&Q&&&&Lk&&&&N&&&&&&&&VIII&&&&&&&&&&&&南京航空航天大学硕士学位论文&&&&&&&&缩略词&&&&缩略词PCBCNCPCIRADVCLEDATSPNPACACCS英文全称PrintedCircuitBoardComputerNumericalControlPeripheralComponentInterconnectRapidApplicationDevelopmentVisualComponentLibraryElectronicDesignAutomationTravelingSalesmanProblemNon-deterministicPolynomialAntColonyAlgorithmCodeComposerStudio&&&&&&&&IX&&&&&&&&&&&&南京航空航天大学硕士学位论文&&&&&&&&第一章绪论&&&&PCB(PrintedCircuitBoard,印刷电路板)的生产过程包含多个制造环节,钻孔是其中的一个关键环节,直接影响PCB的整体质量,并且钻孔成本也在PCB制造总成本中占有较大比例。目前,PCB钻孔方法主要分为两大类:激光钻孔和机械钻孔。激光钻孔不存在工具消耗,在高密度孔、盲埋孔及微孔加工等方面具有很大优势。但是,激光钻孔设备成本高、孔壁质量较低,而且对被加工材料有限制,使得激光钻孔主要用于PCB板上的盲埋孔及微细孔等机械钻孔难以实现或不能实现的场合。因此,PCB钻孔现阶段仍以机械钻孔为主,钻孔的主要设备还是PCB数控钻孔机。PCB钻孔机数控系统作为整个钻孔设备的控制核心,其性能优劣直接关系到PCB钻孔加工的精度、效率和可靠性。&&&&&&&&1.1数控系统的发展历程&&&&自从1949年美国帕森公司、美国空军及美国麻省理工学院提出机床数控的概念开始,短短的几十年的内,数控系统的发展主要经历了以下六代[1][2][3]:(1)电子管数控系统。为了实现生产加工自动化,美国麻省理工学院于1952年研制出世界上第一台机床数控装置,并成功应用于铣床加工控制,揭开了数控系统发展的序幕。由于当时的数控系统主要由电子管和继电器构成,所以被称为电子管数控系统,即第一代数控系统。(2)晶体管数控系统。随着晶体管的问世,20世纪50年代末,主要由固定布线的晶体管元器件电路组成的第二代数控系统诞生,取代了昂贵的、易坏的及难以推广的电子管控制电路。(3)集成电路数控系统。1965年,采用集成电路技术的第三代数控系统诞生。相比晶体管数控系统,集成电路数控系统提高了数控系统的可靠性、降低了生产成本。(4)小型计算机数控系统。20世纪70年代,随着集成电路技术的不断发展,小型计算机已经出现并开始批量生产,并且逐渐被应用到数控系统中。1970年在美国芝加哥国际机床展览会上首次展出的小型计算机数控系统标志着第四代数控系统诞生。(5)微型计算机数控系统。1974年,使用微型计算机的第五代数控系统问世,并迅速取代了小型计算机数控系统。这主要是由于微型计算机采用了高度集成的微处理器,其可靠性高、功能强大、运算速度快且价格低廉,更加符合工业控制系统的要求。(6)基于PC的数控系统。第五代数控系统及以前的各代都属于专用封闭式数控系统,具有兼容性差、维修困难、难以升级等缺点,制约着数控技术的发展,不能满足市场对数控技术的新要求。20世纪80年代,PC(PersonalComputer,个人计算机)得到了飞速发展,并逐渐在世界范围内普及。人们将PC应用到数控系统中,有效的解决了专用封闭式数控系统所具有的上述缺点,这就是第六代数控系统——基于PC的数控系统。&&&&1&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发数控系统发展历程也可以分为两个阶段:第一个阶段称为NC(NumericalControl,数控)阶段,包括电子管数控系统、晶体管数控系统、集成电路数控系统这三代数控系统;从第四代数控系统开始,计算机开始应用到数控系统中,由此数控系统进入CNC(ComputerNumericalControl,计算机数控)阶段[3]。&&&&&&&&1.2基于PC的数控系统结构&&&&PC机具有丰富的软件资源、标准化的硬件接口、高性能价格比。充分利用PC机优势,将其应用于现代数控系统中,开发基于PC的数控系统,不仅降低了数控系统的开发难度、缩减了系统成本,而且更容易实现数控系统的开放,便于系统升级和扩展[4][5]。近年来,随着电子技术及计算机技术的迅速发展,机的存储容量、PC运算速度及可靠性等各方面性能都在不断提高,使得基于PC的数控系统发展更加迅猛,在世界范围内得到广泛应用。目前,基于PC的数控系统主要有以下三种结构[6~10]:(1)PC嵌入NC该类型是在NC内部加装PC,两者之间通过专用内部总线连接。其中,PC作为前端人机界面,实现编程、程序存储及通讯等功能;NC作为后端,实现机床的实时控制。具有数据传送快、系统响应速度高等优点。对传统的大的数控系统开发商而言,由于这种数控体系结构可以不加改动的使用原有的传统NC系统,更好的保留了他们所拥有的数控技术优势,因而受到了这些厂商的支持和推广。典型代表有德国SIEMENS的840D/810D、日本FANUC的150/160/180/210、美国CINCINNATIMILACRON的ACRAMATIC2100和法国NUM公司的1060等。这种结构中NC仍然是传统的封闭式内核,故开放性受到限制,无法充分利用PC机的软硬件资源,成本仍然无法降下去。(2)NC嵌入PC该类型是在通用PC机的扩展槽中插入运动控制卡,两者之间通过PCI总线进行通信。PC主要实现人机交互、系统管理、数控代码解释等非实时性任务;运动控制卡完成运动控制、I/O监控等实时性任务。这种结构在保证系统性能的前提下,能较充分的利用PC机的软硬件资源,可运行用户自定义软件,灵活性好、功能稳定,降低了系统成本。此类数控系统的典型代表有美国DeltaTau公司的PMAC-NC、日本NEC公司的FC-9801K、日本MAZAK公司的MAZATROL640和我国珠峰数控公司的中华I型CME988等。这种结构较容易实现数控系统的开放,满足机床制造商和最终用户的种种需求,并逐渐成为基于PC的开放式数控系统的主流。(3)全软件NC该类型是由PC机实现CNC的全部功能,利用实时操作系统或嵌入PC的实时内核来实现实时任务的处理,并通过接口卡对机床的I/O及伺服驱动等进行控制。这种类型的数控系统完全保留了PC机的优点,软件资源丰富,开放性好,大大降低了系统成本。典型的代表产品有&&&&2&&&&&&&&&&&&南京航空航天大学硕士学位论文美国MDSI公司的OpenCNC、瑞士Vector公司的Contour系列以及德国PowerAutomation公司的PA8000NT等。虽然全软件NC的开放性最彻底、硬件成本最低,但是由于Windows本身用于实时控制的局限性,软件开发复杂,要实现大范围推广还有待进一步研究。&&&&&&&&1.3PCB数控钻孔机的发展与现状&&&&1.3.1国外PCB数控钻孔机的发展现状&&&&20世纪60年代,电子产业开始迅速发展,对PCB的制造工艺水平及效率提出了更高的要求。发达国家的许多PCB加工设备制造商为了满足市场的需求,使自身的产品更具市场竞争力,投入了大量的人力、物力和财力去研发性能更优的PCB加工设备。专门用于PCB打孔的PCB数控钻孔机正是在这种大环境中诞生[11]。近几十年来,随着相关技术的不断提升,国外PCB数控钻孔机在钻孔效率、钻孔精度及微孔加工能力等方面取得了巨大进步,部分高端产品已经能够达到以下技术指标:X、Y轴运动速度90m/min;Z轴运动速度30m/min;主轴最高转速300000rpm;定位精度±0.004mm;重复定位精度±0.002mm;钻孔精度±0.015mm;最小钻孔直径0.1mm。目前,国外著名的PCB数控钻孔机厂商有:德国的SCHMOLL、日本的HITACHI、瑞士的Posalux以及美国的EXCELLON等[12][13]。&&&&&&&&1.3.2国内PCB数控钻孔机的发展&&&&国内PCB数控钻孔机起步较晚,直到20世纪80年代中期才开始将数控技术应用到PCB钻孔领域。经过近30年的发展,在产品的功能、性能等方面有了很大提高,也涌现出许多知名的PCB数控钻孔机品牌,例如:大族、天马、万达、科捷等。但是,由于我国在这一领域起步较晚,发达国家又长期对我国进行关键技术封锁,国产PCB数控钻孔机和国外先进水平还是存在一定的差距,主要体现在以下几个方面[14][15]:(1)加工效率。国内钻孔机正常钻孔速率可以达到350孔/min,而国外的先进钻机可以正常工作在500孔/min;(2)加工精度。国外钻孔机的钻孔精度可以达到±0.015mm,相比之下国产钻孔机的钻孔精度只能达到±0.05mm;(3)可靠性。国产整机平均无故障工作时间在300小时,与国外平均800小时相比有很大差距;(4)微小孔加工能力。国内钻孔机最小钻孔直径能够达到0.2mm,而国外则可以达到0.1mm。正是由于这些差距,国产PCB数控钻孔机主要是面向中低端市场,在行业内大约只占了10%的国内市场份额[11]。&&&&3&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&1.4PCB数控钻孔机发展趋势&&&&近年来,手机、笔记本电脑等电子产品更新升级换代越来越快,并且不断向轻薄短小、多功能化、高可靠性以及低成本化方向发展,市场对PCB制造技术提出了更高的要求[16]。PCB数控钻孔机作为PCB制造过程中的主要设备,为了满足市场的需求也在快速发展,概括起来主要有以下发展趋势[17][18]:(1)高速度。PCB数控钻孔机的速度直接影响钻孔加工效率。速度的提高一方面要求控制系统能够保证高速运算处理;另一方面,各轴必须能够达到更高的运动速度。目前,PCB数控钻孔机的驱动方式主要是采用交流伺服电机+滚珠丝杠。由于采用滚珠丝杠传动,各轴运动速度和加速度都受到了限制;另外,钻孔过程中各轴频繁高速启停,丝杠磨损较快,一般质量的丝杠使用1年就需要检修或更换,否则定位精度、重复定位精度等得不到保证。为了解决这些问题,一些厂商开始采用直线电机驱动的方式,获得了很高的运动速度及加速度,并且直线电机导轨磨损少,使用寿命长。但是直线电机成本较高,这种驱动方式主要还是用在一些高档产品上。(2)高精度。PCB数控钻孔机的精度直接影响孔的加工质量,对PCB产品整体质量有着重要影响。为了保证高速条件下PCB数控钻孔机的加工精度,需要研究高性能的数控系统、执行装置及检测反馈装置。(3)高可靠性。随着消费类电子产品更新换代越来越快,PCB市场需求旺盛。许多PCB制造厂不得不24小时不间断生产。如果PCB制造设备可靠性不高,经常出现故障,不仅导致工期延误,维修费、误工费等生产成本升高,而且一旦无法按时完成客户的订单,势必影响其信誉和市场竞争力。因此,只有高可靠性的数控钻孔机才能满足PCB制造业的需要。(4)换刀自动化。钻孔加工过程中遇到钻孔孔径变化、刀具寿命到期或意外断刀,都需要换刀。手动换刀的加工效率很低,现在大多PCB数控钻孔机相继开始采用自动换刀系统。要实现换刀自动化,硬件上需要刀库、换刀机械手等辅助装置,软件上需要开发刀具管理系统及换刀控制模块等。采用高性能的自动换刀系统可以有效减少加工辅助时间,提高PCB数控钻孔机的加工效率。(5)微细孔加工。随着高密度印刷电路板的发展,直径小于0.2mm的PCB微细孔的数量急剧增加,对孔的加工质量也提出了更高的要求。虽然现在机械钻孔已经可以实现0.075mm的微细孔加工,但是技术上还不够成熟,不能大批量生产。一般情况下,直径小于0.1mm的微细孔仍主要依赖于激光钻孔加工。为了降低微细孔的加工成本、提高加工效率,微细孔的机械钻孔相关技术需要进一步研究。(6)盲孔加工。目前,PCB盲孔加工多采用激光钻孔。但是激光钻孔成本太高,如果能实现机械钻盲孔,那么将大大降低加工成本。机械钻盲孔涉及到深度控制等相关技术难题,国&&&&4&&&&&&&&&&&&南京航空航天大学硕士学位论文内外对此已经也做了不少研究。2009年的IPCAPEXExpo技术会议上,DDI公司一名工程师发表了一篇关于机械钻盲孔的报道,他们采用一种先进的机械进给装置钻出了深度控制误差在25μm~50μm范围内的光洁V型盲孔。国内的汕头超声采用日立ND-6N180E机械钻机精确控制系统成功加工出深径比为1.5、孔径为0.3mm~0.6mm的机械盲孔[19]。&&&&&&&&1.5研究目的及内容&&&&1.5.1研究目的&&&&随着计算机、通讯、消费类等电子产品的需求增加,PCB板的需求急剧增长,从而带动相关设备的需求也在快速增长,其中就包括PCB数控钻孔机。但是,PCB数控钻孔机的核心技术一直掌握在欧美、日本以及中国台湾地区某些公司的手中。国产PCB数控钻孔机在性能、可靠性等方面和国际先进水平相比还有一定差距,市场占有率较低。数控系统作为PCB数控钻孔机核心技术之一,直接影响钻孔机的加工精度、加工效率及可靠性。因此,研究PCB钻孔机数控系统关键技术对于打破国外技术壁垒,取得高档PCB钻孔机数控核心技术上的新突破,改善和提高PCB数控钻孔设备的整体性能,增强国产PCB数控钻孔机的市场竞争力具有重要意义。同时,这对于提高我国电子制造工艺装备水平和电子信息制造业自我配套能力也具有重要的现实意义。本文从开发高性能PCB钻孔机数控系统的角度出发,采用“PC+运动控制卡”的数控系统结构,对PCB钻孔机数控系统研发中的若干关键技术展开研究。&&&&&&&&1.5.2研究内容&&&&本文的主要研究内容包括以下方面:1.研究PCB钻孔路径优化算法。PCB钻孔加工时,X轴、Y轴走刀定位时间在整个加工过程中占有很大比例,对钻孔效率有重要影响。优化PCB钻孔路径可以缩短PCB钻孔走刀定位时间,提升钻孔加工效率。2.研究运动控制DSP软件。运动控制DSP软件完成数控系统的实时控制任务,其功能和性能对整个数控系统有着重要影响。3.研究PCB钻孔机运动的加减速控制方法。PCB数控钻孔机的基本加工特点是:运动行程短、机床起停频繁、加工精度高[20]。高速钻孔加工时,各轴频繁起停可能致使机床产生较大的振动,造成钻头钻孔时的滑移,产生孔位偏差,导致废品,严重时甚至断刀[21][22]。研究并选择合适的加减速控制算法对于提高系统运动平稳性,保证钻孔加工精度以及延长机器使用寿命具有重要意义。全文共分七章,各章的具体内容安排如下:第一章:绪论。介绍基于PC的数控系统结构以及国内外PCB数控钻孔机的发展现状,分&&&&5&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发析PCB数控钻孔机的发展趋势,提出本文的研究目的及内容。第二章:系统总体结构设计。进行系统需求分析,设计系统的总体架构,对系统硬件和软件进行整体规划。第三章:上位机软件设计。设计开发PCB钻孔机数控系统的上位机软件,并重点对PCB钻孔路径优化展开研究,提出一种基于聚类分区的蚁群算法,实现PCB钻孔路径优化问题的求解。第四章:运动控制DSP软件设计。设计开发PCB钻孔机数控系统下位机的DSP软件。第五章:PCB数控钻孔机的加减速控制。在比较研究各种常用加减速控制算法的基础上,着重讨论PCB钻孔机中S曲线加减速算法的实现方法,并提出一种加加速度连续的分数次幂多项式加减速算法。第六章:试验验证及分析。介绍系统试验平台,对路径优化算法和加减速算法进行验证分析。第七章:总结与展望。对本文所做的工作进行总结,并对后续的工作进行规划。&&&&&&&&6&&&&&&&&&&&&南京航空航天大学硕士学位论文&&&&&&&&第二章系统总体结构设计&&&&2.1需求分析&&&&针对PCB数控钻孔机的加工特点,并结合市场调研,本课题所设计的PCB钻孔机数控系统有以下主要功能要求:1.人机交互界面。一个数控系统能否被广大的用户接受,友好的人机交互界面是必不可少的。2.刀具管理系统。刀具管理系统是现代高档PCB数控钻孔机必备的关键模块,对于实现钻孔加工的高度自动化,提高加工效率有重要作用。实现包括刀具参数管理、刀具寿命管理、自动换刀、刀具长度检测等诸多功能。3.钻孔路径优化。钻孔加工时X、Y轴的走刀定位时间在整个加工过程中占有很大比例。优化钻孔走刀路径对于减少走刀时间、提高钻孔加工效率具有十分重要的作用。4.多轴运动控制。PCB数控钻孔机一般有X轴、Y轴以及一个或多个Z轴,根据Z轴的个数可以分为单轴钻孔机、双轴钻孔机和多轴钻孔机。在一定程度上,PCB数控钻孔机总的加工效率和Z轴轴数成正比。多轴机成为现代PCB数孔钻孔机的发展趋势,6轴、7轴乃至8轴PCB数控钻孔机已相继问世[20]。因此,能够实现多轴运动控制的PCB数控系统才更加竞争力。5.主轴转速控制。主轴转速需要根据刀具直径、加工材料等因素进行调整,并且需要较大的调速范围。6.I/O控制。PCB数控钻孔机通常应具备许多辅助控制功能,如:主轴夹头控制、压力脚控制及吸尘控制等等。为了实现这些辅助功能,需要提供通用开关信号输入输出接口。&&&&&&&&2.2系统总体结构设计&&&&在基于PC的三种数控系统体系结构中,NC嵌入PC型的数控系统能够在保证系统性能的前提下,充分利用PC机的软硬件资源,并且开发难度较低,易于实现数控系统的开放,便于维修、升级。因此,本文所设计的PCB钻孔机数控系统即采用这种结构。系统的总体结构分为三层,从上至下依次是上位机软件层、PCI驱动层、底层软硬件,如图2.1所示。上位机软件层采用工业PC机作为硬件平台,以保证工业现场环境下系统的可靠性。在WindowsXP操作系统环境下,利用与WindowsXP兼容的面向对象软件开发工具可以方便、快捷的实现友好人机交互界面的设计开发,完成文件翻译、路径优化、参数管理、刀具管理、状态监控等功能。&&&&&&&&7&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&人机交互界面文件接口上位机软件层路径优化状态显示手动控制参数管理刀具管理钻孔加工&&&&&&&&PCI驱动层&&&&&&&&PCI设备驱动程序&&&&&&&&PCI接口加减速控制手动连续移动底层软硬件DSP回零高速移动FPGA&&&&&&&&工业实时以太网接口&&&&&&&&运动控制卡&&&&&&&&模拟量接口卡&&&&&&&&I/O接口卡&&&&&&&&PCB数控钻孔机&&&&&&&&网络型伺服驱动器&&&&&&&&主轴变频器&&&&&&&&位置捕捉信号&&&&&&&&编码器&&&&&&&&机床I/O&&&&&&&&图2.1系统总体结构图PCI驱动层用于实现上位机和底层软硬件之间的通信。利用工业PC机的PCI插槽实现两者的硬件连接。PCI总线通信具有高速度、高可靠性等特点,为系统的实时控制提供了保障。底层软硬件主要完成系统实时性要求较高的运动控制、I/O管理以及其它一些辅助的功能。本系统的设计目标是最大支持6个Z轴的PCB数控钻孔机,所需I/O接口、主轴控制接口等较多,因此将这些接口单独做在专门的接口卡上。于是,底层硬件包括:运动控制卡、I/O接口卡及模拟量接口卡。DSP运算速度高、可靠性高。许多DSP芯片制造商将控制领域所必需的一些外围电路直接集成到DSP内部,使得DSP成为高性能运动控制系统的首选器件。FPGA具有体积小、低功耗、可重复编程、价格低、开发周期短等特点,能够以数字电路的形式实现通用DSP难以完成的一些时序组合逻辑或某些简单但是运算量较大的算法。目前,基于DSP和FPGA技术的运动控制器己成为运动控制技术发展的趋势[23]。本系统采用DSP和FPGA作为运动控制卡的主控单元。其中,DSP作为控制核心,实现加减速控制、回零、高速移动、手动连续移动等实时性强的任&&&&8&&&&&&&&&&&&南京航空航天大学硕士学位论文务;而FPGA主要实现上位机通信接口、I/O接口信号处理以及模拟量接口卡控制。I/O接口卡提供输入/输出开关量接口。运动控制卡上的FPGA通过串行数据传输方式和I/O接口卡进行交互,实现对I/O接口信号处理。模拟量接口卡由一片FPGA以及一些外围电路组成,能够实现主轴控制功能和位置捕捉功能。所谓位置捕捉是指硬件电路检测到一个指定的外部输入开关量信号时,立即锁存该信号对应的运动轴的当前位置坐标。通常用于实现刀具长度检测等一些功能。因此,模拟卡上有三种接口:主轴控制接口、位置捕捉触发信号接口以及码盘反馈信号接口。运动控制卡上的FPGA通过总线与模拟量接口卡FPGA进行交互,实现对主轴控制功能和位置捕捉功能的使用和控制。工业实时以太网具有抗干扰能力强、配线简单、成本低、易于扩展等优点,已经逐渐被应用于数控领域,并且符合新一代数控系统的发展趋势[24]。本系统采用工业实时以太网实现对网络型交流伺服驱动器的控制。因此,需要在运动控制卡上添加相应的工业实时以太网硬件接口。&&&&&&&&2.3系统硬件规划&&&&系统硬件包括三大部分:运动控制卡、I/O接口卡及模拟量接口卡。&&&&&&&&2.3.1运动控制卡&&&&运动控制卡是系统硬件的核心部分,DSP和FPGA为主控单元,以并配以上位机通信接口、工业实时以太网接口等部分。1.DSP本系统采用TI公司的TMS320F28335型DSP芯片作为控制核心。该芯片是一款浮点型DSP控制器,能够避免定点DSP中复杂的小数处理操作,使得用户可以快速编写控制算法,节省了大量的开发时间。DSP28335主频150MHZ,采用改进的哈佛总线结构,即程序空间与数据空间分开,并且分别有各自的地址总线和数据总线,可以同时完成取指令和读取数据操作。同时,DSP28335内部的CPU支持流水线操作,因此执行效率很高[25]。为了满足控制领域的需求,DSP28335内部集成了丰富的外设资源,如表2.1所示。表2.1TMS320F28335外设资源片上外设名称ePWMHRPWMQEPADCSCI异步串口McBSP同步串口数量12通道6通道2通道16通道3通道2通道&&&&9&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发表2.1(续)片上外设名称SPI同步串口eCAN总线I2C总线DMA2.FPGA本系统采用ALTERA公司Cyclone系列的FPGA芯片EP1C6Q240C8。在系统中主要承担以下任务:1)作为PCI总线目标设备接口控制器,并提供双端口RAM供上位机和DSP进行数据交互;2)监控I/O接口板上的输入/输出开关量信号;3)通过总线方式和模拟量接口卡上的FPGA进行交互,实现模拟量接口上各个功能模块的控制。3.上位机通信接口PCI(PeripheralComponentInterconnect,外设部件互连标准)接口是个人电脑中最常见的一种扩展接口。1992年,Intel公司联合IBM、Compaq、AST、HP、DEC等100多家公司推出了PCI总线标准。目前,从数据宽度上来看,PCI总线可以分为32bit、64bit两种,常用的是32位PCI,它的数据传输速率可以达到133MB/s。另外,PCI总线具有奇偶校验错(PERR)、系统错(SERR)、从设备结束(STOP)等控制信号及超时处理等可靠性措施,数据传输的可靠性极高[26]。鉴于PCI总线数据传输的高速性和高可靠性,本文采用PCI总线方式实现上位机和运动控制卡的通信。运动控制卡上的PCI外设接口芯片选用美国PLX公司的PCI9054。FPGA作为PCI总线目标设备接口控制器,并提供双端口RAM供DSP和上位机进行数据交互,从而实现上位机与DSP之间的高速实时通信。通信示意图如图2.2所示。&&&&工控机PCI总线&&&&&&&&数量1通道2通道1通道6通道&&&&&&&&PCI9054&&&&&&&&运动控制卡&&&&&&&&FPGA(内含双口RAM)&&&&&&&&DSP&&&&&&&&图2.2上位机和DSP通信示意图&&&&10&&&&&&&&&&&&南京航空航天大学硕士学位论文4.工业实时以太网接口近年来,基于工业实时以太网的高速串行总线技术迅速发展,国际上出现了多种标准的工业实时以太网,如德国Beckhoff公司的EtherCAT、德国Bosch-Rexroth公司的SERCOS、德国Siemens公司的ProfinetIRT、日本安川公司的MECHATROLINK以及日本松下公司的RTEX[27]。日本松下公司的RTEX(RealtimeExpress)工业实时以太网总线技术具有以下特点:1)采用环状拓扑结构,接线简单,成本低;2)全双工以太网,数据传输速率可达100Mbps;3)通信周期0.5ms,能够满足控制领域的需求;4)最大可支持32节点,适于多轴运动控制;5)采用数字信号,抗噪性能良好,可以达到IEC标准。考虑到上述诸多优点,本系统采用RTEX工业实时以太网连接运动控制卡和伺服驱动器:运动控制卡作为主站,松下的A4N网络型交流伺服驱动器作为从站。运动控制卡上的RTEX实时以太网接口原理图如下:&&&&&&&&图2.3工业实时以太网接口原理图RTEX网络通信芯片内部包含数据发送缓冲区、数据接收缓冲区、控制寄存器区以及状态寄存器区。为了实现DSP和RTEX网络通信芯片的数据交互,两者之间用总线连接,并通过内存映射方式进行数据交换。&&&&&&&&11&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发5.存储器扩展TMS320F28335芯片内部包括256KW的FLASH和34KW的SARAM。其中,256KW的FLASH已经足够存储系统软件程序。但是,由于DSP在工作过程中需要存储大量的参数及数据,仅依靠DSP芯片内部34KW的SARAM远远不够,所以需要外扩一片SRAM。本系统选用了ISSI公司的IS61WV102416BLLSRAM。该芯片是一种高速异步静态1024KW的SRAM。系统将外扩SRAM映射到TMS320F28335的Zone6区。由于FPGA内部的双口RAM也映射在TMS320F28335的Zone6区,所以FPGA内部要做片选处理以区分它们,保证正常读写访问。&&&&&&&&2.3.2I/O接口卡&&&&I/O接口卡主要是为PCB数控钻孔机的输入/输出开关量信号提供接口,共有24路数字量输入通道以及16路数字量输出通道,并通过扁平线与运动控制卡相连。运动控制卡FPGA通过串行数据传输方式和I/O接口卡进行交互,实现输入/输出开关量信号的逻辑控制。下面分别介绍开关量信号输入/输出:1.开关量信号输入外部输入开关量信号首先经过滤波电路滤除毛刺,然后利用光耦进行电平转换和光电隔离,每8个通道的输入信号可以接入到一片74HC165D并转串芯片中。由于I/O接口卡共有24路数字量输入通道,因此需要3片74HC165D,它们之间通过固定的引脚串联起来。当FPGA要获取I/O接口卡上的输入接口状态时,首先向74HC165D发送锁存信号,使74HC165D锁存当前输入状态;然后,发送移位控制信号,使74HC165D进行24次移位操作,最终将24位并行数据依次发送到串行数据线上,由FPGA负责接收。开关量信号输入原理图如图2.4所示。&&&&控制线运动控制卡FPGA串行数据74HC165D并转串芯片光耦滤波电路输入开关量信号&&&&&&&&I/O接口卡&&&&&&&&图2.4开关量信号输入原理图2.开关量信号输出FPGA控制开关量信号输出时,I/O接口卡需要使用74HC595D串转并芯片。74HC595D能够通过移位操作接收8位串行数据并通过8个输出引脚并行输出。由于I/O接口卡共有16路数字量输出通道,因此需要2片74HC595D串联起来以接收来自FPGA的16位串行数据。FPGA首先向74HC595D发送锁存信号,74HC595D锁存当前输出状态;使然后,发送移位控制信号,使74HC595D进行16次移位操作依次接收串行数据线上数据,并通过16个输出引脚并行输出。&&&&12&&&&&&&&&&&&南京航空航天大学硕士学位论文该输出信号经过光耦的电平转换和光电隔离、再通过MC1413增强输出驱动能力后连接到I/O接口卡的输出端子。开关量信号输出原理图如图2.5所示。&&&&控制线运动控制卡FPGA串行数据74HC595D串转并芯片光耦MC1413输出开关量信号&&&&&&&&I/O接口卡&&&&&&&&图2.5开关量信号输出原理图&&&&&&&&2.3.3模拟量接口卡&&&&模拟量接口卡由ALTERA公司Cyclone系列的EP2C5Q208C8FPGA以及一些外围的滤波电路、放大电路等部分组成。运动控制卡上的FPGA通过总线与模拟量接口卡FPGA进行交互,实现对模拟量接口卡上各个功能模块的控制。模拟量接口卡主要提供以下接口:1.主轴控制接口目前,PCB数控钻孔机主轴大部分都采用变频器调速控制,通过向变频器的控制电压输入端子输入-10V~+10V的电压来控制主轴的正反转以及无级调速。由于用户一般情况下对主轴转速控制电压精度要求不高,为了节约硬件成本,本系统采用PWM加滤波替代DAC芯片实现模拟电压输出。利用FPGA内部的计数器、比较器电路输出指定占空比的PWM波差分信号,经过模拟量接口卡上的放大电路后就可以输出-10V~+10V的模拟电压。2.码盘反馈信号接口光电编码器一般分为绝对式编码器和增量式编码器。绝对式编码器可以直接读出角度坐标的绝对值,没有累积误差且断电后位置信息不会丢失,但是绝对式编码器结构复杂,成本较高。因此,数控机床中多使用增量式脉冲编码器[28]。常见的增量式编码器输出信号为差分信号,本系统设计的码盘反馈信号接口适用于增量式编码器的差分信号输入。差分信号经过滤波电路滤除毛刺干扰后,再利用26LS32芯片转化为单端信号,供FPGA内部的编码器信号处理电路进行处理。3.位置捕捉触发信号接口位置捕捉触发信号接口是一个专用的输入开关量接口,通常和码盘反馈信号接口成对使用以完成PCB数控钻孔机Z轴的位置捕捉。位置捕捉触发信号经过滤波电路、光耦后进入FPGA,供FPGA内部的位置捕捉处理电路使用。本系统的设计目标是能够支持6轴PCB数控钻孔机(即有6个C轴和6个Z轴)。因此,上述3种接口都设计为6个通道。&&&&&&&&13&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&2.4系统软件规划&&&&系统软件主要划分为三个层次,包括上位机软件、PCI驱动程序以及运动控制DSP软件。上位机软件提供人机交互界面,主要实现数控钻孔程序翻译、钻孔路径优化、系统参数管理、刀具管理、机床实时状态显示、加工命令及数据发送等功能。PCI驱动程序主要用以完成上位机软件与运动控制DSP软件之间的数据交换以及命令发送。运动控制DSP软件负责数控系统的实时控制部分,主要实现参数设置、钻孔加工控制、回零、高速移动、手动连续移动、I/O控制、主轴控制、RTEX实时以太网通信等功能。本文将在第三章和第四章分别对上位机软件和运动控制DSP软件的设计进行详细介绍。&&&&&&&&2.5本章小结&&&&本章基于PCB数控钻孔机的需求分析,规划设计了系统的总体架构,并对各层次进行了任务划分,对系统的硬件和软件进行了整体规划。&&&&&&&&14&&&&&&&&&&&&南京航空航天大学硕士学位论文&&&&&&&&第三章上位机软件设计&&&&3.1软件开发工具&&&&C++Builder是Borland公司推出的基于C++语言的快速应用程序开发(RapidApplicationDevelopment,RAD)工具。它充分利用了Delphi的可视化组件库(VisualComponentLibrary,VCL),实现了可视化编程环境和C++编程语言的完美结合[29]。C++Builder具有以下显著特点[29]:1.可视化集成开发环境C++Builder提供了可视化窗体设计器、对象检视器、工程管理器、对象树查看器、组建列表、调试窗口等一系列可视化应用程序开发工具,使程序员对开发工具的学习周期大大缩短,并且能够帮助软件开发人员高效的建立并管理自己的程序和资源。2.功能丰富可视化组件库C++Builder的VCL提供了各式各样的控件,并内置了100多个完全封装了Windows公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件。只需要将控件(Component)拖到窗体(Form)上,设置一下控件的属性,就可以快速地建立应用程序界面。丰富的可视化组件库大幅简化了界面开发过程,使得软件开发人员可以将大部分的精力放在核心程序码的设计上。3.良好的兼容性C++Builder可以编译所有符合ANSI/ISO标准的源代码,支持例外(Exceptions)、模板(Templates)运行类型信息、(RuntimeTypeInformation)ANSIC++/C语言特征。等C++Builder支持标准C++库以及标准模板库(STL),利用VisualC++等软件开发工具开发的C/C++源程序都能够直接移植到C++Builder环境中。4.高性能的编译系统C++Builder的32位原码(NativeCode)编译器提供了具有高度安全性、快速性、可靠性的编译优化方法,能够完全编译出原始机器码而非中间码,使得软件执行速度大大提高。另外,在程序编译和连接时,C++Builder编译器会自动忽略未修改的源代码以及软件中从未调用过的函数,大幅度提高了编译和连接效率。鉴于C++Builder的上述优点,本设计采用C++Builder6.0作为上位机软件的开发工具。&&&&&&&&3.2上位机软件总体结构&&&&根据PCB钻孔机数控系统的需求,上位机软件总体结构设计如图3.1所示。本章接下来各小节将对上位机软件的一些主要模块进行具体介绍。&&&&15&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&人机交互界面&&&&&&&&文件接口模块&&&&&&&&路径优化模块&&&&&&&&系统参数管理模块&&&&&&&&手动控制模块&&&&&&&&刀具管理模块&&&&&&&&钻孔加工模块&&&&&&&&状态监控模块&&&&&&&&图3.1上位机软件总体结构&&&&&&&&3.3文件接口模块&&&&PROTEL是PORTEL公司在80年代末推出的EDA(ElectronicDesignAutomation,电子设计自动化)软件。国内很早就开始使用PROTEL软件设计集成电路板,在国内的普及率极高。集成电路板设计完成后,利用PROTEL软件内部集成的CAM功能可以生成.txt格式的数控钻孔文件(NCDrill),供PCB钻孔加工使用[30]。本系统即采用这种格式的数控钻孔文件作为钻孔加工输入文件。&&&&&&&&3.3.1文件格式&&&&下面通过一段示例代码来说明NCDrill文件的一般格式:M72M48T1F00S00C0.040T2F00S00C0.059T3F00S00C0.110%T01XT02XX31Y00422M30其中,(1)M72表示数据单位为英制单位Inch。如果是数据单位是公制单位mm,则第一行应当&&&&16&&&&&&&&&&&&南京航空航天大学硕士学位论文是M71。换算关系:1Inch=25.4mm。(2)M48表示接下来的内容是描述钻孔文件中的刀具相关信息。(3)T是刀具号指令字,对应的指令值代表刀具号。(4)F是进给速度指令字,其指令值为0。钻孔加工时,需要系统指定进给速度。(5)S是主轴转速指令字,其指令值为0。钻孔加工时,需要系统指定主轴转速。(6)C是刀具直径指令字,对应的指令值表示刀具直径。指令值的数据单位根据M72或M71来确定。(7)%的下一行开始为每把刀具对应的孔位数据。(8)X、Y是坐标指令字。其指令值代表孔中心位置的绝对坐标,并且指令值省略小数点。整数位和小数位的长度可以根据文件的数据单位以及C指令值的小数位数来确定,共有6种情况,如表3.1所示。参照表3.1中的对应关系可知,示例代码中的“X03221”表示X坐标为3.221Inch。PROTEL生成数控钻孔文件时,如果不选择输出优化选项,则每一个孔坐标都同时给出X坐标和Y坐标;否则,如果当前行孔的X坐标(或Y坐标)和上一行孔的X坐标(或Y坐标)相同,那么当前行孔的坐标就不会给出X坐标(或Y坐标)。例如:示例代码中2号刀具的第二个孔就没有给出Y坐标,默认和上一行孔的Y坐标相同。(9)M30表示钻孔文件结束。表3.1NCDrill文件的坐标指令值格式数据单位InchInchInchmmmmmmC指令值的小数位数345234坐标指令值的格式2位整数+3位小数2位整数+4位小数2位整数+5位小数4位整数+2位小数4位整数+3位小数4位整数+4位小数&&&&&&&&3.3.2文件翻译&&&&文件翻译的最终目的是提取并存储NCDrill文件包含的全部数据信息,以供系统其它模块使用。NCDrill文件中有大量的加工数据信息,其中对存储空间需求最大的是孔位坐标。假设每个孔的X、Y坐标均定义为double类型(8个字节),那么存储一个孔坐标需要16个字节,对于一个具有10000孔的NCDrill文件而言,存储所有孔坐标只需大约160KB内存空间。可见,存储数控钻孔文件包含的全部数据信息所需的内存空间是比较小的,以PC机的硬件资源完全&&&&17&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发能够轻易满足上述需求,并且不会影响系统的正常运行。本系统进行文件翻译时,将逐行读入NCDrill文件,并根据文件格式规范对数控代码进行检查和翻译,提取所需加工数据信息,最后按照一定格式将数据信息存入动态申请的内存空间中,以供路径优化、钻孔加工等模块使用。图3.2是文件翻译的程序流程图。&&&&开始&&&&&&&&Y&&&&&&&&文件结束?N&&&&&&&&从文件中读取一行数控代码检查数控代码格式Y有错误?NM71或M72?N错误报警处理是刀具信息吗?N是孔坐标数据吗?N是M30吗?Y结束NY对坐标数据进行处理并存储Y存储刀具相关信息,并确定孔坐标指令值格式Y确定数据单位&&&&&&&&图3.2文件翻译的程序流程图从NCDrill文件中提取的加工数据信息可以分为三类:孔坐标信息、刀具相关信息及文件相关信息,具体存储格式如下:1.孔坐标信息存储格式每个孔坐标均采用HOLE_POSITION结构体进行存储。每把刀具所对应的全部孔坐标通过C++Builder提供的TList链表类的一个实例对象来统一管理,链表中的每个成员都是指向HOLE_POSITION结构体变量的指针,将此链表称为孔坐标指针链表。typedefstruct_HOLE_POSITION_{doubleXPdoubleYP}HOLE_POSITION;&&&&18&&&&&&&&//X坐标(mm)//Y坐标(mm)&&&&&&&&&&&&南京航空航天大学硕士学位论文2.刀具相关信息存储格式每把刀具的刀具相关信息采用TOOL_INFO结构体进行存储。TOOL_INFO结构体中有一个指针变量HolePosition,它指向刀具对应的孔坐标指针链表。NCDrill文件中所有刀具的刀具相关信息通过一个TList链表对象来管理,链表中的每个成员都是指向TOOL_INFO结构体变量的指针,将此链表称为刀具相关信息指针链表。typedefstruct_TOOL_INFO_{intToolNo;intHoleDintHoleNTList*HoleP}TOOL_INFO;3.文件相关信息存储格式文件相关信息采用FILE_INFO结构体进行存储。FILE_INFO结构体中有一个指针变量ToolInfo,它指向刀具相关信息指针链表。typedefstruct_FILE_INFO_{charFileName[20];intDataFintToolTotalNintHoleTotalNTList*ToolI}FILE_INFO;综上所述,Drill文件翻译得到的全部数据信息在系统内部的总体存储组织结构如图3.3NC所示。&&&&孔坐标1(HOLE_POSITION)刀具相关信息1(TOOL_INFO)文件相关信息(FILE_INFO)刀具相关信息指针链表(TList)刀具相关信息2(TOOL_INFO)&&&&&&&&&&&&//刀具号//孔直径//孔总数//孔坐标指针链表的指针&&&&&&&&//文件名//数据格式//刀具总数//孔的总数//刀具相关信息指针链表的指针&&&&&&&&孔坐标指针链表(TList)&&&&&&&&孔坐标2(HOLE_POSITION)&&&&&&&&&&&&&&&&&&&&图3.3钻孔加工数据信息存储组织结构&&&&19&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发上述数据信息占用的存储空间都是动态申请的。因此,在读入新的NCDrill文件前,系统会将先前的NCDrill文件数据信息所占用的动态存储空间释放掉,以避免造成内存泄露、影响系统稳定性。&&&&&&&&3.3.3重孔检查与去除&&&&重孔指PCB板上两个孔所占区域有部分重合,即两孔的中心距小于两者的半径之和[31],如图3.4所示。&&&&R2&&&&O2&&&&&&&&R1&&&&O1&&&&&&&&L&&&&&&&&图3.4重孔示意图&&&&开始&&&&&&&&N&&&&&&&&是否还有未扫描过的孔?Y顺序读取一个孔1,半径为R1&&&&&&&&是否还有未和孔1比较的孔?Y顺序读取一个孔2,半径为R2计算孔1和孔2的中心距LN删除孔2N&&&&&&&&N&&&&&&&&L?R1?R2?&&&&Y&&&&&&&&R1?R2?&&&&Y删除孔1&&&&&&&&结束&&&&&&&&图3.5重孔检查与去除程序流程图&&&&20&&&&&&&&&&&&南京航空航天大学硕士学位论文在设计PCB的过程中,设计员的疏忽大意可能导致PCB上出现重孔。如果重孔的两个孔的孔径较小,那么由于加工刀具直径较小,很容易引起断刀,不仅影响加工效率,甚至会导致整块PCB板报废,造成较大的经济损失。因此,在PCB钻孔加工之前,应该对PCB钻孔文件进行重孔检查与去除,以保证正常加工。检查出重孔后,应当去除两个孔中直径较小的孔,保留另一个孔。重孔检查与去除的程序流程图如图3.5所示。&&&&&&&&3.4钻孔路径优化模块&&&&X、轴走刀定位时间在整个PCB钻孔加工过程中占有很大比例,Y对钻孔效率有重要影响。虽然PROTEL等PCB设计软件能够自动生产数控钻孔文件,但实践证明,它们生成的数控钻孔路径绝非最优路径,影响钻孔加工效率[32]。对于大批量制造PCB的厂家来说,加工效率的提升能够大幅增加经济效益。所以,有必要对钻孔加工走刀路径进行优化处理,提高钻孔加工效率。&&&&&&&&3.4.1建立最佳走刀路径模型&&&&PCB板上一般会有多种不同直径的孔,需要在加工过程中换刀。因此,PCB钻孔加工过程可描述为:从换刀点出发,不重复、不遗漏地加工完所有对应直径的孔,再回到换刀点进行换刀,开始加工下一种孔径的孔,如此重复,直到所有孔都加工完成。于是,可以分别对每一种直径的孔进行路径优化处理,最终实现整个PCB上所有孔的钻孔路径优化。所谓最佳走刀路径问题就是:针对同一孔径的所有孔,如何安排每个孔的加工顺序(即走刀路径),使得X、Y轴走刀定位的总时间最短。在PCB数控钻孔机中,X轴和Y轴采用的是相互独立的点位运动,使得两个轴能够同时以自身的最大速度运动,减少走刀时间,提高加工效率。一般情况下,X轴和Y轴设置的运动速度是一致的,即Vx?Vy?V。如图3.6所示,当孔A和孔B之间的X坐标增量XA?XB和Y坐标增量YA?YB不同时,X轴和Y轴中必然有一个提前完成定位运动,总的运动路径将是一条折线。因此,孔A和孔B之间的走刀时间TAB应该为:X?XBYA?YBTAB?max{A,}VV&&&&&&&&(3.1)&&&&&&&&假设某一孔径的孔总数为n,从一个孔出发通过且只通过一次其它所有孔的路径序列为&&&&&&&&{i1,i2,&&&&&&&&,in},那么此时总的走刀时间Ttotal为:&&&&Ttotalmax{&&&&j?1n?1&&&&&&&&Xij?Xij?1V&&&&&&&&,&&&&&&&&Yij?Yij?1V&&&&&&&&}?max{&&&&&&&&Xi1?XinV&&&&&&&&,&&&&&&&&Yi1?YinV&&&&&&&&}&&&&&&&&(3.2)&&&&&&&&可见,最佳走刀路径就是所有走刀路径中使得Ttotal最小的一条路径。在PCB钻孔加工过程中,运动速度V为常量。为了简化计算,引入走刀等效距离D*,将&&&&*孔A和孔B之间的走刀等效距离DAB定义为:&&&&&&&&21&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&*DAB?max{XA?XB,YA?YB}&&&&&&&&(3.3)&&&&&&&&于是,对于路径序列{i1,i2,&&&&&&&&*,in},总的走刀等效距离Dtotal为:&&&&*DtotalDi*jij?1?Di*in1j?1n?1&&&&&&&&(3.4)&&&&&&&&*因此,最佳走刀路径也可以定义为:所有走刀路径中使得Dtotal最小的一条路径。&&&&&&&&y&&&&&&&&?&&&&&&&&B(XB,YB)&&&&&&&&?&&&&&&&&A(XA,YA)&&&&&&&&o&&&&图3.6走刀定位路径示意图&&&&&&&&x&&&&&&&&3.4.2最佳走刀路径的求解方法3.4.2.1TSP问题&&&&从最佳走刀路径模型可以看出,PCB钻孔路径优化问题实际上是一个典型的旅行商问题(TravelingSalesmanProblem,简称TSP)。TSP问题通常描述为:已知n个城市及每两个城市之间的距离,任选一个城市作为出发点,遍历n个城市且每个城市只经过一次,并最终回到出发点,求所有符合条件的路线中最短的一个[33]。TSP问题描述起来看似简单,但是其求解非常复杂,属于NP(Non-deterministicPolynomial,非确定多项式)完备问题。当城市数目n很小时,利用穷举法等方法可以得到TSP问题的精确解。而随着城市数目n的增加,获取精确解所需的计算时间急剧增长,远远超出人们可以接受的范围。因此,大多数情况下只能采用近似算法求解TSP问题。为了在有限的存储空间以及合理的时间内得到尽可能接近最优解的近似解,国内外学者已经提出了许多性能良好的优化算法,如禁忌搜索算法、模拟退火算法、遗传算法、Hopfield神经网络算法、蚁群算法、人工免疫算法以及各种混合优化算法等等[34]。蚁群算法具有自适应、正反馈、自组织以及本质并行的特点,使得蚁群算法能够非常有效的求解TSP问题,并得到了广泛应用[35][36]。&&&&&&&&3.4.2.2基本蚁群算法&&&&蚁群算法(AntColonyAlgorithm,ACA)又称作蚂蚁算法,是一种新型的仿生类进化算法。它是由意大利学者DorigoM等人于上世纪90年代提出的,其最初灵感来源于蚂蚁的觅食行为。研究人员发现蚂蚁在觅食的过程中会在其走过的路径上释放一种被称之为信息素(pheromone)&&&&22&&&&&&&&&&&&南京航空航天大学硕士学位论文的分泌物。路径越短蚂蚁留下的信息素浓度越高,并且信息素会随着时间的流逝不断挥发。蚂蚁感知信息素的浓度,尽可能选择信息素浓度高的方向作为下一步的运动方向。一条路径上通过的蚂蚁越多,累积的信息素浓度也越高,吸引其它蚂蚁通过的概率也就越高,从而形成一种正反馈。这种正反馈过程不断进行下去,所有蚂蚁最终都将会集中在最短路径上运动[37][38]。下面介绍基本蚁群算法求解TSP问题的数学模型。假设TSP问题的城市数目为n,?ij(t)为t时刻城市i和城市j之间的信息素残留量,dij为城市i和城市j之间的距离。初始化时将任意两个城市之间的信息素残留量均设为常数C。首先,将m只蚂蚁随机放在n个城市上,并根据第k(k?1,2,&&&&,m)只蚂蚁所在的第一个城市,修&&&&&&&&改表allowedk以及禁忌表tabuk。表allowedk指出蚂蚁k下一步可选择的城市;而禁忌表tabuk记录蚂蚁已经走过的城市,下一步不能再选择这些城市。然后,蚂蚁k依据式(3.5)中的概率函数从自身的allowedk表中选择下一步要去的城市。&&&&?[?ij(t)]?[?ij]?Pkij(t)?[?is(t)][?is]s?allowedk0?j?allowedk其它&&&&&&&&(3.5)&&&&&&&&式(3.5)中,Pkij(t)表示t时刻蚂蚁k从城市i转移到j的概率;?ij是启发函数,通常取&&&&&&&&?ij=1/dij;?是信息素启发因子,反映了蚂蚁运动轨迹的相对重要性;?是期望启发因子,反&&&&映了启发信息的相对重要性。经过n个时刻,m只蚂蚁按照要求遍历完所有城市,结束一次循环。并且,每只蚂蚁所走的路径都是TSP问题的一个解。此时,应该根据式(3.6)和式(3.7)刷新全局信息素:&&&&&&&&?ij(t?n)?ij(t)?ij&&&&kijijk?1m&&&&&&&&(3.6)(3.7)&&&&&&&&其中,?(0?1)表示信息素残留系数;ij表示这段时间内城市i和城市j之间新增加&&&&kk的信息素;ij表示这次循环中蚂蚁k在城市i和城市j之间留下的信息素的量,ij可根据式&&&&&&&&(3.8)计算:&&&&&&&&?Q?Lk?0?&&&&kij&&&&&&&&本次循环中蚂蚁k经过城市i和j之间的路径其它&&&&&&&&(3.8)&&&&&&&&式(3.8)中,Q为常数,表示每次循环中一只蚂蚁释放的信息素总量;Lk是蚂蚁k在本次循环中所走的路径的总长。不断重复上述循环过程,蚂蚁的路径将逐渐收敛于理论最短路径。蚁群算法实际实现时,通常会指迭代次数N,以得到TSP问题的一个近似最优解。对于中小规模TSP问题,基本蚁群算法是十分有效的,可以获得很好的优化效率及优化质量。但是,蚁群算法的算法复杂度为O(N?m?n2),对于大规模TSP问题,蚁群算法的优化效&&&&23&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发率明显降低,在实际应用中受到限制。&&&&&&&&3.4.2.3基于聚类分区的蚁群算法&&&&PCB钻孔路径优化属于大规模TSP问题,若采用基本蚁群算法进行优化,其优化效率将很低,难以满足实际应用需求。为此,本文提出一种基于聚类分区的蚁群算法,利用分解策略降低大规模TSP问题求解的复杂性,可以获得满意的优化质量及优化效率。基于聚类分区的蚁群算法的基本思想为:利用聚类方法把大规模TSP问题的城市分成若干子区,接着对每一个子区分别使用蚁群算法进行优化求解,最后将每个子区都当作一个整体,应用蚁群算法确定各子区之间的最优连接顺序,并将各子区的优化解连接起来,从而得到大规模TSP问题的一个近似最优解。这种算法中,每一个子区TSP问题和各子区组成的TSP问题都是小规模TSP问题,利用蚁群算法能够获得很好的优化效果,并且易于实现,实用性很强。综上所述,基于聚类分区的蚁群算法求解大规模TSP问题可以分为三大步骤:聚类分区、子区的优化求解、子区的连接,下面分别介绍每个步骤的实现方法:1.聚类分区方法传统的聚类算法主要有以下几类:划分聚类、层次聚类、基于密度的聚类、基于网格的聚类、基于模型的聚类。K均值聚类(K-meansclustering)算法是MacQueen在1967年提出的一种典型的划分聚类方法,运行时所需存储空间小,运算速度快,各聚类本身尽可能的紧凑,并且算法简单,易于实现[39]。因此,基于聚类分区的蚁群算法采用K均值聚类作为聚类分区的基本方法。假设有n个数据对象,分区数定为K,则K均值聚类算法的一般流程为[40][41]:1)从n个数据对象中任意选择K个对象作为初始聚类中心;2)按照最近邻原则,将剩余其它数据对象分配到步骤1)中得到K个簇中;3)计算每个新聚类的聚类中心,即该聚类中所有数据对象的平均值;4)按照最近邻原则,将所有数据对象重新分配到与它最近的簇中;5)不断重复步骤3)和步骤4),直到满足给定的终止条件为止。对于TSP问题,“数据对象”即为城市坐标。K均值聚类的终止条件规定为:&&&&(Xij?1?Xij)2+(Yji?1?Yji)2&&&&&&&&(3.9)&&&&&&&&其中,(Xij,Yji)为子区i(i?1,2,&&&&&&&&,K)第j次聚类的聚类中心;?为聚类中心允许误差。&&&&&&&&基于聚类分区的蚁群算法中,子区优化以及子区连接都需要使用蚁群算法。因此,聚类分区的分区数和分区规模对基于聚类分区的蚁群算法的整体优化效率和优化质量有重要影响。当TSP问题的城市数目n确定时,若分区数小,则分区规模大,子区优化时间长,子区连接时间短,TSP问题的解将趋近于全局最优解;若分区数大,则分区规模小,子区优化时间短,子区连接时间长,TSP问题的解易陷入局部最优解。实际应用中,大规模TSP问题的优化效率非常&&&&24&&&&&&&&&&&&南京航空航天大学硕士学位论文重要,由于分区数决定子区连接的时间,分区规模决定子区的优化时间,并且待优化的子区一般都有多个,所以子区实际规模对于整体优化效率影响更大,子区规模控制显得更加重要。聚类前应先根据优化效率的要求指定分区平均规模M,然后根据TSP问题的城市数目n,利用式(3.10)计算K均值聚类的初始K值。&&&&&&&&K?&&&&&&&&nM&&&&&&&&(3.10)&&&&&&&&假设K均值聚类得到的各子区规模为Mi(i?1,2,&&&&&&&&,K)。对于一些城市分布很不均匀的大规&&&&&&&&模TSP问题,一些子区的规模Mi可能很大,影响优化效率。例如,对于城市数目为15000的TSP问题,将分区平均规模M设为80,如果城市分布极为不均,那么一些子区的规模Mi很可能达到数百,导致优化效率大幅降低。为了防止这种情况的出现,引入分区规模限制参数MLimit。当Mi?MLimit时,则利用K均值聚类算法再对子区i进行聚类分区,直到所有子区规模都小于&&&&&&&&MLimit。因此,聚类分区最终的分区数Kact将是上述过程得到的所有子区的总数。&&&&2.子区的优化求解方法基于聚类分区的蚁群算法求解大规模TSP问题时,每个子区的优化路径只是整个大规模TSP问题优化路径的一段,因此,子区的优化路径应该是非封闭的,即每次遍历子区所有城市后不需要返回起始城市。于是,利用蚁群算法优化子区路径时,式(3.8)中的蚂蚁路径长度Lk不应该包括从终点城市回到起始城市的那一段路径。3.子区的连接方法任一子区i(i?1,2,&&&&&&&&,act优化完成后,都有一个起始城市(Xsi,Ysi)和一个终点城市K)&&&&&&&&(Xei,Yei)。子区之间通过起始城市和终点城市连接起来后,就组成了大规模TSP问题的一个解。&&&&为了获取大规模TSP问题近似最优解,需要对子区的连接顺序进行优化。假设Ci(Xci,Yci)为子区i起始城市(Xsi,Ysi)和终点城市(Xei,Yei)的中点,则:&&&&&&&&Xsi?Xei2Ysi?YeiYci?2Xci?&&&&Ci(i?1,2,&&&&&&&&(3.11)(3.12)&&&&&&&&为了实现子区的连接顺序的优化,将子区i当作一个整体,用Ci代表子区i。把所有&&&&&&&&,Kact)组成的集合作为一个TSP问题进行处理,用蚁群算法优化后就得到了各个子&&&&&&&&区的连接顺序。依据此顺序将每个子区的最短路径连接起来就获得了大规模TSP问题的一个近似最优解。PCB钻孔路径优化属于大规模TSP问题,本文采用基于聚类分区的蚁群算法对这一问题进行优化求解。从PCB钻孔最佳走刀路径的模型可知,求解过程中必须用两孔之间的走刀等效距离D*代替欧几里德距离进行优化计算处理,以得到符合PCB钻孔走刀路径优化要求的一个近似最优解。&&&&25&&&&&&&&&&&&基于PC的PCB钻孔机数控系统的研究与开发&&&&&&&&3.4.3走刀路径优化的软件实现&&&&本文采用基于聚类分区的蚁群算法进行PCB钻孔走刀路径的优化求解,其软件实现主要包括三部分:孔聚类分区的实现、子区路径优化的实现、子区连接的实现,下面对此进行详细介绍:1.孔聚类分区的实现钻孔路径优化前,NCDrill文件中所有孔的位置坐标都已经存储在系统内存中。因此,聚类分区的过程不需要对孔的位置坐标另行存储,存储子区信息的结构体定义如下:typedefstruct_CLUSTER_INFO_{intToolNo;intZoneNo;intZoneHoleNdoubleClusterXPdoubleClusterYPTList*HoleP}CLUSTER_INFO;其中,刀具号ToolNo是为了区分不同直径的孔,便于访问相应的孔位置坐标;而HolePosi指针指向一个TList类型的链表对象,此链表对象存储的是子区内每一个孔位坐标的指针。孔聚类分区的输入参数包括分区平均规模M、分区规模限制参数MLimit以及聚类中心允许误差?,整个过程的总体流程图如图3.7所示。&&&&开始对同一直径的所有孔进行K均值聚类分区&&&&&&&&//刀具号//子区号//子区的孔总数//聚类中心X坐标//聚类中心Y坐标//孔坐标指针链表的指针&&&&&&&&对不符合要求的子区再次进行K均值聚类分区各子区规模是否小于MLimit?Y结束N&&&&&&&&图3.7孔聚类分区总体流程图K均值聚类分区时,需要指定初始聚类中心,应该从待分区的孔集合中随机选取。C++Builder提供了random(intnum)函数,它可以产生一个0~num-1之间的随机整数。以待分区的孔&&&&&&&&26&&&&&&&&&&&&南京航空航天大学硕士学位论文的总数作为参数调用此函数,能够获得一个随机数。将这个随机数作为待分区的孔集合对应的孔坐标指针链表的节点编号,可以获取一个唯一的孔,从而得}

我要回帖

更多关于 热熔数控钻孔机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信