tag:blogger.com,1999:blog-83474346847739120212024-03-14T04:32:30.546+08:00B94611042 TerenceTerencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-8347434684773912021.post-84275564751364258712007-06-15T04:59:00.001+08:002007-06-15T05:05:03.900+08:00機動學 作業十三作業十三 b94611042 王志豪 (Due date: 12pm June 16,2007)<br /><br /><a href="http://terencew331.blogspot.com/">我的blog</a><br /><br /><span style="font-weight: bold;">題目:</span><br /><span style="font-weight: bold;">1.試設計一組複式齒輪,使其轉速比為125(請說明思考步驟及結果)。</span><br /><br /><span style="font-weight: bold;">2.請指出本學期中你自己最感得意的一次作業(請說明其原因,且該作業必須在自己的部落格內)。</span><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >12.1</span><br />==>試設計一組複式齒輪,使其轉速比為125(請說明思考步驟及結果)。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />由題目可知,我們欲求之轉速比為125。<br />首先,從講義或是課本中,可知道轉速比之公式:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RnGsaKRS7YI/AAAAAAAAAI8/MIs07OcChUI/s1600-h/%E6%96%B9%E7%A8%8B%E5%BC%8F1.bmp.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RnGsaKRS7YI/AAAAAAAAAI8/MIs07OcChUI/s320/%E6%96%B9%E7%A8%8B%E5%BC%8F1.bmp.jpg" alt="" id="BLOGGER_PHOTO_ID_5076027820456734082" border="0" /></a><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/e233scd&.dnm=1a84scd.jpg&.src=ph">轉速比公式</a><br />註:算出來答案的正負號代表著平面第一個齒輪和最後一個齒輪轉的方向,其中,正為相同,負為相反。<br /><br />至於普通串聯齒輪的轉速比,其推導則為:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RnGsW6RS7XI/AAAAAAAAAI0/EJmAfbu_BUk/s1600-h/%E6%96%B9%E7%A8%8B%E5%BC%8F2.bmp.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RnGsW6RS7XI/AAAAAAAAAI0/EJmAfbu_BUk/s320/%E6%96%B9%E7%A8%8B%E5%BC%8F2.bmp.jpg" alt="" id="BLOGGER_PHOTO_ID_5076027764622159218" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/e233scd&.dnm=c66cscd.jpg&.src=ph">普通串聯齒輪轉速比推導</a><br /><br />然而,題目所要求的為複式齒輪,因為有共軸齒輪,故須修正!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RnGsTaRS7WI/AAAAAAAAAIs/CGoZNftq-Mk/s1600-h/%E6%96%B9%E7%A8%8B%E5%BC%8F3.bmp.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RnGsTaRS7WI/AAAAAAAAAIs/CGoZNftq-Mk/s320/%E6%96%B9%E7%A8%8B%E5%BC%8F3.bmp.jpg" alt="" id="BLOGGER_PHOTO_ID_5076027704492617058" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/e233scd&.dnm=fc7dscd.jpg&.src=ph">修正版公式推導</a><br />註:當中打「'」者為共軸齒輪之第二個齒輪。<br /><br />欲求得最終轉速比......<br />是利用主動輪和驅動輪透過中間許多組齒列......<br />將各組減速比相乘而得。<br /><br />按題目要求,轉速比要為1:125(若為放大)。<br />由於任兩齒輪間之轉速比以不超過10為原則,考慮:<br /><br />125^(1/2)=11.18<br />125^(1/3)=5<br /><br />由於125開平方後得到約11.18......<br />意即需兩組轉速比為11.18齒列作組合,不和我們的要求。<br />故此設計不適合僅用兩組齒列。<br />而將125開三次方後則是得到5這個答案,比10小。<br />符合要求下,因此我們可以設計三組轉速比為5的齒列來組合。<br /><br />也就是使用組合串聯三組!<br />可使用1:5的齒輪組串連三次,就可得到125的轉速比。<br /><br />整個組合的齒數順序為12:60;12:60;12:60<br />轉速比為(60/12)*(60/12)*(60/12)= 125<br />誤差值為0 %<br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >12.2</span><br />==>請指出本學期中你自己最感得意的一次作業(請說明其原因,且該作業必須在自己的部落格內)。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />這個嘛......其實這些作業裡面,我並不會有哪一次特別得意耶。說句實在話,每一次的作業,學到的東西都很多,我個人其實不是那種非常厲害可以瞬間就舉一反三的那種人物,每一次的作業我時常都問題一大堆,得叼擾同學們,不斷請教對方,這才逐漸能一步步地將作業打造成型,完成每一週的任務。在此我非常感謝那些曾經幫我解惑過的同學們。在一次次的作業中成長,真的學到了不少東西。<br /><br />當然,如果真的真的要嚴格講起來最得意的作品,應該是作業八之後的作品吧。在此之前,不少地方一直抓不住要領,以作業八為分隔線,終於比較能切中要點,在各方面的資料彙整以及程式方面也完善很多。唯一比較缺憾的是,作業十個人費了不少心思做了許多的動畫,然而由於第一版的解釋不夠完善,以致於造成教授在批覽時的困惑,在此感到十分抱歉。其他的,我個人都還蠻滿意的啦,雖然花了很多時間,但我有一些外系的朋友看過後都覺得蠻不錯的,覺得很神奇(雖然他們說看不懂程式.....),辛苦的成績被肯定,還是挺高興的。<br /><br />大致就是這樣吧,機動學在此告一段落,他會是我大學生涯中一段值得回首的記憶。Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-45978583469436071402007-06-08T00:20:00.000+08:002007-06-08T03:10:39.022+08:00機動學 作業十二作業十二 b94611042 王志豪 (Due date: 12pm June 6,2007)<br />我5/31日曾全程來上課<br /><br /><a href="http://terencew331.blogspot.com/">我的blog</a><br /><br /><span style="font-weight: bold;">題目:</span><br /><span style="font-weight: bold;">1. 請聲明5/31日曾全程來上課。</span><br /><span style="font-weight: bold;">2. 一組標準全齒輪齒輪之徑節為8(亦可使用自設值),齒數分別為30T與48T,其工作壓力角為20度(可為14.5或25度,自選)。</span><br /><br /><span style="font-weight: bold;">* 試求其接觸線長度,與接觸比。</span><br /><span style="font-weight: bold;">* 兩齒輪之節圓、基圓直徑各為如何?請列式計算其結果。</span><br /><span style="font-weight: bold;">* 此組齒輪是否會產生干涉現象?試列式證明之。</span><br /><span style="font-weight: bold;">* 可否利用draw_gear.m繪出其接合情形,並繪出其動畫效果。</span><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >12.1</span><br />我5/31日曾全程來上課<br /><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >12.2</span><br />==>一組標準全齒輪齒輪之徑節為8(亦可使用自設值),齒數分別為30T與48T,其工作壓力角為20度(可為14.5或25度,自選)。<br /><br />* 試求其接觸線長度,與接觸比。<br />* 兩齒輪之節圓、基圓直徑各為如何?請列式計算其結果。<br />* 此組齒輪是否會產生干涉現象?試列式證明之。<br />* 可否利用draw_gear.m繪出其接合情形,並繪出其動畫效果。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:<br /></span><br /><span style="color: rgb(51, 51, 255);font-size:130%;" >1.</span><br />假設齒輪徑節為8,齒數為30T跟48T,工作壓力角為20度.<br />此時,我們可以利用教學網站上的一個function來解決這個問題.<br />也就是function [c_ratio, c_length, ad, pc, pb, d2, d3, ag] = contact_ratio(pd, n2,n3, phi)<br /><br />其中輸入的參數分別如下:<br />Pd:徑節<br />n2, n3:兩齒輪之齒數<br />phi:壓力角<br /><br />輸出參數:<br />cr_ratio:接觸比<br />cr_length:接觸長度<br />ad:齒冠<br />pc, pb:周節及基周節<br />d2, d3:兩齒輪節圓直徑。<br />ag:兩齒輪之接近角、遠退角及作用角<br /><br />************************************<br />function [c_ratio,c_length,ad,pc,pb,d2,d3,ag]=contact_ratio(pd,n2,n3, phi)<br />%<br />%Find the contact ratios<br />% Inputs:<br />% Pd: Diametrial pitch;<br />% n2,n4:number of both gears;<br />% phi: pressure angle, degrees<br />% Outputs:<br />% c_ratio, c_length: contact ratio and length<br />% ad:addendium<br />% pc,pb: circular and basic circular pitches<br />% r2, r3: radii of pitch circles<br />% ag: angles of action, in matrix of<br />% [alpha2 beta2 theta2 alpha3 beta3 theta3]<br />% Example: [c_r,c_l,ad,pc,pb,d2,d3,ag]<br />% =contact_ratio(6,24,48,20)<br />% Revised: March 9, 2006<br />d2g=pi/180;<br />pangle=phi*d2g;<br />cosx=cos(pangle);sinx=sin(pangle);<br />ad=1./pd;pc=pi./pd;<br />pb=pc.*cosx;<br />r2=n2./(2*pd);r3=n3./(2*pd);d2=2*r2;d3=2*r3;<br />rb2=r2.*cosx;rb3=r3.*cosx;<br />ax=sqrt((r3+ad).^2-(r3.*cosx).^2)-r3.*sinx;<br />xb=sqrt((r2+ad).^2-(r2.*cosx).^2)-r2.*sinx;<br />c_length=ax+xb;<br />c_ratio=c_length./pb;<br />ag1=[ax./rb2 xb./rb2 c_length./rb2]/d2g;<br />ag2=[ax./rb3 xb./rb3 c_length./rb3]/d2g;<br />ag=[ag1;ag2];<br />**************************************<br /><br />主程式<br />==><br />function [c_ratio, c_length, ad, pc, pb, d2, d3, ag] =contact_ratio(8,30,48,20)<br /><br />結果如下:<br /><br />接觸比 =1.7005<br />接觸長度 =0.6275<br />齒冠 =0.1250<br />周節=0.3927<br />基周節=0.3690<br />齒輪一節圓直徑=3.7500<br />齒輪二節圓直徑=6<br />兩齒輪的接近角、遠退角及作用角<br />==>(1)10.4850 9.9211 20.4061<br /> (2)6.5532 6.2007 12.7538<br /><br />因此<br />==><br />*接觸比:c_ratio = <span style="color: rgb(204, 102, 0);">1.7005</span><br />*接觸長度:c_length =<span style="color: rgb(204, 102, 0);">0.6275</span><br /><br />所謂接觸比,即同時有幾對齒相互嚙合,數值越大力量分散較平均,因此最好大於1,這樣比較可以避免有未嚙合的狀況,因此,這個狀況是符合的.<br /><br />若欲手動計算,可用課本上的公式<br />==><br /><span style="color: rgb(204, 102, 0);">接觸比 mc = 接觸路徑長度/基周節<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RmgwlqRS7TI/AAAAAAAAAIU/nFsWEaluE5k/s1600-h/%E6%8E%A5%E8%A7%B8%E6%AF%94%E5%85%AC%E5%BC%8F.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RmgwlqRS7TI/AAAAAAAAAIU/nFsWEaluE5k/s320/%E6%8E%A5%E8%A7%B8%E6%AF%94%E5%85%AC%E5%BC%8F.jpg" alt="" id="BLOGGER_PHOTO_ID_5073358403792989490" border="0" /></a><br /><br /><br /><span style="color: rgb(51, 51, 255);font-size:130%;" >2.</span><br />節圓<br />==><br />由公式: Pd=N/D (徑節=齒數/節圓直徑)<br /><br />30T的齒輪節圓直徑: 8=30/D D=<span style="color: rgb(204, 102, 0);">3.75</span> (cm)<br />48T的齒輪節圓直徑: 8=48/D D=<span style="color: rgb(204, 102, 0);">6</span> (cm)<br /><br />和第一小題用程式執行的結果一樣.<br /><br />基圓<br />==><br />利用課本的公式,將節圓直徑乘上工作壓力角的餘弦值即是答案:<br /><br />30T的齒輪基圓直徑: 3.75*cos(20)=<span style="color: rgb(204, 102, 0);">3.524</span> (cm)<br />48T的齒輪基圓直徑: 6*cos(20)=<span style="color: rgb(204, 102, 0);">5.638</span> (cm)<br /><br /><br /><span style="font-size:130%;"><span style="color: rgb(51, 51, 255);">3.</span></span><br />關於這個,可以分為接近角以及退遠角兩方面來討論.<br /><br />接近角<br />==><br />必須滿足MP>=AP<br />條件可以變成(N2^2+2*N2*N3)sin(壓力角)^2>=4+4*N3<br />是以N2=30,N3=48,壓力角=20度,代入.<br />(900+2880)*sin(20)^2=442.176 > 4+4*N3=196<br />結論,不會干涉.<br /><br />退遠角<br />==><br />必須滿足NP>=BP<br />條件可以變成(N3^2+2*N3*N2)sin(壓力角)^2>=4+4*N2<br />(2304+2880)sin(20)^2=606.41 > 4+4*N2=124<br />結論,不會干涉.<br /><br /><span style="color: rgb(204, 102, 0);">所以總結,不會產生干涉現象!</span><br /><br />以下即為齒輪干涉的概念圖==><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RmgwqKRS7UI/AAAAAAAAAIc/NCjlkgYMxVk/s1600-h/%E9%BD%92%E8%BC%AA%E5%B9%B2%E6%B6%89%E6%A6%82%E5%BF%B5%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RmgwqKRS7UI/AAAAAAAAAIc/NCjlkgYMxVk/s320/%E9%BD%92%E8%BC%AA%E5%B9%B2%E6%B6%89%E6%A6%82%E5%BF%B5%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5073358481102400834" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />另外,假如不想要每次那麼麻煩計算.<br />網路講義中有提供了一個程式可供使用判斷呦.<br />這個程式就是function [x]=isinterf(phi,N1,N2)<br /><br />***********************************************<br />function [x]=isinterf(phi,N1,N2)<br />%<br />% Test if the gear set exists an interference<br />% phi:pressure angle, in degrees<br />% N1,N2:teeth of both gears<br />% x=0:no interference; x=1 interence exists<br />x=0;<br />sinx=sin(phi*pi/180);<br />if N2<N1,nn=N1;N1=N2;N2=nn;end<br />if N1*(N1+2*N2)*sinx*sinx<4*(1+N2), x=1;end<br /><n1,nn=n1;n1=n2;n2=nn;end if="" sinx="">************************************************<br />phi為壓力角<br />N1為齒輪一齒數<br />N2為齒輪二齒數<br />x=1表示產生干涉<br />x=0表示不產生干涉 <br /><br />主程式<br />==><br />function [x]=isinterf(20,30,48)<br /><br />ans=0<br />所以是不產生干涉,與計算結果符合的!<br /><br /><br /><span style="color: rgb(51, 51, 255);font-size:130%;" >4.</span><br />function [coords]=draw_gear(Dp,N,phi,range,x0,y0)<br /><br />關於這個函式,它的基本參數定義如下:<br />Dp: 節矩<br />N: 齒數<br />phi: 壓力角<br />range: 繪出之部份<br />x0,y0: 齒輪中心座標<br /><br />*************************************************<br />function [coords]=draw_gear(Dp,N,phi,range,x0,y0)<br />% [coords]=draw_gear(Dp,N,phi,range,x0,y0)<br />% To draw a whole gear<br />% Inputs:<br />% Dp: Diametrical pitch<br />% N: no of teeth in a gear<br />% phi: pressure angle, degrees<br />% range: the section range to be drawn<br />% x0,y0: the location of the gear center<br />% Example [coords]=draw_gear(10,15,20,360,0,0)<br />[coord,theta,rp,rb]=tooth(Dp,N,phi);<br />coords=[];i=0;<br />while i <range<br /> coord1=rotate2D(coord,-i,x0,y0);<br /> coords=[coords;coord1];<br /> i=i+theta;<br />end<br />plot(coords(:,1),coords(:,2));hold on;<br />[coord]=bushing(rp/8,x0,y0);<br />plot(coord(:,1),coord(:,2),'b-');<br />[coord]=bushing(-rp,x0,y0);<br />plot(coord(:,1),coord(:,2),'r:');<br />[coord]=bushing(-rb,x0,y0);<br />plot(coord(:,1),coord(:,2),'b:');<br />axis equal;<br />*************************************************<br /><br />[coords]=draw_gear(8,48,20,360,9.75/2,0,12.7538)<br /><br />圖形如下==><br /><br /><range coord1="rotate2D(coord,-i,x0,y0);" coords="[coords;coord1];" i="i+theta;" end="" hold="" axis=""><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RmgwuqRS7VI/AAAAAAAAAIk/jBSkLtl1jxw/s1600-h/%E9%BD%92%E8%BC%AA%E6%8E%A5%E5%90%88%E7%8B%80%E6%B3%81.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RmgwuqRS7VI/AAAAAAAAAIk/jBSkLtl1jxw/s320/%E9%BD%92%E8%BC%AA%E6%8E%A5%E5%90%88%E7%8B%80%E6%B3%81.jpg" alt="" id="BLOGGER_PHOTO_ID_5073358558411812178" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />由於我們的目標是期望它能繪出動畫效果.<br />而這個程式本身只是會製齒輪外型使其成為一齒輪組.<br />因此,勢必要加入變數theta,使其擁有轉動的動畫效果.<br />方式是將程式裡頭的while迴圈中......<br />把coord1=rotate2D(coord,-i,x0,y0)中的-i改成-i+theta2.<br />一開始可供輸入的變數則變為如下:<br /><br />function [coords]=draw_gear(Dp,N,phi,range,x0,y0,theta2)<br /><br />改造程式完成後,便可開始進行動畫繪製工作.<br />在此,利用第一小題程式求得的作用角~~<br />以及第二小題求得的節圓直徑.<br />將這兩變數代入程式後,多個for迴圈.<br />如此一來,便大功告成!<br /><br />主程式<br />==><br />for theta=0:0.5:24<br />clf<br />[coords]=draw_gear(8,30,20,360,0,0,20.4061+theta)<br />[coords]=draw_gear(8,48,20,360,9.75/2,0, 12.7538-theta*.625)<br />pause(0.2)<br />end<br />axis equal<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/Xk0HrFGgb9U"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/Xk0HrFGgb9U" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><br /><br />後來在看講義的時候,發現有個好用的function<br />叫做move2_gear(Dpitch,nn1,nn2,phi,omega1)<br />做出來的效果很好......<br />因此,在此弄上這個漂亮許多的版本哩~~<br />(p.s.1上面那個自製似乎轉動速度慢了點...=.=)<br />(p.s.2 ctrl+C 是好物......good!)<br /><br />***************************************************<br />function move2_gear(Dpitch,nn1,nn2,phi,omega1)<br />% move2_gear(Dpitch,nn1,nn2,phi,omega1)<br />% To draw a whole gear<br />% Inputs:<br />% Inputs:<br />% Dpitch:dimetral pitch<br />% nn1,nn2: no. of teeth for both gears<br />% phi:pressure angle, degrees<br />% omega1: angular velocity of gear 1<br />% Example move2_gear(10,15,20,20,10)<br />clf;<br />d2r=pi/180;delt=0.01;<br />[coord1,r1,rb1]=one_tooth(Dpitch,nn1,phi,360,0,0);<br />[coord2,r2,rb2]=one_tooth(Dpitch,nn2,phi,360,0,0);<br />st=180/nn2;if nn1+nn2>2*fix((nn1+nn2)/2),st=0;end<br />coord2=rotate2D(coord2,180+st,0,0);<br />xc1=coord1(:,1);yc1=coord1(:,2);<br />xc2=coord2(:,1);yc2=coord2(:,2);<br />height=max(r1,r2)*1.2;<br />ar=min(abs(r1),abs(r2));<br />coord=bushing(ar/5,0,0); % Get the coordinates of 1st bushing<br />xb1=coord(:,1)-r1;yb1=coord(:,2);<br />xb2=coord(:,1)+r2;yb2=coord(:,2);<br />coord=bushing(-r1,-r1,0);%Get the 1st pitch circle<br />xp1=coord(:,1);yp1=coord(:,2);<br />coord=bushing(-r2,r2,0);% Get the 2nd pitch circle<br />xp2=coord(:,1);yp2=coord(:,2);<br />plot(xb1,yb1,'r-');hold on;<br />plot(xb2,yb2,'k-');<br />plot(xp1,yp1,'r:');<br />plot(xp2,yp2,'k:');<br />plot([-r1,r2]',[0,0]','r:');<br />xx1=min([r1,r2])/2;phir=(90-phi)*d2r;<br />plot([0,0]',[-xx1*2,xx1*2]','b:');<br />plot([-xx1 xx1]',[-xx1*tan(phir), xx1*tan(phir)]','b:');<br /><br />cir1=line('xdata',[],'ydata',[],'erasemode','xor','linewidth',1,'color','r');<br />cir2=line('xdata',[],'ydata',[],'erasemode','xor','linewidth',1,'color','k');<br />line1=line('xdata',[],'ydata',[],'erasemode','xor','linewidth',2,'color','r');<br />line2=line('xdata',[],'ydata',[],'erasemode','xor','linewidth',2,'color','k');<br />lx1=[0 -r1]';ly1=[0,0]';<br />lx2=[r2,0]';ly2=[0,0]';<br />axis([-2.5*r1 2.5*r2 -height height]);<br />axis equal;<br />title('Press Ctl-C to stop');<br />theta1=180;theta2=180;s1=omega1*delt/d2r;<br />while 1,<br /> z1=rotate2D([xc1,yc1],theta1,-r1,0);<br /> z2=rotate2D([xc2,yc2],theta2,r2,0);<br /> L1=rotate2D([lx1,ly1],theta1,-r1,0);<br /> L2=rotate2D([lx2,ly2],theta2,r2,0);<br /> set(cir1,'xdata',z1(:,1),'ydata',z1(:,2)); % For 1st circle moving<br /> set(cir2,'xdata',z2(:,1),'ydata',z2(:,2)); % For 2nd circle moving<br /> set(line1,'xdata',L1(:,1),'ydata',L1(:,2)); % For 1st line<br /> set(line2,'xdata',L2(:,1),'ydata',L2(:,2)); % For 2nd line<br /> drawnow;<br /> pause(1/s1); %Stop for a while so we can see the graph<br /> theta1=theta1+s1;<br /> theta2=theta2-s1*r1/r2;<br /> if theta1>360, theta1=theta1-360;end; %Reverse the direction at bondary line<br /> if theta2>360,theta2=theta2-360;end;<br />end<br />******************************************<br />Dpitch:節矩<br />nn1,nn2:兩齒輪之齒數<br />phi:壓力角,degrees<br />omega1: 齒輪1之角速度,rad/s<br /><br /><br />主程式<br />==><br />move2_gear(8,30,48,20,10)<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/jkrm50MWS1g"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/jkrm50MWS1g" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><br /></range></n1,nn=n1;n1=n2;n2=nn;end>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-12523737282247810392007-06-02T02:17:00.000+08:002007-06-02T02:33:09.496+08:00機動學 作業十一作業十一 b94611042 王志豪 (Due date: 12pm May 30, 2007)<br />我有上本週5/24的課<br /><br /><a href="http://terencew331.blogspot.com/">我的blog</a><br /><br /><span style="font-weight: bold;">題目:</span><br /><span style="font-weight: bold;">1. 請聲明本週(5/24)有來上課。</span><br /><br /><span style="font-weight: bold;">2. 某凸輪開始時先在0-100∘區間滯留,然後提升後在200至260∘區間滯留,其高度(衝程)為5公分,其餘l由260∘至360∘則為返程。升程採用等加速度運動,返程之運動型式自定。設刻度區間為10∘,試繪出其高度、速度及加速度與凸輪迴轉角度間之關係。</span><br /><br /><span style="font-weight: bold;">3. 設凸輪之半徑為15公分,以順時針方向旋轉,其從動件為梢型,垂直接觸,長為10公分,從動件之運動係依照第二項之運動型式。試繪出此凸輪之工作曲線。</span><br /><br /><span style="font-weight: bold;">4. 你能讓此凸輪迴轉嗎?</span><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >11.1</span><br />我有上本週5/24的課<br /><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >11.2</span><br />==>某凸輪開始時先在0-100∘區間滯留,然後提升後在200至260∘區間滯留,其高度(衝程)為5公分,其餘l由260∘至360∘則為返程。升程採用等加速度運動,返程之運動型式自定。設刻度區間為10∘,試繪出其高度、速度及加速度與凸輪迴轉角度間之關係。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />關於這題,基本上,我們可以有兩種作法.<br /><br />分別是可以利用講義中的function [y, yy, yyy]=parabol_cam(phi, phi_in, beta_range, direct, travel,rpm),或者,使用另外一個程式function plot_dwell(ctheta,s,pattern,range),這兩個程式同樣都可以解決這個問題.<br /><br />關於parabol_cam的程式碼,我就不多詳述了.(貼上blog的時候,似乎系統對裡面一些字有意見,認為語法有問題,所以就不再貼上,詳細可見於講義中.),由於都是做差不多的事情,為了避免在分析時造成混淆,個人決定不採用parabol_cam,而是使用更加方便的plot_dwell來幫忙解決這個問題.<br /><br />*******************************************************************************<br />function plot_dwell(ctheta,s,pattern,range)<br />%ctheta = cam angle (deg)--can be a matrix<br />%pattern = denote the type of motion used(a 3 element-row matrix)<br />% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal<br />% 5:polynomial motion<br />% example [4 3]<br />%range =the degrees the specific motion starts<br />% Output: y is for displacement, yy is the derivative of the displacement with<br />% respect to theta, and yyy the second derivative with respect % to theta.<br />% Example plot_dwell(0:10:360,2,[4 3],[90 180 240]);<br />figure(1);clf;<br />[y,yy,yyy]=dwell(ctheta,range,pattern)<br />h1=plot(ctheta,y*s,'b-',ctheta,yy*s,'k-',ctheta,yyy*s,'r-')<br />legend('Displacement','Velocity','Acceleration',3)<br />xlabel('Elapsed Angle, degrees')<br />grid<br />*********************************************************************************<br /><br />關於這個function plot_dwell,我簡單說明一下:<br /><br />ctheta:代表我們打算繪製哪個角度範圍內的圖形.<br />s:衝程.<br />pattern:代表升程以及返程時的運動方式.<br />range:代表的是升程是從哪個角度開始還有結束,以及返程是從哪裡開始.<br /><br />有了這些條件,我們便可以開始行動解決問題了!!!<br /><br />從題目所給的條件看來<br />第一項表示的是角度,故選擇0-360度之區間做圖,輸入0:10:360<br />第二項則是動件衝程:題目設定為5cm,所以輸入5<br />第三項表示形式,由於為等加速度運動,故寫入2<br />第四項表示運動始末的角度,故前兩項各為100.200,返程始於260度,因此第三項為360<br /><br />而關於模式方面,由於返程運動模式自訂,故會分成五種狀況:<br />1:等速運動uniform<br />2:抛物線parabolic<br />3:簡諧simple harmonic<br />4:擺線cycloidal <br />5:多項式polynomial motion<br /><br /><span style="color: rgb(51, 51, 255);">主程式1</span>(返程等速度運動)<br />==><br />plot_dwell(0:10:360,5,[2 1],[100 200 260])<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RmBjCajGCwI/AAAAAAAAAG0/b7a-Ua6TvC8/s1600-h/11.1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RmBjCajGCwI/AAAAAAAAAG0/b7a-Ua6TvC8/s320/11.1.jpg" alt="" id="BLOGGER_PHOTO_ID_5071162073556585218" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=d784scd&.dnm=a050scd.jpg&.src=ph">等速度返程的運動情況</a><br /><br /><br /><span style="color: rgb(51, 51, 255);">主程式2</span>(返程等加速度運動,也就是拋物線!)<br />==><br />plot_dwell(0:10:360,5,[2 2],[100 200 260])<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EIk5wznBgOI/RmBjF6jGCxI/AAAAAAAAAG8/u_ONYGQrG5E/s1600-h/11.2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_EIk5wznBgOI/RmBjF6jGCxI/AAAAAAAAAG8/u_ONYGQrG5E/s320/11.2.jpg" alt="" id="BLOGGER_PHOTO_ID_5071162133686127378" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=d784scd&.dnm=2a4cscd.jpg&.src=ph">等加速度返程的運動情況</a><br /><br /><br /><span style="color: rgb(51, 51, 255);">主程式3</span>(返程簡諧運動)<br />==><br />plot_dwell(0:10:360,5,[2 3],[100 200 260])<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RmBjOKjGCyI/AAAAAAAAAHE/dVCddED4DXU/s1600-h/11.3.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RmBjOKjGCyI/AAAAAAAAAHE/dVCddED4DXU/s320/11.3.jpg" alt="" id="BLOGGER_PHOTO_ID_5071162275420048162" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=d784scd&.dnm=aeeescd.jpg&.src=ph">簡諧運動返程的運動情況</a><br /><br /><br /><br /><span style="color: rgb(51, 51, 255);">主程式4</span>(返程擺線運動)<br />==><br />plot_dwell(0:10:360,5,[2 4],[100 200 260])<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RmBjVajGCzI/AAAAAAAAAHM/yWxh8QrU2d4/s1600-h/11.4.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RmBjVajGCzI/AAAAAAAAAHM/yWxh8QrU2d4/s320/11.4.jpg" alt="" id="BLOGGER_PHOTO_ID_5071162399974099762" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=d784scd&.dnm=b797scd.jpg&.src=ph">擺線運動返程的運動情況</a><br /><br /><br /><span style="color: rgb(51, 51, 255);">主程式5</span>(返程多項式運動)<br />==><br />plot_dwell(0:10:360,5,[2 5],[100 200 260])<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EIk5wznBgOI/RmBjZ6jGC0I/AAAAAAAAAHU/65inkFhGMnA/s1600-h/11.5.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_EIk5wznBgOI/RmBjZ6jGC0I/AAAAAAAAAHU/65inkFhGMnA/s320/11.5.jpg" alt="" id="BLOGGER_PHOTO_ID_5071162477283511106" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=d784scd&.dnm=ef77scd.jpg&.src=ph">多項式運動返程的運動情況</a><br /><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >11.3</span><br />==>設凸輪之半徑為15公分,以順時針方向旋轉,其從動件為梢型,垂直接觸,長為10公分,從動件之運動係依照第二項之運動型式。試繪出此凸輪之工作曲線。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />由於題目說的是梢形元件,所以我們可以直接套用講義上的一個function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw),利用這個function來幫助我們解決問題.<br /><br />******************************************************************<br />function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)<br />%Find the pin type cam with an offsect e<br />%Inputs:<br />% cth:angle of cam, degrees<br />% r0:radius of base circle<br />% e:offset<br />% s:stroke<br />% L:length of pin<br />% cw:rotation direction of cam(-counterclockwise,+clockwise<br />%pattern = denote the type of motion used(a 3 element-row matrix)<br />% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal<br />% 5:polynomial motion<br />% example [4 3]<br />%range =the degrees the specific motion starts, eg.[90 180 240]<br />% Example: [x y]=pincam([10 60],5,2,1,10,[90 180 240],[4 3],-1)<br />figure(1);<br />clf;<br />th=cth*pi/180;<br />s0=sqrt(r0*r0-e*e);<br />for i=1:length(cth)<br />t=th(i)*cw;<br />A=[cos(t) -sin(t);sin(t) cos(t)];<br />[ym,yy,yyy]=dwell(cth(i),range,pattern);<br />x0=s0+ym*s;<br />Sx=[0 x0 x0+L;e e e];<br />X=A\Sx;<br />x(i)=X(1,2);y(i)=X(2,2);<br />line(X(1,1:2),X(2,1:2));<br />line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')<br />end<br />hold on;<br />plot([0 x],[0 y],'ro',x,y,'k-')<br />axis equal<br />********************************************************************<br /><br /><br />關於這個function pincam,我簡單說明一下:<br />cth:凸輪角度,度數<br />r0:凸輪基圓半徑<br />e:偏置量<br />s:從動件衝程<br />L:從動件長度<br />cw:凸輪轉動方向(反時鐘為正,順時鐘為負)<br />pattern=運動的型式,二元素之列矩陣.<br />range=升程及返程之範圍,三元素列矩陣<br /><br />從題目所給的條件看來<br />第一項表示角度,選擇0-360度之區間做圖,故輸入0:10:360<br />第二項則是表示突輪基圓半徑,題目為15cm,所以寫入15<br />第三項表示從動件衝程,題目設為5cm,因此寫5<br />第四項乃偏置量,因為題目沒有要求,所以設為0<br />第五項是從動件長度,題目為10cm,故輸入10<br />第六項表示運動始末的角度,故前兩項各為100.200,返程始於260度,故第三項為360<br />第七項為形式,因為皆為等加速度運動,所以選擇2<br />第八項表示凸輪轉動方向,題目所求為順時針,所以很明顯是-1<br /><br />故主程式<br />==><br />[x y]=pincam([0:10:360],15,5,0,10,[100 200 260],[2 2],-1);<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RmBj9ajGC1I/AAAAAAAAAHc/lYE6Y1w25QQ/s1600-h/11.7.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RmBj9ajGC1I/AAAAAAAAAHc/lYE6Y1w25QQ/s320/11.7.jpg" alt="" id="BLOGGER_PHOTO_ID_5071163087168867154" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >11.4</span><br />==>你能讓此凸輪迴轉嗎?<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />在此我們用到11.3的function pincam,把這個程式作修改即可.<br />首先對裡頭一開始的凸輪繪製保留.<br />然後原先line出圖形的地方,刪除,以利於動畫的執行.<br />最後,把裡面在多加入一個旋轉迴圈,使這個凸輪迴轉就大功告成了!<br /><br />改造後的新function<br />==><br />function [x,y]=pincam2(cth,r0,s,e,L,range,pattern,cw)<br />%Inputs:<br />%cth:凸輪的角度<br />%r0:基圓半徑<br />%e:偏置量<br />%s:衝程<br />%L:梢長<br />%cw:順時或逆時<br />%range:運動範圍<br />figure(1);<br />%先叫出空白圖<br />pause(2);<br />%停兩秒,以利準備拍攝的程式<br />clf;<br />th=cth*pi/180;<br />s0=sqrt(r0*r0-e*e);<br />oo=37;<br />for nn=1:10:360 mm=nn*pi/180;<br />oo=oo-1;<br />clf;<br />axis([-30 30 -30 30])<br />for i=1:length(cth)t=th(i)*cw;A=[cos(t+mm) -sin(t+mm);sin(t+mm) cos(t+mm)];<br />[ym,yy,yyy]=dwell(cth(i),range,pattern);<br />x0=s0+ym*s;<br />Sx=[0 x0 x0+L;e e e];<br />X=A\Sx;x(i)=X(1,2);<br />y(i)=X(2,2);<br />end[yw,yww,ywww]=dwell(cth,range,pattern);<br />y1=yw*s+r0+L;<br />y2=yw*s+r0 ;<br />line([0 0],[y1(oo),y2(oo)],'linewidth',10,'color','blue');<br />line([0 30],[y1(oo),20],'linewidth',10,'color','red');<br />axis([-30 30 -30 30])<br />hold on;<br />plot([0 x],[0 y],'ro',x,y,'k-')<br />pause(0.03);<br />end<br /><br /><br />主程式<br />==><br />[x y]=pincam2([0:10:360],15,5,0,10,[100 200 260],[2 1],-1)<br /><br /><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/fK3bLGUuMUU"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/fK3bLGUuMUU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com3tag:blogger.com,1999:blog-8347434684773912021.post-8827198616929251082007-05-25T06:18:00.000+08:002007-05-28T22:44:57.134+08:00機動學 作業十作業十 b94611042 王志豪 (Due date: 12pm May 23, 2007)<br />我有上本週5/17的課<br /><br /><a href="http://terencew331.blogspot.com/">我的blog</a><br /><br /><br /><span style="font-weight: bold;">題目:</span><br /><br /><span style="font-weight: bold;">1.請聲明本週(5/17)有來上課。<br /><br /></span><span style="font-weight: bold;">2.請思考速度與加速度的問題,當一桿以某特定點M等角速度迴轉時,其端點P之速度方向如何?其加速度方向如何?若該特定點M復以等速水平運動,則同一端點P之速度與加速度方向會變為如何?若M點同時也有加速度,則點P會有何變化?若以此推理四連桿的運動,則點P與Q之速度與加速度方向會與桿一(固定桿)之兩端點之關係如何?與我們前面的作業分析結果有無共通之處?(參看第六章之四連桿機構之運動分析)<br /><br /></span><span style="font-weight: bold;">3.設有一運動之曲柄滑塊連桿組合,設滑塊之偏置量為零,且在水平方向移動,試以此機構之曲桿長度及角度,以及連結桿之長度為輸入項,利用matlab寫出一程式計算在不同曲柄角度時,六點瞬心之對應位置。可順便探討六點瞬心與曲柄角間之關係。</span><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >10.1</span><br />我有上本週5/17的課<br /><br /><br /><br /><span style="font-size:130%;"><span style="color: rgb(51, 51, 255); font-weight: bold;">10.2</span></span><br />==>請思考速度與加速度的問題,當一桿以某特定點M等角速度迴轉時,其端點P之速度方向如何?其加速度方向如何?若該特定點M復以等速水平運動,則同一端點P之速度與加速度方向會變為如何?若M點同時也有加速度,則點P會有何變化?若以此推理四連桿的運動,則點P與Q之速度與加速度方向會與桿一(固定桿)之兩端點之關係如何?與我們前面的作業分析結果有無共通之處?(參看第六章之四連桿機構之運動分析)<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br /><span style="color: rgb(51, 51, 255);">(1)</span><br />P點指的是桿三以及桿四相交的位置.<br />在此,我以r1,r2,r3,r4來分別表示各桿.<br />這時後,即可用老師上課所用的方法.首先,我們找出r1、r3的瞬時中心M13.<br />其位置會在r2、r4的延長線上,所以我們可以很清楚的看出來P點的速度以及加速度方向.<br />P的速度方向應該是在垂直r2的方向,而加速度是在r2的方向.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RlYPvqjGCrI/AAAAAAAAAGM/8pq1Wdrt3rk/s1600-h/10-2-1.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RlYPvqjGCrI/AAAAAAAAAGM/8pq1Wdrt3rk/s320/10-2-1.JPG" alt="" id="BLOGGER_PHOTO_ID_5068255742201825970" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/88e9scd&.dnm=ec8cscd.jpg&.src=ph">基本桿圖示意</a><br /><br />若要比較科學化的分析,也可以如此看待:<br />一開始,先假設PM間距離為r(單位m).<br />而此時M就以等角速度ω(單位rad/s)轉動.<br />則P點此時有速度r*ω(m/s),其方向與r為垂直方向,且有向心加速度r*ω^2(單位m/s^2)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RlYP16jGCsI/AAAAAAAAAGU/uIuhankXobQ/s1600-h/10-2-2.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RlYP16jGCsI/AAAAAAAAAGU/uIuhankXobQ/s320/10-2-2.JPG" alt="" id="BLOGGER_PHOTO_ID_5068255849576008386" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/88e9scd&.dnm=a366scd.jpg&.src=ph">精簡化分析</a><br /><br /><br /><span style="color: rgb(51, 51, 255);">(2)</span><br />那麼,假若該特定點M復以等速水平運動,則同一端點P之速度與加速度方向又會變為如何呢?<br />簡單來說,假若M複以V(m/s)等速水平移動,則P點此時之速度為:<br /><br />==> V+ω*r ,其中方向為其向量合.<br /><br />至於加速度方面則不受影響,依舊為r*ω^2,維持不變.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RlYP7KjGCtI/AAAAAAAAAGc/a1PR1iNkqLc/s1600-h/10-2-3.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RlYP7KjGCtI/AAAAAAAAAGc/a1PR1iNkqLc/s320/10-2-3.JPG" alt="" id="BLOGGER_PHOTO_ID_5068255939770321618" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/88e9scd&.dnm=d543scd.jpg&.src=ph">向量合力圖</a><br /><br /><span style="color: rgb(51, 51, 255);">(3)</span><br />而談到若M點同時也有加速度,則關於點P的變化,茲說明如下:<br />一言以蔽之,由於M點有了加速度,故此時P點的加速度將不再只有法線加速度而已.<br />它的切線方向理論上也會有一個切線加速度.<br />不過,在此和M有水平速度不一樣的地方在於M有無加速度這項條件.<br />其實並不會影響到P點的速度以及加速度方向!!!<br />它所能影響的,不外乎只有速度以及加速度的大小而已.<br />這其實就是物理上所學的,關於力的方向可以各自獨立計算.<br />加速度大致會變成:V(m/s)+r*ω^2*cos(θ)(m/s) i + r*ω^2*sin(θ)(m/s) j<br /><br /><br /><span style="color: rgb(51, 51, 255);">(4)</span><br />藉由上面這些條件,我們便可以開始分析四連桿的運動了.<br />首先,關於速度的部份,可知P的速度是在垂直r2方向,Q則是在垂直r4的方向.<br />加速度的部份,P在r2的延長線上,Q則是位於r4的延長線上面.<br />P之速度方向是P與桿一端點連線的垂直方向,加速度方向則是P與桿一端點的連線方向.<br />Q的速度方向,則就是Q與桿一端點連線垂直,加速度方向則為Q與桿一端點的同一連線方向.<br /><br />除此之外,若是桿三驅動的話,可以看出P的速度方向就是在垂直r3的方向,P的加速度就是在r3的方向上.<br /><br />而當桿三有了加速度,假設為a......<br />此時桿三除了角速度W1以外還會有另一個隨時間變動的角速度at.<br />結果跟我們分析一開始桿二驅動的時候有點類似:<br />都是只會影響速度以及加速度的大小,而不影響速度與加速度的方向.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RlYQC6jGCuI/AAAAAAAAAGk/1u_vGK0isGk/s1600-h/10-2-4.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RlYQC6jGCuI/AAAAAAAAAGk/1u_vGK0isGk/s320/10-2-4.JPG" alt="" id="BLOGGER_PHOTO_ID_5068256072914307810" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/88e9scd&.dnm=ae0bscd.jpg&.src=ph">參考用的基本示意圖,可與解說對照了解</a><br /><br />另外,以桿三為驅動桿,較為特別之處,在於我們要利用Q.R的瞬時中心M24!<br />有了M24,我們可以發現P和Q之間的速度以及加速度方向是一樣的.<br />只不過,由於兩者和瞬時中心間的距離不同,所以速度跟加速度的大小也會不同.<br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" ><br />10.3</span><br />==>設有一運動之曲柄滑塊連桿組合,設滑塊之偏置量為零,且在水平方向移動,試以此機構之曲桿長度及角度,以及連結桿之長度為輸入項,利用matlab寫出一程式計算在不同曲柄角度時,六點瞬心之對應位置。可順便探討六點瞬心與曲柄角間之關係。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />在此,我是參照課本上的一個function slider_solve 來改寫的.<br />以下是我變形過的new function<br /><br />主程式<br />==><br />function slider_draw(R,L,e)<br />%R=桿一長<br />%L=桿二長<br />%e=偏置量<br />the1=slider_limit(R,L,e)<br />the2=90<br />ang=linspace(the1,the2,100);<br />d=slider_solve(ang,R,L,e,1);<br /><br />x=R*cosd(ang);<br />y=R*sind(ang);<br />for n=1:100<br />hold on<br />line([0,x(n),d(n)],[0,y(n),e]);<br />line([d(n)-3,d(n)+3,d(n)+3,d(n)-3,d(n)-3],[e-2,e-2,e+2,e+2,e-2]);<br />plot(0,0,'go')<br />plot(x(n),y(n),'go')<br />plot(d(n),e,'go')<br />plot([0,0],[0,e-d(n)*(y(n)-e)/(x(n)-d(n))],'go:')<br />plot([x(n),0],[y(n),e-d(n)*(y(n)-e)/(x(n)-d(n))],'go:')<br />plot([x(n),d(n)],[y(n),y(n)*d(n)/x(n)],'go:')<br />plot([d(n),d(n)],[0,y(n)*d(n)/x(n)],'go:')<br />axis equal<br />axis ([-110 110 -110 110]);<br />pause(0.08)<br />clf<br />end<br /><br />%以上,程式的主要概念在於先畫出外型,然後再做出瞬心位置,最後plot上去.<br /><br />以下即分別是<br />R > L<br />R < L<br />R = L<br />三種不同情況下曲柄滑塊連桿的運動狀況:<br /><br /><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/qJ_rNYXTDWU"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/qJ_rNYXTDWU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br /><br /><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/O06fxnXe6MI"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/O06fxnXe6MI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br /><br /><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/KMHtUmE1QDM"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/KMHtUmE1QDM" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br /><br /><br /><br />以上是關於曲柄滑塊連桿組合運動狀況的部份.<br />接下來,即便是關於計算瞬心的部份了.<br />基本上,瞬心以甘迺迪定理可定出.....<br />瞬心13可由12及23的連線14及34的連線交點獲得.<br />24則為23及34連線與12及14連線之交點獲得.<br />在此,我寫了一個專門關於計算瞬心位置的function<br /><br />function [M12,M13,M14,M23,M24,M34]=Centor(r2,th2,r3,th3)<br />M12=[0,0]<br />M13=M23-[r2*sin(th2)/tan(th2),r2*sin(th2)]<br />M14=[r2*cos(th2)+r3*cos(th3),0]<br />M23=[r2*cos(th2),r2*sin(th2)]<br />M24=M23+[r3*cos(th3),r3*cos(th3)*tan(th3)]<br />M34=M23+[r3*cos(th3),r3*sin(th3)]<br /><br />這個程式基本上,是可以幫我們找出六個瞬心的!<br />而為了將他們畫出來,由上面這個瞬心function,可以延伸出一個新function.<br /><br />function [M12,M13,M14,M23,M24,M34]=PrintCenter(r2,theta2,r3,theta3)<br />M12=[0,0]<br />M13=M23-[r2*sin(th2)/tan(th2),r2*sin(th2)]<br />M14=[r2*cos(th2)+r3*cos(th3),0]<br />M23=[r2*cos(th2),r2*sin(th2)]<br />M24=M23+[r3*cos(th3),r3*cos(th3)*tan(th3)]<br />M34=M23+[r3*cos(th3),r3*sin(th3)]<br />x1=0;<br />x2=r2*cos(th2);<br />x3=x2+r3*cos(th3);<br />x4=r2*cos(th2)+r3*cos(th3);<br />x5=x2-(r2*sin(th2)/tan(th3))<br />x6=x2+r3*cos(th3)<br />y1=0;<br />y2=r2*sin(th2)<br />y3=y2+r3*sin(th3)<br />y4=0<br />y5=y2-r2*sin(th2)<br />y6=y2+(r3*cos(th3)*tan(th2))<br />Print1=[x1 y1;x5 y5;x3 y3;x4 y4;x1 y1;x6 y6;x4 y4;x1 y1]<br />line(Print1(:,1),Print1(:,2))<br />text(x1,y1,'M12')<br />text(x2,y2,'M23')<br />text(x3,y3,'M34')<br />text(x4,y4,'M14')<br />text(x5,y5,'M13')<br />text(x6,y6,'M24')<br /><br />而此時,又可以再度利用上面這個瞬心程式,做出另一個動畫哩.<br /><br />主程式<br />==><br />AXIS([-40 40 -40 40]);<br />for th1=0:5:360<br />AXIS([-40 40 -40 40]);<br />PrintCenter(20,th1,15,85)<br />pause(0.2)<br />clf<br />end<br /><l,r=l,三種不同情況下曲柄滑塊連桿的運動狀況. function="" x2="r2*cos(th2);" y1="0;" y2="r2*sin(th2)" y3="y2+r3*sin(th3)" y4="0" y5="y2-r2*sin(th2)" y6="y2+(r3*cos(th3)*tan(th2))" print1="[x1" x5="x2-(r2*sin(th2)/tan(th3))" x3="x2+r3*cos(th3);" x6="x2+r3*cos(th3)" x4="r2*cos(th2)+r3*cos(th3);" x1="0;" m12="[0,0]" m23="[r2*cos(th2),r2*sin(th2)]" m34="M23+[r3*cos(th3),r3*sin(th3)]" m14="[r2*cos(th2)+r3*cos(th3),0]" m13="M23-[r2*sin(th2)/tan(th2),r2*sin(th2)]" m24="M23+[r3*cos(th3),r3*cos(th3)*tan(th3)]"></l,r=l,三種不同情況下曲柄滑塊連桿的運動狀況.><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RlYQKKjGCvI/AAAAAAAAAGs/QuOIrsO5Eqo/s1600-h/10-3.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RlYQKKjGCvI/AAAAAAAAAGs/QuOIrsO5Eqo/s320/10-3.JPG" alt="" id="BLOGGER_PHOTO_ID_5068256197468359410" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><l,r=l,三種不同情況下曲柄滑塊連桿的運動狀況. function="" x2="r2*cos(th2);" y1="0;" y2="r2*sin(th2)" y3="y2+r3*sin(th3)" y4="0" y5="y2-r2*sin(th2)" y6="y2+(r3*cos(th3)*tan(th2))" print1="[x1" x5="x2-(r2*sin(th2)/tan(th3))" x3="x2+r3*cos(th3);" x6="x2+r3*cos(th3)" x4="r2*cos(th2)+r3*cos(th3);" x1="0;" m12="[0,0]" m23="[r2*cos(th2),r2*sin(th2)]" m34="M23+[r3*cos(th3),r3*sin(th3)]" m14="[r2*cos(th2)+r3*cos(th3),0]" m13="M23-[r2*sin(th2)/tan(th2),r2*sin(th2)]" m24="M23+[r3*cos(th3),r3*cos(th3)*tan(th3)]"><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/88e9scd&.dnm=387fscd.jpg&.src=ph">瞬心圖舉例</a><br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/F3zD-libfHI"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/F3zD-libfHI" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><br /></l,r=l,三種不同情況下曲柄滑塊連桿的運動狀況.>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com3tag:blogger.com,1999:blog-8347434684773912021.post-26241077628152263732007-05-18T02:50:00.000+08:002007-05-18T03:06:36.437+08:00機動學 作業九作業九 b94611042 王志豪 (Due date: 12pm May 16, 2007)<br />我有上本週5/3的課<br /><br />機動學分組:C組:5/17(四) 8:00am-9:30am<br />(蔡篤明,劉昶志,許惠善,張鈞崴,張延瑋,王志豪,范詠晴,林詠舜)<br /><br /><a href="http://terencew331.blogspot.com/">我的blog</a><br /><br /><span style="font-weight: bold;">題目:</span><br /><br /><span style="font-weight: bold;">•請聲明本週(5/3)有來上課。 </span> <span style="font-weight: bold;"><br />•請閱讀機動論壇中有關下週分組上課的情形,並登記組別。</span><br /><span style="font-weight: bold;">•請就教科書中第四章第五節之偏置機構作另類分析,分析過程可採你所知的方式(包括講義中所列的方法)。運動中分以曲桿驅動及滑塊驅動的方式,並說明運動的界限或範圍。設此機構之曲桿長Rcm , 連桿Lcm,滑塊之偏置量為10cm等數據作分析。其中,R=10+(學號末二碼),L=R+5 。</span><br /><br /><span style="font-weight: bold;">問題:</span><br />==>請就教科書中第四章第五節之偏置機構作另類分析,分析過程可採你所知的方式(包括講義中所列的方法)。運動中分以曲桿驅動及滑塊驅動的方式,並說明運動的界限或範圍。設此機構之曲桿長Rcm , 連桿Lcm,滑塊之偏置量為10cm等數據作分析。其中,R=10+(學號末二碼),L=R+5 。<br /><span style="color: rgb(204, 102, 0);font-size:130%;" >Ans:</span><br /><br />首先,題目所說的滑塊機構,其長相如下:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EIk5wznBgOI/Rkykw6jGCbI/AAAAAAAAADk/nYyeMLgw6lU/s1600-h/1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_EIk5wznBgOI/Rkykw6jGCbI/AAAAAAAAADk/nYyeMLgw6lU/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5065604841142094258" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=f743scd&.dnm=4a82scd.jpg&.src=ph">基本模式</a><br /><br />由此,我們的分析正式展開.<br />一開始,我們得先討論題目所述之連桿,其運轉範圍之限制.<br />而在這邊,首先,我們就必須要先討論其限制的角度.<br />為了討論這些連桿的限制角度,網路講義第七章中,提供了一個很好用的函數.<br />這個函數,即為function sld_angle_limits<br /><br />*******************************************************************<br />function [Qstart, Qstop]=sld_angle_limits(r,theta1,linkdrive)<br />%<br />%function [Qstart, Qstop]=sld_angle_limits(r,theta1,linkdrive)%<br />Find initital & final angles of driving link for slider<br />% linkdrive= 0 for crank; 1 for coupler as the driver, with<br />% Qstart & Qstop as the limit angles of driving link.<br />% linkdrive=2 for slider as input, with Qstart & Qstop as its<br />% initial & final positions of r1% Variables<br />% r= linkage row vector (cm)<br />% Examples:[Qst,Qsp]=sld_angle_limits([1 5 3 1],30,0)<br />r1=r(1);r2=r(2);r3=r(3);r4=r(4);g2d=180/pi;<br />switch linkdrive<br />case 0 %crank<br />if r3+r4<r2 & r4>=0 & r3>r4<br />Qstart=asin((r4-r3)/r2);Qstop=asin((r4+r3)/r2);<br />elseif r3+r4>=r2 & r4>=r3 & r3>=0<br />Qstart=asin((r4-r3)/r2);Qstop=pi-asin((r4-r3)/r2);<br />elseif r3-r4<=r2 & r4<0 & r3>=-r4<br />Qstart=asin((r4-r3)/r2);Qstop=asin((r4+r3)/r2);<br />elseif r3-r4>=r2 & r3>=0 & -r4>=r3<br />Qstart=-pi-asin((r4+r3)/r2);Qstop=asin((r4+r3)/r2);<br />else<br />Qstart=0;Qstop=2*pi;<br />end<br />case 1 %coupler<br />if r2-r4<=r3 & r4>=0 & r2>=r4<br /> Qstart=asin((r4-r2)/r3);Qstop=pi-asin((r4-r2)/r3);<br />elseif r2+r4<r3 & r4>=0<br /> Qstart=asin((r4-r2)/r3);Qstop=asin((r4+r2)/r3);<br />elseif r2+r4<=r3 & r4<=0 & r2+r4>=0<br /> Qstart=-pi-asin((r4+r2)/r3);<br /> Qstop=asin((r4+r2)/r3);<br />elseif r2-r4<r3 & r4<=0<br /> Qstart=asin((r4-r2)/r3);Qstop=asin((r4+r2)/r3);<br />else %r2>=(r3+abs(r4))<br /> Qstart=0;Qstop=2*pi;<br />end<br />case 2 %slider displacement<br />Qstart=0;Qstop=0;<br />arg2=(r2+r3)^2-r4^2;<br />if abs(r2-r3)>=r4<br />arg1=(r2-r3)^2-r4^2;<br />if arg1>0,Qstart=sqrt(arg1);end;<br />Qstop=sqrt(arg2);<br />else<br />if arg2<0, return; end<br />Qstart=sqrt(arg2);Qstop=-sqrt(arg2);<br />end<br />theta1=0;g2d=1;end %case<br />if Qstop<Qstart,TT=Qstart;Qstart=Qstop;Qstop=TT;end<br />adjust=(Qstop-Qstart)*1e-8;<br />Qstart=theta1+(Qstart+adjust)*g2d;<br />Qstop=theta1+(Qstop-adjust)*g2d;<br />*****************************************************************<br /><br />在此,應題目之要求,開始設定數值.<br /><br />*r(1) 固定桿(第一桿)<br />*r(2) 曲桿 =52(because 42+10)<br />*r(3) 結合(連)桿=57(because 52+5)<br />*r(4) 垂直偏置量=10<br />*theta1 : 第一桿之水平角<br />*theta2 : 驅動桿之水平夾角<br />*td2 : 驅動桿角速度<br />*tdd2 : 驅動桿角加速度<br />*sigma : 組合模數<br />*driver : 驅動桿<br /><br />在這裡,基本上我們是不用設定第一桿的長度.<br />這主要是因為第一桿的方向雖然是固定的,但其長度卻會隨機構運動而不停變動伸縮.<br />其中,對於r的設定基本如下:<br />r=[第一桿、曲桿、連桿、偏置量]<br />因此,透過這些的條件,我們便可以把數值代入主程式中:<br /><br /><span style="color: rgb(51, 51, 255); font-weight: bold;font-size:130%;" >1.</span><span style="font-weight: bold;">這是以第二桿作驅動桿的(driver為0),其結果如下:</span><br />***主程式==><br />r=[0 52 57 10];<br />theta1=0;<br />linkdrive=0;<br />sld_angle_limits(r,theta1,linkdrive);<br /><br />Qstart =<br /><br />-64.6683<br /><br /><br />Qstop =<br /><br />244.6683<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RkylhajGCcI/AAAAAAAAADs/lNx5MmEz93o/s1600-h/%E7%AC%AC%E4%BA%8C%E6%A1%BF%E9%A9%85%E5%8B%95%E9%99%90%E5%88%B6%E8%A7%92%E5%BA%A6%E4%BD%8D%E7%BD%AE%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RkylhajGCcI/AAAAAAAAADs/lNx5MmEz93o/s320/%E7%AC%AC%E4%BA%8C%E6%A1%BF%E9%A9%85%E5%8B%95%E9%99%90%E5%88%B6%E8%A7%92%E5%BA%A6%E4%BD%8D%E7%BD%AE%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5065605674365749698" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=f743scd&.dnm=35b3scd.jpg&.src=ph">第二桿驅動限制角度位置圖</a><br /><br /><br /><span style="color: rgb(51, 51, 255); font-weight: bold;font-size:130%;" >2</span><span style="font-weight: bold;">.</span><span style="font-weight: bold;">接下來我們便以第三桿為驅動桿(driver為1)</span><br />***主程式==><br />r=[0 52 57 10];<br />theta1=0;<br />linkdrive=1;<br />sld_angle_limits(r,theta1,linkdrive);<br /><br />Qstart =<br /><br />-47.4631<br /><br /><br />Qstop =<br /><br />227.4631<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RkylwKjGCdI/AAAAAAAAAD0/L7RB3d1Ddgs/s1600-h/%E7%AC%AC%E4%B8%89%E6%A1%BF%E9%A9%85%E5%8B%95%E9%99%90%E5%88%B6%E8%A7%92%E5%BA%A6%E4%BD%8D%E7%BD%AE%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RkylwKjGCdI/AAAAAAAAAD0/L7RB3d1Ddgs/s320/%E7%AC%AC%E4%B8%89%E6%A1%BF%E9%A9%85%E5%8B%95%E9%99%90%E5%88%B6%E8%A7%92%E5%BA%A6%E4%BD%8D%E7%BD%AE%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5065605927768820178" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=f743scd&.dnm=fd2cscd.jpg&.src=ph">第三桿驅動限制角度位置圖</a><br /><br /><br /><span style="color: rgb(51, 51, 255); font-weight: bold;font-size:130%;" >3</span>.<span style="font-weight: bold;">接下來我們便以滑塊為驅動桿(driver為2)</span><br />***主程式==><br />r=[0 52 57 10];<br />theta1=0;<br />linkdrive=2;<br />sld_angle_limits(r,theta1,linkdrive);<br /><br />Qstart =<br /><br />-108.5403<br /><br /><br />Qstop =<br /><br />108.5403<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/Rkyl8qjGCeI/AAAAAAAAAD8/C5NAWo2XuWA/s1600-h/%E6%BB%91%E5%A1%8A%E9%A9%85%E5%8B%95%E9%99%90%E5%88%B6%E8%A7%92%E5%BA%A6%E4%BD%8D%E7%BD%AE%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/Rkyl8qjGCeI/AAAAAAAAAD8/C5NAWo2XuWA/s320/%E6%BB%91%E5%A1%8A%E9%A9%85%E5%8B%95%E9%99%90%E5%88%B6%E8%A7%92%E5%BA%A6%E4%BD%8D%E7%BD%AE%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5065606142517184994" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=f743scd&.dnm=43d6scd.jpg&.src=ph">滑塊驅動限制角度位置圖</a><br /><br /><br />由上面的結果,便可知道機構運動時的基本限制!!!<br /><br /><br /><br />在了解極限角度的狀況後,我們便可以開始討論其運動狀況.<br />關於這個部分,我們可以利用一個講義第七章中的還是來幫助我們運算.<br />即是function drawsldlimits(r,th1,sigma,driver)!!!<br />這個函式正是能幫助我們算出運動界限.<br />桿長r為:(第一桿、曲桿、連桿、偏置量)<br />第一桿的水平角度為th1=0<br />Sigma如同第八次作業中的mode.<br />Driver則依照我們討論的情形有所更改.<br />當中,0代表驅動桿為第二桿,1代表驅動桿為第三桿,2代表由滑塊驅動.<br /><br />*****************************************************************<br />function [values]=drawsldlinks(r,th1,th2,sigma,driver)<br />%function drawlinks(r,th1,th2,sigma,driver)<br />%draw the positions of four-bar links<br />%call f4bar funcion<br />%r: row vector for four links<br />%th1: frame angle<br />%th2: crank angle or couple angle<br />%sigma: assembly mode<br />%driver: 0 for crank, 1 for coupler<br />%% Example:<br />% drawsldlinks([1 2 3 4],0,60,1,0)<br />%clf;<br />[values b]=sldlink(r,th1,th2,10,0,sigma,driver)<br />;rr=values(:,1);rr(3)=rr(3)+rr(2);<br />rx=real(rr);rx(4)=0;<br />ry=imag(rr);ry(4)=0;<br />if b==1<br />plot([0 rx(1)],[0 0],'k-','LineWidth',4);%ground line<br />hold on;<br />plot([0 rx(1)],[0 ry(1)],'g-','LineWidth',1.5);<br />if driver==0<br /> plot([0 rx(2)],[0 ry(2)],'b-','LineWidth',1.5);<br /> plot([rx(2) rx(3)],[ry(2) ry(3)],'r-','LineWidth',2);<br />else<br /> plot([0 rx(2)],[0 ry(2)],'r-','LineWidth',2);<br /> plot([rx(2) rx(3)],[ry(2) ry(3)],'b-','LineWidth',1.5);<br />end<br />plot([rx(1) rx(3)],[ry(1) ry(3)],'k-');<br />plot(rx,ry,'bo');<br />text(0,0,' O');text(rx(1),ry(1),' R');<br />text(rx(2),ry(2),' P');text(rx(3),ry(3),' Q');<br />length=max(abs(values(2:3,1)));<br />len=.20*length;ww=.15*length;<br />[coords] = sldbox(len,ww,rx(3),ry(3),th1);<br />plot(coords(:,1),coords(:,2),'r-','LineWidth',2);<br />[coords] = sldbox(len*3,0,rx(3),ry(3)-ww/2,th1);<br />plot(coords(:,1),coords(:,2),'r:','LineWidth',1.5);else<br />fprintf('Combination of links fails at degrees %6.1f\n',th2);<br />axis equal;<br />grid on;<br />end<br />axis equal;<br />grid on;<br />******************************************************************<br /><br />有了這個程式後,我們便可以開始討論各項狀況了.<br /><br /><br /><br /><span style="font-weight: bold;"><span style="color: rgb(51, 51, 255);font-size:130%;" >1</span>.以第二桿為驅動桿的狀況(driver為0)</span><br /><br />在此,由機動學的講義中,可以知道這部分應該會有四種可能性<br /><br />1.是當r3≧r4≧0,且 r3+r4 ≦ r2<br />2.是當r4≧r3≧0,且 r3+r4 ≧ r2<br />3.是當r3≧-r4≧0,且 r3-r4 ≦ r2<br />4.是當-r4≧r3≧0,且 r3-r4 ≧ r2<br /><br />從條件[0 52 57 10]裡面,可以看出沒有符合我們上面四個條件.<br />縱使把偏置量改成-10cm,[0 52 57 -10],依然無法符合上面四個條件的任何一種.<br />所以可得結論,這個滑塊機構是無法以第二桿為驅動桿的.<br /><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >2</span>.<span style="font-weight: bold;">以第三桿為驅動桿的狀況(driver為1)</span><br /><br />討論類似上面,分成四部份討論.<br /><br />1.是當0≦r4,且0≦r2-r4≦r3<br />2.是當0≦r4,且r2+r4≦r3<br />3.是當r4≦0,且0≦r2+r4<r3<br />4.是當r4≦0,且r2-r4<r3 時<br /><br />從條件[0 52 57 10]我們可以看出我們符合第一個條件.<br />所以這個機構是可行的.<br />此時,欲畫基本圖型,程式如下:<br /><br />drawsldlinks([0 52 57 10],0,i,-1,0)<br /><br />結果參照上面角度分析的圖.<br />即是"第三桿驅動限制角度位置圖"<br /><br />這時候,為了方便觀察分析,可以製作成動畫型式來呈現.<br />***主程式==><br />for i=-47.4631:2:227.4631<br />pause(0.1)<br />clf<br />drawsldlinks([0 52 57 10],0,i,-1,0)<br />axis([-130 130 -130 130])<br />end<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/gHDztVMLrdA"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/gHDztVMLrdA" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/gHDztVMLrdA"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/gHDztVMLrdA" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >3.</span><span style="font-weight: bold;">以滑塊為驅動桿的狀況(driver為2)</span><br /><br />在這個以滑塊為驅動桿的部份,基本上只會有兩種情形產生.<br />1.|r2-r3|>r4時,其條件限制於r1所給之長短<br />2.|r2-r3|< r4時<br />由我們的桿長[0 52 57 10],可知是第二種情形<br />所以這個機構是可行的.<br />此時,欲畫基本圖型,程式如下:<br /><br />drawsldlinks([0 52 57 10],0,i,-1,2)<br /><br />結果參照上面角度分析的圖.<br />即是"滑塊驅動限制角度位置圖"<br /><br />這時候,為了方便觀察分析,可以製作成動畫型式來呈現.<br />(這個動畫向右運動的情形和向左是一樣的)<br />而此時的Qstart跟Qstop指的是第一桿的起點位置以及終點位置.<br />如果想要使用drawsldlinks來做成動畫的話,我們必須先算出角度.<br /><br />θmin =sin-1(r4/(r2+r3)) = 5.264<br />θmax =π- sin-1(r4/(r2+r3)) = 174.736<br /><br />***主程式==><br />for i=5.264:(174.736-5.264)/60:174.736<br />pause(0.1)<br />clf<br />drawsldlinks([0 52 57 10],0,i,-1,1)<br />axis([-130 130 -130 130])<br />end<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/3BFR2d3nCxA"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/3BFR2d3nCxA" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/3BFR2d3nCxA"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/3BFR2d3nCxA" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><br />(註:本來以前一直解決不了動畫執行的時候,其範圍大小會不斷變化,造成視野縮放不停,使得觀賞上較不順眼.而在5/17的時候,由於一個不小心睡過頭,錯過了小組討論,然而上課時,感謝教授的指正與教誨,讓我終於明白原來問題是出在於for迴圈以及clf身上,經修正之後,視野果然不復過去不停縮放的窘境,非常高興,十分感謝!!!)<br /><br /><br /><br /><br />在大致上的討論告一段落以後......<br />接下來便可以來討論滑塊連桿之軌跡.<br />此時,可以利用講義上的function drawsldpaths.<br />這是個蠻厲害的函式.<br />在前面,任何桿之延伸點上之位移、速度及加速度等東西......<br />均可利用sldlink()、body()、fb_sld_linits()及drawlinks()等函數進行分析!!!<br />然而,利用drawsldpaths()函數則還可以達到整合的目的.<br />故頗為實用.<br />此函式的程式碼如下:<br /><br />*******************************************************************<br />function drawsldpaths(r6,th6,r,th1,td2,tdd2,sigma,npts,driver,mode)<br />clf;<br />figure(1);<br />warning off;<br />r(abs(r)<eps)=eps;<br />[Qstart, Qstop]=sld_angle_limits(r,th1,driver)<br />npoint=abs(npts);<br />th2=linspace(Qstart,Qstop,npoint);<br />val=zeros(11,npoint);<br />for i=1:npoint,<br />if driver==2, r(1)=th2(i);end<br />[vr b]=sldlink(r,th1,th2(i),td2,tdd2,sigma,driver);<br />[para]=body(r6,th6,vr,3);<br />if mod(i,5)==0|i==1|i==npoint,<br />drawsldlinks(r,th1,th2(i),sigma,driver);<br /><br />end<br />val(1:3,i)=[vr(1,1)+vr(4,1);vr(2,1);para(2)];%Sq,Sp,Sa %找q,p,a<br />switch driver<br />case 0<br />val(4:7,i)=[abs(vr(1,1));vr(3,2);vr(3,3);vr(3,4)];<br />case 1<br />val(4:7,i)=[abs(vr(1,1));vr(2,2);vr(2,3);vr(2,4)];<br />case 2<br />val(4:7,i)=[abs(vr(2,2));vr(3,2);vr(2,3);vr(3,3)];<br />end<br />val(8:11,i)=[vr(1,5);para(4);vr(4,6);para(5);];<br />%Vs, Va, As, Aa<br />end<br />warning on; %路徑繪制<br />plot(val(1,:),'k-','LineWidth',1.5,'linestyle',':');% path of Q<br />plot(val(2,:),'k-','LineWidth',1.5);% path of P<br />plot(val(3,:),'g-','LineWidth',1.5);% path of A<br />axis equal<br />if mode==0, return;end;<br />th2=th2(3:end-3);val=val(:,3:end-3);<br />title0={'Crank Angle','Coupler Angle','Slider Pos'};<br />title1={'\Theta3(r) & r1(k)', '\Theta2(r) & r1(k)',...<br />'\Theta2(r) & \Theta3(k)' };<br />title2={'Vel of A (r) & Slider(k)',...<br />'Acc of A(r) & Slider(k)' };<br />title3={'\omega(r) & \alpha(b) of Coupler',...<br />'\omega(r) & \alpha(b) of Crank',...<br />'\omega of Crank(r) & Coupler(b)'};<br />intitle=title0(driver+1);<br />val(abs(val)>10e+5)=NaN;<br />val(8:11,:)=abs(val(8:11,:));<br />figure(2);<br />clf;<br />subplot(2,2,1);<br />plot(th2,val(4,:),'k-');<br />hold on;fact=round(max(val(5,:))/max(val(4,:))*10)/10;<br />plot(th2,val(5,:)/fact,'r-');% crank or coupler angle<br />xlabel(intitle);ylabel(title1(driver+1));<br />grid on<br />subplot(2,2,2);<br />plot(th2,val(6,:),'r-');<br />fact=round(max(val(7,:))/max(val(6,:))*10)/10;<br />hold on;plot(th2,val(7,:)/fact,'b-');<br />xlabel(intitle);ylabel(title3(driver+1));<br />grid on;<br />subplot(2,2,3);<br />plot(th2,val(8,:),'k-');<br />hold on;plot(th2,val(9,:),'r-');<br />xlabel(intitle);ylabel(title2(1));<br />grid on;<br />subplot(2,2,4);<br />plot(th2,val(10,:),'k-');<br />hold on;plot(th2,val(11,:),'r-');<br />xlabel(intitle);ylabel(title2(2));<br />grid on;<br />*****************************************************************<br /><br />關於這個函式,其基本使用方式如下:<br />* r : 四連桿之長度,一列向量表示.<br />* th1: 第一桿的水平角度(通常為零).<br />* th2: 驅動桿或聯結桿的水平角度.<br />* td2, tdd2:驅動桿之角速度及角加速度.<br />* Sigma:連桿之組合模式選擇(需為+1或-1)<br />* Driver:驅動桿之設定( 0 表示苗桿驅動,1 表示由聯結桿驅動,3滑塊驅動).<br />* Npts: 設定分割的點數或位置.<br />* r6,rh6,nlink:桿上特定點之位置,包括桿長,與桿之夾角及附於何桿.<br />* Mode:mode=0,畫簡單位置圖;=1 畫所有圖表;=2畫所有圖表,但用簡單位置圖.<br /><br /><br />***主程式==><br />drawsldpaths(0,0,[0 52 57 10],0,0.01,0.01,1,50,0,1)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/Rkym7qjGCfI/AAAAAAAAAEE/X0vLXYG26g8/s1600-h/%E8%BB%8C%E8%B7%A1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/Rkym7qjGCfI/AAAAAAAAAEE/X0vLXYG26g8/s320/%E8%BB%8C%E8%B7%A1.jpg" alt="" id="BLOGGER_PHOTO_ID_5065607224848943602" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=f743scd&.dnm=adeescd.jpg&.src=ph">軌跡分析</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RkynDKjGCgI/AAAAAAAAAEM/q1wxnh4zFjs/s1600-h/%E8%BB%8C%E8%B7%A1%E5%88%86%E6%9E%90%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 325px; height: 243px;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RkynDKjGCgI/AAAAAAAAAEM/q1wxnh4zFjs/s320/%E8%BB%8C%E8%B7%A1%E5%88%86%E6%9E%90%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5065607353697962498" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=f743scd&.dnm=8da3scd.jpg&.src=ph">軌跡各項要素分析</a>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com1tag:blogger.com,1999:blog-8347434684773912021.post-77098651384337485692007-05-09T23:42:00.000+08:002007-05-10T03:25:44.739+08:00機動學 作業八作業八 b94611042 王志豪 (Due date: 12pm May 9, 2007)<br />我有上本週4/26的課<br /><a href="http://terencew331.blogspot.com/">我的blog</a><br /><br />題目:<br /><br /><span style="font-weight: bold;">有一組四連桿,其桿長分別為r=[4 3 3 5],由桿2驅動,設第一固定桿角度theta1=0度; 角速度 td2=10rad/s; 角加速度tdd2=0 rad/s^2。</span><br /><br />* <span style="font-weight: bold;">問題一</span>:設桿2角度theta2=45度時,求各點之位置、速度與加速度為何?<br />* <span style="font-weight: bold;">問題二</span>:繪出此四連桿之相關位置及標明各點之速度方向及大小(以程式為之)。<br />* <span style="font-weight: bold;">問題三</span>:當桿2迴轉時,求出此組四連桿之限制角度,並繪出其位置(以程式為之)。<br />* <span style="font-weight: bold;">問題四</span>:設theta2=[0:20:360],試繪出此組四連桿之重疊影像,解釋為何有些沒有值。<br />* <span style="font-weight: bold;">問題五</span>:若將問題三考慮在內,只在可迴轉的範圍內迴轉,請問你能讓此組四連桿作成動畫方式迴轉嗎?<br /><br /><span style="font-size:130%;"><span style="font-weight: bold; color: rgb(51, 51, 255);">8.1</span></span><br />==>設桿2角度theta2=45度時,求各點之位置、速度與加速度為何?<br /><span style="font-weight: bold; color: rgb(204, 0, 0);">Ans:</span><br /><br />首先,按題目所示,我引用了網路講義第六章的一個函式function f4bar:<br /><br />***********************************************************************<br />function [data,form] = f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)<br />%<br />%function [data,form] = f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)<br />% This function analyzes a four-bar linkage when the driving link is<br />% crank or coupler. The input data are:<br />% theta1,theta2 are angles in degrees<br />% r=[r1 r2 r3 r4]= lengths of links(1=frame)<br />%td2 = crank or coupler angular velocity (rad/sec)<br />%tdd2 = crank or coupler angular acceleration (rad/sec^2)<br />%mode = +1 or -1. Identifies assembly mode<br />%linkdrive = 0 for crank as driver; 1 for coupler as driver<br />%data (1:4,1) = link positions for 4 links<br />%data (1:4,2) = link angles in degrees<br />%data (1:4,3) = link angular velocities<br />%data (1:4,4) = link angular accelerations<br />%data (1,5) = velocity of point Q<br />%data (2,5) = velocity of point P<br />%data (3,5) = acceleration of point Q<br />%data (4,5) = acceleration of point P<br />%data (1,6) = position of Q<br />%data (2,6) = position of P<br />%form = assembly status. form = 0, mechanism fails to<br />% assemble.<br />% program revised from Waldron's Textbook<br />% Revised:DSFON, BIME, NTU. Date: Feb. 7, 2007<br />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,<br />form=1;<br />% Check for the denominator equal to zero<br />if abs(C-A)>=1e-5<br />t4=2*atan((-B+mode*sqrt(pos))/(C-A));<br />s4=sin(t4);c4=cos(t4);<br />t3=atan2((r(1)*s1+r(4)*s4-r(2)*sx),(r(1)*c1+r(4)*c4-r(2)*cx));<br />s3=sin(t3);c3=cos(t3);<br />else<br />% If the denominator is zero, compute theta(3) first<br />A=-2*r(1)*r(3)*c1+2*r(2)*r(3)*cx;<br />B=-2*r(1)*r(3)*s1+2*r(2)*r(3)*sx;<br />C=rr(1)+rr(2)+rr(3)-rr(4)-2*r(1)*r(2)*(c1*cx+s1*sx);<br />pos=B*B-C*C+A*A;<br />if pos>=0,<br />t3=2*atan((-B-mode*sqrt(pos))/(C-A));<br />s3=sin(t3); c3=cos(t3);<br />t4=atan2((-r(1)*s1+r(3)*s3+r(2)*sx),...<br />(-r(1)*c1+r(3)*c3+r(2)*cx));<br />s4=sin(t4);c4=cos(t4);<br />end<br />end<br />theta(3)=t3;theta(4)=t4;<br />%velocity calculation<br />td(2)=td2;<br />AM=[-r(3)*s3, r(4)*s4; -r(3)*c3, r(4)*c4];<br />BM=[r(2)*td(2)*sx;r(2)*td(2)*cx];<br />CM=AM\BM;<br />td(3)=CM(1);td(4)=CM(2);<br /><br />%acceleration calculation<br /><br />tdd(2)=tdd2;<br />BM=[r(2)*tdd(2)*sx+r(2)*td(2)*td(2)*cx+r(3)*td(3)*td(3)*c3-...<br />r(4)*td(4)*td(4)*c4;r(2)*tdd(2)*cx-r(2)*td(2)*td(2)*sx-...<br />r(3)*td(3)*td(3)*s3+r(4)*td(4)*td(4)*s4];<br />CM=AM\BM;<br />tdd(3)=CM(1);tdd(4)=CM(2);<br />%store results in array data<br />% coordinates of P and Q<br />if linkdrive==1,<br />c2=c3;c3=cx;s2=s3;s3=sx;<br />r(2:3)=[r(3) r(2)];theta(2:3)=[theta(3) theta(2)];<br />td(2:3)=[td(3) td(2)];tdd(2:3)=[tdd(3) tdd(2)];<br />else<br />c2=cx;s2=sx;<br />end<br />for j=1:4,<br />data(j,1:4)=[r(j)*exp(i*theta(j)) theta(j)/d2g td(j) tdd(j)] ;<br />end % position vectors<br />data(1,5)=r(2)*td(2)*exp(i*theta(2));%velocity for point Q<br />data(2,5)=r(4)*td(4)*exp(i*theta(4));%velocity for point P<br />data(3,5)=r(2)*(i*tdd(2)-td(2)*td(2))*exp(i*theta(2));%acc of Q<br />data(4,5)=r(4)*(i*tdd(4)-td(4)*td(4))*exp(i*theta(4));%acc of P<br />data(1,6)=data(2,1);%position of Q, again<br />data(2,6)=data(1,1)+data(4,1);% position of P<br /><br />%find the accelerations<br />else<br />form=0;<br />if linkdrive==1,<br />r=[r(1) r(3) r(2) r(4)];<br />for j=1:4, data(j,1)=r(j).*exp(i*theta(j));end % positions<br />end<br />end<br />***********************************************************************<br /><br />這個程式的基本使用大致如下:<br />[data,form] = f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)<br />* r(1:4) = 各桿之長度,r(1)為固定桿,其餘分別為曲桿、結合桿及被動桿,即r=[r1 r2 r3 r4]。<br />* theta1 = 第一桿之水平角,或為四連桿之架構角,以角度表示。<br />* theta2 = 驅動桿之水平夾角,以角度表示。一般為曲桿角,但若為結合桿驅動,則為結合桿之水平夾角。<br />* td2 = 驅動桿(第二桿或第三桿)之角速度(rad/sec)。<br />* tdd2 = 驅動桿(第二桿或第三桿)之角加速度(rad/sec^2)。<br />* mode = +1 or -1. 組合模數,負值表示閉合型,正值為分支型,但有時需視實際情況而定。<br />* linkdrive = 0 (驅動桿為第二桿); 1 (驅動桿為第三桿) 。<br />* form = 組合狀態, 0 :表示無法組合; 1:可以正確組合<br />* data = 輸出矩陣,其大小為 4 X 7,各行之資料分配如下:<br /><br />**********************************************************<br /> 1 2(deg) 3(rad/s) 4(rad/s2) 5 6 7<br />I 桿1位置 θ1 ω1 α1 VQ |VQ| ∠VQ<br />II 桿2位置 θ2 ω2 α2 VP |VP| ∠VP<br />III 桿3位置 θ3 ω3 α3 AQ |AQ| ∠AQ<br />IV 桿4位置 θ4 ω4 α4 AP |AP| ∠AP<br />**********************************************************<br /><br />因此,我們便可以利用這個程式來解決問題.<br />首先,便是把題目所需條件代入程式中.<br /><br />***主程式==><br />[val,form]=f4bar([4 3 3 5],0,45,10,0,-1,0)<br />abs(val(:,1))<br />abs(val(:,2))<br />abs(val(:,3))<br />abs(val(:,4))<br />%我是以mode=-1來執行,也就是討論閉合型的狀況<br /><br />此時,便可得解,而由於位置他是以向量的模式來表現,所以實際位置必須直接用手計算之.<br /><br /><br />各桿之速度(rad/s):<br />第一桿 : 0<br />第二桿 : 10.0000<br />第三桿 : 16.2681<br />第四桿 : 4.9677<br /><br /><br />各桿之加速度(rad/s^2):<br />第一桿 : 0<br />第二桿 : 0<br />第三桿 : 491.4428<br />第四桿 : 383.6120<br /><br /><br />P點的 <br />位置 : (2.12 , 2.12) <br />速度 (rad/s) : 0.0212 + 0.0212i (10)<br />加速度 (rad/s^2) : -0.2121 - 0.2121i (0)<br /><br /><br />Q點的 <br />位置 : (3.17 , 4.93)<br />速度 (rad/s) : 0.0041 - 0.0245i (16.2681) <br />加速度 (rad/s^2) : -1.8712 - 0.4391i (491.4428) <br /><br /><span style="font-size:130%;"><br /><span style="font-weight: bold; color: rgb(51, 51, 255);">8.2</span></span><br />==>繪出此四連桿之相關位置及標明各點之速度方向及大小(以程式為之)。<br /><span style="font-weight: bold; color: rgb(204, 0, 0);">Ans:</span><br /><br />按題目所示,我引用了網路講義第六章的一個函式function drawlinks:<br /><br />***********************************************************<br />function [values]=drawlinks(r,th1,th2,mode,linkdrive)<br />%function drawlinks(r,th1,th2,mode,linkdrive)<br />%draw the positions of four-bar links<br />%call f4bar funcion<br />%r: row vector for four links<br />%th1: frame angle<br />%th2: crank angle or couple angle<br />%mode: assembly mode<br />%linkdrive: 0 for crank, 1 for coupler<br />%clf;<br />if nargin<5,linkdrive=0;end<br />if nargin<4,mode=1;end<br />[values b]=f4bar(r,th1,th2,0,0,mode,linkdrive);<br />rr=values(:,1);<br />rr(3,1)=rr(1,1)+rr(4,1);<br />rx=real(rr(:,1));rx(4)=0;<br />ry=imag(rr(:,1));ry(4)=0;<br />if b==1<br />plot([0 rx(1)],[0 ry(1)],'k-','LineWidth',4);<br />hold on;<br />if linkdrive==0<br /> plot([0 rx(2)],[0 ry(2)],'b-','LineWidth',1.5);<br /> plot([rx(2) rx(3)],[ry(2) ry(3)],'r-','LineWidth',2);<br />else<br /> plot([0 rx(2)],[0 ry(2)],'r-','LineWidth',2);<br /> plot([rx(2) rx(3)],[ry(2) ry(3)],'b-','LineWidth',1.5);<br />end<br />plot([rx(1) rx(3)],[ry(1) ry(3)],'g-','LineWidth',1.5);<br />plot(rx,ry,'bo');<br />text(0,0,' O');text(rx(1),ry(1),' R');<br />text(rx(2),ry(2),' P');text(rx(3),ry(3),' Q');<br />else<br />fprintf('Combination of links fail at degrees %6.1f\n',th2);<br />end<br />axis equal<br />grid on<br />******************************************************************<br /><br />這個程式的基本使用大致如下:<br />function drawlinks(r,th1,th2,mode,linkdrive)<br />* r(1:4) = 各桿之長度,r(1)為固定桿,其餘分別為曲桿、結合桿及被動桿。<br />* theta1 = 第一桿之水平角,或為四連桿之架構角,以角度表示。<br />* theta2 = 驅動桿之水平夾角,以角度表示。一般為曲桿角,但若為結合桿驅動,則為結合桿之水平夾角。<br />* mode = +1 or -1. 組合模式,負值表示閉合型,正值為分支型,但有時需視實際情況而定。<br />* linkdrive = 0 (驅動桿為第二桿); 1 (驅動桿為第三桿)<br /><br /><br />以及引用之前作業用過的function dyad_draw<br />*******************************************************************<br />function dyad_draw(rho,theta,td,tdd)<br />% Call function dyad(rho,theta,td,tdd) to<br />% analyze a dyad linkage composing cranks and a dyad with drawing.<br />% Inputs: rho:length of links<br />% theta:incling angles, deg.<br />% td:angular velocity, rad/s<br />% tdd:angular acceleration, rad/s^2<br />% Example:<br />% dyad_draw([15 10 5],[0 60 90],[.5 .8 .5],0)<br />clf;<br />[vec,data] = dyad(rho,theta,td,tdd);<br />x=[0;cumsum(real(data(:,1)))];y=[0;cumsum(imag(data(:,1)))];<br />for i=1:length(x)-1<br />linkshape([x(i) y(i)],[x(i+1) y(i+1)],1);<br />end<br />for k=1:length(rho)<br /> x0=x(k+1);y0=y(k+1);<br /> vx=x0+real(data(k,2));vy=y0+imag(data(k,2));<br /> ax=x0+real(data(k,3));ay=y0+imag(data(k,3));<br /> line([x0 vx],[y0 vy],'marker','s','linewidth',2);<br /> line([x0 ax],[y0 ay],'marker','s','color','r','linewidth',3)<br />end<br />sdata=sum(data);<br />ss=[real(sdata(1)) imag(sdata(1))];<br />vv=[real(sdata(2)) imag(sdata(2))];<br />aa=[real(sdata(3)) imag(sdata(3))];<br />line([0 ss(1)],[0 ss(2)],'linestyle',':','linewidth',2)<br />line([ss(1) ss(1)+vv(1)],[ss(2) ss(2)+vv(2)],...<br /> 'marker','d','color','g','linewidth',3)<br />line([ss(1) ss(1)+aa(1)],[ss(2) ss(2)+aa(2)],...<br /> 'marker','d','color','m','linewidth',3)<br />axis equal;grid on<br />*********************************************************************<br /><br />因此,我們便可以利用這兩個程式來解決問題.<br />於是,便把題目所需條件代入程式中.<br /><br />***主程式==><br />drawlinks([4 3 3 5],0,45,-1,0)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RkHvAbelcII/AAAAAAAAADE/HGPFSn1hQEI/s1600-h/HW8-1-2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RkHvAbelcII/AAAAAAAAADE/HGPFSn1hQEI/s320/HW8-1-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5062590246796226690" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2c40scd&.dnm=b7e3scd.jpg&.src=ph">四連桿相關位置</a><br /><br />drawlinks([4 3 3 5],0,45,-1,0)<br />dyad_draw([4 5],[0 99.5246],[0 4.9677]*0.05,[0 383]*0.001)<br />dyad_draw([3 3],[45 69.4856],[10 16.2681]*0.05,[0 491]*0.001)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RkHvMLelcJI/AAAAAAAAADM/TJonFEzIeHM/s1600-h/HW8-1-2.2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RkHvMLelcJI/AAAAAAAAADM/TJonFEzIeHM/s320/HW8-1-2.2.jpg" alt="" id="BLOGGER_PHOTO_ID_5062590448659689618" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2c40scd&.dnm=8641scd.jpg&.src=ph">連桿之速度方向與大小</a><br /><br /><br /><span style="color: rgb(51, 51, 255);font-size:130%;" ><span style="font-weight: bold;">8.3</span></span><br />==>當桿2迴轉時,求出此組四連桿之限制角度,並繪出其位置(以程式為之)。<br /><span style="font-weight: bold; color: rgb(204, 0, 0);">Ans:</span><br /><br />關於這題,在此則是使用了極限函數fb_angle_limits:<br /><br />*************************************************************<br />function [Ang1, Ang2]=fb_angle_limits(r,theta1,linkdrive)<br />%<br />%function [Ang1, Ang2]=fb_angle_limits(r,theta1,linkdrive)<br />% Find initital & final angles for the driving link<br />% linkdrive= (0 for crank; 1 for coupler as the driver).<br />% Variables:<br />% r=linkage row vector (cm)<br />% theta1=frame angle(degree);<br />% Ang1,Ang2=initial & final angles of the driving link(deg)<br />%Program<br />if nargin<3,linkdrive=0;end theta1="0;end" linkdrive="=" r="[r(1)" r1="r(1);r2=" r3="r(3);r4=" rmin="min(r);rmax=" rtotal="sum(r);" ang1="0;" ang2="2*pi;">(r3+r4)& abs(r1-r2)<abs(r3-r4) ang1="acos((-(r4-r3)^2+r2^2+r1^2)/(2*r1*r2));" ang2="acos((r2^2-(r4+r3)^2+r1^2)/(2*r1*r2));" end="" if="">(r3+r4)& abs(r1-r2)>=abs(r3-r4)<br />Ang1=acos((r2^2-(r4+r3)^2+r1^2)/(2*r1*r2));<br />Ang2=-Ang1;<br />end<br />% if (r1+r2)<=(r3+r4)&abs(r1-r2)>=abs(r3-r4)<br />% Ang1=0;<br />% Ang2=2*pi;<br />% end<br />if (r1+r2)<=(r3+r4)&abs(r1-r2)<abs(r3-r4) end="" adjst="(Ang2-Ang1)*1e-8;" ang1="acos((r2^2-(r4-r3)^2+r1^2)/(2*r1*r2));" if="" ang2="2*pi-Ang1;"><ang1,tt=ang1;ang1=ang2;ang2=tt;end function="" r="四連桿之長度向量,其定義與前函數相同。" theta1="第一桿之夾角,角度表示(deg)。" linkdrive="驅動模式(=0"><br />[Ang1, Ang2]=fb_angle_limits([4 3 3 5],0,0)<br /><br />此時,我們便可以得到:<br />Ang1(即驅動桿與x軸之間最小夾角,start)= 28.9550度<br />Ang2(即驅動桿與x軸之間最大夾角,stop )= 331.0450度<br /><br />因此,我們便可以利用這兩個角度來繪圖,同樣是用到function drawlinks<br /><br />***主程式==><br />[Ang1, Ang2]=fb_angle_limits([4 3 3 5],0,0)<br />drawlinks([4 3 3 5],0,28.9551,-1,0)<br />drawlinks([4 3 3 5],0,331.0449,-1,0)<br /><br /></ang1,tt=ang1;ang1=ang2;ang2=tt;end></abs(r3-r4)></abs(r3-r4)><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RkHvUrelcKI/AAAAAAAAADU/8KeQFjGdJS4/s1600-h/HW8-1-3.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RkHvUrelcKI/AAAAAAAAADU/8KeQFjGdJS4/s320/HW8-1-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5062590594688577698" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><abs(r3-r4) ang1="acos((-(r4-r3)^2+r2^2+r1^2)/(2*r1*r2));" ang2="acos((r2^2-(r4+r3)^2+r1^2)/(2*r1*r2));" end="" if=""><abs(r3-r4) end="" adjst="(Ang2-Ang1)*1e-8;" ang1="acos((r2^2-(r4-r3)^2+r1^2)/(2*r1*r2));" if="" ang2="2*pi-Ang1;"><ang1,tt=ang1;ang1=ang2;ang2=tt;end function="" r="四連桿之長度向量,其定義與前函數相同。" theta1="第一桿之夾角,角度表示(deg)。" linkdrive="驅動模式(=0"><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2c40scd&.dnm=df9escd.jpg&.src=ph">四連桿之極限角度位置圖</a><br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >8.4</span><br />==>設theta2=[0:20:360],試繪出此組四連桿之重疊影像,解釋為何有些沒有值。<br /><span style="font-weight: bold; color: rgb(204, 0, 0);">Ans:</span><br /><br />在此,我將theta2設為i,用function drawlinks直接寫一個for迴圈即可<br /><br />***主程式==><br />for i=0:20:360<br />drawlinks([4 3 3 5],0,i,-1,0)<br />end<br /><br /></ang1,tt=ang1;ang1=ang2;ang2=tt;end></abs(r3-r4)></abs(r3-r4)><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RkHvdLelcLI/AAAAAAAAADc/cu9miNmJMG0/s1600-h/HW8-1-4.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RkHvdLelcLI/AAAAAAAAADc/cu9miNmJMG0/s320/HW8-1-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5062590740717465778" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><abs(r3-r4) ang1="acos((-(r4-r3)^2+r2^2+r1^2)/(2*r1*r2));" ang2="acos((r2^2-(r4+r3)^2+r1^2)/(2*r1*r2));" end="" if=""><abs(r3-r4) end="" adjst="(Ang2-Ang1)*1e-8;" ang1="acos((r2^2-(r4-r3)^2+r1^2)/(2*r1*r2));" if="" ang2="2*pi-Ang1;"><ang1,tt=ang1;ang1=ang2;ang2=tt;end function="" r="四連桿之長度向量,其定義與前函數相同。" theta1="第一桿之夾角,角度表示(deg)。" linkdrive="驅動模式(=0"><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2c40scd&.dnm=54ccscd.jpg&.src=ph">四連桿之重疊影像</a><br /><br />跑完程式後,Matlab顯示了這些訊息:<br />Combination of links fail at degrees 0.0<br />Combination of links fail at degrees 20.0<br />Combination of links fail at degrees 340.0<br />Combination of links fail at degrees 360.0<br />這也就是我們在第三題裡面,所求出的四連桿之限制角度,是從28.955到331.045間才可做旋轉,因此其他角度是不會發生的.換個方式來講,沒有值的部份,其實就是沒有符合網路上第六章講義起先提到的:我們的四連桿必要滿足r2ejθ2+r3ejθ3=r1ejθ1+r4ejθ4,當四連桿滿足條件就代表實際情形中,它是可以轉到該角度的,故可得知我們上一題所算的限制角度,其實也就是運用這個閉合關係,完全是息息相關的.<br /><br /><br /><span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" >8.5</span><br />==>若將問題三考慮在內,只在可迴轉的範圍內迴轉,請問你能讓此組四連桿作成動畫方式迴轉嗎?<br /><span style="font-weight: bold; color: rgb(204, 0, 0);">Ans:</span><br /><br />當然能的.<br />在此,我們可以再次利用網路上的資源,也就是function move_4paths.<br />這是一個頗讚的動態模擬function,可以處理很多種軌跡.<br /><br />*****************************************************************************<br />function move_4paths(r,r6,th6,nlink,th1,td2,tdd2,sigma,driver,ntimes,npts)<br />%<br />%function move_4paths(r,r6,th6,nlink,th1,td2,tdd2,sigma,driver,ntimes,npts)<br />%<br />%draw the positions of four-bar links<br />%call f4bar.m funcion, f4limits.m, fb_angle_limits.m, body.m<br />%<br />%Inputs:<br />% r: row vector for four links<br />% th1: frame angle<br />% th2: crank angle or couple angle<br />% td2,tdd2:angular velocity and acceleration of the driving link.<br />% sigma: assembly mode<br />% driver: 0 for crank, 1 for coupler<br />% ntimes: no. of cycles<br />% npts: number of points divided<br />% r6,rh6,nlink:additional length and angle for nlink link.<br />%example:<br />% move_4paths([4 2 3 4],2,-30,3,0,10,0,1,0,4,100)<br />%<br />%clf;<br />if nargin<10, ntimes="3;npts=" npoint="abs(npts);" th2="linspace(Qstart,Qstop,npoint);" val="zeros(6,npoint);" i="1:npoint," x="real(val);y=" h="f4limits(r,th1,sigma,driver);" range="1.2*([min(min(x))" i="2:4,set(h(i),'erasemode','xor');end" h0="patch('xdata',[],'ydata',[],'erasemode','xor','facecolor','r',..." i="0;s=" m="1:ntimes" s="-s;" i="0;s=" i="i+s;">npoint|i==0,break;end;<br />set(h(2),'xdata',[0 x(2,i)], 'ydata',[0 y(2,i)]);%crank<br />set(h(3),'xdata',[x(2,i) x(3,i)], 'ydata',[y(2,i) y(3,i)]);%coupler<br />set(h(4),'xdata',[x(1,i) x(3,i)], 'ydata',[y(1,i) y(3,i)]);%Rocker<br />set(h0,'xdata',[x(4:6,i)], 'ydata',[y(4:6,i)]);<br />drawnow; %flush the draw buffer<br />pause(0.1);<br />end<br />end % for m loop<br /><br />%<br />function h=f4limits(r,th1,sigma,driver)<br />%function f4lmits(r,th1,sigma,driver)<br />%draw the positions of four-bar links<br />%call f4bar funcion<br />%r: row vector for four links<br />%th1: frame angle<br />%sigma: assembly mode<br />%driver: 0 for crank, 1 for coupler<br />% Example:h=f4limits([4 2 3 4],0,1,0)<br />[Qstart, Qstop]=fb_angle_limits(r,th1,driver)<br />[values b]=f4bar(r,th1,Qstart,0,0,sigma,driver);<br />if b==1,<br />h=draw4link(values,driver);<br />else<br />fprintf('Combination of links fails at degrees %6.1f\n',Qstart);<br />end<br />[values b]=f4bar(r,th1,Qstop,0,0,sigma,driver);<br />if b==1,<br />h=draw4link(values,driver);<br />else<br />fprintf('Combination of links fails at degrees %6.1f\n',Qstart);<br />end<br />axis equal<br />grid on<br />**************************************************************************<br /><br />***主程式1==><br />move_4paths([4 3 3 5],0,0,3,0,10,0,1,0,4,150)<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/p-GyffsT8BE"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/p-GyffsT8BE" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><a href="http://www.youtube.com/watch?v=p-GyffsT8BE">使用function move_4paths做出的動畫</a><br /><br /><br />當然,假如不依賴這個強大的function move_4paths的話,也是可以用兩個for迴圈,然後把最大極限角度最小極限角度當作上下限,然後區分成50等份(等分隨意,任人高興,純粹是動畫流暢度的問題),然後再把各角度代入function drawlinks中,運用for迴圈每次清圖(使用clf),便可以做出動畫了!只不過,這個做出來的品質明顯沒有使用function move_4paths來得好,因此這個程式,顯然地過於簡陋,還有頗多進步的空間......(汗).<br /><br />***主程式2==><br />AXIS([-5 5 -5 5]);<br />for theta=28.9551:(331.045-28.9551)/50:331.045<br />clf<br />axis equal<br />AXIS([-5 5 -5 5]);<br />drawlinks([4 3 3 5],0,theta,-1,0)<br />pause(0.2)<br />clf<br />end<br />grid on<br />for theta2=331.045:-(331.045-28.9551)/50:28.9551<br />clf<br />axis equal<br />AXIS([-5 5 -5 5]);<br />drawlinks([4 3 3 5],0,theta2,-1,0)<br />pause(0.2)<br />end<br />grid on<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/8nCBdXSM-l8"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/8nCBdXSM-l8" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><a href="http://www.youtube.com/watch?v=8nCBdXSM-l8">使用兩個for迴圈所製成的動畫</a></ang1,tt=ang1;ang1=ang2;ang2=tt;end></abs(r3-r4)></abs(r3-r4)>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com2tag:blogger.com,1999:blog-8347434684773912021.post-59788751639204268172007-04-26T00:04:00.000+08:002007-04-26T00:48:31.606+08:00機動學 作業七作業七 b94611042 王志豪<br />我有上本週4/19的課<br /><br />7.題目<br />設有三桿相連結成端桿(dyad)之型式。請利用網路講義中之函數dyad及dyad_draw作分析。<br /><br />function dyad_draw(rho,theta,td,tdd)<br /><br />其中:<br />* 各桿之對應長度rho=[a, a+5, a-5]cm,a=(你的學號末一碼)+10;<br />* 各桿之對應起始角度theta=[0, 0, 0]度;<br />* 各桿之對應角速度為td=[0.2, 0.5, 0 .3]rad/s;<br />* 各桿之對應角加速度為tdd=[0, 0.1, 0.2]rad/s^2;<br />問:<br />1. 當t=[1 2 3 4 5]秒時,此端桿之對應方位如何?<br />2. 繪出三桿之結點之速度,加速度與時間t之關係。<br />3. 能作出此時間區段之動畫嗎?<br /><br />Ans:<br /><span style="color: rgb(255, 255, 0);">(1)</span><br />首先,按題目所示,引用網路講義裡的兩個函式如下:<br /><br />*******************************************************************<br />function [vec, dyadata] = dyad(rho,theta,td,tdd)<br />%<br />% function [vec, th, dyadata] = dyad(rho,theta,td,tdd)<br />% Analyzes a dyad linkage composing a crank and a dyad.<br />% Inputs: rho:length of links<br />% theta:incling angles, deg.<br />% td:angular velocity, rad/s<br />% tdd:angular acceleration, rad/s^2<br />% Outputs: vec:absoute length of links<br />% th:angles of links, velocities & acc, deg<br />% dyadata:original data, in complex forms<br />% Example:[vec,th,dyadata] = dyad([5 10],[30 50],[2 4])<br />theta=theta(:); rho=rho(:);<br />n=length(rho);<br />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,<br />P=[0;Cin;Cout(1:10);D+Cout(11:20);D+Cin;D+Cout(20);Cout(1)];<br />else<br />P=[Cin;0;D;D+Cin];<br />end<br />xx=real(P);yy=imag(P);<br />x=xx*cos(th)-yy*sin(th)+A(1);<br />y=xx*sin(th)+yy*cos(th)+A(2);<br />line(x,y)<br />axis equal<br />************************************************************************<br />(註:個人決定再引用網路講義中另一個函數linkshape,這可使圖形美觀.)<br /><br />dyad_draw([12,17,7],[0,0,0],[0.2,0.5,0.3],[0,0.1,0.2]);<br /><br />for n=0:1:5;<br />dyad_draw ([12,17,7],[0.2*n,0.5*n+(1/2)*0.1*n^2,0.2*n+(1/2)*0.2*n^2],[0.2,0.5+n*0.1,0.3+0.2*n],[0,0.1,0.2]);<br />pause(1);<br />end;<br />%在此,我使用了一些數學運算代入dyad_draw這個function裡面.<br />%由於角速度以及角加速度隨時間而變,所以設一n變數進去,使其模仿時間.<br />%利用for迴圈,使他重複執行五遍,便可得下列圖片之結果.<br /><br />當t=[1 2 3 4 5]秒時,此端桿之對應方位:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri98W7elb7I/AAAAAAAAABc/xKg1KB69eEg/s1600-h/7-1-1.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri98W7elb7I/AAAAAAAAABc/xKg1KB69eEg/s320/7-1-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5057397639925297074" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=3434scd.jpg&.src=ph">第1秒</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri98pLelb8I/AAAAAAAAABk/EkQLPU0T1SQ/s1600-h/7-1-2.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri98pLelb8I/AAAAAAAAABk/EkQLPU0T1SQ/s320/7-1-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5057397953457909698" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=80a0scd.jpg&.src=ph">第2秒</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri98y7elb9I/AAAAAAAAABs/ySxdhL8Q6HI/s1600-h/7-1-3.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri98y7elb9I/AAAAAAAAABs/ySxdhL8Q6HI/s320/7-1-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5057398120961634258" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=bea0scd.jpg&.src=ph">第3秒</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri989Lelb-I/AAAAAAAAAB0/FTWC_MsrsuY/s1600-h/7-1-4.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri989Lelb-I/AAAAAAAAAB0/FTWC_MsrsuY/s320/7-1-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5057398297055293410" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=1930scd.jpg&.src=ph">第4秒</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri99E7elb_I/AAAAAAAAAB8/YPgkrxp3vqI/s1600-h/7-1-5.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri99E7elb_I/AAAAAAAAAB8/YPgkrxp3vqI/s320/7-1-5.jpg" alt="" id="BLOGGER_PHOTO_ID_5057398430199279602" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=25a0scd.jpg&.src=ph">第5秒</a><br /><br /><br /><br /><span style="color: rgb(255, 255, 0);">(2)</span><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=9517scd.jpg&.src=ph">第一桿之速度</a><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=d082scd.jpg&.src=ph">第一桿之加速度</a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/Ri99drelcAI/AAAAAAAAACE/4PwqBR8Tgzc/s1600-h/7-2-1.jpg"><img style="cursor: pointer; width: 246px; height: 185px;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/Ri99drelcAI/AAAAAAAAACE/4PwqBR8Tgzc/s320/7-2-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5057398855401041922" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri99sLelcBI/AAAAAAAAACM/v7_X-os2ODQ/s1600-h/7-2-2.jpg"><img style="cursor: pointer; width: 246px; height: 186px;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri99sLelcBI/AAAAAAAAACM/v7_X-os2ODQ/s320/7-2-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5057399104509145106" border="0" /></a><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=a120scd.jpg&.src=ph">第二桿之速度</a><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=8ef6scd.jpg&.src=ph">第二桿之加速度</a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri99_7elcCI/AAAAAAAAACU/ng-GP9evnqk/s1600-h/7-2-3.jpg"><img style="cursor: pointer; width: 247px; height: 184px;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri99_7elcCI/AAAAAAAAACU/ng-GP9evnqk/s320/7-2-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5057399443811561506" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri9-NLelcDI/AAAAAAAAACc/15eaopy72bE/s1600-h/7-2-4.jpg"><img style="cursor: pointer; width: 247px; height: 186px;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/Ri9-NLelcDI/AAAAAAAAACc/15eaopy72bE/s320/7-2-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5057399671444828210" border="0" /></a><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=4c24scd.jpg&.src=ph">第三桿之速度</a><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/66e8scd&.dnm=3e68scd.jpg&.src=ph">第三桿之加速度</a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EIk5wznBgOI/Ri9-ebelcEI/AAAAAAAAACk/GA4VQMw9JqM/s1600-h/7-2-5.jpg"><img style="cursor: pointer; width: 245px; height: 183px;" src="http://4.bp.blogspot.com/_EIk5wznBgOI/Ri9-ebelcEI/AAAAAAAAACk/GA4VQMw9JqM/s320/7-2-5.jpg" alt="" id="BLOGGER_PHOTO_ID_5057399967797571650" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri9-p7elcFI/AAAAAAAAACs/LJVSnhJwhIg/s1600-h/7-2-6.jpg"><img style="cursor: pointer; width: 244px; height: 181px;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/Ri9-p7elcFI/AAAAAAAAACs/LJVSnhJwhIg/s320/7-2-6.jpg" alt="" id="BLOGGER_PHOTO_ID_5057400165366067282" border="0" /></a><br /><br />%以上繪圖來自於dyad_draw,利用其角速度以及角加速度的值去跑出來的.<br />%簡單來說,就是利用第一題的程式,把其得到的值代入另一個繪圖小程式.<br />%這個程式是用plot畫出來的,順著桿長最大極限而畫出的.<br />%類似這個:<br />for a=1:length(rho)<br />figure<br />plot(aa(j,:))<br />figure<br />plot(bb(j,:))<br />end<br />%當初禮拜六畫這個圖的時候,代數好像不是用這個(忘了),不過概念上大概長這個模樣就是了.<br /><br /><span style="color: rgb(255, 255, 0);">(3)</span><br />axis equal;<br />dyad_draw([12,17,7],[0,0,0],[0.2,0.5,0.3],[0,0.1,0.2]);<br />pause(2)<br />clf<br />for n=1:5<br />axis equal;<br />dyad_draw([12,17,7],[0.2*t,0.5*t+0.5*0.1*t^2,0.3*t+0.5*0.2*t^2],[0.2,0.5+t*0.1,0.3+t*0.2],[0,0.1,0.2]);<br />pause(1)<br />clf<br />end;<br />%與第一題的作法雷同,加了些暫停,使其運作更流暢.<br /><br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/Nr3XGzanFyI"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/Nr3XGzanFyI" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><a href="http://www.youtube.com/watch?v=Nr3XGzanFyI">hw7動畫</a>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com4tag:blogger.com,1999:blog-8347434684773912021.post-41321843195500996222007-04-25T23:53:00.000+08:002007-04-26T00:01:50.148+08:00機動學 作業六作業六 b94611042 王志豪<br />我有上本週(十二日)的課。<br /><br />6.1 某一平面組合機構如下圖,其中包括兩滑塊元件一與地固定,另一分於固定於兩桿。青色者則為滑槽。試<br /><br />* 標出桿號及結數,並計算共計有多少連桿及結數。<br />* 利用古魯伯公式,計算此機構之可動度,請列出其計算方法。<br />* 請利用function[df]=gruebler()函數計算其對應之可動度。<br />* 討論此機構中滑塊及滑槽對可動度之影響。<br /><br />Ans:<br />(1)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EIk5wznBgOI/Ri96Jbelb5I/AAAAAAAAABM/lo7CD8fAKTk/s1600-h/6.1.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_EIk5wznBgOI/Ri96Jbelb5I/AAAAAAAAABM/lo7CD8fAKTk/s320/6.1.JPG" alt="" id="BLOGGER_PHOTO_ID_5057395208973807506" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/1926scd&.dnm=e20dscd.jpg&.src=ph">6.1之圖</a><br />經計算過後,共計有12桿及15個結(大致如圖所示,阿拉伯數字為桿號,英文J標記者為結)<br /><br />(2)<br />以下為利用古倫柏公式簡單計算的過程:<br /> M=3*(N-J-1)+F<br /> N=12 J=15 <br /> F為12個旋轉結+1個滑動結+2個滑槽結<br /> F=12*1+1*1+2*2=17<br /> M=-12+17=5 <br />所以得出自由度為5<br /><br />(3)<br />在此引用function[df]=gruebler()函數,載於課本之中.<br /><br />***********************************************************<br />function [df]=gruebler(nlink,jointype)<br />%% [df]=gruebler(nlink,jointype)<br />% nlink:no. of total links<br />% jointype:row matrix for number of joints for each type,<br />% the order of elements is:<br />% 1 R-joint 2 slider 3 compound joint(sliding & rolling)<br />% 4 ball 5 cylinder 6 planar 7 cylinder rolling<br />% 8 cam 9 helix 10 ball & 11 point contact<br />% Example: df=gruebler(4,[4])<br />% Author:D.S.Fon Bime,NTU. Date:Jan. 30, 2007<br />code=[1 1 2 3 2 3 1 2 1 3 5];<br />n=length(jointype);<br />dim=3;<br />if n>3, dim=6;<br />end;<br />ff=0;<br />njoint=0;<br />for i=1:n,<br />njoint=njoint+jointype(i);<br /> ff=ff+jointype(i)*code(i);<br />end;<br />df=dim*(nlink-njoint-1)+ff;<br />*************************************************************<br />函式輸入為:<br />gruebler(12,[12 1 2])<br />故得自由度為5<br /><br />(4)<br />在這個機構之中,由於滑塊與地面之間的滑動特性,使整個系統多出了一個滑動結.<br />滑槽則是因為它可以同時提供滑動與轉動的自由度,所以在計算自由度時,必須記為2<br /><br /><br /><br /><br />6.2 下面為一個立體機構,分別由兩個旋轉結,一個筒結及兩個球結組成。試說明:<br /><br />* 各結之自由度如何?<br />* 利用古魯伯公式如何計算整個機構之自由度,可以動嗎?<br />* 請利用function[df]=gruebler()函數計算其對應之可動度,並相互印證。<br />* 這裡有所謂惰性自由度嗎?其對整個機構之影響如何?<br /><br />Ans:<br />(1)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/Ri96Xrelb6I/AAAAAAAAABU/hLOwNRdiBgA/s1600-h/6.2.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/Ri96Xrelb6I/AAAAAAAAABU/hLOwNRdiBgA/s320/6.2.JPG" alt="" id="BLOGGER_PHOTO_ID_5057395453786943394" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/1926scd&.dnm=a95fscd.jpg&.src=ph">6.2之圖</a><br />標記模式與6.1相同,按照課本上所述,大致可以分成下列三種狀況:<br />J2,J3,J5 為球結,自由度為3<br />J1,J6 為旋轉結,自由度為1<br />J5 為圓柱結,自由度為2<br /><br />(2)<br />m=6(N-J-1)+F=6(6-6-1)+13=7<br />其自由度為7<br /><br />(3)<br />再次引用function[df]=gruebler()函數計算,函式輸入為:<br />gruebler(6,[2 0 0 3 1])<br />運算後可以得到自由度為7<br /><br />(4)<br />是的,本題有惰性自由度.經過觀察,5號桿與6號桿可以自轉,所以本題的惰性自由度為2,總自由度為7-2=5.而基本上,惰性自由度對系統的影響為總自由度的減少,這是因為可自轉的軸決定系統外型時,其自轉角度不影響系統的外型.<br />據查網路資料以及配合課本分析,在一般的機構設計中,如果並非必要,應盡量少有這類的設計模式.<br /><br /><br /><br /><br />6.3<br />* 何謂葛拉索機構及非葛拉索機構?<br />* 假設有三組四連桿,設第一桿為固定桿,各桿長度分別如下:<br />1. 第一組:桿1-桿4分別為7,4,6,5cm<br />2. 第二組:桿1-桿4分別為8,3.6,5.1,4.1cm<br />3. 第三組:桿1-桿4分別為5.4,3.1,6.6,4.7cm<br /><br />* 試問各組應屬何種機構?其迴轉情況會如何?<br />* 試用grashof()函數檢驗上述三組的連桿組合。<br />* 上述三組連桿若要成為葛拉索機構,則應如何改善?<br /><br />Ans:<br />(1)<br />1.葛拉索型:<br />在一四連桿組中,最短桿與最長桿之和小於其他兩桿之和的時後,至少有一桿為可旋轉桿,稱之葛拉索第一類型,亦稱葛拉索型.<br /><br />2.非葛拉索型:<br />最短桿與最長桿之和大於其他兩桿之和時,所有的活動連桿必為搖桿,無法產生完整迴轉運動.稱之葛拉索第二類型,或是非葛拉索型<br /><br />(2)<br />首先得引用一個function,也是課本裡面就有附的.<br /><br />***************************************************<br />function ans=grashof(ground_no,linkage)<br />% Function to test the Grashof linkage<br />% Inputs:<br />% ground_no:the ground link number in the order<br />% linkage: row matrix for lengths of the 4 links<br />% in original assigned order.<br />% Example:ans=grashof(4,[4 4.2 2.6 2])<br />% Revised: March 4, 2006<br />ground=linkage(ground_no);<br />link=sort(linkage);% sorting the links<br />ig=find(linkage==link(1));<br />if link(1)+link(4)>link(3)+link(2),<br />ans='Non-Grashof Linkage';<br />elseif link(1)+link(4)==link(3)+link(2)<br />ans='Neutral Linkage';<br />elseif link(1)==ground,<br />ans='Double-Crank Linkage';<br />else<br />switch ig<br />case 1<br /> im=3;<br />case 2<br /> im=4;<br />case 3<br /> im=1;<br />case 4<br /> im=2;<br />end<br />if ground==linkage(im)<br /> ans='Double-Rocker Linkage';<br />else<br /> ans='Crank-Rocker Linkage';<br />end<br />end<br />*****************************************************<br /><br />在第一組中,由題目中可知,7+4=6+5,屬葛拉索第三類桿,即中立連桿組 <br />函式:<br />grashof(1,[7 4 6 5])<br />ans =<br />Neutral Linkage<br /><br />第二組裡,8+3.6>5.1+4.1,為葛拉索第二類桿,乃非葛拉索連桿<br />函式:<br />grashof(1,[8 3.6 5.1 4.1])<br />ans =<br />Non-Grashof Linkage<br /><br />第三組中,6.6+3.1<5.4+4.7,屬於葛拉索第一類桿,又至少有一桿為曲柄,其接地桿鄰近最短桿,所以是曲柄搖桿型<br />函式:<br />grashof(1,[5.4 3.1 6.6 4.7])<br />ans =<br />Crank-Rocker Linkage<br /><br />(3)<br />仔細觀察上面三組的數據,可以發現只有第二組四連桿為非葛拉索型.<br />假若想把它改成葛拉索型機構,個人認為可以將最長桿火最短桿減短~~<br />或者讓第二和第三長的連桿長度增加......<br />這樣一來,便可以達成葛拉索機構最長與最短之和小於另外兩桿之和的要求囉.Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-33392331837390882492007-04-24T12:26:00.000+08:002007-04-24T12:42:48.627+08:00Google的漢語拼音法~~剛剛去看了一下Google的漢語拼音法......<br />嗯,感覺若記熟的話,應該打字速度會變快很多吧~~~<br />事實上,注音輸入好像本來在各種輸入法裡面,速度算慢的了.........]<br /><br /><a target="_blank" href="http://tw.myblog.yahoo.com/jw%21p1JERgWaHxxQAzo25DUHqzU-/article?mid=586&prev=587&amp;next=563">漢語拚音對照表</a><br /><br /><b><a href="http://tw.myblog.yahoo.com/jw%21p1JERgWaHxxQAzo25DUHqzU-/article?mid=586&prev=587&next=563"><b><span style=";font-family:細明體;font-size:180%;" ></span></b></a></b>只不過......我個人目前還是比較習慣注音耶......XD<br />感覺上用漢語拼音,一整個就是怪怪的.<br />如果實際用念它的拼音,其實跟我們實際發音有不少差別,非常詭異.<br />感覺漢語拼音比較像是讓外國人好上手的東西~~<br />而不是真的屬於本地人會有的口音......<br />如果是用國際化這種說法,我個人一向是不以為然啦......<br />嗯,不過若單論加快打字速度來說,這項輸入法似乎確實有它的優勢在~~~<br /><br />不知道大陸那邊,在學發音的時候,是真的使用漢語發音來學習麼???<br />有點好奇......Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-75996955399629048632007-04-11T19:25:00.000+08:002007-04-18T18:19:20.942+08:00機動學 作業五作業五 b94611042 王志豪<br />5.1.1<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RiXtvxp-sAI/AAAAAAAAAAc/Nmbt4UdhOrA/s1600-h/5.1.1%E6%89%8B%E8%87%82%E5%A4%96%E5%9E%8B.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RiXtvxp-sAI/AAAAAAAAAAc/Nmbt4UdhOrA/s320/5.1.1%E6%89%8B%E8%87%82%E5%A4%96%E5%9E%8B.jpg" alt="" id="BLOGGER_PHOTO_ID_5054707561832296450" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/487bscd&.dnm=dd7ascd.jpg&.src=ph">手臂外型</a><br />繪出手臂外型的程式,如下:<br />L1=30;<br />L2=25;<br />L3=10;<br />arm1=[0 0;L1/6 -L1/5;L1*(5/6) -L1/6;L1 0;L1*(5/6) L1/6;L1/6 L1/5;0 0;L1 0]<br />arm2=[L1 0;L2/6+L1 -L2/6;L2*(5/6)+L1 -L2/6;L1+L2 0;L2*(5/6)+L1 L2/6;L2/6+L1 L2/6;L1 0;L1+L2 0]<br />palm=[L1+L2 0;L3/3+L1+L2 -L3/3;L1+L2+L3 0;L1+L2 0;]<br />axis equal<br />line(arm1(:,1),arm1(:,2));<br />line(arm2(:,1),arm2(:,2));<br />line(palm(:,1),palm(:,2));<br /><br />5.1.2<br />程式函數function body,其程式約略介紹如下:<br /><br />function body(L1,L2,L3,theta1,theta2,theta3)<br />%上手臂.下手臂及手掌的長度分別輸入於前三項,後三項則為所欲之角度<br /><br />arm1=[0 0;L1/6 -L1/5;L1*(5/6) -L1/6;L1 0;L1*(5/6) L1/6;L1/6 L1/5;0 0;L1 0];<br />arm2=[L1 0;L2/6+L1 -L2/6;L2*(5/6)+L1 -L2/6;L1+L2 0;L2*(5/6)+L1 L2/6;L2/6+L1 L2/6;L1 0;L1+L2 0];<br />palm=[L1+L2 0;L3/3+L1+L2 -L3/3;L1+L2+L3 0;L1+L2 0;];<br />%建立起手臂及手掌的矩陣<br />axis equal<br />line(arm1(:,1),arm1(:,2));<br />line(arm2(:,1),arm2(:,2));<br />line(palm(:,1),palm(:,2));<br />%繪出手臂外型<br /><br />clf<br />axis equal<br />AXIS([-70 70 -70 40]);<br />a1=arm1(:,1)*cosd(-theta1)-arm1(:,2)*sind(-theta1);<br />b1=arm1(:,1)*sind(-theta1)+arm1(:,2)*cosd(-theta1);<br />line(a1,b1);<br />theta2=180+theta1-theta2;<br />a2=arm2(:,1)*cosd(-theta2)-arm2(:,2)*sind(-theta2)+a1(4)-(L1)*cosd(-theta2);<br />b2=arm2(:,1)*sind(-theta2)+arm2(:,2)*cosd(-theta2)+b1(4)-(L1)*sind(-theta2);<br />line(a2,b2);<br />theta3=180+theta2-theta3;<br />a3=palm(:,1)*cosd(-theta3)-palm(:,2)*sind(-theta3)+a2(4)-(L1+L2)*cosd(-theta3);<br />b3=palm(:,1)*sind(-theta3)+palm(:,2)*cosd(-theta3)+b2(4)-(L1+L2)*sind(-theta3);<br />line(a3,b3);<br />%在這裡,主要就是開始讓手臂和手掌開始旋轉.<br />%這邊的概念,是先將每個手臂和手掌物件先作旋轉的動作,然後再作平移.<br />%由於程式執行速度極快,所以肉眼是分辨不出來的,故可直接得到轉動後的圖形.<br /><br />5.1.3<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RiXuBBp-sBI/AAAAAAAAAAk/apsrJLfEzmg/s1600-h/5.1.3+%E6%89%8B%E8%87%82%E6%97%8B%E8%BD%89%E5%BE%8C%E7%9A%84%E6%A8%A3%E5%AD%90.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RiXuBBp-sBI/AAAAAAAAAAk/apsrJLfEzmg/s320/5.1.3+%E6%89%8B%E8%87%82%E6%97%8B%E8%BD%89%E5%BE%8C%E7%9A%84%E6%A8%A3%E5%AD%90.jpg" alt="" id="BLOGGER_PHOTO_ID_5054707858185039890" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/487bscd&.dnm=ee55scd.jpg&.src=ph">圖片</a><br /><br />5.1.4<br /><object height="350" width="425"><param name="movie" value="http://www.youtube.com/v/Exa5vSWR7AE"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/Exa5vSWR7AE" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"></embed></object><br /><a href="http://www.youtube.com/watch?v=Exa5vSWR7AE">動畫連結</a><br /><br />動畫主程式大致如下:<br /><br />%主程式<br />theta1=linspace(90,75,10)<br />theta2=linspace(-45,-35,10)<br />theta3=linspace(-30,-10,10)<br />for n=1:10<br />body(30,25,10,theta1(n),theta2(n),theta3(n))<br />pause(0.5)<br />end<br />%主程式這邊是利用先前所建立的function body,直接在外部做迴圈,使之變為動畫.<br /><br /><br />5.2.1<br />基本上,每個人每雙手的五根手指頭,除了大拇指之外,其餘者均為三連桿的結構.當中第二與第三指節應該是只能勉強彎曲至90度,而與手掌相連的第一指節,其所能彎曲的角度個人是秉持保留態度,畢竟過去看過不少人曾做出蠻令人驚訝的彎曲角度,應該也能算它是球型關節吧.<br />好,回歸機動學課本上所述,一個手掌的指頭在同一平面上作移動的情形,以自由度來講,把手掌視為接地的一端,指節分別為第二.第三.四桿,總桿數共計為四.而由於題目要我們探討於同一平面上的情形,故第一指節的球型關節便限於同一平面,所以會共有三個節,其自由度總和為三.<br />此時,便可使用課本所介紹的古魯伯公式,M=3(N-J-1)+sum(f)=3(4-3-1)+3=3 ,所以可以得到自由度為三的結論,並由三個指節來分別作為驅動桿.<br /><br />5.2.2<br />%大抵而言,這個手指的function是用function body 所修改過來的,邏輯大致差不多,只有外型有變化而已.<br />function finger(L1,L2,L3,theta1,theta2,theta3)<br /><br />arm1=[0 0;L1/6 -L1/5;L1*(5/6) -L1/6;L1 0;L1*(5/6) L1/6;L1/6 L1/5;0 0;L1 0];<br />arm2=[L1 0;L2/6+L1 -L2/6;L2*(5/6)+L1 -L2/6;L1+L2 0;L2*(5/6)+L1 L2/6;L2/6+L1 L2/6;L1 0;L1+L2 0];<br />palm=[L1+L2 0;L3/3+L1+L2 -L3/3;L1+L2+L3 0;L3/3+L1+L2 L3/3;L1+L2 0;];<br />%建立起三節手指的矩陣<br />axis equal<br />line(arm1(:,1),arm1(:,2));<br />line(arm2(:,1),arm2(:,2));<br />line(palm(:,1),palm(:,2));<br />%繪出手指外型<br />axis equal<br />a1=arm1(:,1)*cosd(-theta1)-arm1(:,2)*sind(-theta1);<br />b1=arm1(:,1)*sind(-theta1)+arm1(:,2)*cosd(-theta1);<br />line(a1,b1);<br />theta2=180+theta1-theta2;<br />a2=arm2(:,1)*cosd(-theta2)-arm2(:,2)*sind(-theta2)+a1(4)-(L1)*cosd(-theta2);<br />b2=arm2(:,1)*sind(-theta2)+arm2(:,2)*cosd(-theta2)+b1(4)-(L1)*sind(-theta2);<br />line(a2,b2);<br />theta3=180+theta2-theta3;<br />a3=palm(:,1)*cosd(-theta3)-palm(:,2)*sind(-theta3)+a2(4)-(L1+L2)*cosd(-theta3);<br />b3=palm(:,1)*sind(-theta3)+palm(:,2)*cosd(-theta3)+b2(4)-(L1+L2)*sind(-theta3);<br />line(a3,b3);<br /><br />%小指<br />patch([0,-8,-8,0,0],[0 0 4 4 0],'b')<br />%繪製手掌<br />theta1=linspace(0,90,10)<br />theta2=linspace(180,90,10)<br />theta3=linspace(180,90,10)<br />for n=1:10<br />finger(4,2.5,2.5,theta1(n),theta2(n),theta3(n)) %小指<br />pause(0.5)<br />%基本上就是利用呼叫function,然後將原本動畫型式,改做每個圖案均會保留,用以得到指頭之極限位置<br />end<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EIk5wznBgOI/RiXuTxp-sCI/AAAAAAAAAAs/1C-tnjsWu_s/s1600-h/5.2.2+%E5%B0%8F%E6%8C%87.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_EIk5wznBgOI/RiXuTxp-sCI/AAAAAAAAAAs/1C-tnjsWu_s/s320/5.2.2+%E5%B0%8F%E6%8C%87.jpg" alt="" id="BLOGGER_PHOTO_ID_5054708180307587106" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2bc4scd&.dnm=68f8scd.jpg&.src=ph">小指的圖</a><br /><br />%無名指<br />patch([0,-8,-8,0,0],[0 0 4 4 0],'b')<br />%繪製手掌<br />theta1=linspace(0,90,10)<br />theta2=linspace(180,90,10)<br />theta3=linspace(180,90,10)<br />for n=1:10<br />finger(5.5,3.5,2.7,theta1(n),theta2(n),theta3(n)) %無名指<br />pause(0.5)<br />end<br />%利用呼叫function,然後將原本動畫型式,改做每個圖案均會保留,用以得到指頭之極限位置<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RiXueRp-sDI/AAAAAAAAAA0/0VptJmfUmWk/s1600-h/5.2.2+%E7%84%A1%E5%90%8D%E6%8C%87.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RiXueRp-sDI/AAAAAAAAAA0/0VptJmfUmWk/s320/5.2.2+%E7%84%A1%E5%90%8D%E6%8C%87.jpg" alt="" id="BLOGGER_PHOTO_ID_5054708360696213554" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2bc4scd&.dnm=c79bscd.jpg&.src=ph">無名指的圖</a><br /><br />%中指<br />patch([0,-8,-8,0,0],[0 0 4 4 0],'b')<br />%繪製手掌<br />theta1=linspace(0,90,10)<br />theta2=linspace(180,90,10)<br />theta3=linspace(180,90,10)<br />for n=1:10<br />finger(6.2,3.7,2.8,theta1(n),theta2(n),theta3(n)) %中指<br />pause(0.5)<br />end<br />%利用呼叫function,然後將原本動畫型式,改做每個圖案均會保留,用以得到指頭之極限位置<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EIk5wznBgOI/RiXunBp-sEI/AAAAAAAAAA8/V7uQDRobxT4/s1600-h/5.2.2+%E4%B8%AD%E6%8C%87.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_EIk5wznBgOI/RiXunBp-sEI/AAAAAAAAAA8/V7uQDRobxT4/s320/5.2.2+%E4%B8%AD%E6%8C%87.jpg" alt="" id="BLOGGER_PHOTO_ID_5054708511020068930" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2bc4scd&.dnm=698cscd.jpg&.src=ph">中指的圖</a><br /><br />%食指<br />patch([0,-8,-8,0,0],[0 0 4 4 0],'b')<br />%繪製手掌<br />theta1=linspace(0,90,10)<br />theta2=linspace(180,90,10)<br />theta3=linspace(180,90,10)<br />for n=1:10<br />finger(2.6,2.5,2.6,theta1(n),theta2(n),theta3(n)) %食指<br />pause(0.5)<br />end<br />%利用呼叫function,然後將原本動畫型式,改做每個圖案均會保留,用以得到指頭之極限位置<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RiXuxRp-sFI/AAAAAAAAABE/Br3F5Za8DC0/s1600-h/5.2.2+%E9%A3%9F%E6%8C%87.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RiXuxRp-sFI/AAAAAAAAABE/Br3F5Za8DC0/s320/5.2.2+%E9%A3%9F%E6%8C%87.jpg" alt="" id="BLOGGER_PHOTO_ID_5054708687113728082" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=/2bc4scd&.dnm=86b4scd.jpg&.src=ph">食指的圖</a><br /><br />5.2.3<br />坦白講,我個人實在不大清楚這題所要求的東西.簡單來說,每個投手的姿勢都不盡相同,每個人的手長也各不同,我不知道王建民的各手指長度,所以在一開始,就已經不知如何下手.其二,每次投球出去的時候,隨著力道大小方向的不同,各種加速度也不盡相同,再者不同的球路所造成手指在運動時的加速度以及速度也會不同,直球.滑球.指叉球......等各式球路,變因太多,實不知該如何計算其各手指的加速度以及速度.<br />話說回來,單純探討各手指之速度及加速度如何,大抵應該就是在出手時,手指的速度以及加速度會與球相同.當然,這是總計的結果.假設如果要把各手指的分量精密計算的話,變數便會大幅增加.考慮到第一指節是球狀關節,所以在純粹的向前加速度與速度中,它可以加入轉動的數值,各手指對球的旋轉所造成的加速度總和,便可以讓球產生變化.<br />至於與上面單純探討四隻手指在同一平面所能做出的最大變動範圍,即是可以影響球路的高低.當四隻手指越往下扣,球路就會壓的越低,反之亦然.而在此時,就四隻手指單純的速度向量分析,關鍵點於脫手時,四隻手指對於跟球路同方向之速度以及加速度,會在剎那間達到相等.此時必須先排除因摩擦力所造成球產生另外一軸的轉動分量,單純分析相同方向的速度與加速度才是.<br />不過球員執球時,通常不會五指均緊貼著球.大部分的時候,均只有大拇指.食指.中指有接觸,其餘無名指與小指則未與球有接觸的機會.此時若要探究無名指與小指的速度與加速度,大致來說,應該是會跟手臂揮動之速度與加速度相等,然後再考慮一些手腕的轉動,大致就可以求得了.<br />單純手指速度與加速度的分析,大抵就是這樣吧.<br />至於有關講義第三章的dyad_draw函式,由於得不到確切的球員指長數據,故無法有個精確明顯的數字可以直接代入分析,所以這題我便採用理論分析的方式而已.<br />(附註:若要簡單分析,可假設球投出的瞬間,手掌和接手掌指節的角速度是和角加速度是W和a,然後指節長度是R,故切線加速度即為aR,而法線加速度便是w*w*R)Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-33824229973388695262007-03-31T00:10:00.000+08:002007-04-18T18:05:12.560+08:00機動學 作業四作業四 b94611042 王志豪<br />4-1<br /><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/qq_H1OZUZRM"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/qq_H1OZUZRM" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br />L=42+10;<br />%在此宣告三角形的邊長<br />axis equal;<br />AXIS([-110 110 -110 110])<br />%上面主要限制整個圖形在做運動時的座標範圍<br />x=[0 -1*L/2 L/2 0];<br />y=[(3)^(1/2)*L/2 0 0 (3)^(1/2)*L/2];<br />%以上為三點座標的一筆劃法,由於是一筆畫,故起點座標必須重複一次<br />a=line(x,y)<br />%繪圖<br />for n=1:180<br />rotate(a,[0 0 1],2,[L/2 0 0])<br />pause(0.002)<br />end<br />for n=1:180<br />rotate(a,[0 0 1],2,[0 (3)^(1/2)*(L)/2 0])<br />pause(0.002)<br />end<br />for n=1:180<br />rotate(a,[0 0 1],2,[-1*L/2 0 0])<br />pause(0.002)<br />end;<br />%在此,我使用for做迴圈,按題目要求,需分別對三頂點作旋轉,故重複使用三遍<br />%主要的原理是利用rotate達成旋轉一個物件的目的<br />%使用pause的意義在於擔心程式跑太快,肉眼無法跟上,故刻意減緩其速度以便觀察<br /><br />4-2<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EIk5wznBgOI/RiXeghp-r-I/AAAAAAAAAAM/q2ySaJ6zI4I/s1600-h/4-2%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_EIk5wznBgOI/RiXeghp-r-I/AAAAAAAAAAM/q2ySaJ6zI4I/s320/4-2%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5054690807164874722" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=8e50scd&.dnm=4fedscd.jpg&.src=ph" rel="nofollow">4-2之圖</a><br />程式如下:<br />linkshape([10 0],[0,0],2)<br />%在此建立一個連桿的初始位置以及其寬度<br />a=10;<br />b=0;<br />x1=15;<br />y1=0;<br />for n=1:15:360;<br />x2=a*cosd(n);<br />y2=-a*sind(n);<br />%一樣是使用for迴圈來處理這個問題<br />%簡單來說,將360度的圓角度,每隔15度切割一次,作為旋轉的目的地的基準<br />%由於轉點為原點,故座標轉換就十分簡單了,利用sin和cos函數便可達到轉換座標的目的<br />linkshape([x2,y2], [0,0], 2)<br />line([x1,x2],[y1,y2]);<br />end<br />%當每個所欲旋轉所至之地點均確立後,做連線,此題即可解決<br /><br />當中有使用到一個function如下:<br />function linkshape(A,B,dd)<br /><br />if nargin==2,dd=1;end;<br />d=abs(dd);<br />AB=(B(1)+j*B(2))-(A(1)+j*A(2));<br />D=abs(AB);th=angle(AB);<br />t=linspace(pi/2,2.5*pi,20);<br />Cout=max(d/2,0.2)*exp(j*t');<br />Cin=Cout/2;<br />if dd>0,<br />P=[0;Cin;Cout(1:10);D+Cout(11:20);D+Cin;D+Cout(20);Cout(1)];<br />else P=[Cin;0;D;D+Cin];<br />end<br />xx=real(P);yy=imag(P);<br />x=xx*cos(th)-yy*sin(th)+A(1);<br />y=xx*sin(th)+yy*cos(th)+A(2);<br />line(x,y)<br />axis equal<br />%這個function摘自教學網站上的範例,可供我畫出一個漂亮的連桿圖<br /><br />4-3<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EIk5wznBgOI/RiXexRp-r_I/AAAAAAAAAAU/5lxcGKoA2mY/s1600-h/4-3%E5%9C%96.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_EIk5wznBgOI/RiXexRp-r_I/AAAAAAAAAAU/5lxcGKoA2mY/s320/4-3%E5%9C%96.jpg" alt="" id="BLOGGER_PHOTO_ID_5054691094927683570" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://tw.pg.photos.yahoo.com/ph/terencew_331/detail?.dir=8e50scd&.dnm=d806scd.jpg&.src=ph" rel="nofollow">4-3之圖</a><br />程式如下:<br />a1=0;<br />a2=3;<br />a3=13;<br />a4=10;<br />b1=0;<br />b2=4;<br />b3=4;<br />b4=0;<br />linkshape([a2 b2],[a1,b1],2);<br />linkshape([a3 b3],[a2,b2],3);<br />linkshape([a4 b4],[a3,b3],1.5);<br />linkshape([a1 b1],[a4,b4],2);<br />%以上為確立四個連桿的初始位置<br />for n=0:30:360;<br />o=a2*cosd(n)+b2*sind(n);<br />p=-a2*sind(n)+b2*cosd(n);<br />q=a3+(o-a2);<br />r=p;<br />linkshape([o p],[a1,b1],2);<br />linkshape([q r],[o,p],3);<br />linkshape([a4 b4],[q,r],1.5);<br />linkshape([a1 b1],[a4,b4],2);<br />end;<br />%這題明顯是平行四邊形的變動,由於平行四邊形的各角之角度均可變化,而邊長全都維持<br />%當平行四邊形旋轉的時候,為了維持兩邊互相平行,故對面的連桿之x座標以及y座標得注意數值<br />%可先自行先在紙面上做圖得知,平行四邊形的旋轉,是兩兩各繞一點作旋轉<br />%所以把其中兩個座標丟入for迴圈後,開始座標變換,可得兩點之旋轉座標<br />%最後,開始調整,由於另兩點於這兩點成平行狀態,故可藉由平移的方式,求得其座標<br />%座標全部求出,用linkshape連線,得解,此題完畢Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com1tag:blogger.com,1999:blog-8347434684773912021.post-10932901088645674612007-03-24T23:58:00.000+08:002007-03-25T00:00:09.811+08:00機動學 作業三作業三 b94611042 王志豪<br /><br />p3.1<br /><a href="http://www.transferbigfiles.com/Download.aspx?id=e7db9050-1943-4059-8d4f-520d4c943d7a" rel="nofollow">手臂、手肘與關節之對應位置與軌跡</a><br />程式如下:<br />for n=25:5:50<br />th1=acosd((n.^2+26.2^2+29.2^2-33.6^2)./(2*sqrt(n.^2+26.2^2)*29.2))<br />L=sqrt(n.^2+26.2^2)<br />th2=180-atand(X/28.2)-th1<br />Y=sind(th2)*29.2<br />X=cosd(th2)*29.2+26.2<br />linkshape ([26.2,0],[X,Y])<br />linkshape ([0,n],[X,Y])<br />end<br />(2)<br />約莫50公分<br />(3)<br />由於考慮到肩膀的寬度,所以最大伸長量大約是手臂手肘的總長微傾個角度後,所得之的最大垂直高度,然後用Matlab大約就可以計算出來,並描繪其軌跡.<br /> 當然,最基本的假設自然是要根植於手是只能與頭在同一平面上做轉動,不可以自由地做三維的轉動.<br /><br />p3.2<br />(1)旋轉對<br /> 旋轉隊又稱R型對,是平面低對最常用的方式.而這種對偶僅僅只能做迴轉,不能平移,只有一個自由度,日常生活常見的例子,有門閂.軸承.插梢.<br />1.門閂<br /><a href="http://www.surf-current.com/kan08.JPG" rel="nofollow">最基本的門閂</a><br /><a href="http://www.wuging.com.tw/images/mh0018.JPG" rel="nofollow">各式門閂</a><br />2.軸承<br /><a href="http://img.diytrade.com/cdimg/58799/116886/0/1035998926.jpg" rel="nofollow">常見的軸承</a><br /><a href="http://www.czdfzc.cn/yuancg.jpg" rel="nofollow">拆開看單一的軸承</a><br />3.插梢<br /><a href="http://home.kimo.com.tw/rk88168/15zc.htm" rel="nofollow">各式插梢</a><br /><a href="http://www.tnf.gov.tw/jpg/FIRE3.gif" rel="nofollow">用於滅火器的插梢</a><br />(2)高對與低對運動結<br />1.低對活動結<br /><a href="http://www.ajqcw.com/manage/admin/webedit/uploadfile/200581594148217.JPG" rel="nofollow">二行程汽油機工作原理(活塞)</a><br /><a href="http://img.diytrade.com/cdimg/182710/431391/0/1059128131.jpg" rel="nofollow">齒輪(螺旋對)</a><br />2.高對運動結<br /><a href="http://webclass.ncu.edu.tw/%7Eme332a/10-3.html" rel="nofollow">滾珠軸承的介紹</a><br /><a href="http://www.jota-bearing.com.tw/pic/p01-e1.jpg" rel="nofollow">滾珠軸承</a><br /><a><br />href="http://www.kotec.com.tw/" >滾柱傳動減速機</a><br /><a href="http://china.nikkeibp.co.jp/china/news/auto/200303/auto200303070135.html" rel="nofollow">德國FEV展出以滾柱軸承為主軸承的引擎</a><br />型式閉合結或外力閉合結<br />1. 型式閉合結<br /><a href="http://pics19.webs-tv.net/6/userfile/b/bill_the_buffalo/blog/86b2e0c7.jpg" rel="nofollow">腳踏車的連桿系統</a><br /><a href="http://press.che168.com/new_article/pic/article_pic/20050722/20050722111326d41d8.jpg" rel="nofollow">車子的多連桿系統</a><br />2.外力閉合結<br /><a href="http://auto.china.com/zh_cn/college/knowledge/11036677/20060828/images/13578015_2006082815472224633600.jpg" rel="nofollow">單凸輪軸引擎</a><br /><a href="http://yungtong.eyp.com.tw/eyp/ezcatfiles/yungtong/img/pictures/5/5-3_L_cam%20clutch2.jpg" rel="nofollow">凸輪離合器</a><br /><br />p3.3<br />(1)<br /><a href="http://www.transferbigfiles.com/Download.aspx?id=a34db8b8-640b-41be-a2a2-d9781887c60f" rel="nofollow">人與圓圈結合的轉動軌跡圖</a><br />(2)<br /><a href="http://www.transferbigfiles.com/Download.aspx?id=a34db8b8-640b-41be-a2a2-d9781887c60f" rel="nofollow">同上</a><br />程式如下:<br />hold on;<br />H='請輸入你的身高,單位是用公分:';<br />W=input(H); %輸入值<br />W;<br />x1=[0 W*cos(atan(0.5))/2]; %繪人<br />y1=[0 W*sin(atan(0.5))/2];<br />line(x1,y1)<br />x2=[0 -W*cos(atan(0.5))/2];<br />y2=[0 W*sin(atan(0.5))/2];<br />line(x2,y2)<br />x3=[-2*W/12 2*W/12 2*W/12 -2*W/12 -2*W/12];<br />y3=[2*W/12 2*W/12 6*W/12 6*W/12 2*W/12];<br />line(x3,y3)<br />x4=[0 0];<br />y4=[2*W/12 -2*W/12];<br />line(x4,y4)<br />x5=[0 W/4];<br />y5=[-2*W/12 -5*W/12];<br />line(x5,y5)<br />x6=[0 -W/4];<br />y6=[-2*W/12 -5*W/12];<br />line(x6,y6)<br /> for n=1:1:12;<br /> x11=x3*cosd(30*n)+y3*sind(30*n);<br /> y11=-x3*sind(30*n)+y3*cosd(30*n);<br /> x12= x11+((pi*n/6)*(W/2));<br /> line(x12,y11)<br /> x13=x1*cosd(30*n)+y1*sind(30*n);<br /> y13=-x1*sind(30*n)+y1*cosd(30*n);<br /> x14= x13+((pi*n/6)*(W/2));<br /> line(x14,y13)<br /> x15=x2*cosd(30*n)+y2*sind(30*n);<br /> y15=-x2*sind(30*n)+y2*cosd(30*n);<br /> x16= x15+((pi*n/6)*(W/2));<br /> line(x16,y15)<br /> x17=x4*cosd(30*n)+y4*sind(30*n);<br /> y17=-x4*sind(30*n)+y4*cosd(30*n);<br /> x18= x17+((pi*n/6)*(W/2));<br /> line(x18,y17)<br /> x19=x5*cosd(30*n)+y5*sind(30*n);<br /> y19=-x5*sind(30*n)+y5*cosd(30*n);<br /> x20= x19+((pi*n/6)*(W/2));<br /> line(x20,y19)<br /> x21=x6*cosd(30*n)+y6*sind(30*n);<br /> y21=-x6*sind(30*n)+y6*cosd(30*n);<br /> x22= x21+((pi*n/6)*(W/2));<br /> line(x22,y21)<br /> <br /> axis equal; %將水平與垂直座標之單位設為一致<br /> <br /> end<br />for i=1:1:360;<br />x0=(W/2)*cos(i);<br />y0=(W/2)*sin(i);<br />line(x0,y0)<br />hold on;<br />end; %畫圓<br />for n=1:1:12;<br /> for i=1:1:360<br /> x0=(W/2)*cos(i)+(pi/6)*(W/2)*n;<br /> y0=(W/2)*sin(i);<br /> line(x0,y0)<br /> end; %每30度轉一次<br />end;Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-75835237183511025722007-03-24T23:55:00.000+08:002007-03-24T23:57:41.808+08:00機動學 作業二b94611042 王志豪 作業二<br /><br />p2.1<br /><a href="http://myiecs.iecs.fcu.edu.tw/upload/paper_gad/grad87/%A6%F3%A9%A8%C1%BE.pdf" rel="nofollow">以虛擬實境為基礎的脊椎運動模擬系統</a><br /><a href="http://www.auto.fcu.edu.tw/%7Etecharch/paper/bachelor/91/16.pdf" rel="nofollow">3D Simulation of Biped Robot</a><br /><a href="http://download.yousendit.com/AB27589F6950B6ED" rel="nofollow">模糊邏輯控制可搭乘電梯之立體視覺伺<br />服輪型機器人</a><br /><br /> 以上是三篇論文,均有論述到人體的結構與連桿還有運動結的關係.<br />第一篇是"以虛擬實境為基礎的脊椎運動模擬系統",主要是建構一個虛擬的模型,來揣測人體在運動的時候包刮四肢以及脊椎彼此之間有什麼關聯與變化,從而了 解並能進一步的研究它而在醫療上有更大的演進.大體而言是以力學為基礎來當假設,在進行模擬的過程中,有不少有關於人體以及連桿和運動結的測試,可以參考 看看.<br />第二篇則是"雙足機器人之3D模擬",顧名思義,就是單純研究雙足結構的一篇論文,由於這篇論文中所探討的是人型機器人,為了能真實模擬人類行走的情況, 用電腦做出類似人類腳部的結構圖,以3D動畫的形式來研究,而之中就是以連桿的形式所構成的,當中有不少模擬圖可以看看.而第三篇則是"模糊邏輯控制可搭 乘電梯之立體視覺伺服輪型機器人",也是有關於人型機器人的論文,大致於上一篇差不多,不過有關連桿的說明更加豐富,值得一看!!!<br /><br /><a href="http://steiner.math.nthu.edu.tw/ne01/tjy/euclidean/linkage/Linkage.htm" rel="nofollow">有關連桿原理的介紹網站</a><br /><a href="http://www.wanfangdata.com.cn/qikan/periodical.Articles/zgkfyxzz/zgkf99/zgkf9904/990406.htm" rel="nofollow">六連杆假肢膝關節優化設計</a><br /><a href="http://designer.mech.yzu.edu.tw/article/articles/project/%282000-01-20%29%20%B7s%AB%AC%A4H%A4u%A5%FE%BD%A5%C3%F6%B8%60%A4%A7%B3%5D%ADp.htm" rel="nofollow">新型人工全膝關節之設計</a><br /><br />以上兩篇則是有關於利用連桿來應用到醫學方面的設計,主要是以膝關節為主,由於許許多多的運動傷害常常會發生在這個平日時常用到的膝關節上面,所以形形色 色的傷害也就層出不窮了.故在網路上查到的有不少有關於人類以及連桿和運動結方面的東西,主要都是用於這方面的,藉由模擬人類行走的姿勢以及腳步轉動時的 結構,設計出得以減輕人們腳步壓力或者使之可以作為義肢,林林總總下,我就選擇出這兩個網頁作為代表,主要是因為裡面都是有附連桿的圖,並非純粹只有文字 說明,可以比較好懂些.<br /><br />p2.2<br />說到發明,仰望藍藍的天空.看著翱翔的飛鳥,大多數人第一個會想到的發明想必就是萊特兄弟所發明的飛機了.萊特兄弟倆從少年時代起就對飛行十分感興趣.在 1895年他們開了一間自行車修理和製造作坊,因著興趣,就開始研究和製造飛機.萊特兄弟沒有受過高等教育,但他們十分虛心好學,相當重視理論和實踐,在 此,他們閱讀了大量的空氣動力學方面的文獻.而在1899年,哥哥威爾伯.萊特向史密森學會索取了大量的有關航空的書籍和文章,在總結前人的經驗和教訓的 基礎上,他們開始了滑翔飛行試驗.據歷史所載,從1900年至1902年,萊特兄弟先後製造了三架滑翔機,進行了上千次的飛行試驗,每次都詳細地記錄了各 種數據,並對操縱進行了反復的改進. <br /> 他們兄弟於1902年終於設計出了他們的第一架飛機,但由於當時卻沒有哪一個公司願意冒險製造航空發動 機和螺旋槳,於是萊特兄弟就只好自己動手了.很快的,在自行車技師泰勒的幫助下,製造出了一台12馬力的活塞式發動機.至於螺旋槳,當時根本沒有什麼數據 資料或是計算公式可以供萊特兄弟參考,他們只得從頭開始,研究前人的理論,努力改進.<br /> 而最後,他們終於成功.<br />事實上,他們的成功絕不是偶然,萊特兄弟雖然起初只是個小小的自行車修理者,但他們努力不懈,憑藉著前人所累積的知識,搭配上他們的構想,輔以實際工程上 的操作與測試,最後才完成了目前被世人所公認的第一台飛機,成為大家耳熟能響的飛機之父,是一個整合過去的學習而成功創造發明的例子.<br /><br />p2.3<br /><a href="http://download.yousendit.com/08346C0A1B716678" rel="nofollow">Matlab的圖</a>Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0tag:blogger.com,1999:blog-8347434684773912021.post-84224549406992472192007-03-24T23:48:00.001+08:002007-03-24T23:48:35.669+08:00機動學 作業一題目一(第二版)<br />王志豪 B94611042 0960698823<br />b94611042@ntu.edu.tw<br /><br />題目二<br />1.古董機構網頁<br />http://www.me.ntu.edu.tw/ntume_am/index.htm<br /> 這裡面有台大機械系一開始剛創系時所使用的教具介紹,主要藉影片展示讓觀覽者瞭解機構與運轉模式.<br />2.麻省理工開放式課程的機械工程網頁<br />http://www.myoops.org/twocw/mit/Mechanical-Engineering/index.htm<br /> 裡面有許多有關機械構造以及設計的課程與介紹,蠻豐富的.Terencehttp://www.blogger.com/profile/07348697153241776363noreply@blogger.com0