5/17/07

第十一章 齒輪(1)-漸開線

11.1 何謂漸開線(Involute)


漸開線常作為齒輪之齒面輪廊,使其接觸點能切於一點,其法線形成一壓力角。漸開線實際上是一捲繞在圓上之線往外拉開時,在同一點所走過的軌跡,亦即以一基圓為迴轉的平台,往外伸張的曲線。其表示式如下:
x = rb(cos(theta) + theta*sin(theta))
y = rb(sin(theta) − theta*cos(t))


其中,rb為基圓之半徑,theta為張開之角度,其單位為弧度。

當角度theta由零開始變化,亦即沿水平軸方向反時鐘方向展開,起始點始於基圓之表面,然後以螺線形往外延伸。依其延伸之角度,此曲線一直往外擴散。相關程式如involute_curve.m,其呼叫格式如下:
function h=involute_curve(rb,theta,mode,Nb)

其輸入參數如下:
rb=基圓半徑
theta = 展開角度,degrees
 Nb=區間之點數(預設值為100點)
 mode=控制參數,=1為單方向; =2 為雙方向

程式內容:
function h=involute_curve(rb,theta,mode,Nb)
% Create an involute curve
% Inputs:
%  rb=base radius
%  theta = max angle for limit, degrees
%  Nb=number of points
%  mode=1 for one direction, =2 for bi-direction
%  Example: involute_curve(5,720)
% Author:Din-sue Fon. BIME, NTU, March 10,2001
% Check the number of input arguments
if nargin<4,Nb=100;end
if nargin<3,mode=1;end
if nargin<2,theta=90;end
if nargin<1,rb=10;end
theta=theta*pi/180;
cth=linspace(0,2*pi,50);
if mode==1,
th=linspace(0,theta,Nb);
else
th=linspace(-theta,theta,Nb);
end
x0=rb*cos(th);y0=rb*sin(th);
x=rb*(cos(th)+th.*sin(th));
y=rb*(sin(th)-th.*cos(th));
for i=1:length(th)
line([x0(i) x(i)],[y0(i) y(i)],'color','b');
end
h=line(x,y,'color','k','linewidth',2);
hbase=line(rb*cos(cth),rb*sin(cth),'color','r','linewidth',1.5);
axis equal;axis off;


執行例:
>> involute_curve(5,360)

ans =  259.0045




>> involute_curve(5,360,2)

ans =  1.1680e+003