2/6/07

7.8 反置滑塊之迴轉限制

迴轉之角度限制


反置滑塊四連桿在轉動之過程中,由於桿3若無長度限制的話,應可伸長,以應付r2及r4兩桿端不同的位置。但若桿3有最大伸縮限制,其情況會與固定四連桿一樣。當桿3縮短時,實際上亦應有一個最低值,此值應至少大於零。當桿3之長度等於零時,四連桿將變成三連桿,成為無法移動的桿件,故成為最低極限。四連桿迴轉過程中,有可能其中兩桿會連成一線,或重疊成一線,前者若成立時,即變成三角形,後者若重疊時,亦會構成另一個三角形。理論上連桿構成三角形應不會有相對運動。故可稱為四連桿之運動極限。由這兩個極端位置,可以知道四連桿之最終運動限制。

下面函數drawinvpaths繪出主要反置滑塊之途徑。函數drawinvpaths()為利用繪出之軌跡及其活動之範圍定出其角度範圍。其呼叫之格式如下:

function [Q1,Q2]=drawinvpaths(r6,th6,nl,r,th1,td2,tdd2,r3,sigma,driver)

  • 輸入參數:
  • r : 四連桿之長度,一列向量表示。
  • th1: 第一桿的水平角度(通常為零)。
  • th2: 驅動桿或聯結桿的水平角度。
  • td2, tdd2:驅動桿之角速度及角加速度。
  • Sigma:連桿之組合模式選擇(需為+1或-1) =[sigma beta]
  • Driver:驅動桿之設定( 0 表示曲桿驅動,1 表示由聯結桿驅動,3滑塊驅動)。
  • r3:[r3min r3max]桿3之最小及最大長度限制。
  • r6,rh6,nlink:桿上特定點之位置,包括桿長,與桿之夾角及附於何桿。


程式內容



function [Q1,Q2]=drawinvpaths(r6,th6,nl,r,th1,td2,tdd2,r3,sigma,driver)
%[Q1,Q2]=drawinvpaths(r6,th6,nlink,r,th1,td2,tdd2,r3min,sigma,driver)
% Draw the positions of slider-crank inversion links
% Call sldinv.m. drawinvlinks.m, body.m
% Author:D. S. Fon, BIME, NTU. Date: Feb. 14, 2007
%Inputs:
% r: row vector for four links
% th1: frame angle
% td2,tdd2:angular velocity and acceleration of the driving link.
% r3=[r3min r3max]: constrain of link 3
% sigma: assembly mode=[+/-1 +/-1]
% driver: 0 for crank, 1 for coupler,2 for slider(r3)
% r6,rh6,nl:additional length and angle for the nl link.
% example:
% clf;drawinvpaths(3,20,3,[2,1,5,1],0,10,0,[5 0],[1 1],0,0)
% clf;drawinvpaths(1,20,3,[2,1,5,1],0,10,0,[5 0],[1 1],2,0)
figure(1);
warning off;
npoint=100;
val=zeros(npoint,5);th=zeros(1,20);
r3min=r3(1);r3max=r3(2);
Q1=0;Q2=360;j=1;m=1;
for ith=1:359
[vr b]=sldinv(r,th1,ith,td2,tdd2,sigma,driver);
if b==1
r3=abs(vr(3,1));
if r3<r3min & r3>r3max,
[para]=body(r6,th6,vr,nl);
thx(m)=ith;
val(m,1:4)=[vr(2,1) vr(1,1)+vr(4,1) para(2) vr(3,1)];
m=m+1;
% val(m,5:11)=[para(2) para(4) vr(1,5) vr(2,5) para(5),...
% vr(3,2) vr(3,3) vr(3,4)];
%Xa,Va, Vs, As, Va, th/c, ome/c alpha/c
if j==1¦mod(ith,10)==0,
[data]=drawinvlink2(r,th1,ith,td2,tdd2,1,sigma,driver);
plot(real(para(1:2)),imag(para(1:2)),'k');hold on;
plot(para(2),'bo');text(real(para(2)),imag(para(2)),' A');
th(j)=ith;j=j+1;
end
end;
end;
end
x=real(val(1:m-1,:));y=imag(val(1:m-1,:));
plot(x(:,1),y(:,1),'r-');
plot(x(:,2),y(:,2),'b-');
plot(x(:,3),y(:,3),'g-');


function [data]=drawinvlink2(r,th1,th2,td2,tdd2,pivot,sigma,driver)
%
% drawinvlink2(r,th1,th2,td2,tdd2,sigma,driver)
% draw the positions of slider inversion links
% call sldinv.m
% r: row vector for four links
% th1: frame angle
% th2: crank angle or couple angle
% sigma: assembly mode
% driver: 0 for crank, 1 for coupler, 2 for r3
% pivot:1 for P; =2 for center; =3 for Q point.
% Author:DSFON, BIME, NTU. Date: Feb. 15, 2007
% Example:
% drawinvlink2([20,8.5,0,3],0,60,1,0)
% for i=0:20:360,drawinvlinks([20,8.5,0,3],0,i,1,0);end
%
[data b]=sldinv(r,th1,th2,td2,tdd2,sigma,driver);
rr=data(:,1);
rr(3)=rr(1)+rr(4);pcenter=[rr(2) (rr(2)+rr(3))/2 rr(3)];
rx=[real(rr);0];ry=[imag(rr);0];
if b==1
plot([0 rx(1)],[0 0],'k-','LineWidth',4);%Ground line
hold on;
plot([0 rx(1)],[0 ry(1)],'g-','LineWidth',1.5);
if driver==0
plot([0 rx(2)],[0 ry(2)],'b-','LineWidth',1.5);
plot([rx(2) rx(3)],[ry(2) ry(3)],'r-','LineWidth',2);
else
plot([0 rx(2)],[0 ry(2)],'r-','LineWidth',2);
plot([rx(2) rx(3)],[ry(2) ry(3)],'b-','LineWidth',1.5);
end
plot([rx(1) rx(3)],[ry(1) ry(3)],'k-');%link 4
text(0,0,' O');text(rx(1),ry(1),' R');
text(rx(2),ry(2),' P');text(rx(3),ry(3),' Q');
plot(rx(3),ry(3),'ko');
length=max(abs(data(1:2,1)));
rxx=real(pcenter(pivot));ryy=imag(pcenter(pivot));
[coords] = sldbox(.20*length,.10*length,rxx,ryy,data(3,2));
plot(coords(:,1),coords(:,2),'r-','LineWidth',2);
[coords] = sldbox(0.18*length,0.08*length,rxx,ryy,data(3,2));
fill(coords(:,1),coords(:,2),'r');
plot(rxx,ryy,'bo');
else
fprintf('Combination of links fails at degrees %6.1f\n',th2);
end
axis equal
grid on


執行例


>> drawinvpaths(3,0,3,[3,8,18,3],0,10,0,[0 100],[-1 -1],0,0);
>> drawinvpaths(3,0,3,[3,8,18,3],0,10,0,[0 100],[1 -1],0,0);



要完成上述整個迴轉運動,必須分兩段進行,第一段在sigma設定為[-1 -1] ,下段設為[1 -1],兩者配合才能產生完整的圖像。drawinvlink2函數與drawinvlinks不同的地方是,前者可以選擇滑塊置放之位置。