椭圆齿轮是一种典型的非圆齿轮,广泛应用于轻工自动机械、机床、仪器制造业等领域[1-3]。与其他非线性机构如凸轮结构和连杆结构相比,非圆齿轮在高速重载下传动的平稳性和准确性更好。学者们对椭圆类齿轮进行了长期的研究,并在齿轮设计及参数化建模方面取得了一定的成果[4]。这些研究成果解决了一些非圆齿轮的问题,但是现有的非圆齿轮设计系统在具体工程实践中需要设计人员根据不同的要求进行推导计算、检查验证,设计周期长,生产效率低[5-12]。本文在前人研究的基础上对非圆齿轮设计及计算验证程序化,并对其优化以缩短设计周期,借助MATLAB的计算完成对椭圆齿轮的初步计算及仿真,随后基于SolidWorks的多个API接口展开初步的二次开发研究,生成最终的动态链接库(DLL)文件供用户直接参数化建模。
1 椭圆齿轮参数化设计数学条件 1.1 椭圆齿轮节曲线设计椭圆的节曲线是椭圆齿轮设计的首要问题,实际应用中,该问题可分为按照要求的传动比计算节曲线和按照要求再现的函数求解节曲线。
为使非圆齿轮可以连续回转,应保证节曲线是封闭的主动轮1的节曲线封闭,须满足的条件为:i12=f(φ1)在转角范围0~2π内是一个周期性变化的函数,而变化的周期数是整数n1,并且r1(0)=r1(2π),即主动轮节曲线封闭的条件为
$ {r_1}\left( 0 \right) = {r_1}\left( {2{\rm{ \mathsf{ π} }}} \right) = {r_1}\left( {2n{\rm{ \mathsf{ π} }}} \right) $ | (1) |
同理,若从动轮2的节曲线满足封闭状态则必须满足条件:i12=f(φ1)在0~2π的范围内是周期性变化的函数,变化的周期为整数n2,并且r2(0)=r2(2π)。根据主、从动轮转角之间的关系,可以得出从动轮节曲线封闭的条件为
$ \frac{{2{\rm{ \mathsf{ π} }}}}{{{n_2}}} = \int_0^{\frac{{2{\rm{ \mathsf{ π} }}}}{{{n_1}}}} {\frac{1}{{f\left( {{\varphi _1}} \right)}}{\rm{d}}{\varphi _1}} = \int_0^{\frac{{2{\rm{ \mathsf{ π} }}}}{{{n_1}}}} {\frac{{{r_1}\left( {{\varphi _1}} \right)}}{{a - {r_1}\left( {{\varphi _1}} \right)}}{\rm{d}}{\varphi _1}} $ | (2) |
假设非圆齿轮的主动轮的节曲线在点P的切线为τ,且把点P处的径向r1的正向与τ的正方向的夹角用μ1表示,则由节曲线方程r1=r1(φ1)可求得
$ \tan {\mu _1} = \frac{{{r_1}}}{{{\rm{d}}{r_1}/{\rm{d}}{\varphi _1}}} = \frac{{1 - k}}{{k\sin \varphi }} $ | (3) |
P点为接触点,α0是工具齿条的齿形角(一般取20°),α12是P点的压力角。如果齿轮按顺时针方向回转,工作面是齿轮的右侧面,如图 1(a)所示,可以求出齿廓右侧的压力角α12为
$ {\alpha _{12}} = {\mu _1} + {\alpha _0} - \frac{{\rm{ \mathsf{ π} }}}{2} $ | (4) |
其中μ1是节曲线上该点切线的正向与该点的极径的夹角。若齿轮的运动方向相反按逆时针方向回转,如图 1(b)所示,则工作面就换成了轮齿的左侧面,可求出左侧压力角为
$ {\alpha _{12}} = - {\mu _1} + {\alpha _0} - \frac{{\rm{ \mathsf{ π} }}}{2} $ | (5) |
非圆齿轮节曲线上各点的μ1都是有差异的,随着位置的不同而发生变化。实验证明,随着压力角的不断增大,会不断降低齿轮传递动力的效率,当压力角增加到上限值附近时,就有可能产生自锁现象,导致齿轮无法转动。为了避免出现这种现象,一般要求μ1的取值范围在45°~135°之间,且相应的压力角最大值不能超过65°。
2 基于MATLAB的椭圆轮齿计算 2.1 计算节曲线椭圆齿轮主动轮的节曲线如图 2所示,焦点O1为齿轮的回转中心。
椭圆节曲线方程式为
$ {r_1} = \frac{{A\left( {1 - k_1^2} \right)}}{{1 + {k_1}\cos {\varphi _1}}} $ | (6) |
椭圆周长公式为
$ L = 4A\int_0^{\frac{{\rm{ \mathsf{ π} }}}{2}} {\sqrt {1 - k_1^2{{\sin }^2}\varphi } {\rm{d}}\varphi } $ | (7) |
式中A表示椭圆长半轴半径,k1表示椭圆的偏心率,φ表示极角, L表示椭圆周长。
根据设计参数m、z,偏心率k1以及公式(7)、(8)求出A,再带入公式(6)求得该椭圆齿轮的节曲线方程。
$ L = pz = {\rm{ \mathsf{ π} }}mz $ | (8) |
式中,L为椭圆周长,p为齿距,z为齿数,m为模数。
利用MATLAB编程,画出主、从动轮节曲线的示意图及传动比函数的变化曲线图,如图 3、4所示。
齿顶曲线是由节曲线往外法向移动ha(齿顶高)个单位长度生成,而齿根曲线是将节曲线向内法向移动hf(齿根高)个单位长度生成。
2.2 轮齿位置的确定要确定齿轮轮齿在节曲线上的位置,就要对所求出的椭圆齿轮的节曲线进行等分。如图 5所示,首先确定起始点的位置,为了方便,把长轴端轮齿与节曲线的交点作为画图的起始位置点。假定相交在A点,因为轮齿在节曲线上呈均匀分布状态,所以弧长为
根据椭圆的弧长计算公式,利用MATLAB编程求出左右齿廓与节曲线上的交点,程序设计过程如图 6所示。同理,右齿廓与节曲线交点的求解只需把初始参数p/4改为3p/4再进行循环求解即可。
对于节曲线封闭的非圆齿轮,轮齿在节曲线上的位置要做到均匀分布需满足式(8)。在非圆齿轮设计时,为了使节曲线的弧长被整数个齿形等分,可以釆用调整两个齿轮的中心距、调整模数和齿数或变位凑等分齿等方法。
图 7为非圆齿轮的齿顶和齿根曲线分析图。假设齿轮的节曲线方程为r=r(φ),从节曲线上的a点开始,沿着节曲线的法线方向向外侧延伸ha个单位长度,则求得齿顶曲线上一点A,沿着节曲线的法线方向向外侧延伸hf个单位长度可求得齿根曲线上的一点B,从而进一步推算齿顶曲线和齿根曲线方程。图 7中,ha为齿顶高,hf为齿根高。
如图 8所示,c为右齿廓与齿顶曲线的交点,b为右齿廓与节曲线的交点,a为右齿廓与齿根曲线的交点,d、e、f分别为左齿廓与齿顶曲线、节曲线、齿根曲线的交点。假定节曲线方程为r=f(θ),r为极径,θ为极角,用解析法求交点。
右齿廓与齿顶曲线交点c直角坐标方程见式(9),各角度如图 9所示。
$ \left\{ \begin{array}{l} {x_R} = r\cos \theta - S\cos {\alpha _n}\cos \left( {\theta + \tau + {\alpha _n}} \right)\\ {y_R} = r\sin \theta - S\cos {\alpha _n}\sin \left( {\theta + \tau + {\alpha _n}} \right) \end{array} \right. $ | (9) |
其中
$ S = \int_0^\theta {\sqrt {{r^2} + {{\left( {\frac{{{\rm{d}}r}}{{{\rm{d}}\theta }}} \right)}^2}} {\rm{d}}\theta } $ | (10) |
齿廓曲线极坐标形式
$ \left\{ \begin{array}{l} {r_R} = \sqrt {x_R^2 + y_R^2} \\ {\theta _R} = \arctan \frac{{{y_R}}}{{{x_R}}} \end{array} \right. $ | (11) |
齿顶曲线方程
$ \left\{ \begin{array}{l} {R_{\rm{a}}} = \sqrt {{r^2} + h_{\rm{a}}^2 + 2r{h_{\rm{a}}}\sin \tau } \\ {\theta _{\rm{a}}} = \theta - \arcsin \left( {\frac{{{h_{\rm{a}}}\cos \tau }}{{{R_{\rm{a}}}}}} \right)\\ \tau = \arctan \left( {r{\rm{d}}\theta /{\rm{d}}r} \right) \end{array} \right. $ | (12) |
式中,xR和yR为直角坐标系下坐标,rR和θR为极坐标系下坐标,r为极径,θ为极角,τ为过c点法线与节圆交点的切线与法线间夹角,S为弧长, ha为齿顶高。
b点的极坐标求出后,先从齿廓曲线与节曲线的交点b(θb,rb)开始计算,把式(9)中的r和θ用b点的坐标替换,然后将求出的xR和yR的值带入式(11),可以求解出rR和θR。同时把式(12)中的r和θ用b点的坐标替换,可以求解出Ra和θa,然后比较Ra和rR是否相等或者两者的差距是否在可接受的范围内,若不满足就增加极角θ的取值,循环重复上面的运算,直到两者相等或者误差小于所需要的精度。求出c点后用同样的方法可以得到点a、d、f的坐标值。
求解出点a、c、d、f后,依据齿轮在节曲线上均匀分布、极角与点坐标关系,依次求出p/4+p,p/4+2p…位置的齿廓点,用MATLAB解出所有齿轮齿廓曲线的边界。在边界范围内取点,利用MATLAB绘图命令将各点按顺序连接起来,得到的图形如图 10所示。
本文将初始参数设定为m=3,z1=17,k1=0.6,之后将这3个初始值参数化,设计流程如图 11所示,代码略。
SolidWorks的宏录制功能为用户提供了一种开发途径,本文在完成椭圆齿轮的设计之后,基于宏录制功能实现椭圆齿轮的自动参数化建模。
3.2.1 宏录制修改利用宏录制功能完成新建零件的操作,基于MATLAB在SolidWorks VBA编写绘制椭圆齿轮轮廓线的代码,编程过程中要注意单位转换。完成后,选择好基准面,运行程序可绘制出椭圆齿轮的轮廓线。拉伸完成后保存宏文件,然后对偏心孔生成进行录制,并保存宏文件,对宏文件内部代码修改整理,运行后得到如图 12所示的椭圆齿轮三维模型。
运用VB语言编制应用程序界面,读取界面并录入初始参数,计算出相关参数并输入到齿轮实体生成时形成的宏文件中,编译程序生成可执行程序供SolidWorks程序调用,代码略。
将建模程序的代码对应写入窗体内部,便可以建立本次面向对象参数化设计的软件。
3.2.3 应用程序嵌入SolidWorksSolidWorks API中的每一个对象都有自己的属性、方法和事件,它们已经包括了SolidWorks所有的数据模型,用户可以根据自己的需求对对象属性进行设置以及对对象方法进行调用,使得开发的系统满足自己所需的特定功能。直接在SolidWorks工具栏中选择运行程序,根据界面里提示输入参数,实现自动建模。新建的DLL文件不能保存为中文名。
3.3 自动建模实例单击工具栏中的【运行】,在设计的界面里输入参数,再单击【SolidWorks里三维建模】按钮,就会在SolidWorks里自动创建一个椭圆齿轮,如图 13所示。输入不同的设计参数就会生成不同的椭圆齿轮。
利用MATLAB可求解椭圆齿轮的节曲线、齿廓曲线和齿形图,避免了手工计算费时复杂的缺点。利用SolidWorks VBA功能设计了一个人机交互界面,通过输入齿轮参数实现了椭圆齿轮的自动建模。
本文根据非圆齿轮的基本理论,实现了椭圆齿轮三维造型的参数化设计,为其他机械零部件的三维参数化设计提供了一种可行性参考。
[1] |
梅丽文, 肖海兵, 赵家黎, 等. 基于Pro/E齿轮参数化设计及数控加工的研究[J]. 科学技术与工程, 2009, 9(19): 5656-5659. Mei L W, Xiao H B, Zhao J L, et al. Parameters of gear design and NC machining research based on Pro/E[J]. Science Technology and Engineering, 2009, 9(19): 5656-5659. (in Chinese) DOI:10.3969/j.issn.1671-1815.2009.19.006 |
[2] |
贾松, 胡青春. 基于CAXA的非圆齿轮的三维造型与设计[J]. 机械传动, 2005, 29(1): 30-32/74. Jia S, Hu Q C. Three-dimensional modeling and design of noncircular gears based on CAXA[J]. Journal of Mechnaical Transmission, 2005, 29(1): 30-32/74. (in Chinese) |
[3] |
高学强, 葛敬侠. SolidWorks中的非圆齿轮实体建模方法研究[J]. 工程图学学报, 2009, 30(4): 189-192. Gao X Q, Ge J X. Study on parametric solid modeling of non-circular gear in SolidWorks[J]. Journal of Engineering Graphics, 2009, 30(4): 189-192. (in Chinese) |
[4] |
王淑杰. 非圆齿轮传动的快速优化设计[D]. 合肥: 合肥工业大学, 2005. Wang S J. Rapid optimal design of non-circular gear-drive[D]. Hefei:Hefei University of Technology, 2005. (in Chinese) |
[5] |
卢杰, 米彩盈. 基于SolidWorks的联合参数化设计方法研究[J]. 图学学报, 2013, 34(6): 64-68. Lu J, Mi C Y. A new combined parametric design method based on SolidWorks[J]. Journal of Graphics, 2013, 34(6): 64-68. (in Chinese) |
[6] |
范素香, 齐新华, 侯书林. 基于MATLAB及UG的偏心共轭非圆齿轮的设计[J]. 机械传动, 2011, 35(9): 70-72/76. Fan S X, Qi X H, Hou S L. Design of eccentric conjugated noncircular gear based on MATLAB and UG[J]. Journal of Mechanical Transmission, 2011, 35(9): 70-72/76. (in Chinese) |
[7] |
胡赤兵, 苑明杰, 刘浩, 等. 基于MATLAB的椭圆类齿轮参数化设计[J]. 兰州理工大学学报, 2014, 40(2): 41-45. Hu C B, Yuan M J, Liu H, et al. Parametrization design of elliptic gears based on MATLAB[J]. Journal of Lanzhou University of Technology, 2014, 40(2): 41-45. (in Chinese) |
[8] |
吴俊峰, 吕小波, 李传, 等. 非圆齿轮的三维设计与运动分析[J]. 湖北工业大学学报, 2014, 29(4): 69-72. Wu J F, Lv X B, Li C, et al. Solid modeling and simulation analysis of non-circular gear based on Solidworks and Maple[J]. Journal of Hubei University of Technology, 2014, 29(4): 69-72. (in Chinese) |
[9] |
田芳勇, 姜衍仓, 胡赤兵, 等. 椭圆齿轮参数化设计与运动仿真系统的开发[J]. 兰州理工大学学报, 2011, 37(2): 30-33. Tian F Y, Jiang Y C, Hu C B, et al. Development of system of parametric design and motion simulation of elliptical gears[J]. Journal of Lanzhou University of Technology, 2011, 37(2): 30-33. (in Chinese) |
[10] |
Bair B W. Computer aided design of elliptical gears with circular-arcteeth[J]. Mechanism and Machine Theory, 2004, 39(2): 153-168. DOI:10.1016/S0094-114X(03)00111-3 |
[11] |
Figliolini G, Angeles J. Geometric modeling of elliptical gears generated by shaper cutters[C]//Proceedings of the ASME 2002 Design Engineering Technical Conferences and Computer and Information in Engineering Conference. Montreal, Canada, 2002:661-670.
|
[12] |
张健, 于膑, 税静, 等. 基于MATLAB的非圆齿轮节曲线设计[J]. 机械与电子, 2016, 34(4): 17-20. Zhang J, Yu B, Shui J, et al. Design of the pitch curves of non-circular gears based on MATLAB[J]. Machinery & Electronics, 2016, 34(4): 17-20. (in Chinese) |