2007年4月28日 星期六

作業七

本人4/19有上課


題目設有三桿相連結成端桿(dyad)之型式。請利用網路講義中之函數dyad及dyad_draw作分析。
function dyad_draw(rho,theta,td,tdd)
其中:
• 各桿之對應長度rho=[a, a+5, a-5]cm,a=(你的學號末一碼)+10;
• 各桿之對應起始角度theta=[0, 0, 0]度;
• 各桿之對應角速度為td=[0.2, 0.5, 0 .3]rad/s;
• 各桿之對應角加速度為tdd=[0, 0.1, 0.2]rad/s^2;

1. 當t=[1 2 3 4 5]秒時,此端桿之對應方位如何?




運用function ground,anchor,dyad,dyad_draw的結合運用(在老師的課程網頁中都有詳細的敘述),這題中我們需要再建立一個function,但是只要多一個變數,再加上其關係式即可。我的新的function設定為dyad_drawtime,多了一個變數t,而我加在function dyad_draw的程式碼如下:

theta2=theta+td*t+tdd*t^2/2
%設theta2來連接t和theta的關係
td2=td+t*tdd
[vec,data] = dyad(rho,180/pi*theta2,td2,tdd);
%theta2要從弧度換角度
x=[0;cumsum(real(data(:,1)))];y=[0;cumsum(imag(data(:,1)))];
%建立一個for迴圈
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],1);
axis equal;
end

因為老師網頁中的function 有畫出加速度與時間的關係,所以我們把下列程式碼刪除
for k=1:length(rho)
x0=x(k+1);y0=y(k+1);
vx=x0+real(data(k,2));vy=y0+imag(data(k,2));
ax=x0+real(data(k,3));ay=y0+imag(data(k,3));
line([x0 vx],[y0 vy],'marker','s','linewidth',2);
line([x0 ax],[y0 ay],'marker','s','color','r','linewidth',3)
end
sdata=sum(data);
ss=[real(sdata(1)) imag(sdata(1))];
vv=[real(sdata(2)) imag(sdata(2))];
aa=[real(sdata(3)) imag(sdata(3))];
line([0 ss(1)],[0 ss(2)],'linestyle',':','linewidth',2)
line([ss(1) ss(1)+vv(1)],[ss(2) ss(2)+vv(2)],...
'marker','d','color','g','linewidth',3)
line([ss(1) ss(1)+aa(1)],[ss(2) ss(2)+aa(2)],...
'marker','d','color','m','linewidth',3)
axis equal;grid on

在螢幕上輸入
ground(0,0,5,0)
anchor(-5,0,0,0)
for t=1:5
dyad_drawtime([10 15 5],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
%座號的末一位是零
end
axis equal
即可得到端桿一到五秒的變化圖

2. 繪出三桿之結點之速度,加速度與時間t之關係。



把上述刪除的加入,即可得到速度加速度與時間的關係,為了使畫面更清晰,可刪除function中畫linkshape的程式,但是本圖中為了表示使各連桿加速度與速度清楚標示,暫且不刪除

3. 能作出此時間區段之動畫嗎?


b49611010 7.1.3


在視窗中輸入for t=1:0.1:5
%從一秒跑到六秒每格0.1秒停一次
axis offaxis ([-20 30 -10 20])
%設定座標範圍
ground(0,0,5,0)
anchor(-5,0,0,0)
dyad_drawtime([10 15 5],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
pause(0.1)
if t<5
end
end



沒有留言: