11/8/06

拋物線運動

凸輪之從動件作上下運動,其運動型式可採拋物線運動,利用MATLAB程式可以計算抛物線之運動參數,其程式內容如下,呼叫之名稱與參數分別為:

function [y, yy, yyy]=parabol_cam(phi, phi_in, beta_range, direct, travel,rpm)


輸出入參數:

y=從動件之位移。
yy=從動件之速度。
yyy=從動件之加速度。
phi=凸輪角度
beta=運動區間度數。
phi_in=起始角度
direct=運動型式,升程為+1 ;返程為 -1 。
travel=衝程(設為1時為單位量)。
rpm=凸輪迴角速度, rpm(設為0時不考慮RPM之影響)


8-4.3.2 MATLAB計算程式



function [y, yy, yyy]=parabol_cam(phi,phi_in,beta_range,direct,travel,rpm)
% code = 2
% [y, yy, yyy]=parabol_cam(phi,phi_in,beta_range,direct,travel,rpm)
% phi=cam angle, degrees
% phi_in=starting cam angle, degrees
% beta_range=motion range, degrees
% direct=motion type; +1 for upward, -1 for downward
% travel=the follower travels(=1 for a unit of travel)
% rpm=cam rotation speed, rpm(=0 for not effective)
% Example: [y, yy, yyy]=parabol_cam(10,180,120,1,1,0)
d2r=pi/180;
th=phi*d2r; thinit=phi_in*d2r; beta=beta_range*d2r;
speed=rpm*2*pi/60;if rpm==0, speed=1;end;
theta=th-thinit;
thmed=thinit+beta/2;
thx=theta/beta;
if direct==1,
if th<thmed
y=2*thx^2;
yyy=4/beta/beta;
yy=yyy*th;
else
y=1-2*(1-thx)^2;
yy=4/beta*(1-thx);
yyy=-4/beta/beta;
end
else
if th<thmed
y=1-2*thx^2;
yyy=-4/beta/beta;
yy=yyy*th;
else
y=2*(1-thx)^2;
yy=-4/beta*(1-thx);
yyy=4/beta/beta;
end
end
y=y*travel;
yy=yy*speed*travel;
yyy=yyy*speed*speed*travel;


執行例:

1. 升程起始點120∘,β=60∘,h=0.8cm,角度為150∘時之位移、速度及加速度:

>> [y, yy, yyy]=parabol_cam(150,120,60,1,0.8,0)
y = 0.4 (cm)
yy = 1.5279 (cm/s)
yyy = -2.9181 (cm/s2)


2. 返程起始點210∘,β=150∘,h=0.8,角度為250∘時之位移、速度及加速度:

>> [y, yy, yyy]=parabol_cam(250,210,150,-1,0.8,0)
y = 0.68622(cm)
yy = -0.3259(cm/s)
yyy = -0.46689(cm/s2)

No comments:

Post a Comment