2007年6月16日 星期六

第十三次作業

B94611016胡寅亮

第一題

要先決定組合數

複式齒列可用串聯多個組合之方式達到整體轉速比

而每組之轉速比以10以內為佳,超過此值時則需增加齒輪組數

將125開平方得到11點多大於十

表示光兩組齒輪的組合是不夠的

若將125開立方得5

所以用1:5的齒輪組串連三次,就可得到125的轉速比。


第二題

第四次

因為那次是真正自己寫程式有搞懂的一次

到後來的作業

雖然有懂

但是大多是用講義裡的程式加以修改

所以當然分數也不高

2007年6月15日 星期五

三國時代諸葛亮六出祁山,最後利用木牛流馬大敗魏軍。這段歷史至今仍膾炙人口。舉凡陳壽【三國志】、楊家駱【諸葛亮集】、楊家駱【南齊書-祖沖之傳】等著作,皆或多或少記載木牛流馬之發明,因此其真實性應是無庸置疑。

由於缺乏圖形的佐證,因此木牛流馬究竟為何物,至今仍有很大的爭論。其中較為可靠的說法有三:
一、 流馬即為現今所稱的獨輪車;此種主張的人數最多。高承【事物紀原】、【宋史】與【歷代名臣奏議】等,皆抱持此一論點;而近代之劉仙洲、李約瑟及陸敬嚴等人亦有相同看法。
二、 木牛流馬是步行機器;主張此論點的有【南齊書-祖沖之傳】、羅貫中【三國演義的政治與謀略觀】與李昉【太平御覽】…等,上述著作皆認為木牛流馬是失傳的古機械「奇器」。
三、 木牛是獨輪車、流馬是四輪車。

以下我在”中華古機械研究中心”這個網頁,找到有關學者研究木牛流馬,以及其研究成果的概述,他們是以八連桿步行機器馬的型式呈現的。



中國大陸新疆工學院的學者王湔,基於對中華文物的熱忱,生平致力於失傳古機械的研究。他認為四川棧道並不適合獨輪車的行走,因此木牛流馬應是「由連桿構成之步行機器」。

他根據【諸葛亮集】中的「做木牛流馬法」所述:「木牛者,方腹曲頭,一腳四足…牛仰雙轅,人行六尺,牛行四步,載一歲糧,日行二十里,而人不大勞。…」認為木牛流馬需靠人力扶持前進,且載重能力相當高,並能前進後退,為一對稱機構。王湔先生憑藉其多年的實務經驗,最後做出一能單側同步前進之單側十七桿型木牛流馬。不僅驗證其論點,也對研究失傳古機械做出極大之貢獻。





最上面的圖是支撐段,中間的是跨步段前期,最下面的是跨步段後期

但是王湔所做之木牛流馬是其憑實務經驗所完成,因此,王湔型木牛流馬不論在越野能力的表現上,或是著地時所帶給機架的衝擊力,皆有相當大的改進空間。

基於此點,林寬禮研究的主要目的便在於分析王湔型木牛流馬,並利用田口品質設計方法,修改原機構之設計尺寸,以得到一改良型之木牛流馬。

首先,以實地觀察並收集相關資料,來探討真牛在不同運動速度下的各種步態。由觀察結果得知,因運動速度的不同,真牛在運動型態上,會有步行、慢跑、以及快跑三種步態,且每一種步態的支撐段所佔全週期的時間比,會隨速度的小幅度增加而減少。王湔型木牛流馬是採單側同步前進,雖然真牛無此步態,但可印證古書記載,林寬禮也採用相同步態。

接著,針對單側十七桿型木牛流馬進行分析。此型木牛流馬為左右對稱機構,兩側曲柄成180°,因此兩側之動作型態恰好相反,符合單側前後腿同步前進之方式。單側機構扣除機架本身,後腿以十根連桿構成,前腿則以四桿構成,兩腿之間以兩根等長雙接頭連桿相連接。而在支撐段時,其運動方式符合膝關節暫時鎖定原理,即大小腿無相對運動,髖關節與蹄部的相對運動為一圓弧線。此種運動方式最為省力,能使木牛流馬所需推力降到最小。

最後,林寬禮根據田口品質設計方法,以提高跨步能力與降低足部著地速度為目標,來進行尺寸最佳設計。結果得到多組效果的改善約有兩倍之尺寸數據,兩個設計目標皆有良好的改進。此外,由結果得知,不需大幅改變桿長,就能大幅改善原機構所產生的缺點。

2007年6月7日 星期四

作業十二

B94611016 胡寅亮
1. 本人5/31有來上課

2.

一、 在老師的課程網頁中有contact_ratio程式
輸入參數:
Pd:徑節=8
n2, n3:兩齒輪之齒數=30,48
phi:壓力角=20

輸出參數:
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
也就是
接觸比=1.7005
 接觸長度=0.6275吋
  齒冠=0.1250吋
  周節=0.3927
  基周節pb=0.3690
  齒輪節圓直徑齒輪一=3.75吋
        齒輪二=6吋
 齒輪一之接近角=10.4850度
      遠退角=9.9211度
      作用角=20.4061度
  齒輪二之接近角=6.5532度
      遠退角=6.2007度
      作用角=12.7538度

二、 我們可以由定義知道,
節徑*徑節=齒數
 所以齒輪一之節徑為30/8=3.75吋
   齒輪二之節徑為48/8=6吋
 而基圓直徑=節徑*cos(th)
(其中th為壓力角)
 所以齒輪一之基圓直徑為3.75*cos(20)=3.523吋
   齒輪二之基圓直徑為 6*cos(20)=5.638吋

三、 在課本9-39中,有詳細介紹干涉的檢驗並且逐步推導
根據公式我們知道,
N2及N3要滿足
  (N2^2+2N2*N3)sin^2(壓力角) >= 4(1+N3)才不發生干涉
   依照題意N2為30,N3為48,壓力角為20 則
  (20^2+2*20*48)sin^2(20) >= 4*(1+48)
271.1 > 196
   故本組數據將不會發生干涉
可以由
function [x]=isinterf(phi,N1,N2) 來測試
程式碼如下
function [x]=isinterf(phi,N1,N2)
x=0;
sinx=sin(phi*pi/180);
if N2N1,nn=N1;N1=N2;N2=nn;end
if N1*(N1+2*N2)*sinx*sinx<4*(1+N2), x=1;end
(若輸出為1代表有干涉現象,0則否)
所以我們輸入isinterf(20,30,48)

四、 可否利用draw_gear.m繪出其接合情形,並繪出其動畫效果。
draw_gear(8,30,20,360,-2.5,0)可得到接合情形
在螢幕上輸入move2_gear(8,30,48,20,5)
即可得到下面動畫

2007年6月2日 星期六

作業十一

B94611016 胡寅亮
1.本人5/24有來上課。

2.參考上課講義第十章凸輪運動,這題我用老師的給的”function plot_dwell”
程式碼如下
function plot_dwell(ctheta,s,pattern,range)
figure(1);clf;
[y,yy,yyy]=dwell(ctheta,range,pattern)
h1=plot(ctheta,y*s,'b-',ctheta,yy*s,'k-',ctheta,yyy*s,'r-')
legend('Displacement','Velocity','Acceleration',3)
xlabel('Elapsed Angle, degrees')
grid

而各個參數所代表的意義如下:
ctheta = 需要計算之凸輪角度,單位為度數。可以使用矩陣輸入之型式。
pattern = 運動的型式,二元素之列矩陣,其代碼如下:
1:等速運動uniform
2:抛物線parabolic
3:簡諧simple harmonic
4:擺線cycloidal 
5:多項式polynomial motion
range =升程及返程之範圍,三元素列矩陣    
輸出: y:位移
yy 對於凸輪角ctheta之第一導數;
yyy 對於凸輪角ctheta之第二導數。
因此,有了這些function,我們只要在螢幕上輸入plot_dwell(0:10:360,5,[2,3],[100 200 260 360])
就能得到「衝程為5,凸輪旋轉角度在100到200之間為升程且為等加速度拋物線運動,凸輪旋轉角度在260到360之間為回程且自訂為簡諧運動」這樣的運動位置速度加速度與角度之關係圖。

3.要描繪凸輪的工作曲線,參考上課講義的function如下
function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)
而各個參數所代表的意義如下:
cth:凸輪角度,度數
r0:凸輪基圓半徑
e:偏置量
s:從動件衝程
L:從動件長度
cw:凸輪轉動方向(反時鐘為正,順時鐘為負)
pattern 運動的型式motion
range 升程及返程之範圍
因此,在螢幕上輸入
[x,y]=pincam([0:10:360],15,5,0,10,[100 200 260 360],[2 3],-1)
即可得到圖形

4.你能讓此凸輪迴轉嗎?
要讓凸輪迴轉,運用第三題的函式再加一些旋轉的程式碼得到”function pincam2”,程式碼如下:
function [x,y]=pincam2(cth,r0,s,e,L,range,pattern,cw)
figure(1);
clf;
th=cth*pi/180;
s0=sqrt(r0*r0-e*e);
for i=1:length(cth)
t=th(i)*cw;
A=[cos(t) -sin(t);sin(t) cos(t)];
[ym,yy,yyy]=dwell(cth(i),range,pattern);
x0=s0+ym*s;
Sx=[0 x0 x0+L;e e e];
X=A\Sx;
x(i)=X(1,2);y(i)=X(2,2);
end
%以下修改後加入的
for n=1:36
a=x+r0*cosd(10*n);
b=y+r0*sind(10*n);
plot([0 a],[0 b],'ro',a,b,'k-');
axis ([-50 50 -50 50]);
pause(0.01);
clf
end
在螢幕上輸入
pincam2([0:10:360],15,5,0,10,[100 200 260],[2 1],-1)即可得動畫

2007年5月27日 星期日

作業十

B94611016 胡寅亮
1.本人5/17有來上課。
2.
藉由老師介紹之瞬心畫法,我們可以得到下圖,瞬心在2、4桿的延長線上,故可得P點的速度以及加速度方向。P的速度方向垂直4桿,而加速度是在沿著4桿的方向。

如上圖所示,假設該桿得長度是L在一複數平面上,旋轉中心M為複數平面上的原點,端點P到旋轉中心M的距離是X,並且以角速度ω逆時針方向旋轉,那麼

P點是iωX*exp(iωt+iθ),加速度是-ω*ω*Xexp(iωt+iθ)。

今在M上提供一水平速度v,則P點的速度會是v+iωX*exp(iωt+iθ),加速度是-ω*ω*Xexp(iωt+iθ)。

若加上水平加速度a,則P點的速度會是v+at+iωX*exp(iωt+iθ),加速度是a-ω*ω*Xexp(iωt+iθ)。

P之速度方向是P與桿一端點連線的垂直方向,加速度方向則為P與桿一端點的連線方向。
Q之速度方向是Q與桿一端點連線的垂直方向,加速度方向則為Q與桿一端點的連線方向。
3.
瞬時中心的畫法在課本中有說明,依照課本的說明,我寫了個function slider_center,程式碼如下:


function slider_center(R,L,e)

th1=0;
if R>L

th2=asind(L/R);
else
th2=90;
end

th=linspace(th1,th2,200 )
[d,th3]=slider_solve(th,R,L,e,1)

x=R*cosd(th),
y=R*sind(th)

for n=1:200

hold on;
line([0,x(n),d(n)],[0,y(n),e]);
line([d(n)-1,d(n)+1,d(n)+1,d(n)-1,d(n)-1],[e-3,e-3,e+3,e+3,e-3]);
ground(0,0,3,0)
anchor(-3,0,0,0)

plot(0,0,'go');
plot(x(n),y(n),'go');
plot(d(n),e,'go');
plot([0,0],[0,e-d(n)*(y(n)-e)/(x(n)-d(n))],'go:');
plot([x(n),0],[y(n),e-d(n)*(y(n)-e)/(x(n)-d(n))],'go:');
plot([x(n),d(n)],[y(n),y(n)*d(n)/x(n)],'go:');
plot([d(n),d(n)],[0,y(n)*d(n)/x(n)],'go:');

axis equal;
axis ([-30 30 -50 50]);

pause(0.001);
clf;

end

若要得到動畫,只要在螢幕上輸入
slider_center(15,6,0)
就可得到下面的動畫

2007年5月16日 星期三

作業九

B94611016 胡寅亮

本人5月3日有來上課
我是五月十號下午兩點的那組

關於滑塊驅動,我的想法如下:

先求出曲桿跟滑塊的座標並連起來,再利用for迴圈製作動畫

要知道曲桿的座標,必須先知道曲桿跟水平夾角的極限值(th1、th2)
要知道滑塊的座標,必須先知道滑塊到原點的水平距離(d)以及偏置量(e)

th1、th2可由以下的function求出:
function [s,th1,th2]=slider_limit(R,L,e)
th1=asind(e./(R+L));
th2=180+asind((L-e)/R);
s=(R+L).*cosd(th1)-abs(R-L).*cosd(th2);

d可由以下的function求出:
function [d,theta3]=slider_solve(theta2,R,L,e,mode)
if nargin<5, mode=0;end
theta=theta2*d2g;
cc=(e-R.*sind(theta))./L;
if mode>=0,
theta3=asind(cc);
else
theta3=asind(-cc)+pi;
end
d=L.*cosd(theta3)+R.*cosd(theta);

因此我寫一個slider function說明曲桿的驅動方式如下,
function slider(R,L,e)

[s,th1,th2]=slider_limit(R,L,e)
th=linspace(th1,th2,300 )
[d,th3]=slider_solve(th,R,L,e,1)

x=R*cosd(th),
y=R*sind(th)
for n=1:300

line([0,x(n),d(n)],[0,y(n),e]);
line([d(n)-1,d(n)+1,d(n)+1,d(n)-1,d(n)-1],[e-3,e-3,e+3,e+3,e-3]);
ground(0,0,3,0)
anchor(-3,0,0,0)
pause(0.01);
axis ([-100 100 -100 100]);
axis equal;
clf;

end

關於滑塊驅動,我的想法如下:
建立一個function slider2
function slider2(R,L,e)

[s,th1,th2]=slider_limit(R,L,e)
th=linspace(th1,th2,300 )
[d,th3]=slider_solve(th,R,L,e,1)

x=R*cosd(th)
y=R*sind(th)
for n=1:300

line([0,x(n),d(n)],[0,y(n),e]);
line([d(n)-1,d(n)+1,d(n)+1,d(n)-1,d(n)-1],[e-3,e-3,e+3,e+3,e-3]);
ground(0,0,3,0)
anchor(-3,0,0,0)
pause(0.01);
axis ([-100 100 -100 100]);
axis equal;
clf;

end

th=linspace(th2,180-th1,300)
[d,th3]=slider_solve(th,R,L,e,-1)

x=R*cosd(th),
y=R*sind(th)
for n=1:300

line([0,x(n),d(n)],[0,y(n),e]);
line([d(n)-1,d(n)+1,d(n)+1,d(n)-1,d(n)-1],[e-3,e-3,e+3,e+3,e-3]);
ground(0,0,3,0)
anchor(-3,0,0,0)
pause(0.01);
axis ([-100 100 -100 100]);
axis equal;
clf;

end

因為滑塊驅動會滑到第二象限,所以mode輸入包括1和-1。
所以角度要從th2跑到180-th1,其他的跟前面一樣


輸入slider (26,31,10)可得曲桿驅動的情形


而輸入slider2(26,31,10)可得到滑塊驅動的情形

2007年5月9日 星期三

作業八

8-1

參考老師上課講義

並輸入f4bar([4 3 3 5],0,45,10,0,-1,0)後

得到以下資料:
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

由於結果為向量而非點

經由計算的結果,各點之位置、速度與加速度為:
[位置] / [速度] / 加速度
O:[0 0] /[0 0] /[0 0]
P:[2.1 2.1] /[4.1 -24.5] /[-187.2 -439.1]
Q:[3.2 4.9] /[21.2 21.2] /[-212.1 -212.1]
R:[4 0] /[0 0] /[0 0]

8-2

如圖,其中灰色代表速度且縮小十倍,桃紅色代表加速度且縮小一百倍

8-3

參考範例程式

輸入指令fb_angle_limits([4 3 3 5],0,0)

得到對限制角度為28.955跟360-28.955

如右圖



8-4

因為4+3,3+5且|4-3|<|3-5|為一個雙搖桿連桿,而有值的範圍是[29,331]

如右圖







8-5

2007年4月25日 星期三

作業六

6-1-1

請見部落格詳圖

6-1-2

M=3*(N-J-1)+F
N=12 J=15 
F為12個旋轉結+1個滑動結+2個滑槽結
F=12*1+1*1+2*2=17
M=-12+17=5 自由度為5


6-1-3

由function gruebler
輸入旋轉結12、滑動結1、滑槽結2
得gruebler(12,[12 1 2])
運算後得自由度為5


6-1-4

討論此機構的時候,要注意滑塊的部分,它使整個系統多出了一個滑動結,而滑槽的自由度為2,因為它可提供滑動自由度以及轉動的自由度。


6-2-1

請見部落格詳圖


6-2-2

M=6(N-J-1)+f=6(6-6-1)+13
M=7 
可算出其自由度為7
在減掉惰性自由度可得M=5
所以可以動


6-2-3

gruebler(6,[2 0 0 3 1])
可得自由度為7
在減掉惰性自由度可得M=5


6-2-4
有些連桿會有自轉運動而這些連桿會抵銷掉一個自由度。
故我們可以發現4跟6可以自轉,自由度要-2
而這些惰性自由度只會減少整個機構的自由度。


6-3-1

葛拉索定理(Grashof's theorem ) :
詳見此網址http://140.112.94.11/~dsfon/Mechanism/chap5.htm


6-3-2

一:7+4=6+5,故屬於葛拉索第三類桿,即中立連桿組

二:8+3.6>5.1+4.1,故屬於葛拉索第二類桿,即非葛拉索連桿

三:6.6+3.1<5.4+4.7,其屬於葛拉索第一類桿

6-3-3
一:由grashof(1,[7 4 6 5])
可知其為Neutral Linkage

二:grashof(1,[8 3.6 5.1 4.1])
可知其為Non-Grashof Linkage

三:grashof(1,[5.4 3.1 6.6 4.7])
我們可以知道它是Crank-Rocker Linkage


6-3-4

一跟三已經是葛拉索機構,第二組則為非葛拉索型,此為一四連桿,若要將其改成葛拉索型機構,只要將葛拉索機構中最長與最短之和小於另外兩桿之和即可變成一個葛拉索機構。

作業七

7-1

這次要用到教學網站上的anchor,ground,dyad和dyad_draw等function
原本的dyad_draw輸入的角度不會隨時間而變
所以如果能在原本的function多增加一個時間的參數
就能符合題目的要求
因此做以下的改變:
function dyad_draw_newt(rho,theta,td,tdd,t)
theta2=theta+td*t+tdd*t^2/2
td2=td+t*tdd
[vec,data] = dyad(rho,theta2,td2,tdd);
x=[0;cumsum(real(data(:,1)))];y=[0;cumsum(imag(data(:,1)))];
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],1);
axis equal;
end
接下來就可以執行了
程式碼如下:
ground(0,0,10,0)
anchor(-10,0,0,0)
for t=1:5
dyad_draw_newt([16 21 11],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
end


7-2


7-3

要讓本題以動畫呈現的話
可以用第一題的圖
我讓他呈現很多次
並且用clf清除每次產生的圖
就會有動畫的感覺了
程式碼如下:
for t=1:0.25:5
axis off
axis ([-25 50 -25 50])
ground(0,0,5,0)
anchor(-5,0,0,0)
dyad_draw_newt([16 21 11],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
pause(0.2)
if t<5
clf
end
end

2007年4月24日 星期二

作業五

5-1-1
L1=8
armx1=[2 2*cosd(30) 2*cosd(45) 2*cosd(60) 2*cosd(90) 2*cosd(120) 2*cosd(135) 2*cosd(150) -2 -2 2*cosd(210) 2*cosd(225) 2*cosd(240) 2*cosd(270) 2*cosd(300) 2*cosd(315) 2*cosd(330) 2 2]
army1=[0 2*sind(30) 2*sind(45) 2*sind(60) 2*sind(90) 2*sind(120) 2*sind(135) 2*sind(150) 0 -L1 -L1+2*sind(210) -L1+2*sind(225) -L1+2*sind(240) -L1+2*sind(270) -L1+2*sind(300) -L1+2*sind(315) -L1+2*sind(330) -L1 0]
line(armx1,army1)
axis equal

L2=6
armx2=[0 2*cosd(120) 2*cosd(135) 2*cosd(150) 2*cosd(180) 2*cosd(210) 2*cosd(225) 2*cosd(240) 0 L2 L2+2*cosd(300) L2+2*cosd(315) L2+2*cosd(330) L2+2*cosd(360) L2+2*cosd(30) L2+2*cosd(45) L2+2*cosd(60) L2 0]
army2=-L1+[2 2*sind(120) 2*sind(135) 2*sind(150) 2*sind(180) 2*sind(210) 2*sind(225) 2*sind(240) -2 -2 2*sind(300) 2*sind(315) 2*sind(330) 2*sind(360) 2*sind(30) 2*sind(45) 2*sind(60) 2 2]
line(armx2,army2)
axis equal

L3=4
palmx=L1+[0 0 L3 L3 0 0]
palmy=-L1+[0 2 2 -2 -2 0]
line(palmx,palmy)
axis equal


5-1-2
function body(L1,L2,L3,theta1,theta2,theta3)

armx1=[2 2*cosd(30) 2*cosd(45) 2*cosd(60) 2*cosd(90) 2*cosd(120) 2*cosd(135) 2*cosd(150) -2 -2 2*cosd(210) 2*cosd(225) 2*cosd(240) 2*cosd(270) 2*cosd(300) 2*cosd(315) 2*cosd(330) 2 2]
army1=[0 2*sind(30) 2*sind(45) 2*sind(60) 2*sind(90) 2*sind(120) 2*sind(135) 2*sind(150) 0 -L1 -L1+2*sind(210) -L1+2*sind(225) -L1+2*sind(240) -L1+2*sind(270) -L1+2*sind(300) -L1+2*sind(315) -L1+2*sind(330) -L1 0]
line(armx1,army1)
axis equal

armx2=[0 2*cosd(120) 2*cosd(135) 2*cosd(150) 2*cosd(180) 2*cosd(210) 2*cosd(225) 2*cosd(240) 0 L2 L2+2*cosd(300) L2+2*cosd(315) L2+2*cosd(330) L2+2*cosd(360) L2+2*cosd(30) L2+2*cosd(45) L2+2*cosd(60) L2 0]
army2=-L1+[2 2*sind(120) 2*sind(135) 2*sind(150) 2*sind(180) 2*sind(210) 2*sind(225) 2*sind(240) -2 -2 2*sind(300) 2*sind(315) 2*sind(330) 2*sind(360) 2*sind(30) 2*sind(45) 2*sind(60) 2 2]
line(armx2,army2)
axis equal

palmx=L1+[0 0 L3 L3 0 0]
palmy=-L1+[0 2 2 -2 -2 0]
line(palmx,palmy)
axis equal

clf

x1=armx1*cosd(90-theta1)-army1*sind(90-theta1);
y1=armx1*sind(90-theta1)+army1*cosd(90-theta1);
line(x1,y1)
theta2=180-(theta2-theta1);
x2=armx2*cosd(-theta2)-army2*sind(-theta2)-L1*sind(theta1-90);
y2=armx2*sind(-theta2)+army2*cosd(-theta2)-L1*cosd(theta1-90);
line(x2,y2)
theta3=theta3-theta2-180
x3=palmx*cosd(theta3)-palmy*sind(theta3) -L1*sind(theta1-90)+L2*cosd(theta2);
y3=palmx*sind(theta3)+palmy*cosd(theta3) -L1*cosd(theta1-90)-L2*sind(theta2);
line(x3,y3)


5-1-4
L1=8
L2=6
L3=4
armx1=[2 2*cosd(30) 2*cosd(45) 2*cosd(60) 2*cosd(90) 2*cosd(120) 2*cosd(135) 2*cosd(150) -2 -2 2*cosd(210) 2*cosd(225) 2*cosd(240) 2*cosd(270) 2*cosd(300) 2*cosd(315) 2*cosd(330) 2 2]
army1=-L1+[0 2*sind(30) 2*sind(45) 2*sind(60) 2*sind(90) 2*sind(120) 2*sind(135) 2*sind(150) 0 L1 L1+2*sind(210) L1+2*sind(225) L1+2*sind(240) L1+2*sind(270) L1+2*sind(300) L1+2*sind(315) L1+2*sind(330) L1 0]
line(armx1,army1)
axis equal
armx2=[0 2*cosd(120) 2*cosd(135) 2*cosd(150) 2*cosd(180) 2*cosd(210) 2*cosd(225) 2*cosd(240) 0 6 6+2*cosd(300) 6+2*cosd(315) 6+2*cosd(330) 6+2*cosd(360) 6+2*cosd(30) 6+2*cosd(45) 6+2*cosd(60) 6 0]
army2=[2 2*sind(120) 2*sind(135) 2*sind(150) 2*sind(180) 2*sind(210) 2*sind(225) 2*sind(240) -2 -2 2*sind(300) 2*sind(315) 2*sind(330) 2*sind(360) 2*sind(30) 2*sind(45) 2*sind(60) 2 2]
line(armx2,army2)
axis equal
palmx=[0 0 4 4 0 0]
palmy=[0 2 2 -2 -2 0]
line(palmx,palmy)
axis equal

L1=30
L2=25
L3=8
arm1x=[0 (-4)*sind(30) (-4)*sind(45) (-4)*sind(60) -4 -5 -5*cosd(30) -5*cosd(45) -5*cosd(60) 0 5*cosd(60) 5*cosd(45) 5*cosd(30) 5 4 4*cosd(30) 4*cosd(45) 4*cosd(60) 0]
arm1y=-L1+[ -4 -4*cosd(30) -4*cosd(45) -4*cosd(60) 0 L1 5*sind(30)+L1 5*sind(45)+L1 5*sind(60)+L1 L1+5 5*sind(60)+L1 5*sind(45)+L1 5*sind(30)+L1 L1 0 -4*sind(30) -4*sind(45) -4*sind(60) -4]
line(arm1x,arm1y);
axis equal

arm2x=[ -4 4*cosd(150) 4*cosd(135) 4*cosd(120) 0 L2 L2+3*cosd(60) L2+3*cosd(45) L2+3*cosd(30) L2+3 L2+3*cosd(30) L2+3*cosd(45) L2+3*cosd(60) L2 0 (-4)*sind(30) (-4)*sind(45) (-4)*sind(60) -4]
arm2y=[ 0 4*sind(150) 4*sind(135) 4*sind(120) 4 3 3*sind(60) 3*sind(45) 3*sind(30) 0 -3*sind(30) -3*sind(45) -3*sind(60) -3 -4 -4*cosd(30) -4*cosd(45) -4*cosd(60) 0]
line(arm2x,arm2y);
axis equal

palmx=[ -3 3*cosd(150) 3*cosd(135) 3*cosd(120) 0 L3 L3+5*cosd(60) L3+5*cosd(45) L3+5*cosd(30) L3+5 L3+5*cosd(30) L3+5*cosd(45) L3+5*cosd(60) L3 0 (-3)*sind(30) (-3)*sind(45) (-3)*sind(60) -3]
palmy=[ 0 3*sind(150) 3*sind(135) 3*sind(120) 3 5 5*sind(60) 5*sind(45) 5*sind(30) 0 -5*sind(30) -5*sind(45) -5*sind(60) -5 -3 -3*cosd(30) -3*cosd(45) -3*cosd(60) 0]
line(palmx,palmy);
axis equal


clf

theta1=linspace(-90,-75,10)
theta2=linspace(-45,-35,10)
theta3=linspace(-30,-10,10)
axis equal
for n=1:10;

AXIS([-10 40 -20 40]);
axis equal
x1=arm1x*cosd(90-theta1(n))-arm1y*sind(90-theta1(n));
y1=arm1x*sind(90-theta1(n))+arm1y*cosd(90-theta1(n));
line(x1,y1)
theta2(n)=180-(theta2(n)-theta1(n));
x2=arm2x*cosd(-theta2(n))-arm2y*sind(-theta2(n))-L1*sind(theta1(n)-90);
y2=arm2x*sind(-theta2(n))+arm2y*cosd(-theta2(n))-L1*cosd(theta1(n)-90);
line(x2,y2)
theta3(n)=theta3(n)-theta2(n)-180
x3=palmx*cosd(theta3(n))-palmy*sind(theta3(n)) -L1*sind(theta1(n)-90)+L2*cosd(theta2(n));
y3=palmx*sind(theta3(n))+palmy*cosd(theta3(n)) -L1*cosd(theta1(n)-90)-L2*sind(theta2(n));
line(x3,y3)
axis equal

pause(0.5)
clf
end


5-2-1
L1=10
L2=8
L3=7

linkshape([0,0],[-L1,0])
linkshape([-L1,0],[-L1-L2,0])
linkshape([-L1-L2,0],[-L1-L2-L3,0])
theta1=linspace(0,90,8)
theta2=linspace(0,90,8)
theta3=linspace(0,90,8)
for n=1:8
axis equal
AXIS([-5 30 -10 20]);

x1=-L1*cosd(theta1(n))
y1=L1*sind(theta1(n))
linkshape([0,0],[x1,y1])
theta2(n)=theta1(n)+theta2(n)
x2=x1-L2*cosd(theta2(n))
y2=y1+L2*sind(theta2(n))

linkshape([x1,y1],[x2,y2])

theta3(n)=theta2(n)+theta3(n)
x3=x2-L3*cosd(theta3(n))
y3=y2+L3*sind(theta3(n))
linkshape([x2,y2],[x3,y3])
axis equal
pause(0.3)
clf
end

2007年3月28日 星期三

作業三

第一題



第二題
運動節的連接因為其接觸面積大小不同,所以在作用面上會有應力的大小不同,而有所謂高對和低對之分別,應力低者即為低對以此類推。

圖中滑鼠的滾輪部分就是屬於壓力大但摩擦阻力較小的高對。
而旋轉對是屬於平面低對,應用如門閂、軸承等等,所以只會旋轉不能平移,如

而上述的部分焦點主要是在銜接的性質,如何讓運動結所連接的兩連桿能維持原本的運動狀態,可有兩種不同的型式:利用運動結的形狀,使另一連桿能維持在固定的運動範圍稱外型閉合,如火車之連桿組

另外,利用重力、彈簧等等外在之力,使兩桿維持接觸狀態稱外力閉合,如圖


第三題

作業二



第一題
由圖可見,膝蓋的構造是腿骨與腿骨間以肌腱相連,中間有潤滑液減少摩擦,肌腱與腿骨之間是以類似平面低對的R型對的方式活動。在站立時,只能做向後踢也就是平面上小於一百八十度的旋轉,因此當我們運動時不慎扭傷膝蓋,也就是在其他方向上產生旋轉,則我們的膝蓋就會受傷,嚴重者可能會導致十字韌帶斷裂。如果是脫臼,則表示我們的膝蓋有了平移的產生,也會導致嚴重的受傷。



第二題
日常生活中,我們會不斷的遇到困難,為了改善我們的生活,解決這些問題,我們必須想出新的辦法,所以創新就是來自需求,我們必須確認要解決的目標,廣泛的研究與之有關的訊息,我們所想要發明出來的東西有什麼功用,對我們的問題能怎樣解決,在這些初步的想法出現後,就是創造與概念的形成了,我們必須去分析這些問題的結構,知道什麼樣的機構能產生什麼效能,以我們所學的知識,讓這些抽象又無邊無際的創新概念,能逐步實現,即能有規劃的完成我們的目標,讓我們在創造的過程中,能知道自己在做什麼,而不是無頭蒼蠅般的浪費資源。




第三題

M=16+10;
x=[1 2 3 4 5 6 7 8 9 10];
y=x.^(1/M);
plot(x,y);
xlabel('X');
ylabel('Y');
title('B94611016-HW2-3')

2007年3月27日 星期二

作業四

題目一


L=16+10;
axis equal;
AXIS([-30 60 -30 60]);
a=[0 0 0;26*cosd(0) 26*sind(0) 0;26*cosd(60) 26*sind(60) 0;0 0 0];
b=line(a(:,1),a(:,2)); %連線;將矩陣轉換成圖形
for n=1:30 %旋轉次數
rotate(b,[0 0 1],12,[0 0 0]); %旋轉(圖形,旋轉軸,角度,旋轉中心)
pause(0.05); %每次間隔時間
end
for n=1:30
rotate(b,[0 0 1],12,[13 13*3^(1/2) 0]);
pause(0.05);
end
for n=1:30
rotate(b,[0 0 1],12,[26 0 0]);
pause(0.05);
end




題目二

linkshape([10 0],[0 0],4)
x=10;
y=0;
x1=[15];
y1=[0];
for n=1:10:360;
x2=x*cosd(n);
y2=-x*sind(n);
linkshape([x2 y2], [0 0], 4)
line([x1,x2],[y1,y2]);
end




題目三

linkshape([0 0],[10 0],2); %AD桿
linkshape([0 0],[3 4],3); %AB桿
linkshape([3 4],[13 4],1.5); %BC桿
linkshape([13 4],[10 0],2); %CD桿
for n=1:30:360
a=3*cosd(n)+4*sind(n);
b=-3*sind(n)+4*cosd(n);
c=13+(a-3);
d=b;
linkshape([a b],[0 0],2);
linkshape([c d],[a b],3);
linkshape([10 0],[c d],1.5);
linkshape([0 0],[10 0],2);
end;