合金管数控砂带磨床测量系统设计毕业论文.doc

上传人:文库蛋蛋多 文档编号:3937130 上传时间:2023-03-28 格式:DOC 页数:58 大小:2.77MB
返回 下载 相关 举报
合金管数控砂带磨床测量系统设计毕业论文.doc_第1页
第1页 / 共58页
合金管数控砂带磨床测量系统设计毕业论文.doc_第2页
第2页 / 共58页
合金管数控砂带磨床测量系统设计毕业论文.doc_第3页
第3页 / 共58页
合金管数控砂带磨床测量系统设计毕业论文.doc_第4页
第4页 / 共58页
合金管数控砂带磨床测量系统设计毕业论文.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《合金管数控砂带磨床测量系统设计毕业论文.doc》由会员分享,可在线阅读,更多相关《合金管数控砂带磨床测量系统设计毕业论文.doc(58页珍藏版)》请在三一办公上搜索。

1、1 绪论1.1 本课题研究的目的本课题研究的目的在于设计一个管材直线度检测机,完成检测机结构及系统设计。1.2 本课题研究的背景 一、本课题研究的意义 钢管是应用最广泛的钢材品种.它的质量直接影响到经济效益及人员的生命安全。大口径钢管广泛应用于冶金、石油及化工等行业,它的质量关系到工业设备的安全。由于铸造、加工、自重以及使用中的碰撞、温度变化等原因造成钢管的塑性变形而形成不可恢复的弯曲.对于钢管的使用是有影响的。为了随时了解钢管的状态,必须定期检测其直线度从而决定其是否可继续使用或送修。 直线度误差测量是几何计量领域中的一个基本测量项目,它是平面度、平行度、垂直度、同轴度等测量项目的基础,因而

2、历来受到世界各国计量学领域学者的重视。直线度误差也是机械制造业中的一个非常重要的内容,它对产品零部件的性能具有决定性的影响。直线度误差与尺寸精度、圆度、粗糙度被称为影响产品质量的四大因素。但是从目前几何量领域的情况来看。直线度误差测量的技术水平已落后于其他三个项目。如尺寸精度和粗糙度已达到纳米级水平,且不断出现新技术,新成果。圆度测量在近几年业得到飞速发展,尤其是随着高精度的误差分离转台和各种误差分离技术的成功应用,测量精度已达到的水平,直线度误差测量水平目前较低。相比之下,直线度误差的测量落后至少一个数量级,这与几何计量领域的发展与产品质量的要求是不相适应的,因此有必要探测各种新方法。 二、

3、 直线度检测方法 纵观世界对直线度误差的测量方法,可总结归纳为如下两大类。 无直线基准测量 无直线基准测量法,是指被测对象直线度的测量不是与某种直线基准进行比较,而是沿被测表面以线值测量的方法,得到被测表面上各采样点的偏差值,然后经数据处理得到被测对象的直线度误差值。无直线基准测量主要采用误差分离法。所谓误差分离法( Error Separation Technique, EST)是指从测量结果中将标准量的误差和被测量的误差分离开来,从而提高测量精度和测量效率。按照信息获得的途径不同,无直线基准测量法又可分为反向法、错位法和多测头法。 反向法 反向法是将被测零件进行两次安装,并分别进行两次测量

4、,两次安装的位置正好反向,经数据处理求出被测零件的直线度误差。根据采用的直尺的数量,又可分为单尺法,双尺法和三尺法。 移位法是通过被测零件的起始测量位置的变动进行两次测量,即第1次测量后,被测件向前平移一跨距,再进行第2次测量,经数据处理可消除测量基准本身的直线的误差,求出被测件的直线度误 多测头法也叫多测点法,其测量是,在测量架上安装多个测头(A, B ) ,然后以测头间距(L )为步长逐次测量,各次测量的首尾端点相接,并记录下每个测头的读数,然后通过数据处理进行误差分析,可同时得到被测表面的直线度和测量架的直线度偏差。 有直线基准测量直线基准测量法是直接采用一定的直线基础( Straigh

5、tL ine Reference) ,并以此基准来检测被测表面的直线度偏差(线差或角度值) ,从而获得被测表面的直线度误差值。所采用的直线基准通常有三种:实物基准、重力水平基准和光线基准光隙法是用刀口尺作为理想直线测量直线度误差的一种方法。这种方法通常用于对尺寸较小的磨削或研磨表面进行测量。直线度误差大小可通过测刀口与表面间光隙的大小来判断,误差值大小由比对法获得。在良好的照明条件下,可以清楚地判断出1m的微小间隙。 节距法把被测要素按一定长度(节距)划分为若干等分,然后使其测量微小角度的仪器测出各等分段相对于自然水平基准或某一固定光轴的倾角,再根据等分的长度将各段的角值偏差换算为线值偏差,最

6、后根据该组线值偏差数据评定被测要素的直线度误差。 三坐标法。三坐标测量机是近二十年来发展起来的一种以精密机械为基础,结合光栅与激光干涉技术、计算机技术、应用电子技术等先进技术的测量设备。利用三坐标测量机(或机床)的高精度导轨作为直线基准,在工作台沿床身导轨移动过程中,利用固定不动的测微表测量被测件表面各采样点的偏差值。该法具有高精度、测量灵活、系统柔性好的优点,但测量属于接触测量,对于定位点的确定需要一定技巧,测量速度较慢。随着测量工件的增大,系统往往需要配有高精度的长导轨,不适合于在线实时测量,适合于离线抽检激光准直仪法是以激光光束的能量中心线为直线基准,由光电位置敏感元件进行测量。其测量原

7、理为:由氦2氖激光器发出的一束激光经准直后射向目标测量靶,该靶中心有一块圆形四象限硅光电池,两两相对的硅光电池接成差动式。其中心与靶子的机械轴线重合。上、下一对硅光电池,可用来测量靶子相对于激光束在垂直方向上的偏移;左、右一对硅光电池,可用来测量靶子相对于激光束在水平方向上的偏移。 当光电接收靶中心与激光束能量中心重合时,相对的两个光电池接收能量相同,因此输出光电信号相等,无信号输出,指示电表指示为零。当靶子中心偏移激光束能量中心时,相对的两个光电池有差值信号输出,通过运算电路可用指示表指示出数值或用纪录仪纪录下曲线。因此,测量时首先将仪器与靶子调整好,然后将靶子沿被测表面测量方向移动,便能得

8、到直线度误差的原始数据三、 直线度测量国内外发展现状世界各个国家对直线度测量领域一直予以高度重视,并不断推出新型高精度直线度测量方法和装置,以满足日益增长的对产品质量的要求。目前国内外在圆度、平行度以及表面粗糙度等计量领域甚至已达到纳米级测量精度水平,然而直线度的测量精度却不高,特别是在大长度范围的直线度测量领域,其精度水平更远远落后于其他计量项目。国际上只有美国N IST,德国PTB,原苏联国家标准局,美国劳仑斯国家实验室,日本Osaka大学,美国Lockheed火箭和空间公司等达到了011m /m或更高的精度水平。我国目前仍采用长平晶组分段互检方法作为直线度检定基准,测量精度不高(特别是在

9、测量大尺寸零件时尤为明显) 。这种状况严重制约着我国精密计量测试领域的发展步伐。因此,对国内直线度测量方法进行研究,具有重要的意义。 纵观国内外所报道的直线度测量方法,测量精度低于015m /m的为一般精度水平,高于015m /m的属高精度测量,而高于011m /m者属国际先进水平。但由于测量方法种类繁多,目前尚未见到统一而合理的分类方法。1.3本课题的主要内容本课题要求完成对直线度检测机的设计。检测机结构如下图所示所示。 机床总体布置图 合金管两端用顶尖夹紧置于机床上,磨头轴向移动,A轴电机带动合金管转动。本课题要求在掌握合金管壁厚测量以及磨削基本要求和工艺的基础上,了解现有壁厚测量方法设计

10、壁厚测量系统,合理选用测量装置、编写壁厚误差采集程序、数据处理程序,并且能够根据采集的壁厚数据生成加工程序。因此,需要完成以下内容:(1)考虑如何获取各处的壁厚值;(2)对于获取的壁厚值是否可信,需要采用一定的方法进行判断,对于不可信的壁厚值又该如何处理;(3)得到所有点的壁厚值后,需要判断哪些地方厚度超出允许值;(4)对于超出壁厚允许值的点,该采用何种方法进行修磨;总而言之,就是要完成壁厚数据的采集,数据的处理,最终生成加工程序。 2 总体方案设计2.1 相关参数管材直径为10-40mm,管长4000mm。要求直线度误差小于0.2mm。2.2 检测方案设计一、检测方法选择对于合金管壁厚的测量

11、采用“无损检测”的方法。常用的无损检测壁厚的方法有:超声检测、射线检测等。射线检测是利用射线(X射线、射线、中子射线等)穿过材料或工件时的强度衰减,检测其内部结构不连续性的技术。穿过材料或工件的射线由于强度不同在X射线胶片上的感光程度也不同,由此生成内部不连续的图象。 超声检测是利用超声波在金属构件中传播和反射的原理,以探测构件内部缺陷的大小、性质、位置以及材质的某些物理性能。超声检测技术作为现代无损检测的重要组成部分,因其具有穿透能力强,指向性好,监测范围广等特点,从而普遍应用于探伤、测厚、测流量和液位等方面,至今已发展成为最为广泛的无损检测手段。 由于射线检测存在很大的辐射性,对人体有一定

12、的伤害,因此选择“超声波检测合金管壁厚”的方法。本课题中涉及的是超声波在厚度测量方面的运用。原理如图3所示,浸于耦合剂中的超声波探头内置晶片经压电效应产生超声波,超声波在水中会产生界面波,然后相继产生一次、二次回波。一次回波与二次回波之间的时间差t与声速v乘积就是工件厚度d,即d=vt。图3 超声波测厚原理图采用超声波检测壁厚时,探头必须很好地与空气隔绝,因为即使少量的空气存在也会造成超声波的剧烈发散,使得测量不准,甚至无法测量的情况发生。因此要求超声波探头必须浸于耦合剂中,并且确保隔绝空气。二、检测方案对于一根合金管来说,其截面有无穷多个,每个截面上的点也有无穷多个,因此考虑通过从合金管一端

13、靠近起点处选择一个截面开始测量,测量完该截面后,移动一定位移测量下一个截面,再等间距地移动至下一个截面,进行测量,如此循环下去,直至整根管坯测量结束,如图4所示。为了测量下一个截面的厚度,要求合金管与密封块间必须存在轴向的相对运动,可以通过一定的装置让传感器实现轴向移动,从而完成下一个截面的厚度检测。对于每个截面壁厚的测量,方法类似,可通过选取某点作为起始点开始测量,再等角度间隔测量下一点,如此循环下去,直至该截面测量结束,如图5所示。 对于一个截面来说,为了逐个测量等角度间隔的点,可通过用A轴控制合金管每次转动相同的角度,传感器不动的方法来完成,合金管每转动一个角度,传感器便测量一个点。 图

14、4 截面测量方法 图5 点测量方法2.3 加工方案设计由于只对合金管有限个截面进行壁厚数据采集,用这些截面的数据来反映整根管坯的壁厚情况。为了保证整根管坯的壁厚达到要求,采用A轴带动合金管转动,磨头移动的方法进行壁厚修磨,二者运动合成后便按照螺旋线轨迹对工件表面进行磨削,如图6所示。图6 加工方案图螺旋线轨迹的螺距应为磨头移动速度与合金管转动速度之比。完成一次磨削后,如果尚未达到壁厚要求,则再进行一次磨削,直至达到要求。3 检测系统设计3.1 测量装置机械结构设计一、设计超声波探头的放置方法 由于超声波传感器的工作环境必须是浸于耦合剂中,因此考虑选择器件容纳超声波探头,并向器件内注满耦合剂,从

15、而保证测量准确。为了方便起见,选用水来充当耦合剂,从而保证隔绝空气。 测量单个截面的壁厚时,传感器不动,合金管转动,合金管每转动一个角度,传感器便测量一个点。因此为了检测方便,可以根据合金管的管径,加工与其表面贴合良好,底部呈圆弧形的密封块作为容纳超声波探头的器件,如图7、8所示。此外,根据互换性的原则,对于不同的合金管,可根据其管径加工不同的密封块与其对应。 图7 密封块装置图8 密封块装置二、密封块的材料选择 为了在转动过程中,尽量减小测量误差,要求密封块在测量过程中与合金管贴合良好,因此密封块的材料选择尤为重要。如表1所示,根据各种材料间的摩擦系数,选用尼龙作为加工密封块的材料。因为尼龙

16、不但与合金管间的摩擦小,而且容易加工,密封性好,不透气,从而保证了传感器的工作环境要求。 材料名称 动摩擦系数 钢-钢 0.15 钢-铝 0.02 硬木-钢 0.12-0.16 软木-钢 0.15-0.25 尼龙-钢 0.023 聚四氟乙烯-钢 0.04 表1 材料动摩擦系数三、检测装置机构设计(1)测量单个截面的壁厚时,合金管每转动一次,传感器测量一个点的壁厚,在转动过程中,由于不同点壁厚值不同,为了测量结果准确,密封块应当能够根据不同的壁厚在截面径向和截面圆周方向能够自动调节,以保证与管面贴合良好。(2)测量下一个截面的厚度时,要求传感器轴向移动一定的距离,所以必须通过一定的装置给密封块传

17、递动力,使其轴向移动。如图9所示,由于不同截面厚度不同,因此在移动至下一截面时,要求密封块必须在移动过程中活动良好,否则无法测量或者测量结果不准确。图9 以上两条要求密封块必须与管面贴合良好,并且运动灵活,根据这一要求选用气缸与万向联轴器相连,万向联轴器与密封块固定连接的方法,保证密封块在移动过程中不受径向阻力,活动良好,且合金管转动时,继续贴合良好。同时将气缸与磨头固连,使得密封块可由磨头电机传递动力,从而轴向移动,使机构更精简,避免电机过多。由于检测装置只需满足以上要求,因此对相关零件的要求不高,根据相关选型手册中的行程参数,选择速易可(TONAB)MC 5025-S-R1-LB,其接头处

18、直径为16mm,如图10所示。图10 气缸为了与所选气缸相连接,根据16mm的接口直径选择上海双钰WSD4-YA16/M16万向联轴器,如图11所示。图11 万向联轴器根据以上思想,设计检测机构如图12所示。图12 检测机构测量开始时,由于气缸内气体的压力使得密封块与工件表面贴合,然后从装置顶部不断通入耦合剂水,保证传感器工作时密封块内始终充满水。之后便可以开始工作了,测量完一个点后,A轴电机带动合金管旋转一个角度,测量下一个点。测量完一个截面后,磨头电机带动密封块轴向移动一定距离,开始测量下一个截面直至结束。3.2 检测系统硬件选型一、超声波传感器选型由于合金管的壁厚大约为19mm,因此要求

19、所选择的传感器精度必须达到0.1毫米,根据这一要求,选择北京中西远大科技SZK6-UM18-1111圆柱形传感器,其重复精度为0.15%,测量精度0.2%。二、数据采集卡选型由于超声波传感器输出的信号为模拟量,要想得到壁厚的数据,必须对传感器输出的这些模拟量进行处理。因此须将传感器与数据采集卡相连接,同时将采集卡安装到工控机中,将采集到的数据传给计算机系统,如图13所示。图13 根据所选择的超声波传感器,选用武汉中旭科技有限公司的ZXUS-PC4-2超声波PCI板卡。安装板卡过程如图14、15、16所示。图14 ZXUS-PC4-2 卡的宿主系统工控机 图15 将ZXUS-PC4-2卡插于PC

20、I插槽中图16 ZXUS-PC4-2 卡连接到超声波探头如此便完成了超声波传感器与PCI板卡的连接。三、干扰信号的屏蔽由于在实际加工过程中,工厂工作环境噪声大,干扰因素多,所以必须采用相应措施隔离干扰信号,从而使得获得的壁厚数据准确。故采用磁环对连接线进行封闭,以隔绝电磁干扰,如图17所示。图17 4 检测及加工程序设计4.1 人机界面设计一、合金管参数设定合金管进行壁厚检测是通过等间距检测若干截面,每个截面等角度间隔检测若干点来实现的,所以需要确定测量起点和测量终点所在位置,单个截面内测量一个点后合金管转动的角度,测量完一个截面后传感器轴向移动的位移。合金管壁厚的修磨是通过先判断某点壁厚是否

21、超差,如果超差通过A轴转动,磨头移动,实现对该点进行螺旋线式的磨削。磨削一次完成后检查是否达到要求,如果仍未达到要求,则再磨削一次,如此循环下去,直至壁厚达到允许范围内。所以需要确定A轴转速,磨头移动速度,壁厚超差量的允许值,单次磨削量。根据上述要求,确定以下参数:(1)测量起点离合金管左端面的距离:dis(2)测量终点离合金管左端面的距离:L(3)合金管每次转动的角度:rad(4)传感器每次移动的位移:distance(5)A轴转速:FeedRateGA(6)磨头移动速度:FeedRateGX(7)壁厚超差允许值:nominal_thickness(8)单次磨削量:nominal_Gring

22、ding_quantity二、人机界面设计根据前面的参数,设计数据处理及加工界面如图18所示。图18 4.2 检测程序的编制定位到起始点后开始检测,装有超声波传感器的密封块压下,并向其中开始通水,暂停10秒钟,保证水能充满密封块。由于所用检测装置为万向节浮动机构,当密封块压下时,可能没有与合金管表面贴合良好,因此让合金管先转动30度,然后反转30度,从而使二者在相对运动中自动调节达到理想的状态。然后便进入正式检测阶段,设定合金管每次转动18度后暂停0.5秒,传感器检测一个点,每个截面检测20个点。水内可能存在杂质或者合金管内外表面存在裂纹等,将会导致壁厚测量结果不准确,因此采取对单个截面测量完

23、成后再测量两次的方法,保证每个点有三次测量值,使得最终结果更准确可信。基于以上思想,编制检测程序如下(详见附表)TRANS X= 10 定位到起始点,距离左端面10mmR10=1 开始对第一个截面进行第一次检测G0 X= 0 A=DC( 0) 以起始点为零点,将其角度定为0度M32 检测装置压下M07 通水G04 F10 暂停10秒钟G0 A=DC(30) 正向转动30度G0 A=IC(0) 反向转动30度,回到起始点M50 开始检测G04 F0.5 暂停0.5sM51 停止检测G01 X= 0 A=DC( 18) F 4000 合金管转动18度,磨头移动速度为4000mm/minM50 开始

24、检测G04 F0.5 暂停0.5sM51 停止检测G01 X= 0 A=DC( 36) F 4000 合金管再转动18度,检测下一个点M50 开始检测G04 F0.5 暂停0.5sM51 停止检测G01 X= 0 A=DC( 54) F 4000 合金管再转动18度,检测下一个点M50 G04 F0.5 M51 .G01 X= 0 A=DC( 342) F 4000M50G04 F0.5M51G0 X= 0 A=DC( 359.999) M50G04 F0.5M51R10=2 对第一个截面进行第二次检测G01 X= 0 A=DC( 0) F 4000M50G04 F0.5M51G01 X= 0

25、 A=DC( 18) F 4000.G01 X= 0 A=DC( 359.999) F 4000M50G04 F0.5M51R10=3 对第一个截面进行第三次检测G01 X= 0 A=DC( 0) F 4000M50G04 F0.5M51G01 X= 0 A=DC( 18) F 4000.G01 X= 0 A=DC( 359.999) F 4000M50G04 F0.5M51M33 检测完一个截面后检测装置抬起STOPRE R10=1 对该截面进行第一次检测G0 X= 150 A=DC( 0) 检测装置移动150mm,检测下一个截面M32 检测装置压下M07 通水G04 F10G0 A=DC(

26、30) G0 A=IC(0) M50G04 F0.5M51G01 X= 150 A=DC( 18) F 4000.G01 X= 1810 A=DC( 359.999) F 4000 完成距离左端面1810mm处的截面检测M50G04 F0.5M51 M33 检测装置抬起M52 检测结束M08 停止通水M30 程序结束4.3 数据处理程序的编制一、数据的读取 (1)程序中相关变量的确定 由检测程序获得了壁厚的数据,存放在“D:ERROR.txt”中,截取部分如下所示(详见附表) 10 18 19.188 10 18 19.206 10 18 19.194 10 36 19.124 10 36 1

27、9.106 10 36 19.101 10 54 18.971 10 54 18.953 10 54 18.948 . . . 10 162 18.948 10 162 18.942 10 162 18.931 10 180 19.001 10 180 19.177 10 180 19.67 . . . 10 342 19.323 10 342 19.341 10 342 19.323 10 359.999 19.259 10 359.999 19.265 10 359.999 19.271 160 18 19.218 160 18 19.235 160 18 19.247 160 36 19

28、.154 160 36 19.154 160 36 19.154 . . .每行第一个数代表检测点所在截面离左端面的距离,第二个数代表检测点在该截面上的角度,第三个数即检测点的壁厚。每个点均有三次检测值,分三行显示。由此可知,可选用三个二维数组a(),b(),c()来分别存放三次检测值,第一维下标代表所检测的截面,第二维下标代表该截面上所检测的那个点。定义二维数组第一维下标上界为N1,第二维下标上界为N2。由前述人机界面设计中的参数设定可知:测量起始点离工件左端面的距离为dis,测量终点离左端面的距离为L,相邻两 截面的间距为distance,每个截面上相邻两检测点间的角度为rad,则总的截面

29、数为:(L - dis) distance+1,每个截面的测量点数为360/rad。由于数组下标从0开始,则 N1=(L - dis) distance N2=360/rad - 1 (2)提取壁厚数据 10 18 19.188 10 18 19.206 10 18 19.194 10 36 19.124 10 36 19.106 10 36 19.101由于每行以空格开头,且有三个数,这三个数间用两个空格隔开。两点的壁厚数据用空格行隔开。为了提取每点的三次壁厚值,可将每行数据作为字符串来读取,先用Trim函数将每行的第一个空格去掉,然后用replace函数将每行的两个空格替代为一个空格,再用

30、Split函数将字符串分割开,于是便提取出了每行的三个数。读取完空格行后,便进入下一个点壁厚的读取,每四行一个循环,则循环次数即为所有检测点的个数,即截面数每个截面的点数。假设循环次数为m+1,则m = (N1 + 1) * (N2 + 1) - 1 每个点的三次检测值,采用二维数组g(10000,2)来存放,g(0,0)代表第一点的第一次检测值,g(0,1)代表第一点的第二次检测值,g(0,2)代表第一点的第三次检测值,g(1,0)代表第二点的第一次检测值,以此类推。读取完毕后,将数组g(10000,2)中存取的数据对应赋值给二维数组a(N1, N2), b(N1, N2), c(N1, N

31、2)用来存放每个点的三次检测值。 相应程序段如下(详见附表)Option ExplicitDim N1, N2 As Integer 二维数组的下标上界Dim i, j As IntegerDim dis, l As Single 测量起始点,测量终点Dim distance, rad As Single 测量间距,测量角度Dim FeedRateGA, FeedRateGX As Single A轴转速,磨头移动速度Dim count1 As IntegerDim count2 As IntegerDim a(), b(), c(), d() As SingleDim e(), f() As

32、 BooleanSub GetParam() dis = Val(Text1.Text) 测量起始点位置 L = Val(Text2.Text) 测量终点位置 distance = Val(Text3.Text) 测量间距 rad = Val(Text4.Text) 测量角度 FeedRateGA = Val(Text5.Text) A轴转速 FeedRateGX = Val(Text6.Text) 磨头移动速度 N1 = (L - dis) distance 测量的截面数 N2 = 360 / rad - 1 每个截面测量点的数量End Sub*读取数据Private Sub Command

33、1_Click()Call GetParam Dim m, q1, q2 As Integer Dim S1, S2, S3 As Single Dim g() As Single ReDim a(N1, N2), b(N1, N2), c(N1, N2), d(N1, N2), g(10000, 2) As Singlem = (N1 + 1) * (N2 + 1) - 1 定义循环次数 ReDim e(N1, N2), f(N1) As Boolean Dim str1() As String ReDim str1(m) As String Dim n As Integer Dim Str

34、conv1, Strconv2 As String Dim sss() As String Open D:ERROR.txt For Input As #1 For n = 0 To m Line Input #1, str1(n) Strconv1 = Trim(str1(n) 去掉每行第一个空格 Strconv2 = Replace(Strconv1, , ) 两个空格变为一个 sss = Split(Strconv2, ) 提取出每行的三个数 g(n, 0) = Val(sss(2) 提取出每行第三个数,即壁厚值 Line Input #1, str1(n) Strconv1 = Tri

35、m(str1(n) Strconv2 = Replace(Strconv1, , ) sss = Split(Strconv2, ) g(n, 1) = Val(sss(2) Line Input #1, str1(n) Strconv1 = Trim(str1(n) Strconv2 = Replace(Strconv1, , ) sss = Split(Strconv2, ) g(n, 2) = Val(sss(2) Line Input #1, str1(n) q1 = n (N2 + 1) 确定数组a,b,c的一维下标 q2 = n Mod (N2 + 1) 确定数组a,b,c的二维下

36、标 a(q1, q2) = g(n, 0) b(q1, q2) = g(n, 1) c(q1, q2) = g(n, 2) Next n Close #1 程序运行后,对每个点的三次检测值a(i, j), b(i, j), c(i, j)添加监视,截取部分结果如下。 二、数据的处理(1)异常数据判断及数据处理一在理想状态下,每个点壁厚的三次检测值应当一致,可是现实中不可能保证完全相同,还可能因为合金管存在裂纹或者水内有杂质,导致三次测量值存在很大偏差。观察获得的数据可知,有些点壁厚的三次检测值相差很大,如19.001,19.177,19.67,这种相差很大的便属于异常数据。判断每点的三次壁厚检

37、测值是否异常,可按照图19所示的流程图1来处理(可见附录)。图19 流程图1设定任意点壁厚的三次检测值分别为a(i, j),b(i, j),c(i, j),判断该点数据是否异常:如果某个点三次检测值两两间均相差不大,则说明该点测量值可信,则取三个值的平均值作为该点的厚度;如果某个点三次检测值两两间均相差很大,则说明该点测量值不可信,将三个值均抛弃;如果某个点三次检测值中有两个值相差不大,则可保留这两个值,并取二者平均值作为该点的厚度;基于以上思想,可取三次检测值两两间的偏差量。先取两两间的差值,之后取绝对值得到的三个数S1、S2、S3,即为这三个偏差量,则S1 = Abs(a(i, j) -

38、b(i, j)S2 = Abs(b(i, j) - c(i, j)S3 = Abs(c(i, j) - a(i, j)将两两数据间的偏差允许量设置为0.5,则若三个偏差量均超过0.5,则先将该点厚度置为0;若三个偏差量均在0.5以内,则取三次检测值的平均值;若三个偏差量有一个在0.5以内,则将对应的两次检测值取平均。处理完的壁厚值可用二维数组d(N1,N2)来存储,第一维下标代表所检测的截面,第二维下标代表该截面上所检测的那个点。如此循环,直至判断完一个截面所有点检测值是否异常。设定统计值count1和count2,如果某点检测值异常,则统计值count1加一,如果该截面异常点数超过检测点数的

39、1/3,则判定该截面为异常截面,统计值count2加一。之后按上述过程判断下一截面,直至所有截面判断完毕,如果异常截面数超过总截面数的1/3,则通知用户该管存在问题,如果没有,则说明该管正常。 相应程序段如下所示(详见附录)count2 = 0 count2用来判断合金管是否异常 For i = 0 To N1 count1 = 0 开始检测下一个截面时,截面异常点数清零 For j = 0 To N2 S1 = Abs(a(i, j) - b(i, j) S2 = Abs(b(i, j) - c(i, j) S3 = Abs(c(i, j) - a(i, j) If (S1 = 0.05) And (S2 = 0.05) And (S3 0.05) And (S2 0.05) And (S3 0.05) Then e(i, j) = True d(i, j) = 0 count1 = count1 + 1 Else If S1 = 0.05 Then e(i, j) = False d(i, j)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号