機動學作業平台

文章推薦指數: 80 %
投票人數:10人

機動學第十二次作業 ... B94611048 張志鵬題目請就教科書中第四章第五節之偏置機構作另類分析,分析過程可採你所知的方式(包括講義中所列的方法)。

skiptomain| skiptosidebar 2007年6月10日星期日 機動學第十二次作業 一組標準全齒輪齒輪之徑節為8(亦可使用自設值),齒數分別為30T與48T,其工作壓力角為20度(可為14.5或25度,自選)。

試求其接觸線長度,與接觸比。

我的工作壓力為20度利用contact_ratio.m計算(在老師的講議中)[c_ratio,c_length,ad,pc,pb,r2,r3,ag]=contact_ratio(8,30,48,14)接觸比=1.7005接觸長度=0.6275吋齒冠=0.125吋周節pc=0.3927;基周節pb=0.3690齒輪節圓直徑r2=3.75吋,r3=6吋齒輪2之接近角=10.4850度;遠退角=9.9211度作用角=20.4061度齒輪3之接近角=6.5532度;遠退角=6.2007度作用角=12.7538度兩齒輪之節圓、基圓直徑各為如何?請列式計算其結果。

徑節為8齒數分別為30T與48T工作壓力角為20度rp=N/徑節/2;ra=rp+1/Pd;cosx=cos(工作壓力);rb=rp*cosx;基圓直徑cosx=cos(工作壓力);Ld=d*cosx;Ld1*cos20°=3.5238Ld2*cos20°=5.6381此組齒輪是否會產生干涉現象?試列式證明之。

測試干涉之條件為:(N2²+2N2xN3)sin²θ>=4+4N3壓力角=20°30(30+2*48)sin²20°=442.176>4+4*48=196function[x]=isinterf(phi,N1,N2)isinterf(30,48,20)ans=0工作角情況皆不會產生干涉可否利用draw_gear.m繪出其接合情形,並繪出其動畫效果。

[coords]=draw_gear(8,30,20,0,360,0,0);[coords]=draw_gear(8,48,20,180/48,360,9.75/2,0);利用move2_gear.m製作動畫move2_gear(8,30,48,20,10) 張貼者: dragon 於 凌晨2:54 2則留言: 2007年5月30日星期三 機動學第十一次作業 第十一次作業(Duedate:12pmMay30,2007)請聲明本週(5/24)有來上課。

本人有上本週的課某凸輪開始時先在0-100∘區間滯留,然後提升後在200至260∘區間滯留,其高度(衝程)為5公分,其餘l由260∘至360∘則為返程。

升程採用等加速度運動,返程之運動型式自定。

設刻度區間為10∘,試繪出其高度、速度及加速度與凸輪迴轉角度間之關係。

下面plot_dwell.m為一執行Dwell函數之範例。

其指令如下:functionplot_dwell(ctheta,s,pattern,range)%ctheta=camangle(deg)--canbeamatrix%pattern=denotethetypeofmotionused(a3element-rowmatrix)%1:uniform2:parabolic3:simpleharmonic4:cycloidal%5:polynomialmotion%example[43]%range=thedegreesthespecificmotionstarts%Output:yisfordisplacement,yyisthederivativeofthedisplacementwith%respecttotheta,andyyythesecondderivativewithrespect%totheta.%Exampleplot_dwell(0:10:360,2,[43],[90180240]);figure(1);clf;[y,yy,yyy]=dwell(ctheta,range,pattern)h1=plot(ctheta,y*s,'b-',ctheta,yy*s,'k-',ctheta,yyy*s,'r-')legend('Displacement','Velocity','Acceleration',3)xlabel('ElapsedAngle,degrees')gridplot_dwell(0:10:360,5,[22],[100200260])dwell內的parabolicm函數有小錯誤上面的程式是有修改過的而結果如下上面的圖可以看到(紅色圈圈),速度值為斜直線,但是加速度竟是斜直線(應該是水平直線)。

這是因為我們取間隔10度做變化,於是連線變為斜直線。

如果我們改成間隔1度的話就好了設凸輪之半徑為15公分,以順時針方向旋轉,其從動件為梢型,垂直接觸,長為10公分,從動件之運動係依照第二項之運動型式。

試繪出此凸輪之工作曲線。

function[x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)%Findthepintypecamwithanoffsecte%Inputs:%cth:angleofcam,degrees%r0:radiusofbasecircle%e:offset%s:stroke%L:lengthofpin%cw:rotationdirectionofcam(-counterclockwise,+clockwise%pattern=denotethetypeofmotionused(a3element-rowmatrix)%1:uniform2:parabolic3:simpleharmonic4:cycloidal%5:polynomialmotion%example[43]%range=thedegreesthespecificmotionstarts,eg.[90180240]%Example:[xy]=pincam([1060],5,2,1,10,[90180240],[43],-1)figure(1);clf;th=cth*pi/180;s0=sqrt(r0*r0-e*e);fori=1:length(cth)t=th(i)*cw;A=[cos(t)-sin(t);sin(t)cos(t)];[ym,yy,yyy]=dwell(cth(i),range,pattern);x0=s0+ym*s;Sx=[0x0x0+L;eee];X=A\Sx;x(i)=X(1,2);y(i)=X(2,2);line(X(1,1:2),X(2,1:2));line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')endholdon;plot([0x],[0y],'ro',x,y,'k-')axisequalpincam([0:10:360],15,5,0,10,[100200260],[22],-1)突輪與從動件的關係你能讓此凸輪迴轉嗎?此題最有挑戰性的是要找出凸輪的相對位置然後加以旋轉function[x,y]=pincam3(cth,r0,s,e,L,range,pattern,cw)%Findthepintypecamwithanoffsecte%Inputs:%cth:angleofcam,degrees%r0:radiusofbasecircle%e:offset%s:stroke%L:lengthofpin%cw:rotationdirectionofcam(-counterclockwise,+clockwise%pattern=denotethetypeofmotionused(a3element-rowmatrix)%1:uniform2:parabolic3:simpleharmonic4:cycloidal%5:polynomialmotion%example[43]%range=thedegreesthespecificmotionstarts,eg.[90180240]%Example:[xy]=pincam([1060],5,2,1,10,[90180240],[43],-1)figure(4);clf;th=cth*pi/180;s0=sqrt(r0*r0-e*e);fori=1:length(cth)t=th(i)*cw;A=[cos(t)-sin(t);sin(t)cos(t)];[ym,yy,yyy]=dwell(cth(i),range,pattern);x0=s0+ym*s;Sx=[0x0x0+L;eee];X=A\Sx;x(i)=X(1,2);y(i)=X(2,2);%line(X(1,1:2),X(2,1:2));%line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')%pause(0.5)%clfendfori=1:length(cth)clf;t=th(i)*cw;B=[cosd(90)-sind(90);sind(90)cosd(90)];A=[cos(t)-sin(t);sin(t)cos(t)];[ym,yy,yyy]=dwell(cth(i),range,pattern);o=x*cos(-t)+y*sin(-t)p=x*sin(-t)-y*cos(-t)m=o*cosd(90)+p*sind(90)n=o*sind(90)-p*cosd(90)plot([0m],[0n],'ro',m,n,'k-')axis([-5050-5050])gridon;x0=s0+ym*s;Sx=[0x0x0+L;eee];X=B*Sx;%line(X(1,1:2),X(2,1:2));line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')pause(0.5)endholdon;gridon動畫~~~成功! 張貼者: dragon 於 凌晨4:21 沒有留言: 2007年5月26日星期六 機動學第十次作業 本人有上本週的課請思考速度與加速度的問題,當一桿以某特定點M等角速度迴轉時,其端點P之速度方向如何?其加速度方向如何?在動力學的分析中P的速度為wxr而其方向為切線方向但是因為這是一個rotaionalmotion所以P點一定有加速度而加速度為wxwxr若該特定點M復以等速水平運動,則同一端點P之速度與加速度方向會變為如何?若M點同時也有加速度,則點P會有何變化?如果M點只是水平運動時那在動力學裡也有學到此時的P點速度為(Vm+wxr)而加速度仍是為wxwxr如果M點也有加速度時那P點的加速度為Ap+wxwxr若以此推理四連桿的運動,則點P與Q之速度與加速度方向會與桿一(固定桿)之兩端點之關係如何?與我們前面的作業分析結果有無共通之處?(參看第六章之四連桿機構之運動分析)固定桿兩端為O點和R點,此兩點由於接地,其速度與加速度皆為0,此時我們若以第二桿為驅動桿,則P點速度為VP=WopxRp/o  方向與桿二垂直AP=[αxRp/o]+[Wopx(WopxRp/o)] 前項為切線加速度與桿2垂直,後項為法線加速度指向O點Q點的速度與加速度由於P點有速度所以Q點的速度為Vq=Vp+WpqxRq/p但是由於Vq是硍R點連接而R點為接地點所Q點的速度也為WqrxRq/r  方向與桿四垂直同樣加速度也是Aq=Ap+αxRq/p+Wpqx(WpqxRq/p)也等於αxRq/r+Wqrx(WqrxRq/r) 切線加速度與桿四垂直,法線加速度指向R點設有一運動之曲柄滑塊連桿組合,設滑塊之偏置量為零,且在水平方向移動,試以此機構之曲桿長度及角度,以及連結桿之長度為輸入項,利用matlab寫出一程式計算在不同曲柄角度時,六點瞬心之對應位置。

可順便探討六點瞬心與曲柄角間之關係。

在四連桿的時候會有六個IC但是有兩點固定所以有兩點會在無限遠現在用老師的程式改一下用裡面的數據把IC的置找出來function[values]=drawsldlinksic(R1,R2,th2,sigma,driver)clf;r=[10,R1,R2,0]th1=0;AXIS([-55-55]);[valuesb]=sldlink(r,th1,th2,10,0,sigma,driver);rr=values(:,1);rr(3)=rr(3)+rr(2);rx=real(rr);rx(4)=0;ry=imag(rr);ry(4)=0;t=linspace(pi/2,2.5*pi,361);C1=0.2*exp(j*t');x1=real(C1);y1=imag(C1);line(x1,y1,'LineWidth',1.5);C2=0.4*exp(j*t');x2=real(C2);y2=imag(C2);line(x2,y2,'LineWidth',2);line([x2(91)x2(91)],[y2(91)y2(91)-0.5],'LineWidth',1.5);line([x2(271)x2(271)],[y2(271)y2(271)-0.5],'LineWidth',1.5);line([x2(91)-1.5x2(271)+1.5],[y2(271)-0.5y2(271)-0.5],'LineWidth',1.5,'linestyle',':');holdon;ifrx(1)>0,the2=th2;elsethe2=180-th2;end;the3=-values(3,2)ic13x=rx(1);ic13y=rx(1)*tand(the2);ic24x=0;ic24y=rx(1)*tand(the3);ifb==1plot([0rx(1)],[00],'k-','LineWidth',5);holdon;plot([0rx(1)],[0ry(1)],'g-','LineWidth',1.5);plot([rx(1)ic13x],[ry(1)ic13y],'k:','LineWidth',1.5);plot([rx(2)ic13x],[ry(2)ic13y],'k:','LineWidth',1.5);plot([0ic24x],[0ic24y],'k:','LineWidth',1.5);plot([rx(2)ic24x],[ry(2)ic24y],'k:','LineWidth',1.5);ifdriver==0plot([0rx(2)],[0ry(2)],'b-','LineWidth',1.5);plot([rx(2)rx(3)],[ry(2)ry(3)],'r-','LineWidth',2);elseplot([0rx(2)],[0ry(2)],'r-','LineWidth',2);plot([rx(2)rx(3)],[ry(2)ry(3)],'b-','LineWidth',1.5);endplot([rx(1)rx(3)],[ry(1)ry(3)],'k-');plot(rx,ry,'bo');plot(ic13x,ic13y,'mo');plot(ic24x,ic24y,'mo');text(0,0,'O12');text(rx(1),ry(1),'R');text(rx(2),ry(2),'P23');text(rx(3),ry(3),'Q34');text(ic13x,ic13y,'13');text(ic24x,ic24y,'24');length=max(abs(values(2:3,1)));len=.20*length;ww=.15*length;[coords]=sldbox(len,ww,rx(3),ry(3),th1);plot(coords(:,1),coords(:,2),'r-','LineWidth',2);[coords]=sldbox(len*3,0,rx(3),ry(3)-ww/2,th1);plot(coords(:,1),coords(:,2),'r:','LineWidth',1.5);elsefprintf('Combinationoflinksfailsatdegrees%6.1f\n',th2);endaxisequal;gridon;下面是動畫我們可以觀一下IC的移動何時會在上面何時會在下面有時會在無限遠哦~~ 張貼者: dragon 於 上午11:52 沒有留言: 2007年5月17日星期四 機動學第九次作業 B94611048張志鵬題目請就教科書中第四章第五節之偏置機構作另類分析,分析過程可採你所知的方式(包括講義中所列的方法)。

運動中分以曲桿驅動及滑塊驅動的方式,並說明運動的界限或範圍。

設此機構之曲桿長Rcm,連桿Lcm,滑塊之偏置量為10cm等數據作分析。

其中,R=10+(學號末二碼),L=R+5。

r(1)固定桿r(2)曲桿=58r(3)結合(連)桿=63r(4)垂直偏置量=10theta1第一桿之水平角theta2驅動桿之水平夾角td2驅動桿角速度tdd2驅動桿角加速度sigma組合模數driver驅動桿限制角度老師在網路上有寫出sld_angle_limits可以做限制角度的分析function[Qstart,Qstop]=sld_angle_limits(r,theta1,linkdrive)%%function[Qstart,Qstop]=sld_angle_limits(r,theta1,linkdrive)%Findinitital&finalanglesofdrivinglinkforslider%linkdrive=0forcrank;1forcouplerasthedriver,with%Qstart&Qstopasthelimitanglesofdrivinglink.%linkdrive=2forsliderasinput,withQstart&Qstopasits%initial&finalpositionsofr1%Variables%r=linkagerowvector(cm)%Examples:[Qst,Qsp]=sld_angle_limits([1531],30,0)r1=r(1);r2=r(2);r3=r(3);r4=r(4);g2d=180/pi;switchlinkdrivecase0%crankifr3+r4<r2&r4>=0&r3>r4Qstart=asin((r4-r3)/r2);Qstop=asin((r4+r3)/r2);elseifr3+r4>=r2&r4>=r3&r3>=0Qstart=asin((r4-r3)/r2);Qstop=pi-asin((r4-r3)/r2);elseifr3-r4<=r2&r4<0&r3>=-r4Qstart=asin((r4-r3)/r2);Qstop=asin((r4+r3)/r2);elseifr3-r4>=r2&r3>=0&-r4>=r3Qstart=-pi-asin((r4+r3)/r2);Qstop=asin((r4+r3)/r2);elseQstart=0;Qstop=2*pi;endcase1%couplerifr2-r4<=r3&r4>=0&r2>=r4Qstart=asin((r4-r2)/r3);Qstop=pi-asin((r4-r2)/r3);elseifr2+r4<r3&r4>=0Qstart=asin((r4-r2)/r3);Qstop=asin((r4+r2)/r3);elseifr2+r4<=r3&r4<=0&r2+r4>=0Qstart=-pi-asin((r4+r2)/r3);Qstop=asin((r4+r2)/r3);elseifr2-r4<r3&r4<=0Qstart=asin((r4-r2)/r3);Qstop=asin((r4+r2)/r3);else%r2>=(r3+abs(r4))Qstart=0;Qstop=2*pi;endcase2%sliderdisplacementQstart=0;Qstop=0;arg2=(r2+r3)^2-r4^2;ifabs(r2-r3)>=r4arg1=(r2-r3)^2-r4^2;ifarg1>0,Qstart=sqrt(arg1);end;Qstop=sqrt(arg2);elseifarg2<0,return;endQstart=sqrt(arg2);Qstop=-sqrt(arg2);endtheta1=0;g2d=1;end%caseifQstop<Qstart,TT=Qstart;Qstart=Qstop;Qstop=TT;endadjust=(Qstop-Qstart)*1e-8;Qstart=theta1+(Qstart+adjust)*g2d;Qstop=theta1+(Qstop-adjust)*g2d;以第二桿為驅動桿r=[0586310];theta1=0;linkdrive=0;sld_angle_limits(r,theta1,linkdrive);結果如下Qstart=-66.0349Qstop=246.0349限制角度位置圖以第二桿為驅動桿以第三桿為驅動桿所以只有在這範圍裡面的值才有效在了解角度限制後就可以做動畫了function[values]=drawsldlinks(r,th1,th2,sigma,driver)%functiondrawlinks(r,th1,th2,sigma,driver)%drawthepositionsoffour-barlinks%callf4barfuncion%r:rowvectorforfourlinks%th1:frameangle%th2:crankangleorcoupleangle%sigma:assemblymode%driver:0forcrank,1forcoupler%%Example:%drawsldlinks([1234],0,60,1,0)%clf;[valuesb]=sldlink(r,th1,th2,10,0,sigma,driver);rr=values(:,1);rr(3)=rr(3)+rr(2);rx=real(rr);rx(4)=0;ry=imag(rr);ry(4)=0;ifb==1plot([0rx(1)],[00],'k-','LineWidth',4);%groundlineholdon;plot([0rx(1)],[0ry(1)],'g-','LineWidth',1.5);ifdriver==0plot([0rx(2)],[0ry(2)],'b-','LineWidth',1.5);plot([rx(2)rx(3)],[ry(2)ry(3)],'r-','LineWidth',2);elseplot([0rx(2)],[0ry(2)],'r-','LineWidth',2);plot([rx(2)rx(3)],[ry(2)ry(3)],'b-','LineWidth',1.5);endplot([rx(1)rx(3)],[ry(1)ry(3)],'k-');plot(rx,ry,'bo');text(0,0,'O');text(rx(1),ry(1),'R');text(rx(2),ry(2),'P');text(rx(3),ry(3),'Q');length=max(abs(values(2:3,1)));len=.20*length;ww=.15*length;[coords]=sldbox(len,ww,rx(3),ry(3),th1);plot(coords(:,1),coords(:,2),'r-','LineWidth',2);[coords]=sldbox(len*3,0,rx(3),ry(3)-ww/2,th1);plot(coords(:,1),coords(:,2),'r:','LineWidth',1.5);elsefprintf('Combinationoflinksfailsatdegrees%6.1f\n',th2);axisequal;gridon;endaxisequal;gridon;以第二桿為驅動桿運動動畫fori=-66.0349:1:246.0349;drawsldlinks([0586310],0,i,1,0)axis([-8080-80125]);end;位置分析利用以上的程式可以得到各點的位置、速度和加速度一桿位置0.0775一桿角度0一桿角速度0一桿角加速度0二桿位置0.0290+0.0502i二桿角度0.0600二桿角速度0.0100二桿角加速度0三桿位置0.0485-0.0402i三桿角度-0.0397三桿角速度-0.0060三桿角加速度0.0739四桿位置0.0000+0.0100i四桿角度0.0900四桿角速度0四桿角加速度0Q位置向量0.0290+0.0502iq速度-2.9000-5.0229iq加速度-0.1200P位置向量0.0775+0.0100ip速度-1.6611p加速度0.18000.0775000-0.74290.0290+0.0502i0.06000.01000-1.66110.0485-0.0402i-0.0397-0.00600.07390.0290+0.0502i0.0000+0.0100i0.0900000.0775+0.0100i-0.5023+0.2900i0.58000.1500-0.74290.74290.1800-2.9000-5.0229i5.8000-0.1200-1.66111.66110.1800其他的驅動桿的做法也大同小異路徑分析在老師的講議中有一個程式叫drawsldpaths我看了很久也看不太懂只能說老師太利害了!!相當的精彩值得去了解functiondrawsldpaths(r6,th6,r,th1,td2,tdd2,sigma,npts,driver,mode)clf;figure(1);warningoff;r(abs(r)<eps)=eps;[Qstart,Qstop]=sld_angle_limits(r,th1,driver)npoint=abs(npts);th2=linspace(Qstart,Qstop,npoint);val=zeros(11,npoint);fori=1:npoint,ifdriver==2,r(1)=th2(i);end[vrb]=sldlink(r,th1,th2(i),td2,tdd2,sigma,driver);[para]=body(r6,th6,vr,3);ifmod(i,5)==0|i==1|i==npoint,drawsldlinks(r,th1,th2(i),sigma,driver);endval(1:3,i)=[vr(1,1)+vr(4,1);vr(2,1);para(2)];switchdrivercase0val(4:7,i)=[abs(vr(1,1));vr(3,2);vr(3,3);vr(3,4)];case1val(4:7,i)=[abs(vr(1,1));vr(2,2);vr(2,3);vr(2,4)];case2val(4:7,i)=[abs(vr(2,2));vr(3,2);vr(2,3);vr(3,3)];endval(8:11,i)=[vr(1,5);para(4);vr(4,6);para(5);];endwarningon;plot(val(1,:),'k-','LineWidth',1.5,'linestyle',':');%pathofQplot(val(2,:),'k-','LineWidth',1.5);%pathofPplot(val(3,:),'g-','LineWidth',1.5);%pathofAaxisequalifmode==0,return;end;th2=th2(3:end-3);val=val(:,3:end-3);title0={'CrankAngle','CouplerAngle','SliderPos'};title1={'\Theta3(r)&r1(k)','\Theta2(r)&r1(k)',...'\Theta2(r)&\Theta3(k)'};title2={'VelofA(r)&Slider(k)',...'AccofA(r)&Slider(k)'};title3={'\omega(r)&\alpha(b)ofCoupler',...'\omega(r)&\alpha(b)ofCrank',...'\omegaofCrank(r)&Coupler(b)'};intitle=title0(driver+1);val(abs(val)>10e+5)=NaN;val(8:11,:)=abs(val(8:11,:));figure(2);clf;subplot(2,2,1);plot(th2,val(4,:),'k-');holdon;fact=round(max(val(5,:))/max(val(4,:))*10)/10;plot(th2,val(5,:)/fact,'r-');%crankorcoupleranglexlabel(intitle);ylabel(title1(driver+1));gridonsubplot(2,2,2);plot(th2,val(6,:),'r-');fact=round(max(val(7,:))/max(val(6,:))*10)/10;holdon;plot(th2,val(7,:)/fact,'b-');xlabel(intitle);ylabel(title3(driver+1));gridon;subplot(2,2,3);plot(th2,val(8,:),'k-');holdon;plot(th2,val(9,:),'r-');xlabel(intitle);ylabel(title2(1));gridon;subplot(2,2,4);plot(th2,val(10,:),'k-');holdon;plot(th2,val(11,:),'r-');xlabel(intitle);ylabel(title2(2));gridon;drawsldpaths(0,0,[0586310],0,10,10,1,50,0,1) 張貼者: dragon 於 清晨6:03 1則留言: 2007年5月8日星期二 第八次作業 B94611048張志鵬本人4月26日曾來上課題目有一組四連桿,其桿長分別為r=[4335],由桿2驅動設第一固定桿角度theta1=0度角速度td2=10rad/s角加速度tdd2=0rad/s^2問題一設桿2角度theta2=45度時,求各點之位置、速度與加速度為何?下面為f4bar()函數之內容可以幫助我們分析四連桿function[data,form]=f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)%%function[data,form]=f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)%Thisfunctionanalyzesafour-barlinkagewhenthedrivinglinkis%crankorcoupler.Theinputdataare:%theta1,theta2areanglesindegrees%r=[r1r2r3r4]=lengthsoflinks(1=frame)%td2=crankorcouplerangularvelocity(rad/sec)%tdd2=crankorcouplerangularacceleration(rad/sec^2)%mode=+1or-1.Identifiesassemblymode%linkdrive=0forcrankasdriver;1forcouplerasdriver%data(1:4,1)=linkpositionsfor4links%data(1:4,2)=linkanglesindegrees%data(1:4,3)=linkangularvelocities%data(1:4,4)=linkangularaccelerations%data(1,5)=velocityofpointQ%data(2,5)=velocityofpointP%data(3,5)=accelerationofpointQ%data(4,5)=accelerationofpointP%data(1,6)=positionofQ%data(2,6)=positionofP%form=assemblystatus.form=0,mechanismfailsto%assemble.%programrevisedfromWaldron'sTextbook%Revised:DSFON,BIME,NTU.Date:Feb.7,2007ifnargin<7,linkdrive=0;endmode="1;end"data="zeros(4,6);"linkdrive="="r="[r(1)"rr="r.*r;d2g="t1="theta(1);tx="s1="sin(t1);c1="sx="sin(tx);cx="a="2*r(1)*r(4)*c1-2*r(2)*r(4)*cx;"c="rr(1)+rr(2)+rr(4)-rr(3)-2*r(1)*r(2)*(c1*cx+s1*sx);"b="2*r(1)*r(4)*s1-2*r(2)*r(4)*sx;"pos="B*B-C*C+A*A;">=0,form=1;%Checkforthedenominatorequaltozeroifabs(C-A)>=1e-5t4=2*atan((-B+mode*sqrt(pos))/(C-A));s4=sin(t4);c4=cos(t4);t3=atan2((r(1)*s1+r(4)*s4-r(2)*sx),(r(1)*c1+r(4)*c4-r(2)*cx));s3=sin(t3);c3=cos(t3);else%Ifthedenominatoriszero,computetheta(3)firstA=-2*r(1)*r(3)*c1+2*r(2)*r(3)*cx;B=-2*r(1)*r(3)*s1+2*r(2)*r(3)*sx;C=rr(1)+rr(2)+rr(3)-rr(4)-2*r(1)*r(2)*(c1*cx+s1*sx);pos=B*B-C*C+A*A;ifpos>=0,t3=2*atan((-B-mode*sqrt(pos))/(C-A));s3=sin(t3);c3=cos(t3);t4=atan2((-r(1)*s1+r(3)*s3+r(2)*sx),...(-r(1)*c1+r(3)*c3+r(2)*cx));s4=sin(t4);c4=cos(t4);endendtheta(3)=t3;theta(4)=t4;%velocitycalculationtd(2)=td2;AM=[-r(3)*s3,r(4)*s4;-r(3)*c3,r(4)*c4];BM=[r(2)*td(2)*sx;r(2)*td(2)*cx];CM=AM\BM;td(3)=CM(1);td(4)=CM(2);%accelerationcalculationtdd(2)=tdd2;BM=[r(2)*tdd(2)*sx+r(2)*td(2)*td(2)*cx+r(3)*td(3)*td(3)*c3-...r(4)*td(4)*td(4)*c4;r(2)*tdd(2)*cx-r(2)*td(2)*td(2)*sx-...r(3)*td(3)*td(3)*s3+r(4)*td(4)*td(4)*s4];CM=AM\BM;tdd(3)=CM(1);tdd(4)=CM(2);%storeresultsinarraydata%coordinatesofPandQiflinkdrive==1,c2=c3;c3=cx;s2=s3;s3=sx;r(2:3)=[r(3)r(2)];theta(2:3)=[theta(3)theta(2)];td(2:3)=[td(3)td(2)];tdd(2:3)=[tdd(3)tdd(2)];elsec2=cx;s2=sx;endforj=1:4,data(j,1:4)=[r(j)*exp(i*theta(j))theta(j)/d2gtd(j)tdd(j)];end%positionvectorsdata(1,5)=r(2)*td(2)*exp(i*theta(2));%velocityforpointQdata(2,5)=r(4)*td(4)*exp(i*theta(4));%velocityforpointPdata(3,5)=r(2)*(i*tdd(2)-td(2)*td(2))*exp(i*theta(2));%accofQdata(4,5)=r(4)*(i*tdd(4)-td(4)*td(4))*exp(i*theta(4));%accofPdata(1,6)=data(2,1);%positionofQ,againdata(2,6)=data(1,1)+data(4,1);%positionofP%findtheaccelerationselseform=0;iflinkdrive==1,r=[r(1)r(3)r(2)r(4)];forj=1:4,data(j,1)=r(j).*exp(i*theta(j));end%positionsendend[val,form]=f4bar([4335],0,45,10,0,-1,0)四連桿之角度為:第一桿第二桿第三桿第四桿045.000069.485699.5246各桿之速度則為:第一桿第二桿第三桿第四桿010.000016.26814.9677各桿之加速度為:第一桿第二桿第三桿第四桿00491.4428383.6120P點的位置速度加速度2.1213+2.1213i0.0212+0.0212i-0.2121-0.2121iQ點的位置速度加速度3.1726+4.9311i0.0041-0.0245i-1.8712-0.4391i問題二繪出此四連桿之相關位置及標明各點之速度方向及大小程式drawlinks之目的即是利用MATLAB繪製四連桿之相關位置。

所以程式本身會呼叫f4bar.m函數以計算四連桿之向量位置,然後加以繪圖。

function[values]=drawlinks(r,th1,th2,mode,linkdrive)%functiondrawlinks(r,th1,th2,mode,linkdrive)%drawthepositionsoffour-barlinks%callf4barfuncion%r:rowvectorforfourlinks%th1:frameangle%th2:crankangleorcoupleangle%mode:assemblymode%linkdrive:0forcrank,1forcoupler%clf;ifnargin<5,linkdrive=0;endmode="1;end"rr="values(:,1);rr(3,1)="rx="real(rr(:,1));rx(4)="ry="imag(rr(:,1));ry(4)="b="="linkdrive="="href="http://4.bp.blogspot.com/_SiVOqZP1-5c/RkMekeidzFI/AAAAAAAAAGY/mVcsi9DJ0lg/s1600-h/b94611048-matlabpic-HW8-1-2.jpg">第三題當桿2迴轉時,求出此組四連桿之限制角度,並繪出其位置function[Ang1,Ang2]=fb_angle_limits(r,theta1,linkdrive)%%function[Ang1,Ang2]=fb_angle_limits(r,theta1,linkdrive)%Findinitital&finalanglesforthedrivinglink%linkdrive=(0forcrank;1forcouplerasthedriver).%Variables:%r=linkagerowvector(cm)%theta1=frameangle(degree);%Ang1,Ang2=initial&finalanglesofthedrivinglink(deg)%Programifnargin<3,linkdrive=0;endtheta1="0;end"linkdrive="="r="[r(1)"r1="r(1);r2="r3="r(3);r4="rmin="min(r);rmax="rtotal="sum(r);Ang1="ang2="2*pi;">(r3+r4)&abs(r1-r2)(r3+r4)&abs(r1-r2)>=abs(r3-r4)Ang1=acos((r2^2-(r4+r3)^2+r1^2)/(2*r1*r2));Ang2=-Ang1;end%if(r1+r2)<=(r3+r4)&abs(r1-r2)>=abs(r3-r4)%Ang1=0;%Ang2=2*pi;%endif(r1+r2)<=(r3+r4)&abs(r1-r2)第四題設theta2=[0:20:360],試繪出此組四連桿之重疊影像,解釋為何有些沒有值clf;fori=0:20:360,drawlinks([4335],0,i,-1,0);end結果:Combinationoflinksfailatdegrees0.0Combinationoflinksfailatdegrees20.0Combinationoflinksfailatdegrees340.0Combinationoflinksfailatdegrees360.0在第三題時我們求出四連桿之限制角度從28.955到331.045間才可做旋轉其他角度是不可能發生的第五題若將問題三考慮在內,只在可迴轉的範圍內迴轉,請問你能讓此組四連桿作成動畫方式迴轉嗎下面這程式真的很精彩!!!可以繪出所有的軌蹪functionmove_4paths(r,r6,th6,nlink,th1,td2,tdd2,sigma,driver,ntimes,npts)%%functionmove_4paths(r,r6,th6,nlink,th1,td2,tdd2,sigma,driver,ntimes,npts)%%drawthepositionsoffour-barlinks%callf4bar.mfuncion,f4limits.m,fb_angle_limits.m,body.m%%Inputs:%r:rowvectorforfourlinks%th1:frameangle%th2:crankangleorcoupleangle%td2,tdd2:angularvelocityandaccelerationofthedrivinglink.%sigma:assemblymode%driver:0forcrank,1forcoupler%ntimes:no.ofcycles%npts:numberofpointsdivided%r6,rh6,nlink:additionallengthandanglefornlinklink.%example:%move_4paths([4234],2,-30,3,0,10,0,1,0,4,100)%%clf;ifnargin<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;">npointi==0,break;end;set(h(2),'xdata',[0x(2,i)],'ydata',[(2,i)]);%crankset(h(3),'xdata',[x(2,i)x(3,i)],'ydata',[y(2,i)y(3,i)]);%couplerset(h(4),'xdata',[x(1,i)x(3,i)],'ydata',[y(1,i)y(3,i)]);%Rockerset(h0,'xdata',[x(4:6,i)],'ydata',[y(4:6,i)]);drawnow;%flushthedrawbufferpause(0.1);endend%formloopmove_4paths([4335],0,0,3,0,10,0,1,0,4,150)下面是我的影片 張貼者: dragon 於 晚上8:27 1則留言: 2007年4月23日星期一 第七次作業 本人4/19有上課這次作業有用到functiondyad_draw()而其中有用到functiondyad()function[vec,dyadata]=dyad(rho,theta,td,tdd)%%function[vec,th,dyadata]=dyad(rho,theta,td,tdd)%Analyzesadyadlinkagecomposingacrankandadyad.%Inputs:rho:lengthoflinks%theta:inclingangles,deg.%td:angularvelocity,rad/s%tdd:angularacceleration,rad/s^2%Outputs:vec:absoutelengthoflinks%th:anglesoflinks,velocities&acc,deg%dyadata:originaldata,incomplexforms%Example:[vec,th,dyadata]=dyad([510],[3050],[24])theta=theta(:);rho=rho(:);n=length(rho);ifnargin<4,tdd="zeros(size(rho));"nargin="="td="ones(size(rho));"td="ones(size(rho))*td;"tdd="ones(size(rho))*tdd;"td="td(:);"tdd="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="[0;cumsum(imag(data(:,1)))];"i="1:length(x)-1"k="1:length(rho)"x0="x(k+1);"y0="y(k+1);"vx="x0+real(data(k,2));"vy="y0+imag(data(k,2));"ax="x0+real(data(k,3));"ay="y0+imag(data(k,3));"sdata="sum(data);"ss="[real(sdata(1))"vv="[real(sdata(2))"aa="[real(sdata(3))"nargin="="dd="1;"d="abs(dd);"ab="(B(1)+j*B(2))-(A(1)+j*A(2));"d="abs(AB);"th="angle(AB);"t="linspace(pi/2,2.5*pi,20);"cout="max(d/2,0.2)*exp(j*t');"cin="Cout/2;">0,P=[0;Cin;Cout(1:10);D+Cout(11:20);D+Cin;D+Cout(20);Cout(1)];elseP=[Cin;0;D;D+Cin];endxx=real(P);yy=imag(P);x=xx*cos(th)-yy*sin(th)+A(1);y=xx*sin(th)+yy*cos(th)+A(2);line(x,y)axisequalp.7-1-1 在0-5秒內 端桿之對應方位第零秒第一秒第二秒第三秒第四秒第五秒p.7-1-2第一桿之速度第一桿之加速度第二桿之速度第二桿之加速度第三桿之速度第三桿之加速度p.7-1-3將過程繪製成影片axisequal;AXIS([-180180-180160]);dyad_draw([58,63,53],[0,0,0],[0.2,0.5,0.3],[0,0.1,0.2]);pause(5)clfforn=1:5axisequal;AXIS([-180180-180160]);dyad_draw([58,63,53],[0.2,0.5+n*0.1,0.3+n*0.2],[0.2,0.5+n*0.1,0.3+n*0.2],[0,0.1,0.2]);pause(1)clfend;按此看影片 張貼者: dragon 於 下午3:16 1則留言: 第六次作業 b94611048張志鵬本次作業有用到課本裡的functiongruebler及functiongrashoffunction[df]=gruebler(nlink,jointype)%%[df]=gruebler(nlink,jointype)%nlink:no.oftotallinks%jointype:rowmatrixfornumberofjointsforeachtype,%theorderofelementsis:%1R-joint2slider3compoundjoint(sliding&rolling)%4ball5cylinder6planar7cylinderrolling%8cam9helix10ball&11pointcontact%Example:df=gruebler(4,[4])%Author:D.S.FonBime,NTU.Date:Jan.30,2007code=[11232312135];n=length(jointype);dim=3;ifn>3,dim=6;end;ff=0;njoint=0;fori=1:n,njoint=njoint+jointype(i);ff=ff+jointype(i)*code(i);end;df=dim*(nlink-njoint-1)+ff;functionans=grashof(ground_no,linkage)%FunctiontotesttheGrashoflinkage%Inputs:%ground_no:thegroundlinknumberintheorder%linkage:rowmatrixforlengthsofthe4links%inoriginalassignedorder.%Example:ans=grashof(4,[44.22.62])%Revised:March4,2006ground=linkage(ground_no);link=sort(linkage);%sortingthelinksig=find(linkage==link(1));iflink(1)+link(4)>link(3)+link(2),ans='Non-GrashofLinkage';elseiflink(1)+link(4)==link(3)+link(2)ans='NeutralLinkage';elseiflink(1)==ground,ans='Double-CrankLinkage';elseswitchigcase1im=3;case2im=4;case3im=1;case4im=2;endifground==linkage(im)ans='Double-RockerLinkage';elseans='Crank-RockerLinkage';endendp.6-1-1 機構共有十二隻桿及十五個結p.6-1-2 M=3*(N-J-1)+F N=12 J=15  十二個旋轉結一個滑動結兩個滑槽結 所以F=12*1+1*1+2*2=17 M=-12+17=5 自由度為5p.6-1-3 函式輸入 gruebler(12,[1212]) 自由度為5p.6-1-4滑塊因與地面間的滑動特性,使系統多了一個滑動結滑槽是因其可提供滑動與轉動的自由,自由度+2p.6-2-1 J2,J3,J5為球結,自由度為3 J1,J6為旋轉結,自由度為1 J5為圓柱結,自由度為2p.6-2-2F=3*3+2*1+1*2 M=6(N-J-1)+F=6(6-6-1)+13 M=7 自由度為7p.6-2-3 函式輸入 gruebler(6,[20031]) 自由度為7p.6-2-4 此機構是有惰性自由度,5號桿與6號桿是可以自轉的,所以機構的惰性自由度為2,總自由度為7-2=5 惰性自由度使系統的總自由度減少,因為可自轉軸的自轉角度並不會影響系統之外型p.6-3-1葛拉索型: 在四連桿組中,最短桿與最長桿之和小於其他兩桿之和時,則至少有一桿為可旋轉桿。

非葛拉索型: 最短桿與最長桿之和大於其他兩桿之和時,所有的活動連桿必為搖桿p.6-3-2 第一組,7+4=6+5中立連桿組grashof(1,[7465])ans=NeutralLinkage第二組中,8+3.6>5.1+4.1非葛拉索連桿 grashof(1,[83.65.14.1])ans=Non-GrashofLinkage第三組中,6.6+3.1<5.4+4.7葛拉索型 grashof(1,[5.43.16.64.7])ans=Crank-RockerLinkagep.6-3-3第二組四連桿為非葛拉索型,要將他改成葛拉索型機構的話,可將最長桿火最短桿減短,或是將第二和第三連桿長度增加,達到葛拉索機構的要求。

  張貼者: dragon 於 下午2:58 沒有留言: 較舊的文章 首頁 訂閱: 文章(Atom) 網誌存檔 ▼  2007 (11) ▼  六月 (1) 機動學第十二次作業 ►  五月 (4) ►  四月 (3) ►  三月 (3) 關於我自己 dragon 檢視我的完整簡介  



請為這篇文章評分?