3 d立体的抛物线运动的阴谋

7视图(30天)
你好,我想要一个3 d的抛物线运动。我想模拟一架飞机残骸从一定的高度。显然抛物运动和其他部队是一个简化的缺失。
这些初始条件。
h_0 = 14325
V_0 = 200 *。3048米/秒
γ= 0.78 rad
显然我希望我对象到达地面。我创建了下面的代码,但情节有点奇怪。我不明白,什么是错的
g = 9.8;
z0 = 14325;
x0 = 0;
y0 = 0;
V_0 = 200 * 0.3048;
γ= 0.78;
V_0x = V_0 * cos(γ);
V_0y = V_0 * cos(γ);
V_0z = V_0 * sin(γ);
t = linspace (0, 2 * V_0 * sin(γ)/ g);
x = x0 + V_0x * t;
y = y0 + V_0y * t台闲置* g * t ^ 2;
z = z0 + V_0z闲置* g * t ^ 2;
指数= z > = 0;
x = x(指标);
y = y(指标);
z = z(指标);
plot3 (x, y, z)
持有
plot3 (x0, y0, z0“罗”,“MarkerSize”5)
包含(“Posizione x (m)”)
ylabel (“Posizione y (m)”)
zlabel (“Posizione z (m)”)
网格

接受的答案

约翰D 'Errico
约翰D 'Errico 2023年1月31日
编辑:约翰D 'Errico 2023年2月1日
它应该看起来很奇怪。为什么?
g = 9.8;
z0 = 14325;
x0 = 0;
y0 = 0;
V_0 = 200 * 0.3048;
γ= 0.78;
V_0x = V_0 * cos(γ);
V_0y = V_0 * cos(γ);
V_0z = V_0 * sin(γ);
t = linspace (0, 2 * V_0 * sin(γ)/ g);
x = x0 + V_0x * t;
y = y0 + V_0y * t台闲置* g * t ^ 2;
z = z0 + V_0z闲置* g * t ^ 2;
指数= z > = 0;
x = x(指标);
y = y(指标);
z = z(指标);
plot3 (x, y, z)
持有
plot3 (x0, y0, z0“罗”,“MarkerSize”5)
包含(“Posizione x (m)”)
ylabel (“Posizione y (m)”)
zlabel (“Posizione z (m)”)
网格
持有
你的运动方程是错误的。让我解释一下……
首先,你似乎有一个角γ。我们应该假设γ角高于初始速度的水平?
rad2deg(γ)
ans = 44.6907
所以大约45度角水平以上。
然后你分裂成垂直分量,和一个水平分量。我们看到这个:
V_0x = V_0 * cos(γ);
V_0y = V_0 * cos(γ);
V_0z = V_0 * sin(γ);
但是你所做的是相同的速度在x和y方向。从本质上讲,让太多的速度水平分量,这是错误的,因为现在初速度
规范([V_0x、V_0y V_0z])
ans = 74.7947
但V_0
V_0
V_0 = 60.9600
你理解这个问题吗?你需要正常的水平速度分割成两个组件,不匹配相同的速度在两个x和y。
好吧,但这是一个相对较小的问题。你的初始速度是错误的。什么是错误的?
x = x0 + V_0x * t;
y = y0 + V_0y * t台闲置* g * t ^ 2;
z = z0 + V_0z闲置* g * t ^ 2;
你看到你做了什么?
接下来,你有z方程错了。你放弃了t。
但更糟糕的是,为什么有一个重力加速度在y方向上?
最后,有一个原因你只和你出去远的时间吗?
2 * V_0 *罪(γ)/ g
的时间,真的是必要的弹丸撞击地面,地面开始了很长一段路吗?
我想你可以弥补运动方程,但是你想要的工作。但是不要期望他们看起来好像这弹正朝着一个行星引力场。:)
我改变什么修理吗?
首先,我将决定如何分割速度的水平分量成两块。所以directino x和y之间的射影移动?
g = 9.8;
z0 = 14325;
x0 = 0;
y0 = 0;
V_0 = 200 * 0.3048;
φ= .5236;% x和y之间的角度为初始组件的速度
γ= 0.78;
V_0x = V_0 * cos(γ)* cos(φ);
V_0y = V_0 * cos(γ)* sin(φ);
V_0z = V_0 * sin(γ);
首先,这是正确的整体速度吗?
规范([V_0x、V_0y V_0z])
ans = 60.9600
现在V_0是一致的。
接下来,当将弹丸落地?多久?如果z-equation是正确的,那么这将会做的事:
troots =根([-。5 * g, V_0z z0])
troots = 2×1
58.6205 - -49.8711
采取积极的根,我们可以这样做:
t = linspace (0, troots (troots > 0), 1000);
x = x0 + V_0x * t;
y = y0 + V_0y * t;%没有重力加速度在y
z = z0 + V_0z * t台闲置* g * t ^ 2;%的区别见!
它工作了吗?
z(结束)
ans = 0
%你不再需要担心- z。
% z指数= > = 0;
% x = x(指标);
% = y(指标);
% z = z(指标);
plot3 (x, y, z)
持有
plot3 (x0, y0, z0“罗”,“MarkerSize”5)
包含(“Posizione x (m)”)
ylabel (“Posizione y (m)”)
zlabel (“Posizione z (m)”)
网格
现在你也可以加入空气阻力。使事情变得有趣。
2的评论
乔凡尼Curiazio
乔凡尼Curiazio 2023年2月1日
好吧,我完全理解错误。但我怎么实现的最终高度0 ?谢谢你!

登录置评。

更多的答案(0)

类别

找到更多的在编程帮助中心文件交换

下载188bet金宝搏


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!