2007年4月25日 星期三

作業七

我有上本週(十九日)的課。
蔡智鴻 B94611037
部落格
圖示
圖片皆在部落中http://kaohsiungman888.blogspot.com/
此次的作業中,會用到作業中的一些程式如下!
function [vec, dyadata] = dyad(rho,theta,td,tdd)
%
% function [vec, th, dyadata] = dyad(rho,theta,td,tdd)
% Analyzes a dyad linkage composing a crank and a dyad.
% Inputs: rho:length of links
% theta:incling angles, deg.
% td:angular velocity, rad/s
% tdd:angular acceleration, rad/s^2
% Outputs: vec:absoute length of links
% th:angles of links, velocities & acc, deg
% dyadata:original data, in complex forms
% Example:[vec,th,dyadata] = dyad([5 10],[30 50],[2 4])
theta=theta(:);
rho=rho(:);
n=length(rho);
if nargin<4, tdd="zeros(size(rho)); " nargin="=" td="ones(size(rho)); " td="ones(size(rho))*td; end " tdd="ones(size(rho))*tdd; end " td="td(:); tdd=" d2g="pi/180; " tt="exp(i*theta*d2g); " pp="rho.*tt; " vv="i*td.*pp; " aa="-pp.*td.^2+i*pp.*tdd; " dyadata="[pp" vec="[abs(sum(dyadata));angle(sum(dyadata))/d2g]; " x="[0;cumsum(real(data(:,1)))]; y=" i="1:length(x)-1" k="1:length(rho)" x0="x(k+1); y0=" vx="x0+real(data(k,2)); vy=" ax="x0+real(data(k,3)); ay=" sdata="sum(data); " ss="[real(sdata(1))" vv="[real(sdata(2))" aa="[real(sdata(3))" nargin="=" dd="1;end;" d="abs(dd); " ab="(B(1)+j*B(2))-(A(1)+j*A(2)); " d="abs(AB); th=" t="linspace(pi/2,2.5*pi,20); " cout="max(d/2,0.2)*exp(j*t'); Cin=">0,
P=[0;Cin;Cout(1:10);D+Cout(11:20);D+Cin;D+Cout(20);Cout(1)];
else
P=[Cin;0;D;D+Cin];
end
xx=real(P);yy=imag(P);
x=xx*cos(th)-yy*sin(th)+A(1);
y=xx*sin(th)+yy*cos(th)+A(2);
line(x,y)
axis equal

===================================================================
設有三桿相連結成端桿(dyad)之型式。請利用網路講義中之函數dyad及dyad_draw作分析。
function dyad_draw(rho,theta,td,tdd)其中:

各桿之對應長度rho=[a, a+5, a-5]cm,a=(你的學號末一碼)+10;
各桿之對應起始角度theta=[0, 0, 0]度;
各桿之對應角速度為td=[0.2, 0.5, 0 .3]rad/s;
各桿之對應角加速度為tdd=[0, 0.1, 0.2]rad/s^2;
問:

1.當t=[1 2 3 4 5]秒時,此端桿之對應
方位如何?======================================================================
因為要求t=[1 2 3 4 5]秒時,桿當時的角速度和角度,所以如果用手算就太慢的,因此我寫的一個for迴圈讓電腦幫我算!!為什麼要用for迴圈呢?因為我可以等一下直接用此回圈坐第三小題!

for n=1
axis equal;
AXIS([-200 200 -200 200]);
dyad_draw([17,22,12],[0.2,0.5+n*0.1,0.3+n*0.2],[0.2,0.5+n*0.1,0.3+n*0.2],[0,0.1,0.2]);
end;
然後n依序輸入1.2.3.4.5,即可得到此端桿之對應方位
各連桿的法線加速度以紅色線,連桿的合加速度以粉紅色線,連桿的合速度以綠色線表示
t=0

t=1

t=2

t=3

t=4

t=5




=====================================================================
2.繪出三桿之結點之速度,加速度與時間t
之關係。
====================================================================
加速度與時間的圖在部落格中

桿一

桿二


桿三

====================================================================
3.能作出此時間區段之動畫嗎?
====================================================================
axis equal;

AXIS([-200 200 -200 200]);
dyad_draw([17,22,12],[0,0,0],[0.2,0.5,0.3],[0,0.1,0.2]);%學號B94611037最後一碼為,所以a=10+7=17

title('b94611037 蔡智鴻')
ground(0,0,5,0)
anchor(-5,0,0,0)
pause(5)
clf%叫出fuction的原因,因為要讓我有時間準備拍影片的工具!!
for n=1:5%1到5秒
axis equal;
AXIS([-200 200 -200 200]);
%theta=td*n+0.5*tdd*n*n
%td=tdd*n
%底下的theta和td都已被我化簡過
dyad_draw([17,22,12],[0.2*n,0.5*n+0.05*n*n,0.3*n+0.1*n*n],[0.2,0.5+n*0.1,0.3+n*0.2],[0,0.1,0.2]);
title('b94611037 蔡智鴻')
ground(0,0,5,0)
anchor(-5,0,0,0)
pause(2)
clf
end;

作業六

我有上本週(十二日)的課。
蔡智鴻 B94611037
部落格
圖示
圖片皆在部落中http://kaohsiungman888.blogspot.com/
此次的作業中,會用到作業中的一些程式如下!
function [df]=gruebler(nlink,jointype)
%% [df]=gruebler(nlink,jointype)
% nlink:no. of total links
% jointype:row matrix for number of joints for each type,
% the order of elements is:
% 1 R-joint 2 slider 3 compound joint(sliding & rolling)
% 4 ball 5 cylinder 6 planar 7 cylinder rolling
% 8 cam 9 helix 10 ball & 11 point contact
% Example: df=gruebler(4,[4])
% Author:D.S.Fon Bime,NTU. Date:Jan. 30, 2007
code=[1 1 2 3 2 3 1 2 1 3 5];
n=length(jointype);
dim=3;
if n>3, dim=6;
end;
ff=0;
njoint=0;
for i=1:n,
njoint=njoint+jointype(i);
ff=ff+jointype(i)*code(i);
end;
df=dim*(nlink-njoint-1)+ff;

function ans=grashof(ground_no,linkage)
% Function to test the Grashof linkage
% Inputs:
% ground_no:the ground link number in the order
% linkage: row matrix for lengths of the 4 links
% in original assigned order.
% Example:ans=grashof(4,[4 4.2 2.6 2])
% Revised: March 4, 2006
ground=linkage(ground_no);
link=sort(linkage);% sorting the links
ig=find(linkage==link(1));
if link(1)+link(4)>link(3)+link(2),
ans='Non-Grashof Linkage';
elseif link(1)+link(4)==link(3)+link(2)
ans='Neutral Linkage';
elseif link(1)==ground,
ans='Double-Crank Linkage';
else
switch ig
case 1
im=3;
case 2
im=4;
case 3
im=1;
case 4
im=2;
end
if ground==linkage(im)
ans='Double-Rocker Linkage';
else
ans='Crank-Rocker Linkage';
end
end
然後作業問題回答如下
===================================================================
6.1某一平面組合機構如下圖,其中包括兩滑塊元件一與地固定,另一分於固定於兩桿。青色者則為滑槽。
試 標出桿號及結數,並計算共計有多少連桿及結數。
利用古魯伯公式,計算此機構之可動度,請列出其計算方法。
請利用function[df]=gruebler()函數計算其對應之可動度。
討論此機構中滑塊及滑槽對可動度之影響。
===================================================================
6.1.1
共有12桿及15個結
而12桿及15個結的詳細編號皆在我的部落格


6.1.2 古魯伯公式計算機構之可動度
M=3*(N-J-1)+F
其中
F為2個滑槽結+12個旋轉結+1個滑動結
F=12*1+1*1+2*2=17
N=12 J=15 
M=-12+17=5 
所以自由度為5
6.1.3 matlab計算其對應之可動度
輸入
gruebler(12,[12 1 2])
可以得到自由度為5
6.1.4
因為滑塊會和地面間的有滑動特性,使整個系統多出了一個滑動結。
因為滑槽因為可以上下滑動與和轉動的自由度,所以滑槽自由度為2。
===================================================================
6.2 下面為一個立體機構,分別由兩個旋轉結,一個筒結及三個球結組成。試說明:
各結之自由度如何?
利用古魯伯公式如何計算整個機構之自由度,可以動嗎?
請利用function[df]=gruebler()函數計算其對應之可動度,並相互印證。
這裡有所謂楕性自由度嗎?其對整個機構之影響如何?
===================================================================
6.2.1
如圖片所式


 a,b,c為球結,自由度為3
 d,e 為旋轉結,自由度為1
 f 為圓柱結,自由度為2
6.2.2 古魯伯公式計算機構之可動度
 F=3*3+2*1+1*2=13
 M=6(N-J-1)+F=6(6-6-1)+13
 M=7 
自由度為7
6.2.3 matlab計算其對應之可動度
 輸入
 gruebler(6,[2 0 0 3 1])
可以得到自由度為7
6.2.4
 經觀察本題是有惰性自由度的,因為圖中的4號桿與6號桿可以自轉,所以惰性自由度為2。總自由度為7-2=5
===================================================================
6.3

何謂葛拉索機構及非葛拉索機構?
假設有三組四連桿,設第一桿為固定桿,各桿長度分別如下:
第一組:桿1-桿4分別為7,4,6,5cm
第二組:桿1-桿4分別為8,3.6,5.1,4.1cm
第三組:桿1-桿4分別為5.4,3.1,6.6,4.7cm
試問各組應屬何種機構?其迴轉情況會如何?
試用grashof()函數檢驗上述三組的連桿組合。
上述三組連桿若要成為葛拉索機構,則應如何改善?
===================================================================
6.3.1 何謂葛拉索機構及非葛拉索機構?
1.葛拉索第一類型,亦稱為葛拉索型:在一四連桿組中,最短桿與最長桿之和小於其他兩桿之和時,則至少有一桿為可旋轉桿。
2.葛拉索第二類型,或稱為非葛拉索型:
最短桿與最長桿之和大於其他兩桿之和時,所有的活動連桿必為搖桿
即一四連桿當中,令四桿的桿長為g:最長桿的長度s:最短桿的長度p,q:中間長度之兩桿的長度則當s+g<p+q時,為葛拉索第一類型。s+g>p+q,為葛拉索第二類型。s+g=p+q,為葛拉索第三類型
6.3.2
第一組中,7+4=6+5,所以是屬於葛拉索第三類桿,即是中立連桿組
 
輸入
grashof(1,[7 4 6 5])
ans =Neutral Linkage

第二組中,8+3.6>5.1+4.1,屬於葛索 第二類桿 
輸入
grashof(1,[8 3.6 5.1 4.1])
ans =Non-Grashof Linkage

第三組中,6.6+3.1<5.4+4.7,屬於葛拉索第一類桿>
輸入 grashof(1,[5.4 3.1 6.6 4.7])
ans =Crank-Rocker Linkage
6.3.3  
觀察上面三個問題的答案,只有第二組四連桿為非葛拉索型,若要將第一組改成葛拉索型機構,我們可以把它的最常和最短的桿減短,然後將次長和次短的桿長度增加,以達成葛拉索機構最長與最短之和小於另外兩桿之和的要求。

2007年4月10日 星期二

作業五

B94611037 蔡智鴻
部落格http://kaohsiungman888.blogspot.com/圖片皆在部落格中
第一小題
L1=35;%這是上手臂長
L2=30;%這是手臂長
L3=8;%這是手掌長
r1=L1/6;%把手掌分段以利設座標
r2=L2/2;
r3=L3/2;
a1=[0 r1*cosd(150)+r1 r1*cosd(120)+r1 r1 r1*cosd(60)+r1 r1*cosd(30)+r1 2*r1*cosd(45)+r1 2*r1*cosd(60)+2*r1 4*r1 2*r1*cosd(60)+4*r1 2*r1*cosd(45)+4*r1 6*r1 2*r1*cosd(45)+4*r1 2*r1*cosd(60)+4*r1 4*r1 2*r1*cosd(60)+2*r1 2*r1*cosd(45)+r1 r1*cosd(30)+r1 r1*cosd(60)+r1 r1 r1*cosd(240)+r1 r1*cosd(210)+r1 0 L1];
b1=[0 r1*sind(150) r1*sind(120) r1 r1*sind(60) r1*sind(30) r1*sind(45) r1*sind(60) r1 r1*sind(60) r1*sind(45) 0 -r1*sind(45) -r1*sind(60) -r1 -r1*sind(60) -r1*sind(45) -r1*sind(30) -r1*sind(60) -r1 r1*sind(240) r1*sind(210) 0 0];
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2];
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ];
a3=[0 0 r3/2 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 0 0 2*r3];
b3=[0 r3*1.5 r3*1.5 r3 r3 r3/2 r3/2 r3/2 0 0 0 -r3/2 -r3/2 -r3/2 -r3 -r3 0 0 ];
axis equal
line(a1,b1); %把座標連接起來
line(a2,b2);
line(a3,b3);
clf
theta1=90;theta2=-45;theta3=-30;
axis equal
AXIS([-25 35 -50 30]);
x1=a1*cosd(-theta1)-b1*sind(-theta1); %以下都是旋轉和平移目的是轉動和連接各部份
y1=a1*sind(-theta1)+b1*cosd(-theta1);
line(x1,y1)
theta2=180+theta1-theta2;
x2=a2*cosd(-theta2)-b2*sind(-theta2)+x1(12);
y2=a2*sind(-theta2)+b2*cosd(-theta2)+y1(12);
line(x2,y2)theta3=180+theta2-theta3;
x3=a3*cosd(-theta3)-b3*sind(-theta3)+x2(7);
y3=a3*sind(-theta3)+b3*cosd(-theta3)+y2(7);
line(x3,y3)



第2小題
function body1(L1,L2,L3,theta1,theta2,theta3)
r1=L1/6;%把手掌分段以利設座標
r2=L2/2;
r3=L3/2;
a1=[0 r1*cosd(150)+r1 r1*cosd(120)+r1 r1 r1*cosd(60)+r1 r1*cosd(30)+r1 2*r1*cosd(45)+r1 2*r1*cosd(60)+2*r1 4*r1 2*r1*cosd(60)+4*r1 2*r1*cosd(45)+4*r1 6*r1 2*r1*cosd(45)+4*r1 2*r1*cosd(60)+4*r1 4*r1 2*r1*cosd(60)+2*r1 2*r1*cosd(45)+r1 r1*cosd(30)+r1 r1*cosd(60)+r1 r1 r1*cosd(240)+r1 r1*cosd(210)+r1 0 L1]; %這是上手臂座標
b1=[0 r1*sind(150) r1*sind(120) r1 r1*sind(60) r1*sind(30) r1*sind(45) r1*sind(60) r1 r1*sind(60) r1*sind(45) 0 -r1*sind(45) -r1*sind(60) -r1 -r1*sind(60) -r1*sind(45) -r1*sind(30) -r1*sind(60) -r1 r1*sind(240) r1*sind(210) 0 0]; %這是上手臂座標
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2];
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ];
a3=[0 0 r3/2 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 0 0 2*r3]; %這是手掌座標
b3=[0 r3*1.5 r3*1.5 r3 r3 r3/2 r3/2 r3/2 0 0 0 -r3/2 -r3/2 -r3/2 -r3 -r3 0 0 ]; %這是手掌座標
axis equal
line(a1,b1);%把座標連接起來
line(a2,b2);
line(a3,b3);
clf
axis equal
AXIS([-25 35 -50 30]);
x1=a1*cosd(-theta1)-b1*sind(-theta1); %以下都是旋轉和平移目的是轉動和連接各部份
y1=a1*sind(-theta1)+b1*cosd(-theta1);
line(x1,y1)theta2=180+theta1-theta2;
x2=a2*cosd(-theta2)-b2*sind(-theta2)+x1(12);
y2=a2*sind(-theta2)+b2*cosd(-theta2)+y1(12);
line(x2,y2)theta3=180+theta2-theta3;
x3=a3*cosd(-theta3)-b3*sind(-theta3)+x2(7);
y3=a3*sind(-theta3)+b3*cosd(-theta3)+y2(7);
line(x3,y3)

第3小題

從新開一個檔案然後把function body1(L1,L2,L3,theta1,theta2,theta3)填入所需要的值所以新檔案打上下面的式子即可body1(35,30,8,90,-45,-35)



第4小題
L1=35;%這是上手臂長
L2=30;%這是手臂長
L3=8;%這是手掌長
r1=L1/6;%把手掌分段以利設座標
r2=L2/2;
r3=L3/2;
a1=[0 r1*cosd(150)+r1 r1*cosd(120)+r1 r1 r1*cosd(60)+r1 r1*cosd(30)+r1 2*r1*cosd(45)+r1 2*r1*cosd(60)+2*r1 4*r1 2*r1*cosd(60)+4*r1 2*r1*cosd(45)+4*r1 6*r1 2*r1*cosd(45)+4*r1 2*r1*cosd(60)+4*r1 4*r1 2*r1*cosd(60)+2*r1 2*r1*cosd(45)+r1 r1*cosd(30)+r1 r1*cosd(60)+r1 r1 r1*cosd(240)+r1 r1*cosd(210)+r1 0 L1]; %這是上手臂座標
b1=[0 r1*sind(150) r1*sind(120) r1 r1*sind(60) r1*sind(30) r1*sind(45) r1*sind(60) r1 r1*sind(60) r1*sind(45) 0 -r1*sind(45) -r1*sind(60) -r1 -r1*sind(60) -r1*sind(45) -r1*sind(30) -r1*sind(60) -r1 r1*sind(240) r1*sind(210) 0 0]; %這是上手臂座標
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2]; %這是手臂座標
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ]; %這是手臂座標
a3=[0 0 r3/2 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 r3/2 2*r3 2*r3 0 0 2*r3]; %這是手掌座標
b3=[0 r3*1.5 r3*1.5 r3 r3 r3/2 r3/2 r3/2 0 0 0 -r3/2 -r3/2 -r3/2 -r3 -r3 0 0 ];%這是手掌座標
axis equal
line(a1,b1); %把座標連接起來
line(a2,b2);
line(a3,b3);
clf
theta1=linspace(-90,-75,10) %-90和-75度之間分十等分
theta2=linspace(-45,-35,10) %-45和-35度之間分十等分
theta3=linspace(-30,-10,10) %-30和-10度之間分十等分
for n=1:25;
axis equal
AXIS([-100 100 -100 100]);
x1=a1*cosd(-theta1(n))-b1*sind(-theta1(n)); %以下都是旋轉和平移目的是轉動和連接各部份
y1=a1*sind(-theta1(n))+b1*cosd(-theta1(n));
line(x1,y1)theta2(n)=180+theta1(n)-theta2(n);
x2=a2*cosd(-theta2(n))-b2*sind(-theta2(n))+x1(12);
y2=a2*sind(-theta2(n))+b2*cosd(-theta2(n))+y1(12);
line(x2,y2)theta3(n)=180+theta2(n)-theta3(n);
x3=a3*cosd(-theta3(n))-b3*sind(-theta3(n))+x2(7);
y3=a3*sind(-theta3(n))+b3*cosd(-theta3(n))+y2(7);
line(x3,y3)
pause(0.05)
clf
end;

http://www.youtube.com/watch?v=_VgMcEDvl7k
5.2.1
假設指夾部分是L1,下一截是L2,接手掌部分是L3。L1、L2和L2跟手掌之間只能旋轉90度的旋轉節,L2、L3亦有90度的限制。  套用自由度計算因為有三個節,節之自由度總和為1+1+1=3 
5.2.2

食指
function hand1(P,theta1,theta2,theta3)
Ltotal=P %這是輸入你的手掌長
L1=5/18*Ltotal;%這是連接手掌的長度
L2=3/18*Ltotal;%這是中間部分
L3=2.5/18*Ltotal;%這是指夾的長度
r1=L1/2;
r2=L2/2;
r3=L3/2;
a1=[0 r1+r1*cosd(150) r1+r1*cosd(120) r1+r1*cosd(90) r1+r1*cosd(60) r1+r1*cosd(30) r1+r1*cosd(0) r1+r1*cosd(30) r1+r1*cosd(60) r1+r1*cosd(90) r1+r1*cosd(120) r1+r1*cosd(150) 0 2*r1];%這是連接手掌的座標
b1=[0 r1/5*sind(150) r1/5*sind(120) r1/5*sind(90) r1/5*sind(60) r1/5*sind(30) r1/5*sind(0) -r1/5*sind(30) -r1/5*sind(60) -r1/5*sind(90) -r1/5*sind(120) -r1/5*sind(150) 0 0 ];
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2];%這是中間部分部份
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ];
a3=[0 r3+r3*cosd(150) r3+r3*cosd(120) r3+r3*cosd(90) r3+r3*cosd(60) r3+r3*cosd(30) r3+r3*cosd(0) r3+r3*cosd(30) r3+r3*cosd(60) r3+r3*cosd(90) r3+r3*cosd(120) r3+r3*cosd(150) 0 2*r3];%這是指夾的座標
b3=[0 r3/5*sind(150) r3/5*sind(120) r3/5*sind(90) r3/5*sind(60) r3/5*sind(30) r3/5*sind(0) -r3/5*sind(30) -r3/5*sind(60) -r3/5*sind(90) -r3/5*sind(120) -r3/5*sind(150) 0 0 ];
axis equal
AXIS([-10 10 -10 10])
line(a1,b1);
line(a2,b2);
line(a3,b3);
axis equal
x1=a1*cosd(-theta1)-b1*sind(-theta1);%這是連接各部份手指的部份
y1=a1*sind(-theta1)+b1*cosd(-theta1);
line(x1,y1)theta2=180+theta1-theta2;
x2=a2*cosd(-theta2)-b2*sind(-theta2)+x1(7);
y2=a2*sind(-theta2)+b2*cosd(-theta2)+y1(7);
line(x2,y2)theta3=180+theta2-theta3;
x3=a3*cosd(-theta3)-b3*sind(-theta3)+x2(14);
y3=a3*sind(-theta3)+b3*cosd(-theta3)+y2(14);line(x3,y3)


然後開一個新檔呼叫function
檔案如下
theta1=linspace(0,90,10);
theta2=linspace(180,90,10);
theta3=linspace(180,90,10);
for n=1:10
hand1(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end





中指
function hand2(P,theta1,theta2,theta3)
Ltotal=P %這是輸入你的手掌長
L1=5/18*Ltotal;%這是連接手掌的長度
L2=3/18*Ltotal;%這是中間部分
L3=2.5/18*Ltotal;%這是指夾的長度
r1=L1/2;
r2=L2/2;
r3=L3/2;
a1=[0 r1+r1*cosd(150) r1+r1*cosd(120) r1+r1*cosd(90) r1+r1*cosd(60) r1+r1*cosd(30) r1+r1*cosd(0) r1+r1*cosd(30) r1+r1*cosd(60) r1+r1*cosd(90) r1+r1*cosd(120) r1+r1*cosd(150) 0 2*r1];%這是連接手掌的座標
b1=[0 r1/5*sind(150) r1/5*sind(120) r1/5*sind(90) r1/5*sind(60) r1/5*sind(30) r1/5*sind(0) -r1/5*sind(30) -r1/5*sind(60) -r1/5*sind(90) -r1/5*sind(120) -r1/5*sind(150) 0 0 ];
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2];%這是中間部分部份
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ];a3=[0 r3+r3*cosd(150) r3+r3*cosd(120) r3+r3*cosd(90) r3+r3*cosd(60) r3+r3*cosd(30) r3+r3*cosd(0) r3+r3*cosd(30) r3+r3*cosd(60) r3+r3*cosd(90) r3+r3*cosd(120) r3+r3*cosd(150) 0 2*r3];%這是指夾的座標
b3=[0 r3/5*sind(150) r3/5*sind(120) r3/5*sind(90) r3/5*sind(60) r3/5*sind(30) r3/5*sind(0) -r3/5*sind(30) -r3/5*sind(60) -r3/5*sind(90) -r3/5*sind(120) -r3/5*sind(150) 0 0 ];
axis equal
AXIS([-10 10 -10 10])
line(a1,b1);
line(a2,b2);
line(a3,b3);
axis equal
x1=a1*cosd(-theta1)-b1*sind(-theta1);%這是連接各部份手指的部份
y1=a1*sind(-theta1)+b1*cosd(-theta1);
line(x1,y1)theta2=180+theta1-theta2;
x2=a2*cosd(-theta2)-b2*sind(-theta2)+x1(7);
y2=a2*sind(-theta2)+b2*cosd(-theta2)+y1(7);
line(x2,y2)theta3=180+theta2-theta3;
x3=a3*cosd(-theta3)-b3*sind(-theta3)+x2(14);
y3=a3*sind(-theta3)+b3*cosd(-theta3)+y2(14);
line(x3,y3)
然後開一個新檔呼叫function
檔案如下
theta1=linspace(0,90,10);
theta2=linspace(180,90,10);
theta3=linspace(180,90,10);
for n=1:10
hand2(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end





無名指
function hand3(P,theta1,theta2,theta3)
Ltotal=P %這是輸入你的手掌長
L1=5/18*Ltotal;%這是連接手掌的長度
L2=3/18*Ltotal;%這是中間部分
L3=2.5/18*Ltotal;%這是指夾的長度
r1=L1/2;
r2=L2/2;
r3=L3/2;
a1=[0 r1+r1*cosd(150) r1+r1*cosd(120) r1+r1*cosd(90) r1+r1*cosd(60) r1+r1*cosd(30) r1+r1*cosd(0) r1+r1*cosd(30) r1+r1*cosd(60) r1+r1*cosd(90) r1+r1*cosd(120) r1+r1*cosd(150) 0 2*r1];%這是連接手掌的座標
b1=[0 r1/5*sind(150) r1/5*sind(120) r1/5*sind(90) r1/5*sind(60) r1/5*sind(30) r1/5*sind(0) -r1/5*sind(30) -r1/5*sind(60) -r1/5*sind(90) -r1/5*sind(120) -r1/5*sind(150) 0 0 ];
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2];%這是中間部分部份
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ];
a3=[0 r3+r3*cosd(150) r3+r3*cosd(120) r3+r3*cosd(90) r3+r3*cosd(60) r3+r3*cosd(30) r3+r3*cosd(0) r3+r3*cosd(30) r3+r3*cosd(60) r3+r3*cosd(90) r3+r3*cosd(120) r3+r3*cosd(150) 0 2*r3];%這是指夾的座標
b3=[0 r3/5*sind(150) r3/5*sind(120) r3/5*sind(90) r3/5*sind(60) r3/5*sind(30) r3/5*sind(0) -r3/5*sind(30) -r3/5*sind(60) -r3/5*sind(90) -r3/5*sind(120) -r3/5*sind(150) 0 0 ];
axis equal
AXIS([-10 10 -10 10])
line(a1,b1);
line(a2,b2);
line(a3,b3);
axis equal
x1=a1*cosd(-theta1)-b1*sind(-theta1);%這是連接各部份手指的部份
y1=a1*sind(-theta1)+b1*cosd(-theta1);
line(x1,y1)
theta2=180+theta1-theta2;
x2=a2*cosd(-theta2)-b2*sind(-theta2)+x1(7);
y2=a2*sind(-theta2)+b2*cosd(-theta2)+y1(7);
line(x2,y2)
theta3=180+theta2-theta3;
x3=a3*cosd(-theta3)-b3*sind(-theta3)+x2(14);
y3=a3*sind(-theta3)+b3*cosd(-theta3)+y2(14);
line(x3,y3)(-theta3)+y2(14);
line(x3,y3)

然後開一個新檔呼叫function
檔案如下
theta1=linspace(0,90,10);
theta2=linspace(180,90,10);
theta3=linspace(180,90,10);
for n=1:10
hand1(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end



小拇指

function hand4(P,theta1,theta2,theta3)
Ltotal=P %這是輸入你的手掌長
L1=5/18*Ltotal;%這是連接手掌的長度
L2=3/18*Ltotal;%這是中間部分
L3=2.5/18*Ltotal;%這是指夾的長度
r1=L1/2;
r2=L2/2;
r3=L3/2;
a1=[0 r1+r1*cosd(150) r1+r1*cosd(120) r1+r1*cosd(90) r1+r1*cosd(60) r1+r1*cosd(30) r1+r1*cosd(0) r1+r1*cosd(30) r1+r1*cosd(60) r1+r1*cosd(90) r1+r1*cosd(120) r1+r1*cosd(150) 0 2*r1];%這是連接手掌的座標
b1=[0 r1/5*sind(150) r1/5*sind(120) r1/5*sind(90) r1/5*sind(60) r1/5*sind(30) r1/5*sind(0) -r1/5*sind(30) -r1/5*sind(60) -r1/5*sind(90) -r1/5*sind(120) -r1/5*sind(150) 0 0 ];
a2=[0 r2+r2*cosd(150) r2+r2*cosd(120) r2+r2*cosd(90) r2+r2*cosd(60) r2+r2*cosd(30) r2+r2*cosd(0) r2+r2*cosd(30) r2+r2*cosd(60) r2+r2*cosd(90) r2+r2*cosd(120) r2+r2*cosd(150) 0 2*r2];%這是中間部分部份
b2=[0 r2/5*sind(150) r2/5*sind(120) r2/5*sind(90) r2/5*sind(60) r2/5*sind(30) r2/5*sind(0) -r2/5*sind(30) -r2/5*sind(60) -r2/5*sind(90) -r2/5*sind(120) -r2/5*sind(150) 0 0 ];
a3=[0 r3+r3*cosd(150) r3+r3*cosd(120) r3+r3*cosd(90) r3+r3*cosd(60) r3+r3*cosd(30) r3+r3*cosd(0) r3+r3*cosd(30) r3+r3*cosd(60) r3+r3*cosd(90) r3+r3*cosd(120) r3+r3*cosd(150) 0 2*r3];%這是指夾的座標
b3=[0 r3/5*sind(150) r3/5*sind(120) r3/5*sind(90) r3/5*sind(60) r3/5*sind(30) r3/5*sind(0) -r3/5*sind(30) -r3/5*sind(60) -r3/5*sind(90) -r3/5*sind(120) -r3/5*sind(150) 0 0 ];
axis equal
AXIS([-10 10 -10 10])
line(a1,b1);
line(a2,b2);
line(a3,b3);
axis equal
x1=a1*cosd(-theta1)-b1*sind(-theta1);%這是連接各部份手指的部份
y1=a1*sind(-theta1)+b1*cosd(-theta1);
line(x1,y1)
theta2=180+theta1-theta2;
x2=a2*cosd(-theta2)-b2*sind(-theta2)+x1(7);
y2=a2*sind(-theta2)+b2*cosd(-theta2)+y1(7);
line(x2,y2)
theta3=180+theta2-theta3;
x3=a3*cosd(-theta3)-b3*sind(-theta3)+x2(14);
y3=a3*sind(-theta3)+b3*cosd(-theta3)+y2(14);
line(x3,y3)

然後開一個新檔呼叫function
檔案如下
theta1=linspace(0,90,10);
theta2=linspace(180,90,10);
theta3=linspace(180,90,10);
for n=1:10
hand1(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end







然後開一個新檔呼叫function
檔案如下
theta1=linspace(0,90,10);
theta2=linspace(180,90,10);
theta3=linspace(180,90,10);
for n=1:10
hand1(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end
for n=1:10
hand2(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end
for n=1:10
hand3(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end
for n=1:10
hand4(18,theta1(n),theta2(n),theta3(n))
pause(0.05)
end


5.2.3假設球投出的瞬間,手掌和接手掌指節的角速度是和角加速度是W和a
然後指節長度是R
所以切線加速度就是aR
而法線加速度就是w*w*R