2/4/07

6.6 四連桿轉動的限制

迴轉的條件



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

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


 r1 + r2 < r3 +r4 (6.43)
|r1 -r2|>|r3 - r4| (6.43)


四連桿迴轉過程中,有可能其中兩桿會連成一線,或重疊成一線,前者若成立時,即變成三角形,後者若重疊時,亦會構成另一個三角形。理論上連桿構成三角形應不會有相對運動,故可稱為四連桿之運動極限。由這兩個極端位置,可以知道四連桿之最終運動限制。


圖6.8

第二桿為驅動桿時


第二桿為驅動桿時,由其不等式之方向,可以構成四種狀況,並進而求得該狀況之角度。下面為第二桿為驅動桿時之四種情況:

(1)當r1+r2≤r3+r4,|r1-r2|≥|r3-r4| 時:θmin=0,θmax=2π (6.44)


圖6.9 無限制旋轉(雙曲桿)
  
(2)當r1+r2≥r3+r4,|r1-r2|≥|r3-r4| 時:

θmin=-cos-1{[r1²+r2²-(r3+r4)²]/[2r1r2]}
θmax= cos-1{[r1²+r2²-(r3+r4)²]/[2r1r2]} (6.45)


圖6.10 上限對稱限制(雙搖桿)

(3)當r1+r2≥r3+r4,|r1-r2|≤|r3-r4| 時:

θmin=cos-1{[r1²+r2²-(r3-r4)²]/[2r1r2]}
θmax= cos-1{[r1²+r2²-(r3+r4)²]/[2r1r2]} (6.46)


圖6.11 上限限制

(4)當r1+r2≤r3+r4,|r1-r2|≤|r3-r4| 時:

θmin=cos-1{[r1²+r2²-(r3-r4)²]/[2r1r2]}
θmax=2π-cos-1{[r1²+r2²-(r3-r4)²]/[2r1r2]} (6.47)


圖6.12 下限限制


第三桿為驅動桿時


第三桿結合桿為驅動桿時,則仍然取決於四連桿屬於葛列夫(Grashof)一型或二型。若屬一型連桿,則當第三桿r3為最短桿時,第三桿可以作360度迴轉。其餘之限制條件雖不如以第二桿為驅動桿者,但其極;限狀況是當第二桿與第四桿相平行時,變成無法繼續迴轉,除非它是處於平行四邊形。將四種情況依下列二不等式之情況加以分類,在這些分類中,若兩式均為等號時,則應歸屬於第五類:

  r1 + r3 < r3 + r4 (6.42)
|r1 - r2|>|r2 - r4| (6.49)



(5)當r1+r3≤r2+r4,|r1-r3|≥|r2-r4| 時:θmin=0,θmax=2π (6.50)


圖6.13 聯結桿驅動無限制


(6)當r1+r3≥r2+r4,|r1-r3|≥|r2-r4| 時:

θmin=-cos-1{[r1²+r3²-(r2+r4)²]/[2r1r3]}
θmax= cos-1{[r1²+r3²-(r2+r4)²]/[2r1r3]} (6.51)


圖6.14 上下限制

(7)當r1+r3≥r2+r4,|r1-r3|≤|r2-r4| 時:

θmin=-cos-1{[r1²+r3²-(r2-r4)²]/[2r1r3]}
θmax= cos-1{[r1²+r3²-(r2+r4)²]/[2r1r3]} (6.52)


圖6.15 上方限制

(8)當r1+r3≤r2+r4,|r1-r3|≥|r2-r4| 時:

θmin=cos-1{[r1²+r3²-(r2-r4)²]/[2r1r3]}
θmax=2π-cos-1{[r1²+r3²-(r2-r4)²]/[2r1r3]} (6.53)


圖6.16 對稱限制

極限函數fb_angle_limits



觀察上面討論之四個極限角度,可以寫一組程式。由於以第三桿驅動與第二桿驅動,在計算上僅是將其中之r2與r3之位置對調即可。為尋找上述極限角度θmin、θmax,可用函數fb_angle_limits()進行尋找,其對應之角度為Ang1, Ang2,格式如下:

function [Ang1, Ang2]=fb_angle_limits(r,theta1,linkdrive)

其中輸入項目有:

r = 四連桿之長度向量,其定義與前函數相同。
theta1 = 第一桿之夾角,角度表示(deg)。
linkdrive = 驅動模式(=0 第二桿驅動; =1 第三桿驅動)。

輸出項為兩個角度,前者較小,後者較大:

Ang1 = 驅動桿(第二桿或第三桿)之最低限角度 (deg)
Ang2 = 驅動桿(第二桿或第三桿)之最高限角度 (deg)

繪製極限位置之drawlimits函數則是呼叫fb_angle_limits函數,求出其驅動桿之極限角,然後將其對應之極限位置繪出。其輸入項目與drawlinks函數相同。

程式內容



function [Ang1, Ang2]=fb_angle_limits(r,theta1,linkdrive)
%
%function [Ang1, Ang2]=fb_angle_limits(r,theta1,linkdrive)
% Find initital & final angles for the driving link
% linkdrive= (0 for crank; 1 for coupler as the driver).
% Variables:
% r=linkage row vector (cm)
% theta1=frame angle(degree);
% Ang1,Ang2=initial & final angles of the driving link(deg)
%Program
if nargin<3,linkdrive=0;end
if nargin<2,theta1=0;end
if linkdrive==1, r=[r(1) r(3) r(2) r(4)];end
r1=r(1);r2=r(2);r3=r(3);r4=r(4);
rmin=min(r);rmax=max(r);rtotal=sum(r);
Ang1=0; Ang2=2*pi;
if (r1+r2)>(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 (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;
% end
if (r1+r2)<=(r3+r4)&abs(r1-r2)<abs(r3-r4)
Ang1=acos((r2^2-(r4-r3)^2+r1^2)/(2*r1*r2));
Ang2=2*pi-Ang1;
end
adjst = (Ang2-Ang1)*1e-8;
Ang1=theta1+(Ang1+adjst)*180/pi;
Ang2=theta1+(Ang2-adjst)*180/pi;
if Ang2<Ang1,TT=Ang1;Ang1=Ang2;Ang2=TT;end


上述函數之應用,請參考下節的內容。

No comments:

Post a Comment