|
符号
计算公式
中心距
a
a=(Z1+Z2)m/2cosβ
端面齿形角
αt
tgαtw=tgα/cosβ
分度圆直径
d
d=mZ/cosβ
齿数比
u
u=Z2/Z1
齿顶高
ha
ha=m(ha*+x)
齿高
h
h=m(2ha*+c*)
齿根高
hf
hf=h-ha=m(ha*+c*-x)
齿顶圆直径
da
da=d+2ha
齿根圆直径
df
df=d-2 hf
主要几何参数的计算(mm)
项目名称
符号
计算公式
基圆直径
db
db=dcosαt
基圆螺旋角
βb
sinβb=sinβcosα
法面分度圆齿厚
sn
sn=(0.5π+2xtgα)m
齿厚测量尺寸的计算(mm)
固定弦齿厚
s(_)c
s(_)c =(0.5πcos2α+xsin2α)m或
s(_)c =s(_)c*m(s(_)c*可查表)
固定弦齿高
h(_)c
h(_)c =0.5(da-d-s(_)ctgα)或
h(_)c =0.5(da-d)-h(_)△*m(h(_)△*可查表)
斜齿轮当量齿数
Zn
Zn=Zn/cos3β
分度圆弦齿厚
s(_)
s(_)=Zsin△/cosβ*m ,式中
△=(π/2Z+2xtgα/z)*cos3β
分度圆弦齿高
h(_)a
h(_)a =0.5[da-(cos△-sin2β)
/cos2β*d]
2.3本课题研究目标
计算出渐开线齿轮的模数、齿数、齿形、齿高、变位、基准齿形和参数(GB/T1356-1988)、模数系列(GB/T1357-1987)、传动类型和基本参数、变位系数的选择、渐开线圆柱齿轮的齿厚测量计算、精度选择和强度计算。
本课题研究的几何尺寸计算的适用范围包括:
1、标准圆柱齿轮(直,螺旋)
2、外啮合(高度变位)圆柱齿轮(直,螺旋)
3、内啮合标准齿轮(直齿)
4、内啮合(高度变位)圆柱齿轮(直,螺旋)
3. 软件的具体实现 3.1系统实现的环境
本设计软件使用C#语言开发,开发平台为VS2005软件,运行环境是Windows XP
3.2软件的总流程图
图2 程序总流程图 3.3软件实现的主界面
图3 计算外啮合齿轮副时的界面
图4 计算外啮合齿轮副时的界面
图5 精度计算时的运行界面
3.4 实现的部分代码 3.4.1实现的主要功能
1、 外啮合齿轮几何参数和齿厚计算的功能模块
private void button1_Click(object sender, EventArgs e) //外啮合计算
{
if (tBoxα.Text != "20") //判断输入是否为标准输入
str = "请输入标准齿形角α!\n";
else if (Convert.ToInt32(tBoxβ.Text) < 0 || Convert.ToInt32(tBoxβ.Text) > 45)
str += "请选择合理的螺旋角β!\n";
else if (Convert.ToInt32(tBoxha.Text) != 1)
str += "请选择合理的齿顶高系数!\n";
else if (Convert.ToDouble(tBoxc.Text) != 0.25)
str += "径向间隙系数选择不正确,请重新填写!\n";
else if (Convert.ToDouble(tBoxr.Text) != 0.38)
str += "齿根圆角半径系数选择不够准确!\n";
else if (Convert.ToDouble(Convert.ToInt32(Convert.ToDouble(tBoxZ1.Text))) != Convert.ToDouble(tBoxZ1.Text) || Convert.ToDouble(Convert.ToInt32(Convert.ToDouble(tBoxZ2.Text))) != Convert.ToDouble(tBoxZ2.Text))
str += "齿数请输入为整数!\n";
else //分别把输入的值赋给各变量
{
α1 = Convert.ToInt32(tBoxα.Text);
β1 = Convert.ToDouble(tBoxβ.Text);
α2 = Math.PI * α1 / 180;
β2 = Math.PI * β1 / 180;
n = Math.Cos(β2);
u = 1;
m = Convert.ToDouble(tBoxm.Text);
ha = Convert.ToInt32(tBoxha.Text);
hat = ha * n;
c = Convert.ToDouble(tBoxc.Text);
ct = c * n;
r = Convert.ToDouble(tBoxr.Text);
rt = r * n;
if (tBoxpa_s.Enabled) //标准齿轮几何参数计算
{
Z0 = Convert.ToInt32(tBoxZ1.Text);
ha01 = ha * m;
hf0 = 1.25 * m;
h0 = ha01 + hf0;
if (tBoxβ.Text != "0")
{
a0 = Z0 * m / n;
d0 = m * Z0 / n;
}
else
{
a0 = Z0 * m;
d0 = m * Z0;
}
a = a0;
da0 = d0 + 2 * ha01;
df0 = d0 - 2 * hf0;
db0 = d0 + Math.Cos(α2);
pa = Math.PI * m * Math.Cos(α2);
//标准齿轮齿厚计算
sc0 = 0.5 * Math.PI * m * Math.Cos(α2) * Math.Cos(α2);
hc0 = ha01 - Math.PI * m * Math.Sin(2 * α2) / 8;
invαt = Math.Tan(α2) - α2;
if (tBoxβ.Text != "0")
{
s0 = m * Z0 * Math.Sin(Math.PI * n * n * n / (2 * Z0)) / (n * n * n);
ha02 = 0.5 * da0 - (0.5 * m * Z0 / (n * n * n)) * (Math.Cos(Math.PI * n * n * n / (2 * Z0)) - Math.Sin(β2) * Math.Sin(β2));
k0 = (α1 / 180) * Z0 + 1;
W0 = (Math.PI * (k0 - 0.5) + Z0 * invαt) * m * Math.Cos(α2);
}
else
{
s0 = m * Z0 * Math.Sin(Math.PI / (2 * Z0));
ha02 = 0.5 * da0 - 0.5 * m * Z0 * Math.Cos(Math.PI / (2 * Z0));
k0 = (α1 / 180) * Z0 + 1;
W0 = (Math.PI * (k0 - 0.5) + Z0 * invαt) * m * Math.Cos(α2);
}
}
计算外啮合和内啮合各种齿轮,原理基本一样,重点注意的是取值的精确度问题,以及弄清各参数之间的关系,以便于计算,避免数值的混淆。
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)固定弦齿高:
hc2 = 0.5 * (d2 - da2 - sc2 * Math.Tan(α2)) + 0.5 * da2 * (1 - Math.Cos(δa2));
其中,有需要计算参数δa2:
δa2 = Math.PI / (2 * Z2) - invαt - 2 * Math.Tan(α2) * x2 / Z2 + invαa2;
2)分度圆弦齿高:
ha2L = 0.5 * d2 * (Math.Cos(delta) - Math.Sin(β2) * Math.Sin(β2)) / (n * n) - 0.5 * da2 + 0.5 * da2 * (1 - Math.Cos(δa2));
其中,又需要计算参数delta:
delta = (Math.PI / (2 * Z1) + 2 * x1 * Math.Tan(α2) / Z1) * n * n * n;
如此繁杂、工作量大的计算量,进行人工计算同时也是件很苦难、很难实现的事情。
4.结论
正由于在产品的设计过程中齿轮几何参数的选择是影响产品具有良好的啮合和节能低耗效果的重要因素,如果齿轮在设计时参数的选择不够精确,只是采用人工凭经验的估算(而且有存在计算错误的风险),将直接影响所生产产品的质量,有损企业的发展。借助计算机辅助软件,就可以很大程度上减低了这方面的成本和风险。在加工齿轮时,技术人员经常要进行各种齿轮几何及啮合参数的计算。传统方法用手工、计算器及查表计算、速度慢、精度低,即使是价格较贵的可编程计算器也远不能满足高精度复杂计算的要求。而市场上用于齿轮计算的软件都较贵,且不适合部分中小企业的设计需要。为此,设计了此渐开线圆柱齿轮的几何参数计算的计算机辅助软件。
参考文献
①江耕华,胡来瑢,陈启松等.机械传动设计手册(上册)[M].北京:煤炭工业出版社,1982.
②齿轮精度国家标准宣贯工作组.齿轮精度国家标准应用指南[M].北京:兵器工业出版社,1990.
③北京业余机械学院工人班集体.齿轮原理与制造[M].北京:科学出版社,1971.
④马骏.C#网络应用编程基础[M].北京:人民邮电出版社,2008.
, , ⑤罗斌.Visual C#.NET精彩编程实例集锦[M].北京:中国水利水电出版社,2005.
⑥明日科技.C#开发经验技巧宝典[M].北京:人民邮电出版社,2008. |
|