1.先把影片放到youtube上,然後在圖片中Embed那行把他通通複製下來

2.接著編輯你的blog,記得切換到修改Html模式,然後把你剛剛複製的東西原封不動的貼上來
B94611023許惠善
本人(4/19)有上課
本次作業其實可以利用一個簡短的程式同時完成,所以我只做了一個程式。將三小題的答案同時呈現在同一張圖表中。紅色為各桿之加速度,藍色為速度,綠色為合速度。
另外也可將這隻程式碼做動畫以及圖片的切換。 將12行clf以及23行pause刪掉就變成圖片(最下方依序為起始點到五秒過後的對應圖片)。
以下為程式碼:
%輸入a長度,我的學號為b94611023,故取a=3(最末碼)+10
a=3+10;
%輸入長度,角度,角速度,角加速度之初始值
rho=[a, a+5, a-5];
theta=[0, 0, 0];
td=[0.2, 0.5, 0 .3];
tdd=[0, 0.1, 0.2];
%本圖形的角度以及角速度會受角加速度影響,亦即受時間改變
for t=0:1:5
clf;
for i=1:1:3
%在此我們必須先做角度的改變,才能作角速度的改變
%因為角度的公式是theta2=theta1+v1t+ωt^2,所以我們要用角度在前一秒的值以和速度前一秒的值來做
%又t間隔都為一秒,所以在此t不代1進去計算
theta(i)=theta(i)+td(i)+0.5*tdd(i);
%角度則為td2=td1+ωt,為前一秒的角度加上角加速度*t,所以同樣t間隔1
td(i)=td(i)+tdd(i);
end;
%繪圖
dyad_draw([a, a+5, a-5],[theta(1),theta(2),theta(3)],[td(1),td(2),td(3)],[tdd(1),tdd(2),tdd(3)])
pause(2);
end;
axis equal;
6-1
(1)此例中,總桿數N=10如圖所示
(2)ABCD為三桿共結。
3-1=2故為兩結
總結數為J=13
(3)
第2桿自由度為2
第8桿和第4桿自由度為2
F結處,對第7桿言之自由度為2
∴Σf=9×1+4×2=17
(4)帶入公式
M=3(10-13-1)+Σf=5
滑槽:造成E處的自由度是2,可旋轉並可延滑槽方向移動
第2桿處的滑塊:造成自由度為2,可旋轉並可延x方向移動
F處滑塊:造成自由度為2,可旋轉並可延滑塊方向移動
以古魯伯算之,
df=gruebler(10,[9 0 4])
如課本表3.1,我將滑塊結及槽梢結帶入複式結做運算
df=5;
ANS 5-1:
5-1-1,5-1-2:
body function的程式碼如下:(包含了手臂跟手掌的座標矩陣在裡面了)
%宣告函數
function body(L1,L2,L3,theta1,theta2,theta3)
%L1=10;
a=2*L1-1;
%宣告手臂的座標矩陣為兩倍手臂長的組數
arm1=zeros(a,2);
%開始輸入手臂的座標
for y1=1:1:a
%當手臂右半部y值<L1值時,對應的x為((1+4*y1).^0.5)/3-0.3;
if(y1<L1-1)
arm1(y1,2)=y1;
arm1(y1,1)=((1+4*y1).^0.5)/3-0.3;
end
%但第一組座標仍須固定在原點
if(y1==1)
arm1(y1,2)=0;
arm1(y1,1)=0;
end
%此項為修正圖形用最靠近手臂的點要做些許修正圖形較好看
if(y1==L1-1)
arm1(y1,2)=L1-0.2;
arm1(y1,1)=arm1(y1-1,1)-0.2;
end
%當Y為L長時,手臂寬度=0
if(y1==L1)
arm1(y1,2)=y1;
arm1(y1,1)=0;
end
%左半部和右半部對稱,圖形只有x差一個負號
if(y1>L1)
%圖形第二項也要做修正
arm1(2,2)=0.5;
arm1(2,1)=arm1(3,1)-0.1;
arm1(y1,2)=arm1(a-y1+1,2);
arm1(y1,1)=-arm1(a-y1+1,1);
end
%最後圖形要回到原點
if(y1==a)
arm1(y1,2)=0;
arm1(y1,1)=0;
end
end
%對手臂做旋轉
%因為一開始不小心畫了垂直的手臂,所以只好修改一下我的轉動公式的角度,
%並且得先將手臂的上端點先下移到原點做旋轉再移回原來高度
for y1=1:1:a
Arm1(y1,1)=arm1(y1,1)*cosd(theta1-90)+(arm1(y1,2)-L1)*sind(theta1-90);
Arm1(y1,2)=-arm1(y1,1)*sind(theta1-90)+(arm1(y1,2)-L1)*cosd(theta1-90)+L1;
end;
b=2*L2-1;
%宣告手臂的座標矩陣為兩倍手臂長的組數
arm2=zeros(b,2);
%開始輸入手臂的座標
for x2=1:1:b
%當手臂上半部x值<L2值時,對應的y為((1+4*x2).^0.5)/3-0.3;
if(x2<L2-1)
arm2(x2,1)=x2;
arm2(x2,2)=((1+4*x2).^0.5)/5-0.3;
end
%但第一組座標仍須固定在原點
if(x2==1)
arm2(x2,1)=0;
arm2(x2,2)=0;
end
%此項為修正圖形用最靠近手臂的點要做些許修正圖形較好看
if(x2==L2-1)
arm2(x2,1)=L2-0.2;
arm2(x2,2)=arm2(x2-1,2)-0.2;
end
%當Y為L長時,手臂寬度=0
if(x2==L2)
arm2(x2,1)=x2;
arm2(x2,2)=0;
end
%左半部和右半部對稱,圖形只有x差一個負號
if(x2>L2)
%圖形第二項也要做修正
arm2(2,2)=arm2(3,2)-0.1;
arm2(2,1)=0.5;
arm2(x2,1)=arm2(b-x2+1,1);
arm2(x2,2)=-arm2(b-x2+1,2);
end
%最後圖形要回到原點
if(x2==b)
arm2(x2,1)=0;
arm2(x2,2)=0;
end
end
% 計算後去修正我的theta2
theta2=180-theta2+theta1;
%一開始就將下手臂畫在原點x方向
%所以先做旋轉後再把他和上手臂接在一起就可以了
for x2=1:1:b
Arm2(x2,1)=(arm2(x2,1))*cosd(theta2)+(arm2(x2,2))*sind(theta2)+Arm1(1,1);
Arm2(x2,2)=-(arm2(x2,1))*sind(theta2)+(arm2(x2,2))*cosd(theta2)+Arm1(1,2);
end;
%手掌的畫法基本上是幾乎依照各點的座標作輸入
%只有盡量去簡化圖形做成對稱的手
%才能縮短程式(但也就和事實不符和)
palm=zeros(25,2);
for i=1:1:21
palm(i,2)=2.5-0.25*(i-1);
palm(i,1)=L3./2;
end
palm(3,1)=palm(3,1)+L3/2-2;
palm(19,1)=palm(3,1);
palm(2,1)=palm(3,1)-0.3;
palm(4,1)=palm(2,1);
palm(18,1)=palm(2,1);
palm(20,1)=palm(2,1);
palm(5,1)=palm(5,1)+1;
palm(17,1)=palm(5,1);
palm(7,1)=palm(7,1)+L3./2-1;
palm(15,1)=palm(7,1);
palm(6,1)=palm(7,1)-0.3;
palm(8,1)=palm(6,1);
palm(16,1)=palm(6,1);
palm(14,1)=palm(6,1);
palm(9,1)=palm(9,1)+2;
palm(13,1)=palm(9,1);
palm(11,1)=palm(10,1)+L3./2;
palm(10,1)=palm(11,1)-0.3;
palm(12,1)=palm(10,1);
for i=22:1:24
palm(i,1)=0;
end
palm(22,2)=-1.5;
palm(24,2)=1.5;
palm(25,1)=palm(1,1);
palm(25,2)=palm(1,2);
%修正theta3以符合題目所求
theta3=theta2-theta3-180;
%一開始就將手掌畫在原點x方向
%所以先做旋轉後再把他和下手臂接在一起就可以了
for i=1:1:25;
Palm(i,1)=(palm(i,1))*cosd(theta3)+(palm(i,2))*sind(theta3)+Arm2(L2,1);
Palm(i,2)=-(palm(i,1))*sind(theta3)+(palm(i,2))*cosd(theta3)+Arm2(L2,2);
end
axis equal;
grid on;
%各部位以一筆畫完成連線
%所以要記得終點和起點為同一點
line(Arm1(:,1),Arm1(:,2));
line(Arm2(:,1),Arm2(:,2));
line(Palm(:,1),Palm(:,2));
5-1-3
圖形如下:
5-1-4