
2007年6月16日 星期六
機動學第十三次作業
1.
開始時,假設要設計一組複式齒輪使其轉速比為125。其考慮的因素及過程如下:
i 決定組合數:複式齒列可用串聯多個組合之方式達到整體轉速比。設計總是由最簡單的結構開始,由於每組之轉速比以維持在10以內為佳,超過此值時則需考慮增加齒輪組數。而轉速比125很明顯可以看出開平方的結果比10大,而剛好125又是5的三次方,所以直接開立方。
ii 設驅動之小齒輪數最小為12齒(N2>=12)*,則依序可以得到對應大齒輪之齒數如下:
N3=5x12=60
N3=5x13=65
N3=5x14=70
N3=5x15=75
與網頁上例子不同的地方在於,網頁上的複式齒輪的齒數並非整數,所以要選最接近整數的,而作業中的齒輪剛好都為整數
故不用再加以討論
可選用60:12
65:13
70:14
75:15等
依此類推,選出60:12;60:12;60:12三組(或改用其他數字)
2.
我覺得讓我覺得做的作好的一次作業就是第五次作業吧!
因為當時為了這個作業把整個假日,兩天的時間都花在
這個作業上,雖然做出來的手並不是非常的漂亮,但是
其在實際功能的說明對於沒有學過機動學的人也是相當
清楚,我想寫出來程式的那一瞬間應該是那幾天最快樂
的事情吧!
開始時,假設要設計一組複式齒輪使其轉速比為125。其考慮的因素及過程如下:
i 決定組合數:複式齒列可用串聯多個組合之方式達到整體轉速比。設計總是由最簡單的結構開始,由於每組之轉速比以維持在10以內為佳,超過此值時則需考慮增加齒輪組數。而轉速比125很明顯可以看出開平方的結果比10大,而剛好125又是5的三次方,所以直接開立方。
ii 設驅動之小齒輪數最小為12齒(N2>=12)*,則依序可以得到對應大齒輪之齒數如下:
N3=5x12=60
N3=5x13=65
N3=5x14=70
N3=5x15=75
與網頁上例子不同的地方在於,網頁上的複式齒輪的齒數並非整數,所以要選最接近整數的,而作業中的齒輪剛好都為整數
故不用再加以討論
可選用60:12
65:13
70:14
75:15等
依此類推,選出60:12;60:12;60:12三組(或改用其他數字)
2.
我覺得讓我覺得做的作好的一次作業就是第五次作業吧!
因為當時為了這個作業把整個假日,兩天的時間都花在
這個作業上,雖然做出來的手並不是非常的漂亮,但是
其在實際功能的說明對於沒有學過機動學的人也是相當
清楚,我想寫出來程式的那一瞬間應該是那幾天最快樂
的事情吧!
2007年6月8日 星期五
機動學第十二次作業
B94611029 林軍耀
1.
5/31日曾全程來上課。
2.1~2一組標準全齒輪齒輪之徑節為8(亦可使用自設值),
齒數分別為30T與48T,其工作壓力角為20度(可為
14.5或25度,自選)。
設其徑節為8,
齒數為30T和48T
工作壓力角20度
使用程式function [c_ratio,c_length,ad,pc,pb,d2,d3,ag]=contact_ratio(pd,n2,n3, phi)
其中pd=8
n2=30
n3=48
phi=20
可得
接觸比c_ratio=1.7005
接觸長度c_length =0.6275
齒冠ad =0.1250
周節pc =0.3927
基周節pb = 0.3690
齒輪一節圓直徑d2 = 3.7500
齒輪二節圓直徑d3 = 6
齒輪一之接近角、遠退角及作用角ag = 10.4850 9.9211 20.4061
齒輪二之接近角、遠退角及作用角 6.5532 6.2007 12.7538
其中
齒輪一的節徑為30/8=3.75
齒輪二的節徑為48/8=6
齒輪一的基圓直徑為3.75*cos(20)=3.523
齒輪二的基圓直徑為 6*cos(20)=5.638
單位皆為吋
2.3此組齒輪是否會產生干涉現象?試列式證明之。
(N2²+2N2 x N3)sin²>= 4 + 4N3
滿足此式就不會產生干涉
利用講義中公式可以知道
(20^2+2*20*48)(sin(20))^2 >= 4*(1+48)
271.1 > 196
故可知,不會產生干涉現象
2.4
使用draw_gear和move2_gear
利用move2_gear(8,30,48,20,5)
產生動畫
1.
5/31日曾全程來上課。
2.1~2一組標準全齒輪齒輪之徑節為8(亦可使用自設值),
齒數分別為30T與48T,其工作壓力角為20度(可為
14.5或25度,自選)。
設其徑節為8,
齒數為30T和48T
工作壓力角20度
使用程式function [c_ratio,c_length,ad,pc,pb,d2,d3,ag]=contact_ratio(pd,n2,n3, phi)
其中pd=8
n2=30
n3=48
phi=20
可得
接觸比c_ratio=1.7005
接觸長度c_length =0.6275
齒冠ad =0.1250
周節pc =0.3927
基周節pb = 0.3690
齒輪一節圓直徑d2 = 3.7500
齒輪二節圓直徑d3 = 6
齒輪一之接近角、遠退角及作用角ag = 10.4850 9.9211 20.4061
齒輪二之接近角、遠退角及作用角 6.5532 6.2007 12.7538
其中
齒輪一的節徑為30/8=3.75
齒輪二的節徑為48/8=6
齒輪一的基圓直徑為3.75*cos(20)=3.523
齒輪二的基圓直徑為 6*cos(20)=5.638
單位皆為吋
2.3此組齒輪是否會產生干涉現象?試列式證明之。
(N2²+2N2 x N3)sin²>= 4 + 4N3
滿足此式就不會產生干涉
利用講義中公式可以知道
(20^2+2*20*48)(sin(20))^2 >= 4*(1+48)
271.1 > 196
故可知,不會產生干涉現象
2.4
使用draw_gear和move2_gear
利用move2_gear(8,30,48,20,5)
產生動畫
2007年5月30日 星期三
機動學第十一次作業
b94611029林軍耀
1.本人本週(5/24)有來上課。
2.
使用程式
function plot_dwell(ctheta,s,pattern,range)
%ctheta = cam angle (deg)--can be a matrix
%pattern = denote the type of motion used(a 3 element-row matrix)
% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal
% 5:polynomial motion
% example [4 3]%range =the degrees the specific motion starts
% Output: y is for displacement, yy is the derivative of the displacement with
% respect to theta, and yyy the second derivative with respect
% to theta.
% Example plot_dwell(0:10:360,2,[4 3],[90 180 240]);figure(1);
clf;
[y,yy,yyy]=dwell(ctheta,range,pattern);
h1=plot(ctheta,y*s,'b-',ctheta,yy*s,'k-',ctheta,yyy*s,'r-');
legend('Displacement','Velocity','Acceleration',3);
xlabel('Elapsed Angle, degrees');
grid;
因為等加速度的位移軌跡
就是拋物線
所以在pattern中輸入2
返程等速
plot_dwell(0:10:360,5,[2 1],[100 200 260]);

返程等加速度
plot_dwell(0:10:360,5,[2 2],[100 200 260]);

返程簡諧
plot_dwell(0:10:360,5,[2 3],[100 200 260]);

返程擺線
plot_dwell(0:10:360,5,[2 4],[100 200 260]);

返程多項式
plot_dwell(0:10:360,5,[2 5],[100 200 260]);

求出各種返程型態之圖形
其中
1:等速運動uniform 2:抛物線parabolic 3:簡諧simple harmonic
4:擺線cycloidal 5:多項式polynomial motion
使用function [y,yy,yyy]=dwell(ctheta,range,pattern)
3.
利用[x y]=pincam([0:10:360],15,s,0,10,[100 200 260],[2 1],-1)
以及[s]=drawcam(15,y,1)
作出圖形
與第四小題的動畫一同呈現
4.
利用上面的程式
[s]=drawcam(15,y,1)
再用
for i=1:1:360
x2=s(:,1);
y2=s(:,2);
x3=x2*cosd(i)-y2*sind(i);
y3=x2*sind(i)+y2*cosd(i);
axis([-30 30 -30 30]);
plot(x3,y3);
pause(0.01);
axis([-30 30 -30 30]);
axis equal;
grid on;
end;
作出動畫
附件1
function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)
%Find the pin type cam with an offsect e%Inputs:
% cth:angle of cam, degrees% r0:radius of base circle
% e:offset% s:stroke
% L:length of pin
% cw:rotation direction of cam(-counterclockwise,+clockwise
%pattern = denote the type of motion used(a 3 element-row matrix)
% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal
% 5:polynomial motion% example [4 3]
%range =the degrees the specific motion starts, eg.[90 180 240]
% Example: [x y]=pincam([10 60],5,2,1,10,[90 180 240],[4 3],-1)
figure(1);
clf;
th=cth*pi/180;
s0=sqrt(r0*r0-e*e);
for i=1:length(cth)
t=th(i)*cw;
A=[cos(t) -sin(t);sin(t) cos(t)];
[ym,yy,yyy]=dwell(cth(i),range,pattern);
x0=s0+ym*s;
Sx=[0 x0 x0+L;e e e];
X=A\Sx;
x(i)=X(1,2)
y(i)=X(2,2)
line(X(1,1:2),X(2,1:2));
line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')
end
hold on;
plot([0 x],[0 y],'ro',x,y,'k-')
附件2
function [rp,rb]=drawcam(r0,y,direct)
% To draw a cam profile with base radius of r0 and rise in y
% The program may work with P8_11% Input: direct: +1 for clockwise; -1 for counterclockwise
%
% Example: [s,T]=drawcam(35,y)
d2r=pi/180;nn=length(y);
LM=max(y+r0);figure(2);
line([-LM LM]',[0 0]');
line([0 0]',[-LM LM]');
if direct==1,
theta=linspace(0,360,nn)'*d2r;
else
theta=linspace(360,0,nn)'*d2r;
end
theta=theta+pi/2;
rb=[r0*cos(theta) r0*sin(theta)];
rp=[(r0+y').*cos(theta) (r0+y').*sin(theta)];
line(rb(:,1),rb(:,2),'color','r');
line(rp(:,1),rp(:,2));
axis equal;
grid on;
1.本人本週(5/24)有來上課。
2.
使用程式
function plot_dwell(ctheta,s,pattern,range)
%ctheta = cam angle (deg)--can be a matrix
%pattern = denote the type of motion used(a 3 element-row matrix)
% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal
% 5:polynomial motion
% example [4 3]%range =the degrees the specific motion starts
% Output: y is for displacement, yy is the derivative of the displacement with
% respect to theta, and yyy the second derivative with respect
% to theta.
% Example plot_dwell(0:10:360,2,[4 3],[90 180 240]);figure(1);
clf;
[y,yy,yyy]=dwell(ctheta,range,pattern);
h1=plot(ctheta,y*s,'b-',ctheta,yy*s,'k-',ctheta,yyy*s,'r-');
legend('Displacement','Velocity','Acceleration',3);
xlabel('Elapsed Angle, degrees');
grid;
因為等加速度的位移軌跡
就是拋物線
所以在pattern中輸入2
返程等速
plot_dwell(0:10:360,5,[2 1],[100 200 260]);

返程等加速度
plot_dwell(0:10:360,5,[2 2],[100 200 260]);

返程簡諧
plot_dwell(0:10:360,5,[2 3],[100 200 260]);

返程擺線
plot_dwell(0:10:360,5,[2 4],[100 200 260]);

返程多項式
plot_dwell(0:10:360,5,[2 5],[100 200 260]);

求出各種返程型態之圖形
其中
1:等速運動uniform 2:抛物線parabolic 3:簡諧simple harmonic
4:擺線cycloidal 5:多項式polynomial motion
使用function [y,yy,yyy]=dwell(ctheta,range,pattern)
function [y,yy,yyy]=dwell(ctheta,range,pattern)
%
% This function determines the follower displacement and derivatives
% for a full rotation cam. The routine is set up for the displacement
% schedule in Examples 6.7 and 6.8% The input values are:
%ctheta = individual cam angles (deg)--can be a matrix to be processed
%pattern = denote the types of motion used(a 2 element-row matrix). types
% are:
% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal
% 5:polynomial motion% e.g. [4 3]:cycloidal motion for rise and harmonic motion for
% return%range =the degrees the specific motion starts(array of 3 elements), e.g.
% [90 180 240] starts to rise at 90 deg. and ends at 180 deg.
% starts to return at 240 deg. and ends at 360 deg.
% Output: y is for displacement, yy is the derivative of the displacement with
% respect to theta, and yyy the second derivative with respect to theta.
% Example dwell(60,[90 180 240],[4 3]);
% Author:DSFon, BIME, NTU Revise Date:May 18, 2007
d2r=pi/180;
theta=ctheta*d2r;range=range*d2r;
dim=length(ctheta);y=zeros(size(ctheta));
yy=y;yyy=y;
for i=1:dim
if theta(i)>=range(3) %for the last motion(downward)
mode=pattern(2);
betax=2*pi-range(3);
switch mode,
case 1, [y(i),yy(i),yyy(i)]=uniform(theta(i), range(3),betax,-1);
case 2, [y(i),yy(i),yyy(i)]=parabolicm(theta(i), range(3),betax,-1);
case 3, [y(i),yy(i),yyy(i)]=harmonicm(theta(i), range(3),betax,-1);
case 4, [y(i),yy(i),yyy(i)]=cycloidm(theta(i), range(3),betax,-1);
case 5, [y(i),yy(i),yyy(i)]=polynorm(theta(i), range(3),betax,-1);
end;
elseif theta(i)>=range(2) % dewell on the top
y(i)=1;elseif theta(i)>=range(1) % for the 1st motion(upward)
mode=pattern(1);betax=range(2)-range(1);
switch mode,
case 1, [y(i), yy(i), yyy(i)]=uniform(theta(i), range(1),betax,+1);
case 2, [y(i), yy(i), yyy(i)]=parabolicm(theta(i), range(1),betax,+1);
case 3, [y(i), yy(i), yyy(i)]=harmonicm(theta(i), range(1),betax,+1);
case 4, [y(i), yy(i), yyy(i)]=cycloidm(theta(i), range(1),betax,+1);
case 5, [y(i), yy(i), yyy(i)]=polynorm(theta(i), range(1),betax,+1);end
end
end
%*********************************************
function [t1, t2, t3]=uniform(th, thinit,beta,direct)
% code = 1 for uniform motion
%th=cam angle, radians%beta=motion range, radians
%thinit=starting cam angle, radians%beta=motion range, radians
%direct=motion type; +1 for upward, -1 for downward
theta=th-thinit;t1=theta/beta;
if direct==-1,t1=1-t1;end;
t2=direct*1/beta;t3=0;
%*********************************************
function [t1, t2, t3]=parabolicm(th,thinit,beta,direct)
% code = 2 for parabolic motion%th=cam angle, radians
%beta=motion range, radians%thinit=starting cam angle, radians
%beta=motion range, radians%direct=motion type; +1 for upward, -1 for downward
theta=th-thinit;thmed=thinit+beta/2;thx=theta/beta;
if direct==1,
if th<thmed
t1=2*thx^2;
t3=4/beta/beta;
t2=t3*th;
else
t1=1-2*(1-thx)^2;
t2=4/beta*(1-thx);
t3=-4/beta/beta;
end
else
if tht1=1-2*thx^2;
t3=-4/beta/beta;
t2=t3*th;
else
t1=2*(1-thx)^2;
t2=-4/beta*(1-th/beta);
t3=4/beta/beta;
end
end
%*********************************************
function [t1, t2, t3]=harmonicm(th,thinit,beta,direct)
% code = 3 for harmonic motion%th=cam angle, radians
%beta=motion range, radians%thinit=starting cam angle, radians
%beta=motion range, radians%direct=motion type; +1 for upward, -1 for downward
theta=th-thinit;t1=0.5*(1-cos(pi*theta/beta));
if direct==-1, t1=1-t1;end;
t2=direct*(0.5*pi/beta)*sin(pi*theta/beta);
t3=direct*0.5*(pi/beta)^2*cos(pi*theta/beta);
%*********************************************
function [t1, t2, t3]=cycloidm(th,thinit,beta,direct)
%% code = 4 for cycloidal motion%th=cam angle, radians
%thinit=starting cam angle, radians%beta=motion range, radians
%direct=motion type; +1 for upward, -1 for downward
theta=th-thinit;
t1=theta/beta-(0.5/pi)*sin(2*pi*theta/beta);
if direct==-1,t1=1-t1;end;
t2=direct*(1-cos(2*pi*theta/beta));
t3=direct*2*pi/beta/beta*sin(2*pi*theta/beta);
%*********************************************
function [t1, t2, t3]=polynorm(th,thinit,beta,direct)
%% code = 5 for polynormial motion%th=cam angle, radians
%thinit=starting cam angle, radians
%beta=motion range, radians%direct=motion type; +1 for upward, -1 for downward
theta=th-thinit;
thx=theta/beta;t1=thx*thx*thx*(10+thx*(-15+thx*6));
if direct==-1, t1=1-t1;end;
t2=direct*(30/beta)*thx*thx*(1+thx*(-2+thx));
t3=direct*(60/beta/beta)*thx*(1+thx*(-3 +2*thx));
3.
利用[x y]=pincam([0:10:360],15,s,0,10,[100 200 260],[2 1],-1)
以及[s]=drawcam(15,y,1)
作出圖形
與第四小題的動畫一同呈現
4.
利用上面的程式
[s]=drawcam(15,y,1)
再用
for i=1:1:360
x2=s(:,1);
y2=s(:,2);
x3=x2*cosd(i)-y2*sind(i);
y3=x2*sind(i)+y2*cosd(i);
axis([-30 30 -30 30]);
plot(x3,y3);
pause(0.01);
axis([-30 30 -30 30]);
axis equal;
grid on;
end;
作出動畫
附件1
function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)
%Find the pin type cam with an offsect e%Inputs:
% cth:angle of cam, degrees% r0:radius of base circle
% e:offset% s:stroke
% L:length of pin
% cw:rotation direction of cam(-counterclockwise,+clockwise
%pattern = denote the type of motion used(a 3 element-row matrix)
% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal
% 5:polynomial motion% example [4 3]
%range =the degrees the specific motion starts, eg.[90 180 240]
% Example: [x y]=pincam([10 60],5,2,1,10,[90 180 240],[4 3],-1)
figure(1);
clf;
th=cth*pi/180;
s0=sqrt(r0*r0-e*e);
for i=1:length(cth)
t=th(i)*cw;
A=[cos(t) -sin(t);sin(t) cos(t)];
[ym,yy,yyy]=dwell(cth(i),range,pattern);
x0=s0+ym*s;
Sx=[0 x0 x0+L;e e e];
X=A\Sx;
x(i)=X(1,2)
y(i)=X(2,2)
line(X(1,1:2),X(2,1:2));
line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')
end
hold on;
plot([0 x],[0 y],'ro',x,y,'k-')
附件2
function [rp,rb]=drawcam(r0,y,direct)
% To draw a cam profile with base radius of r0 and rise in y
% The program may work with P8_11% Input: direct: +1 for clockwise; -1 for counterclockwise
%
% Example: [s,T]=drawcam(35,y)
d2r=pi/180;nn=length(y);
LM=max(y+r0);figure(2);
line([-LM LM]',[0 0]');
line([0 0]',[-LM LM]');
if direct==1,
theta=linspace(0,360,nn)'*d2r;
else
theta=linspace(360,0,nn)'*d2r;
end
theta=theta+pi/2;
rb=[r0*cos(theta) r0*sin(theta)];
rp=[(r0+y').*cos(theta) (r0+y').*sin(theta)];
line(rb(:,1),rb(:,2),'color','r');
line(rp(:,1),rp(:,2));
axis equal;
grid on;
2007年5月26日 星期六
機動學第十次作業
本週(5/17)有來上課。
10.2

當一桿以桿上一點M做等角速度迴轉運動時,端點之速度為端點至M點之距離乘以角速度w
若M點為桿外一點,V=仍然為端點至M點之距離*ω
a=端點至M之距離*ω*ω
假若M以V等速水平移動
θ為桿與水平面之夾角
圖請見網頁
則P點此時之速度為
V+r*ω*sinθ - r*ω*cosθ
加速度維持不變
假若M又具有加速度a)時
則P點之速度假設與上述相同,
則加速度為
V+r*ω^2*cosθ + r*ω^2*sinθ
10.3
function sldwork(R,L,e)
th1=slider_limit1(R,L,e);
th2=90;
angle=linspace(th1,th2,100);
d=slider_solved(angle,R,L,e,1);
x=R*cosd(angle);
y=R*sind(angle);
for i=1:100
hold on
plot([0,x(i),d(i)],[0,y(i),e],'linewidth',4);
plot([d(i)-2,d(i)+2,d(i)+2,d(i)-2,d(i)-2],[e-2,e-2,e+2,e+2,e-2]);
plot([x(i),0],[y(i),e-d(i)*(y(i)-e)/(x(i)-d(i))],'b.','linewidth',8)
plot([d(i),d(i)],[0,y(i)*d(i)/x(i)],'b.')
axis equal;
axis ([-10 50 -10 50]);
pause(0.03);
end
程式如上
動畫中出現的兩個點為瞬心
還有三個瞬心分別出現在旋轉結以及滑塊與桿之連結點上
第六個瞬心在無限遠的地方
為滑塊的瞬心
10.2
當一桿以桿上一點M做等角速度迴轉運動時,端點之速度為端點至M點之距離乘以角速度w
若M點為桿外一點,V=仍然為端點至M點之距離*ω
a=端點至M之距離*ω*ω
假若M以V等速水平移動
θ為桿與水平面之夾角
圖請見網頁
則P點此時之速度為
V+r*ω*sinθ - r*ω*cosθ
加速度維持不變
假若M又具有加速度a)時
則P點之速度假設與上述相同,
則加速度為
V+r*ω^2*cosθ + r*ω^2*sinθ
10.3
function sldwork(R,L,e)
th1=slider_limit1(R,L,e);
th2=90;
angle=linspace(th1,th2,100);
d=slider_solved(angle,R,L,e,1);
x=R*cosd(angle);
y=R*sind(angle);
for i=1:100
hold on
plot([0,x(i),d(i)],[0,y(i),e],'linewidth',4);
plot([d(i)-2,d(i)+2,d(i)+2,d(i)-2,d(i)-2],[e-2,e-2,e+2,e+2,e-2]);
plot([x(i),0],[y(i),e-d(i)*(y(i)-e)/(x(i)-d(i))],'b.','linewidth',8)
plot([d(i),d(i)],[0,y(i)*d(i)/x(i)],'b.')
axis equal;
axis ([-10 50 -10 50]);
pause(0.03);
end
程式如上
動畫中出現的兩個點為瞬心
還有三個瞬心分別出現在旋轉結以及滑塊與桿之連結點上
第六個瞬心在無限遠的地方
為滑塊的瞬心
2007年5月16日 星期三
機動學第九次作業
訂閱:
文章 (Atom)
網誌存檔
-
▼
2007
(15)
- ▼ 08/26 - 09/02 (1)
- ► 07/29 - 08/05 (1)
- ► 06/10 - 06/17 (1)
- ► 06/03 - 06/10 (1)
- ► 05/27 - 06/03 (1)
- ► 05/20 - 05/27 (1)
- ► 05/13 - 05/20 (1)
- ► 05/06 - 05/13 (1)
- ► 04/22 - 04/29 (2)
- ► 04/08 - 04/15 (2)
- ► 03/25 - 04/01 (1)
- ► 03/18 - 03/25 (1)
- ► 03/11 - 03/18 (1)