}
计算外啮合和内啮合各种齿轮,原理基本一样,重点注意的是取值的精确度问题,以及弄清各参数之间的关系,以便于计算,避免数值的混淆。
2、确定部分重要精度参数的取值函数
public static int fpb_value(double x, double y, string z) //基节极限偏差fpb取值
{…}
public static int fβ_value(int x, string y) //齿向公差fβ取值
{…}
public static double fa_value(double x, string y) //中心距极限偏差fa取值
{…}
public static int fpt_value(double x, double y, string z) //齿距极限偏差fpb取值
{…}
public static int fr_value(double x, double y, string z) //齿圈径向跳动公差fr取值
{…}
public static double br_value(string x, double d) //切齿径向进刀公差br取值
{…}
public static char code_value(double x) //偏差代号
{…}
3.4.2软件实现和传统人工计算的比较
对齿轮进行设计时,传统的人工计算具有很大的局限性,下面就列举两个比较突出的例子进行比较说明。
1、在计算几何参数时,已知参数invα且invα=tanα-α,要番过来求α的值,此设计中我使用的二分法查找的思想来求解(代码如下),其中取值的精度精确到了10-8。如果如此庞大的计算量进行人工计算,工作量可想而知,而且有存在很大的误差甚至是错误的可能,但借用了此计算机辅助软件,立刻就可以得到满意的答案。
private double inv(double x)
{
double f = 0, r = math.pi / 2, b, fun; //设置变量f,r,b,fun
b = math.pi / 4; //因为0<α<(π/2),所以取第一个二分时b=π/4
fun = math.tan(b) - b; //求出当b=π/4时fun的值
while (math.abs(fun - x) > 0.00000001) //当误差小于10-8时跳出循环
{
if (fun - x > 0) //若fun大于x,取中间值的左边区间进行循环
{
r = b;
b = (f + r) / 2; //取新区间的中值
fun = math.tan(b) - b;
}
else if (fun - x < 0) //若fun小于x,取中间值的右边区
{ 间进行循环
f = b;
b = (f + r) / 2; //取新区间的中值
fun = math.tan(b) - b;
}
else //若fun与x的值相等,跳出循环
break;
}
return(b);
}
求解过程流程图如下图图6。

图6 用二分法求解过程流程图
2、求内啮合高
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页