2007年5月25日 星期五

機動學作業十




1.我本週機動學課程(5/17)有來上課
2.速度與加速度的問題,當一桿以某特定點M等角速度迴轉時,其端點P之速度方向如何?
其加速度方向如何?若該特定點M復以等速水平運動,則同一端點P之速度與加速度方向會變為如
何?若M點同時也有加速度,則點P會有何變化?若以此推理四連桿的運動,則點P與Q之速度與
加速度方向會與桿一(固定桿)之兩端點之關係如何?與我們前面的作業分析結果有無共通之處?
(參看第六章之四連桿機構之運動分析)
(1)若M,P兩點相距L(m) 則M以等角速度w rad/s 旋轉

使得P點有速度L*w(m/s),其方向與L為垂直方向

其向心加速度為L*(w^2) (m/s^2)

(2)M復以等速V(m/s)水平運動

P點速度為 V+L*w*sin(θ) i - L*w*cos(θ) j (m/s)

向心加速度仍為L*(w^2) (m/s^2)

(3)M點同時也有加速度a (m/s^2)時,

p點保持原速,加速度為V+L*w^2*cos(θ) i+L*w^2*sin(θ) j (m/s)

以此推理四連桿的運動,可知ORPQ形成一四連桿 如下圖
四連桿

P點繞著O點 以PO長為半徑轉動

Q點繞著R點 以QR長為半徑旋轉
速度分析
VQ=VP+VQ/P
VP=VQ+VP/Q

加速度分析
由P點觀察
AQ = AP+ tAQ/P+ rAQ/P
rAQ/P = w32 *RQ/P
其中tAQ/P 項之角加速度α3是未知,但其加速度方向與RQ/P 垂直

由D點觀察
AQ = AR+ tAQ/R+ rAQ/R
rAQ/R =w4*(w4*RQ/P)
tAQ/R項因為角加速度α4仍為未知,但其方向與RQ/R垂直
由上兩個方向可決定Q點的加速度AQ
同理若求P ,則可從O和Q觀察而得

3.設有一運動之曲柄滑塊連桿組合,設滑塊之偏置量為零,在水平方向移動
可寫出一動畫 桿長輸入20cm可得 動畫

程式如下
function sliderdrew4limt2(R,L,e)
clf;
grid on
hold on %保留住圖
a=cosd(linspace(R+L,90,100)); %連桿的x座標
b=sind(linspace(R+L,90,100)); %連桿的y座標
c=R*a; %桿上c點的位置
d=L*b; %桿上d點的位置
data=slider_solved(linspace(R+L,90,100),R,L,e,1); % 使用slider_sovled 資料以data表示

for n=1:99
hold on
axis ([-10 50 -10 60]); %座標範圍
line([50,-50],[-0,0],'color','r') %水平線以紅色表示
plot(c(n),d(n),'mo:') %粉紅色的連線
plot(data(n),e,'mo:') %將瞬心點以圓圈標示
g=[0,0] %A(和曲柄相接的原點)
k=[c(n),d(n)] %B點
j=[data(n),e] %C點(與滑塊連接的)
linkshape(g,k,2) %曲柄桿R linkshape以綠色呈現
linkshape(k,j,2) %聯結桿L
plot([0,0],[0,e-data(n)*(d(n)-e)/(c(n)-data(n))],'mo:') %從原點為固定點 瞬心點到連桿之間連線
plot([data(n),data(n)],[0,d(n)*data(n)/c(n)],'mo:') %將瞬心點以圓圈標示
plot([c(n),data(n)],[d(n),d(n)*data(n)/c(n)],'mo:') %將瞬心軌跡以圓圈標示
line([data(n)-3,data(n)+3,data(n)+3,data(n)-3,data(n)-3],[e-2,e-2,e+2,e+2,e-2]); %繪製滑塊的部分
plot([c(n),0],[d(n),e-data(n)*(d(n)-e)/(c(n)-data(n))],'mo:')
axis ([-20 50 -20 50]);
pause(0.12)
clf
end

若以曲桿長度及角度,以及連結桿之長度為輸入項 只需將for的部分作些微修改即可
圖示


六點瞬心與曲柄角間之關係
曲柄滑塊組合之瞬心
由圖可知此滑塊機構的基本瞬心有12 23 34 14 等四點

點14因為滑塊的關係 其方向應與地平線垂直 即點14存在於無窮遠的位置
與其他點配合 只要過該點作平行線於此線的線 即為所求兩點間的連線
利用瞬心點13之位置可求得桿2端的速度及桿2的迴轉速度
就桿2來看 點12和點23為其瞬心 前者固定成轉動軸 端點23速度為v
則桿2轉速w=v/r2

2007年5月20日 星期日

作業九

我有上本週5/3的機動學課程

若以第二桿驅動時,發現四種情況皆無法成立
因此無法移動

因為機構連結桿與曲桿之長度L-R=10+34-(44+5)差小於偏置量z
所以此曲桿無法進行完整的360度一圈的旋轉 僅於某一範圍活動
R=34+10=44
L=44+5=49
當以第三桿驅動時,符合第一類情形
0≦r4,且0≦r2-r4≦r3
所以帶入程式中
>> drawsldlimits([1 44 49 10],0,-1,1)

Qstart =-43.9378

Qstop =223.9378
得到第三桿所能運動的最小及最大角度,
範圍在 -43.9378 < θ < 223.9378
利用以下程式
for th=-43.9378:( Qstop- Qstart)/20: 223.9378

%(Qstop- Qstart)為總角度的變化量
pause(0.2);
drawsldlinks([1 44 49 10],0,th,-1,1) ;
axis([-110 80 -50 50]);
end;
做出動畫如下 動畫1

當以滑塊為驅動時,發現符合第二類的情形
|r2-r3|< r4

由程式drawsldlimits([1 44 49 10],0,-1,2)

Qstart =-92.4608

Qstop =92.4608

結果r1的範圍在 -92.4608到92.4608之間
根據公式
θmin=θ1 + sin-1(r4/( r2+r3))
θmax=θ1 +π- sin-1(r4/ (r2+r3))
在這範圍間第二桿角度的變化為
θmin=6.172
θmax=173.827
再利用老師提供的程式
move_sldpaths([10,44,49,10],0,0,3,0,10,0,1,0,4,100)
(r,r6,th6,nlink,th1,td2,tdd2,sigma,driver,ntimes,npts)
輸入參數:
r : 四連桿之長度,th1:第一桿的水平角度(通常為零)。
th2: 驅動桿或聯結桿的水平角度。
td2, tdd2:驅動桿之角速度及角加速度。
Sigma:連桿之組合模式選擇(需為+1或-1)
Driver:驅動桿之設定( 0表示f曲桿驅動,1聯結桿驅動,3滑塊驅動)。
Npts: 設定分割的點數或位置。
r6,rh6,nlink:桿上特定點之位置。
做出動畫如下 動畫2

2007年5月11日 星期五

作業八

B94611034 張延瑋
A:我(4/26)曾來上課。


B:
問題一:設桿2角度theta2=45度時,求各點之位置、速度與加速度為何?






虛線為加速度  


綠線為速度





第2、3節點之速度為   30/s 
第2、3節點之加速度為  300/s^2
第3、4節點之速度為   24.8387/s
第3、4節點之加速度為  1922/s^2







問題二:繪出此四連桿之相關位置及標明各點之速度方向及大小(以程式為之)。
能此函數能會製出四連桿和其加速度
function f4barline(r,theta1,theta2,td2,tdd2,mode,linkdrive)
if nargin<7,linkdrive=0;end mode="1;end" data="zeros(4,6);" linkdrive="=" r="[r(1)" rr="r.*r;d2g=" t1="theta(1);tx=" s1="sin(t1);c1=" sx="sin(tx);cx=" a="2*r(1)*r(4)*c1-2*r(2)*r(4)*cx;" c="rr(1)+rr(2)+rr(4)-rr(3)-2*r(1)*r(2)*(c1*cx+s1*sx);" b="2*r(1)*r(4)*s1-2*r(2)*r(4)*sx;" pos="B*B-C*C+A*A;">=0,
form=1;
if abs(C-A)>=1e-5
t4=2*atan((-B+mode*sqrt(pos))/(C-A));
s4=sin(t4);c4=cos(t4);
t3=atan2((r(1)*s1+r(4)*s4-r(2)*sx),(r(1)*c1+r(4)*c4-r(2)*cx));
s3=sin(t3);c3=cos(t3);
else
A=-2*r(1)*r(3)*c1+2*r(2)*r(3)*cx;
B=-2*r(1)*r(3)*s1+2*r(2)*r(3)*sx;
C=rr(1)+rr(2)+rr(3)-rr(4)-2*r(1)*r(2)*(c1*cx+s1*sx);
pos=B*B-C*C+A*A;
if pos>=0,
t3=2*atan((-B-mode*sqrt(pos))/(C-A));
s3=sin(t3); c3=cos(t3);
t4=atan2((-r(1)*s1+r(3)*s3+r(2)*sx),...
(-r(1)*c1+r(3)*c3+r(2)*cx));
s4=sin(t4);c4=cos(t4);
end
end
theta(3)=t3;theta(4)=t4;
td(2)=td2;
AM=[-r(3)*s3, r(4)*s4; -r(3)*c3, r(4)*c4];
BM=[r(2)*td(2)*sx;r(2)*td(2)*cx];
CM=AM\BM;
td(3)=CM(1);td(4)=CM(2);
tdd(2)=tdd2;
BM=[r(2)*tdd(2)*sx+r(2)*td(2)*td(2)*cx+r(3)*td(3)*td(3)*c3-...
r(4)*td(4)*td(4)*c4;r(2)*tdd(2)*cx-r(2)*td(2)*td(2)*sx-...
r(3)*td(3)*td(3)*s3+r(4)*td(4)*td(4)*s4];
CM=AM\BM;
tdd(3)=CM(1);tdd(4)=CM(2);
if linkdrive==1,
c2=c3;c3=cx;s2=s3;s3=sx;
r(2:3)=[r(3) r(2)];theta(2:3)=[theta(3) theta(2)];
td(2:3)=[td(3) td(2)];tdd(2:3)=[tdd(3) tdd(2)];
else
c2=cx;s2=sx;
end
for j=1:4,
data(j,1:4)=[r(j)*exp(i*theta(j)) theta(j)/d2g td(j) tdd(j)] ;
end % position vectors
data(1,5)=r(2)*td(2)*exp(i*theta(2));%velocity for point Q
data(2,5)=r(4)*td(4)*exp(i*theta(4));%velocity for point P
data(3,5)=r(2)*(i*tdd(2)-td(2)*td(2))*exp(i*theta(2));%acc of Q
data(4,5)=r(4)*(i*tdd(4)-td(4)*td(4))*exp(i*theta(4));%acc of P
data(1,6)=data(2,1);%position of Q, again
data(2,6)=data(1,1)+data(4,1);% position of P
rotate=abs(data(:,2));
fun=[0 r(2)*cosd(rotate(2)) r(4)*cosd(rotate(4)+r(1)) r(1) ,0;0 r(2)*sind(rotate(2)) r(4)*sind(rotate(4)+0) 0,0]'
clf
line(fun(:,1),fun(:,2),'color','r')
triangle1 = [[fun(2,1),fun(2,1)+real(data(1,5))/10]' [fun(2,2),fun(2,2)+imag(data(1,5))/10]']
line(triangle1(:,1),triangle1(:,2)','color','g')
triangle2 = [[fun(2,1),fun(2,1)+real(data(3,5))/100]' [fun(2,2),fun(2,2)+imag(data(3,5))/100]']
line(triangle2(:,1),triangle2(:,2)','color','b','linestyle',':')
triangle3 = [[fun(3,1),fun(3,1)+real(data(2,5))/10]' [fun(3,2),fun(3,2)+imag(data(2,5))/10]']
line(triangle3(:,1),triangle3(:,2)','color','g')
triangle4=[[fun(3,1),fun(3,1)+real(data(4,5))/100]',[fun(3,2),fun(3,2)+imag(data(4,5))/100]']
line(triangle4(:,1),triangle4(:,2),'color','b','linestyle',':')
else
form=0;
if linkdrive==1,
r=[r(1) r(3) r(2) r(4)];
for j=1:4, data(j,1)=r(j).*exp(i*theta(j));end % positions
end
end




問題三:當桿2迴轉時,求出此組四連桿之限制角度,並繪出其位置(以程式為之)。

使用網頁上之move_4paths函數 求得其限制角度為29度及331度















問題四:設theta2=[0:20:360],試繪出此組四連桿之重疊影像,解釋為何有些沒有值。

其為雙搖桿型連桿 任何桿都不可能產生完整的轉動 因此題目中的主動桿必存在死點且
位在第二桿為29度及331度時















問題五:若將問題三考慮在內 ,只在可迴轉的範圍內迴轉,請問你能讓此組四連桿作成動畫方式迴轉嗎?
可以
動畫1
動畫2

2007年4月26日 星期四

作業七

B94611034 張延瑋
延瑋的部落格

本人(4/19)有上課

rho=[14, 19, 9] a=14
theta=[0, 0, 0]
td=[0.2, 0.5, 0.3]
tdd=[0, 0.1, 0.2]

1.
t=1時端桿之對應方位

t=2時端桿之對應方位

t=3時端桿之對應方位

t=4時端桿之對應方位

t=5時端桿之對應方位
2.
三桿之結點之速度,加速度與時間t之關係
桿一之加速度與時間
桿一之加速度與時間
桿二之加速度與時間
桿二速度與時間
桿三速度與時間
桿三速度與時間
3.
t=[1 2 3 4 5]的動畫
應用老師網路上所提供的程式dyade draw 製作出與時間相關的函式 如下
function dyad_use(rho,theta,td,tdd,time)
for n=1:length(rho)
for m=1:length(rho)
a(m)=td(m)+tdd(m)*(n-1);
b(m)=theta(m)+td(m)*(n-1)+0.5*tdd(m)*(n-1)^2;
pause(0.1)
end
[A B]=dyad_draw(rho,b,a,tdd) ;
end
if n > 1
for k=1:length(rho)
k2=n-1
figure1(k,k2)=A(k);
figure2(k,k2)=B(k);
figure
plot(figure1(k,:))
figure
plot(figure2(k,:))
end
end

機動學作業六

B94611034 張延瑋
我有上本週(十二日)的課。

6.1.1
如圖所標之桿序 (P處之滑塊亦算一桿)
平面組合機構之可動圖

總桿數 N=12
M處為(3-1)=2結
N處為(3-1)=2結
Q處為(3-1)=2結
P處桿12與1間有一滑塊 連結度為2 有1個結
R有一個結 連結度為2
S處為(3-1)=2結
T處為槽中梢 2個結 連結度為3

總結數 J=2+1(P處)+1(R處)+2(M處)+2(N處)+2(Q處)+2(S處)+1(滑塊)+2(槽中梢)=15
M=3(N-J-1)+f
N=12 J=15

6.1.2
套入公式計算 4桿的f值為2 10桿的f值為2
f為12個旋轉結+1個滑動結+2個滑槽結
f=12*1+1*1+2*2=17
M=3(12-15-1)+17=5 df=5
故此機構的可動度應為5

6.1.3
>>df=gruebler(12,[12 1 2])
df=5

6.1.4
P處的滑塊會滑動 也將其視為一桿 也多一滑動的自由度 T槽中梢提供滑動與轉動的自由度=2
R滑槽提供滑動與轉動的自由度=2


6.2.1
如圖所示立體組合機構之可動圖

球結的自由度為3
旋轉結的自由度為1
圓柱結的自由度為2

6.2.2
M=6(N-J-1)+f=6(6-6-1)+13
 M=7 其自由度為7

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

6.2.4
公式中所計算之自由度有時與實際之運作仍有出入
因為球結的存在 有些連桿會有自轉運動 經觀察得知
連桿2 連桿6可自轉 故具有2個惰性自由度
其實際之可動度減為5 比古魯伯公式所求得結果少
惰性自由度主要為桿的自轉所引起 因為當其自轉時不會牽動到機構中其他部分的運動
同時也不會影響系統外型 另外若在可自轉的該桿上多安插一桿,則可增加自由度


6.3
在一四連桿組中
g=最長桿之長度
s=最短桿之長度
p q=中間長度桿之長度
(1)當最短桿與最長桿之和小於其他兩桿之和時,則至少有一桿可為旋轉桿。稱為葛拉索型機構
s+g <> p+q

6.3.1
第一組:桿1-桿4分別為7,4,6,5cm
7+4=6+5,屬於葛拉索第三類桿,即是中立連桿組
行四邊形機構和平行四邊形反置機構,

第二組:桿1-桿4分別為8,3.6,5.1,4.1cm
8+3.6>5.1+4.1,屬於葛拉索第二類桿,
即是非葛拉索連桿 Crank-Rocker Linkage機構

第三組:桿1-桿4分別為5.4,3.1,6.6,4.7cm
6.6+3.1<5.4+4.7,屬於葛拉索型>> ans=grashof(1,[7 4 6 5])
ans=Neutral Linkage

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


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

6.3.3
上述三組連桿 只有第二組為非葛拉索型 若要改成為葛拉索機構
把最長桿或最短桿減短,
或增加第二和第三長的連桿長度,
進而使之滿足葛拉索機構最長與最短之和小於另外兩桿之和。

2007年4月12日 星期四

機動學 作業五

5.1







5.1.1.





上臂的圖形 長度L1
arm1=[0 -L1/5;L1/5*cosd(-80) L1/5*sind(-80);L1/5*cosd(-70) L1/5*sind(-70);L1/5*cosd(-60) L1/5*sind(-60);L1/5*cosd(-50) L1/5*sind(-50);L1/5*cosd(-40) L1/5*sind(-40);L1/4*cosd(-45) L1+L1/4*sind(-45);L1/4*cosd(-30) L1+L1/4*sind(-30);L1/4*cosd(-10) L1+L1/4*sind(-10);L1/4*cosd(10) L1+L1/4*sind(10);L1/4*cosd(30) L1+L1/4*sind(30);L1/4*cosd(45) L1+L1/4*sind(45);L1/4*cosd(60) L1+L1/4*sind(60);L1/4*cosd(75) L1+L1/4*sind(75);L1/4*cosd(90) L1+L1/4*sind(90);L1/4*cosd(105) L1+L1/4*sind(105); L1/4*cosd(120) L1+L1/4*sind(120);L1/4*cosd(135) L1+L1/4*sind(135);L1/4*cosd(150) L1+L1/4*sind(150);L1/4*cosd(170) L1+L1/4*sind(170);L1/4*cosd(190) L1+L1/4*sind(190);L1/4*cosd(210) L1+L1/4*sind(210);L1/4*cosd(225) L1+L1/4*sind(225);L1/5*cosd(220) L1/5*sind(220);L1/5*cosd(230) L1/5*sind(230);L1/5*cosd(240) L1/5*sind(240) ;L1/5*cosd(250) L1/5*sind(250);L1/5*cosd(260) L1/5*sind(260);L1/5*cosd(270) L1/5*sind(270)]

下手臂的圖形 長度L2
arm2=[L2/5*cosd(80) L2/5*sind(80);L2/5*cosd(90) L2/5*sind(90);L2/5*cosd(100) L2/5*sind(100);L2/5*cosd(120) L2/5*sind(120);L2/5*cosd(140) L2/5*sind(140);L2/5*cosd(160) L2/5*sind(160);L2/5*cosd(180) L2/5*sind(180);L2/5*cosd(-160) L2/5*sind(-160);L2/5*cosd(-140) L2/5*sind(-140);L2/5*cosd(-120) L2/5*sind(-120);L2/5*cosd(-100) L2/5*sind(-100);L2/5*cosd(-90) L2/5*sind(-90);L2/5*cosd(-80) L2/5*sind(-80);L2+L2/7*cosd(-100) L2/7*sind(-100);L2+L2/7*cosd(-90) L2/7*sind(-90);L2+L2/7*cosd(-70) L2/7*sind(-70);L2+L2/7*cosd(-50) L2/7*sind(-50);L2+L2/7*cosd(-30) L2/7*sind(-30);L2+L2/7*cosd(-10) L2/7*sind(-10);L2+L2/7*cosd(10) L2/7*sind(10);L2+L2/7*cosd(30) L2/7*sind(30);L2+L2/7*cosd(50) L2/7*sind(50);L2+L2/7*cosd(70) L2/7*sind(70);L2+L2/7*cosd(90) L2/7*sind(90);L2+L2/7*cosd(100) L2/7*sind(100);L2/5*cosd(80) L2/5*sind(80)]

手掌的圖形 長度L3
palm=[L2+L3/4*cosd(-90) L3/4*sind(-90);L2+L3/4*cosd(-100) L3/4*sind(-100);L2+L3/4*cosd(-120) L3/4*sind(-120);L2+L3/4*cosd(-140) L3/4*sind(-140);L2+L3/4*cosd(-160) L3/4*sind(-160);L2+L3/4*cosd(-180) L3/4*sind(-180);L2+L3/4*cosd(-200) L3/4*sind(-220);L2+L3/4*cosd(-240) L3/4*sind(-240);L2+L3/4*cosd(-260) L3/4*sind(-260);L2+L3/4*cosd(-270) L3/4*sind(-270);L2+L3/4 L3/4;L2+L3/3+L3/3.2*cosd(30) L3/4+L3/3.2*sind(30);L2+L3/3+L3/3.2*cosd(26) L3/4+L3/3.2*sind(26);L2+L3/3+L3/8 L3/4;L2+L3/3+L3/4+L3/2*cosd(11) L3/8+L3/2*sind(11);L2+L3/3+L3/4+L3/2*cosd(9) L3/8+L3/2*sind(9);L2+L3/3+L3/4 L3/8;L2+L3/3+L3/4+L3/2*cosd(1) L3/2*sind(1);L2+L3/3+L3/4+L3/2*cosd(-1) L3/2*sind(-1);L2+L3/3+L3/4 0;L2+L3/3+L3/4+L3/2*cosd(0) -L3/8+L3/2*sind(0);L2+L3/3+L3/4+L3/2*cosd(-2) -L3/8+L3/2*sind(-2);L2+L3/3+L3/4 -L3/8;L2+L3/3+L3/4+L3/3*cosd(-2) -L3/4+L3/3*sind(-2);L2+L3/3+L3/4+L3/3*cosd(-4) -L3/4+L3/3*sind(-4);L2+L3/3+L3/4 -L3/4;L2+L3/4*cosd(-90) L3/4*sind(-90)]

line(arm1(:,1),arm1(:,2),'Color','r')
將arm1的點連起來成一圖 (紅)
line(arm2(:,1),arm2(:,2),'Color','m')
將arm2的點連起來成一圖 (粉紅)
line(palm(:,1),palm(:,2),'Color','b')
將palm的點連起來成一圖(綠)
axis equal

5.1.2.


% X1,X2,X3為輸入角度 
% L1 L2 L3分別為上手臂,下手臂及手掌的長度







function body(L1,L2,L3,X1,X2,X3) %程建立一程式函數body



theta1=-(X1-90)



theta2=-(180-X2+X1)



theta3=-(360-X3-X2+X1)



arm1=[0 -L1/5;L1/5*cosd(-80) L1/5*sind(-80);L1/5*cosd(-70) L1/5*sind(-70);L1/5*cosd(-60) L1/5*sind(-60);L1/5*cosd(-50) L1/5*sind(-50);L1/5*cosd(-40) L1/5*sind(-40);L1/4*cosd(-45) L1+L1/4*sind(-45);L1/4*cosd(-30) L1+L1/4*sind(-30);L1/4*cosd(-10) L1+L1/4*sind(-10);L1/4*cosd(10) L1+L1/4*sind(10);L1/4*cosd(30) L1+L1/4*sind(30);L1/4*cosd(45) L1+L1/4*sind(45);L1/4*cosd(60) L1+L1/4*sind(60);L1/4*cosd(75) L1+L1/4*sind(75);L1/4*cosd(90) L1+L1/4*sind(90);L1/4*cosd(105) L1+L1/4*sind(105); L1/4*cosd(120) L1+L1/4*sind(120);L1/4*cosd(135) L1+L1/4*sind(135);L1/4*cosd(150) L1+L1/4*sind(150);L1/4*cosd(170) L1+L1/4*sind(170);L1/4*cosd(190) L1+L1/4*sind(190);L1/4*cosd(210) L1+L1/4*sind(210);L1/4*cosd(225) L1+L1/4*sind(225);L1/5*cosd(220) L1/5*sind(220);L1/5*cosd(230) L1/5*sind(230);L1/5*cosd(240) L1/5*sind(240) ;L1/5*cosd(250) L1/5*sind(250);L1/5*cosd(260) L1/5*sind(260);L1/5*cosd(270) L1/5*sind(270)]



arm2=[L2/5*cosd(80) L2/5*sind(80);L2/5*cosd(90) L2/5*sind(90);L2/5*cosd(100) L2/5*sind(100);L2/5*cosd(120) L2/5*sind(120);L2/5*cosd(140) L2/5*sind(140);L2/5*cosd(160) L2/5*sind(160);L2/5*cosd(180) L2/5*sind(180);L2/5*cosd(-160) L2/5*sind(-160);L2/5*cosd(-140) L2/5*sind(-140);L2/5*cosd(-120) L2/5*sind(-120);L2/5*cosd(-100) L2/5*sind(-100);L2/5*cosd(-90) L2/5*sind(-90);L2/5*cosd(-80) L2/5*sind(-80);L2+L2/7*cosd(-100) L2/7*sind(-100);L2+L2/7*cosd(-90) L2/7*sind(-90);L2+L2/7*cosd(-70) L2/7*sind(-70);L2+L2/7*cosd(-50) L2/7*sind(-50);L2+L2/7*cosd(-30) L2/7*sind(-30);L2+L2/7*cosd(-10) L2/7*sind(-10);L2+L2/7*cosd(10) L2/7*sind(10);L2+L2/7*cosd(30) L2/7*sind(30);L2+L2/7*cosd(50) L2/7*sind(50);L2+L2/7*cosd(70) L2/7*sind(70);L2+L2/7*cosd(90) L2/7*sind(90);L2+L2/7*cosd(100) L2/7*sind(100);L2/5*cosd(80) L2/5*sind(80)]



palm=[L2+L3/4*cosd(-90) L3/4*sind(-90);L2+L3/4*cosd(-100) L3/4*sind(-100);L2+L3/4*cosd(-120) L3/4*sind(-120);L2+L3/4*cosd(-140) L3/4*sind(-140);L2+L3/4*cosd(-160) L3/4*sind(-160);L2+L3/4*cosd(-180) L3/4*sind(-180);L2+L3/4*cosd(-200) L3/4*sind(-220);L2+L3/4*cosd(-240) L3/4*sind(-240);L2+L3/4*cosd(-260) L3/4*sind(-260);L2+L3/4*cosd(-270) L3/4*sind(-270);L2+L3/4 L3/4;L2+L3/3+L3/3.2*cosd(30) L3/4+L3/3.2*sind(30);L2+L3/3+L3/3.2*cosd(26) L3/4+L3/3.2*sind(26);L2+L3/3+L3/8 L3/4;L2+L3/3+L3/4+L3/2*cosd(11) L3/8+L3/2*sind(11);L2+L3/3+L3/4+L3/2*cosd(9) L3/8+L3/2*sind(9);L2+L3/3+L3/4 L3/8;L2+L3/3+L3/4+L3/2*cosd(1) L3/2*sind(1);L2+L3/3+L3/4+L3/2*cosd(-1) L3/2*sind(-1);L2+L3/3+L3/4 0;L2+L3/3+L3/4+L3/2*cosd(0) -L3/8+L3/2*sind(0);L2+L3/3+L3/4+L3/2*cosd(-2) -L3/8+L3/2*sind(-2);L2+L3/3+L3/4 -L3/8;L2+L3/3+L3/4+L3/3*cosd(-2) -L3/4+L3/3*sind(-2);L2+L3/3+L3/4+L3/3*cosd(-4) -L3/4+L3/3*sind(-4);L2+L3/3+L3/4 -L3/4;L2+L3/4*cosd(-90) L3/4*sind(-90)]



B=[0 -L1] %此點為上手臂和下手臂的連結點 設此點當連結點便不會在關節處看到類似linshape的固定點 外型較美觀



m1=[cosd(theta1) sind(theta1);-sind(theta1) cosd(theta1)]; %為一旋轉theta1的旋轉矩陣



b=B*m1+[0 L1]%設B點轉動後為b點



Arm1=arm1(:,2)-L1



Ax1=arm1(:,1)*cosd(theta1)-Arm1(:,1)*sind(theta1)



%上手臂的旋轉



Ay1=arm1(:,1)*sind(theta1)+Arm1(:,1)*cosd(theta1)+L1patch(Ax1,Ay1,'r')



C=[L2 0]



%此點為下手臂和手掌的連結點 設此點當連結點便不會在關節處看到類似linshape的固定點



m2=[cosd(theta2) sind(theta2); -sind(theta2) cosd(theta2)];



%為一旋轉theta2的旋轉矩陣



c=C*m2 %設C點轉動後為c點



Ax2=arm2(:,1)*cosd(theta2)-arm2(:,2)*sind(theta2)+b(1)



%下手臂的旋轉



Ay2=arm2(:,1)*sind(theta2)+arm2(:,2)*cosd(theta2)+b(2)



patch(Ax2,Ay2,'m')



Palm=palm(:,1)-L2



Ax3=Palm(:,1)*cosd(theta3)-palm(:,2)*sind(theta3)+c(1)+b(1)



%手掌的旋轉



Ay3=Palm(:,1)*sind(theta3)+palm(:,2)*cosd(theta3)+c(2)+b(2)



patch(Ax3,Ay3,'g')



axis equal





5.1.3.
%theta1=90,theta2=-45,theta3=-30
%L1=30 L2=26 L3=18
輸入body(30,26,18,90,-45,-30)手臂尺寸輸入之圖

5.1.4.
模擬動畫
L1=30
L2=26
L3=18
function body2(L1,L2,L3,X1,X2,X3)
arm1=[0 -L1/5;L1/5*cosd(-80) L1/5*sind(-80);L1/5*cosd(-70) L1/5*sind(-70);L1/5*cosd(-60) L1/5*sind(-60);L1/5*cosd(-50) L1/5*sind(-50);L1/5*cosd(-40) L1/5*sind(-40);L1/4*cosd(-45) L1+L1/4*sind(-45);L1/4*cosd(-30) L1+L1/4*sind(-30);L1/4*cosd(-10) L1+L1/4*sind(-10);L1/4*cosd(10) L1+L1/4*sind(10);L1/4*cosd(30) L1+L1/4*sind(30);L1/4*cosd(45) L1+L1/4*sind(45);L1/4*cosd(60) L1+L1/4*sind(60);L1/4*cosd(75) L1+L1/4*sind(75);L1/4*cosd(90) L1+L1/4*sind(90);L1/4*cosd(105) L1+L1/4*sind(105); L1/4*cosd(120) L1+L1/4*sind(120);L1/4*cosd(135) L1+L1/4*sind(135);L1/4*cosd(150) L1+L1/4*sind(150);L1/4*cosd(170) L1+L1/4*sind(170);L1/4*cosd(190) L1+L1/4*sind(190);L1/4*cosd(210) L1+L1/4*sind(210);L1/4*cosd(225) L1+L1/4*sind(225);L1/5*cosd(220) L1/5*sind(220);L1/5*cosd(230) L1/5*sind(230);L1/5*cosd(240) L1/5*sind(240) ;L1/5*cosd(250) L1/5*sind(250);L1/5*cosd(260) L1/5*sind(260);L1/5*cosd(270) L1/5*sind(270)]

arm2=[L2/5*cosd(80) L2/5*sind(80);L2/5*cosd(90) L2/5*sind(90);L2/5*cosd(100) L2/5*sind(100);L2/5*cosd(120) L2/5*sind(120);L2/5*cosd(140) L2/5*sind(140);L2/5*cosd(160) L2/5*sind(160);L2/5*cosd(180) L2/5*sind(180);L2/5*cosd(-160) L2/5*sind(-160);L2/5*cosd(-140) L2/5*sind(-140);L2/5*cosd(-120) L2/5*sind(-120);L2/5*cosd(-100) L2/5*sind(-100);L2/5*cosd(-90) L2/5*sind(-90);L2/5*cosd(-80) L2/5*sind(-80);L2+L2/7*cosd(-100) L2/7*sind(-100);L2+L2/7*cosd(-90) L2/7*sind(-90);L2+L2/7*cosd(-70) L2/7*sind(-70);L2+L2/7*cosd(-50) L2/7*sind(-50);L2+L2/7*cosd(-30) L2/7*sind(-30);L2+L2/7*cosd(-10) L2/7*sind(-10);L2+L2/7*cosd(10) L2/7*sind(10);L2+L2/7*cosd(30) L2/7*sind(30);L2+L2/7*cosd(50) L2/7*sind(50);L2+L2/7*cosd(70) L2/7*sind(70);L2+L2/7*cosd(90) L2/7*sind(90);L2+L2/7*cosd(100) L2/7*sind(100);L2/5*cosd(80) L2/5*sind(80)]

palm=[L2+L3/4*cosd(-90) L3/4*sind(-90);L2+L3/4*cosd(-100) L3/4*sind(-100);L2+L3/4*cosd(-120) L3/4*sind(-120);L2+L3/4*cosd(-140) L3/4*sind(-140);L2+L3/4*cosd(-160) L3/4*sind(-160);L2+L3/4*cosd(-180) L3/4*sind(-180);L2+L3/4*cosd(-200) L3/4*sind(-220);L2+L3/4*cosd(-240) L3/4*sind(-240);L2+L3/4*cosd(-260) L3/4*sind(-260);L2+L3/4*cosd(-270) L3/4*sind(-270);L2+L3/4 L3/4;L2+L3/3+L3/3.2*cosd(30) L3/4+L3/3.2*sind(30);L2+L3/3+L3/3.2*cosd(26) L3/4+L3/3.2*sind(26);L2+L3/3+L3/8 L3/4;L2+L3/3+L3/4+L3/2*cosd(11) L3/8+L3/2*sind(11);L2+L3/3+L3/4+L3/2*cosd(9) L3/8+L3/2*sind(9);L2+L3/3+L3/4 L3/8;L2+L3/3+L3/4+L3/2*cosd(1) L3/2*sind(1);L2+L3/3+L3/4+L3/2*cosd(-1) L3/2*sind(-1);L2+L3/3+L3/4 0;L2+L3/3+L3/4+L3/2*cosd(0) -L3/8+L3/2*sind(0);L2+L3/3+L3/4+L3/2*cosd(-2) -L3/8+L3/2*sind(-2);L2+L3/3+L3/4 -L3/8;L2+L3/3+L3/4+L3/3*cosd(-2) -L3/4+L3/3*sind(-2);L2+L3/3+L3/4+L3/3*cosd(-4) -L3/4+L3/3*sind(-4);L2+L3/3+L3/4 -L3/4;L2+L3/4*cosd(-90) L3/4*sind(-90)]

for n=[1:10]
theta1=180-1.5*n
%上手臂旋轉-90度至-75度
theta2=-150+2.5*n
%下手臂旋轉-45度至-35度
theta3=-315-4.5*n
%手掌旋轉由-10度至-30度
B=[0 -L1]
%設此點用以當連結點(上手臂和下手臂)便不會在關節處看到類似linshape的固定點 外型較美觀
m1=[cosd(theta1) sind(theta1);-sind(theta1) cosd(theta1)];
b=B*m1+[0 L1]
Arm1=arm1(:,2)-L1
Ax1=arm1(:,1)*cosd(theta1)-Arm1(:,1)*sind(theta1)
Ay1=arm1(:,1)*sind(theta1)+Arm1(:,1)*cosd(theta1)+L1
patch(Ax1,Ay1,'r')
C=[L2 0]
%設此點用以當連結點(下手臂和手掌)便不會在關節處看到類似linshape的固定點 外型較美觀
m2=[cosd(theta2) sind(theta2); -sind(theta2) cosd(theta2)];
c=C*m2
Ax2=arm2(:,1)*cosd(theta2)-arm2(:,2)*sind(theta2)+b(1)
Ay2=arm2(:,1)*sind(theta2)+arm2(:,2)*cosd(theta2)+b(2)
patch(Ax2,Ay2,'m')
Palm=palm(:,1)-L2
Ax3=Palm(:,1)*cosd(theta3)-palm(:,2)*sind(theta3)+c(1)+b(1)
Ay3=Palm(:,1)*sind(theta3)+palm(:,2)*cosd(theta3)+c(2)+b(2)
patch(Ax3,Ay3,'g')
AXIS([-30 15 20 70])
%訂出範圍 則圖形在運轉時座標固定
pause(1.0)
end



5.2



5.2.1



手指關節在同一平面上移動時 有一運動連桿未與運動結相連可視為平面的三連桿開放型的運動鏈,有一運動連桿未與運動結相連在平面上手指上的三個結點均為自由度為1的旋轉對。手指可分三部分,將手指靠近掌的部分稱前端,接著中段,靠近指尖那段稱末端,前端從整個手掌攤平開始可向掌心部分轉動約90度(與手掌夾90度)。中段與前端夾角最大為90度,中段與末端夾角最大亦約90度。



使用古魯伯公式: m=3(N-J-1)+sum(fi)=3(4-3-1)+3=3,自由度為三。



5.2.2



function body(L1,L2,L4,X1,X2,X4) %將body function 的arm3修改後成arm4>



arm1=[0 -L1/5;L1/5*cosd(-80) L1/5*sind(-80);L1/5*cosd(-70) L1/5*sind(-70);L1/5*cosd(-60) L1/5*sind(-60);L1/5*cosd(-50) L1/5*sind(-50);L1/5*cosd(-40) L1/5*sind(-40);L1/4*cosd(-45) L1+L1/4*sind(-45);L1/4*cosd(-30) L1+L1/4*sind(-30);L1/4*cosd(-10) L1+L1/4*sind(-10);L1/4*cosd(10) L1+L1/4*sind(10);L1/4*cosd(30) L1+L1/4*sind(30);L1/4*cosd(45) L1+L1/4*sind(45);L1/4*cosd(60) L1+L1/4*sind(60);L1/4*cosd(75) L1+L1/4*sind(75);L1/4*cosd(90) L1+L1/4*sind(90);L1/4*cosd(105) L1+L1/4*sind(105); L1/4*cosd(120) L1+L1/4*sind(120);L1/4*cosd(135) L1+L1/4*sind(135);L1/4*cosd(150) L1+L1/4*sind(150);L1/4*cosd(170) L1+L1/4*sind(170);L1/4*cosd(190) L1+L1/4*sind(190);L1/4*cosd(210) L1+L1/4*sind(210);L1/4*cosd(225) L1+L1/4*sind(225);L1/5*cosd(220) L1/5*sind(220);L1/5*cosd(230) L1/5*sind(230);L1/5*cosd(240) L1/5*sind(240) ;L1/5*cosd(250) L1/5*sind(250);L1/5*cosd(260) L1/5*sind(260);L1/5*cosd(270) L1/5*sind(270)]



arm2=[L2/5*cosd(80) L2/5*sind(80);L2/5*cosd(90) L2/5*sind(90);L2/5*cosd(100) L2/5*sind(100);L2/5*cosd(120) L2/5*sind(120);L2/5*cosd(140) L2/5*sind(140);L2/5*cosd(160) L2/5*sind(160);L2/5*cosd(180) L2/5*sind(180);L2/5*cosd(-160) L2/5*sind(-160);L2/5*cosd(-140) L2/5*sind(-140);L2/5*cosd(-120) L2/5*sind(-120);L2/5*cosd(-100) L2/5*sind(-100);L2/5*cosd(-90) L2/5*sind(-90);L2/5*cosd(-80) L2/5*sind(-80);L2+L2/7*cosd(-100) L2/7*sind(-100);L2+L2/7*cosd(-90) L2/7*sind(-90);L2+L2/7*cosd(-70) L2/7*sind(-70);L2+L2/7*cosd(-50) L2/7*sind(-50);L2+L2/7*cosd(-30) L2/7*sind(-30);L2+L2/7*cosd(-10) L2/7*sind(-10);L2+L2/7*cosd(10) L2/7*sind(10);L2+L2/7*cosd(30) L2/7*sind(30);L2+L2/7*cosd(50) L2/7*sind(50);L2+L2/7*cosd(70) L2/7*sind(70);L2+L2/7*cosd(90) L2/7*sind(90);L2+L2/7*cosd(100) L2/7*sind(100);L2/5*cosd(80) L2/5*sind(80)]



arm4=[L2+L4/5*cosd(80) L4/5*sind(80);L2+L4/5*cosd(90) L4/5*sind(90);L2+L4/5*cosd(100) L4/5*sind(100);L2+L4/5*cosd(120) L4/5*sind(120);L2+L4/5*cosd(140) L4/5*sind(140);L2+L4/5*cosd(160) L4/5*sind(160);L2+L4/5*cosd(180) L4/5*sind(180);L2+L4/5*cosd(-160) L4/5*sind(-160);L2+L4/5*cosd(-140) L4/5*sind(-140);L2+L4/5*cosd(-120) L4/5*sind(-120);L2+L4/5*cosd(-100) L4/5*sind(-100);L2+L4/5*cosd(-90) L4/5*sind(-90);L2+L4/5*cosd(-80) L4/5*sind(-80);L2+L4+L4/7*cosd(-100) L4/7*sind(-100);L2+L4+L4/7*cosd(-90) L4/7*sind(-90);L2+L4+L4/7*cosd(-70) L4/7*sind(-70);L2+L4+L4/7*cosd(-50) L4/7*sind(-50);L2+L4+L4/7*cosd(-30) L4/7*sind(-30);L2+L4+L4/7*cosd(-10) L4/7*sind(-10);L2+L4+L4/7*cosd(10) L4/7*sind(10);L2+L4+L4/7*cosd(30) L4/7*sind(30);L2+L4+L4/7*cosd(50) L4/7*sind(50);L2+L4+L4/7*cosd(70) L4/7*sind(70);L2+L4+L4/7*cosd(90) L4/7*sind(90);L2+L4+L4/7*cosd(100) L4/7*sind(100);L2+L4/5*cosd(80) L4/5*sind(80)]



%L1,L2,L4分別為指頭三段靠近手掌 中段 末端指頭 的長度



%theta1,theta2,theta4 分別為各結點的角度



B=[0 -L1]



%設此點用以當連結點 便不會在關節處看到類似linshape的固定點 外型較美觀



m1=[cosd(theta1) sind(theta1);-sind(theta1) cosd(theta1)];







b=B*m1+[0 L1]Arm1=arm1(:,2)-L1



Ax1=arm1(:,1)*cosd(theta1)-Arm1(:,1)*sind(theta1)



%靠近手掌那段的旋轉



Ay1=arm1(:,1)*sind(theta1)+Arm1(:,1)*cosd(theta1)+L1



patch(Ax1,Ay1,'r')



C=[L2 0]



%設此點用以當連結點 便不會在關節處看到類似linshape的固定點 外型較美觀



m2=[cosd(theta2) sind(theta2); -sind(theta2) cosd(theta2)];



c=C*m2



Ax2=arm2(:,1)*cosd(theta2)-arm2(:,2)*sind(theta2)+b(1)



%中段的部分旋轉



Ay2=arm2(:,1)*sind(theta2)+arm2(:,2)*cosd(theta2)+b(2)patch(Ax2,Ay2,'m')



Arm4=arm4(:,1)-L2



Ax3=Arm4(:,1)*cosd(theta3)-arm4(:,2)*sind(theta3)+c(1)+b(1)



%指頭的旋轉



Ay3=Arm4(:,1)*sind(theta3)+arm4(:,2)*cosd(theta3)+c(2)+b(2)patch(Ax3,Ay3,'g')



axis equal



pause(1.0)



end



食指食指軌跡



L1=4 L2=2.5 L4=2



theta1=100-8.8*n theta2=20-9*n*2 theta3=25-9*n*3




中指中指軌跡



L1=4.5 L2=3 L4=2.5



theta1=100-9*n theta2=20-9.6*n*2 theta3=25-8.5*n*3




無名指無名指軌跡



L1=4 L2=2.7 L4=2.4



theta1=100-7.8*n theta2=20-9.5*n*2 theta3=25-9*n*3




小姆指小姆指軌跡



L1=3.5 L2=2 L4=1.5



theta1=100-9*n theta2=20-10*n*2 theta3=26-9.6*n*3




5.2.3.



設投出的球速為150km/hr由於投球動作的組成包括了跨步,扭腰,手臂,手腕等多項因素,在此僅做指頭的分析(假設只動到指頭)將食指(其餘指頭視為與食指相同)的運動情形,由右向左投擲,令球出手時的速度等於指尖速度。



指頭上各節之長度分別為[4.5 2.5 2]cm



角度(對原點逆時針為正)[90 125 130]度



由假設算出



角速度[.462 .458 .449]rad/s



角加速度 [.501 .486 .453]rad/s^2




dyad_draw之函式分析



紅色為各指節點之加速度,藍色為速度,綠色為合速度圖形如下



投球的分析圖

2007年3月30日 星期五

機動學作業四

4.1
程式碼
AXIS([-80 80 -80 80])
L=34+10
x=[L/sqrt(3)*cosd(30) 0 -L/sqrt(3)*cosd(30) L/sqrt(3)*cosd(30)]
y=[-L/sqrt(3)*sind(30) L/sqrt(3) -L/sqrt(3)*sind(30) -L/sqrt(3)*sind(30)]
TRI=line(x',y')
xlabel('X');
ylabel('Y');
grid on
for n=1:360
rotate(TRI,[0 0 1],-1,[x(3) y(3) 0])
pause(0.0034)
end;

for n=1:360
rotate(TRI,[0 0 1],-1,[x(2) y(2) 0])
pause(0.0034)
end;

for n=1:360
rotate(TRI,[0 0 1],-1,[x(1) y(1) 0])
pause(0.0034)
end;
三角形連桿
4.2
程式碼
x=[0 0]
y=[10 0]
for n=1:12
m=[cosd(30*n) sind(30*n); sind(-30*n) cosd(30*n)];
Y=y*m
linkshape([Y(1) Y(2)],[x(1) x(2)],4)
axis equal
line([Y(1) 15],[Y(2) 0],'Color','g','LineWidth',1.5)
end
連桿羽彈簧
藍色線為彈簧的變化

4.3
4.3.1
程式碼
A=[0 0]
B=[3 4]
C=[13 4]
D=[10 0]
linkshape(A,D,2)
linkshape(A,B,3)
linkshape(B,C,1.5)
linkshape(C,D,2)
四連桿

4.3.2
程式碼
A=[0 0]
B=[3 4]
C=[13 4]
D=[10 0]
linkshape(A,D,2)
for n=[1:12]
m=[cosd(30*n) sind(30*n); sind(-30*n) cosd(30*n)];
b=B*m
m1=[cosd(30*n) sind(30*n); sind(-30*n) cosd(30*n)];
c(1)=b(1)+10
c(2)=b(2)
linkshape([c(1) c(2)],D,2)
linkshape([b(1) b(2)],[c(1) c(2)],1.5)
linkshape(A,[b(1) b(2)],3)
axis equal
pause(2.0)
end
四連桿軌跡