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