2007年5月30日 星期三

機動學第十一次作業

第十一次作業(Due date: 12pm May 30, 2007)

請聲明本週(5/24)有來上課。
本人有上本週的課


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

下面plot_dwell.m為一執行Dwell函數之範例。其指令如下:

function plot_dwell(ctheta,s,pattern,range)
%ctheta = cam angle (deg)--can be a matrix
%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
% Output: y is for displacement, yy is the derivative of the displacement with
% respect to theta, and yyy the second derivative with respect % to theta.
% Example plot_dwell(0:10:360,2,[4 3],[90 180 240]);
figure(1);clf;
[y,yy,yyy]=dwell(ctheta,range,pattern)
h1=plot(ctheta,y*s,'b-',ctheta,yy*s,'k-',ctheta,yyy*s,'r-')
legend('Displacement','Velocity','Acceleration',3)
xlabel('Elapsed Angle, degrees')
grid


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

dwell內的parabolicm函數有小錯誤
上面的程式是有修改過的

而結果如下





上面的圖可以看到(紅色圈圈),速度值為斜直線,但是加速度竟是斜直線(應該是水平直線)。這是因為我們取間隔10度做變化,於是連線變為斜直線。

如果我們改成間隔1度的話
就好了



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


function [x,y]=pincam(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 i=1:length(cth)
t=th(i)*cw;
A=[cos(t) -sin(t);sin(t) cos(t)];
[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);
line(X(1,1:2),X(2,1:2));
line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')
end
hold on;
plot([0 x],[0 y],'ro',x,y,'k-')
axis equal


pincam([0:10:360],15,5,0,10,[100 200 260],[2 2],-1)

突輪與從動件的關係




你能讓此凸輪迴轉嗎?

此題最有挑戰性的
是要找出凸輪的相對位置
然後加以旋轉

function [x,y]=pincam3(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(4);
clf;
th=cth*pi/180;
s0=sqrt(r0*r0-e*e);
for i=1:length(cth)
t=th(i)*cw;
A=[cos(t) -sin(t);sin(t) cos(t)];
[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);
%line(X(1,1:2),X(2,1:2));

%line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')
%pause(0.5)
%clf

end

for i=1:length(cth)
clf ;
t=th(i)*cw;
B=[cosd(90) -sind(90);sind(90) cosd(90)];
A=[cos(t) -sin(t);sin(t) cos(t)];
[ym,yy,yyy]=dwell(cth(i),range,pattern);
o=x*cos(-t)+y*sin(-t)
p=x*sin(-t)-y*cos(-t)
m=o*cosd(90)+p*sind(90)
n=o*sind(90)-p*cosd(90)
plot([0 m],[0 n],'ro',m,n,'k-')
axis([-50 50 -50 50])
grid on;
x0=s0+ym*s;
Sx=[0 x0 x0+L;e e e];
X=B*Sx;
%line(X(1,1:2),X(2,1:2));
line(X(1,2:3),X(2,2:3),'linewidth',3,'color','red')
pause(0.5)
end
hold on;

grid on


動畫~~~ 成功!

沒有留言: