2007年6月11日 星期一

機動學第十三次作業

第一題:

現在要設計一組複式齒輪,
其轉速比為125。

首先知道,
轉速比:




正負號代表著平面第一個齒輪和最後一個齒輪轉的方向,
相同為正,
相反為負。

而普通串聯齒輪的轉速比的推導:




然而複式齒輪因為有共軸齒輪,
故應修正如下:




其中分打「'」的為共軸齒輪的第二個齒輪,
在減速的複式齒列中,
即為小齒輪。

主動輪和驅動輪可透過中間許多組齒列,
將所有各組的減速比相乘,
即可得到最終的轉速比。

基本上,
每一組的轉速比以不超過10為基準,
因此125開平方後得到約11.18,
意即需兩組轉速比為11.18齒列作組合。
此設計不適合僅用兩組齒列。

而將125開三次方後得到5,
比10小,
因此我們可以設計三組轉速比為5的齒列來組合,
達到最終的要求。

設三個小齒輪齒數皆為12,
則大齒輪齒數應為 12 × 5 = 60

因此整個組合的齒數順序為12:60;12:60;12:60
轉速比為(60/12)*(60/12)*(60/12)= 125
誤差值為0 %



第二題:

我覺得作業六是我弄比較好的一次作業,
因為這個在算可動度或惰性自由度的時候,
其實有點非常抽像。

而且有些連結度大於1的結,
在不同的狀況下,
有時候又要做一些更動改變。
比如滑塊結有時要轉換成一旋轉結或和一桿的結合,
計算起來才會正確;
但有些狀況卻又不用。

為此,
我花了不少時間,
自己就先畫了很多種各式各樣的組合,
來檢驗並試探如何將複雜的結變換成可較簡單的計算,
以套用至古魯伯公式仍適用。

我發現,
一個連結度大於2的結,
如果連結的桿數在三桿以上時,
為了要計算正確及思考方便,
大多都需要把此結作簡化,
最好可以將之轉化成「桿」和「連結度=1的結」之組合,
像作業六題目一中的滑槽結,
我就異想天開地再增加一個虛擬的滑塊於槽中,
而外面的另兩桿所點應的結就變成了滑塊問題。
(當然也是試了很多次類似情形但不同狀況的畫法,
而得到的驗証。)

2007年6月4日 星期一

機動學第十二次作業

現在有一組標準全齒輪齒輪之徑節為8,
齒數分別為30T與48T,
工作壓力角為20°(或為14.5° 或25°)。

透過Matlab,
使用contact_ratio()來計算觸線長度及接觸比,
輸入的函數分別為:徑節、齒輪數1、齒輪數2、工作壓力角

輸出的結果為:

cr_ratio:接觸比
cr_length:接觸長度
ad:齒冠
pc, pb:周節及基周節
d2, d3:兩齒輪節圓直徑
ag:兩齒輪之接近角、遠退角及作用角


>> [c_ratio, c_length,ad,pc,pb,d2,d3,ag]=contact_ratio(8,30,48,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


由以上結果可知,
接觸長度為0.6275吋,
接觸比為1.7005。

節圓的直徑長 = 齒數 / 徑節
(D = N / Pd)
故齒數30T的節圓直徑為3.75吋,
齒數48T的節圓直徑為6吋。

基周節:Pb =(π/Pd)* cos x = π * D / N
=>基圓直徑:D = N / Pd * cos x
故齒數30T的基圓直徑為3.52吋,
齒數48T的基圓直徑為5.64吋。


兩齒輪的干涉是指:
齒冠過高或中心距過短等,
接觸點在離開時仍在對方基圓內,
使得影響轉動。

故兩齒輪是否會干涉,
則在接近角的部份,(參考課本圖9.24)
在兩基圓切線MN上,
MP要大於AP;
退遠角時,
NP要大於BP。
因此若要沒有干涉,
則需要 MP≧AP




因為都是正值,
移項化簡:





設齒冠



代入後,
我們可以得到不會發生干涉條件:





因此計算的結果如下:
左式:(30^2+2*30*48)*sin20°*sin20°=442.176
右式:4+4*48=196
我們可以發現,
左式≧右式
所以在以上條件上,
兩個齒輪不會發生干涉。



而為了繪製兩齒輪,
我們利用draw_gear()來執行:

>> figure(1);
>> draw_gear(8,30,20,360,0,0);
>> draw_gear(8,48,20,360,0,4.875)




動畫則利用move2_gear()來呈現

>> move2_gear(8,30,48,20,10)

2007年5月29日 星期二

機動學第十一次作業

題目一:

現在探討有個凸輪,
開始時先在0°至100°區間滯留之後提升,
並且在200°至260°區間再次滯留,
其高度(衝程)為5公分,
其餘260°至360°則為返程。
升程採用等加速度運動,
返程之運動型式若為等速度運動的話,
則利用dewell()及plot_dewell()兩個程式,
以每10°計算一次,
並繪出其位置、速度、加速度與凸輪迴轉角度的關係圖:

>> plot_dwell(0:10:360,5,[2 1],[100 200 260])

y =

Columns 1 through 3

0 0 0

Columns 4 through 6

0 0 0

Columns 7 through 9

0 0 0

Columns 10 through 12

0 0 0.0200

Columns 13 through 15

0.0800 0.1800 0.3200

Columns 16 through 18

0.5000 0.6800 0.8200

Columns 19 through 21

0.9200 0.9800 1.0000

Columns 22 through 24

1.0000 1.0000 1.0000

Columns 25 through 27

1.0000 1.0000 1.0000

Columns 28 through 30

0.9000 0.8000 0.7000

Columns 31 through 33

0.6000 0.5000 0.4000

Columns 34 through 36

0.3000 0.2000 0.1000

Column 37

0


yy =

Columns 1 through 3

0 0 0

Columns 4 through 6

0 0 0

Columns 7 through 9

0 0 0

Columns 10 through 12

0 2.2918 2.5210

Columns 13 through 15

2.7502 2.9794 3.2086

Columns 16 through 18

1.1459 0.9167 0.6875

Columns 19 through 21

0.4584 0.2292 0

Columns 22 through 24

0 0 0

Columns 25 through 27

0 0 -0.5730

Columns 28 through 30

-0.5730 -0.5730 -0.5730

Columns 31 through 33

-0.5730 -0.5730 -0.5730

Columns 34 through 36

-0.5730 -0.5730 -0.5730

Column 37

-0.5730


yyy =

Columns 1 through 3

0 0 0

Columns 4 through 6

0 0 0

Columns 7 through 9

0 0 0

Columns 10 through 12

0 1.3131 1.3131

Columns 13 through 15

1.3131 1.3131 1.3131

Columns 16 through 18

-1.3131 -1.3131 -1.3131

Columns 19 through 21

-1.3131 -1.3131 0

Columns 22 through 24

0 0 0

Columns 25 through 27

0 0 0

Columns 28 through 30

0 0 0

Columns 31 through 33

0 0 0

Columns 34 through 36

0 0 0

Column 37

0


h1 =

152.0099
153.0089
154.0089




y為從動件在不同迴轉角度,
垂直移動的高度。
yy為從動件的垂直運動速度。
yyy為從動件的垂直加速度。


題目二:

若今天有一個凸輪半徑15㎝,
以順時針方向旋轉。
從動件為梢型,
垂直接觸凸輪,
長為10㎝。
從動件之運動依照上一題之運動型式,
100°~200°、260°~360°各為升程及返程時的對應迴轉角度。
升程為等加速度運動,
返程仍設定為等速運動。
則透過pincam()來繪製工作圖:

>> [x y]=pincam([0:10:360],15,5,0,10,[100 200 260],[2 1],-1)

x =

Columns 1 through 3

15.0000 14.7721 14.0954

Columns 4 through 6

12.9904 11.4907 9.6418

Columns 7 through 9

7.5000 5.1303 2.6047

Columns 10 through 12

0.0000 -2.6047 -5.1645

Columns 13 through 15

-7.7000 -10.2203 -12.7163

Columns 16 through 18

-15.1554 -17.2903 -18.8098

Columns 19 through 21

-19.6000 -19.5977 -18.7939

Columns 22 through 24

-17.3205 -15.3209 -12.8558

Columns 25 through 27

-10.0000 -6.8404 -3.4730

Columns 28 through 30

-0.0000 3.2993 6.3274

Columns 31 through 33

9.0000 11.2488 13.0228

Columns 34 through 36

14.2894 15.0351 15.2645

Column 37

15.0000


y =

Columns 1 through 3

0 2.6047 5.1303

Columns 4 through 6

7.5000 9.6418 11.4907

Columns 7 through 9

12.9904 14.0954 14.7721

Columns 10 through 12

15.0000 14.7721 14.1894

Columns 13 through 15

13.3368 12.1801 10.6703

Columns 16 through 18

8.7500 6.2932 3.3167

Columns 19 through 21

0.0000 -3.4556 -6.8404

Columns 22 through 24

-10.0000 -12.8558 -15.3209

Columns 25 through 27

-17.3205 -18.7939 -19.6962

Columns 28 through 30

-19.5000 -18.7113 -17.3843

Columns 31 through 33

-15.5885 -13.4058 -10.9274

Columns 34 through 36

-8.2500 -5.4723 -2.6915

Column 37

-0.0000




所計算出來各對應的值,
為梢型從動件和凸輪接觸的座標。
因為偏置為零,
故所有從動件之延長線,
均會交於基圓的圓心。

2007年5月23日 星期三

機動學第四次作業

題目一:

function raotate_triangle(lenth)
%轉動三角形:
%設轉動前邊長為lenth的三角形,
%以其中一個頂為原點,
%其中一邊為x軸正向
%則三頂點座標為(0,0) (lenth 0) (lenth*cos60°,lenth*sin60°)


l=lenth;
m=l*cosd(60);
n=l*sind(60);
triangle = [0 0;l 0;m n;0 0];
t = plot(triangle(:,1),triangle(:,2));
axis([-1.1*l 2.2*l -1.1*l 2.1*l]); %設定畫面長度,配合三角形大小而改變
axis equal;

for i = 1:36
axis([-1.1*l 2.2*l -1.1*l 2.1*l])
rotate(t,[0 0 1],10,[0 0 0]);
pause(0.03);
end

for i = 1:36
axis([-1.1*l 2.2*l -1.1*l 2.1*l])
rotate(t,[0 0 1],10,[m n 0]);
pause(0.03);
end

for i = 1:36
axis([-1.1*l 2.2*l -1.1*l 2.1*l])
rotate(t,[0 0 1],10,[l 0 0]);
pause(0.03);
end


我學號後兩碼為05,
故設定三角形邊長為5+10=15,
因此程式執行結果如下:

>> for i=1:5,
raotate_triangle(15)
end





第二題:

利用講議的linkshape()來繪製連桿外形,
再以下列的程式,
執行繪製連桿繞一圈時,
分別在不同的位置。
其中以每轉40°畫一次圖,
綠色線表示彈簧。

>> for t=0:40:360
a=10*cosd(t);
b=10*sind(t);
linkshape([0,0],[a,b],4);
line([15,a],[0,b],'color','g');
end




第三題:


跟據題意,
第一桿長為10㎝,
第二桿長為5㎝,
第三桿長為10㎝,
第四桿長為5㎝。

則起始位置為:

>> linkshape([10 0 ],[0 0],2);
>> linkshape ([0 0],[3 4],3 );
>> linkshape([3 4],[13 4],1.5);
>> linkshape([13 4],[10 0],2);




而每30°作一次回轉,
該路徑圖為:

>> for i=0:30:360
linkshape([10 0 ],[0 0],2);
linkshape ([0 0],[5*cosd(i) 5*sind(i)],3 );
linkshape([5*cosd(i) 5*sind(i)],[5*cosd(i)+10 5*sind(i) ],1.5);
linkshape([10 0],[5*cosd(i)+10 5*sind(i)],2);
end

機動學第十次作業

第一題:


當一桿(桿長=L)以某特定點M等角速度ω迴轉時,
來探討端點P之速度、加速度的大小方向:

VP = VM + VP/M
= 0 + ωL
= ωL(切線方向)


AP = AM + α.L + ω.ω/L
= 0 + 0.L + ω.ω/L
= ω.ω/L (僅有向心加速度)



若現在M點開始有水平等速度VM
則P點的速度、加速度則會變為:

VP = VM + VP/M
= VM + ωL


AP = AM + α.L + ω.ω/L
= 0 + 0.L + ω.ω/L
= ω.ω/L



現在M點再增加一個加速度AM及角加速度α,
則P點的速度、加速度則會變為:

VP = VM + VP/M
= VM + ωL


AP = AM + α.L + ω.ω/L



以此推理四連桿的運動,
則點P與Q之速度與加速度方向會與桿一(固定桿)之兩端點之關係如何?

若以A點作為固定連結,
A-B為桿一,
A-P為桿二,
P-Q為桿三,
Q-B為桿四的前提之下,
則:

P點所產生的速度、加速度等量,
由於桿二的A端為固定,
所以不受桿一的影響,
分析結果如前述。

而Q點的速度、加速度,
因為會受到P點及B點的影響,
不過因為桿一為固定桿,
所以B點為固定點。

因此,
Q點主要受主動桿(桿二)的運動所影響,

VQ = VP + VQ/P
= VP + ??


AQ = AP + αQ/P.LQ/P + ωQ/P.ωQ/P/LQ/P
= AP + ??.LQ/P + ??.??/LQ/P


而我們知道VQ會兩桿四垂直,
VP的大小和方向都知道,
則利用向量的關係,
VP、VQ、VQ/P會形成一封閉三角形,
則可找出VQ、VQ/P的大小及方向。

同理我們也可以求得Q點的加速度。



題目二:

由於為滑塊為水平移動,
且偏置量為零,
因此滑塊所屬的桿四移動方向,
和桿一重合,
並形成一幫閉三角形。

若以(桿一&桿二)的連結點為原點,
桿一為固定桿且水平來設計程式,
則實際上我們只要算出另外兩個點的座標即可。

程式:

function Point=IC(r2,r3,theta2)
%輸出:
% A:(桿一&桿二)的瞬心座標
% B:(桿二&桿三)的瞬心座標
% C:(桿三&桿四)的瞬心座標
% D:(桿四&桿一)的瞬心座標
% E:(桿一&桿三)的瞬心座標
% F:(桿二&桿四)的瞬心座標
%輸入:
% r1:桿一長
% r2:桿二長
% r3:桿三長
% theta2:桿二的角度(°)

th=asind(r2/r3*sind(theta2));
%A點
A=[0 0];
%B點
bx=r2*cosd(theta2);
by=r2*sind(theta2);
B=[bx by];
%C點
cx=r2*cosd(theta2)+r3*cosd(th);
C=[cx 0];
%D點在無窮遠,以虛數表示
D=[i i];
%E點
ey=cx*tand(th);
E=[0 ey];
%F點
fy=cx*tand(theta2);
F=[cx fy];

Point=[A;B;C;D;E;F];

%畫圖
drawsldlinks([1 r2 r3 0],0,theta2,1,0);
l=[A;E;B;F;C];
plot(l(:,1),l(:,2),'m:');


Example:

>> InstCenter=IC(2,3,60)

InstCenter =

0 0
1.0000 1.7321
3.4495 0
0 + 1.0000i 0 + 1.0000i
0 2.4392
3.4495 5.9747


2007年5月8日 星期二

機動學第九次作業

我的學號末二碼為05,
故我的曲桿長為R=15,
連桿長為L=20,
而滑塊偏置量為10。

利用Matlab的drawsldlinks()畫出初始結構:


>> drawsldlinks([1 15 20 10],0,60,1,0)

val =

1.0e+003 *

Columns 1 through 2

0.0273 0
0.0075 + 0.0130i 0.0600
0.0198 - 0.0030i -0.0086
0.0000 + 0.0100i 0.0900

Columns 3 through 4

0 0
0.0100 0
-0.0038 0.0635
0 0

Columns 5 through 6

-0.1412 -0.1299 + 0.0750i
-0.8445 -0.1412
0.0075 + 0.0130i -0.7500 - 1.2990i
0.0273 + 0.0100i -0.8445

Columns 7 through 8

0.1500 0.1500
0.1412 0.1800
1.5000 -0.1200
0.8445 0.1800


form =

1




◎以下先以曲桿驅動討論:

計算曲桿所能轉動的角度範圍


>> [Qstart, Qstop]=sld_angle_limits([1 15 20 10],0,0)

Qstart =

3.6000e-006


Qstop =

360.0000


以上告訴我們,
曲桿轉動時的最小角度幾乎是零,
而最大角度可達360°。

其最大最小值的圖為:

>> drawsldlimits([1 15 20 10],0,1,0)




該軌跡圖為:

>> drawsldpaths(0,0,[1 15 20 10],0,0,0,1,100,0,0)

Qstart =

3.6000e-006


Qstop =

360.0000

Combination of links fails at degrees 232.7
Combination of links fails at degrees 250.9
Combination of links fails at degrees 269.1
Combination of links fails at degrees 287.3
Combination of links fails at degrees 305.5





由圖我們可以發現,
雖然計算值最大最小值在0°及360°,
但實際上曲桿並非可以完整轉一圈的。

若增加點數,
可以更看清楚可動的範圍:

>> drawsldpaths(0,0,[1 15 20 10],0,0,0,1,1000,0,0)

Qstart =

3.6000e-006


Qstop =

360.0000

Combination of links fails at degrees 223.1
Combination of links fails at degrees 224.9
Combination of links fails at degrees 226.7
Combination of links fails at degrees 228.5
Combination of links fails at degrees 230.3
......(太多了,省略)......
Combination of links fails at degrees 309.5
Combination of links fails at degrees 311.4
Combination of links fails at degrees 313.2
Combination of links fails at degrees 315.0
Combination of links fails at degrees 316.8




可發現,
其實大概在223°到318°間,
曲桿是無法到達的。



◎若為滑塊驅動

先計算可活動的角度範圍:


>> [Qstart, Qstop]=sld_angle_limits([1 15 20 10],0,2)

Qstart =

-33.5410


Qstop =

33.5410


也就是說,
當滑塊左右移動到正向最遠位置時,
其曲桿、連桿與水平夾角為33.541°,
而移動到負向最遠位置時,
其曲桿、連桿與水平夾角為-33.541°。

最大最小值的圖如下:

>>drawsldlimits([1 15 20 10],0,1,2)




而繪製該軌跡圖則為:

>> drawsldpaths(0,0,[1 15 20 10],0,0,0,1,100,2,0)

Qstart =

-33.5410


Qstop =

33.5410


2007年4月30日 星期一

機動學第八次作業

題目一:
桿長分別為r=[4 3 3 5],
由桿2驅動,
設第一固定桿角度theta1=0度;
角速度 td2=10rad/s;
角加速度tdd2=0 rad/s^2。

若桿2角度theta2=45度時,
則透過 Matlab 的程式 f4bar()可得:

>> [val,form]=f4bar([4 3 3 5],0,45,10,0,-1,0)

val =

1.0e+003 *

◎0.0040 0 0 0 0.0212+0.0212i 0.0021+0.0021i

◎0.0021+0.0021i 0.0450 0.0100 0 0.0041-0.0245i 0.0032+0.0049i

◎0.0011+0.0028i 0.0695 -0.0163 0.4914 -0.2121-0.2121i 0

◎-0.0008+0.0049i 0.0995 -0.0050 0.3836 -1.8712-0.4391i 0

form =
1



由form=1得知,
此機構可正確組合成一閉合型四連桿結構。
因此,
我們可以知道一開始的各桿之向量位置為:

桿一:(4,0)
桿二:(2.1,2.1)
桿三:(1.1,2.8)
桿四:(-0.8,4.9)

而各桿與+x軸方向的夾角度為:

θ1= 0°
θ2= 45°
θ3= 69.5°
θ4= 99.5°

各桿的角速度為:(rad/s)

ω1= 0
ω2= 10
ω3= -16.3
ω4= -5

各桿的角加速度為:(rad/s^2)

α1= 0
α2= 0
α3= 491.4
α4=383.6


利用程式drawlinks()來描繪此時的四連桿位置:

>> drawlinks([4 3 3 5],0,45,-1,0)



利用程式fb_angle_limits()來計算此四連桿之驅動桿(桿二),
所能轉的最大及最小角度:

>> [min,Max]=fb_angle_limits([4 3 3 5],0,0)

min =
28.9550

Max =
331.0450


可得知,
桿二最大可轉至331.045°,
而最小只可到28.955°。

若以drawlimit()來計算並繪圖的話:

>> drawlimits([4 3 3 5],0,-1,0)

Qstart =
28.9550

Qstop =
331.0450




則和前述一致。

若考慮使驅動桿繞一圈,
既θ2=0°~360°時,
我們試以每20°作一次計算及繪圖:

>> for i=0:20:360,drawlinks([4 3 3 5],0,i,-1,0);end
Combination of links fail at degrees 0.0
Combination of links fail at degrees 20.0
Combination of links fail at degrees 340.0
Combination of links fail at degrees 360.0





我們可以發現後,
在θ2=0°、20°、340°、360°時,
並無法繪出圖形來,
是因為在前述中,
我們得知了θ2的值僅能介於28.955°~331.045°,
而以上四個θ2都已經不在這個範圍內,
故無法繪出此四個圖。

而由之前的葛拉索定理來判斷,
最長邊g=5,
最短邊s=3,
p=4,q=3,

─→8 = s+g > p+q = 7,

屬於葛拉索第二類型,
故為雙搖桿機構,
所有桿皆無法完整繞一圈。

利用draw_4paths()來繪製軌跡圖:

>> draw_4paths(0,0,3,[4 3 3 5],0,45,10,0,-1,10000,0,0)