小球弹跳及MATLAB实现 |
您所在的位置:网站首页 › 玛雅气球弹跳动画图片 › 小球弹跳及MATLAB实现 |
问题:弹跳球初始高度为
10
m
10m
10m,初始速度向上为
15
m
/
s
15m/s
15m/s,随后在重力作用下自由落体运动。每次撞击地面会弹起,弹起的速度是落地速度的0.8倍。求: 1、弹跳球何时停止 2、 弹跳球第100次撞击地面时的时间和行驶路程。 3、用plot绘制弹跳球位置随时间的变化图。 4 、使用plot绘制弹跳球速度随时间的变化图。 结果如下图所示: 首先是小球运动的动力学公式: v = v 0 + a t v=v_0+at v=v0+at x = v 0 t + 1 2 a t 2 x=v_0t+{1\over2}at^2 x=v0t+21at2 ∇ x = 1 2 a t 2 \nabla x={1\over2}at^2 ∇x=21at2 l = ∑ ∇ x l=\sum{\nabla x} l=∑∇x 其实真正的公式部分就只有这些,剩下的就主要是编程的问题,而编程中主要是画图的问题。我们首先要明确一个问题,虽然时间是连续的,求的应该也是一个连续的过程,但其实就是我们编程求的是一个一个点,是离散的,不是一个连续的过程。就比如求得当 ∇ t = 1 \nabla t=1 ∇t=1, t = 0 , 1 , 2 , 3 … … t=0,1,2,3…… t=0,1,2,3……时,求得 x ( t ) , l ( t ) , v ( t ) x(t),l(t),v(t) x(t),l(t),v(t)。但是当t的间隔越来越小时, ∇ t = 0.1 \nabla t =0.1 ∇t=0.1, t = 0 , 0.1 , 0.2 … … t=0,0.1,0.2…… t=0,0.1,0.2……则就可近似看成连续的函数。 设速度竖直向下为正方向,则 v 0 = − 15 m / s v_0=-15m/s v0=−15m/s,设初始高度 h 0 = 10 m h_0=10m h0=10m,设反弹系数 k = 0.8 k=0.8 k=0.8,设重力加速度 g = 9.8 m / s 2 g=9.8m/s^2 g=9.8m/s2,设初始行驶路程 l 0 = 0 m l_0=0m l0=0m,设撞击地面的次数为 c o u n t count count。 clc,clear; h0=10;%初始高度为10m v0=-15;%以竖直向下为正方向,初速度为-15m/s l0=0;%行驶路程 g=9.8;%加速度 k=0.8;%反弹系数 count=0;%撞击地面的次数我们需要用矩阵记录每时刻小球的速度,高度,行驶的路程,经过的时间。 h(1)=h0;%记录每刻小球高度 v(1)=v0;%记录每刻小球速度 l(1)=l0;%记录每刻小球路程 t=0;%记录每刻小球路程 i=0;%记数 下面就是小球运动的核心代码。但是其中有一个问题,就是由于我们求得的是下一时刻的小球状态,如果在这一段时间内小球发生碰撞应该怎么办? 我的解决方法就是判断下一段时间小球是否要碰地,若要碰地,则改变
∇
t
\nabla t
∇t,使小球在
t
n
=
t
n
−
1
+
∇
t
t_n=t_{n-1}+\nabla t
tn=tn−1+∇t时刻正好碰地。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |