基于虚拟现实技术的运动学仿真
2019-05-16郭俊涛李浩宇陈兆谢文高
郭俊涛 李浩宇 陈兆 谢文高
摘 要:本项目通过应用Matlab的编程来展示物体整个运动过程及整个过程中速度、加速度的分析。通过Matlab来辅助学习运动学和解决运动学问题,对学习运动学知识有很大的作用。
关键词:Matlab软件;运动学;速度;加速度
0 引 言
在传统的运动学学习的过程中,由于计算工具和计算手段、分析思路不全等情况,一般只能解决物体运动过程某个状态或时刻的速度、加速等问题(即瞬态分析),而缺少对物体整个过程的分析。基于虚拟现实技术对运动学问题进行过程分析,展现物体运动过程的轨迹图像及物体运动整个过程中的速度、加速度的变化,从而加深学习者对运动规律的了解。本文以运动学中的典型题目为例,通过Matlab软件的应用,使物体的运动轨迹可视化,同时展现物体整个运动过程的速度及加速度的变化。
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时的数据
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点杆内的加速度
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:θ的度数与时间的关系
dushu=rad2deg(xita); %将θ的弧度转换成度数
axis([0,T,0,max(dushu)]);
hold on
title(‘\theta的度数与时间的关系); %输入标题2
xlabel(‘\itt\rm/s); %画出x轴
ylabel(‘\theta\rm/\circ); %画出y轴
plot(t,dushu,g,LineWidth,2);
legend(‘\theta的度数,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 动画展示(部分状态)
1.2.3 函数图像
2 结论
本文利用虚拟现实技术(即MATLAB)应用于运动学的仿真当中,将运动学的问题可视化,对运动学问题进行过程分析,摆脱了人工计算只能分析物体某一时刻的速度、加速度的缺陷。将MATLAB应用于解决运动学的问题当中,有利于更好地掌握运动规律。
参考文献:
[1]周群益,MATLAB可视化大学物理学.清华大学出版社,物理与微电子科学,2011.
[2]哈尔滨工业大学理论力学教研室,理论力学(Ⅰ),高等教育出版社,2016.
[3]尚玫,理论力学可视化教学Matlab Simulink.应用物理,2010.