徐润东,汪 伟,寇勃晨,闫新良
(1.陆军工程大学 火炮工程系, 石家庄 050003; 2.北京军代局驻晋中地区代表室, 山西 晋中 030600)
滑膛炮作为部队主要作战装备,具备高射速、高膛压、威力大等特点。在射击过程中,滑膛炮身管由于高温高压气体和高速弹丸的反复作用,极易造成内壁磨损、内表面裂纹等缺陷,这些缺陷势必会降低火炮的战术性能,降低使用寿命。同时,在滑膛炮生产阶段,身管生产精度很大程度上决定着滑膛炮生产的良品率。因此,对滑膛炮身管进行内径检测具有重要意义。目前国内外对于滑膛炮身管的内径测量按照测量结果获得方式分为直接测量、间接测量和综合测量;按测量触头是否接触内壁分为接触式测量和非接触式测量;按传感器测量原理不同又分为机械式、电子式、光学式传感器测量等[1]。通过查阅资料发现[2],目前各部队所使用的内径测量设备型号众多,既有机械式测量,又有电子式、光学式测量。机械式测量仪相比较与电子式和光学式测量仪操作简单,设备可靠,但测量效率低,适用范围窄,并且存在定心不准的情况;电子式和光学式测量仪相较与机械式测量仪设备轻便,测量精度高,但测量成本高,对操作人员水平要求较高。火炮身管内径测量的研究趋势是采用身管机器人结合光学、激光测距等方式进行内径测量,激光传感器以其高精度为人们所熟知,其单色性、方向性、相干性好,测量时定位精准且受干扰较小,在测量位移、角度[3]等方面应用广泛。
设计的基于激光传感器的滑膛炮身管内径测量系统已经用于身管的自动化测量,目前恢复内径尺寸采用的是一种基于剩余半径与圆心角的测量算法[4-6],但是通过实验发现,该算法存在以下两点问题:① 理论前提与实际不符;② 滤波方式会抹去被测物本身缺陷的情况。为了解决以上两种问题,本文提出一种改进的身管内径测量算法:① 利用三次样条插值对采样数据进行了扩充,弥补了数据精度不足的情况;② 改变均值滤波区间数m,使得滤波后的结果既能减小了粗大误差,又能保留被测物缺陷,更加符合检测的需要。
内径测量系统设计框图如图1。
1.激光传感器;2.悬臂;3.电机及其固定装置;4.支撑机构;5.激光测距机;6.标板
取被测物剖面如图2所示。O1为身管中心,O2为步进电机轴心,虚线圆表示激光发射器旋转一周的路径,r为虚线圆半径,表示激光发射头到步进电机轴心的距离,此长度为定值。设步进电机步长为α,则激光发射器扫描一周采集的数据n=2π÷α。
测得的n份数据与虚线圆半径r求和构成身管内壁O1的n条弦,其一般表达式为
Lm=Am+Am+n/2+2r
(1)
为了直观显示出身管内膛缺陷形状与尺寸,将最大弦长一半作为半径,绘制一个标准圆。而后以该位置为数据起始点(设此处转角θ=0,传感器测量值为B1),以该建立剩余半径和圆心角的求解计算模型。
图3中P处传感器测量值为Bm,管孔半径的一般计算公式如下:
(2)
对应圆心角β的一般计算公式如下
(3)
图2 被测物剖面
图3 重新划分起点
理想情况下认为所得最长弦等于或接近于真实直径,但是受电机步长的影响,所得最长弦小于真实直径且误差不可忽略。这就造成以最长弦一半为半径的标准圆和以剩余半径得到的实际圆不能完全重合,影响后续进行的身管故障诊断。改进办法为:对样本数据进行插值,而后选择极值点附近5组作为可疑直径,并与剩余半径均值进行对比,选择误差最小的一组作为标准圆半径。
由于回转臂强度有限,激光传感器质量会导致转动过程中回转臂弯曲变形,影响测量精度,根据实际仿真计算知道,当内径为 1 000 mm 时,回转臂的最大轴向变形为 0.081 μm,这与传感器的分辨率 0.1μm 相当; 回转臂的水平位置的最大挠度角度 1.74″,与电机编码器的分辨率3.05″相当,因此这两项误差可以忽略不计[7]。
如图4所示:设身管中心,电机轴心,传感器测量头三者共线时与身管内径交于M,N两点,传感器旋转一周采集到的最大值与最小值求和所得为实验直径,上述内径测量算法默认前提是实验直径=身管直径。但是经过多次实验发现上述方法存在两点问题:① 实际测量过程中电机步长不是无限小,电机存在一定概率跳过M,N两点,使得实验直径<身管直径;② 数据采集必然包含粗大误差,为了消除粗大误差要对数据进行滤波。而内径测量的目的是表征身管内径有无缺陷,因此要选择合适的滤波方式,使结果既减小粗大误差又不影响缺陷显现。为了解决以上提到的问题,对原算法进行如下改进:
图4 理论测得试验直径
插值法包括拉格朗日插值法,牛顿插值法,Hermite插值法,样条插值法等[8]。通过查阅文献[9]得到,三次样条插值法既能保证运算量不至于过大,又能使得插值处光滑过渡,因此选用三次样条插值法对原数据进行扩充。
三次样条插值函数的数学定义为:函数S(x)∈C2[a,b],且在每个小区间[xj,xj+1] 上是三次多项式,其中a=x0 S(x)=ajx3+bjx2+cjx+dj,j= 0,1,…,n (4) 其中aj,bj,cj,dj是待定系数,并让它满足: S(xj)=yj,S(xj-0)=S(xj+0), j=1,2,…,n-1 (5) S′(xj-0)=S′(xj+0),S″(xj-0)=S″(xj+0), j=1,…,n-1 (6) 式(5)~式(6)共给出了n+1+3(n-1)=4n-2个条件,而需要待定的4n个系数,所以还缺少2个边界条件。常见的边界条件有3类。 第一类边界条件:给定端点处的一阶导数值S′(x1)=y1′;S′ (xn)=yn′; 第二类边界条件:给定端点处的二阶导数值,S″(x1)=y1″;S″(xn)=yn″特殊情况下,这种情况y1″=yn″,这种情况称之为自然边界; 第三类边界条件:函数的周期性。若函数y=f(x)是b-a以为周期,则S(x)在端点处满足于条件:S′(x1+0)=S′(xn-0),S′(x1+0)=S′(xn-0)。通过选定边界条件,即可实现对三次样条函数的求解。 身管内径测量所得数据本身具有局部单调性,粗大误差在数据内部表现为随机干扰,为了保证滤波前后数据变化趋势的一致性,这里选用均值滤波[10]。其基本方法为:用信号中每个小区间的均值代替中央信号的值,即对待处理的当前信号点xi,在其左右两侧选择相同的信号点组成一个小区间,计算小区间中所有信号的均值,再把该均值赋予当前信号点xi,作为滤波后信号在该点上的值,即 (7) m为该区间中包含当前信号点在内的信号总个数。原方法在滤波时m选为9,但是在处理数据过程中发现该滤波方式容易在滤去粗大误差的同时改变身管本身的缺陷形状,造成失真。通过多次比较,m=5时滤波效果最好。 为了对比改进后的身管内径测量算法与改进前算法的优劣,对实验数据分别用两种算法进行处理。被测物为半径R=61 mm的模拟身管,采样点数N=800,电机步长θ=0.45°。所得数据如图5所示。 按照原方法未插值,滤波区间数m=9时效果如图6所示。 图5 N=800时原始数据 图6 滤波后数据 可以看出,原数据本身锯齿状十分明显,同时在横坐标等于300处有一个突变,经过滤波后曲线变得光滑,但同时突变处也产生了较大损失。 按照改进后的算法,首先对样本数据进行三次样条插值,这里倍数设定为4,而后对插值后的数据进行m=5的均值滤波,效果如图7和图8所示。 图7 三次样条插值后数据 图8 三次样条插值及m=5时均值滤波后数据 可以看出,经过插值后数据量变为了原数据量4倍,将均值滤波m值改为5后曲线改善了光滑度,同时保证了突变处不失真。 为了进一步说明改进后的算法求解半径更加准确,人为在被测物内部设置两处缺陷,用来查看两种算法对缺陷的识别能力。图9是激光传感器测得设置缺陷后的样本数据,可以明显看出,在横坐标等于300和400位置各有一处缺陷。 将样本数据用未改进算法与改进后的算法分别处理,图10是m=9时的均值滤波结果,图11是m=5时的均值滤波结果。 图9 含缺陷的原始数据 图10 m=9时的均值滤波曲线 图11 m=5时的均值滤波曲线 可以明显看出,改进前的算法对缺陷表征不足,而改进后的算法相比于未改进的算法在缺陷辨识能力上有了明显的提升。 通过对比实验,直观地说明了改进后的算法比改进前的算法在数据可靠度、缺陷表征度上有了明显提高,最终通过改进后的算法对被测物进行了内径恢复,图12为使用改进后的算法恢复出的内径图,缺陷位置与形状与预先设置基本一致。 图12 改进算法后恢复出内径图 利用基于剩余半径和圆心角的内径测量算法对滑膛炮身管进行内径测量,从理论推导上可行,但实际测量时是离散量采集,必须考虑数值跳跃的情况;同时在对数据进行处理时,选用合适的滤波方式关乎粗大误差的剔除和被测物本身缺陷的表征。对原算法进行改进,一方面利用三次样条插值扩大了数据量,使得实验直径更加逼近真实直径;另一方面将均值滤波m值由9改为5,提高了数据精度,保留了被测物本身具有的缺陷。通过对比实验证明:在滑膛炮身管内径测量过程中,利用三次样条插值法进行插值能过扩大数据量,使计算结果更加准确;均值滤波参数m选为5能有效剔除粗大误差同时保留构件本身的缺陷。3.2 对数据进行均值滤波,减小粗大误差
4 数据处理
5 结论