2007年5月11日 星期五

作業八

B94611034 張延瑋
A:我(4/26)曾來上課。


B:
問題一:設桿2角度theta2=45度時,求各點之位置、速度與加速度為何?






虛線為加速度  


綠線為速度





第2、3節點之速度為   30/s 
第2、3節點之加速度為  300/s^2
第3、4節點之速度為   24.8387/s
第3、4節點之加速度為  1922/s^2







問題二:繪出此四連桿之相關位置及標明各點之速度方向及大小(以程式為之)。
能此函數能會製出四連桿和其加速度
function f4barline(r,theta1,theta2,td2,tdd2,mode,linkdrive)
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,
form=1;
if abs(C-A)>=1e-5
t4=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
A=-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;
if pos>=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);
end
end
theta(3)=t3;theta(4)=t4;
td(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);
tdd(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);
if linkdrive==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)];
else
c2=cx;s2=sx;
end
for j=1:4,
data(j,1:4)=[r(j)*exp(i*theta(j)) theta(j)/d2g td(j) tdd(j)] ;
end % position vectors
data(1,5)=r(2)*td(2)*exp(i*theta(2));%velocity for point Q
data(2,5)=r(4)*td(4)*exp(i*theta(4));%velocity for point P
data(3,5)=r(2)*(i*tdd(2)-td(2)*td(2))*exp(i*theta(2));%acc of Q
data(4,5)=r(4)*(i*tdd(4)-td(4)*td(4))*exp(i*theta(4));%acc of P
data(1,6)=data(2,1);%position of Q, again
data(2,6)=data(1,1)+data(4,1);% position of P
rotate=abs(data(:,2));
fun=[0 r(2)*cosd(rotate(2)) r(4)*cosd(rotate(4)+r(1)) r(1) ,0;0 r(2)*sind(rotate(2)) r(4)*sind(rotate(4)+0) 0,0]'
clf
line(fun(:,1),fun(:,2),'color','r')
triangle1 = [[fun(2,1),fun(2,1)+real(data(1,5))/10]' [fun(2,2),fun(2,2)+imag(data(1,5))/10]']
line(triangle1(:,1),triangle1(:,2)','color','g')
triangle2 = [[fun(2,1),fun(2,1)+real(data(3,5))/100]' [fun(2,2),fun(2,2)+imag(data(3,5))/100]']
line(triangle2(:,1),triangle2(:,2)','color','b','linestyle',':')
triangle3 = [[fun(3,1),fun(3,1)+real(data(2,5))/10]' [fun(3,2),fun(3,2)+imag(data(2,5))/10]']
line(triangle3(:,1),triangle3(:,2)','color','g')
triangle4=[[fun(3,1),fun(3,1)+real(data(4,5))/100]',[fun(3,2),fun(3,2)+imag(data(4,5))/100]']
line(triangle4(:,1),triangle4(:,2),'color','b','linestyle',':')
else
form=0;
if linkdrive==1,
r=[r(1) r(3) r(2) r(4)];
for j=1:4, data(j,1)=r(j).*exp(i*theta(j));end % positions
end
end




問題三:當桿2迴轉時,求出此組四連桿之限制角度,並繪出其位置(以程式為之)。

使用網頁上之move_4paths函數 求得其限制角度為29度及331度















問題四:設theta2=[0:20:360],試繪出此組四連桿之重疊影像,解釋為何有些沒有值。

其為雙搖桿型連桿 任何桿都不可能產生完整的轉動 因此題目中的主動桿必存在死點且
位在第二桿為29度及331度時















問題五:若將問題三考慮在內 ,只在可迴轉的範圍內迴轉,請問你能讓此組四連桿作成動畫方式迴轉嗎?
可以
動畫1
動畫2