郭俊濤 李浩宇 陳兆 謝文高
摘 要:本項目通過應用Matlab的編程來展示物體整個運動過程及整個過程中速度、加速度的分析。通過Matlab來輔助學習運動學和解決運動學問題,對學習運動學知識有很大的作用。
關鍵詞:Matlab軟件;運動學;速度;加速度
0 引 言
在傳統(tǒng)的運動學學習的過程中,由于計算工具和計算手段、分析思路不全等情況,一般只能解決物體運動過程某個狀態(tài)或時刻的速度、加速等問題(即瞬態(tài)分析),而缺少對物體整個過程的分析。基于虛擬現(xiàn)實技術對運動學問題進行過程分析,展現(xiàn)物體運動過程的軌跡圖像及物體運動整個過程中的速度、加速度的變化,從而加深學習者對運動規(guī)律的了解。本文以運動學中的典型題目為例,通過Matlab軟件的應用,使物體的運動軌跡可視化,同時展現(xiàn)物體整個運動過程的速度及加速度的變化。
1 算例演示
1.1 原題目
圖示機構中滑塊A的速度為常值,vA=0.2m/s,AB= 0.4m.求當AC=CB,θ=30o時桿CD的速度和加速度。
1.2 題目改編
圖示機構中滑塊A的速度為常值,vA=0.2m/s,AB=0.4m。分析桿CD整個過程中速度及加速度的變化。
1.2.1 MATLAB軟件編程
clear all %清理窗口
figure
scrsz = get(0,ScreenSize); %是為了獲得屏幕大小,Screensize是一個4元素向量[left,bottom, width, height]
set(gcf,Position,scrsz);
Va=0.2; %定義初始速度Va為0.2m/s
ab=0.4; %定義AB桿長度為0.4m
od=sqrt(3)/10; %點O到CD桿的距離
T=(ab-od)/Va; %計算出完整過程的總時間T
t=0:0.001:T; %將時間T分為1000,每一份為t
oa=od+(Va.*t); %計算出t時的數(shù)據(jù)
xita=acos(oa./ab); %夾角θ
pa=ab.*sin(xita); %pa段的長度
ac=(Va*t)./cos(xita); %ac段的長度
h=(Va*t).*tan(xita); %o到滑塊B的高度h
Wab=Va./(pa); %ab桿的角速度ωab
pq=pa-h; %pq段的長度
pc=sqrt((pq.^2)+(Va.*t).^2); %pc段的長度
af=atan(pq./(Va.*t)); %夾角α
Vce=pc.*Wab; %滑塊C的牽引速度Vce
r=pi/2-af-xita; %夾角γ(Gamma)
Vc=Vce.*sin(r)./sin(af+r); %滑塊C的速度
Vcr=Vce.*cos(xita+r)./cos(xita); %滑塊C的相對速度Vcr
Aban=ab.*(Wab.^2);
Abat=Aban.*cos(xita)./cos((pi/2)-xita);
AFab=Abat./ab; %AB桿的角加速度αab
Ac1at=ac.*AFab; %C點桿內(nèi)的加速度
Ake=2.*Wab.*Vcr; %滑塊C的科氏加速度
Ac=(Ac1at+Ake)./cos(xita); %滑塊C的加速度
subplot(4,1,1); %圖1:C的位置的高度h與時間的關系
axis([0,T,0,max(h)]);
hold on
title(‘C的位置高度h與時間的關系); %輸入標題1
xlabel(‘\itt\rm/s); %畫出x軸
ylabel(‘\ith\rm/m); %畫出y軸
plot(t,h,k,LineWidth,2);
legend(‘C的位置高h,location,SouthEast); %列出圖例
subplot(4,1,2); %圖2:θ的度數(shù)與時間的關系
dushu=rad2deg(xita); %將θ的弧度轉(zhuǎn)換成度數(shù)
axis([0,T,0,max(dushu)]);
hold on
title(‘\theta的度數(shù)與時間的關系); %輸入標題2
xlabel(‘\itt\rm/s); %畫出x軸
ylabel(‘\theta\rm/\circ); %畫出y軸
plot(t,dushu,g,LineWidth,2);
legend(‘\theta的度數(shù),location,NorthEast); %列出圖例
subplot(4,1,3); %圖3:C點速度v_{c}(m/s)與時間的關系
axis([0,T,min(Vc),1]);
hold on
plot(t,Vc,r,LineWidth,2);
title(‘C點速度v_{c}(m/s)與時間的關系); %輸入標題3
xlabel(‘\itt\rm/s); %畫出x軸
ylabel(‘\itv_{c}\rm/(m/s)); %畫出y軸
legend(‘C點速度v_{c}(m/s),location,SouthEast);
%列出圖例
subplot(4,1,4); %圖4:C點加速度a(m/s2)與時間的關系
axis([0,T,0,2]);
hold on
plot(t,Ac,b,LineWidth,2);
title(‘C點加速度a_{c}(m/s^{2})與時間的關系); %輸入標題4
xlabel(‘\itt\rm/s); %畫出x軸
ylabel(‘\ita_{c}\rm/(m/s^{2})); %畫出y軸
legend(‘C點加速度a_{c}(m/s^{2}),location,SouthEast);%列出圖例
1.2.2 動畫展示(部分狀態(tài))
1.2.3 函數(shù)圖像
2 結論
本文利用虛擬現(xiàn)實技術(即MATLAB)應用于運動學的仿真當中,將運動學的問題可視化,對運動學問題進行過程分析,擺脫了人工計算只能分析物體某一時刻的速度、加速度的缺陷。將MATLAB應用于解決運動學的問題當中,有利于更好地掌握運動規(guī)律。
參考文獻:
[1]周群益,MATLAB可視化大學物理學.清華大學出版社,物理與微電子科學,2011.
[2]哈爾濱工業(yè)大學理論力學教研室,理論力學(Ⅰ),高等教育出版社,2016.
[3]尚玫,理論力學可視化教學Matlab Simulink.應用物理,2010.