专业、灵活、高效的DMIS编程开发平台

创新的"大半径,小圆弧"测量解决方案

"大半径,小圆弧"的测量一直是三坐标测量行业的难题(小圆弧一般认为是圆心角小于30度的圆弧). 问题的主要原因是, 在测量过程中不可避免地产生测量误差. 而"大半径,小圆弧"的形状会成几十倍或上百倍地放大测量误差. 最终导致测量结果很不准确, 重复性很差. 很多行业专家已经详细地分析出误差产生的原因以及结果. 这里就不再赘述. 下面将演示通常测量"大半径,小圆弧"时会遇到的问题.

上面的演示中, 测量机的测量精度设置为30μm, 定义了一个直径600mm的理论圆. 然后在一小段圆弧上测量30个测量点, 最后使用传统的最小二乘法拟合产生实际圆. 结果很明显, 拟合计算出的实际圆与理论圆偏差很大. 其直径最大偏差达到了6779μm. 也就是将测量机本身的30μm的测量误差, 直接被放大了将近200倍. 而且重复测量了5次, 每次计算的圆心和半径相差也很大. 表明其重复性非常差. 这个试验也证明了造成"大半径,小圆弧"误差的主要原因是软件算法, 而非测量机硬件系统(因为测量机硬件的误差不可能这么大). 因此解决"大半径,小圆弧"的问题必须要从软件方面入手

针对"大半径,小圆弧"的测量问题, 三坐标测量行业传统上有两种解决方案. 1:"固定圆心法". 2"固定半径法". 这两种方法的思路基本相同, 都是约束某一个参数, 而放任另外一个参数. "固定半径法"使用理论圆的半径作为约束条件, 拟合出最佳匹配圆. 而"固定圆心法"是使用理论圆心作为约束条件, 拟合出最佳匹配圆. 虽然这两种方法能够在一定程度上解决"大半径,小圆弧"的误差问题, 但这两种算法是假设实际圆半径恰好等于理论圆半径, 或者实际圆心位置正好和理论圆心位置重合. 显然实际情况并不能满足这种假设. 所以"固定圆心法"和"固定半径法"这两种方法是建立在一个错误的前提假设基础上的解决方案. 其得到的测量结果并不是真实和客观的, 不能完全反映被测工件的真实形状.

TotalDMIS为"大半径,小圆弧"的测量提供了一种新的解决方案. TotalDMIS的解决方案是建立这样一个前提假设基础上的: 即实际圆心与理论圆心的位置差别应该小于某个范围. 同理实际圆和理论圆的半径差别也应该小于某个范围. 这个范围可能是加工机床的最大加工误差. 也可以是其他造成加工误差的因素. 我们认为在正常的生产条件下, 这个前提假设是比较容易满足和实现的. 在这个前提假设基础上, TotalDMIS给出了"大半径,小圆弧"问题的解决方案. TotalDMIS仍然采用约束圆心或半径的方法来减少误差的放大效应. 但不使用固定的理论圆心和理论半径作为约束条件, 而是允许圆心和半径在某个数据范围内进行浮动. 这样即可以降低误差的放大效应, 同时也能保证测量结果客观公正地反映工件的实际加工情况. 测量行业中的"短线段"的测量问题也可以采用类似的解决方案来解决.

下面的演示中显示了TotalDMIS提供的带约束的圆拟合算法. 这个演示中定义的理论圆, 测量点位置以及机器测量误差都和上面的演示中的定义完全一致, 唯一的修改就是使用了TotalDMIS的约束圆拟合算法(TDCCFA). 演示中的算法不约束圆心位置, 只约束实际半径与理论半径的差别不超过+-200μm. 可以看到TotalDMIS的TDCCFA算法计算出的实际圆和理论圆的参数差别很小, 并且重复测量了5次, 每次的数据都很接近, 具有很好的重复性.

在实际生产测量时, 我们建议采用下面的方式来测量"大半径,小圆弧", 1: 尽量使用程序方式自动测量圆, 避免使用手动方式测量, 这样可以减少手动测量产生的余弦误差. 2: 尽可能多地密集采点, 可以减少测量机的系统误差. 3: 根据加工车床的精度, 合理设置约束范围. 例如假设加工车床的精度是10u, 那么我们可以合理地假设实际圆直径应该在其理论圆直径的+-10u区间内. 实际圆心位置与理论圆心位置的距离应该小于10u, 但为了更加保险, 可以稍微扩大约束公差范围, 将直径和圆心位置的约束范围设置成+-20u. 通过上面的方式, 基本上就可以解决测量"大半径,小圆弧"的行业难题. 保证测量结果的客观与准确.

附录:TotalDMIS约束圆算法语法格式

TotalDMIS使用DMIS的"GEOALG"扩展语法来定义约束圆算法(TDCCFA). 其语法格式如下:
GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', parameter1, parameter2
parameter1用于约束圆心位置. 可以是NOLIMIT, 表示不约束圆心位置. 或者是一个正实数. 表示实际拟合的圆心位置与理论圆心位置的距离必须小于此数值
parameter2用于约束直径. 可以是NOLIMIT, 表示不约束直径大小. 或者是一个正实数. 表示实际拟合的圆直径与理论圆直径的差必须小于此数值

下面给出GEOALG语法的一些例子代码:
GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', NOLIMIT, 0.02
这条语法表示将当前的拟合圆算法设置成TDCCFA算法, 不约束圆心位置, 实际直径与理论直径的差要小于0.02

GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', 0.3, NOLIMIT
这条语法表示将当前的拟合圆算法设置成TDCCFA算法, 实际圆心与理论圆心的距离必须小于0.3, 不约束直径

GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', 0.3, 0.02
这条语法表示将当前的拟合圆算法设置成TDCCFA算法, 同时约束圆心和直径

GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', NOLIMIT, 0
这条语法表示实际直径必须等于理论直径, 不约束圆心位置, 其实这就是传统的"固定半径法"

GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', 0, NOLIMIT
这条语法表示实际圆心位置必须等于理论圆心位置, 不约束直径, 其实这就是传统的"固定圆心法"

GEOALG/CIRCLE,EXTERN,DME,'TDCCFA', NOLIMIT, NOLIMIT
这条语法表示既不约束圆心位置, 也不约束直径, 因此算法退化成传统的最小二乘法