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;