技术教程

二维振镜式扫描系统及其在SLS中的应用

字号+ 作者:彭雪峰 来源:未知 2016-08-28 20:11 我要评论( )

【图片1】 【图片2】 AThesisSubmittedinPartialFulfillmentoftheRequirements fortheDegreefortheMasterofEngineering ResearchonKeyTechnologyforRapidDevelopmentof Pre


 
A Thesis Submitted in Partial Fulfillment of the Requirements
for the Degree for theMasterofEngineering
 
Researchon Key Technology for Rapid Development of
Precise Plastic Product
 
Candidate : Lu Jun
 
Major : Material Processing Engineering
 
Supervisor : Prof. Shi Yusheng
 
Huazhong University of Science & Technology
Wuhan 430074, P.R.China
April, 2005

 
 
摘要

   在快速成型系统中,如选择性激光烧结成型(Selectivelasersintering,SLS),最重要的扫描模块一般都是采用的国外成套的三维动态聚焦振镜系统。而三维动态聚焦振 镜系统的价格,不管是德国的ScanLab还是美国的GSI、NutField都在1万多美元, 因此,快速成型设备的成本一直居高不降。这是制约国内快速成型事业发展的主要因素。
 
    二维振镜加F—Theta透镜构成的物镜前扫描系统(后面简称二维振镜式扫描系 统)的价格相对于三维动态聚焦振镜扫描系统来说要低的多,并且其在小扫描面积 300mmX300mm)中是可以用做扫描机构的,只是与三维动态聚焦振镜扫描系统相比, 精度还存在着差距。如果在小扫描面积的快速成型设备上用二维振镜式扫描系统取代 三维动态聚焦振镜扫描系统,并在扫描精度上取得突破,那么快速成型设备的成本将 大大降低。本文就是基于这个目的,对二维振镜式扫描系统进行开发。
文中详细介绍二维振镜扫描系统的模型的建立,并且对其设计方案进行说明, 如在光学模型中,我们选用的是物镜前扫描方式,利用F—Theta透镜的平面聚集特点; 选择合适的扫描卡,并且分析其控制系统;开发出上层扫描软件和底层驱动程序;最 后分析图形失真的原因,提出图形失真校正算法,并且编写出校正软件。在经过大量 的扫描试验后,二维振镜式扫描系统在小面积的SLS设备上的扫描精度可以达到< 0.3mm
 
关键词:二维振镜式扫描系统、图形失真、校正
 

 Abstract

   In the Rapid Prototyping System, as Selected Laser Sinter (SLS), the most important part is the Galvanometric Laser Scanning System ?which always adopts the foreign 3D Galvanometric Laser Scanning system with Dynamic Focusing. But the price of those are above ten thousand dollars, so the cost of Rapid Prototyping equipment can not be cut down ,which is the primary reason that prevents domestic Rapid Prototyping Technique developing.
   The price of Galvanometer with F-Theta Lens Focusing(For short:2D Galvanometric Scanning System) is a few lower than that of 3D Galvanometric Scanning system with Dynamic Focusing, just the scanning precision of 2D Galvanometric Scanning System is lower than that of 3D Galvanometric Scanning System in the small scanning area(the area less tiian 300mmx300mm). If in the small area adopting 2D Galvanometric Scanning System and improving the scanning precision, the cost of Rapid Prototyping equipment will be cut down enormously.
   The theory of the 2D Galvanometric Scanning System is carried out first, and the designing scheme is brought forward. The appropriate control card is selected for the Galvanometer and the control scheme is brought forward. Scanning software and device driver software are researched and realized. The reason of image distortion is analyzed to study the correcting arithmetic and the correcting software is realized. At last , plenty of scanning tests are carried out .The optimal scanning precision is less than 0.04mm.
 

Keywords: 2D Galvanometric Scanning System Image distortion Correcting


1绪论

1.1振镜扫描系统简介
   激光扫描是随着激光打印机、激光照排机等应用逐渐发展起来的一项技术,随着 其发展它己经被应用到其他很多领域,如光学医疗、激光加工、图像传输w等。振镜 扫描属于光机扫描方式,通过机械装置带动反射光束的偏转,实现激光光束在扫描视 场上的移动。它的机械部分是由X、Y两个扫描头组成的光束偏转器[2],每个光束偏 转器上都带有一个微小的反射镜片,这两个镜子的不同偏转方式就可以在扫描视场上 扫出不同的图形。
   在振镜扫描过程中要考虑很多因素,就拿扫描视场来说,就要优化组合聚焦光斑 的大小、扫描面积、焦深、工作距离、扫描线性度等因素,才能扫描出效果很好的图 形。为了满足工艺要求,通常在扫描系统中配置聚焦系统,以获得理想的聚焦光斑大 小和激光功率密度。
    根据聚焦系统位置的不同,可把振镜式扫描主要分成了两种扫描模型m,即 物镜前扫描和物镜后扫描。物镜前扫描是指从激光器出来的激光束被扩束、准直 后,先经光束偏转器偏转,然后由平面聚焦镜(F-Theta透镜)将光束聚焦在扫描 视场上[4]。物镜后扫描是指从激光器出来的光束被扩束、准直后,先经聚焦系统 聚焦后,再经二维光束偏转器反射到扫描视场上。对于小扫描面积,可采用静态 聚焦方式,而对于大扫描面积,由于有较大的离焦误差[4],通常采用动态聚焦方 式补偿离焦误差。物镜前的静态聚焦扫描主要应用于小面积扫描领域,如激光打 标,在大面积扫描领域,目前应用还不多,主要原因是随着扫描面积的增大, F-Theta透镜的造价增大,使得设备的成本增加。带动态聚焦系统的物镜后扫描可 以取得很高的扫描精度,现在己经有十分成熟的理论和经验,在大扫描面积中应 用得十分广泛。
 
1.2二维振镜式扫描系统的研究发展现状
   激光扫描技术经过多年的研宄,已经比较成熟,并且己经有成熟的激光扫描系统 投放市场,如美国的GSI公司、Nutfield公司、德国的ScanLab公司等都能够生产商 品化的三维动态聚焦振镜扫描系统。在快速成型系统中都是采用这种扫描精度很高的 三维动态聚焦振镜扫描系统,但是它们的价格都在1万美元左右,使得快速成型设备 的成本很高。本文所研究的二维振镜式扫描系统所有成本共4万人民币左右,比一套 动态聚焦振镜扫描系统便宜得多。
   目前,二维振镜式扫描系统只是在打标机上得到应用,在快速成型系统中还没有 应用的先例。不过,打标机的扫描光程很短,最大只有300mm,并且它的扫描面积也 很小,最大只有llOmmX 110mm。而快速成型设备中要求的光程和扫描面积都要大的 多,如SLS中,光程一般在500mm左右,扫描面积在300mmX300mm左右,光程 和扫描面积的增大,扫描图形的失真必然会增加m。因此,对于图形失真的研究将成 为本课题的重点
 
1.3课题来源、目的和意义
   本课题来源于:(1)湖北省自然科学基金创新群体项目“快速制造关键技术”(项 目批准号:2004ABC001)。(2)湖北省科技攻关计划“数字式动态聚焦振镜激光扫描 技术”(项目批准号:2004AA101C27)。
    在快速成型系统中,像SLS[6],小扫描面积的设备在国内的需求量很大。在SLS技 术的发展过程中,一般都是采用的国外成套的三维动态聚焦振镜系统来作为扫描的执 行机构,而三维动态聚焦振镜系统的价格,不管是德国的ScanLab还是美国的GSI、 NutField都在1万美元左右,因此,快速成型设备的成本一直局高不降。这是制约国 内快速成型事业发展的主要因素。
   二维振镜式扫描系统的价格相对于三维动态聚焦振镜扫描系统来说要低的多,并 且在小面积扫描中可以用做扫描机构,只是与三维动态聚焦振镜扫描系统相比,精度 还存在着差距。如果在扫描精度上取得了突破,用二维振镜式扫描系统取代三维动态 聚焦振镜扫描系统,那么快速成型设备的成本将大大降低。
    华中科技大学快速制造中心一直致力于国家快速成型事业的发展,我们在追求快 速成型技术的突破和创新的同时,也在不断的寻求快速成型设备成本的突破口,以适 应我国的国情,让我国快速成型事业发展的更加壮大。为此,本课题组将二维振镜式 系统应用于SLS中,将对其控制系统以及图形失真的校正进行研宄,力求使其扫描精 度达到了三维动态聚焦系统的扫描标准。
 

1.4本论文的主要工作
本论文的主要工作包括以下几个方面:

 

  1. 二维振镜式扫描系统模型的建立

  2. 本系统的软件开发工作

  3. 校正算法的研究以及软件的实现

  4. 试验结果及其分析

 因此,本文的后续章节按以下顺序组织内容:

 
   第二章:振镜式激光扫描的原理。主要介绍了二维振镜、三维动态聚焦振镜系统 的扫描原理,并且分析了这两中扫描方式的优缺点以及实现二维振镜式扫描系统的可 能性和应用前景。
   第三章:二维振镜式扫描系统模型的建立。主要介绍了 F-Theta透镜的特点、物 镜前扫描的数学模型、控制系统和电气电路的连接。
   第四章:二维振镜式系统的软件开发。主要介绍了本系统的上层支撑软件的开发、 底层硬件驱动程序的开发。系统中的软件开发主要是基于WmdowsNT的,对于 WindowsNT的特点做了详细的介绍,并且对底层驱动程序的开发工具、开发过程也 做了详细的介绍。
    第五章:图形失真校正算法的研宄以及软件的实现。在本章中,分析了图形失真 的原因,并就控制系统的非线性和图形误差提出相应的解决方案,说明了其算法的实 现以及软件的实现。
   第六章:实验结果及其分析。对本系统在SLS中的应用结果做了详细的介绍, 并且对试验结果做了相应的分析。
   第七章:总结与展望。此章对课题的研宄内容和研究所取的成果进行总结,并对本系统的应用作出展望。
 

2振镜扫描系统原理

2.1振镜扫描系统的概述
   激光扫描系统基本上都是由激光器、扫描头、光路转换器件、接收装置及需要的 反馈系统构成。在激光扫描系统中,扫描头是最主要的关键部件,光束在工作台面上 的扫描过程是由扫描器件接受指令来完成的。目前扫描器件有很多种,如机械式绘图 扫描器、声光偏转器件、二维振镜扫描器件等m。快速、高精度的激光振镜式扫描系 统是激光扫描技术发展的总趋势,振镜式扫描系统以其快速、高精度的性能特点成为 激光扫描系统中最广泛的应用之一。
    振镜式扫描系统由XY轴伺服系统和XY两轴反射振镜组成。当向XY轴伺服系 统发出指令信号,XY轴电机就能分别沿X轴和Y轴作出快速、精确偏转。从而,激 光振镜式扫描系统可以根据待扫描图形的轮廓要求,在计算机指令的控制下,通过 XY两个振镜镜片的配合运动,投射到工作台面上的激光束就能沿X-Y平面进行快速 扫描。在大视场扫描中,为了纠正扫描平面上点的聚焦误差,通常需要在振镜系统前 端加入动态聚焦系统;同时为了满足聚焦要求,需在激光器后端加入光学转换器件(如 扩束镜,光学杠杆等)。这样,激光器发射的光束经过扩束镜之后,得到均匀的平行光 束,再经过动态聚焦镜聚焦,依次投射到XY轴振镜上,经过两个振镜的二次反射, 最后投射到工作台面上,形成扫描平面上的扫描点。理论上,我们可以通过控制激光 振镜式扫描系统镜片的相互协调偏转来实现平面上任意复杂图形的扫描。
 
2.2二维振镜扫描原理
   二维振镜是通过X—Y轴电机带动反射镜片偏转来实现平面扫描的,一般应用 于小扫描面积。其扫描原理图如下图2.1所示[8]。
    激光束以一定入射角照射到X反射镜上,经X镜反射到Y轴反射镜,然后经过轴的反射镜反射,投射到工作台面上的某一点p(x, y),设ex为X轴反射镜的偏 转角,eySY轴反射镜的偏转角。当0X、ey均为o时,则光斑会打在工作平面的 原点位置(0, 0)。这时候的光程(以聚焦镜为计算光程的起始点,e为X轴反射镜 到Y轴反射镜的距离,以打在扫描平面上的光斑点为计算光程的终点)为L=d+e;当


2.3三维动态聚焦振镜系统原理
   在小视场情况下,由于在整个视场范围内,离焦误差可以保证在聚焦镜焦深范围之内,在现场各个位置都能较好的聚焦。但是在大视场、高精度的扫描场合中。为了获得比较好的扫描效果,就要求投射到扫描工作面上的光斑半径控制在一定范围 之内;要求在扫描平面内的任意位置,激光束都要求能很好的聚焦。如果仅在光路中 使用固定的聚焦镜,则激光束只能在光路上的某一小范围内较准确的聚焦。而在这个 范围外的其他位置进行扫描时,激光束不能在工作台面上的扫描点上准确聚焦,光程 发生变化,光斑发生畸变(光斑尺寸变大,拉长),不能满足扫描精度要求。如图2.2 所示:


光束的直径D的增大而增大,随聚焦镜焦距/的增大而减小。
 
    在大视场情况下,普通的固定式聚焦镜无法保证精确的扫描,为此需要在振镜 前端加入动态聚焦系统。动态聚焦系统是由可以沿光路作直线运动的透镜来保证光 束的焦点位置跟随光斑在平面上的移动(即光程的变化)而相应的变化来实现对聚 焦误差的实时动态补偿,因而具有动态的聚焦作用。随平面上扫描点位置的不同, 动态聚焦镜前后移动,从而保证扫描平面上扫描点的准确聚焦。动态聚焦镜的运动 是通过直线转换器来实现的,它将旋转运动转化为直线运动,可以双向运动,一般 常用的动态聚焦镜的焦距最大位移量为±5mm,如果需要更大的移动距离,则需要 采用光学杠杆放大机构来实现。一般情况下,是采用正透镜先扩束,再用物镜聚焦。 当需要采用功率较大激光器时,为了避免在中间形成很亮的聚焦点而损伤透镜,需 要采用负透镜作动态扩束镜。二者杠杆原理是相同的。带动态聚焦振镜系统示意图 

 

  δL为聚焦误差。x是该点的X轴坐标,y是该点的Y轴坐标,d是Y轴振镜到扫描平面的垂直距离。动态聚焦系统就是为了补偿这个聚焦误差δL。
 
2.4本系统的可行性分析
   综上所述,三维动态聚焦振镜系统在大面积扫描中,能够发挥其本身的优越性, 它能够在扫描过程中实现动态聚焦,消除工作面上的离焦误差。但是在小扫描面积中, 三维动态聚焦振镜系统的优越性能就不能完全体现,因为二维振镜式扫描系统在小扫 描面积中的扫描精度也可以达到很高,这己经在实际中得到应用,如在打标机上,在 llOmmXllOmm的扫描面积以内,扫描精度可以达到<0.02mm。根据分析二维振镜的 数学模型的结果,我们得出结论,二维振镜和F—Theta透镜构成的二维振镜式扫描系 统的精确扫描面积可以达到300mmX300mm。而且二维振镜系统相对于三维动态聚 焦振镜系统来说,在硬件上少了动态聚焦模块和其驱动系统,其控制难度就小的多。 另外,一个扫描头及其控制卡和一块F—Theta透镜总共成本不超过4万人民币,比一 套三维动态聚焦振镜系统价格要便宜的多。
   目前,这种二维振镜式扫描系统只是在打标机上有应用,在快速成型系统中还没 有得到应用。快速成型中的扫描面积相对与打标机的要大的多,扫描面积的增大,图 形失真必然会加重。我们对打标机中的扫描模型进行详细分析后,得到以下结论:达 标机中的光程很短,并且它的扫描模型中更本没有加校正系统,如果我们在快速成型 系统中建立这种二维振镜式扫描系统,然后在其中开发一套校正模型,力求扫描精度 接近三维动态聚焦振镜扫描系统的扫描精度。

 

(3)二维振镜式扫描系统模型的建立
 

   对于一个振镜式扫描系统,需要考虑的因素有很多,例如:激光的波长、光束半径、扫描速度、重复定位精度、聚焦光斑的大小、扫描面积、焦深、工作距离、扫描 的线性度等[n],并且这些方面要优化设计和良好组合,才能得到满意的扫描效果。
   本章中,着重从振镜的光学系统和振镜的控制系统两个方面来探讨和研究,得出 了本系统的可行性的依据,并在此基础上搭建了本系统的模型。
 
3.1光学系统的设计
通常,扫描光束的直径取决于整个扫描系统的应用领域和使用目的。为了在扫描 场上获得较大的激光能量,需要对激光器出来的光束进行聚焦处理。由于二维振镜是 没有动态聚焦系统的,因此为了消除离焦误差,满足高精度的扫描要求,必需根据激 光聚焦的特性为它选择一个聚焦透镜。
 
3.1.1激光聚焦的特性
   激光光束是一种在传输过程中曲率中心不断变化的特殊球面波[12],经透镜形成的 聚焦光斑与常规的聚焦光斑不再相同,因而影响到扫描精度。和均匀平行光束的成像 相比较,激光光束经透镜后形成的光场具有如下特点:
   1.光场能量由周围环带向中央光斑集中,但中央光斑宽度有所增加。中央光斑 的总能量和它的宽度都随激光束口径与透镜通光口径之比的减小而加大。
   2.激光束横向、轴向位移不影响成像焦斑中心位置和光强分布的对称性,但会 使焦斑半径略有增加。随着激光口径与透镜通光口径之比的减小,位移对焦斑半径的影响也会加大。
   一般情况下,激光光束的能量分布曲线为高斯曲线,经过球面镜后的激光光束能 量分布仍为高斯分布。激光聚焦特性主要包括实际焦距与几何焦距(理想平行光焦距) 的差异、焦斑大小和焦深的变化。
   激光光束的聚焦特性参数Kf的定义为[13]:聚焦前、后光束的束腰半径X远场发 散半角。表达式如下:


 
式(3.6)表明,聚焦光斑直径的大小与激光器的光束质量和激光的波长有关。 当聚焦角相同时,激光器的光束质量越好,波长越短,则聚焦光斑的直径越小,所能 获得的激光功率密度越高,激光器的加工能力越强。
 
3.1.2  F-Theta透镜的聚焦原理
   F-Theta具有平面聚焦的特点,在聚焦平面的任何一处,聚焦光斑的大小一致,价格上 也比动态聚焦系统要便宜的多,因此,在扫描系统中我们选择F—Theta透镜来进行聚焦。
   F—Theta透镜的成像原理图如图3.1,平行的入射光束经透镜后,聚焦于平面。

 

 
3.1.3扫描模型的构建
如图3.2,入射光束经过二维振镜的X、Y反射镜偏转后,再由F—Theta透镜聚 焦于扫描视场上。当X、Y扫描头接受到指令,按照一定规律偏转时,就在扫描视场 上画出相应的图形。

图3.2扫描原理图

扫描线端点在扫描视场上的轨迹为[15]:
 


 
 
 
   式(3.8)、(3.9)表明,各扫描头的机械偏转角与扫描视场上扫描点的坐标之间 为复杂的三角函数关系。因此,这种扫描模型是一个非线性系统。
理想情况下,光束经F-Theta透镜成像后的像高与视场角(单位为弧度)之间应满足∫.θ的特性关系。但是,由于在设计和加工等过程中不可避免地会产生一个△定的误差,从而导致光束经F_Theta透镜成像后的像高与理想情况下数值有一个A量的误差,即:
 

 
 
   显然,从式(3.13)、(3.14)可以看出二维振镜式扫描的像点坐标和振镜摆角之间 是个复杂的非线性关系,由于误差的存在,不可避免地产生光点的定位误差从而导致 扫描图形的畸变。所以,校正扫描畸变的关键在于能否按式(3.13)、(3.14)非线性地 控制振镜偏转进行扫描。关于误差的校正,在后面的章节将详细说明。
 
3.2振镜控制系统的设计
   二维振镜的控制系统是一个多轴联动的数控系统,系统中的运动轴包括X轴(X 扫描头)、Y轴(Y扫描头)。设计一个先进的、符合振镜特定功能要求的数控体系结构是实现振镜式激光扫描的前提。数控体系的体系结构直接影响着系统开发的灵活 性、开放性和实时性。根据上述要求,二维振镜式扫描系统的数控体系结构采用基于 PC机平台的软件NC模式。
   所谓的“软件NC”是指CNC的功能处理,如插补运算等,全部由PC机进行,并 通过装在PC机扩展槽中的接口卡对伺服驱动进行控制系统的结构如图3.3所示。
 

 
 
    为了进一步优化软件结构,将扫描系统的各个功能进行划分,各功能子模块以“软 件芯片”的形式存在,对内实行数据和功能的封装,对外提供功能接口。
3.2.1  振镜电路的传递函数
    对于一个控制系统来说,首先要知道它的传递函数,然后才能分析这个系统的特 性以及最终以什么技术来实现对该系统的控制。振镜系统就是一个小的控制系统,它 的传递函数如下[18]:
 

 
 
   传递函数表明,振镜系统是一个三阶系统,但由于振镜线圈的电感量L很小, 与其阻值R相比可以忽略,因此传递函数可以简化为:

 
因此振镜的实际工作状态属于二阶系统。传递函数的方框图如图3.4所示[19]
 
 
   其中:为线圈的反电动势。
   设振镜系统的电路中,伺服控制电路的传递函数为Gi,驱动电路的增益为Z,., 则振镜电路传递函数的方框图如图3.5:
 


 
   图3.5是双闭环系统,其中将位置传感器的输出信号电压负反馈到振镜电路的输 入端,作为伺服控制信号。将振镜线圈中的一部分电流负反馈到驱动电路的输入端, 以消除因线圈电感的存在而造成的电流对电压的滞后,提高系统的响应速度,同时调 节系统增益,使系统更趋稳定。伺服控制电路采用PID技术[2<)〜22],对误差信号进行 微积分处理,使振镜扫描处于良好的临界阻尼状态。
 
   位置信号在振镜电路里极为重要的。因为一方面它作为伺服控制的信号电压,另 一方面它又直接反映了振镜的偏转角度和扫描位置。位置信号取自位置传感器,位置 传感器在结构上是与振镜连在一起的。位置传感器的种类很多,我们这里将电容作为 位置传感器[23],当振镜的转子偏转时,位置传感器电容的容量发生正负变化,加在其 上的高频激励电压的幅值随之发生正负变化,经分析计算表明,电压幅值的变化量即 位置传感器的输出信号电压与位置传感器电容的容量变换成正比,与振镜偏转角成正 比(即线性关系)。因而位置信号电压反映了振镜偏角位置。位置信号电压最终通过 二极管检波和滤波电路滤波后取得。
    需要考虑的是,要取得符合要求的位置信号电压,除了检波和滤波外,还须从结 构上和电路上米取措施,保证其误差和漂移在允许的范围内。电路上要考虑两点,一' 是输入给位置传感器的高频激励电压的幅值保持不变,否则传感器的输出电压会产生 误差。二是给振镜头加以恒温,使电子元器件免受环境温度的影响,从而防止位置信号产生漂移。
 
3.2.2   振镜扫描的插补算法
   高精度插补是数控系统实现高精度的必要条件[23™25]。结合振镜扫描系统的数控体 系结构,本系统采用基于时间分割原理的直线插补算法,以绝对方式计算插补轨迹。
   按数学模型划分,插补算法有两种,一种就是采用微段法,将整个运动曲线分成 很多微小的直线段,将插补周期适当调整,使其在每一次插补周期内完成微段运动。 这种插补算法比较简单,但插补的精度和效率都很低。另一种是根据给定的数学函数, 诸如线性函数、圆函数或高次函数,在理想的轨迹或轮廓上的己知点之间,确定一些 中间点,决定每一次运动轨迹。这种插补算法比较准确,可以将运动轨迹适当分成若 干段,用一阶或高阶的函数去拟合曲线。但这种插补算法的计算量比较大,建立曲线 方程的过程也将影响插补的效率。这种插补算法的实现主要由计算机完成。其中,根 据线性函数插补是最基本的插补方式。
   根据输出信号的方式,插补方法可分为脉冲插补和数字增量插补。前者输出的是 脉冲序列,如逐点比较法和数字积分法;后者速度输出的是数字增量,如时间分割插 补法。目前,基于时间分割插补的数控系统以成为数控的主流。
   如图3.6所示,时间分割法的插补计算原理[26]是根据合成速度V,计算出每个固定 时间内的距离,并根据轨迹的特点,计算该时间段中各个联动坐标轴应移动的距离, 然后将该距离变换成各个坐标方向上的均匀运动。
 

 
   通常,这个固定的时间段称为插补周期,计算各个轴运动距离的过程称为粗插补, 而实现移动这个距离的过程称为精插补。其中,粗插补由软件完成,精插补由软件和 进给伺服系统配合完成。
   在插补过程中,插补周期是影响数控系统控制精度和速度的关键因素。为了保证 较高的控制精度,有效的方法是减小插补周期的长度,以提高系统的分辨率[27]。
   相对于其它插补算法,基于时间分割原理的插补算法效率很高,占用CPU时间短, 使系统在插补运算的同时可以完成其它工作。这种插补方法能实现很高的控制精度。
 
3.2.3插补轨迹的计算方法
   在进行高速、高精插补时,由于插补周期短,使每个采样周期所产生的插补直线 段很短,这往往造成插补直线段的总数量很大。特别当被插补曲线较长时,插补直线 段的数量将非常大。
   若仍采用常规增量插补算法,则误差积累效应将比较明显,对插补精度将造成不 可忽略的影响。为了提高扫描精度,在本系统中,采用绝对式算法计算插补轨迹。
   所谓“绝对式”是指每一个轨迹点的坐标计算都以模型坐标原点为基准进行。这 种方法可以消除累加误差,有效地保证插补计算的精度,具体算法如下:
   设直线的斜率为K,扫描速度为V,插补周期为Ar, N为插补段数,则各插补直 线段的位移为:
 

 
 
   相对增量式递推算法,绝对式算法的最大优点是消除累积误差。增量式递推算法 虽具有单步计算量小,计算速度快等优点,但当前点的坐标值是以前面一点的坐标值 为基础计算出来的,这样,即使计算公式没有原理性误差,但前一步的计算误差将通 过递推计算传递到后一步,与后一步的计算误差相叠加,造成误差累积,对插补精度 造成影响。
 
3.2.4系统的位置伺服控制
   数控系统基本的闭环控制原理是:控制核心将插补计算的理论位置与实际反 馈位置进行比较,用其差值去控制执行电机,使实际值与理论值趋于重合,从而消除位置误差。
   对于振镜的每个运动轴,均采用闭环控制方式。通过各电机转轴上的位置传感器, 获取电机转轴的角位移误差,将其反馈给电机控制器,并与插补数据综合,通过一定 的算法,形成对伺服电机的二次控制,达到减小电机角位移误差的目的。这种闭环控 制方式的优点在于具有良好的实时性,较高的响应精度。
    在数控系统中,闭环控制与插补过程是紧密相关的,闭环控制以插补的数据为控 制基础。常规的数控系统一般要经过插补、输出、反馈等几个环节。传统的方法是插 补一次,发出一个脉冲,检测一次误差。在这种方法下,控制过程是一种顺序过程, 其中各个环节相互制约,因此很难实现系统的快速响应。
    基于数据缓冲区的闭环控制方式的基本原理是建立一个或多个数据缓冲插补区, 插补后的控制数据存放在此缓冲区中。位控系统从缓冲区中取出数据,直接控制伺服 电机。数据缓冲区可以定义为一个先进先出的数据队列,长度和数量根据系统处理速 度确定。在这种方法下,位控过程与插补过程是相对独立的,它们仅通过数据缓冲区 进行数据传递。位控系统可以同时处理多个数据,而不必等待插补过程的执行。基于 数据缓冲区的闭环控制方式利用了计算机先进的多任务并行处理技术,从而提高了控 制系统的响应速度。

3.2.5误差补偿技术
    理论研究和试验都表明,扫描视场上的扫描误差不仅受扫描头定位精度的影响, 还受系统中其它非线性误差的影响。为了提高扫描精度,可采用误差补偿技术[29~31] 消除综合误差的影响。
   误差补偿的实现方案是建立扫描误差的数学模型,然后对扫描视场上的扫描误差 进行精度测定,并据此确定误差模型的有关参数。在扫描过程中,由数控系统根据数 学模型,计算出误差补偿值。通过修改插补数据,将扫描误差在下一次输出的结果中 加以修正。
    在某种程度上,误差补偿的精度取决于扫描视场上检测装置获取信息的准确程度 和误差校正模型的精度。如果能有效地提高检测装置地精度和误差模型地精度,则扫 描系统可以达到很高地精度。
   在本系统中,扫描头地控制采用误差补偿技术和运动轴闭环控制相结合地控制 方式后,既满足了系统地动态响应要求,又使扫描精度有很大地提高。
 
3.3振镜系统硬件电路的构成
   我们选用美国NutField公司的扫描头,以及该公司扫描头所带的QuantumDrive— 3000 (QD-3000)伺服驱动板。NutField公司的扫描头电机的轴心是采用特种陶瓷做 成,具有惯量小,受温度影响底、定位精度高的优良性能。QD — 3000伺服驱动卡是 可以控制广范围内的检流,并且可以控制多种输入命令下的负载。该驱动卡集成了最 新的带有系统安全和状态特征的模拟伺服科技。它能够完成快速伺服反应,并且具有 低噪音和低温漂的特点。
   QD—3000有两种输出放大方式:一种是单输出方式,需要提供的电压是±20V〜 ±28V直流电压;另一种是双输出放大模式,需要的电压是±15〜±20V的直流电压。 双输出模式是利用检流计将低压放大两倍。
   PC机出来的信号是数字信号,但是振镜头只能识别模拟信号,因此我们选择了一 块A/D卡进行数模信号的转换。这块A/D卡有两个通道,每个通道带有8位I/O口,分别对X轴和Y轴偏转电机进行控制,实现了上位机系统与扫描头通讯,其原理图如图3.8:
 

 
   图中J5是电源接口,电源为±15V直流电源。
   综上所述,本系统选用的是二维扫描头,虽然去掉了动态聚焦模块,但是我们 利用F-Theta透镜的特性来对扫描台面上的离焦误差进行补偿,为了提高系统的扫描精 度,在扫描过程中,采用了基于时间分割原理的直线插补算法,以绝对方式计算插补 轨迹。在扫描试验过程中取得了很好的效果,有关试验效果的说明将在以后章节中详 细说明。

 

 

4.二维振镜式扫描系统软件开发

   对于振镜系统而言,它是按照控制卡发出的命令来协调动作以及精确定位的。软 件系统所要实现的目标就是按要求以一种最优的方式发出指令,控制振镜系统精确、 快速而且平稳的定位。
   整个软件系统包括上层用户软件的设计和底层设备驱动程序的设计。在上层用户 软件中,我们主要实现几种基本曲线的速度规划、插补运算和坐标转换;底层设备驱 动程序主要根据上层用户程序传送的数据对控制卡进行控制,从而控制振镜在平面上 进行精确扫描。
   在软件开发中,我们采用面向对象的编程方式,为每个控制对象创建一个类,通 过类来实现控制。同时,在Windows NT环境下实现硬件的粗像,必须编制设备驱动 程序来操作硬件;为了跟底层设备驱动程序的通信,我们创建一个CDevice来实现。
   在上层软件中,CModel类为扫描系统的数学模型的实现,它包括各种算法以及 数据的处理,是整个二维扫描系统的核心;CScanSystem类为振镜的扫描的实现部分, 包括相关的动作、参数设置;CDeV1Ce类实现与底层设备驱动程序的通信,同时我们 需要用到串行通信口,这由CComPort类来实现。
   整个系统是基于WindowsNT操作系统,主要功能完全由软件实现的开放式数控 系统,在功能柔性和性能上具有很大的优越性,并且WmdowsNT操作系统具有良好 的稳定性和健壮性[32,。
 
4.1 WindowsNT操作系统简介
   NT (New Technology)技术是Microsoft新一代Windows操作系统的基础,它米 用了与基于DOS的Wmdows 9x完全不同的微内核和分层的设计结构,是一个完全32 位的操作系统。在NT结构中,大多数的系统服务都被集成进了内核部分,减少了用 户层和核心层之间切换的时间;操作系统的执行部件和实际硬件通过一个抽象的硬件 层完全隔离开,使得NT操作系统具有与具体的硬件平台无关的特点,使得在多种硬 件平台上移植应用程序变得很方便;NT技术采取了完全的内存保护的措施,将操作 系统和用户程序完全隔离,保证用户态程序不会无意中损坏操作系统,使得NT系统 的稳定性能大大提高;NT内核具有的抢占式线程调度功能,能够利用改变线程优先
级的抢占方法来防止系统被某个进程长时间的占有,提高了系统多任务条件下的处理 能力;提供了中断延时例程(DPC)来进行中断延迟服务处理,系统能保证该例程被 调用,因此避免了系统不响应的问题,提高了实时性。因此具有NT技术的操作系统 会是将来windows操作系统的发展方向,其结构图如图4.1
 

 
 
4.1.1   Windows NT的实时性特性
    NT操作系统是作为一个高性能的通用操作系统而设计的[34],用来承担诸如服务 器这种需要在大数据流负载下仍能稳定和安全工作的任务,因此其设计上对其实时性 能有了很大的改进。NT系统提供了完全优先级抢占的系统调度和中断延迟调用例程 来提高系统的实时性。NT系统中的线程具有32个优先级别,系统上运行的所有进程 都被分配相应的优先级别,NT操作系统利用各个进程的优先级别来进行调度和管理。 一个高优先级别的进程能够立即中止当前正在执行的低优先级进程,完全拥有当前的 处理器资源,而被抢占的进程无论当前操作系统所分配的运行时间是否用完都会让出 微处理器使得高级别的任务能够得以运行。这种方式不仅能够在普通的用户级别的线 程之间进行抢占,而且还能通过提高用户的优先级别来抢占核心层的进程。这种方式 能够保证一个高优先级的进程在最短时间内能够得到处理器的处理而不会被延误。
 
   而DPC中断延迟调用则提供了另外的一种策略,当系统响应中断时,如果它不 能在中断响应周期内完成处理,则只选择最重要的部分进行服务,而其它相对不重要的处理则不在中断服务程序中执行,而放在一个由中断触发的延时过程中进行,虽然 是延时,但系统不会将它忽略,而是将它排进一个延迟调用队列中,在中断返回后, 如果系统没有再一次进入中断服务,则执行该延迟调用。这种方法使得能够在中断过 程中执行尽可能少的指令,而其它不是很重要的但是从中断触发的一些工作可以滞后 一点再处理。这有利于进行高中断频率下的响应。因此,虽然NT操作系统不具备一 些实时操作系统所具有的硬实时特性,但NT操作系统具有足够短的中断响应时间和 极低的中断丢失率,其可以响应的中断频率最快可达50K,这差不多是一些硬件板卡所 能到达的最高的中断频率,而达到几十个微妙级的响应时间的实时性能能够满足大多 数数控场合所需的实时特性,因此,NT操作系统是一个性能优良的软实时性的操作 系统。
 
4.1.2完全抢先式的调度系统
   NT实现了一个优先级驱动的、可抢先的调度系统B51。NT使用32个进程优先级 (此处的优先级与中断请求级IRQL概念不同,所有的线程都运行在IRQLO或1上), 范围从0到31,其中16~31属于实时级别,1~15为变量优先级,0为用于零页线程的 系统级。其中断等级如表1.1所示。高优先级的线程可抢先低优先级线程的执行。值 得注意的是,NT中所有的操作系统代码都是可以被具有更高优先级的用户线程所抢 先的,相比之下,UNIX的内核是不可切换的,导致其线程很难具有实时属性。这非 常有利于实时控制程序完成那些时间紧迫性很强的任务,但必须保证在高优先级上运 行时间不能过长,否则会封锁重要的系统核心线程如内存管理器、高速缓冲管理器等 的正常运行。
 

 
 
4.1.3  按需分页的虚拟内存机制
   Wmdows NT采用基于32位地址空间的虚拟内存系统,一般而言,由于虚拟内存 的页面失效将给系统响应时间带来很多不确定因素,影响了操作系统的实时性能,因 此很多高性能的实时操作系统如VxWorks等在很长时间内都不支持虚拟存储器。但没 有虚拟存储器的支持,操作系统是无法同时运行多个复杂的大型程序的,专用实时操 作系统只限于运行特定的实时应用,故可以容忍这个功能缺陷,NT作为一个通用的 高性能操作系统,必须支持虚拟存储器,但NT的虚拟内存管理系统在设计上充分考 虑到弱实时系统的要求,兼顾了系统通用性与实时性的要求:
   1)NT允许将一个进程的存储器锁定在物理内存中,这样它的运行就永远不会发 生页面失效故障,从而保证了实时性要求;
   2)NT中每一个进程都拥有一个独立的、专用的地址空间,禁止其他进程的访问, 保护了每个进程不受其他进程的干扰破坏。同时NT又支持存储器映射,这是不同进 程之间共享物理内存的唯一方法,它使得不同进程(包括设备驱动程序,它属于核心 进程的一部分)之间可以快速地进行数据传输,这对于高性能的实时应用是十分有意 义的;
   3)内存管理器的6个线程中,除了进程/堆栈交换程序的线程优先级为23以外, 其余的线程优先级均比较低,其中4个线程运行在16〜18级上,零页线程运行在0 级。这使得用户的实时线程(只要优先级设的足够高)可抢先后台内存管理线程的运 行,及时得到执行。
 
4.1.4同步机制
同步对于实时系统来说是十分重要的,如果操作同一数据结构的线程和ISR不能 保持一定的时序关系,则该数据结构将被破坏,无法得到正确的运行结果。NT提供 了一系列高性能的同步机制来解决这些问题:对于单处理器的系统,线程在更新一个 共享数据结构时,它会把IRQL提高到一个指定的足够高的级别,来保证禁止所有可 能访问该数据结构的中断,但仍然可以响应更高级别的中断来保证性能,而对于多处 理器系统,由于每一个CPU都有自己的IRQL, NT使用“转锁”(spinlock)的机制 来锁定对该数据结构的独占访问。相比之下,UNIX在处理临界区时一律采用关中断 的方法,严重损害系统实时响应能力。
 
4.1.5 Windows NT环境下硬件控制的实现
Windows操作系统利用了 x86处理器的特权级,将运行于操作系统上的程序分为 RingO和Ring3层两个等级。其中Rmg3层对应于操作系统的应用程序层,ringO层则是操作系统的内核运行的级别。内核级别的程序能够使用处理器的特权指令,实现对 系统硬件的直接访问。而Windows则通过控制特权指令对应用层的程序屏蔽了硬件, 使得运行于操作系统上的应用程序再也无法直接对硬件进行访问。因此,开发windows 下的控制系统不再同于DOS下控制系统的开发过程,不能够通过汇编或者C语言编 写的程序直接对硬件进行操作,而需要依赖于操作系统提供的特权指令级来进行控制 操作。
   Microsoft公司为了方便使用者进行Wmdows下硬件设备的开发,为开发者提供 了一种称为设备驱动程序的特权指令集。驱动程序属于操作系统的组成部分,它运行 在RingO层上,可以执行处理器的特权指令,包括对硬件的控制。Microsoft公司为 Windows9x系列和Windows NT系列操作系统分别设计了不同的驱动程序的模式。本 文采用了从家庭级到企业级应用都非常出色的NT(包括Windows 2000和Windows XP) 作为低成本SLS设备的控制平台进行控制系统的开发。
   在DOS环境下以及Windows 95操作系统中,用户可以使用InPort、OutPort等函 数直接操作硬件端口,但是在Wmdows NT环境下,直接操作硬件是不被允许的。为 了能在Wmdows NT环境下使应用程序操作硬件,必须编制控制硬件的硬件设备驱动 程序。编制设备驱动程序完成后,应该使驱动程序显露一组调用接口给上层应用程序, 许多情况下,可自驱动程序的基础上编制一个能操作该驱动程序的动态链接库供应用 程序使用。
 

4.2 WindowsNT环境下驱动程序的开发

 
4.2.1 NT下驱动程序基本框架
   NT设备驱动程序运行在核心态,即避免了因为运行在Ring3上的应用程序崩溃而 造成整个系统的崩溃,这样就提高了系统的可靠性和健壮性。
   设备驱动程序不同于一般的程序[36〜37],它没有Main或Winmain函数入口,而是 采用入口点模型,向操作系统提供一个名称为DriverEntry ()的函数,当系统启动驱 动程序时,将调用这个入口。DriverEntry ()函数被称为NT驱动程序入口点,在这 个函数中,主要来做一些必要的设备初始化工作,如用来初始化一些Disopatch (分发) 例程入口 [38]。
   1)驱动程序入口点函数(DriverEntry)
   DriverEntry是每个设备驱动程序的入口点,是驱动程序必须提供的例程。当驱动程序启动时,I/O管理器就调用驱动程序这个函数。大部分设备的初始化工作和清理化工作都在这个例程中完成,包括设置响应各种用户请求例程的入口点,从而使得I/O 管理器能知道当用户打开、关闭、读写等请求到来时,驱动程序应该调用那些例程处 理请求。
 
我们在程序中这样设置驱动程序的入口点:
NTSTATUS DriverEntry(IN PDRIVER OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)
{
NTSTATUS status;
PDEVICE OBJECT DeviceObject;
PHRPDEVICEEXTENSION DeviceExtension;
DriverObj ect->Maj orFunction[IRP_MJ_CREATE] =HrpDispatch;
DriverObj ect->Maj orFunction[IRP_MJ_CLOSE] =HrpDispatch;
DriverObj ect->Maj orF unction [IRPM J—DEVICEC ONTROL] =HrpDispatch;
DriverObj ect->DriverUnload =HrpUnload;
、、、、、、、、、、、
}
   其中:
   IN PDRIVER OBJECT DriverObject是驱动程序的对象,在操作系统启动驱动程序后,操作系统创建一个我们需要的系统对象,并且作为DriverEntiy函数的参数传递 给驱动程序。
   IN PUNIC ODE STRING RegistryPath 是操作系统传递给 DriverEntiy 入口例程的参数,表示注册表中驱动程序的服务键路径为
HKEY_LOCAL_MACHINE\System\CurrentSET\Services\Driver\Name,利用这个参数,入口例程可以从注册表中取出该驱动程序的特定参数。
 
   三个Dispatch分别用来创建三个分发例程。
   2)分派入 口 点(Dispatch Entry Point)
   分派入口点是分派例程函数的入口,主要是用来响应I/O请求。当I/O管理器有一个I/O请求需要驱动程序来处理时,系统就从分派入口点处调用驱动程序。至于调用那 个分派入口点,取决于IRP请求中的I/O主函数代码。分派例程使驱动程序能满足接受、 挂起、排队和完成I/O请求等要求,分派例程是驱动程序的核心体。
   3)中断服务例程(ISR)
   当设备驱动程序需要进行中断处理时,需要中断服务例程,因此,在入口点例程 中,需要定义这个例程的入口点,当与驱动程序关联的设备发生中断时,中断服务例 程被调用。
   在驱动程序入口点中,I/O管理器被赋予了一个指向中断服务例程的指针。当设备 中断发生时,ISR被调用,I/O管理器和微核之间建立了间接连接,用于连接中断向量 核驱动程序的中断ISR对象。
   4)Unload入口点
这个例程用于卸载驱动程序,I/O管理器通过调用这个入口点,请求驱动程序准备 立即从系统中清除。
 
4.2.2  NT驱动程序与操作系统的通信
在NT系统中,I/O管理器把每一个设备都抽象为文件,Wmdows32用户程序通过 几条简单的文件操作API函数,就可以实现与驱动程序中某个设备通信,一个驱动程 序可以驱动多个设备。通常用到的Wmdows32API函数有:
   CreateFile             打开一个设备,返回一个与设备相关的句柄
   CloseHandle             关闭一个由CreateFile打开的设备
   ReadFile             从设备读取数据
   WriteFile             向设备写数据
   DeviceloControl       对设备进行一些自定义操作,比如更改设置等
   这些API函数的执行,都对应着驱动程序的一些分发例程。前面也说过,NT驱动 程序除了DriverEntry ()之外,主要是由分发例程组成。
   例如,应用程序调用Win32 API: CreateFile来打开设备对象时,操作系统代替应 用程序,向驱动程序发送系统I/O控制消息IRP_MJ_CREATE,从而驱动程序响应这个 消息,对应Dispatch例程被调用,如果驱动程序没有提供该例程,CreateFile调用就会失败。
  下面是常用API函数和NT设备驱动程序一些常用功能代码的对应关系。
IRP_MJ_CREATE CreateFile        打开设备28
IRP_MJ_CLEANUP CloseHnadle      在关闭设备时,取消挂起的I/O请求
IRP_MJ_CLOSE CloseHandle        关闭设备
IRP_MJ_READ ReadFile             从设备获得数据
IRP_MJ_WRITE WriteFile           向设备发送数据
 
IRP_MJ_DEVICE_CONTROL DeviceIoControl  对用户模式或内核模式客户
程序可用的控制操作
 
IRP_MJ_INTERNAL_DEVICE_CONTROL 只对内核模式客户程序可用的控制操作,没有对应的Win32 API
 
IRP_MJ_QUERY_INFORMATION GetFileLength    获取文件长度
IRP_MJ_SET_INFORMATION SetFileLength      设置文件的长度
IRP_MJ_FLUSH_BUFFERS FlushFileBuffers 写输出缓冲区或丢弃输入缓冲
IRP_MJ_SHUTDOWN InitialSystemShutdown 系统关闭
 
4.2.3 二维振镜式扫描系统的底层驱动程序开发
   针对二维振镜我们专门选择了一块D/A卡和一块中断卡来对扫描头和激光控制器进行控制,如前所述。因此,我们在SLS原有底层驱动的基础上,另外开发了一个MarkDevice的设备驱动程序。
   在MarkDevice中我们定义了一个CdataBuffer类用来存储和传输数据[39]
。数据的存储和传输是振镜控制中的一个难点,因为扫描图形的数据点的数量是随着加工零件的尺寸和精度成平方增长的,这就必然对存储空间的大小有要求,但是在核心层单独分配一个大的存储空间肯定会降低系统的速度和效率。因此,我们开辟了两个数据存储缓冲处,一个给系统,用来做数据填充使用,另一个给D/A卡,作为数据源使用。两个缓冲区之间通过一个独立的搬运线程来进行数据的转移,由于两个区域分开,使得数据的输出不依赖于对方的运行速度。缓冲区是一个数据的通道,数据既可以输入该区域,也可以从该区域取数据,数据排列方式是先进先出(FIFO),是一个排队的结构,用来对扫描数据进行存储和输入/输出缓冲,同时利用一个单独的转移线程来实现应用层缓冲区与驱动层缓冲区的数据交换中断处理函数如下:
 
   BOOLEAN HrpISR(
        IN PKINTERRUPT Interrupt,
        IN OUT PVOID Context  
        ﹚
  ﹛
      PHRPDEVICEEXTENSION 
   pDeviceExtension=(PHRP_DEVICE_EXTENSION)Context; 
、、、、、、、 
return TRUE;

   通过这个对象将中断服务例程同一个给定中断向量联系起来。中断发生时,I/O 管理器能通过中断对象,把中断向量对应到相应的中断服务例程,从而执行中断服务 例程。
 

4.3上层支撑软件的开发

 
4.3.1数据插补的实现
   快速成型技术是一种基于分层制造的技术。三维图形经过实时切片,得到的数据 经过预处理、数据拟合、轮廓曲线插补后,成为二维数据点,即是一些扫描卡可以识 别的直线段或者曲线段。并且扫描头的每个轴不可能按照要求完全同步,因此,就要 求对线段进行插补,以小线段来逼近所需要的曲线或着直线。线段经过插补后成为一 系列小线段的集合,这还不是振镜能接受的数据形式,还必须经过坐标转换,最终形 成振镜可以接受的脉冲指令。
   插补是数控系统的灵魂,插补算法的好坏直接影响着数控系统的工作状态。最常 用的插补算法是逐点比较法和数字积分法(Digital division arithmetic, DDA)[4]。逐点比较法以机器的分辨率为进给步进长,输出脉冲均匀,加工精度高,但一般不能满 足高速加工的要求;DDA法将数字积分转化为累加器计算,累加器的溢出脉冲数为输 出脉冲数,这种方法速度快,可完成多轴联动,适合于软件插补。
   本扫描系统的插补算法都是采用DDA法。DDA法是利用数字积分的原理,计算 各个运动轴的位移速度时间的累积,使得从插补的起始点经过一定时间后一定能够运 动到插补的终止点。该方法的原理如下:从图4.4中可知,0A间距离长度为L,V与x 轴夹角为α,将OA间加工速度沿着起始点到终点的方向分解到 X 和 Y 轴上。根据几何关系可得:

 



   利用直线路径的长度和插补步长,即得到整个插补次数N,其中
N= L/(V*△t)
   在整个插补过程只需设定一个计数器来储存插补次数,然后对这个计数器进行减 数计数,当计数结束,即可确定插补点到达了终点,因此采用DDA的算法所需的时 间比前一种方法少很多。该方法插补过程能够进行多个轴的插补运动,保证插补的各 个轴具有均匀的合成速度,而且还可以方便的进行速度的加减速控制。在大数据处理 过程中DDA方法具有时间上优越性。
   采用DDA方式的算法如下:
 

 
   从上式可以看出,在扫描速度一定条件下,可以通过提高中断频率来提高扫描的精度。
 
4.3.2  数据的存储和传输
   对于振镜而言,所有图形都是一系列扫描线的集合。对扫描线进行插补后,就形 成了大量的数据点的集合。为此我们编制了一个专门用于数据存储的类CBuflfer类, 他是一个先进先出的队列(First input first output, FIFO) [41],其数据存储及读出方式 如图4.3所示。
 
 

 
   经过插补后的点的数据格式为: 
struct CScanPoint32
{
 float            x;
 float            y;
 float            z;
 bool LaserOpen;
 bool FinishFlag;
 CPointState State;
 }ScanPoint,*pScanPoint;
 
   由于可能的数据量会非常大,而操作系统的资源是有限的,所以我们把CBuffer做成一个循环的队列。在数据存取过程中,我们需要维护两个重要的指针:当前最新 数据存储点指针和最新数据取出点指针。在数据存储时,如果数据缓冲区己被填满,则等待数据被取走;在取数过程中,如果发现数据缓冲区为空,则等待填充数据。
   在Windows NT操作系统内核态,系统可利用的资源更加有限;同样,我们在驱 动程序中分配了一块存储区,它也是一个循环队列。我们启动两个数据处理线程:数 据存储线程和数据传输线程。一般情况下,数据的运算、存储速度总是要比实际硬件 执行指令的速度要快得多,数据的存储与取出必须异步执行。为了尽量保证系统的实 时性,取数采用中断方式,只要存储区有可用数据系统取数不需要等待;系统向上层 数据存储区存储数据采用等时查询的方式,如果存储区己满,则等待。
 
4.3.3  扫描模型的软件实现
我们创建类CScanSystem来负责扫描系统的实现。它的工作主要包括扫描 参数的设置、扫描系统的复位及进行扫描,其具体形式如下:
class CScanSystem
{
public:
    void initial( );
    void resetSystem(const CScanParameter& p_parameter);
    void zero(float p_pulseRatio);
       void startMark();
       void finishMark();
    void lineTo(const CPoint2d& p_point, double p_vmax,
                   double p_a0, double p_a1);33
 
private:
     CPoint2i                        m_initialPosition;
     CPoint2d                m_currentCoordinate;
     CSevroCommunicator    m_communicator[3];
     CDevice          *m_pDevice;
     CBuffer            m_buffer;
};
 
   在扫描系统类中,保存着每个伺服轴的对象实例以及底层设备驱动程序的对象指 针。数据的存储与传输也是由扫描类来实现;它保存着一个存储区类的对象实例,并 通过该对象实例来进行数据存储与传输。
   实际上,任何图形的扫描都可以以小线段的扫描方式来逐渐逼近,所以在扫描类 中主要由lineTo函数来实现扫描。数据的插补运算也是由其来实现的,包括直线的匀 速插补运算以及带加减速的插补运算。每次扫描由startMark函数开始,由finishMark 在上层等待本次扫描结束。
   上层软件操作界面如图4.4所示
 

 
5扫描图形失真校正算法研究及软件设计
   二维振镜在扫描过程中存在两种缺陷[42]: —是焦斑扫描轨迹构成的扫描场在空间 成球面场,与工作平面不是重合的,称为系统的聚焦误差或z轴误差;二是扫描图形 将在X轴出现枕形误差,在Y轴出现桶形误差,如图5.1。
 

 
 
   如前所述,我们的这个扫描系统是采用的物镜前扫描的方式。这种扫描方式的数 学模型是一个非线性函数,因此其是一个非线性的系统。因此,在扫描过程中必然会 出现非线性失真,即当扫描头机械偏转角的大小为线性变化时,扫描视场上的光点的 移动距离为非线性变化的,这是扫描图形出现失真的主要原因。
   下面我们通过对扫描图形失真的原因进行分析,建立了一套此系统的校正模型。 试验研宄证明,此模型对于减小图形失真具有明显的效果。
 
5.1图形失真的分析
   二维振镜式扫描系统本身存在着两种缺陷:
   1)聚焦焦斑的扫描轨迹构成球面像场,不能完全聚焦在工作平面上,使得扫描 场上的聚焦光斑不一致;
   2)当扫描方形图形时,将在X轴向出现枕形失真,在y轴上出现桶形失真。
在本系统中我们采用的是物镜前扫描方式,选用F-Theta透镜来对聚焦光斑进行补 偿,F—Theta透镜的特性前面以做过详细说明,这里不在赘述。下面通过理论分析,导出二维振镜式扫描系统的扫描几何畸变公式,然后利用软件对畸变量进行修正,以 达到对扫描图形的失真进行校正。
 
   二维振镜式扫描系统如图4.7所示,在所建立的直角系中,x-Y,为扫描场平面; 坐标轴x,Z分别与振镜Y和振镜x的转轴平行;Z轴为光轴。
 



 
5.2图形失真校正模型的建立
   二维振镜式扫描系统所产生的图形失真,直接用透镜校正是无法实现的,其主要 原因有[5]: (1)常规透镜所产生的畸变在x, y方向成一致性,无法补偿在两个方向上 不一致的扫描畸变。(2)在我们采用的物前扫描系统中,F—Theta透镜主要作用是作 为补偿非线性扫描误差,对于图形畸变的补偿作用很小。
   基于以上原因,我们在本系统中采用软件校正的方法。校正模型采用基于最小二 乘法的校正模型。
   首先我们建立一对2N阶映射多项式来拟合图形失真,多项式如下[11]:
 

 
 
   为了将式(5.7)、(5.8)中的具体化,在失真的显示图形上对M个控制点采样且M>(N+1),然后利用最小二乘法的思想求出式(5.7)、(5.8)中的常数系数。所谓图形控制点,实际上是指能代表图形位置的变形情况,其实际值和理论值都己知或为 可求的特征点。如图形中经纬网交点它可指示一幅图的位置情况,其周围点的位置坐 标往往是以其为依据的,在一帧图形中,具体经炜网点的理论坐标可以经计算或根据 标准经纬网求得。
   在将T变换具体化后,显示图形和扫描输入图形之间大的映射关系就建立起来了, 通过几何变换,失真的显示图形可被“还原”。
   最小二乘法的实质是“以点代面”,通过对图形控制点的校正,使整帧图形的失 真得到校正。因此,图形控制点的测量精度、图形控制点的位置及图形控制点的数量 对校正模型的精度有直接影响。
   显然,图形控制点的测量精度越高,越能准确的反映图形失真的程度。相应地, 多点校正模型的误差补偿精度就高。因此,应尽可能的提高图形控制点的误差测量精度。
   为了提高校正精度,图形控制点应分布均匀,这样才能更真实的反映图形的失真 程度。图形控制点的分布越均匀,校正效果越好。最佳情况下,应把图形的中间点、 顶点、轮廓上的各边的中间点作为图形控制点,以保证校正模型的有效作用域。
   一方面,适当的增加图形控制点的数量可以提高误差补偿精度。另一方面, 根据数据相关性原则,失真图形上的非控制点仅受周围控制点的限制,非控制 点与控制点的距离越近,后者对前者的约束力越强;反之,约束力越弱。因此, 没有必要盲目地增加控制点地数量。而且,控制点数量地增加会导致计算量呈 几何级数式地增加。因此,应根据图形地失真程度,合理地确定图形控制点地 数量。
   “以点带面”最小二乘法的校正算法的关键在于:通过对图形控制点采样所建立 起来的校正模型能否拟合整帧失真图形。最小二乘法是一种局部最优法,而非全局最 优法。为了提高多点校正模型的有效作用域,具体应用时,可根据实际需要,采取全 局校正或分区校正的方法。
   所谓全局校正是指用一个校正模型,对整帧图形起映射作用。当失真图形的面积 较小或者失真程度较弱时,采用全局校正的方法既可以保证校正精度,又可以减少计 算量。
   所谓分区校正是指将校正图形划分成若干小区域,根据扫描点所处的不同位置, 采用不同的校正模型。分区校正的最大特点就是更加准确和客观的反映了图形中每一 区域的变形情况从而提高了校正精度。分区校正法适用于失真图形的面积较大或者失 真程度较严重的情况。从理论上讲,划分的区域面积越小,校正的精度就越高。但若 分区过多,相应地,图形控制点地数量增加,同样会加大控制系统的计算量。具体校 正流程如图5.3:
 

图5.3 校正流程图
 
5.3校正软件的设计
在本系统中,校正不是作为一个单独的软件来开发的,而是作为整个扫描模型中 的一部分来设计的。在软件部分我们定义了两个几何转换的结构类型:
 

 
 
其中,CGalvGeomPara是实现失真图形与原始输入图形之间的拟合,bReverseXDir、bReverseYDir分别对应着X轴和Y轴点的转换。因为本模型中,X方向和Y方向存在着交互耦合作用,因此,我们设定了一个这样的转换参数bXYExchange。PropotionX和propotionY分别作为原始图形和失真图形之间X方向和Y方向比例的转换参数。在结构CQGalvModelPara中,cx和cy分别作为失真图形X方向和Y方向枕形误差的校正参数。
在扫描函数中我们定义了一个误差补偿函数:
 


 
   函数compensate(CGalvDot& p_dot,CQGalvModelPara p_galvPara)就是负责对失真图形的畸变量进行补偿。
 
软件中校正参数设置如图5.4所示:
 
【图片43】
 
   一般找到最优的校正参数,并不代表扫描精度达到要求,我们还必须对扫描图 形进行九点校正。
   我们把整个扫描平面按照图5.5所示划分成一个坐标系。
 


 
 
 

 

6试验结果
6.1试验目的
整个系统构建完成,我们将它应用到快速成型设备上,看这套系统在小扫描面积 和大扫描面积的精度分别能够达到多少;看在允许的误差范围内,它能够扫到的最大 面积是多少;最后测量出其扫描精度,并与三维动态聚焦振镜的扫描精度进行比较。
6.2试验方法
试验的步骤如下:
从扫120mmX 120mm的正方形(中间有十字线)开始,如图5.5所示,看加 校正参数前后和加九点校正前后,扫描图形的区别,精度分别是多少。逐渐增大扫描 面积,看在误差允许的范围内,扫描面积最大可以达到多少。并且记录每个不同扫描 面积时,校正参数的多少。
在以测的扫描面积内,加工标准件,看加工的制件是否存在漂移,精度是否合格。
6.3试验结果
在试验过程中我们取了 120mmX 120mm、150mmX 150mm、200mmX200mm> 250mmX250mm、280mmX280mm等几个不同的扫描面积,我们发现扫描面积超过 280mmX280mm以后,图形的畸变很厉害,加校正参数和九点校正,扫描的精度也 很难达到要求,因此我们确定这套扫描系统的最大扫描面积为280mmX280mm。表
是每个扫描面积对应的最优校正参数。
 

 
 
   其中:比例参数是用来对扫描图形进行放大、缩小的参数,X轴比例参数是针对X轴, Y轴比例参数是针对Y轴;校正参数是对图形的枕形误差和桶形误差进行校正的参数。
   如图5.5中,我们取了九个点,并且每个点按照四象限坐标平面都有自己的坐标 值。在测量过程中,只要比较这九个点的所测坐标值和实际值,就可以得到扫描图形 的精度。表6.2中数据是按照表6.1中的校正参数,在扫描不同扫描面积时测得的九 点坐标值,但扫描面积在200mmX200mm的结果是没有加九点校正模型得到的数据, 扫描面积为250mmX250mm和280mmX280mm的数据是经过九点校正得到的。
 
6.4试验结果分析
   从表6.2可知,对于扫描面积彡200mmX200mm,只要在上层的扫描程序中添加 比例参数和校正参数后,精度就可以达到0.5mm,如果添加九点校正后,精度达到< 0.1mm。扫描面积彡200mmX200mm时,如果仅使用比例参数和校正参数,精度在 1mm左右,使用九点校正后,可以使其精度达到<0.3mm,其精度相当有显著提高。
 

 
 
7总结与展望
   振镜扫描系统是快速成型系统中的一个非常重要的组成部分,它必不可少,但是 目前成套的振镜扫描系统都是靠进口,其价格昂贵,购买周期长。例如现在快速成型 系统SLS, SLA的动态聚焦扫描部分采用的是美国General Scanning公司研制生产的 动态聚焦振镜扫描系统HPLK1330-9型,其价格为1万多美元。因此,快速成型设备 的成本一直居高不降,使得国内快速成型产业的推广很难。本文从这个方面出发,开 发了一套成本很低的二维振镜式扫描系统。
7.1全文总结
   本文对振镜扫描系统的原理进行了研宄,对在SLS中使用二维振镜式扫描系统的 可行性进行了分析。然后研宄了物镜前扫描模型,根据这种扫描模型的原理搭建了二 维振镜式扫描系统的数学模型。并且开发了其软件模块(包括上层应用软件、底层驱 动软件以及校正软件),并在快速成型设备SLS上进行了大量试验,取得了显著成果。 主要研宄成果如下:
  (1)分析了物镜前扫描模型的原理和F—Theta透镜的原理,以及存在的问题, 建立了二维振镜式扫描系统的数学模型和其控制系统,并且搭建了二维振镜式扫描系 统的硬件电路。。
  (2)设计了二维振镜式扫描系统的软件系统,包括上层支撑软件和底层驱动软。
  (3)分析了系统中出现扫描误差的原因,并就控制系统的非线性问题和图形出 现的畸变问题进行了研宄,并相应的提出了解决算法,在软件中实现。
  (4)进行了大量扫描试验,对扫描图形进行校正,获得了最佳的校正参数,并 研究了九点校正的方法。
   二维振镜式扫描系统在小扫描面积中的精度现在己经达到了相对于没
有加提高了一个数量级,如果继续对校正进行优化,精度会有更大的提高。
7.2研究展望
   二维振镜扫描系统现在只是试验成功,不过在精度上还是与三维动态聚焦振镜扫 描系统有差距,今后要在精度上继续努力,并且在软件操作上还有很多不便,在这些 方面都要继续努力。
   另外,在其他的快速成型设备上,如SLA中,也能够使用这种扫描系统,在SLA 中的应用还有待继续研宄。


致谢
   本学位论文是在恩师史玉升教授的悉心指导下完成的。多年来,恩师在学习、生 活和工作诸方面给予作者极大的关心、爱护与支持,恩师渊博的学识、严谨的治学态 度、开拓进取的工作精神,使作者受益匪浅,终生难忘;恩师的教导“事业、创新、 实干、和谐”也必将成为作者的人生追求。值学业完成之际,谨向导师致以诚挚的谢
   在三年的学习与研宄期间,作者有幸承蒙快速成型中心老师们的厚爱。作者十分 感谢他们的亲切关怀与无私的帮助,特别是黄树槐教授、莫建华教授、陈柏金副教授、 叶春生副教授、王从军副教授、周钢老师、罗忠东老师等不仅在工作上给予作者大力 的支持,而且多次与作者进行有益的探讨,在即将完成学业之际,向各位老师深表谢 意;同时,作者对滨湖公司的所有员工给予的有力支持和友好合作充满感激之情。
   作者多年的学习与研宄,也同样得到过同窗好友指导和帮助。谢军博士、蔡道生 博士、张李超博士、文世峰博士生、李军超博士生、冯仪博士生、钟建伟硕士、程艳 阶硕士、王成硕士生、鲁俊硕士生、钱波硕士生、李伟硕士生,刘喜泉硕士生、程军 硕士生给过者许多有益的启发和富有成效的建议,此外,我的室友以及实验室的工作 人员陈健、张钊也为作者提供了不少帮助,作者对他们深表感激。
   作者在此也深深地感谢作者家人,正是因为有了他们的支持、关心和鼓励,作者 才能够专心研究并完成学业。
 
2005年4月于华科大
 
 
参考文献
孙太春.激光扫描技术的发展及其应用.长春光机所,光机电信                             息.2000,17(5): 75 〜77
Hwang H.C, Chung C.C, Lee, S.-H. Design of a multi-rate controller and its application to galvanometer servo systems. Computer-Aided Control System Design, 2001:564-569
朱林泉,朱江淼.激光扫描系统的设计特点[J].新技术新工艺,1998, (6): 6〜8
[4]惠延波,卢秉恒,冀春容,周利明.平视场激光矢量扫描技术研宄[J].西安交通 大学学报,1996 (3): 266〜270
Xie Jun, Huang Shuhuai, Duan Zhengcheng,Shi Yusheng.Correction of the Image Distortion for Laser Galvanometric Scanning System.Optics and Laser Technology, Vol:37,Issue:4, June 2005
王运赣.快速成型技术.华中理工大学出版社,1998
冯金坦,黄静,廖继海.声光一光机二维激光扫描系统.华南理工大学,半导体 光电,2002, 23 (5): 3〜7
汪会清,史玉升,黄树槐.三维动态聚焦激光振镜扫描系统的控制算法及其应用. 华中科技大学学报,2003,31 (5): 73〜74
李志能.现代光学系统原理.北京:北京理工大学出版社,1994
Ricard L. Stevenson.Laser-marking system design and selection.Industrial Laser Review Buyers Guide .Editor :David A.Belforte 1993:12〜14
谢军.振镜式激光扫描关键技术及其系统的研宄.博士学位论文,华中科技大 学,2004
Detlef Kochan,Chua Chee Kai,Du Zhaohui,Rapid prototyping issues in the 21st century [J]. Computers in Industry, 1999,39:3-10
王智勇,陈虹,左铁钏.光束质量对激光加工中光束行为的影响[J].北京工业 大学学报,2000, 26 (3): 89〜93
秦水介.两片型/Q9透镜设计[J].激光技术,1999, 23 (6): 378〜380
万志,杜温锡.振镜二维扫描的图形畸变校正和曝光量补偿[J].光学精密工
程,2000,8 (2): 115〜119
Stephen J.Rober,Yung C.Shin.Modeling and Control of CNC machines using a PC-based open architecture controller[J]. Macaronis, 1995,5(4):401 〜420
Albert W.L Yao, C.H.Ku.Developing a PC-based automated monitoring and control platform for electric power systems [J] .Electric Power Systems Research, 2003, 64: 129〜136
许亚平,陶霞虹.振镜电路的设计考虑.应用激光,1999: 39〜40
李友善编.自动控制原理,北京:国防工业出版社,1983
沈安俊主编.自动控制与调节技术,机械工程出版社,1980
刘竞成.交流调速系统.上海:上海交通大学出版社,1984
Gungor Bal,Erdal Bekiroglu, Servo speed control of traveling-wave ultrasonic motor using digital signal processor[J] .Sensors and Actuators A 2004, 109(3): 212〜219
廖效果.数控技术[M].湖北科学技术出版社,2000
叶蓓华.数字控制技术[M].北京:清华大学出版社,2002
吴袓育,秦鹏飞.数控机床[M].上海:上海科学技术出版社,2000
罗阳,梅筱琴,胡晓兵,刘胜青.经济型数控系统的时间分割插补方法[J].组 合机床与自动化加工技术,2000,(8): 34〜36
周凯,陆启建.高速高精度釆样插补技术[J].中国机械工程,1998,9(10): 15〜 18
苏爱林,王有全,张春雷,赵雪峰.经济型数控系统中基于插补缓冲区的闭环 控制方法[J].四川大学学报,2001,33 (1): 82〜84
Shih-Ming Wang?Yuan-Liang Liu, Yuan Kang.An efficient error compensation system for CNC multi-axis machines [J]. International Journal of Machine Tools and Manufature,2002,42(11): 1235〜1245
Bagus Mahawan, Zheng-Hua Luo. High-speed high-precision tracking control for electronically controlled winding machines [J] .Control Engineering Practice, 2001,
: 563〜571
Jingxia Yuan,Jun Ni.The real-time error compensation technique for CNC maching systems [J]. Mechatronics, 1998, 8(4): 359〜380
尤晋元.Windows操作系统原理.机械工业出版社,2001
张李超,韩明,董炀斌.Windows NT的实时性研宄.计算机工程与应用2002.5: 41 〜42
董炀斌,韩明,张李超,黄树槐.基于Wmdows NT的通用快速成形控制软件开 发.华中科技大学学报,2002 (6)
 David A Solomon.Windows NT技术内幕[M]+第二版.清华大学出版社,1999
 Art Baker. Windows NT设备驱动程序设计指南.北京:机械工业出版社,1997
Chris Cant. Windows WDM设备驱动程序开发指南.北京:机械工业出版社, 2000
张惠娟,周利华,翟鸿鸣.Wmdows环境下的设备驱动程序设计.西安电子科技 大学出版社,2002
张李超.快速成型软件及控制系统的研宄.华中科技大学博士学位论文,2002
文世峰.数字式动态聚焦振镜扫描系统的研宄.华中科技大学硕士学位论文, 2004
Rowe Glenn. W. Introduction to Data Structures and Algorithms with C++.Prentice Hall Europe, 1997
虞孝舜.双振镜扫描几何畸变的校正.激光与红外,1998, 2 (28): 45〜47

 
 
附录1攻读硕士学位期间发表学术论文目录
 
史玉升,黄树槐.SLS制件精度的影响因素研宄.锻压装备与制造技术. 100〜102 (署名单位:华中科技大学塑性成形模拟及模具技术国家重

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评