2007年6月2日 星期六

作業十一

B94611016 胡寅亮
1.本人5/24有來上課。

2.參考上課講義第十章凸輪運動,這題我用老師的給的”function plot_dwell”
程式碼如下
function plot_dwell(ctheta,s,pattern,range)
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

而各個參數所代表的意義如下:
ctheta = 需要計算之凸輪角度,單位為度數。可以使用矩陣輸入之型式。
pattern = 運動的型式,二元素之列矩陣,其代碼如下:
1:等速運動uniform
2:抛物線parabolic
3:簡諧simple harmonic
4:擺線cycloidal 
5:多項式polynomial motion
range =升程及返程之範圍,三元素列矩陣    
輸出: y:位移
yy 對於凸輪角ctheta之第一導數;
yyy 對於凸輪角ctheta之第二導數。
因此,有了這些function,我們只要在螢幕上輸入plot_dwell(0:10:360,5,[2,3],[100 200 260 360])
就能得到「衝程為5,凸輪旋轉角度在100到200之間為升程且為等加速度拋物線運動,凸輪旋轉角度在260到360之間為回程且自訂為簡諧運動」這樣的運動位置速度加速度與角度之關係圖。

3.要描繪凸輪的工作曲線,參考上課講義的function如下
function [x,y]=pincam(cth,r0,s,e,L,range,pattern,cw)
而各個參數所代表的意義如下:
cth:凸輪角度,度數
r0:凸輪基圓半徑
e:偏置量
s:從動件衝程
L:從動件長度
cw:凸輪轉動方向(反時鐘為正,順時鐘為負)
pattern 運動的型式motion
range 升程及返程之範圍
因此,在螢幕上輸入
[x,y]=pincam([0:10:360],15,5,0,10,[100 200 260 360],[2 3],-1)
即可得到圖形

4.你能讓此凸輪迴轉嗎?
要讓凸輪迴轉,運用第三題的函式再加一些旋轉的程式碼得到”function pincam2”,程式碼如下:
function [x,y]=pincam2(cth,r0,s,e,L,range,pattern,cw)
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);
end
%以下修改後加入的
for n=1:36
a=x+r0*cosd(10*n);
b=y+r0*sind(10*n);
plot([0 a],[0 b],'ro',a,b,'k-');
axis ([-50 50 -50 50]);
pause(0.01);
clf
end
在螢幕上輸入
pincam2([0:10:360],15,5,0,10,[100 200 260],[2 1],-1)即可得動畫

沒有留言: