2007年6月11日 星期一

第十三次作業

P13-1

◎ 試設計一組複式齒輪,使其轉速比為125(請說明思考步驟及結果)。

利用速度比之計算來設計齒輪組,較為直接且容易;但若需要設計一套符合轉速比的齒輪組,則須反向思考。先就已知齒輪組的轉度比決定各齒輪之齒數,其考慮的因素及過程如下:


1. 決定組合數:複式齒列可用串聯多個組合方式達到整體轉速比。由於每組之轉速 比以維持在10之內為佳,若超過此數值則必須考慮增加齒輪組數。因此,先將125開方,得值為11.180,比10大,故使用兩組組合稍嫌不足。將125開三方得值為5,此值在10之內,所以使用三組齒輪組合。


2. 若可以找到轉速比為5的齒輪組合,即為最好的選擇。設驅動之小齒輪數最小為12齒(N2>=12),則依序可以得到對應大齒輪之齒數如下:
N3=5×12=60
N3=5×13=65
N3=5×14=70
N3=5×15=75


3. 大齒輪齒數必須為整數。由於轉速比正好為整數,所以上列每個值都為整數,因此我選用轉速比為70:14來組合,串聯三組這樣的組合即可得到總轉速比為(70/14)^3=125的理想組合。其齒數依序為14:70;14:70;14:70三組。


4. 由於大部分製造機械軍需正確的轉速比,以避免產生脫序的運動,所以三組的轉速比不一定要相等,可由總轉速比值性質求得不同組合之轉速比。但由於此題的轉速比開三方剛好為整數,所以不會有這個困擾。但是相對的,此題我們可以設計出更多種的組合。舉例:齒數依序為13:65;14:70;15:75三組。



P13-2

◎ 請指出本學期中你自己最感得意的一次作業(請說明其原因,且該作業必須在自己的部落格內)。

其實這學期來,每一次作業能交出來,我都覺得很不容易,儘管分數不一定理想,但是我都很認真。為了把作業弄好,常常連著兩、三天,每天都花3個小時以上在研究或請教別人等等。

其中最讓我得意的,應該就是第五次作業了吧!光是劃那個手臂,就費了一番功夫,之後還要想如何讓他依照我要的樣子旋轉。錯一次修一次,一直到動畫終於成型,我記得我花了二十個小時吧……。連我都佩服自己怎麼能堅持這麼久。

這學期的機動學,除了學習機動學跟MATLAB軟體以外,我學會了如何建立BLOG、如何將影片放入BLOG,這些額外的知識讓這堂課更有意義。我想,學習應該就是這麼一回事吧,不僅僅是課堂上的東西。那些附加的課外知識,才是更珍貴的經驗。

2007年6月7日 星期四

第十二次作業

一組標準全齒輪齒輪之徑節為8(亦可使用自設值),齒數分別為30T與48T,其工作壓力角為20度(可為14.5或25度,自選)。

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

◎ 兩齒輪之節圓、基圓直徑各為如何?

◎ 請列式計算其結果。此組齒輪是否會產生干涉現象?試列式證明之。

◎ 可否利用draw_gear.m繪出其接合情形,並繪出其動畫效果。


P12-1&2

利用函式contact_ratio求出上述之數值


function [c_ratio, c_length, ad, pc, pb, d2, d3, ag] = contact_ratio(pd, n2,n3, phi)
%
%Find the contact ratios
% Inputs:
% Pd = Diametrial pitch節徑上每吋之齒數
% n2,n3 = number of both gears兩齒輪之齒數
% phi = pressure angle, degrees壓力角
% Outputs:
% c_ratio, c_length = contact ratio and length接觸比和接觸長度
% ad = addendium齒冠
%   pc,pb = circular and basic circular pitches周節及基周節
%   d2, d3 = radii of pitch circles兩齒輪節圓半徑
%   ag = angles of action, in matrix of
% [alpha2 beta2 theta2 alpha3 beta3 theta3]兩齒輪之接近
% 角、遠退角及作用角
% Example: [c_r,c_l,ad,pc,pb,d2,d3,ag] = contact_ratio(6,24,48,20)

d2g=pi/180;
pangle=phi*d2g;
cosx=cos(pangle);sinx=sin(pangle);

ad=1./pd;pc=pi./pd;
pb=pc.*cosx;
r2=n2./(2*pd);r3=n3./(2*pd);d2=2*r2;d3=2*r3;
rb2=r2.*cosx;rb3=r3.*cosx;

ax=sqrt((r3+ad).^2-(r3.*cosx).^2)-r3.*sinx;
xb=sqrt((r2+ad).^2-(r2.*cosx).^2)-r2.*sinx;
c_length=ax+xb;

c_ratio=c_length./pb;
ag1=[ax./rb2 xb./rb2 c_length./rb2]/d2g;
ag2=[ax./rb3 xb./rb3 c_length./rb3]/d2g;
ag=[ag1;ag2];



由題目所給數據:pd=8, n2=30, n3=40, phi=20,代入函式

>> [c_ratio,c_length,ad,pc,pb,d2,d3,ag]=contact_ratio(8,30,48,20)

接觸線長度c_length =0.6275


接觸比c_ratio =1.7005

指齒輪在同一時間內有多少對齒牙同時互相囓合。當對數越多,表示各對牙齒所承受的負荷較輕,力量

之傳遞也較為均勻;對數越少則反之。當接觸比小於1,表示在某些時候甚至沒有齒牙配對,顯示這組

齒輪在力的傳遞會發生不均勻的問題。


這邊函式的註解好像有打錯,利用此函式求出的d2,d3為節圓半徑

所以兩齒輪節圓直徑=7.500 ,12


由課本9.11式

Pd= Dπ/N

基周節= 基圓半徑*π/齒數

D=3.524 ,5.638

兩齒輪基圓直徑=7.047,11.275




P12-3

漸開曲線中之一的特點是無法在基圓以下產生,固基圓以下的輪齒曲線通常採用由迴轉中心接過來之

輻射線。而當齒冠過高或中心矩過短等均會產生干涉(Interference)的現象。為避免干涉,齒輪

之基部必須內切,使齒冠容易通過。過切的齒輪其強度會減弱,且有一部分漸開線也須切除以利囓

合,如此也會減少作用線之長度。加長小齒輪之齒冠則不會產生干涉的問題,但齒冠過大,會產生

尖齒,齒輪的強度亦會減弱。


避免干涉的方法:

1.內切齒腹

2.增加齒輪直徑或使用較小齒形,以增加齒數

3.減少齒冠,或切除齒形太高的部分

4.增加兩齒輪之中心矩

5.增加壓力角



利用函式isinterf來討論齒輪是否會產生干涉現象

function [x]=isinterf(phi,N1,N2)
%
%Test if the gear set exists an interference
%phi = pressure angle, in degrees壓力角
%N1,N2 = teeth of both gears兩齒輪角數
%x=0 no interference; x=1 interence exists
x=0;
sinx=sin(phi*pi/180);
if N2<N1,nn=N1;N1=N2;N2=nn;end
if N1*(N1+2*N2)*sinx*sinx<4*(1+N2), x=1;end


>> [x]=isinterf(20,30,48);

x = 0

或利用不干涉之條件公式,即

( N1²+2N1 x N2 )sin²(phi) >= 4 + 4N2


帶入數據得:

[ 30² + 2(30)(48) ]sin²(20) > 4 + 4(48)


所以沒有產生干涉現象。




P12-4

利用函式draw_gear來呈現齒輪靜態的情形


function [coords]=draw_gear(Dp,N,phi,range,x0,y0)
% [coords]=draw_gear(Dp,N,phi,range,x0,y0)
% To draw a whole gear
% Inputs:
% Dp: Diametrical pitch經節
% N: number of teeth in a gear齒數
% phi: pressure angle, degrees壓力角
% range: the section range to be drawn齒輪範圍
% x0,y0: the location of the gear center基座中心
% Example [coords]=draw_gear(10,15,20,360,0,0)


以下三個圖所呈現的是兩個齒輪為同心基座中心的情況


壓力角=20°
>> [coords]=draw_gear(8,30,20,360,0,0);
[coords]=draw_gear(8,48,20,360,0,0);




壓力角=14.5°
>> [coords]=draw_gear(8,30,14.5,360,0,0);
[coords]=draw_gear(8,48,14.5,360,0,0);





壓力角=25°
>> [coords]=draw_gear(8,30,25,360,0,0);
[coords]=draw_gear(8,48,25,360,0,0);






利用函式move2_gear來呈現齒輪動態的情形


function move2_gear(Dpitch,nn1,nn2,phi,omega1)
%move2_gear(Dpitch,nn1,nn2,phi,omega1)
%To draw a whole gear
% Inputs:
% Dpitch:dimetral pitch徑節
% nn1,nn2: no. of teeth for both gears兩齒輪之齒數
% phi:pressure angle, degrees壓力角
% omega1: angular velocity of gear 1第一個齒輪的角速度
% Example move2_gear(10,15,20,20,10)


分別代入不同的齒輪帶動角速度和壓力角


角速度=10 rad/s ,壓力角=20°
>> move2_gear(8,30,48,20,10);




角速度=20 rad/s ,壓力角=14.5°
>> move2_gear(8,30,48,14.5,20);




角速度=30 rad/s ,壓力角=25°
>> move2_gear(8,30,48,25,30);

2007年5月29日 星期二

第十一次作業

我有上本週(5/24)的課。


P11-1


◎某凸輪開始時先在0-100∘區間滯留,然後提升後在200至260∘區間滯留,其高度(衝程)為5公分,其餘由260∘至360∘則為返程。升程採用等加速度運動,返程之運動型式自定。設刻度區間為10°,試繪出其高度、速度及加速度與凸輪迴轉角度間之關係。



利用function plot_dwell(ctheta,s,pattern,range)
%ctheta = 凸輪角度,度數
%s = 從動件衝程
%pattern = 運動的型式,二元素之列矩陣,其代碼如下:
% 1:等速運動uniform
% 2:抛物線parabolic
% 3:簡諧simpleharmonic
% 4:擺線cycloidal
% 5:多項式polynomial motion
%range = 升程及返程之範圍,三元素列矩陣
% e.g.[90 180 240]升程始於90度,止於180度;返程始
% 於240 度,止於360。



返程為等速運動

>> plot_dwell([0:10:360],5,[2 1],[100 260 260]);




返程為等加速度運動

>> plot_dwell([0:10:360],5,[2 2],[100 260 260]);




返程為簡諧運動

>> plot_dwell([0:10:360],5,[2 3],[100 260 260]);




返程為擺線運動

>> plot_dwell([0:10:360],5,[2 4],[100 260 260]);




返程為多項式運動

>> plot_dwell([0:10:360],5,[2 5],[100 260 260]);





P11-2

◎設凸輪之半徑為15公分,以順時針方向旋轉,其從動件為梢型,垂直接觸,長為10公分,從動件之運動係依照第二項之運動型式。試繪出此凸輪之工作曲線。


利用function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)


%輸入參數:
%cth = 凸輪角度,度數
%r0 = 凸輪基圓半徑
%s = 從動件衝程
%e = 偏置量
%L = 從動件長度
%range = 升程及返程之範圍,三元素列矩陣
% e.g.[90 180 240]升程始於90度,止於180度;返程
% 於240 度,止於360。
%pattern = 運動的型式,二元素之列矩陣,其代碼如下:
% 1:等速運動uniform
% 2:抛物線parabolic
% 3:簡諧simpleharmonic
% 4:擺線cycloidal
% 5:多項式polynomial motion
%cw = 凸輪轉動方向(反時鐘為正,順時鐘為負)



>> [x y]=pincam([0:10:360],15,5,0,10,[100 260 260],[2 3],-1);




◎要讓凸輪產生迴轉,我將函式pincam稍作修改如下:


function [x,y]=pincam_rotate(cth,r0,s,e,L,range,pattern,cw)
%Find the pin type cam with an offsect e
%Inputs:
% cth:angle of cam, degrees
% r0:radius of base circle
% e:offset
% s:stroke
% L:length of pin
% cw:rotation direction of cam(-counterclockwise,+clockwise
%pattern = denote the type of motion used(a 3 element-row matrix)
% 1:uniform 2:parabolic 3:simple harmonic 4: cycloidal
% 5:polynomial motion
% example [4 3]
%range =the degrees the specific motion starts, eg.[90 180 240]
% Example: [x y]=pincam([10 60],5,2,1,10,[90 180 240],[4 3],-1)

figure(1);
clf;
th=cth*pi/180;
s0=sqrt(r0*r0-e*e);

for n=1:10:360;
m=n*pi/180;
for i=1:length(cth)
t=th(i)*cw;
A=[cos(t-m) -sin(t-m);sin(t-m) cos(t-m)];
[ym,yy,yyy]=dwell(cth(i),range,pattern);
x0=s0+ym*s;
Sx=[0 x0 x0+L;e e e];
X=A\Sx;
x(i)=X(1,2);y(i)=X(2,2);
end;
line(X(1,1:2),X(2,1:2));
line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')
hold on;
plot([0 x],[0 y],'ro',x,y,'k-')
pause(0.5);
clf;
axis([-50 50 -50 50]);
end;




假設返程為簡諧運動

>> [x y]=pincam_rotate([0:10:360],15,5,0,10,[100 260 260],[2 3],-1);


2007年5月23日 星期三

第十次作業

本週(5/17)有來上課


P10-1


◎當一桿以某特定點M等角速度迴轉時,其端點P之速度方向如何?其加速度方向如何?

設角速度為ωrad/s

所以P點此時具有速度{r*ω} m/s,方向與r垂直,r是從M點到P的距離

另外,P點有向心力所造成的向心加速度,大小為{r*ω^2} m/s^2,其方向指向轉動中心M







◎若該特定點M復以等速水平運動,則同一端點P之速度與加速度方向會變為如何?

設M點以v m/s的速度在水平方向移動,θ為桿與水平面的夾角

則P點的速度要加入M點水平速度的考量,變成{v + r*ω* cos(θ) i + r*ω* sin(θ) j } m/s

而加速度還是只有原來的向心加速度,大小為{r*ω^2} m/s^2,其方向指向M




◎若M點同時也有加速度,則點P會有何變化?

設M點的加速度為a m/s^2

則P點的速度可寫成為時間t的函式

vp = { ( v + at ) + r*ω* cos(θ) i + r*ω* sin(θ) j } m/s

而加速度ap = { a + r*ω^2*cos(θ) i + r*ω^2*sin(θ) j } m/s^2




◎若以此推理四連桿的運動,則點P與Q之速度與加速度方向會與桿一(固定桿)之兩端點之關係如何?與我們前面的作業分析結果有無共通之處?(參看第六章之四連桿機構之運動分析)



P10-2


◎設有一運動之曲柄滑塊連桿組合,設滑塊之偏置量為零,且在水平方向移動,試以此機構之曲桿長度及角度,以及連結桿之長度為輸入項,利用matlab寫出一程式計算在不同曲柄角度時,六點瞬心之對應位置。可順便探討六點瞬心與曲柄角間之關係。


瞬時中心:物件運動過程中,常會在特定時間環繞一定點轉動,此定點稱為瞬時中心。瞬時中心有固定者、有活動者。以四連桿為例,除四個端點為瞬心外,其餘有兩瞬心屬活動性的。一在兩固定瞬心之連線上,另一則會隨四連桿之位置而變化。因其具有某種連結方式或其轉動的限制,造成在特定瞬間具有一共同點,此共同點可能在連桿上,也可能在其延伸面上,且該點在兩連桿上分別具有相同之速度,所以稱為兩物體之瞬時中心( Instantaneous Center )。

由題目可知e = 0
所以本題形成三連桿之狀態,而其中三點瞬心即為三個結點。另外有兩個由結點的連線可求得其位置,還有一個則會存在無窮遠處。

以下為利用課本上的圖,所修改出來的程式,用來呈現瞬心的位置


function drawIC(R2,R3,th2)
%function drawIC(R2,R3,th2)
%劃出物體運動之瞬時中心位置
%輸入函數為
%R2:驅動桿長度
%R3:連結桿長度
%th2:驅動桿之水平角度


axis equal;

theta2=th2*pi/180;%先將th2換算為弧度

%計算瞬心位置,參考課本5-22圖5.18
cx12=0;
cy12=0;
cx23=R2*cos(theta2);
cy23=R2*sin(theta2);
theta3=asin(R2*sin(theta2)/R3);
%利用正弦定律求出連結桿之水平夾角
cx34=cx23+R3*cos(theta3);
cy34=0;
cx13=cx34;
cy13=cx34*tan(theta2);
cx24=0;
cy24=cx34*tan(theta3);


draw_links=[cx12 cy12;cx23 cy23;cx34 cy34;cx12 cy12];
%繪出連桿及基本瞬心之位置
draw_outer=[cx34 cy34;cx13 cy13;cx23 cy23;cx24 cy24;cx12 cy12];
%繪出外部瞬心之位置
draw_sld=[cx34-2 cy34-1;cx34-2 cy34+2;cx34+2 cy34+2;cx34+2 cy34-2;cx34-2 cy34-2];
%繪出滑塊之位置
hold on;

plot(draw_links(:,1),draw_links(:,2),'b-','LineWidth',2);
plot(draw_outer(:,1),draw_outer(:,2),'k:','LineWidth',1.5);
plot(draw_sld(:,1),draw_sld(:,2),'r-','LineWidth',1.5);
hold off;

%標註
text(cx12+0.2,cy12-0.2,'C12');
text(cx23+0.2,cy23-0.2,'C23');
text(cx34+0.2,cy34-0.2,'C34');
text(cx13+0.2,cy13-0.2,'C13');
text(cx24+0.2,cy24-0.2,'C24');
grid on;

假設R2=30、R3=45、th2=60、120、240之情形
繪出曲柄滑塊組合之瞬心的位置

>> drawIC(30,45,60);



>> drawIC(30,45,120);



>> drawIC(30,45,240);



以下為動畫的呈現


>>for th2=0:20:360;
clf;
drawIC(30,45,th2);%將迴轉角度分成20等份轉動
pause(0.2);
end;






由於dead point的問題,所以有些角度無法呈現

2007年5月16日 星期三

第九次作業

Q:請就教科書中第四章第五節之偏置機構作另類分析,分析過程可採你所知的方式(包括講義中所列的方法)。運動中分以曲桿驅動及滑塊驅動
的方式,並說明運動的界限或範圍。設此機構之曲桿長Rcm,連桿Lcm,滑塊之偏置量為10cm等數據作分析。
其中,R=10+(學號末二碼),L=R+5 。

function [values]=drawsldlinks(r,th1,th2,sigma,driver)
%function drawlinks(r,th1,th2,sigma,driver)
%draw the positions of four-bar links
%call f4bar function
%r:連桿長度
%th1: frame angle固定桿之角度
%th2: crank angle or couple angle驅動桿之角度
%sigma: assembly mode
%driver: 0 for crank第二桿驅動, 1 for coupler第三桿驅動

學號=6
R=10+6=16
L=R+5=21
偏置量e=10


˙由第二桿驅動
>> for n=1:20
clf;
th2=linspace(-15.404,180+15.404,20);%將迴轉角度分成20等份轉動
drawsldlinks([0 16 21 10],0,th2(n),1,0);
pause(0.5);
end;
axis equal;





動畫中的藍色桿即為驅動桿


˙由第三桿驅動
>> for n=1:20
clf;
th2=linspace(-16.6015, 196.6015,20);%將迴轉的角度分成20等份轉動
drawsldlinks([0 16 21 10],0,th2(n),1,1);
pause(0.5);
end;
axis equal;





動畫中的紅色桿即為驅動桿


˙由滑塊驅動
>> for n=1:20
clf;
th2=linspace(-35.6230, 35.6230,20);
drawsldlinks([0 16 21 10],0,th2(n),-1,2);
pause(0.5);
end;
axis equal;


由於函式drawlinks好像沒有寫入driver=2(滑塊驅動)之情形,所以此程式跑不出來。



※驅動分析
◎測試滑塊連桿之組成,以第二桿為驅動桿時有下列四種情況:
(1) 當r3≧r4≧0,且 r3+r4 ≦ r2時
(2) 當r4≧r3≧0,且 r3+r4 ≧ r2時
(3) 當r3≧-r4≧0,且 r3-r4 ≦ r2時
(4) 當-r4≧r3≧0,且 r3-r4 ≧ r2時


由於本題數據[0 16 21 10]皆不符合以上情況,無法利用drawsldlimits函數繪出圖形,產生函式裡else之結果

>> drawsldlimits([0 16 21 10],0,-1,0)


Qstart =

3.6000e-006

Qstop =

360.0000


所以將自己利用餘弦定律求出的角度代入drawsldlinks函數,即可繪出由第二桿驅動的情形。

>> drawsldlinks([0 16 21 10],0,-15.404,-1,0);
drawsldlinks([0 16 21 10],0,180+15.404,1,0);





◎第三桿結合桿為驅動桿時,則只要r2≧|r3|+|r4|之條件成立,結合桿即可完全迴轉,即 0≦θ3≦2π。當r2≧|r3|+|r4|條件不能成立時,迴轉會開始有限制,即在第二桿與滑動線相垂直時會發生。
(1) 當0≦r4,且0≦r2-r4≦r3 時
(2) 當0≦r4,且r2+r4≦r3 時
(3) 當r4≦0,且0≦r2+r4<r3時
(4) 當r4≦0,且r2-r4<r3 時


符合(1)的情形,可繪出兩側對稱,第二桿垂直於第一桿之圖形

>> drawsldlimits([0 16 21 10],0,1,1)


Qstart =

-16.6015

Qstop =

196.6015






◎從滑塊驅動來分析,由於屬於直線運動,故在程式中之Qstart及Qstop值為第一桿位移之最大與最小量。

(1) 當|r2-r3|> r4時,其條件限制於r1所給之長短
(2) 當|r2-r3|< r4時


符合(2)之情形,可繪出一對稱圖形

>> drawsldlimits([0 16 21 10],0,1,2)


Qstart =

-35.6230

Qstop =

35.6230





滑塊正位移為35.623 cm,可得其衝程量S=71.246 cm



※運動分析
◎利用drawsldpaths函式,輸出速度、加速度、角速度、角加速度隨角度變化圖

function drawsldpaths(r6,th6,r,th1,td2,tdd2,sigma,npts,driver,mode)
%
%drawsldpaths(r6,th6,nlink,r,th1,td2,tdd2,sigma,npts,driver,mode)
% To draw sets of positions of slider-crank links
%Author:D.S.Fon, BIME, NTU. Dated April 11, 2003
%call sldlink.m, drawsldlinks.m, sld_angle_limits.m & body.m
%
%Inputs:
% r:四個連桿之長度
% th1, th2:固定桿和驅動桿與水平之夾角
% td2,tdd2:驅動桿之角速度與角加速度
% sigma: 開支型或閉合型
% driver: 0 for crank, 1 for coupler, 2 for slider
% npts: number of points divided分割點數
% r6,rh6,nlink:additional length and angle for nlink link.
% mode=0 simple position graph only.
% =1 all 3 graphs. =2 simple graph+velocity graph
% =3 all 3 graphs but with simple position graph


由不同的驅動方式及開支或閉合型來分析
設初始值:角速度=180/pi,角加速度=0,npts=40。

(1)driver=0,sigma=1:
drawsldpaths(0,0, [0 16 21 10],0,180/pi,0,1,40,0,2);




(2)driver=0,sigma=-1:
drawsldpaths(0,0, [0 16 21 10],0,180/pi,0,-1,40,0,2);




(3)driver=1,sigma=1:
drawsldpaths(0,0, [0 16 21 10],0,180/pi,0,1,40,1,2);




(4)driver=1,sigma=-1:
drawsldpaths(0,0, [0 16 21 10],0,180/pi,0,-1,40,1,2);




(5)driver=2,sigma=1:
drawsldpaths(0,0, [0 16 21 10],0,180/pi,0,1,40,2,2);




(6)driver=2,sigma=-1:
drawsldpaths(0,0, [0 16 21 10],0,180/pi,0,-1,40,2,2);

2007年5月9日 星期三

第八次作業


由題目可知:
有一組四連桿,其桿長分別為r=[4 3 3 5],由桿2驅動,設第一固定桿角度theta1=0度; 角速度 td2=10rad/s; 角加速度tdd2=0 rad/s^2。

▲ 問題一:設桿2角度theta2=45度時,求各點之位置、速度與加速度為何?
▲ 問題二:繪出此四連桿之相關位置及標明各點之速度方向及大小(以程式為之)。
▲ 問題三:當桿2迴轉時,求出此組四連桿之限制角度,並繪出其位置(以程式為之)。
▲ 問題四:設theta2=[0:20:360],試繪出此組四連桿之重疊影像,解釋為何有些沒有值。
▲ 問題五:若將問題三考慮在內,只在可迴轉的範圍內迴轉,請問你能讓此組四連桿作成動畫方式迴轉嗎?


P8.1

function [data,form] = f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)
分別輸入四桿長度,桿一的角度、角速度、角加速度及桿二的角度,mode=-1(閉合),driver=0(驅動桿為第二桿)


所以,由程式f4bar可得:
>> [data,form] = f4bar([4 3 3 5],0,45,10,0,-1,0)

各連桿之位置,由複數軸表示(單位:公尺)
桿一:0.0040
桿二:0.0021 + 0.0021i
桿三:0.0011 + 0.0028i
桿四:-0.0008 + 0.0049i

各連桿之速度
>> abs(data(:,5))'
ans = 0.0300 0.0248 0.3000 1.9220

各連桿之加速度
>> abs(data(:,6))'
ans = 3.0000 5.8635 0 0




P8.2

function [values]=drawlinks(r,th1,th2,mode,linkdrive)
分別輸入四桿長度,桿一及桿二的角度,mode=-1(閉合),driver=0(驅動桿為第二桿)


所以由drawlinks程式可得:
>> [values]=drawlinks([4 3 3 5],0,45,-1,0)



黑色為第一桿,藍色為第二桿,紅色為第三桿,綠色為第四桿



P8.3

function drawlimits(r,th1,sigma,driver)
輸入四桿長,桿一角度,sigma=-1(閉合),driver=0(驅動桿為第二桿)


由drawlimits程式可求出其限制角度,並繪出其圖示
>> drawlimits([4 3 3 5],0,-1,0)
Qstart = 28.9550
Qstop = 331.0450





P8.4

>>for i=0:20:360,drawlinks([4 3 3 5],0,i,-1,0); end;



四連桿之迴轉過程,能完全迴轉的情況仍然很少,有些時候無法獲得完整一圈的迴轉。亦即依葛列夫定理四連桿之第一或第二類類型決定,前者為完整迴轉型,後者則有迴轉角度之限制,這些限制因四連桿長度決定之。

在數學上,要可以迴轉,此兩不等式之條件必須能滿足:

r1 + r2 < r3 +r4
r1 -r2 > r3 - r4

在本題中,限制角分別為29°和331°,即表示此四連桿的迴轉範圍為29°~331°,所以Combination of links fail at degrees:0.0 , 20.0 , 340.0 , 360.0



P8.5


承上題,在可迴轉的範圍讓其呈現動畫迴轉
>>for i=29:10:331,drawlinks([4 3 3 5],0,i,-1,0);
pause(1);
clf;
end;




2007年4月25日 星期三

第七次作業


由題目可知
function dyad_draw(rho,theta,td,tdd)其中:


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


P7.1




a=6(學號)+10=16

各桿之對應長度rho=[16,21,11]cm





>> dyad_draw([16 21 11],[0 0 0],[0.2 0.5 0.3],[0 0.1 0.2])
%利用dyad_draw函式畫出三桿連成端桿的型式



ans =



3.2000 10.5000 3.3000








藍線為各桿之速度,紅色線為加速度,綠色為三桿合速度



P7.2




考慮t=[1 2 3 4 5]之端桿運動狀態:




axis equal;

dyad_draw([16,21,11],[0,0,0],[0.2,0.5,0.3],[0,0.1,0.2]);

pause(2);%顯示最初靜止狀態的圖示2秒

clf;

for t=1:5%t為時間的參數

axis equal;

dyad_draw([16,21,11],[0.2,0.5+t*0.1,0.3+t*0.2],[0.2,0.5+t*0.1,0.3+t*0.2],[0,0.1,0.2]);

pause(1);%畫出考慮時間t之後的運動情形

clf;

%利用消除前一個圖做成動畫

end;