2007年4月25日 星期三

作業七

我有上本週(十九日)的課。
蔡智鴻 B94611037
部落格
圖示
圖片皆在部落中http://kaohsiungman888.blogspot.com/
此次的作業中,會用到作業中的一些程式如下!
function [vec, dyadata] = dyad(rho,theta,td,tdd)
%
% function [vec, th, dyadata] = dyad(rho,theta,td,tdd)
% Analyzes a dyad linkage composing a crank and a dyad.
% Inputs: rho:length of links
% theta:incling angles, deg.
% td:angular velocity, rad/s
% tdd:angular acceleration, rad/s^2
% Outputs: vec:absoute length of links
% th:angles of links, velocities & acc, deg
% dyadata:original data, in complex forms
% Example:[vec,th,dyadata] = dyad([5 10],[30 50],[2 4])
theta=theta(:);
rho=rho(:);
n=length(rho);
if nargin<4, tdd="zeros(size(rho)); " nargin="=" td="ones(size(rho)); " td="ones(size(rho))*td; end " tdd="ones(size(rho))*tdd; end " td="td(:); tdd=" d2g="pi/180; " tt="exp(i*theta*d2g); " pp="rho.*tt; " vv="i*td.*pp; " aa="-pp.*td.^2+i*pp.*tdd; " dyadata="[pp" vec="[abs(sum(dyadata));angle(sum(dyadata))/d2g]; " x="[0;cumsum(real(data(:,1)))]; y=" i="1:length(x)-1" k="1:length(rho)" x0="x(k+1); y0=" vx="x0+real(data(k,2)); vy=" ax="x0+real(data(k,3)); ay=" sdata="sum(data); " ss="[real(sdata(1))" vv="[real(sdata(2))" aa="[real(sdata(3))" nargin="=" dd="1;end;" d="abs(dd); " ab="(B(1)+j*B(2))-(A(1)+j*A(2)); " d="abs(AB); th=" t="linspace(pi/2,2.5*pi,20); " cout="max(d/2,0.2)*exp(j*t'); Cin=">0,
P=[0;Cin;Cout(1:10);D+Cout(11:20);D+Cin;D+Cout(20);Cout(1)];
else
P=[Cin;0;D;D+Cin];
end
xx=real(P);yy=imag(P);
x=xx*cos(th)-yy*sin(th)+A(1);
y=xx*sin(th)+yy*cos(th)+A(2);
line(x,y)
axis equal

===================================================================
設有三桿相連結成端桿(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]秒時,此端桿之對應
方位如何?======================================================================
因為要求t=[1 2 3 4 5]秒時,桿當時的角速度和角度,所以如果用手算就太慢的,因此我寫的一個for迴圈讓電腦幫我算!!為什麼要用for迴圈呢?因為我可以等一下直接用此回圈坐第三小題!

for n=1
axis equal;
AXIS([-200 200 -200 200]);
dyad_draw([17,22,12],[0.2,0.5+n*0.1,0.3+n*0.2],[0.2,0.5+n*0.1,0.3+n*0.2],[0,0.1,0.2]);
end;
然後n依序輸入1.2.3.4.5,即可得到此端桿之對應方位
各連桿的法線加速度以紅色線,連桿的合加速度以粉紅色線,連桿的合速度以綠色線表示
t=0

t=1

t=2

t=3

t=4

t=5




=====================================================================
2.繪出三桿之結點之速度,加速度與時間t
之關係。
====================================================================
加速度與時間的圖在部落格中

桿一

桿二


桿三

====================================================================
3.能作出此時間區段之動畫嗎?
====================================================================
axis equal;

AXIS([-200 200 -200 200]);
dyad_draw([17,22,12],[0,0,0],[0.2,0.5,0.3],[0,0.1,0.2]);%學號B94611037最後一碼為,所以a=10+7=17

title('b94611037 蔡智鴻')
ground(0,0,5,0)
anchor(-5,0,0,0)
pause(5)
clf%叫出fuction的原因,因為要讓我有時間準備拍影片的工具!!
for n=1:5%1到5秒
axis equal;
AXIS([-200 200 -200 200]);
%theta=td*n+0.5*tdd*n*n
%td=tdd*n
%底下的theta和td都已被我化簡過
dyad_draw([17,22,12],[0.2*n,0.5*n+0.05*n*n,0.3*n+0.1*n*n],[0.2,0.5+n*0.1,0.3+n*0.2],[0,0.1,0.2]);
title('b94611037 蔡智鴻')
ground(0,0,5,0)
anchor(-5,0,0,0)
pause(2)
clf
end;

2 則留言:

Terence 提到...

哇......大鳥~~~我是志豪!!!
你部落格旁邊的聯結是怎麼用的啊???
真華麗,超強,教我一下~~~~

(附註:你作業七的圖形真好看,居然還畫出轉動的座檯,我的就只有幾條線在那邊轉來轉去...XD)

匿名 提到...

其實你做的也不比我的差啊,

只是我發現你們很多人轉的時候都沒有注意到,

老師題目給的角度單位是徑度,

你直接用弧度的話轉起來角度就很小很小,

圖都擠在一起了看起來當然會覺得沒我的漂亮囉~

下次多留意一點吧:D