仿真平台与工具应用实践
- 格式:doc
- 大小:112.50 KB
- 文档页数:8
. . word. .
仿真平台与工具应用实践
<导弹速度矢量模拟>
设计报告
院系:
专业班级:
姓名:
学号:
指导老师:
2012-6-30
一、设计目的
随着科学技术的发展,我们的学习免不了需要进行大量的模拟、计算等操作,从而实现一些实际的目的。MATALB工具便为我们提供了这样一个环境,来进行各种计算,省去了很多计算烦恼。M AT L A B是一
个可视化的计算程序,被广泛地使用于从个人计算机到超级计算机范围内的各种计算机上。作为一名计算机专业的大学生,更需要掌握使用MATLAB的本领。
本次工程实训我选择了导弹速度矢量的模拟。我认为通过对这种具有实际性问题的分析,一方面能提高自己对MATLAB学习的兴趣;另一方面,也能促进自己对它的编程掌握能力。此外,MATLAB还具有很多计算功能,如在对线性代数中较难方程的求解、矩阵的计算等起到了较大的作用。
二、设计内容
本实验题目为导弹速度矢量的模拟,具体题目内容如下:假设导弹沿x 方向的速度为vx=2,沿y方向的速度为vy=3,且在水平方向上为匀速运动,沿x方向为匀加速运动,初速度为vz=10,加速度为a=-32,初始位置在(0,0,0),用矢量图画出导弹在空中的速度矢量,如图所示。
三、 设计思路
1) 建立相应模型
根据上述数据,可建立相应的数学模型,并对其在水平方
向和竖直方向做相应的受力分析。在水平方向上,沿X 轴
的运动速度为2,沿Y 轴的运动方向为3;且在水平方向不
存在加速度。竖直方向上,初始状态有一竖直朝上方向的速
度,和一竖直向下的加速度。因此在沿该方向将做一匀减速
运动,当速度减为0时,将开始做向下的匀加速运动。
根据上述题目所给出的数据和样图,可大致确定出时间t 的取值范围,计算方法根据常用的物理公式进行:
v=at (1)
2ax=v^2 (2)
竖直方向运动情况分析
h=0.5*at^2 (3)
T=t1+t2 (4)
综(1)~(4)可得…………………t=1.16约等于1.2
因此t的取值可规定在0~1.2之间,并且每隔0.1计算一次值。
2)设计算法
本实验要求在三位坐标系中画出相应的速度矢量图,那么可设计如下算法:
a)建立相应理变元,并对变元赋值
b)对赋值的变元进行初步计算,得到所需要的中间数据
(如位置矢量,速度等)
c)建立三维坐标系中沿X,Y,Z三个方向的梯度函数,并
新建立3个变元,将梯度函数的值赋予各个相应的变
量。
d)建立三维方向箭头图,输入函数所需的参量。
e)标明坐标轴。
f)根据做出的三围图像转换视角,直到符合样图视角为
止。(也可以使用视角函数view([a b ])其中a为方位
角,b为观察者与XY平面的夹角)
g)转换为正方坐标系。
3)设计流程图
4)操作方法简介
本实验操作方法简答,编写好相应程序后,保存为m文件,在MATLAB中运行即可。若需要改变相应数据,可打开m 文件进行修改,或是直接在MATLAB命令窗口中输入相应修改数据变元的命令。
四、结果与分析
通过对代码的书写,最终运行程序便能够得到如图所示的结果.。图像说明,导弹打出后,将做抛物线运动。到达最高点后便会下落,此后一直以抛物线形式不断下落。
五、体会
本次实验让我充分体验到了MATLAB这一数学工具的神奇之处,它不仅能够进行大量的计算还能够完成各种人工无法完成的电学模拟、数字模拟等。这种工具不仅在我们的学习生活中起到了很大帮助,也在研究各种复杂的工程项目时,起到了很好的助
力作用。MATLAB绘图功能更是一个对学习非常有帮助的功能,它不仅将枯燥的公式、函数过程简化成为了简单明了的图形、图像,还能够对图形做以分析、解释。我想,学好这门工具,不仅是对自己的专业能力的提升,更是对自己兴趣的培养和延伸。
六、参考资料
《MATLAB教程》
《MATLAB程序设计语言》
七、附件(源程序)
t=0:0.1:1.2; %根据导弹速度确定时间大致的范围
vx=2; %导弹沿x轴方向的分速度
vy=3; %导弹沿x轴方向的分速度
vz=10; %导弹沿x轴方向的分速度
a=-32; %导弹沿z轴的加速度
x=vx*t; %导弹沿x轴的位移矢量
y=vy*t; %导弹沿x轴的位移矢量
z=vz*t+0.5*a*t.^2; %导弹沿x轴的位移矢量
u=gradient(x); %绘制关于x的梯度场
v=gradient(y); %绘制关于y的梯度场
w=gradient(z); %绘制关于z的梯度场
scale=0; %参数scale为标量,表示扩展箭头大小比例因子quiver3(x,y,z,u,v,w,scale); %绘制三围方向箭头图
set(gca,'xlim',[0 4],'ylim',[0 3],'zlim',[-10,2]);%改变各个轴的坐标范围
xlabel('X'); %在x轴上注明X轴
ylabel('Y'); %在y轴上注明Y轴
zlabel('Z'); %在z轴上注明Z轴
view([60 60]); %此为图形是否清晰的关键!它可以设置三围视图的仰角及坐标轴的方向(视点)(第一个为方位角,第二个为观察者眼睛与xy平面形成的角度)axis square; %产生正方坐标系