c语言数组最大值最小值最小二乘圆法评定圆度误差的程序设计
摘 要: 介绍了用最小二乘圆法评定圆度误差的准则及实现方法,VC + + 环境下开发了圆度误差计算评定软件。  测试验证表明,程序算法正确,界面直观形象,可直接显示圆度误差值和误差图形。
Programming for Evaluation of Roundness Error by Least Squares MeanCircleMethod
Yue Kui
Abstract : The evaluation rule for roundness error by means of least squares mean circle and its realization method are intro2duced , and the software for calculation and evaluation of roundness error is developed under VC condition. The testing results indi2cate that the arithmetic is correct , the interface of the program is visual and the roundness error and diagrammatic view can beshown directly.
Keywords :roundness ,  error evaluation ,  least squares mean circle ,  programming
1  引言
国家标准GB7234 87《圆度测量术语、定义及参数》中规定的圆度评定方法包括:最小包容区域法、最小二乘圆法、最小外接圆法和最大内接圆法。随着计算机技术的发展和普及应用,圆度测量数据也大多采用计算机处理[14 ] 。本文针对在光学分度头上测得的圆度数据值,采用最小二乘圆法进行评定,给出了计算机数据处理算法,并用VC + + 设计编制了界面简明可在输出窗口直接显示圆度误差值和误差图解的评定软件。
2.最小二乘圆法的评定准则 
二乘圆是个理想的圆,它使从实际被测轮廓上各点到该圆周的距离的平方和为最小[5 ,6 ] ,以其圆心为中心,作两个同心圆包容实际被测轮廓,该轮廓上至少有一个测点与内圆接触,有另一个测点与外圆接触。以这两个圆的半径差作为圆度误差
,Σni = 1( Ri - R) 2 = min  ( i = 1 ,2 , , n) (1)  f LS = Rmax - Rmin (2)
式中 R ———最小二乘圆半径
Ri ———实际被测轮廓上各点到最小二乘圆心的距离
fLS ———圆度误差值
Rmax , Rmin ———实际被测轮廓上各点到最小二乘圆心的距离中的最大值和最小值
按最小二乘圆法评定圆度误差值的原理如图1所示。
1  按最小二乘圆法评定圆度误差
根据实际被测轮廓图,以测量中心O (分度头的主轴回转轴线) 为测量实际轮廓时所用坐标系的原点,令最小二乘圆的圆心直角坐标为G( a , b) ,按极坐标测得的实际轮廓上各测点坐标为Pi ( ri ,θi ) ,则最小二乘圆的圆心坐标G( a , b) 的计算公式
       
式中 n ———实际轮廓等分角间隔数, n 越大,计算结果越精确
i ———测点序号( i = 1 ,2 , , n)
需要说明, ri 是各测点到坐标原点(测量中心O) 的径向距离。若基圆的半径为R,在光学分度头上测得各测点的值为Δri ,ri = R+ Δri  ( i = 1 ,2 , , n) (5)
  3  最小二乘圆法评定圆度误差的实现
3.1 载入数据处理
(1) 在编制的圆度评定程序界面(见图3、图4)左边的数据录入区,按测量顺序输入各测点的Δri(即千分表指针的摆动值) ,利用函数UpdateData) 获取数据,将数据值放入一维数组aa[100 ]中。由于基圆半径值不影响圆度误差值,为便于作图和计
,将数组aa 中的值都加上基圆半径R,然后将求出的数值放入一维数组ri [100 ]中。
(2) 利用函数GetLineCount () 自动获取输入数据的个数,并放入全程变量nLine ,将该值作为式(3) 、式(4) 中的n 值。
3.2  编程方法
(1) 计算最小二乘圆的圆心和半径 
根据式(3) 和式(4) ,利用以下语句来实现最小二乘圆的圆心和半径计算:
a = 0 ,b = 0 ,R = 0 ;
for (i = 0 ;i < nLine ;i ++ ) {
  a = + aa[ i ] 3 cos (2 3 3114/ nLine 3 i) ;
  b = + aa[ i ] 3 sin(2 3 3114/ nLine 3 i) ;
  R = + aa[ i ] ;
 }
a = 2 3 a/ nLine ;
b = 2 3 b/ nLine ;
R = R/ nLine ;
(2) 求各测点到最小二乘圆圆心的距离   
各测点Pi 的横坐标值是aa [ i ] 3 cos (2 3 3114/nLine3i) ,    纵坐标值是aa [ i ]3
sin (233114/ nLine3i) ,
最小二乘圆的圆心为G( a , b) ,求出两点之间的距离后放入一维数组Rri [100 ]中。
(3) 确定实际被测轮廓上各点到最小二乘圆心的距离中的最大值和最小值
采用以下循环语句在数组Rri [ 100 ]中出最大的数和最小的数:
Rmax = - 110e + 10 ,Rmin = 110e + 10 ;
for (i = 0 ;i < nLine ;i ++ ) {
 if (Rmax < Rri [ i ])
  Rmax = Rri [ i ] ;
 if (Rmin > Rri [ i ])
  Rmin = Rri [ i ] ;
}
(4) 计算圆度误差值
根据式(2) ,利用以下语句可求出圆度误差值:
fLS = Rmax - Rmin ;
3.3  程序流程设计
设计的程序流程如图2 所示。
   
4  实例验证
根据上述编程思路,作者利用VC + + 610 编制了圆度评定程序,并通过计算实例进行了验证。
1 :测量数据经本程序处理,计算出圆度误差值为181551μm ,并同时用图形方式显示(3)
文献[ 7 ]中的结果18155μm 在相同有效值情况下完全一致。
   
2 :测量数据经本程序处理,计算出圆度误差值为181825μm ,并同时用图形方式显示(4)
文献[8 ]中的结果1818μm 在相同有效值情况下完全一致。
   
  5  结语
根据最小二乘圆法评定准则开发的圆度误差评定程序算法准确,界面简明清晰(分为数据区﹑图形区﹑和结论区) ,操作简单方便,带图形显示的评定结果直观生动,形象地表明了最小二乘圆法的特点。
参考文献
1  杨 雪等. 最小条件求圆度误差值的快速电算法. 计量
技术, 2001 (3) : 56
2  颜 毅. 评定圆度误差的一种快速算法. 长沙大学学报,
2004 (6) : 1921
3  田社平. 基于遗传算法的圆度误差评价. 计量技术,
2004 (4) : 35
4  岳 奎. 基于VC 环境下的圆度误差的快速处理. 组合
机床与自动化加工技术, 2005 (12) : 3738
5  黄长艺等. 机械工程测量与试验技术. 北京: 机械工业
出版社, 2004
6  甘永立. 几何量公差与检测实验指导书(第四版) . 上海
科学技术出版社, 2004
7  甘永立. 几何量公差与检测实验指导书(第三版) . 上海
科学技术出版社, 2002
8  张永春等. 形状误差数据处理的线性规划和单纯形解
. 计量技术, 2001 (12) : 4649
作者:岳 奎,博士研究生,合肥工业大学机械与汽车学
院工艺教研室,230009 合肥市