资源描述:
《直线度误差处理系统的研制_杨国田》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DOI:10.16567/j.cnki.1000-7008.2003.07.02266工具技术直线度误差处理系统的研制杨国田华北电力大学摘要:研制了与电子水平仪配套的直线度误差专用处理系统。介绍了该系统的工作原理、结构组成以及内嵌的直线度误差最小区域算法,阐述了该算法的原理及其在单片机上的实现方案,给出了系统原理图和程序框图。关键词:直线度误差,最小区域算法,直线插补,微型打印机DevelopmentofStraightnessErrorProcessingSystemYangGuotianAbstract:As
2、traightnesserrorprocessingsystemisdeveloped.Theworkingprinciple,systemstructureofthesystemarein-troduced,andtheleastareaevaluationalgorithmofstraightnesserrorusedinthesystemisdiscussed.Theprincipleandimplemen-tationschemeinamicrocontrollerofthealgorithmarefor
3、mulated.Theprogramschematicdiagramandflowchartisalsoshowed.Keywords:straightnesserror,leastareaevaluationalgorithm,lineinterpolation,micro-printer系统启动后,自动处于实时显示状态,微处理器1引言通过串行接口不断接收电子水平仪发来的数据流直线度公差是关键的形位公差项目之一,在生(格式由水平仪型号决定)并在显示器上动态显示,产实际当中使用比较频繁。直线度误差测量不像尺以帮助
4、操作人员判断数据是否稳定,确认稳定后可寸误差那样简单,普通仪表不能直接显示测量结果。根据需要按下确认键,系统自动保存当前值作为一目前生产中较为常用的方法是将被测部位分段,通个采样值。依次手动提取N个有效采样值(N=2过水平仪测得各个分段两端点的高度差,然后通过~16,对应的测点数为3~17)后按下打印输出键,计算(或借助软件在微机上计算)求得直线度误差微处理器立即开始计算直线度误差值并在显示器上值。如果需要在现场得到误差值,必须通过专用的予以显示,打印头随即打印出实际误差直线的放大小型计算机借助软件实现;如果需要
5、查看误差曲线图以及最小区域位置和直线度误差值。或了解误差方向,现场还需配备打印机。总之,传统的测量方案系统普遍存在结构复杂、成本较高、使用不便的缺陷。为了向用户提供一种更方便、高效、功能完善的误差处理手段,笔者研制了直线度误差专用处理系统。该系统集误差值及误差曲线打印、最图1系统结构示意图小区域误差分析等功能于一身,通过对软件的适当系统输出的内容分为两部分:(1)采样数据及测修改,可以与任何具有标准串行接口的电子水平仪点绝对高度(采样值为转换成微米的原始采样值,绝接口,系统体积小巧、成本低廉、操作方便,处理的结对
6、高度为各点高度微米值);(2)误差曲线图及误差果清楚、可信,信息含量高。值,包括两条最小区域线。2系统结构及工作过程3直线度误差算法直线度误差处理系统由单片机、微型打印头、标考虑到单片机有限的内存空间,直线度误差的准串行接口组成(如图1所示)。单片机负责直线度最小区域评定采用凸多边形法,具体实现策略采用误差最小区域确定及误差值计算、误差曲线输出时对分搜索,具体流程参看图2。的直线插补运算以及整个系统的运行控制(包括键程序要求的测点数为3~17,因为选择测点数盘显示器接口、通信接口、打印头等的控制)。直线小于3时对
7、于计算直线度误差无意义,测点数大于度误差的最小区域算法以及输出直线的插补算法全17时既受单片机内存的限制,同时实用价值也不部由8031汇编语言实现,驻留在存储器中。大。各个凸点的确定按照如下顺序进行:收稿日期:2002年12月(1)通过旋转(以左端点为中心)使实际直线两2003年第37卷№767图3凸多边形各顶点查过程示意图度误差,同时确定最小区域。4输出直线插补算法图2直线度误差计算和输出子程序框图系统输出内容的主要部分是带有最小区域的误端点绝对高度y0和yN为0;差曲线,为了在有限条件下实现误差曲线(折线段)
8、(2)检查两个端点之间是否存在最高点m(ym的准确输出,系统中的直线插补采用适合于单片机>0)和最低点n(yn<0),这时会出现以下三种情况运算的固定取向算法。这种算法可以保证在微型打(m、n不可能同时不存在):印机有限的分辨率下输出线条清晰、特征明显的误①如果仅存在最高点m,则保存序号m,然后差曲线。该算法的核心部分采用Bresenham算法,然将{0、m}以及{m、N