2007年5月29日 星期二

作業 11



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


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

3你能讓此凸輪迴轉嗎?


本週(5/24)有來上課。



若偏置量為0

一、利用plot_dwell函式分別計算並繪出各種運動情形的加速度及速度以及位移的關係曲線,
其中位移曲線及相當於工作曲線,由於間隔為10度時圖形曲線並不是那麼連續,
如起始以及結束區與理論不太合,故我又繪置了間隔為1度的圖形曲線做比較

二、利用pincam函式繪出凸輪外型以及梢形從動件在凸輪工作時與凸輪相對之位置

三、利用pincam_rotate函式做出凸輪運動時的動畫

四、重複二、三,以反時針旋轉做比較


A 升程-等加速度運動,返程-等速度運動


位移(工作)曲線及速度、加速度之關係圖



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


























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

























凸輪外型與從動件工作圖及動畫



順時針旋轉

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






















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







反時針旋轉

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





















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






B 升程-等加速度運動,返程-等加速度運動

位移(工作)曲線及速度、加速度之關係圖


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





















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


















凸輪外型與從動件工作圖及動畫


順時針旋轉

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


















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





反時針旋轉

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

















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





C升程-等加速度運動,返程-簡諧運動


位移(工作)曲線及速度、加速度之關係圖

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


















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



















凸輪外型與從動件工作圖及動畫



順時針旋轉

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



















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





反時針旋轉

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



















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





D升程-等加速度運動,返程-擺線運動


位移(工作)曲線及速度、加速度之關係圖

10度

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


















1度

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





















凸輪外型與從動件工作圖及動畫


順時針旋轉


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






















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




反時針旋轉

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






















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





E升程-等加速度運動,返程-多項式曲線

位移(工作)曲線及速度、加速度之關係圖

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


















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



















凸輪外型與從動件工作圖及動畫


順時針旋轉


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



















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




反時針旋轉

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





















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




跑凸輪動畫之程式如下,其餘dwell及pincam皆為網路講義之程式






function [x,y]=pincam_rotate(cth,r0,s,e,L,range,pattern,cw)
%繪製凸輪轉動動畫
%Inputs:
% cth:凸輪的角度
% r0:基圓半徑
% e:偏置量
% s:衝程
% L:梢長
% cw:順時或逆時
%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 運動範圍

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

%利用迴圈來跑動畫
for i=1:length(cth)
clf;
t=th(i)*cw;

[ym1,yy,yyy]=dwell(cth,range,pattern);
nn=length(ym1);
d2r=pi/180;
if cw==1,
theta=linspace(0,360,nn)'*d2r;
else
theta=linspace(360,0,nn)'*d2r;
end

xx3=0;yy3=0;
rp=[(s0+ym1'*s).*cos(pi/2+theta-cw*th2*(i-1)) (s0+ym1'*s).*sin(pi/2+theta-cw*th2*(i-1))];
xx3=rp(:,1);yy3=rp(:,2);
axis([-30 30 -30 30]);
axis equal
line(xx3,yy3,'linewidth',2,'color','m');
%繪出凸輪外型

t2=linspace(pi/2,2.5*pi,361);
C1=r0/8*exp(j*t2');
x1=real(C1);
y1=imag(C1);
line(x1,y1,'LineWidth',2); hold on;
C2=r0/4*exp(j*t2');
x2=real(C2);
y2=imag(C2);
line(x2,y2,'LineWidth',2);
line([x2(91) x2(91)],[y2(91) y2(91)-r0/4],'LineWidth',2);
line([x2(271) x2(271)],[y2(271) y2(271)-r0/4],'LineWidth',2);
line([x2(91)-r0/4 x2(271)+r0/4],[y2(271)-r0/4 y2(271)-r0/4],'LineWidth',2,'linestyle',':'); hold on;
%繪出凸輪的基座

theta=linspace(0,360,361)'*pi/180;
rb=[s0*cos(theta) s0*sin(theta)];
line(rb(:,1),rb(:,2),'color','k');
%繪出基圓

[ym2,yy,yyy]=dwell(cth(i),range,pattern);
x02=s0+ym2*s;
Sx=[0 x02 x02+L;e e e];
B=[cosd(90) -sind(90);sind(90) cosd(90)];
X2=B*Sx;
xx1=X2(1,1:2);
yy1=X2(2,1:2);
xx2=X2(1,2:3);
yy2=X2(2,2:3);
line(xx1,yy1);
line(xx2,yy2,'linewidth',3,'color','red');
%繪出梢的位置
pause(0.1);
hold on;
end;


2007年5月22日 星期二

作業10


1本週(5/17)有來上課


2
請思考速度與加速度的問題,當一桿以某特定點M等角速度迴轉時,其端點P之速度方向如何?

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

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

若以此推理四連桿的運動,則點P與Q之速度與加速度方向會與桿一(固定桿)之兩端點之關係如何?

與我們前面的作業分析結果有無共通之處?(參看第六章之四連桿機構之運動分析)




當一桿以M點作等角速度ω迴轉時,其速度大小為ωr(r為桿長),
方向為切線方向,即為與連桿垂直方向,如圖






















  加速度方向分為切線方向及法線方向,因為其角加速度為0,故其切線方向加速度為0,
因此僅剩法線加速度,方向指向軸心M,大小(ω^2)r























  若M為等速水平運動,則必須再加上VM,所以VP=VM+ωxr,方向則為其向量合,
加速度方面則不受影響,AP= ωx(ωxr)



  若M點同時也有加速度,則計算P點加速度時則必須考慮M點之加速度,AP=AM+ωx(ωxr)



  固定桿兩端分別為O點和R點,此兩點由於接地,其速度與加速度皆為0
此時我們若以第二桿為驅動桿,則計算P點速度只需要考慮桿本身的角速度和角加速度,
VP=ωop x Rp/o  方向與桿2垂直

AP=αx Rp/o+ωop x (ωop x Rp/o) 切線加速度與桿2垂直,法線加速度則沿桿2指向O點




再來我們計算Q點的速度與加速度,這時候則必須要考慮到P點之速度,
Vq=Vp+ωpq x Rq/p =ωq r x Rq/r  方向與桿4垂直

Aq= Ap+αx Rq/p+ωpq x (ωpq x Rq/p) =αx Rq/r+ωqr x (ωqr x Rq/r) 
切線加速度與桿4垂直,法線加速度則沿桿4指向O點




 其中上兩式等號最右邊為利用第四桿的角速度與角加速度來計算的,因為R點為固定點,
所以不用考慮R點本身速度及加速度



















  之前的作業我們是先計算出P點及Q點之向量之後,再利用對t微分分別求出速度與加速度,進而求出各點的角速度與角加速度,雖然和上述方法略有不同,但是仔細推敲後可以發現,
在計算P點和Q點向量時,例如Rq=Rop+Rpq
就已經將相對速度和相對加速度的概念加進去了,
故這兩種方式其實是相似的




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


以之前繪製滑塊之程式
function [values]=drawsldlinks(r,th1,th2,sigma,driver)修改如下:

function [values]=drawsldlinkscentros(R1,R2,th2,sigma,driver)
%function drawsldlinkscentros(R1,R2,th2,sigma,driver)
%畫出滑塊連桿的位置以及瞬心之位置
%呼叫 sldlink funcion
%R1:曲桿長度
%R2:連結桿長度
%th2:驅動桿與地面之夾角
%sigma:結合形式
%driver: 0 第二桿驅動, 1 連結桿驅動


clf;

r=[10,R1,R2,0]
%接地桿因為經計算後會改變,故先隨便設一個數字
%曲桿長=R1 連結桿=R2
%偏置量為0


th1=0;
%地面水平角設為0

[values b]=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;
%呼叫sldlink並儲存其計算後之值

t=linspace(pi/2,2.5*pi,361);

C1=0.2*exp(j*t');
x1=real(C1);
y1=imag(C1);
line(x1,y1,'LineWidth',2);

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',2);
line([x2(271) x2(271)],[y2(271) y2(271)-0.5],'LineWidth',2);
line([x2(91)-1.5 x2(271)+1.5],[y2(271)-0.5 y2(271)-0.5],'LineWidth',2,'linestyle',':');

hold on;
%計算並繪出驅動桿基座之圖型

if rx(1)>0,
the2=th2;
else
the2=180-th2;
end;
the3=-values(3,2)
cen13x=rx(1);
cen13y=rx(1)*tand(the2);
cen24x=0;
cen24y=rx(1)*tand(the3);
%計算瞬心位置,參考課本5-22圖5.18

if b==1
plot([0 rx(1)],[0 0],'k-','LineWidth',4);
%繪出地面
hold on;

plot([0 rx(1)],[0 ry(1)],'g-','LineWidth',1.5);
%繪出第一桿

plot([rx(1) cen13x],[ry(1) cen13y],'k:','LineWidth',3);
%繪出滑塊與地面垂直延伸線,用來表示瞬心13在其上


plot([rx(2) cen13x],[ry(2) cen13y],'k:','LineWidth',3);
%繪出瞬心23與基座延伸線,用來表示瞬心13在其上


plot([rx(1)+1 rx(1)+1],[ry(1)+cen13y/3 cen13y*2/3],'b-','LineWidth',3);

if cen13y>0,
plot(rx(1)+1 ,cen13y*2/3,'b^','LineWidth',3);
else
plot(rx(1)+1 ,cen13y/3,'b^','LineWidth',3);
end;
%此部分主要是為了標示出瞬心14位置是在無窮遠處所畫的箭頭


plot([0 cen24x],[0 cen24y],'k:','LineWidth',3);
%繪出基座與地面垂直延伸線,用來表示瞬心24在其上
plot([rx(2) cen24x],[ry(2) cen24y],'k:','LineWidth',3);
%繪出瞬心23與滑塊延伸線,用來表示瞬心24在其上
plot([-1 -1],[0+cen24y/3 cen24y*2/3],'b-','LineWidth',3);

if cen24y>0,
plot(-1 ,cen24y*2/3,'b^','LineWidth',3);

else

plot(-1 ,cen24y/3,'b^','LineWidth',3);

end;
%此部分主要是為了標示出瞬心14位置是在無窮遠處所畫的箭頭
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-');
plot(rx,ry,'bo');
plot(cen13x,cen13y,'mo');
plot(cen24x,cen24y,'mo');
%標示各點

text(0,0,' O 12');text(rx(1),ry(1),' R');
text(rx(2),ry(2),' P 23');
text(rx(3),ry(3),' Q 34');
text(cen13x,cen13y,'13');
text(cen24x,cen24y,'24');
text(rx(1)+1 ,cen13y/3-0.5,'14')
text(-1 ,cen24y/3-0.5,'14')
%標示各點名稱


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);
%此部份是用來繪製滑塊

else
fprintf('Combination of links fails at degrees %6.1f\n',th2);
%若不能連桿連結時之情形
end

axis equal;
grid on;


瞬心為連桿組中兩連桿所存在共同點之位置,該點具有相同速度,若某一物體為固定,
則兩物體在該瞬心速度應為零


四連桿組的瞬心數目為N=4(4-1)/2=6



根據甘迺迪定理,任何三個平面連桿的運動,其間應存在三個瞬心,且三瞬心因共線
故可利用此定理來繪出瞬心的位置圖


以下分別是th2=60,120,240,300度時的圖


th2=60























th2=120


























th2=240


























th2=300



























其中四個瞬心為基本瞬心,即為各連桿之連結點,其中由於第一桿為接地桿固定不動,
所以瞬心12恆不動。另外,由於第四桿為滑塊,所以瞬心14在無限遠處
所以利用過該點作平行於此線的線,來與其它點配合


 而點P及點Q為移動連桿的相接點,亦為瞬心23及瞬心34,
其位置會隨著連桿運動軌跡改變,但依然是在桿的相接點上


 其他瞬心以甘迺迪定理可定出,瞬心13可由12及23的連線14及34的連線交點獲得;
24則為23及34連線與12及14連線之交點獲得



上述兩點位置會隨驅動桿角度而改變,由上面四圖可看出:


0<th2<90→瞬心24及13皆在接地面上
90<th2<180→瞬心24於接地面上,13在接地面下
180<th2<270→瞬心24於接地面下,13在接地面上
270<th2<360→瞬心24及13皆在接地面下

2007年5月15日 星期二

作業9


本週(5/3)有來上課



此機構之曲桿長Rcm , 連桿Lcm,滑塊之偏置量為10cm等數據作分析。其中,R=10+(學號末二碼),L=R+5



計算曲桿和連桿的長度



學號b94611028
>> R=10+28
R =
38

>> L=R+5
L =
43


首先

利用講義的drawsldlinks來畫出靜態圖(設th1=0度,th2=60度)

第二桿為驅動桿

閉合型

>>drawsldlinks([10,R,L,10],0,60,1,0)




















分支型
>>drawsldlinks([10,R,L,10],0,60,-1,0)



















滑塊為驅動桿


閉合型
>>drawsldlinks([10,R,L,10],0,60,1,2)


















分支型
>>drawsldlinks([10,R,L,10],0,60,-1,2)





















以曲桿為驅動之連桿速度位置分析(閉合)
>>[val,form]=sldlink([10,R,L,10],0,60,10,0,1,0)


求得

第一桿之軸向速度448.7 加速度1213.4

P點

位置 0.0190 + 0.0329i 速度380 (150度) 加速度3800 (120度).

Q點

位置 0.0554 + 0.0100i 速度448.7 (180度) 加速度1213.4(180度)
括號內為與水平之夾角



以滑塊為驅動之連桿速度位置分析(閉合)
>>[val,form]=sldlink([10,R,L,10],0,60,10,0,1,2)

求得

第一桿之軸向速度10 加速度0

P點

位置 -0.3150 + 0.2125i 速度29.8950 (55.9955度) 加速度0 (0度).


Q點

位置 0.1000 + 0.1000i 速度10 (76.3742度) 加速度31.8332 (0度)
括號內為與水平之夾角


接著我利用drawsldlimits來計算出機構運動之極限角

因為網路上的講義程式討論中並未提到r3≧r4≧0,且 r3+r4 ≧ r2情況

所以若直接用網路上程式計算本題極限角會出錯


因為程式將會直接執行下式

else

Qstart=0;Qstop=2*pi;



導致極限角圖出錯

更會連帶動畫圖執行不連續




故我修改了sld_angle_limits(r,theta1,linkdrive)

依照本題情況


case 0(曲桿為驅動桿)中加入

elseif r3+r4>=r2 & r3>=r4 & r4>=0,

Qstart=-asin((r3-r4)/r2);

Qstop=pi+asin((r3-r4)/r2);

如此才能正確計算出極限角度


第二桿為驅動桿

閉合

>>drawsldlimits([10,R,L,10],0,1,0)

Qstart =

-60.2757

Qstop =

240.2757



















分支

>> drawsldlimits([10,R,L,10],0,-1,0)

Qstart =

-60.2757

Qstop =

240.2757



















滑塊為驅動桿

閉合

>>drawsldlimits([10,R,L,10],0,1,2)

Qstart =

-80.3803

Qstop =

80.3803


















分支

>> drawsldlimits([10,R,L,10],0,-1,2)

Qstart =

-80.3803

Qstop =

80.3803



















由上面四張圖可發現此狀況中分支型和閉合型其極限角之位置是相同的


接著試著以迴圈模式呼叫函數繪製每隔20度顯現的軌跡圖

分支

>> for th2=0:20:360;

drawsldlinks([10,R,L,10],0,th2,-1,0);

end;


















閉合

>>for th2=0:20:360;

drawsldlinks([10,R,L,10],0,th2,1,0);

end


















試驗的結果似乎只能適用在曲桿為驅動桿情況上

若以滑塊為驅動桿則並不能產生正確的軌跡,僅出現單一的位置圖(推測是程式輸入項和程式執行之變數不相符,故不能正確運作)



若使用網路講義之drawsldpaths

則不但2種情形之運動狀態皆可顯現,端點的運動軌跡也可以順利產生



第二桿為驅動桿

閉合

>>drawsldpaths(0,0,[10,R,L,10],0,10,0,1,100,0,0)

Qstart =

-60.2757

Qstop =

240.2757


















分支

>>drawsldpaths(0,0,[10,R,L,10],0,10,0,-1,100,0,0)

Qstart =

-60.2757

Qstop =

240.2757


















上兩圖更可直接看出分支和閉合的運動狀況

極限位置角相同,但是兩圖成對稱

滑塊為驅動桿

分支


>>drawsldpaths(0,0,[10,R,L,10],0,10,0,-1,100,2,0)

Qstart =

-80.3803

Qstop =

80.3803



















閉合

>>drawsldpaths(0,0,[10,R,L,10],0,10,0,1,100,2,0)

Qstart =

-80.3803

Qstop =

80.3803




















從上兩圖可以看到連桿的位置是由滑塊決定,當滑塊、曲桿、連桿為一條線時為其極限位置,此外分支與閉合兩種之運動主要在第三桿的位置,且明顯看出兩者綠色之軌跡並不相同




動態圖

使用網路講義之程式,因為以滑塊為驅動桿運動之程式不能執行

所以僅以曲桿為驅動桿製作動畫


閉合

>>move_sldpaths([10,R,L,10],0,0,3,0,10,0,1,0,4,100)








分支

>>move_sldpaths([10,R,L,10],0,0,3,0,10,0,-1,0,4,100)









接著設th1=10,以閉合型為例,觀察當r1與水平面傾斜,也就是若滑塊是在一個斜面上運動時的狀態



靜態圖(th2=60)



第二桿為驅動桿

>>drawsldlinks([10,R,L,10],10,60,1,0)





















滑塊為驅動桿

>>drawsldlinks([10,R,L,10],10,60,1,2)



















極限角

第二桿為驅動桿


>>drawsldlimits([10,R,L,10],10,1,0)

Qstart =

-50.2757

Qstop =

250.2757




















滑塊為驅動桿

>>drawsldlimits([10,R,L,10],10,1,2)

Qstart =

-80.3803

Qstop =

80.3803




















軌跡圖

第二桿為驅動桿


>>drawsldpaths(0,0,[10,R,L,10],10,10,0,1,100,0,0)



















滑塊為驅動桿

>>drawsldpaths(0,0,[10,R,L,10],10,10,0,1,100,0,0)



















動態圖

第二桿為驅動桿


>>move_sldpaths([10,R,L,10],0,0,3,10,10,0,1,0,4,100)











2007年5月7日 星期一

作業8



A本週四 (4/26)曾來上課



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


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

由機動學講義6.4之function f4bar來分析

[data,form] = f4bar(r,theta1,theta2,td2,tdd2,mode,linkdrive)

其中輸入值
r=[4 3 3 5] (各桿之長度)
theta1 =0° (第一桿之水平角)
theta2 =45° (驅動桿之水平夾角)
td2 =10 (rad/sec) (驅動桿之角速度)
tdd2 =0 驅動桿(第二桿或第三桿)之角加速度(rad/sec^2)。
mode = -1 (閉合型)
linkdrive = 0 (驅動桿為第二桿)

>>[val,form]=f4bar([4 3 3 5],0,45,10,0,-1,0)

val =

1.0e+003 *

Columns 1 through 5

0.0040    0 0   0 0.0212 + 0.0212i
0.0021 + 0.0021i 0.0450 0.0100 0 0.0041 - 0.0245i
0.0011 + 0.0028i 0.0695 -0.0163 0.4914 -0.2121 - 0.2121i
-0.0008 + 0.0049i 0.0995 -0.0050 0.3836 -1.8712 - 0.4391i

Column 6
0.0021 + 0.0021i
0.0032 + 0.0049i
0
0

form =

1


其中第一行顯示為各連桿位置向量,屬於單桿的位置向量,若要以絕對值型式表示,則為
>>abs(val(:,1))'
ans =
4 3 3 5


四連桿之角度為>> abs(val(:,2))'
ans =
0 45.0000 69.4856 99.5246


各桿之角速度則為
>> abs(val(:,3))'
ans =
0 10.0000 16.2681 4.9677



各桿之角加速度為:>>abs(val(:,4))'
ans =
0 0 491.4428 383.6120


>>abs(val(:,5))'
ans =
1.0e+003 *
0.0300 0.0248 0.3000 1.9220



O點及R點因為接地,所以位置、速度及加速度均不變

而P點之位置、速度及加速度分別為3.2 + 4.9i,24.8,1922

Q點之位置、速度及加速度分別為2.1 + 2.1i,30,300




問題二:繪出此四連桿之相關位置及標明各點之速度方向及大小(以程式為之)。



利用6.5的function [values]=drawlinks(r,th1,th2,td2,tdd2,mode,linkdrive)
其中為了繪出速度之方向,將程式稍微修改了一下





function [values]=drawlinks_2(r,th1,th2,td2,tdd2,mode,linkdrive)

if nargin<5,

  linkdrive=0;

end

if nargin<4,

    mode=1;

end

[values b]=f4bar(r,th1,th2,td2,tdd2,mode,linkdrive);

rr=values(:,1);

rr(3,1)=rr(1,1)+rr(4,1);

rx=real(rr(:,1));

rx(4)=0;

ry=imag(rr(:,1));

ry(4)=0;

[unit]=abs(values(:,5))';



vpx=rx(2)+ 1/unit(2)*real(values(2,5));

vpy=ry(2)+ 1/unit(2)*imag(values(2,5));

vqx=rx(3)+ 1/unit(1)*real(values(1,5));

vqy=ry(3)+ 1/unit(1)*imag(values(1,5));


if b==1

plot([0 rx(1)],[0 ry(1)],'k-','LineWidth',4);

hold on;

if linkdrive==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)],'g-','LineWidth',1.5);

plot(rx,ry,'bo');

plot([rx(2) vpx],[ry(2) vpy],'ms-','LineWidth',2);

plot([rx(3) vqx],[ry(3) vqy],'ms-','LineWidth',2);


text(0,0,' O');

text(rx(1),ry(1),' R ');

text(rx(2),ry(2),' P v=30');

text(rx(3),ry(3),' Q v=24.8' );

else

fprintf('Combination of links fail at degrees %6.1f\n',th2);

end

axis equal

grid on










紅色處為增加之部分 其中P和Q點的速度值利用第一題之數據取絕對值算出的
 
>> abs(val(:,5))'



ans =



1.0e+003 *



0.0300 0.0248 0.3000 1.9220












>> drawlinks_2([4 3 3 5],0,45,10,0,-1,0)






圖示













 
 
 
 

 
 
 
 
 
註:圖上速度標示為單位向量,此目的是為使畫面較簡潔易懂,故僅表現出方向,至於實際量值大小以標示為準






 
 
 




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




利用6.6極限函數程式


fb_angle_limits([4 3 3 5],0,0)



ans =



28.9550






故限制角度為28.9550



利用程式繪出極限位置圖





>> drawlimits([4 3 3 5],0,-1,0)



Qstart =



28.9550



Qstop =



331.0450










題目的情形為r1+r2≤r3+r4,r1-r2≤r3-r4


由此可見此為下限限制

從下圖中可以明顯的看出機構之極限位置



















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



>> for i=0:20:360;



drawlinks([4 3 3 5],0,i,10,0,-1,0);



end





Combination of links fail at degrees 0.0



Combination of links fail at degrees 20.0



Combination of links fail at degrees 340.0



Combination of links fail at degrees 360.0






上述之四個情況無法成像,由第三題之結果我們可以看出極限角為28.9550,所以驅動桿之運動範圍僅限制在28.9550度至331.0450度間,其他範圍之圖像都不能成立





重疊影像如下







 
 





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




利用講義6.10之程式move_4paths即可為之,其中由於題目中的連桿均沒有任何延伸點,所以將r6設為0,其動畫結果如下



>>move_4paths([4 3 3 5],0,0,3,0,10,0,-1,0,2,100)