APP下载

基于虚拟现实技术的运动学仿真

2019-05-16郭俊涛李浩宇陈兆谢文高

科技经济市场 2019年3期
关键词:MATLAB软件运动学加速度

郭俊涛 李浩宇 陈兆 谢文高

摘 要:本项目通过应用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.

猜你喜欢

MATLAB软件运动学加速度
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
基于MATLAB的6R机器人逆运动学求解分析
天际加速度
基于D-H法的5-DOF串并联机床运动学分析
创新,动能转换的“加速度”
基于运动学原理的LBI解模糊算法
双足机器人运动学分析与仿真