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)

2007年4月22日 星期日

機動學第七次作業

題目一:

a = 我的學號末碼+10 = 15。

各桿之對應長度rho=[15, 20, 10]㎝,
各桿之對應起始角度theta=[0, 0, 0]度,
各桿之對應角速度為td=[0.2, 0.5, 0 .3]rad/s,
各桿之對應角加速度為tdd=[0, 0.1, 0.2]rad/s^2。

利用 Matlab 做起始分析:

>> [vec dyadata]=dyad([15 20 10],[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])

vec =
45.0000__ 16.0000__ 7.6322
0.0000___ 90.0000__ 148.3925

dyadata =
15.0000__ 0 + 3.0000i__ -0.6000
20.0000__ 0 +10.0000i__ -5.0000 + 2.0000i
10.0000__ 0 + 3.0000i__ -0.9000 + 2.0000i


以上為開始值,

下圖為起始時的分析圖。

>> dyad_draw([15 20 10],[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])



下列函式為計算當時間經過 t 秒時,
所對應到的新角度、新角速度:

function [thet, omega]=angular(time,theta,td,tdd)
%算角度變化及角速度變化後的值,配合dyad及dyad_draw始用
%time:經過時間(sec)
%theta:起始角度(°)
%td:起始角速度
%tdd:角加速度
%輸出:[角度 角速度]

t=time;
th=theta(:);
td=td(:);
tdd=tdd(:);
n=length(th);
th2=td*t+0.5*tdd*t*t;
for x=1:n
thetotal(x)=0;
for y=1:x
thetotal(x)=th2(y)+thetotal(x);
end
thet(x)=th(x)+thetotal(x);
end
omega=td+tdd*t




t=1:
第一秒時,

>> [thet, omega]=angular(1,[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])

thet =
0.2000
0.7500
1.1500

omega =
0.2000
0.6000
0.5000


角度變為[0.2 0.75 1.15],
角速度變為[0.2 0.6 0.5],
此時結構變為:

>> dyad_draw([15 20 10],[0.20 0.75 1.15],[0.2 0.6 0.5],[0 0.1 0.2])


分析:
>> [vec dyadata]=dyad([15 20 10],[0.20 0.75 1.15],[0.2 0.6 0.5],[0 0.1 0.2])

vec =

44.9991__ 19.9997__ 11.0581
0.6556__ 90.7675__ 159.6091

dyadata =

14.9999 + 0.0524i__ -0.0105 + 3.0000i__ -0.6000 - 0.0021i
19.9983 + 0.2618i__ -0.1571 +11.9990i__ -7.2256 + 1.9056i
9.9980 + 0.2007i__ -0.1003 + 4.9990i__ -2.5396 + 1.9494i




t=2:
當第二秒時,

>> [thet, omega]=angular(2,[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])

thet =
0.4000
1.6000
2.6000

omega =
0.2000
0.7000
0.7000


角度變為[0.4 1.6 2.6],
角速度變為[0.2 0.7 0.7],
此時結構變為:

>> dyad_draw([15 20 10],[0.4 1.6 2.6],[0.2 0.7 0.7],[0 0.1 0.2])


分析:
>> [vec dyadata]=dyad([15 20 10],[0.4 1.6 2.6],[0.2 0.7 0.7],[0 0.1 0.2])

vec =

44.9954__ 23.9983__ 15.8288
1.4222__ 91.7417__ 167.2363

dyadata =

14.9996 + 0.1047i__ -0.0209 + 2.9999i__ -0.6000 - 0.0042i
19.9922 + 0.5584i__ -0.3909 +13.9945i__ -9.8520 + 1.7256i
9.9897 + 0.4536i__ -0.3175 + 6.9928i__ -4.9857 + 1.7757i



t=3:
當第三秒時,

>> [thet, omega]=angular(3,[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])

thet =
0.6000
2.5500
4.3500

omega =
0.2000
0.8000
0.9000


角度變為[0.6 2.55 4.35],
角速度變為[0.2 0.8 0.9],
此時結構變為:

>> dyad_draw([15 20 10],[0.6 2.55 4.35],[0.2 0.8 0.9],[0 0.1 0.2])


分析:
>> [vec dyadata]=dyad([15 20 10],[0.6 2.55 4.35],[0.2 0.8 0.9],[0 0.1 0.2])

vec =

44.9868__ 27.9944__ 21.8848
2.3000__ 92.9197__ 172.6437

dyadata =

14.9992 + 0.1571i__ -0.0314 + 2.9998i__ -0.6000 - 0.0063i
19.9802 + 0.8898i__ -0.7119 +15.9842i__ -12.8763 + 1.4285i
9.9712 + 0.7585i__ -0.6826 + 8.9741i__ -8.2284 + 1.3799i




t=4:
當第四秒時,

>> [thet, omega]=angular(4,[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])

thet =
0.8000
3.6000
6.4000

omega =
0.2000
0.9000
1.1000


角度變為[0.8 3.6 6.4],
角速度變為[0.2 0.9 1.1],
此時結構變為:

>> dyad_draw([15 20 10],[0.8 3.6 6.4],[0.2 0.9 1.1],[0 0.1 0.2])


分析:
>> [vec dyadata]=dyad([15 20 10],[0.8 3.6 6.4],[0.2 0.9 1.1],[0 0.1 0.2])

vec =

44.9708__ 31.9857__ 29.1855
3.2888__ 94.3001__ 176.8392

dyadata =

14.9985 + 0.2094i__ -0.0419 + 2.9997i__ -0.5999 - 0.0084i
19.9605 + 1.2558i__ -1.1302 +17.9645i__ -16.2936 + 0.9788i
9.9377 + 1.1147i__ -1.2262 +10.9314i__ -12.2475 + 0.6388i




t=5:
當第五秒時,

>> [thet, omega]=angular(5,[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])

thet =
1.0000
4.7500
8.7500

omega =
0.2000
1.0000
1.3000


角度變為[1.0 4.75 8.75],
角速度變為[0.2 1.0 1.3],
此時結構變為:

>> dyad_draw([15 20 10],[1.0 4.75 8.75],[0.2 1.0 1.3],[0 0.1 0.2])


分析:
>> [vec dyadata]=dyad([15 20 10],[1.0 4.75 8.75],[0.2 1.0 1.3],[0 0.1 0.2])

vec =

44.9444__ 35.9689__ 37.7053
4.3886__ 95.8820__ -179.5933

dyadata =

14.9977 + 0.2618i__ -0.0524 + 2.9995i__ -0.5999 - 0.0105i
19.9313 + 1.6562i__ -1.6562 +19.9313i__ -20.0969 + 0.3370i
9.8836 + 1.5212i__ -1.9776 +12.8487i__ -17.0076 - 0.5942i

2007年4月13日 星期五

機動學第六次作業

題目一:




桿數計算

如上圖所示,
原本應有十三個連桿數,
但因H結為三桿共用的滑槽結,
且桿8與桿12共用的R結在滑槽內移動,
為計算上的方便,
將H視為一旋轉結加上一虛設的稜柱結,
故該虛設的稜柱結再增加一桿。

共14個連桿。


◎結數計算

而在C、D、E、G、H、I處個為三桿共用一個R結,
故計算為12個,
再加上A、B、F 的旋轉結:
→→R結總共 15個;

B處(桿2、3)有一個稜柱節、
F處(桿10、1)有一個滑塊與桿1間的稜柱結、
H處(虛設桿、桿1)有一稜柱結:
→→P結總共3個;

共18個結。


◎可動度計算

R結和P結的連結度都是1,
藉由古魯伯公式,
M = 3(N-J-1)+Σfi = 3(14-18-1)+18 = 3
可動度為3。

由 Matlab 的 function[df] = gruebler() 計算可動度,得到:

>>gruebler(14,[15 3])
ans = 3


因此可得到印証。


◎滑塊的影響

F處:
若去除整個元件至F處滑塊的連結,
既桿9、10去除後,
則共少掉二桿、二旋轉結、一稜柱結,
可動變為:

>> gruebler(12,[13 2])
ans = 3


可動度仍然為3,
因此我們發現滑塊的有無對於可動度沒有影響。

但倘若該滑塊改為固定的旋轉結的話,
則連桿數少一(少桿10)、少一稜柱結,
可動度變為:

>> gruebler(13,[15 2])
ans = 2


可動度減少了。


B處:
若是將B處的滑塊更動,
將處改為不能滑動的,
但該處仍可旋轉,
則效果等同於將桿4於B處的結移置A處變成三桿共用一旋轉結,
既桿1、2、4共旋轉結,
則總桿數少一(少桿3)、稜柱結少一,
可動度變為:

>> gruebler(13,[15 2])
ans = 2


發現更動B處的滑塊也會使可動度降低。


◎滑槽的影響

若滑槽改為整個H處共用旋轉結,
變成三桿(桿8、12、13)共用一旋轉結,
則少了虛設的桿14、少了一稜柱結,
故可動度變為:

>> gruebler(13,[15 2])
ans = 2


可動度下降了。



題目二:



上圖所示,
由於桿1和地面相連,
並沒有結,
因此可動度為0,
桿1和地面視為一桿。



A、F為旋轉結,自由度為1;
B、C、E為球結,自由度為3;
D為筒結,自由度為2。



此為立體空間分析,
會有六個自由度。
此結構共6個桿,6個結。
自由度為:

M = 6(N-J-1)+Σfi = 6(6-6-1)+ [2(1)+3(3)+1(2)] = 7

而利用Matlab求得的可動度為:

>> gruebler(6,[2 0 0 3 1])
ans = 7


可得知兩個計算結果是一樣的,
是可以動的機構。



但桿2及桿4本身可以自轉,
故有2個楕性自由度。
因此實際可動度為:
7-2=5。


題目三:

◎葛拉索機構

在討論四連桿運動時,
我們若將這四桿中最長桿的長度定為g,
最短桿長度定為s,
其餘兩桿長度為p及q,
則當 s+g < p+q 時,
我們稱此機構為葛拉索機構。

其餘狀況為非葛拉索機構。

如當s+g > p+q 時,
亦稱為葛拉索第二型,
其無論哪一桿做為固定桿,
該機構皆為雙搖桿型。

而 s+g = p+q 時,
為特殊狀況,
或稱葛拉索第三型,
或稱葛拉索變點機構。
該機構運作中,
當連桿到達死點位置時,
則下一刻的運動方向可前進或後退,
變得不可預知。


◎現在有三組連桿來討論

第一組: 桿1~桿4分別為7,4,6,5 cm。

最長桿g=7
最短桿s=4
p=6
q=5

=> 11 = s+g = p+q = 11

為非葛拉索機構,
是葛拉索第三型。
此機構為中立連桿組,
在運作過程時,
會發生四個連桿共一線的時候。
當該共線狀況發生時,
其下一刻的運動可前亦可後,
變得無法預知。

利用 Matlab 的 grashof() 來驗証:

> grashof(1,[7 4 6 5])
ans = Neutral Linkage


與計算相同。

若此機構要成為葛拉索型,
則將最短桿(s=4)再縮短;
或將最長桿(g=7)再縮短,但不可小於6;
或將另外兩桿增長,但各自不可超過7。


第二組:桿1~桿4分別為8,3.6,5.1,4.1 cm

最長桿g=8
最短桿s=3.6
p=5.1
q=4.1

=> 11.6 = s+g > p+q = 9.2

非葛拉索機構,
為葛拉索第二型。
此型的特點,
既為無論何桿為固定桿,
該機構皆為雙搖桿機構。

利用 Matlab 的 grashof() 來驗証:

>> grashof(1,[8 3.6 5.1 4.1])
ans = Non-Grashof Linkage


合乎計算。

若該機構要改為葛拉索型,
(s+g)-(p+q) = 2.4 ,
故最長桿和最短桿的總收縮量超過2.4,
(因8-2.4=5.6 ,仍為最長桿,故可只縮短桿1)
但最長桿不可縮到比5.1小;
或者中間兩桿總伸長量超過2.4即可,
但兩桿最後的長度不可超過8。


第三組:桿1~桿4分別為5.4,3.1,6.6,4.7 cm

最長桿g=6.6
最短桿s=3.1
p=5.4
q=4.7

=> 9.7 = s+g < q = 10.1

此為葛拉索結構。
而桿1為固定桿,
該固定桿為最短桿之鄰桿,
故此機構為曲柄搖桿型。
桿2可做迴轉,為曲柄;
桿3為耦桿;
桿4為搖桿,只做擺動。

利用 Matlab 的 grashof() 來驗証:

>> grashof(1,[5.4 3.1 6.6 4.7])
ans = Crank-Rocker Linkage


與計算相符。

2007年4月11日 星期三

機動學第五次作業

題目一:


手臂旋轉前


程式碼:

function body(L1,L2,L3,theta1,theta2,theta3)
%畫手
%L1:上臂長
%L2:前臂長
%L3:手掌長
%theta1:上臂與水平的角度
%theta2:前臂與上臂的夾角
%theta3:手掌與前臂的夾角
%套用trans4(座標,角度,轉換模式)及linkshape(起點,終點,大小)兩函式

p0=[0 0;L1 0;L2 0;L3 0]; %將各連桿以原點為起點,並座標化
p1=trans4(p0(2,:),-theta1,5); %上臂作逆時鐘轉
p2=trans4(p0(3,:),-theta1+theta2-180,5); %前臂旋轉,並考慮上臂的旋轉角度
p3=trans4(p0(4,:),-theta1+theta2+theta3,5); %手掌旋轉,並考慮上臂及前臂的旋轉角度
P0=p0(1,:); %原點
P1=p1; %肘關節座標
P2=p2+P1; %手腕間關節座標
P3=p3+P2; %手掌末端座標
linkshape(P0,P1,10) %畫出上臂
linkshape(P1,P2,8) %畫出前臂
linkshape(P2,P3,5) %畫出手掌
axis equal


執行第三小題:

>> body(35,30,10,90,-45,-30) 




題目二:

手指的關節,最多彎曲90°,最少彎曲0°。
以我的手為例,食指三個指節長為5㎝、3㎝、2㎝,則彎曲程度如下圖所示。
而另外三指雖然長度不同,但可彎曲範圍仍一樣。

2007年3月20日 星期二

機動學第三次作業

第一題:

我的上臂長:32㎝,前臂長:27㎝,頭頂至頸長:27㎝。
為了便於計算,設拳頭及上臂關節在同一個直線上運動。
座標化:假設上臂末關節為原點(0,0),頭頂(0,a),手肘關節(x,y)
則我們可以列出關係式:

x^2+y^2=32^2=1024
x^2+(a-y)^2=27^2=729
27<a<59, x>0, y>0
(拳頭最高移到59㎝高)

則我們可推得:

y=(295+a^2)/2
x=(1024-y^2)^0.5
a=27, 32, 37, 42, 47, 52, 57

利用以上關係式,在matlab求解。

程式碼:

>> a=27:5:57
>> y=a.^(-1).*(295+a.^2)/2
>> x=sqrt(1024-y.^2)
>>hand=[0 0;x(1) y(1);0 a(1);0 0;x(2) y(2);0 a(2);0 0;x(3) y(3);0 a(3);0 0;x(4) y(4);0 a(4);0 0;x(5) y(5);0 a(5);0 0;x(6) y(6);0 a(6);0 0;x(7) y(7);0 a(7)]
>>line(hand(:,1),hand(:,2))

以上我們可得到:
a =
27, 32, 37, 42, 47, 52, 57

x =
25.7761, 24.4797, 22.7675, 20.5710, 17.7314, 13.8728, 7.5864

y =
18.9630 , 20.6094, 22.4865, 24.5119 , 26.6383, 28.8365, 31.0877


此為每次上臂關節→上臂→肘關節→前臂→拳頭(頭頂正上方)



第二題:

接頭的對偶,大多以承軸做為連結,以球型、圓柱型為多。
承軸的製造介紹影片




上圖圓圈中,為門閂式夾鉗。屬於旋轉對 。



上圖為電腦主機的風扇,箭頭指的為滾輪承軸。
應力接觸為面,屬於低對。









上圖為機場拖運行李的機具上面的滾輪承軸。
特別的是他的滾輪類似楕圓柱,非一般的圓柱狀。
應力的發生,僅和行李接觸一線,屬於高對。



這是健身房中常見的交叉訓練機。
這一款的交叉訓練機,後方為一個型式閉合結。



第三題:


不會寫…
不過找了跟題目有關的圖
以下是達文西的畫

2007年3月13日 星期二

機動學第二次作業

題目一:
人體關節的運動來源於肌肉收縮後跨越關節的肌腱產生滑動,在關節周圍產生旋轉力矩。力矩是肌肉收縮力與力臂的乘積,因而關節運動肌腱的力臂大小對關節運動方式有重要影響。如:腕關節是人體最為複雜的關節之一,有24根肌腱跨越。


依關節形狀,人體的可動關節有下列形式:

1、球窩關節(Articulatio spheroidea):
→如肩關節,髖關節;因為連接處,為似球狀的骨頭相接,使得運動較多向化。

2、橢圓關節(Articulatio ellipsoidea):
→例如寰椎和顱骨之間的關節。

3、鞍狀關節(Articulatio sellaris):
→如大拇指與掌骨的連接;由於連接處被兩個「Y形」相嵌,因此只有兩個方向運動。

4、屈戌關節(Ginglymus):
→只有一條運動軸,只能做屈伸,例如肘關節(如鉸鏈比較)。

5、車軸關節(Articulatio trochoidea):
→如尺橈二骨之間的關節。

6、平面關節(Articulatio plana):
→如椎間關節。

7、雙髁狀關節(Articulatio bicondylaris):
→如膝關節。




模擬人上臂關節運動的機械動畫
紫色的為肩關節;黃色和土色間,為肘關節;土色和紅色間為腕關節。



http://www.cad.zju.edu.cn/home/jin/course/chapter3.ppt
這是投影片的連結,主要是在介紹座標轉換時,所要用的矩陣變換。
到了中間,則有模擬手臂(手肘關節)活動所需用到的數學參數。



題目二:
首先,什麼是創造?什麼是發明?創造我認為比較偏向腦筋中新奇的思考,利用學習過的知識和經驗,延申想到別人想不到的創意點子,做不做得出來、實不實用則是其次。而發明,則是實際做出了人們用得到、摸得到,但卻從來沒見過的東西, 生活上、學術上或許用得到。

無論發明或是創造,最大的意義,在於是「第一個」,因為前無來者,才能叫創造發明。但是,究竟這個第一個的創造發明,在人類史上到底有沒有意義,人們接不接受、能不能實際運用、有沒有價值,則需要時間和社會的考驗。

創造發明,應該有下列這些過程:創造發明包含了科學的發現和技術的發明。
1、科學的發現:
(1)自然過程的考察
(2)假說—驗證。

2、技術的發明
(1)分析人類的希望,提出發明創造的課題
(2)通過發明創造實現人類的希望
(3)分析事物的缺點,提出發明革新的問題
(4)通過發明革新減少和消除事物的缺點
(5)分析社會的需要,提出發明革新的課題
(6)通過發明革新來滿足社會的需要



題目三:
程式碼
>>M=05+10
>>x=[1 2 3 4 5 6 7 8 9 10]
>>y=x.^(1/M)
>> plot(x,y);xlabel('x');ylabel('y');title('Made by 石子賢')