b94611001 歐陽太閒
5/31日曾全程來上課。
齒輪是機構中最重要的一種元件,可以在很少損失的情況(worm除外)下傳遞動力至任意方向,本次作業要分析的是一組標準全齒輪齒輪之徑節=8,齒數為30T與48T,工作壓力角20度(也分析14.5及25度)
1.接觸線長度,與接觸比
接觸比(Contact ratio)即同時有幾對齒相互嚙合。數值越大力量分散較平均,接觸比最好大於1
以免出現未嚙合等現象
接觸比 mc = 接觸路徑長度/基周節
或者課本的
因此我們可以利用講義中程式:
[c_ratio, c_length,ad,pc,pb,r2,r3,ag]=contact_ratio(徑節,齒數1,齒數2,[壓力角]')
[c_ratio, c_length,ad,pc,pb,r2,r3,ag]=contact_ratio(8,30,48,14.5)
c_ratio = 接觸比
2.0308
c_length = 接觸長度
0.7721
ad = 齒冠
0.1250
pc = 周節
0.3927
pb = 基周節
0.3802
r2 = 齒輪2節圓直徑
3.7500
r3 = 齒輪3節圓直徑
6
ag =
12.6898 11.6797 24.3695 齒輪2的接近角/遠退角/作用角
7.9311 7.2998 15.2309 齒輪3的接近角/遠退角/作用角
[c_ratio, c_length,ad,pc,pb,r2,r3,ag]=contact_ratio(8,30,48,20)
c_ratio = 接觸比
1.7005
c_length = 接觸長度
0.6275
ad = 齒冠
0.1250
pc = 周節
0.3927
pb = 基周節
0.3690
r2 = 齒輪2節圓直徑
3.7500
r3 = 齒輪3節圓直徑
6
ag =
10.4850 9.9211 20.4061 齒輪2的接近角/遠退角/作用角
6.5532 6.2007 12.7538 齒輪3的接近角/遠退角/作用角
[c_ratio, c_length,ad,pc,pb,r2,r3,ag]=contact_ratio(8,30,48,25)
c_ratio = 接觸比
1.5028
c_length = 接觸長度
0.5349
ad = 齒冠
0.1250
pc = 周節
0.3927
pb = 基周節
0.3559
r2 = 齒輪2節圓直徑
3.7500
r3 = 齒輪3節圓直徑
6
ag =
9.1921 8.8419 18.0340 齒輪2的接近角/遠退角/作用角
5.7450 5.5262 11.2712 齒輪3的接近角/遠退角/作用角
2.節圓、基圓直徑
根據圖片
節圓(Pitch Circle)節面之正剖面,為代表齒輪的虛擬圓
R=齒數/(徑節)
基圓(Base Circle)用以產生漸開線的虛擬圓
Rb=R*cos(壓力角)
a.首先,節圓的計算
徑節=8,齒數=30,48
R2=30/8=3.7500
R3=48/8=6
b.基圓之計算(稍小於節圓)
1.壓力角=14.5
因此:
Rb2=3.7500*cos(14.5*pi/180)=3.6306
Rb3=6*cos(14.5*pi/180)=5.8089
draw_gear(8,30,14.5,360,0,0)
2.壓力角=20
Rb2=3.7500*cos(20*pi/180)=3.5238
Rb3=6*cos(20*pi/180)=5.6382
3.壓力角=25
Rb2=3.7500*cos(25*pi/180)=3.3987
Rb3=6*cos(25*pi/180)=5.4378
或者根據Gears Encyclopedia
(Pd/cos(helix angle))*cos(atan(tan(正壓力角)/cos(helix angle)))
Gears Encyclopedia
3.齒輪的干涉
根據老師的講義,兩齒輪關係如圖
利用MP>AP,可獲得幾何關係:
因此:
故根據講義/課本中所提供的公式
(N22+2N2 x N3)sin2>= 4 + 4N3
302 + 2(30)(48)sin2(20)> 4 + 4(48)
1236.89>196
不會發生干涉
若利用講義中的[x]=isinterf(phi,N1,N2)
>>[x]=isinterf(20,30,48)
x =
0
function [x]=isinterf(phi,N1,N2)
%% Test if the gear set exists an interference% phi:pressure angle, in degrees
% N1,N2:teeth of both gears
% x=0:no interference; x=1 interence existsx=0;
sinx=sin(phi*pi/180); %先計算好角度
if N2<N1,nn=N1; %判定大小決定是大齒輪或小齒輪
N1=N2;N2=nn;
end
if N1*(N1+2*N2)*sinx*sinx<4*(1+N2), %帶入公式
x=1;
end
4.draw_gear.m與動畫
繪製一齒輪需要極繁雜的程式,在ProE或者AutoCAD中都有plug-ins代勞,但我們這次為了了解程式的應用,故嘗試利用老師的draw_gear.m來繪製
另外,發現一個相當有趣的現象,即在漸開線齒輪繪製時,由於程式的360度重疊的關係(可能由於無法整除),故在轉動時會缺齒,重疊越多缺齒越多,而del(第二齒輪初始偏移量)似乎與徑節有關
function [coords]=draw_gear(Dp,N,phi,range,x0,y0)
Dp=節矩
N=齒數
phi=壓力角
range=繪出之部份
x0,y0=齒輪中心座標
此為一利用漸開線繪製齒輪的程式,因此我們可以暫時註解其plot,輸出其運算值,並寫成另一程式來進行本題目齒數30與齒數48T壓力角20之雙正齒輪運動動畫
因此利用
draw_gear.m
bushing.m
rotate2D.m
我們可以寫出程式如下:
程式結構
1.清除畫面及程式資訊
2.參數引入draw_gear.m
3.建立基本物件
a.利用bushing畫基座
b.建立齒輪
c.利用bushing畫節圓和基圓
4.利用while進行動畫繪製
a.轉角
b.畫出新位置
function move_gear(Dpitch,nn1,nn2,phi,ww)
%12.4 歐陽太閒 b94611001 本程式改寫自老師的 move2_rack.m
%本程式改寫自老師的move2_rack
%Dpitch=節矩,nn1=R2齒數,nn2=R3齒數,phi=壓力角,ww=nn1角速度
clf; %清除畫面
d2r=pi/180;%角徑轉換
unit1=0.01;%動畫單位
phir=phi*d2r;
pc=pi/Dpitch; %計算pc
title('作業12 作者:歐陽太閒 b94611001'); %資訊
xlabel('x-axis cm');
ylabel('y-axis cm');
hold on;
[coord,rp,rb]=draw_gear(Dpitch,nn1,phi,360,0,0); %將參數引入draw_gear.m,畫第一齒輪
[coord2,rp2,rb2]=draw_gear(Dpitch,nn2,phi,360,0,0); %將參數引入draw_gear.m,畫第二齒輪
xc1=coord(:,1);yc1=coord(:,2); %將計算結果引出
xc2=coord2(:,1);yc2=coord2(:,2);%將計算結果引出
del=3
coord2=rotate2D([coord2(:,1),coord2(:,2)],+del,0,0);
coord=bushing(rp/6,0,0); %利用bushing畫基座
coord2=bushing(rp2/6,rp+rp2,0);
xb1=coord(:,1);yb1=coord(:,2);
xb2=coord2(:,1);yb2=coord2(:,2);
plot(xb1,yb1,'r-'); %畫出大小齒輪基座
plot(xb2,yb2,'r-');
pini=line('xdata',[],'ydata',[],'erasemode','xor','linewidth',1,'color','r'); %建立handler
gear=line('xdata',[],'ydata',[],'erasemode','xor','linewidth',1,'color','b');
[coord3]=bushing(-rp2,rp+rp2,0.2); %利用bushing畫節圓和基圓
plot(coord3(:,1),coord3(:,2),'b:');
[coord4]=bushing(-rb2,rp+rp2,0.2);
plot(coord4(:,1),coord4(:,2),'k:');
[coord5]=bushing(-rp,0,0); %利用bushing畫節圓和基圓
plot(coord5(:,1),coord5(:,2),'b:');
[coord6]=bushing(-rb,0,0);
plot(coord6(:,1),coord6(:,2),'k:');
axis equal;
ang=0;
angp=ww*unit1;
while 1 %利用while進行動畫繪製
rot1=rotate2D([xc1,yc1],ang,0,0); %進行轉角,產生新座標
rot2=rotate2D([xc2,yc2],-ang*(nn1/nn2),rp+rp2,0);
set(pini,'xdata',rot1(:,1),'ydata',rot1(:,2)); %分別畫出大小齒輪
set(gear,'xdata',rot2(:,1),'ydata',rot2(:,2));
drawnow; %繪製
pause(1/ww);
ang=ang+angp;
end
%程式結束
因此我們代入
move_gear(8,30,48,20,100)
可得到
圖片
影片
影片
move_gear(8,30,48,14.5,100)
可得到
圖片
影片
影片
move_gear(8,30,48,25,100)
可得到
圖片
影片
影片
2 則留言:
b94607012 生機(二)楊善喬
每次看完
都覺得太閒的思路很清晰
而且都考慮到很多很多的情況
實在值得令人請益!
感謝您的指教,謝謝!
張貼留言