精密测量与求解圆弧半径的方法
1 测量方法
以万工显上分度盘的旋转中心O为原点。建立直角坐标系,准确地确定出原点的坐标:O(x0,y0),并调整分度盘的角度读数φ0=0°。根据被测圆弧的安装位置及圆弧包角大小(图1),选择三个不同的转角φ1、φ2、φ3分别测量出被测圆弧的切线到基线(与仪器纵向x平行且过原点的直线)的距离(切线距)h1、h2、h3,则可得到三组数据:φ1,h1;φ2,h2;φ3,h3。
2 圆弧半径计算公式
以三组数据为依据,绘出计算图(图2)。通过圆弧中心O1的三条直线L1,L2,L3的法线分别是过原点O的P1,P2,P3有向线段;φ1,φ2,φ3是分度盘的转角,它以基线正向逆时针转向为正,顺时 针转向为负。被测圆弧的半径R,可通过直线Li的方程求出
测量时,如果其中有一次分度盘不旋转,即φo=0,当以φo代替φ3,ho代替h3代入式(3)并化简
式(3)、式(4),当被测圆弧的切线位于圆弧中心O1之上时取正号,位于圆弧中心O1之下时取负号,而与被测圆弧是外圆弧还是内圆弧无关。
3 圆弧半径的求解
尽管本文是以圆弧上三点建立的半径计算公式,可是笔者通过计算机用TURBO·C语言编辑的源程序RR. C程序,解决了圆弧多点测量的半径计算问题。测量时可以在被测圆弧轮廓上均匀地选择测量点,进行多点测量。然后按每三组的测量数据(φi, hi)求出Ri,并以Ri的平均值作为被测圆弧半径的测量结果。
用TURBO·C语言编辑的源程序RR·C程序(在中文DOS下编译)
#include
main()
{double yo,Pm=0·000 000,r,qrh();
int i;
char*m;
printf(“输入原点坐标:yo; n”);
scanf(“%lf”,&yo);
for(i=0;i<100;i++)
{printf(“已经测量%d次 n”,i);
printf(“继续测量吗? Y/N: n”);
scanf(“%s”,&m);
if(m==‘n’)
{r=pm/i;
printf(“R=%lf”,r);
break;}
pm=pm+qrh(yo);}}
double qrh(yy)
double yy;
{double ho=0,m1,m2,m3,r,y1,y2,y3,h1=0,h2=0,h3=0;
int a1,a2,a3;);
printf(“输入转角Φ1: n”);
scanf(“%d”,&a1);
printf(“输入纵坐标Y1: n”);
scanf(“%lf,”&y1);
printf(“输入转角Φ2: n”);
scanf(“%d”,&a2);
printf(“输入纵坐标:Y2: n”);
scanf(“%lf”,&y2);
printf(“输入转角Φ3: n”);
scanf(“%d”,&a3);
printf(“输入纵坐标Y3: n”);
scanf(“%lf”,&y3);
h0=y1-yy;
h1=fabs(ho);
相关文章
- 2022-07-22提高高速压电倾斜镜应用带宽的方法
- 2023-05-30干井式温度校验器校准方法研究
- 2023-10-04低温气液两相流数值计算分析
- 2023-06-16新型的二维压电移动机构
- 2022-01-03CXT智能变送器原理与应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。